DB | 2. 데이터베이스 관리 시스템

ja_efan·2024년 1월 10일
0

DB

목록 보기
2/8
post-thumbnail

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

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

파일 시스템(file system)은 오랫동안 사용된 정보 처리 시스템이다.

데이터를 파일로 관리할 수 있도록 파일을 생성, 삭제, 수정, 검색하는 기능을 제공하며, 일반적으로 운영체제(OS)와 함께 설치된다.

응용 프로그래머가 파일 시스템을 사용한 응용프로그램을 구현하기 위해서는 해당하는 파일 시스템의 논리적인 구조 뿐만 아니라 물리적인 구조도 정확히 파악해야 한다.

파일 시스템의 단점

  1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.
    a. Data redundancy에 관한 문제점이며, data redundancy는 data consistency(데이터 일관성)과 data integrity(데이터 무결성)에도 부정적인 영향을 끼친다.
  1. 응용 프로그램이 데이터 파일에 종속적이다.
    b. Data dependency에 관한 설명이다. 앞서 설명한 것 처럼 응용 프로그램을 구현하기에 앞서 파일 시스템의 논리/물리적 구조를 파악하고 이에 맞추어 구현해야 하므로 응용 프로그램이 데이터 파일에 종속적일 수 밖에 없다.
  1. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
    c. 일반적으로 파일 시스템은 동시 공유 기능을 제공하지 않으며, 파일 단위로 권한을 부여한다. 하지만 최근 더 작은 단위(레코드, 필드)에 대한 접근 통제와 더 구체적인 권한 부여를 필요로 한다. 응용프로그램이 파일을 사용하는 도중 장애가 발생하면 데이터를 일관된 상태로 회복하기가 어렵다. 특히 데이터를 수정하는 도중 장애가 발생하는 경우 더욱 어렵다.

  2. 응용 프로그램 개발이 쉽지 않다.
    d. 응용 프로그램이 파일 시스템에 접근하여 데이터를 관리하는 모든 작업을 수행해야 하기 때문에 응용 프로그램 구현과정에 어려움이 많다.

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

파일 시스템의 문제점 : data redundancy, data dependency

solution : DBMS(DataBase Management System)

데이터베이스 관리 시스템은 파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어이다. 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고, 이에 대한 관리를 담당한다.

응용 프로그램 대신 데이터 삽입, 삭제, 수정, 검색기능을 수행하고, 데이터베이스가 공유될 수 있도록 관리한다.

DBMS의 주요 기능

  1. 정의(definition) 기능 : 데이터베이스 구조를 정의하거나 수정하는 기능
  2. 조작(manipulation) 기능 : 데이터를 삽입, 삭제, 수정, 검색하는 연산(기능)
  3. 제어(control) 기능 : 데이터를 항상 정확하고 안전하게 유지하는 기능

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

1. 장점 Pros.

  1. 데이터 중복 통제
    a. DBMS는 데이터를 통합하여 관리하므로 데이터 중복 문제를 해결할 수 있다.
    또한 효율성 때문에 데이터 중복을 허용하는 경우에도 통제가 가능하도록 중복을 최소화하므로 데이터 일관성도 유지할 수 있다.
  1. 데이터 독립성 확보
    a. DBMS는 응용 프로그램을 대신하여 데이터베이스에 접근하고 이를 관리하는 모든 책임을 지기 때문에 데이터베이스 구조가 변경되어도 응용 프로그램이 영향을 받지 않는다. 즉, 응용 프로그램과 데이터베이스 사이에 독립성이 확보된다.

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

  3. 데이터 보안 향상
    a. DBMS는 데이터베이스를 이용해 데이터를 중앙 집중식으로 관리하므로 데이터에 대한 효율적인 접근 제어가 가능하다. 권한이 없는 사용자의 접근, 허용되지 않은 데이터와 연산에 대한 요청을 사전에 차단할 수 있어 철저한 보안을 제공한다.

  4. 데이터 무결성 유지
    a. DBMS는 데이터에 대한 관리를 집중적으로 수행하면서 데이터에 대한 연산이 수행될 때 마다 유효성을 검사하여 데이터 무결성을 유지할 수 있게 해준다.

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

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

  7. 응용 프로그램 개발 비용 감소
    a. 데이터에 대한 모든 관리를 응용 프로그램 대신 DBMS가 담당하기 때문에 파일 시스템을 사용할 때보다 응용 프로그램 개발 비용이 적게 든다. 데이터 의존성도 낮기 때문에 유지보수 비용도 감소한다.

