[DBMS 강의 - 02] 데이터베이스 종류
DB의 종류는 크게 비관계형과 관계형 DB로 나뉘어 진다. 현재는 대부분 관계형 DB 모델을 사용하고 있다.
비관계형을 사용하지 않는데에는 몇가지 이유가 있다. 우선 비관계형의 종류 부터 알아보자.
비관계형 데이터베이스
비관계형 DB의 대표적인 형태는 계층형과 망형 DB가 있다. 현재는 거의 사용하지 않지만 메인프레임 플랫폼에서는 코볼 프로그램과 연동하여 사용하기도 한다.
계층형 데이터베이스
- 데이터가 트리 형태로 계층적으로 저장되는 형태이다.
- 가장 오래된 DBMS이다.
- 각 계층 구조는 물리적인 포인터로 연결되며, 종속적이다.
- 초기 구축 후 변경하기 어렵기 때문에 유연성이 떨어진다.
- 검색 알고리즘이 비효율적일 수 있다.
망형 데이터베이스
- 계층형의 트리 형태를 망 형태로 확장한 것이다.
- 물리적으로 연결된 집합체라는 정적인 구조로 데이터가 저장되어 있어, 임의적인 검색시 효율이 떨어질 수 있다.
- 프로그래머가 구조를 이해하지 않는 이상 프로그램의 작성이 불가능하다.
비관계형 DB는 서로 관련이 있는 레코드들을 연결하기 위해 매우 복잡한 내부 포인터를 사용하게 된다. 사실 여기까지 보면 그렇게 문제될게 없어보이지만
이런 형태의 DB는 레코드에 변환가 있을 때(삽입, 갱신, 삭제 등) 포인터의 동기화가 동반되어야 하는데, 이를 프로그래머가 코볼 응용 프로그램으로 구현해야 한다.
그러나 구현분량이 많을 뿐 더러 코볼 자체가 매우 복잡하기 때문에 DB 개발자들에게는 적지 않은 부담이 되었다.
이를 해결하기 위해 개발된 것이 바로 관계형 DB이다.
관계형 데이터베이스
관계형 데이터베이스는 테이블(릴레이션, 엔티티)로 구성되며, 테이블 내에는 열(속성, 필드)이 있고 열 값의 1개 묶음을 행(인스턴스, 튜플, 레코드)라고 한다.
아래와 같은 학생 테이블이 있다고 가정후 용어를 살펴보자.
학번 |
이름 |
학과 |
나이 |
성별 |
연락처 |
고향 |
1000 |
홍길동 |
영문 |
20 |
남 |
010-1234-5678 |
서울 |
1001 |
둘리 |
국문 |
200 |
|
|
서울 |
1002 |
도우너 |
국문 |
25 |
남 |
010-0000-0000 |
이천 |
1003 |
또치 |
체조 |
23 |
여 |
011-888-9876 |
수원 |
1004 |
마이클 |
음악 |
28 |
남 |
031-5123-5849 |
일산 |
1005 |
희동이 |
수학 |
21 |
남 |
043-8156-8888 |
충주 |
< 학 생 >
릴레이션 : 학생
속성 : 학번, 이름, 학과, 나이, 성별, 연락처, 고향, 1000, 홍길동, 영문, 20, 등등
* 데이터베이스를 구성하는 가장 작은 논리적 단위
* 데이터의 항목 또는 데이터의 필드
튜플 : 각각의 행
1000, 홍길동, 영문, ..., ..., 서울 <- 행1
1001, 둘리, 국문, ..., ..., 서울 <- 행2
등 등