본문 바로가기
computer science/데이터베이스

[데이터베이스] 데이터베이스 관리 시스템(DBMS)

by 박연호의 개발 블로그 2020. 2. 6.

 

파일 시스템

 과거에는 데이터를 관리하기 위해 파일 시스템(file system)이라는 소프트웨어를 사용하였습니다. 파일 시스템은 데이터를 파일로 관리할 수 있도록 파일을 생성, 삭제, 수정, 검색 하는 기능을 제공하며 운영체제와 함께 설치되었으며 응용 프로그램 별로 필요한 데이터를 별도의 파일로 관리한다.

 

 파일 시스템은 운영체제와 함께 설치되었기 때문에 별도의 구입 비용이 들지 않는다는 장점이 있긴 하지만 응용 프로그램마다 파일을 따로  유지하는 특성 때문에 몇가지 문제점을 가지고 있다.

 

1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.

 파일시스템 에서는 응용 프로그램별로 파일을 유지하므로 같은 데이터가 여러 파일에 중복되어 저장됩니다. 위의 사진에서 고객관리 프로그램과 주문 관리 프로그램은 각각 데이터 파일을 가지고 있으며 안에는 고객아이디,  고객명, 연락처, 주소 등의 정보가 저장되어 있다. 이런 경우 데이터가 중복되기 때문에 저장 곤간이 낭비될 뿐만 아니라 데이터의 일관성과 데이터 무결성을 유지하기 어려워 진다.

 

2. 응용프로그램이 데이터 파일에 종속적이다.

 응용 프로그램은 파일에 직접 접근하여 데이터를 처리해야 하므로 사용하는 파일이 데이터를 구성하는 방법이나 물리적인 저장 구조에 맞게 작성되어야 한다. 그래서 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 하는데 이러한 특성을 데이터 종속성 이라고 한다.

 

3. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.

 일반적인 파일시스템 에서는 응용 프로그램 하나가 사용중인 파일을 다른 응용 프로그램이 접근하여 사용할 수 없다. 또한 파일 시스템에서는 사용자에게 보통 파일 단위로 읽기, 수정, 실행, 권한을 부여하는 방식으로 데이터 접근을 통제한다. 하지만 데이터 보안에 대한 요구가 더욱 세분화 되고 있어 파일안의 레코드나 필드와 같은 세부적인 단위에 대한 접근 통제와 권한 부여가 가능해야만 하다. 그리고 파일 시스템에서는 응용 프로그램이 파일을 사용하는 도중에 장애가 발생하면 데이터를 일관된 상태로 회복하기 어렵다.

 

4. 응용 프로그램 개발이 쉽지 않다.

 파일 시스템에서는 파일에 접근하여 데이터를 관리하는 모든 작업을 응용 프로그램이 담당해야 하기 때문에 사용자 요구에 맞는 응용 프로그램을 개발하는 데 어려움이 많다.

 

데이터베이스 관리 시스템(DBMS)

 DBMS(Database Management System)은 파일 시스템이 가진 데이터 중복과 데이터 종속 등의 문제를 해결하기 위해 제시된 소프트웨어이다. DBMS는 응용 프로그램을 대신하여 데이터베이스에 존재하는 데이터의 검색, 삭제, 삽입, 수정을 가능하게 하고 모든 응용 프로그램이 데이터 베이스를 공유할 수 있게 한다.

 DBMS는 여러 응용프로그램이 DB에 존재하는 데이터에 동시에 접근할 때 마다 발생할 수 있는 문제를 자체적으로 중재한다. 또한 DB를 직접 생성하고 접근하며 관리하는 일은 DBMS가 모두 담당하며 응용 프로그램은 원하는 데이터가 무엇이며, 어떤 처리를 원하는지만 DBMS에 요청하면 된다.

 

DBMS이 제공하는 주요 기능

1. 정의 기능

DBMS는 조직에 필요한 데이터를 저장하기 적합한 DB구조를 정의하거나, 이미 정의된 구조를 수정할 수 있다.

 

2. 조작기능

DBMS는 DB에 저장된 데이터에 접근하여 사용할 수 있는 기능을 제공한다. 즉, 사용자 요구에 따라 데이터를 삽입, 삭제, 수정, 검색하는 연산을 효율적으로 처리한다.

 

3. 제어 기능

 DBMS는 데이터를 여러 사용자가 공유해도 항상 정확하고 안전하게 유지하는 기능을 제공한다. 데이터를 조작하는 연산을 한 후에도 내용이 일관되면서 무결성을 유지하게 하고, 장애가 발생해도 회복이 가능하도록 제어한다. 그리고 권한이 있는 사용자에게만 데이터 접근을 허용하여 보안을 유지하도록 제어한다. 특히, 여러 사용자가 데이터베이스에 동시에 접근하여 데이터를 처리할 수 있도록 제어한다.

 

 

DBMS의 장단점

1. 데이터 중복을 통제할 수 있다.

 파일 시스템은 응용 프로그램마다 별도의 파일을 유지하기 때문에 중복된 데이터가 존재할 수 있지만, DBMS는 DB에 데이터를 통합하여 관리하기 때문에 중복문제를 해결할 수 있다.

 

2. 데이터 독립성이 확보된다.

 파일 시스템의 경우 파일 구조가 바뀌면 응용 프로그램도 함꼐 수정해야 하는데 반해, DBMS는 응용 프로그램을 대신해서 DB에 접근하고 이를 관리하는 모든 책임을 지기 때문에 DB의 구조가 변경되어도 응용 프로그램이 영향을 받지 않는다.

 