2. 단점 Cons.

  1. 비용이 많이 든다.
    a. DBMS는 따로 설치하고 운영해야 하므로 추가적인 비용이 든다. (사용 인원에 따른 가격 책정 등)

  2. 백업 및 회복 방법이 복잡하다.
    a. 데이터베이스는 데이터의 양이 많고 구조가 복잡하고, 동시 공유를 지원하기 때문에 장애가 발생했을 때 원인과 상태를 정확히 파악하기가 어렵다.

  3. 중앙 집중 관리로 인한 취약점이 존재한다.(SPOF)
    a. 모든 데이터가 데이터베이스에 통합되어 있고 이에 대한 관리 책임이 DBMS에 집중되어, 데이터베이스나 DBMS에 장애가 발생할 경우 전체 시스템의 업무 처리에 지장을 준다.
    특히, 데이터베이스에 대한 의존도가 높은 시스템일 수록 가용성과 신뢰성에 치명적인 영향을 받는다.

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

💡 data model : 데이터를 데이터베이스에 저장하는 구조

1. 1세대 DBMS : 네트워크 / 계층 DBMS

  1. 네트워크(Network) DBMS는 데이터베이스를 노드와 간선(edge)을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델을 이용한다.
    a. 그래프 특성상 복잡한 구조로 변경하기 어렵다.
    ex. IDS(Integrated Data Store)

    Network DBMS
  2. 계층(Hierarchical) DBMS는 데이터베이스를 트리형태로 구성하는 계층 데이터 모델을 이용한다.
    a. 네트워크 모델에 비해 상대적으로 단순한 구조를 가진다.
    b. 복잡한 현실 세계의 모습을 단순한 부모-자식 관계로 표현하는데 한계가 존재한다.
    c. 구조 변경이 어렵다.
    ex. IMS(Information Management System)

    Hierarchical DBMS

2. 2세대 DBMS : 관계 DBMS

  1. 관계(Relational) DBMS는 데이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용한다.
    a. 단순하고 이해하기 쉬운 구조이다.
    b. 현재까지도 가장 많이 사용되는 DBMS이다.
    ex. Oracle, MS SQL Server, MySQL, etc.

3. 3세대 DBMS : 객체지향 / 객체관계 DBMS

  1. 객체지향 DBMS는 객체지향 프로그래밍(Object Oriented Programming)에서 도입한 ‘객체’라는 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용한다.
    a. 새로운 유형의 데이터를 저장하고, 데이터에 대한 복잡한 분석 및 처리를 지원한다.
  2. 객체관계 DBMS는 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델을 사용한다.
    a. RDBMS + 객체지향 DBMS

4. 4세대 DBMS : NoSQL / NewSQL DBMS

SNS, Youtube와 같은 서비스는 정형 데이터보다 비정형 데이터를 훨씬 많이 생산한다. 이와 더불어 클라우드 컴퓨팅, 빅데이터의 개념이 등장하기 시작하면서 RDBMS에 대한 확신이 흔들리게 되었다. (RDBMS는 비정형 데이터를 처리하기에는 비효율적)

이런 시대적 흐름은 NoSQL(Not Only SQL) DBMS의 등장을 이끌었다.

  1. NoSQL DBMS는 RDBMS가 강점으로 제시하던 안정성과 일관성 유지를 위한 복잡한 기능을 포기하고, 데이터 구조를 미리 정해두지 않기 때문에 비정형 데이터를 저장하고 처리하는 데 적합하다. 그리고 확장성이 뛰어나 여러 대의 서버에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용한다.
    ex. MongoDB, Cassandra, HBase, etc.

    비정형 데이터가 아무리 증가하여도 각 기업에서 처리하는 데이터는 정형 데이터의 비율이 가장 높기 때문에 안정성과 일관성을 보장하는 RDBMS를 NoSQL로 대체하기는 쉽지 않았다. 이와 같은 생각은 NewSQL DBMS의 등장을 이끌었다.

  2. NewSQL DBMS는 안정성과 일관성을 유지하면서도 SQL을 이용해 다양하고 복잡한 데이터 처리를 편리하게 요청할 수 있다. 즉, 관계 DBMS의 장점과 NoSQL의 확장성 및 유연성을 모두 지원한다. 따라서 정형 및 비정형 데이터를 안정적이고 빠르게 처리할 수 있다.
    ex. Google’s Spanner, VoltDB, NuoDB, etc.

reference. 데이터베이스개론 2판, 김연희, 한빛아카데미

profile
이것저것.

0개의 댓글