민규의 흔적

[오라클 DB] 데이터베이스 관리 시스템(DBMS)의 발전 과정 본문

데이터베이스

[오라클 DB] 데이터베이스 관리 시스템(DBMS)의 발전 과정

민규링 2023. 10. 14. 01:35

데이터 모델

 

데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합인 구조(데이터 타입과 관계), 이 구조 위에서 동작하는 연산자들, 무결성 제약조건들

 

데이터 모델의 예로는 트리 구조를 지니는 계층 데이터 모델(hierarchical data model), 그래프 형식의 네트워크 데이터 모델(network data model), 2차원의 테이블 모델인 관계 데이터 모델(relational data model)이 존재한다.

 

DBMS의 발전 과정

1세대

 

계층 DBMS

 

1960년대 후반에 최초의 계층 DBMS가 등장하였다. (예. IBM 사의 IMS)

트리 구조를 기반으로 하는 계층 데이터 모델을 사용한 DBMS로, 계층 데이터 모델은 네트워크 데이터 모델의 특별한 사례이다.

 

계층 DBMS

 

네트워크 DBMS

 

1960년대 초, Charles Bachman이 하니웰(Honeywell) 사에서 최초로 IDS를 개발.

레코드들이 노드로, 레코드들 사이의 관계가 간선으로 표현되는 그래프를 기반하였다.

 

네트워크 DBMS

 

1세대 DBMS의 장점과 단점

 

1세대 DBMS 장점 단점
계층, 네트워크 DBMS 어떤 유형의 응용에 대해서는 빠른 속도와 높은 효율성을 제공 - 어떻게 데이터를 접근하는 가를 미리 응용 프로그램에 정의해야 함

- 데이터베이스가 생성될 때 각각의 관계를 명시적으로 정의해야 함

- 레코드들이 링크(포인트)로 연결되어 있으므로 레코드 구조를 변경하기 어려

 

위 단점들을 종합하여 정리하자면 다음과 같다.

 

1. 데이터 독립성이 떨어진다.
2. 한 번에 한 개의 레코드만 검색
3. 응용 프로그램 개발 속도 및 생산성 저하

 


2세대

 

관계 DBMS

 

1970년에 E.F. Codd가 IBM 연구소에서 관계 데이터 모델을 제안하였다.

속성 값을 통해 연결되는 관계(외래키)를 표현하고자 하였으며 사용자는 자신이 원하는 것(what)만 명시하고, 데이터가 어디에 있는지, 어떻게 접근해야 하는지는 DBMS가 결정하기에 모델이 간단하여 이해하기 쉽다.

예) MySQL, Oracle, MS SQL Server, MariaDB 등

 

관계 DBMS

 

데이터 구조를 2차원 테이블 형태로 표현하였다는 특징을 가지고 있다.


3세대

 

객체 지향 DBMS

 

1980년대 후반 들어 새로운 데이터 모델인 객체 지향 데이터 모델이 등장하였다.

객체 지향 프로그래밍 패러다임을 기반으로 하는 데이터 모델로, 데이터와 프로그램을 그룹화, 복잡한 객체들을 이해하기 쉬우며, 유지 변경이 용이하다.

예) ONTOS, OpenODB, GemStone, ObjectStore, Versant, O2 등

 

 

객체 관계 DBMS

 

1990년대 후반에 관계 DBMS에 객체 지향 개념을 통합한 모델이 제안되었다.

관계 DBMS에 새로운 데이터 타입과 데이터베이스에 대한 연산들을 추가할 수 있는 기능을 제공한다.

관계 DBMS와 객체지향 DBMS의 단점을 해결하였으나, 복잡도가 증가하였다.

예) 오라클, Informix Universal Server 등

 


4세대

 

NoSQL

 

NoSQL이란 비관계형 데이터베이스로, Not Only SQL의 약자로 통용된다.

단순히 기존 관계형 DBMS가 갖고 있는 특성 뿐 아니라, 다른 특성들을 부가적으로 지원한다는 것을 의미한다.

단순 검색 및 추가 작업에 있어서 매우 최적화된 키 : 값 쌍의 저장 기법을 사용하여 응답 속도나 처리 효율 등에 있어서 매우 뛰어난 성능을 보여준다.

예) Redis, Cassandra, HBase, MongoDB 등

 

NoSQL중 하나인 MongoDB의 Document Database 포맷

 

 

NewSQL DBMS

 

NewSQL이란 전통적인 데이터베이스 시스템의 ACID를 보장하면서 OLTP 워크로드에 NoSQL의 확장성을 제공하는 데이터베이스 관리 시스템이다.

대용량 데이터 처리와 높은 확장성을 요구하는 현대의 데이터 처리 환경에 더 적합하도록 설계되었으며 고성능, 고가용성, 자동 확장, 병렬 처리, 분산 아키텍처, 클라우드 네이티브 등의 특징을 가지고 있다.

예) 구글 스패너, VoltDB, CockroachDB 등