데이터베이스 관리 시스템

Junseong·2022년 1월 17일
0

본 시리즈는 ‘데이터베이스 개론 2판’ 책을 통해 공부한 내용을 정리한 글입니다.


📔 데이터베이스 관리 시스템의 등장배경

데이터베이스 관리 시스템을 사용하기 이전에는 파일 시스템을 이용하여 데이터를 저장하고 이용하였다. 그러나 파일 시스템에는 다음과 같은 문제점들이 존재했다.

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

같은 내용의 데이터가 여러 파일에 저장 되어 있으면 데이터의 일관성과 무결성을 유지하기 힘들다.

예를 들어 주민등록번호 파일과 운전 면허 정보 파일이 있다고 가정해보자.

어떤 사람이 개명을 할 경우 주민등록번호 파일과 운전 면허 정보 파일에서 개명한 사람의 이름을 바꿔줘야한다.

그런데 이 과정에서 주민등록번호 파일만 수정하고 운전 면허 정보 파일은 수정하지 않는 경우 그 데이터의 일관성은 깨지게 된다.

또, 주민등록번호 파일에서는 이름이 최대 5글자로 제한하는 반면 운전 면허 정보 파일에서는 이름을 최대 4글자로 제한하는 경우 데이터의 무결성은 깨지게 된다.

이를 해결하는 방법으로 주민등록번호파일과 운전면허정보파일의 이름을 제거하고 별도의 이름파일을 만들고 응용 프로그램단에서 필요에 따라 파일들을 합쳐 사용하는 방법을 생각해 볼 수 있다.

그러나 여전히 다른 문제점들이 남아 있다.

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

응용 프로그램이 데이터 파일에 직접적으로 접근하여 사용하기 때문에 만약 데이터 파일의 구조나 저장 위치가 변경될 경우 응용 프로그램도 그에 맞게 수정해주어야만 된다.

예를 들어 주민등록번호 파일에 휴대전화 정보가 추가될 경우 주민등록번호 파일을 사용하는 모든 응용 프로그램의 파서(parser)를 그에 맞게 수정해야한다.

또, 주민등록번호 파일의 물리적인 위치가 바뀔 경우에는 주민등록번호 파일을 사용하는 모든 응용프로그램의 파일 접근 주소도 변경해야한다.

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

파일은 여러 사용자가 동시에 접근해서 사용하는 동시 공유 기능을 제공하지 않는다.

또한 파일은 파일 전체에 대한 접근 제어만을 제공하기 때문에 특정 필드같은 더 작은 단위에 대한 접근 제어가 불가능 하다.

마지막으로 파일간의 관계 정보가 없기 때문에 장애가 발생했을시 특히나 어떤 값을 수정하는 도중에는 일관성 있는 상태로 회복을 하기가 매우 어렵다.


📔 데이터베이스 관리 시스템 정의

데이터베이스 관리 시스템은 앞서 말한 문제점들을 해결하기 위해 등장하였고 다음과 같이 정의할 수 있다.

통합 저장된 데이터를 관리하고 모든 응용 프로그램이 공통으로 요구하는 데이터에 대한 기본 처리를 담당하면서 동시 공유, 보안, 회복 등의 복잡한 기능을 제공해주는 시스템

통합 저장이란 데이터 중복성을 제거하기 위해 주민등록번호 파일과 운전 면허 정보 파일에서 이름을 제거하고 별도의 이름 파일을 생성했던것과 같은 과정을 말하고 이렇게 저장된 데이터들이 통합 저장된 데이터이다.


📗 데이터베이스 관리 시스템의 장점

  1. 데이터 중복성을 줄여 일관성을 유지하게 해준다.
  2. 유효성 검사를 통해 무결성을 보장한다.
  3. 데이터 독립성이 확보된다.
  4. 데이터를 동시에 공유할 수 있다.
  5. 표준화가 가능하다.
  6. 응용 프로그램 개발 비용이 감소된다.
  7. 데이터 보안이 향상된다.
  8. 장애 발생시 회복이 가능하다.

📕 데이터베이스 관리 시스템의 단점

  1. 장애 회복이 가능하나 복잡하다.
  2. 비용이 많이 든다.
  3. 중앙 집중 관리로 인한 취약점이 존재한다.

📔 데이터베이스 관리 시스템의 발전 과정

1세대: 네트워크, 계층 DBMS

1960년대부터 1970년대에 사용된 DBMS이다.

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

계층 DBMS는 트리 형태로 구성하는 계층 데이터 모델을 사용하는데 복잡한 현실 세계를 단순한 트리 형태로 표현하기 어렵다는 단점이 있다.


2세대: 관계 DBMS

1980년대 초반부터 현재까지 계속 사용되어지고 있는 DBMS이다.

관계 DBMS는 데이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용한다.

관계 데이터 모델은 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성한다는 점이 있다.

대표적인 관계 DBMS로 Oracle, MS SQL, Access, Informix 등이 있다.


3세대: 객체지향, 객체관계 DBMS

객체지향 DBMS는 객체 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용한다.

객체지향 프로그램에서 사용하는 객체들과 데이터베이스 스키마 구조가 유사하기 때문에 추가적인 변환 처리작업에 드는 비용이 적고 비정형 데이터를 지원한다는 장점이 있다.

객체지향 모델의 표준 개념이 미흡하고 기존 관계형 데이터베이스와 호환(SQL 지원 못함) 문제, 객체 구조를 알아야하는 질의와 객체 구조를 숨기는 객체지향의 캡슐화가 충돌하는 모순이 있기 때문에 데이터 구조 질의를 최적화하기 어렵고 비용이 많이 든다는 단점이 있다.


객체관계 DBMS는 기존의 관계 DBMS에 객체지향 DBMS의 장점을 결합한 새로운 개념의 데이터베이스이다.

기존 관계형 데이터베이스와 호환이 되면서도 객체 지향에서의 참조 타입을 지원함으로써 JOIN연산이 아닌 네비게이션 접근이 가능해졌다는 점과 사용자 정의 타입 지원, 객체간의 상속관계를 지원한다는 장점이 있다.

그러나 객체관계 모델도 표준 개념이 미흡함으로써 제품마다 차이가 존재하고 사용자에게 혼란을 준다는 단점이 있다.


4세대: NoSQL, NewSQL DBMS

NoSQL DBMS는 비정형 데이터를 다루는 SNS의 인기가 폭발적으로 높아짐으로 등장하게 되었다.

안정성과 일관성 유지를 위한 복잡한 기능을 포기한 대신 성능과 확장성(특히 scale out)을 확보한 점, 스키마가 없기 때문에 유연한 데이터 구조를 가진다는 장점이 있다.

중복된 데이터가 존재하는 환경에서 최종 일관성을 유지하기 위해서 같은 연산을 여러 곳에 해야 한다는 단점이 있다.


NewSQL DBMS는 관계형 DBMS의 높은 안정성과 일관성 그리고 NoSql의 확장성 및 유연성을 지원하는 데이터베이스이다.

시장에 진입한 지 얼마 되지 않아 앞으로 큰 발전이 기대되지만 당분간 관계형 DBMS, Nosql 과 공존할 것으로 예상된다.

대표적으로 Amazon RDS, Google Spanner, VoltDB 등이 있다.

profile
#취준생 #Back-end

2개의 댓글

comment-user-thumbnail
2022년 5월 9일

asf

답글 달기
comment-user-thumbnail
2022년 5월 9일

g

답글 달기