Frinee의 코드저장소

데이터베이스 관리 시스템

by Frinee
이 글은 김연희 저 - "데이터베이스 개론 3판"을 공부하고 정리하여 작성하였습니다.

 

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

  • 데이터 관리 이전 파일 시스템을 활용하였다.
  • 그런데 파일 시스템은 별도의 구매 비용이 들지 않는다는 장점이 있지만 응용 프로그램마다 파일을 따로 유지하는 특징 때문에 발생한 문제들이 있다.
  1. 같은 내용의 데이터가 여러 파일에 중복 저장됨
    • 응용 프로그램별로 파일을 유지하므로 같은 데이터가 여러 파일에 저장될 수 있음
    • 데이터 일관성과 데이터 무결성을 유지하기 어려움
  2. 응용 프로그램이 데이터 파일에 종속적
    • 응용 프로그램은 파일에 직접 접근하여 데이터를 처리함
    • 그래서 사용하는 파일의 데이터를 구성하는 방법이나 물리적 저장 구조에 맞게 작성되야 함
    • 파일의 구조를 변경하면 응용 프로그램도 함께 변경되어야 함. (데이터 종속성)
  3. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족
    • 일반 파일 시스템에서 다른 응용 프로그램이 사용중인 파일에 접근하여 사용하는 동시 공유 기능이 없음
    • 파일 읽기•수정•실행 권한 부여를 파일 단위로 일일이 부여하는 것이 어려움
    • 파일에 문제가 발생한 경우 데이터를 일관된 상태로 유지하기 어려움
  4. 응용 프로그램 개발이 어려움
    • 파일 시스템에서는 파일에 접근해 데이터를 관리하는 모든 작업을 응용 프로그램이 담당하여 사용자 요구에 맞는 응용 프로그램 개발이 어려움
    • 새로운 응용 프로그램 개발을 위해선 데이터 읽기•삽입•삭제 등의 기본 데이터 관리 기능을 포함해야 함

 

2. 데이터베이스 관리 시스템의 정의

2.1. 데이터베이스 관리 시스템의 주요 기능

  1. 정의 기능
    • 조직에 필요한 데이터를 저장하기 적합한 데이터베이스 구조를 정의하거나 수정할 수 있음
  2. 조작 기능
    • 데이터베이스에 저장된 데이터에 접근하여 사용할 수 있는 기능을 제공
    • 사용자의 요구에 따라 삽입•수정•삭제•검색하는 연산을 효율적으로 처리
  3. 제어 기능
    • 데이터를 여러 사용자가 공유해도 항상 정확하고 안전하게 유지하는 기능 제공
    • 데이터를 삽입•수정•삭제 후에도 내용이 일관되면서 무결성을 유지하고 장애가 발생해도 회복
    • 권한이 있는 사용자에게만 데이터 접근을 허용하여 보안 유지
    • 여러 사용자가 데이터베이스에 동시에 접근하여 데이터를 처리할 수 있도록 제어

 

3. 데이터베이스 관리 시스템의 장•단점

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

  1. 데이터 중복 통제
    • 데이터를 통합하여 관리하므로 데이터 중복 문제를 해결할 수 있음
    • 효율성 때문에 데이터 중복을 허용하는 경우에도 중복을 최소화
  2. 데이터 독립성 확보
    • 데이터베이스 구조가 변경되도 응용 프로그램에 영향을 주지 않음
  3. 데이터 동시 공유
    • 통합된 데이터를 여러 응용 프로그램이 공유하여 같은 데이터에 동시 접근 가능
    • 동시 공유를 지원하여 불필요한 데이터 중복을 제한할 수 있음
  4. 데이터 보안 향상
    • 데이터를 중앙 집중식으로 관리하여 데이터에 대한 효율적인 접근 제어 가능
    • 권한에 따라 사용자의 접근 및 요청을 사전에 차단
  5. 데이터 무결성 유지
    • 데이터에 대한 관리를 집중적으로 수행하면서 데이터에 대한 연산이 수행될 때마다 유효성을 검사하여 데이터 무결성 유지
  6. 표준화
    • 모든 응용 프로그램이 데이터베이스 관리 시스템이 미리 정한 표준화된 방식을 통해 데이터베이스에 접근할 수 있음
  7. 장애 발생 시 회복
    • 데이터베이스 관리 시스템에 장애가 발생해도 데이터 무결성와 일관성을 유지하면서 데이터를 장애가 발생하기 이전으로 복구할 수 있음
  8. 응용 프로그램 개발 비용 감소
    • 데이터에 대한 모든 관리를 데이터베이스 관리 시스템이 하기 때문에 개발비용이 적게 듬
    • 데이터베이스 구조가 변경되도 응용프로그램에는 영향이 없으므로 유지보수비용도 줄어듦

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

  1. 비용이 많이 듦
    • 데이터베이스 관리 시스템은 따로 설치해야 하므로 구매 비용이 듦
    • 동시 사용자 수에 따라 제품 가격도 증가
  2. 백업과 회복 방법이 복잡함
    • 장애가 발생했을 때, 원인과 상태 파악이 어려움
    • 그래서 미리 백업해 놓고 장애 발생 후 데이터를 일관된 상태로 회복하는 방법이 복잡
  3. 중앙 집중 관리로 인한 취약점이 존재
    • 모든 데이터가 데이터베이스에 통합되어 있어 이에 대한 관리 책임이 집중됨
    • 데이터베이스 관리 시스템에 문제가 생길 경우, 모든 시스템 업무 처리가 중단됨

 

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

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

  • 1960~1970년대에 사용된 네트워크 DBMS와 계층 DBMS가 1세대에 속함
  • 네트워크 DBMS
    • 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성한 모델
    • 간선을 이용해 데이터 간 관계를 표현하기 때문에 데이터베이스 구조가 복잡하고 변경하기 어렵다.
    ex) IDS(Integrated Data Store)
  • 계층 DBMS
    • 데이터베이스를 트리 형태로 구성하는 계층 데이터 모델
    • 네트워크 DBMS보다 단순한 구조지만 구조 변경이 어렵단 단점
    ex) IMS(Information Management System)

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

활동하기