-
002 데이터베이스 관리 시스템CS/DataBase 2024. 10. 11. 17:23
01. 데이터베이스 관리 시스템의 등장 배경
파일 시스템의 응용 프로그램마다 파일을 따로 유지하는 특징 때문에 다음과 같은 문제가 발생한다.
1) 같은 내용의 데이터가 여러 파일에 중복 저장된다. 즉, 데이터 중복성 문제가 발생
-> 데이터가 중복되면 저장 공간이 낭비될 뿐 아니라 데이터 일관성과 데이터 무결성을 유지하기가 어렵다.
2) 응용 프로그램이 데이터 파일에 종속적이다.
응용 프로그램은 파일에 직접 접근하여 데이터를 처리해야 하므로 사용하는 파일의 데이터를 구성하는 방법이나 물리적인 저장 구조에 맞게 작성되어야 한다.
그래서 사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 하는데 이러한 특징을 데이터 중복성이라 한다.
3) 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
4) 응용 프로그램을 개발하기 쉽지 않다.
=> 파일 시스템이 지닌 모든 문제의 근본 원인은 데이터 중복성과 데이터 종속성으로 요약할 수 있다.
02. 데이터베이스 관리 시스템의 정의
- 데이터베이스 관리 시스템(DBMS : DataBase Management System) : 파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트 웨어.
조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 집중적으로 담당한다.
응용 프로그램을 대신하여 데이터베이스에 들어 있는 데이터를 삽입·삭제·수정·검색하고 모든 응용 프로그램이 데이터베이스를 공유할 수 있게 한다.
-> 데이터베이스를 생성하고 접근하며 관리하는 일은 데이터베이스 관리 시스템이 모두 담당함.
-> 사용자는 직접 또는 응용 프로그램을 통해 원하는 데이터가 무엇이며, 어떤 처리를 원하는지만 데이터베이스 관리 시스템에 요청하면 된다.
-> 데이터베이스와 관련된 작업은 데이터베이스 관리 시스템이 수행한 후 그 결과만 응용 프로그램을 통해 사용자에게 전달해주는 것이다.
=> 데이터베이스 구조나 접근 방법 등이 변경되어도, 사용자가 미리 알거나 응용 프로그램을 변경할 필요가 없어 데이터 독립성이 확보됨.
<주요 기능>
1) 정의 기능 : 조직에 필요한 데이터를 저장하기 적합한 데이터베이스 구조를 정의하거나, 이미 정의된 구조를 수정할 수 있다.
2) 조작 기능 : 데이터베이스에 저장된 데이터에 접근하여 사용할 수 있는 기능을 제공한다.
즉, 사용자 요구에 따라 데이터를 삽입ㆍ삭제ㆍ수정ㆍ검색하는 연산을 효율적으로 처리한다.
3) 제어 기능 : 데이터를 여러 사용자가 공유해도 항상 정확하고 안전하게 유지하는 기능을 제공한다.
특히, 여러 사용자가 데이터베이스에 동시에 접근하여 데이터를 처리할 수 있도록 제어한다.
03. 데이터베이스 관리 시스템의 장·단점
1. 데이터베이스 관리 시스템의 장점
1) 데이터 중복을 통제할 수 있다.
데이터베이스에 데이터를 통합하여 관리하므로 데이터 중복 문제를 해결할 수 있다. 또한 효율성 때문에 데이터 중복을 허용하는 경우에도 중복을 최소화하도록 통제하므로 데이터 일관성도 유지할 수 있다.
2) 데이터 독립성이 확보된다.
응용 프로그램을 대신해서 데이터베이스에 접근하고 이를 관리하는 모든 책임을 지므로 데이터베이스 구조가 변경되어도 응용 프로그램이 영향을 받지 않는다.
즉, 응용 프로그램과 데이터베이스 사이에 독립성이 확보된다.
3) 데이터를 동시 공유할 수 있다.
데이터베이스에 통합된 데이터를 여러 응용 프로그램이 공유하여 같은 데이터에 동시 접근할 수 있도록 지원한다.
이는 데이터베이스 관리 시스템이 동일한 데이터를 각 응용 프로그램의 요구에 따라 다양한 구조로 제공해 줄 수 있고, 동시 접근을 제어하는 어려운 기술을 보유하고 있어 가능한 일이다. 그리고 동시 공유를 지원하므로 불필요한 데이터 중복을 제한할 수 있다.
4) 데이터 보안이 향상된다.
데이터베이스를 이용해 데이터를 중앙 집중식으로 관리하므로 데이터에 대한 효율적인 접근 제어가 가능하다.
권한이 없는 사용자의 접근, 허용되지 않은 데이터와 연산에 대한 요청을 사전에 차단할 수 있어 철저한 보안을 제공한다.
그리고 사용자별로 접근 가능한 데이터베이스 영역을 제한하거나 접근 수준을 차별화할 수 있다.
5) 데이터 무결성을 유지할 수 있다.
데이터 무결성은 저장된 데이터 값의 정확성을 의미한다.
데이터에 대한 관리를 집중적으로 수행하면서 데이터에 대한 연산이 수행될 때마다 유효성을 검사하여 데이터 무결성을 유지할 수 있게 해준다.
6) 표준화할 수 있다.
데이터에 대한 모든 접근이 데이터베이스 관리 시스템을 통해 이루어지므로 데이터에 접근하는 방법, 데이터 형식과 구조 등을 표준화하기 쉽다.
7) 장애 발생 시 회복이 가능하다.
8) 응용 프로그램 개발 비용이 줄어든다.
데이터 베이스의 구조가 변경되어도 응용 프로그램은 변경할 필요가 없어 유지 보수 비용이 파일 시스템을 사용할 떄보다 줄어든다.
2. 데이터베이스 관리 시스템의 단점
1) 비용이 많이 든다.
따로 설치해야 하므로 구매 비용이 맣이 든다. 특히, 동시 사용이 허용되는 사용자 수에 따라 제품 가격도 증가한다.
그리고 복잡하고 다양한 기능을 제공하기 위해 컴퓨터 자원을 많이 사용한다.
2) 백업과 회복 방법이 복잡하다.
3) 중앙 집중 관리로 인한 취약점이 존재한다.
장애가 발생하면 전체 시스템의 업무 처리가 중단된다. 특히, 데이터베이스에 대한 의존도가 높은 시스템일수록 가용성과 신뢰성에 치명적인 영향을 받을 수 있다.
04. 데이터베이스 관리 시스템의 발전 과정
데이터 모델 : 데이터를 데이터베이스에 저장하는 구조를 의미.
1. 1세대 데이터베이스 관리 시스템 : 네트워크·계층 DBMS
- 네트워크 DBMS : 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델을 사용한다.
간선을 이용해 데이터 간의 관계를 표현하므로 데이터베이스의 구조가 복잡하고 변경하기 어렵다는 단점이 있다.
ex. 1960년대 초에 개발된 IDS
- 계층 DBMS : 데이터베이스를 트리 형태로 구성하는 계층 데이터 모델을 사용한다.
네트워크DBMS보다 구조가 단순하지만 복잡한 현실 세계의 모습을 부모 자식 관계가 명확한 트리 형태만으로 표현하기가 힘들고, 구조 변경이 어렵다는 단점이 여전히 존재한다.
ex. 1960년대 후반에 개발된 IMS
2. 2세대 데이터베이스 관리 시스템 : 관계 DBMS
- 데이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용한다.
데이터베이스를 단순하고 이해하기 쉬운 구조로 구성한다는 장점이 있다.
ex. 오라클, MS SQL 서버, 액세스, 인포믹스, MySQL, 마리아DB
3. 3세대 데이터베이스 관리 시스템 : 객체지향·객체관계 DBMS
- 객체지향 DBMS : 객체지향 프로그래밍에서 도입한 객체라는 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용한다.
ex. 오투, 온투스, 젬스톤
- 객체관계 DBMS : 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델을 사용한다. 쉽게 말해 객체지향 DBMS와 관계 DBMS의 개념을 통합한 것이다.
ex. 오라클
4. 4세대 이후 데이터베이스 관리 시스템 : NoSQL·NewSQL DBMS
- NoSQL DBMS는 데이터 구조를 미리 정해두지 않으므로 비정형 데이터를 저장하고 처리하는데 적합하다.
그리고 확성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용한다.
ex. 몽고디비, H베이스, 카산드라, 레디스, 네오포제이, 오리엔트DB
- NewSQL DBMS은 안정성과 일관성을 유지하면서도 SQL을 이용해 다양하고 복잡한 데이터 처리를 편리하게 요청할 수 있다.
즉, 관계 DBMS의 장점과 NoSQL의 확장성 및 유연성을 모두 지원한다. 따라서 정형 및 비정형 데이터를 안정적이고 빠르게 처리할 수 있다.
ex. 구글 스패너, 볼트DB, 누오DB
[참고] 데이터베이스 개론_한빛 아카데미
'CS > DataBase' 카테고리의 다른 글
003 데이터베이스 시스템 (0) 2024.10.11 001 데이터베이스 기본 개념 (0) 2024.10.11