데이터베이스 관리 시스템
by Frinee이 글은 김연희 저 - "데이터베이스 개론 3판"을 공부하고 정리하여 작성하였습니다.
1. 데이터베이스 관리 시스템의 등장 배경
- 데이터 관리 이전 파일 시스템을 활용하였다.
- 그런데 파일 시스템은 별도의 구매 비용이 들지 않는다는 장점이 있지만 응용 프로그램마다 파일을 따로 유지하는 특징 때문에 발생한 문제들이 있다.
- 같은 내용의 데이터가 여러 파일에 중복 저장됨
- 응용 프로그램별로 파일을 유지하므로 같은 데이터가 여러 파일에 저장될 수 있음
- 데이터 일관성과 데이터 무결성을 유지하기 어려움
- 응용 프로그램이 데이터 파일에 종속적
- 응용 프로그램은 파일에 직접 접근하여 데이터를 처리함
- 그래서 사용하는 파일의 데이터를 구성하는 방법이나 물리적 저장 구조에 맞게 작성되야 함
- 파일의 구조를 변경하면 응용 프로그램도 함께 변경되어야 함. (데이터 종속성)
- 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족
- 일반 파일 시스템에서 다른 응용 프로그램이 사용중인 파일에 접근하여 사용하는 동시 공유 기능이 없음
- 파일 읽기•수정•실행 권한 부여를 파일 단위로 일일이 부여하는 것이 어려움
- 파일에 문제가 발생한 경우 데이터를 일관된 상태로 유지하기 어려움
- 응용 프로그램 개발이 어려움
- 파일 시스템에서는 파일에 접근해 데이터를 관리하는 모든 작업을 응용 프로그램이 담당하여 사용자 요구에 맞는 응용 프로그램 개발이 어려움
- 새로운 응용 프로그램 개발을 위해선 데이터 읽기•삽입•삭제 등의 기본 데이터 관리 기능을 포함해야 함
2. 데이터베이스 관리 시스템의 정의
2.1. 데이터베이스 관리 시스템의 주요 기능
- 정의 기능
- 조직에 필요한 데이터를 저장하기 적합한 데이터베이스 구조를 정의하거나 수정할 수 있음
- 조작 기능
- 데이터베이스에 저장된 데이터에 접근하여 사용할 수 있는 기능을 제공
- 사용자의 요구에 따라 삽입•수정•삭제•검색하는 연산을 효율적으로 처리
- 제어 기능
- 데이터를 여러 사용자가 공유해도 항상 정확하고 안전하게 유지하는 기능 제공
- 데이터를 삽입•수정•삭제 후에도 내용이 일관되면서 무결성을 유지하고 장애가 발생해도 회복
- 권한이 있는 사용자에게만 데이터 접근을 허용하여 보안 유지
- 여러 사용자가 데이터베이스에 동시에 접근하여 데이터를 처리할 수 있도록 제어
3. 데이터베이스 관리 시스템의 장•단점
3.1. 데이터베이스 관리 시스템의 장점
- 데이터 중복 통제
- 데이터를 통합하여 관리하므로 데이터 중복 문제를 해결할 수 있음
- 효율성 때문에 데이터 중복을 허용하는 경우에도 중복을 최소화
- 데이터 독립성 확보
- 데이터베이스 구조가 변경되도 응용 프로그램에 영향을 주지 않음
- 데이터 동시 공유
- 통합된 데이터를 여러 응용 프로그램이 공유하여 같은 데이터에 동시 접근 가능
- 동시 공유를 지원하여 불필요한 데이터 중복을 제한할 수 있음
- 데이터 보안 향상
- 데이터를 중앙 집중식으로 관리하여 데이터에 대한 효율적인 접근 제어 가능
- 권한에 따라 사용자의 접근 및 요청을 사전에 차단
- 데이터 무결성 유지
- 데이터에 대한 관리를 집중적으로 수행하면서 데이터에 대한 연산이 수행될 때마다 유효성을 검사하여 데이터 무결성 유지
- 표준화
- 모든 응용 프로그램이 데이터베이스 관리 시스템이 미리 정한 표준화된 방식을 통해 데이터베이스에 접근할 수 있음
- 장애 발생 시 회복
- 데이터베이스 관리 시스템에 장애가 발생해도 데이터 무결성와 일관성을 유지하면서 데이터를 장애가 발생하기 이전으로 복구할 수 있음
- 응용 프로그램 개발 비용 감소
- 데이터에 대한 모든 관리를 데이터베이스 관리 시스템이 하기 때문에 개발비용이 적게 듬
- 데이터베이스 구조가 변경되도 응용프로그램에는 영향이 없으므로 유지보수비용도 줄어듦
3.2. 데이터베이스 관리 시스템의 단점
- 비용이 많이 듦
- 데이터베이스 관리 시스템은 따로 설치해야 하므로 구매 비용이 듦
- 동시 사용자 수에 따라 제품 가격도 증가
- 백업과 회복 방법이 복잡함
- 장애가 발생했을 때, 원인과 상태 파악이 어려움
- 그래서 미리 백업해 놓고 장애 발생 후 데이터를 일관된 상태로 회복하는 방법이 복잡
- 중앙 집중 관리로 인한 취약점이 존재
- 모든 데이터가 데이터베이스에 통합되어 있어 이에 대한 관리 책임이 집중됨
- 데이터베이스 관리 시스템에 문제가 생길 경우, 모든 시스템 업무 처리가 중단됨
4. 데이터베이스 관리 시스템의 발전 과정
4.1. 1세대 데이터베이스 관리 시스템: 네트워크•계층 DBMS
- 1960~1970년대에 사용된 네트워크 DBMS와 계층 DBMS가 1세대에 속함
- 네트워크 DBMS
- 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성한 모델
- 간선을 이용해 데이터 간 관계를 표현하기 때문에 데이터베이스 구조가 복잡하고 변경하기 어렵다.
- 계층 DBMS
- 데이터베이스를 트리 형태로 구성하는 계층 데이터 모델
- 네트워크 DBMS보다 단순한 구조지만 구조 변경이 어렵단 단점
4.2. 2세대 데이터베이스 관리 시스템: 관계 DBMS
- 1980년대 초반부터 계속 사용해온 관계DBMS가 2세대에 속함
- 데이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용
- 단순하고 이해하기 쉬운 구조로 구성한다는 장점이 있음
ex) Oracle, MS SQL 서버, MySQL, 인포믹스, 마리아DB, Access 등
4.3. 3세대 데이터베이스 관리 시스템: 객체지향•객체관계 DBMS
- 1980년대 후반에 등장한 객체지향 DBMS는 객체지향 프로그래밍에서 도입한 객체 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용
- 더 다양하고 복잡한 응용 분야의 데이터를 관리하려는 사용자 요구를 충족시키기 위해 제안
- 새로운 유형의 데이터를 저장하고 데이터에 대한 복잡한 분석 및 처리를 지원
ex) O2, ONTOS, GemStone 등
- 1990년대 후반에 등장한 객체관계 DBMS는 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델을 사용
- 객체지향 DBMS와 관계 DBMS의 개념을 통합한 개념
- 기존 관계 DBMS로 분류된 제품들이 객체지향 기능을 지원하면서 객체관계 DBMS로 분류되는데 오라클이 대표적
4.4. 4세대 이후 데이터베이스 관리 시스템: NoSQL•NewSQL DBMS
- 소셜 네트워크 서비스 이용이 늘어나면서 사진, 동영상, 검색 로그와 같은 비정형 데이터가 대량 생산됨
- NoSQL DBMS는 안정성과 일관성 유지와 같은 복잡한 기능을 포기하고 데이터 구조를 미리 정하지 않음
- 확장성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에 사용
- SNS를 제공하는 회사들이 NoSQL의 필요성을 강조하면서 주목받게 됨
ex) MongoDB, HBase, Cassandra, Redis, Neo4j, OrientDB 등
- 그렇다고 관계 DBMS를 온전히 대체하진 않는다.
- NewSQL DBMS는 안정성과 일관성을 유지하면서 SQL을 이용해 복잡하고 다양한 데이터를 처리할 수 있음
- 관계 DMBS의 장점과 NoSQL의 확장성과 유연성 모두 지원하며 정형 및 비정형 데이터를 안정적으로 빠르게 처리할 수 있음
ex) 구글 스패너, VoltDB, NuoDB 등
자료
- 데이터베이스 개론 3판 (김연희 저, 2024.1)
'[컴퓨터 과학자 스터디] > 데이터베이스' 카테고리의 다른 글
관계 데이터 연산 (0) | 2024.11.21 |
---|---|
관계 데이터 모델 (0) | 2024.11.21 |
데이터 모델링 (1) | 2024.11.17 |
데이터베이스 시스템 (1) | 2024.11.16 |
데이터베이스 기본 개론 (1) | 2024.11.14 |
블로그의 정보
프리니의 코드저장소
Frinee