[#2] 데이터베이스 관리 시스템

Posted by Neph's Blog on October 8, 2021

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

파일 시스템

  • 데이터를 파일로 관리하기 위해 파일을 생성/삭제/수정/검색하는 기능을 제공하는 소프트웨어
  • 응용 프로그램마다 필요한 데이터를 별도의 파일로 관리함
  • 여러 사용자/프로그램이 공유하지 않음


파일 시스템의 문제점

  • 같은 내용의 데이터가 여러 파일에 중복 저장된다 (데이터 중복성)
    • 저장공간의 낭비 + 데이터 일관성(consistency)과 데이터 무결성(integrity) 유지 어려움
  • 응용 프로그램이 데이터 파일에 종속적이다 (데이터 종속성)
    • 사용하는 파일의 구조를 변경하면 응용프로그램도 함께 변경해야 함 (데이터 구조에 맞게 코드를 변경해야 함)
  • 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다
    • 공유, 보안 회복 기능을 가지고 있는 응용 프로그램을 개발하기 쉽지 않다

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

데이터베이스 관리 시스템 (DBMS: Database Management System)

  • 파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어
    • 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 집중적으로 담당
    • 데이터베이스에 들어 있는 데이터를 삽입/삭제/수정/검색하고, 모든 응용 프로그램이 데이터베이스를 공유할 수 있도록 함
  • 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리

데이터베이스 관리 시스템에서의 데이터 관리

image-20211007154931965

  • 데이터는 DB에 통합되어 저장된다.
  • 서로 다른 응용 프로그램들이 동시에 데이터베이스를 사용하더라도 문제가 발생하지 않도록 DBMS가 이를 처리해준다
  • 사용자는 File이 아닌 DBMS를 통해 데이터를 관리 조작한다
  • 데이터베이스의 구조나 접근 방법 등이 변경되어도 문제가 없는 데이터 독립성이 확보된다


DBMS의 주요 기능

  • 정의 기능
    • 데이터베이스 구조를 정의하거나 수정할 수 있다.
  • 조작 기능
    • 데이터를 삽입/삭제/수정/검색하는 연산을 할 수 있다.
  • 제어 기능
    • 데이터를 항상 정확하고 안전하게 유지할 수 있다.

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

장점

  • 데이터 중복을 통제할 수 있다
  • 데이터 독립성이 확보된다
  • 데이터를 동시 공유할 수 있다
  • 데이터 보안이 향상된다
  • 데이터 무결성을 유지할 수 있다
    • 데이터 무결성은 저장된 값의 정확성을 의미
    • 데이터에 대한 연산 수행시마다 유효성을 검사하여 무결성을 유지
  • 표준화할 수 있다
  • 장애 발생 시 회복이 가능하다
  • 응용 프로그램 개발 비용이 줄어든다


단점

  • 시스템이 사용하는 비용(리소스 자원 등)이 많이 든다
  • 백업과 회복 방법이 복잡하다
  • 중앙 집중 관리로 인한 취약점이 존재한다 (Single Point Of Failure(SPF/SPOF))
    • 해결법: DB를 여러개로 분산 시키기

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

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

image-20211007161131756

  • 네트워크 DBMS
    • 데이터베이스를 그래프 형태로 구성
    • 간선을 이용해 데이터 간의 관계를 나타내기 때문에 데이터베이스의 구조가 복잡하고 변경하기 어려움
    • i.e., Integrated Data Store
  • 계층 DBMS
    • 데이터베이스를 트리 형태로 구성
    • 현실 세계의 모습을 트리 형태로 표현하기 어렵고 구조 변경이 어려움
    • i.e., Information MAnagement System


2세대: 관계 DBMS

  • 관계 DBMS
    • 1980년 초부터 계속해서 사용되어 온 DBMS
    • 데이터베이스를 테이블 형태로 구성
    • 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성한다는 장점이 존재하기에 현재도 주류
    • i.e., MySQL, Oracle, MS SQL Server

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

  • 객체지향 DBMS
    • 객체를 이용해 데이터베이스를 구성
    • 개념이 어렵고 복잡하여 제대로 사용하기 어렵다는 단점이 존재
  • 객체관계 DBMS
    • 객체지향 DBMS를 개선한 것
    • 그럼에도 불구하고 사용률이 낮음


4세대 이후: NoSQL/NewSQL DBMS

  • NoSQL DBMS
    • Not Only SQL의 뜻
    • 데이터 구조를 미리 정해두지 않아 유연한 활용이 가능함 (비정형 데이터를 처리하는데 적합)
    • 확장성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용
    • 기존의 장점이던 안정성과 일관성 유지를 위한 복잡한 기능을 포기한 DBMS
    • 장점이 분명하지만 관계 DBMS를 넘어 주류 DBMS가 되기에는 부족
      • 아직 기업에서 처리하는 데이터 중 정형 데이터의 비율이 높음
      • 기존 데이터를 옮기는 비용 측면의 문제
    • i.e., MongoDB, Cassandra, HBase
image-20211007164838687
발전 과정