Chap01 - DBMS & SQL 개요
뇌를 자극하는 SQL Server 2012 - 1권 기본편을 공부하면서 정리한 것입니다.
Chap01. DBMS & SQL 개요
1. DBMS 개요
1.1 데이터베이스의 정의
데이터베이스(database)는 데이터 집합을 체계적으로 구성해놓은 것, 데이터의 저장 공간으로 정의할 수 있으며, 여러 사용자나 응용프로그램이 공유하고 동시에 접근 가능해야 한다. 이러한 데이터베이스를 관리 및 운영하는 역할을 하는 시스템을 DBMS(DataBase Management System)라고 한다.
1.2 데이터베이스 특징
데이터베이스의 특징에는 다음과 같은 것들이 있다.
데이터의 무결성(Integrity)
데이터베이스 내의 데이터에는 오류가 있어서는 안된다. 즉 삽입(Insert), 삭제(Delete), 갱신(Update) 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건(Constrain)을 항상 만족해야한다.
데이터의 독립성
데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도, 기존에 작성된 응용프로그램은 전혀 영향을 받지 않아야 한다. 예를 들어, 데이터베이스를 저장한 디스크가 새 것으로 변경되어도 기존에 사용하던 응용프로그램은 아무런 변경 없이 계속 사용되어야 한다.
보안(Security)
불법적인 데이터의 노출이나 변경, 손실로 부터 보호할 수 있어야 한다.
데이터 중복의 최소화
동일한 데이터가 중복되어 저장되는 것을 방지한다.
1.3 DBMS 분류
DBMS의 유형은 크게 계층형(Hierarchical) DBMS, 망형(Network) DBMS, 관계형(Relational) DBMS 등으로 분류된다.
계층형 DBMS (Hierarchical DBMS)
1960년대에 처음으로 나온 DBMS 개념으로 아래의 그림과 같이 데이터의 논리적 구조가 트리(Tree) 형태이며,
1:N
관계를 갖는다.장점
구조가 간단하고, 판독이 용이하다.
검색이 빠르다.
데이터의 독립성이 보장된다.
단점
데이터 간의 유연성이 부족하다.
검색 경로가 한정되어 있다.
삽입 및 삭제가 복잡하다.
N:N
관계를 처리하기 어렵다.
망형 DBMS (Network DBMS)
망형 DBMS는 계층형 DBMS의 단점을 보완하기 위해 1970년대에 등장 했으며,
1:1, 1:N, N:M(다대다)
관계가 지원되어 효과적으로 빠른 데이터 추출이 가능해 졌다. 하지만, 계층형과 마찬가지로 복잡한 내부 포인터를 사용하고 프로그래머가 모든 구조를 이해해야 사용이 가능하다는 단점이 있다.
관계형 DBMS (Relational DBMS: RDBMS)
RDBMS는 1970년 IBM에 근무하던 E.F. Codd에 의해 처음 제안된 DBMS 개념이며, 핵심 개념은 "데이터베이스는 테이블(Table)이라 불리는 최소 단위로 구성되어 있으며, 이 테이블은 하나 이상의 열로 구성되어 있다" 라고 할 수 있다. 아래의 그림처럼 관계형 DBMS에서 모든 데이터는 테이블에 저장된다.
2. SQL 개요
SQL(Structured Query Language)은 관계형 데이터베이스(RDB)에서 사용되는 언어이다. 따라서, 관계형 DBMS(RDBMS)를 다루기 위해서는 SQL을 필수적으로 알아야 하며, SQL 특징은 다음과 같다.
DBMS 제작사와 독립적
MS사의 SQL Server, Oracle 사의 Oracle 등 제작사와 관계없이 표준 SQL이 있으며, 이 표준 SQL은 대부분의 DBMS에서 호환된다. 하지만, 모든 DBMS가 동일한 SQL 문법을 사용하는 것은 아니며, 각 DBMS마다 문법이 조금 다르다.
대화식 언어
SQL은 질의(query)에 바로 결과를 확인할 수 있는 대화식 언어로 구성되어 있다.