3. 데이터를 동시 공유할 수 있다.

 DBMS는 DB에 통합된 데이터를 여러 응용 프로그램이 공유하여 같은 데이터에 동시 접근할 수 있도록 지원한다.

 

4. 데이터 보안이 향상된다.

 DBMS는 DB에 대한 권한이 없는 사용자의 접근, 허용되지 않은 데이터와 연산에 대한 요청을 사전에 차단할 수 있다. 또한 사용자 별로 접근 가능한 데이터베이스 영역을 제한하거나 접근 수준을 차별화 할 수 있다.

 

5. 데이터 무결성을 유지할 수 있다.

 데이터 무결성을 저장된 데이터 값의 정확성을 의미한다. 예를 들어 학생의 성적이 100점인데, 10점으로 잘못 저장하거나 고객의 나이를 음수로 저장했다면 무결성을 위반한 것이다. DBMS는 데이터에 대한 연산히 수행될 때마다 유효성을 검사하여 데이터 무결성을 유지할 수 있게 한다.

 

6. 표준화 할 수 있다.

 데이터에 대한 모든 접근이 DBMS를 통해 이루어지기 때문에 데이터에 접근하는 방법, 데이터 형식과 구조 등을 표준화하기 쉽다.

 

7. 장애 발생시 회복이 가능하다.

 DBMS은 장애가 발생해도 데이터 일관성과 무결성을 유지하면서 데이터를 장애가 발생하기 이전 상태로 복구하는 회복 기능을 지원한다.

 

8. 응용 프로그램 개발 비용이 줄어든다.

 데이터에 대한 모든 관리를 DBMS에서 담당하기 때문에 파일 시스템을 사용할 때 보다 응용 프로그램 개발 비용이 적게 든다.

 

9. 비용이 많이 든다.

 파일 시스템은 운영체제와 함께 설치되어 별도의 구입 비용이 들지 않지만, DBMS은 별도 구입 비용이 많이 든다. 특히, 동시 사용이 허용되는 사용자 수에 따라 제품 가격도 증가한다.

 

10. 백업과 회복 방법이 복잡하다.

 DB는 데이터 양이 많아 구조가 복잡하고, 여러 사용자의 동시 공유를 지원하여 장애가 발생했을 때 원인과 상태를 정확하게 파악하기 어렵다. 그래서 장애 발생 전에 데이터를 미리 백업해놓고 장애 발생 후 데이터를 원래의 일관된 상태로 회복하는 방법이 복잡할 수밖에 없다.

 

11. 중앙 집중 관리로 인한 취약점이 존재한다.

 모든 데이터가 DB에 통합되어 있고, 이에 대한 책임이 DBMS에 집중되기 때문에 DB나 DBMS에 문제가 발생하여 전제 시스템의 업무 처리가 중단된다.

 

 

DBMS의 발전

 DBMS은 1960년대 부터 현재까지 계속 발전하고 있는데, 사용하는 데이터 모델에 따라 네트워크DBMS, 계층 DBMS, 관계 DBMS,객체지향 DBMS, 객체관계 DBMS로 구분할 수 있다.

 

1, 1세대 데이터베이스 관리 시스템 : 네트워크 DBMS와 계층 DBMS

 1960 ~ 1970년대에 사용된 네트워크 DBMS와 계층 DBMS가 1세대에 속한다.

네트워크 DBMS는 DB를 노드와 간선으로 이용한 그래프 형태로 구성하는 데이워크 데이터 모델이다. 간선을 이용해 데이터 간의 관계를 표현하기 때문에 DB의 구조가 복잡하고 변경하기 어렵다는 단점이 있다.

 

  계층 DBMS는 DB를 트리 형태로 구성하는 계층 데이터 모델이다. 계층 DBMS는 네트워크 DBMS보다 구조가 단순하지만 복잡한현실 세계의 모습을 부모 자식 관계로 명확한 형태로 표현하기 힘들다는 단점이 있다.

 

 

2. 2세대 데이터베이스 관리 시스템 : 관계 DBMS

 1980년대 초반부터 계속 사용되어 왔으며 DB를 단순하고 이해하기 쉬운 구조로 구성되었다. 이러한 이유로 관계 데이터 모델을 사용하는 관계 DBMS가 많이 개발되었으며 대표적으로 관계 DBMS는 오라클,MYSQL, MS SQL서버, 액세스, 인포믹스 등이 있다.

 

 

3. 3세대 데이터베이스 관리 시스템 : 객체지향 DBMS와 객체관계 DBMS

1980년대 후반부터 등장한 객체지향 DBMS는 객체지향 프로그래밍 개념에서 도입한 객체를 이용해 DB를 구성하는 개체지향 데이터 모델을 사용한다. 객체지향 DBMS는 더 복잡한 응용 분야의 데이터를 관리하려는 사용자 요구를 충족시키기 위해 제안되어 새로운 유형의 데이터 저장과 데이터의 복잡한 분석 및 처리를 지원한다. 대표적으로 객체지향 DBMS로는 오투, 온투스, 젬스톤 등이 있다.

 

 1990년대 후반부터 등장한 객체관계 DBMS는 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델을 사용한다. 쉽게 말해 객체 DBMS와 관계 DBMS를 통합한 것이라 생각할 수 있다.