티스토리 뷰
데이터 베이스 관리 시스템의 등장 배경
과거에는 데이터를 관리하기 위해 파일 시스템이라는 소프트웨어를 이용하였다. 파일 시스템은 오래 전부터 사용되어 온 정보 처리 시스템이다. 데이터를 파일로 관리할 수 있도록 파일을 생성, 삭제, 수정, 검색하는 기능을 제공하며, 운영체제와 함께 설치된다. 파일 시스템은 응용 프로그램별로 필요한 데이터를 별도의 파일로 관리한다.
파일 시스템은 별도의 구매 비용이 들지 않는다는 장점이 있지만 응용 프로그램마다 파일을 따로 유지하는 특징 때문에 다음과 같은 문제가 발생한다.
1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.
2. 응용 프로그램이 데이터 파일에 종속적이다.
3. 데이터 파일에 대한 동시 굥유, 보안, 회복 기능이 부족하다.
4. 응용 프로그램을 개발하기 쉽지 않다.
데이터베이스 관리 시스템의 정의
파일 시스템이 지닌 모든 문제의 근본 원인은 데이터 중복성과 데이터 종속성이다.
데이터베이스 관리 시스템(DBMS: DataBase Management Syste)은 파일 시스템의 데이터 증북과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어다. DBMS는 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 집중적으로 담당한다. DBMS는 응용 프로그램을 대신하여 데이터베이스에 들어있는 데이터를 삽입 삭제 수정 검색하고, 모든 응용 프로그램이 데이터베이스를 공유할 수 있게 한다.
데이터베이스를 생성하고 접근하며 관리하는 일은 DBMS가 모두 담당한다. 사용자는 직접 또는 응용 프로그램을 통해 원하는 데이터가 무엇이며, 어떤 처리를 원하는지만 DBMS에 요청하면 된다.
DBMS가 제공하는 주요 기능
1. 정의 기능 : 데이터베이스 구조를 정의하거나 수정할 수 있다.
2. 조작 기능 : 데이터를 삽입 삭제 수정 검색하는 연산을 할 수 있다.
3. 제어 기능 : 데이터를 항상 정확하고 안전하게 유지할 수 있다.
데이터베이스 관리 시스템의 장단점
장점
1. 데이터 중복을 통제할 수 있다.
2. 데이터 독립성이 확보된다.
3. 데이터를 동시 공유할 수 있다.
4. 데이터 보안이 향상된다.
5. 데이터 무결성을 유지할 수 있다.
6. 표준화할 수 있다.
7. 장애 발생 시 회복이 가능하다.
8. 응용 프로그램 개발 비용이 줄어든다.
단점
1. 비용이 많이 든다.
2. 백업과 회복 방법이 복잡하다.
3. 중앙 집중 관리로 인한 취약점이 존재한다.
데이터베이스 관리 시스템의 발전 과정
데이터 모델 : 데이터를 데이터베이스에 저장하는 구조를 의미
1세대 데이터베이스 관리 시스템 : 네트워크 계층 DBMS
네트워크 DBMS : 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델을 사용
간선을 이용해 데이터 간의 관계를 표현하기 때문에 데이터베이스의 구조가 복잡하고 변경하기 어렵다.
계층 DBMS : 데이터베이스를 트리 형태로 구성하는 계층 데이터 모델을 사용
네트워크 DBMS보다 구조가 단순. 하지만 복잡한 현실 세계의 모습을 부모 자식 관계가 명확한 트리 형태로 표현하기가 힘들고, 구조 변경이 어렵다.
2세대 데이터베이스 관리 시스템 : 관계 DBMS
관계 DBMS는 데이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용한다.
관계 데이터 모델은 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성한다는 장점이 있다. 관계 DBMS는 지금도 널리 사용되고 있으며, 대표적으로 오라클, MS SQL 서버, MYSQL 등이 있다.
3세대 데이터베이스 관리 시스템 : 객체지향 객체관계 DBMS
객체지향 DBMS는 객체지향 프로그래밍에서 도입한 객체라는 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용한다. 이 시스템은 새로운 유형의 데이터를 저장하고, 데이터에 대한 복잡한 분석 및 처리를 지원한다. 대표적인 객체지향 DBMS로는 오투, 온투스, 젬스톤 등이 있다.
객체관계 DBMS는 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델을 사용한다. 즉 객체 DBMS와 관계 DBMS의 개념을 통합한 것이다.
현재 2, 3세대 DBMS가 공존한다.
4세대 이후 데이터베이스 관리 시스템 : NoSQL NewSQL DBMS
3세대 DBMS가 등장한 뒤에도 여전히 관계 DBMS라는 인식이 일반적이었다. 그러나 수많은 사람들이 SNS를 폭발적으로 이용하면서 사진, 동영상, 검색 로그와 같은 비정형 데이터가 대량으로 생산되었다. 이와 더불어 클라우드 컴퓨팅, 빅데이터의 개념이 등장하면서 관계 DBMS에 대한 확신이 흔들리게 되었다. 관계 DBMS는 빠른 속도로 증가하는 대량의 비정형 데이터를 처리하는 데는 비효율적이다.
이러한 시대적 흐름이 NoSQL DBMS의 등장을 이끌었다. NoSQL DBMS는 관계 DBMS가 강점으로 제시하던 안정성과 일관성 유지를 위한 복잡한 기능을 포기하고, 데이터 구조를 미리 정해두지 않기 때문에 비정형 데이터를 저장하고 처리하는 데 적합하다. 그리고 확장성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용한다. 대표적으로 몽고디비, H베이스, 카산드라, 레디스, 네오포제이, 오리엔트DB 등이 있다.
그럼에도 불구하고 관계 DBMS를 포기할 수 없었기 때문에, 정형 데이터를 정확하기 처리하기 위해서는 기존의 관계 DBMS를 그대로 유지하고, 비정형 데이터를 처리하려면 NoSQL을 추가로 도입해야하는 부담감이 생겼다. 이런 불편함은 NewSQL DBMS의 등장을 이끌었다. NewSQL DBMS는 안정성과 일관성을 유지하면서도 SQL을 이용해 다양하고 복잡한 데이터 처리를 편리하게 요청할 수 있다. 대표적으로는 구글 스패너, 볼트DB, 누오DB등이 있다.
사용자는 저장할 데이터의 형태, 업무 처리 성격 등을 고려해서 적합한 DBMS를 선택하는 것이 중요하다.
sql : 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어.
'책 > 데이터베이스개론' 카테고리의 다른 글
6. 관계 데이터 연산 (0) | 2020.12.04 |
---|---|
5. 관계 데이터 모델 (0) | 2020.12.04 |
4. 데이터 모델링 (0) | 2020.12.03 |
3. 데이터베이스 시스템 (0) | 2020.12.02 |
1. 데이터베이스 기본 개념 (0) | 2020.12.02 |