데이터베이스 관리 시스템의 등장 배경
파일 시스템
- 데이터를 파일로 관리하기 위해 파일을 생성/삭제/수정/검색하는 기능을 제공하는 소프트웨어
- 응용 프로그램마다 필요한 데이터를 별도의 파일로 관리함
- 여러 사용자/프로그램이 공유하지 않음
파일 시스템의 문제점
- 같은 내용의 데이터가 여러 파일에 중복 저장된다 (데이터 중복성)
- 저장공간의 낭비 + 데이터 일관성(consistency)과 데이터 무결성(integrity) 유지 어려움
- 응용 프로그램이 데이터 파일에 종속적이다 (데이터 종속성)
- 사용하는 파일의 구조를 변경하면 응용프로그램도 함께 변경해야 함 (데이터 구조에 맞게 코드를 변경해야 함)
- 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다
- 공유, 보안 회복 기능을 가지고 있는 응용 프로그램을 개발하기 쉽지 않다
데이터베이스 관리 시스템의 정의
데이터베이스 관리 시스템 (DBMS: Database Management System)
- 파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어
- 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 집중적으로 담당
- 데이터베이스에 들어 있는 데이터를 삽입/삭제/수정/검색하고, 모든 응용 프로그램이 데이터베이스를 공유할 수 있도록 함
- 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리
데이터베이스 관리 시스템에서의 데이터 관리
- 데이터는 DB에 통합되어 저장된다.
- 서로 다른 응용 프로그램들이 동시에 데이터베이스를 사용하더라도 문제가 발생하지 않도록 DBMS가 이를 처리해준다
- 사용자는 File이 아닌 DBMS를 통해 데이터를 관리 조작한다
- 데이터베이스의 구조나 접근 방법 등이 변경되어도 문제가 없는 데이터 독립성이 확보된다
DBMS의 주요 기능
- 정의 기능
- 데이터베이스 구조를 정의하거나 수정할 수 있다.
- 조작 기능
- 데이터를 삽입/삭제/수정/검색하는 연산을 할 수 있다.
- 제어 기능
- 데이터를 항상 정확하고 안전하게 유지할 수 있다.
데이터베이스 관리 시스템의 장단점
장점
- 데이터 중복을 통제할 수 있다
- 데이터 독립성이 확보된다
- 데이터를 동시 공유할 수 있다
- 데이터 보안이 향상된다
- 데이터 무결성을 유지할 수 있다
- 데이터 무결성은 저장된 값의 정확성을 의미
- 데이터에 대한 연산 수행시마다 유효성을 검사하여 무결성을 유지
- 표준화할 수 있다
- 장애 발생 시 회복이 가능하다
- 응용 프로그램 개발 비용이 줄어든다
단점
- 시스템이 사용하는 비용(리소스 자원 등)이 많이 든다
- 백업과 회복 방법이 복잡하다
- 중앙 집중 관리로 인한 취약점이 존재한다 (Single Point Of Failure(SPF/SPOF))
- 해결법: DB를 여러개로 분산 시키기
데이터베이스 관리 시스템의 발전 과정
1세대: 네트워크 DBMS, 계층 DBMS
- 네트워크 DBMS
- 데이터베이스를 그래프 형태로 구성
- 간선을 이용해 데이터 간의 관계를 나타내기 때문에 데이터베이스의 구조가 복잡하고 변경하기 어려움
- i.e., Integrated Data Store
- 계층 DBMS
- 데이터베이스를 트리 형태로 구성
- 현실 세계의 모습을 트리 형태로 표현하기 어렵고 구조 변경이 어려움
- i.e., Information MAnagement System
2세대: 관계 DBMS
- 관계 DBMS
- 1980년 초부터 계속해서 사용되어 온 DBMS
- 데이터베이스를 테이블 형태로 구성
- 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성한다는 장점이 존재하기에 현재도 주류
- i.e., MySQL, Oracle, MS SQL Server
3세대: 객체지향/객체관계 DBMS
- 객체지향 DBMS
- 객체를 이용해 데이터베이스를 구성
- 개념이 어렵고 복잡하여 제대로 사용하기 어렵다는 단점이 존재
- 객체관계 DBMS
- 객체지향 DBMS를 개선한 것
- 그럼에도 불구하고 사용률이 낮음
4세대 이후: NoSQL/NewSQL DBMS
- NoSQL DBMS
- Not Only SQL의 뜻
- 데이터 구조를 미리 정해두지 않아 유연한 활용이 가능함 (비정형 데이터를 처리하는데 적합)
- 확장성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용
- 기존의 장점이던 안정성과 일관성 유지를 위한 복잡한 기능을 포기한 DBMS
- 장점이 분명하지만 관계 DBMS를 넘어 주류 DBMS가 되기에는 부족
- 아직 기업에서 처리하는 데이터 중 정형 데이터의 비율이 높음
- 기존 데이터를 옮기는 비용 측면의 문제
- i.e., MongoDB, Cassandra, HBase
발전 과정 |