[데이터베이스 개론 2장] 데이터베이스 관리 시스템(DBMS)

Mh_Go·2020년 12월 29일
0

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

DBMS 등장 이전 데이터를 관리하기 위해선 파일 시스템이라는 소프트웨어를 이용

파일 시스템

1)데이터를 파일로 관리할 수 있도록 파일을 생성,삭제,수정,검색하는 기능 제공
2)응용 프로그램별로 필요한 데이터를 관리

위와 같이 관리를 하다 보니 아래와 같은 문제점 발생

  • 같은 내용의 데이터가 여러 파일에 중복 저장
    데이터 중복성 발생, 이로 인한 저장 공간의 낭비와 데이터 일관성, 데이터 무결성 손실
  • 응용 프로그램이 데이터 파일에 종속적
    응용 프로그램이 파일에 직접 접근하여 데이터를 처리, 따라서 파일의 데이터를 구성하는 방법이나 물리적 저장 구조에 맞게 작성 -> 데이터 종속성
    파일에 데이터 속성이 추가될 시 관련된 모든 응용 프로그램에서 접근 방식을 변경해야함
  • 데이터 파일에 대한 동시 공유, 보안, 회복 기능 부족
    동시 공유 기능 제공이 안되며, 파일 단위 접근 권한 부여로 통제 -> 구체적인 권한 부여로 보안을 유지해야될 필요성 증가, 장애가 발생 시 일관된 상태로 복구하기 어려움
  • 응용 프로그램을 개발하기 어려움
    파일에 접근하여 데이터를 관리하는 작업을 응용 프로그램이 담당 -> 기본적인 데이터 관리 기능을 모두 포함
  • 문제점들의 근본 원인 - 데이터 종속성데이터 중복성
  • 데이터 종속성(data dependency) - 데이터와 응용 프로그램 간의 상호 의존 관계
    똑같은 내용을 표로 작성해 doc파일로 저장한 경우에는 데이터의 종속성 때문에 excel파일로는 열 수 없음
  • 데이터의 중복성(data redundancy) - 동일한 내용의 파일이 여러개 생기는 것
    데이터가 중복되면 저장 공간이 낭비되고 데이터가 변동되거나 갱신할 때 수정된 내용을 동시에 모두 반영해야하니 굉장히 비효율적

데이터베이스 관리 시스템(DBMS)

파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어
여러 응용 프로그램들이 동시에 데이터베이스에 접근할 때 발생할 수 있는 문제를 중재
데이터베이스 생성, 접근, 관리 모두 담당
사용자는 요청만 하면 되며, 데이터베이스의 물리적 저장 구조나 데이터 접근 및 처리 방법 등을 자세히 알 필요가 없음
데이터 변동 발생 시 사용자가 알거나 응용 프로그램이 변경될 필요가 없음 - 데이터 독립성 보장

DBMS의 주요 기능

  • 정의 기능 - 데이터베이스 구조를 정의하거나 수정 가능
  • 조작 기능 - 데이터를 삽입,삭제,수정,검색하는 연산 가능
  • 제어 기능 - 데이터를 항상 정확하고 안전하게 유지 가능
    (장애가 발생해도 회복 가능하도록 제어, 기밀성 보장, 동시 공유 보장)

DBMS 장점

1. 데이터 중복을 통제 - 데이터베이스에 데이터를 통합하여 관리함 -> 중복 문제 해결
효율성 때문에 중복을 허용해도 통제 가능한 선에서 최소화 -> 데이터 일관성 유지
2. 데이터 독립성 확보 - 데이터베이스 (저장)구조가 변경되어도 응용 프로그램이 영향을 받지 않음
3. 데이터 동시 공유 가능 - 이를 통해 불필요한 데이터 중복을 제한할 수 있음
4. 데이터 보안이 향상 - 중앙 집중식 관리를 통한 데이터에 대한 효율적인 접근 제어 수행
5. 데이터 무결성 유지 가능 - 연산이 수행될 때마다 유효성을 검사
6. 표준화 가능 - DBMS가 미리 정한 표준화 방식을 통해 데이터베이스에 접근
7. 장애 발생 시 회복 가능 - 데이터 일관성과 무결성을 유지하면서 이전 상태로 복구
8. 응용 프로그램 개발 비용 감소 - 개발 및 유지보수 비용이 감소

DBMS 단점

1. 고비용 - DBMS 구매 비용, 복잡한 기능을 제공하기에 컴퓨터 자원을 많이 점유
2. 복잡한 백업 및 복구 - 데이터베이스는 구조가 복잡하고 동시 공유를 지원하기에 장애의 원인과 상태를 정확히 파악하기 어려움
따라서 장애 발생 전에 데이터를 미리 백업해놓고 장애 발생 후에 데이터를 일관된 상태로 회복하는 방법 사용 -> 복잡함
3. 중앙 집중 관리로 인한 취약점 존재 - 장애 발생 시 전체 시스템의 업무 처리가 중단
데이터베이스에 대한 의존도가 높은 시스템일수록 가용성, 신뢰성에 치명적 영향을 받을 수 있음

DBMS의 발전 과정

사용하는 데이터 모델에 따라 네트워크, 계층, 관게, 객체지향. 객체관계로 구분할 수 있음

데이터 모델은 데이터를 데이터베이스에 저장하는 구조를 의미한다.

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

  • 네트워크 DBMS - 노드와 간선을 이용한 그래프 형태
    구조가 복잡하고, 변경하기 어려움 (IDS)
  • 계층 DBMS - 트리 형태로 구성하는 계층 데이터 모델
    네트워크보다 구조가 단순하지만 복잡한 현실 세계를 트리 형태로 표현하기 어렵고 구조 변경이 어려움 (IMS)

2세대 - 관계 DBMS

테이블 형태로 구성하는 관계 데이터 모델을 사용, 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성
-> 관계 데이터 모델을 사용하는 관계 DBMS가 많이 개발되었으며, 이론적 연구도 많이 이루어짐
데이터베이스 관리 시스템의 주류로 존재 (Oracle, MS SQL Server, Access, Informx, MySQL)

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

  • 객체지향 DBMS - 객체지향 프로그래밍의 객체라는 개념을 이용하여 구성
    데이터에 대한 복잡한 분석 및 처리를 지원 (O2, ONTOS, GemStone)
  • 객체관계 DBMS - 관계 DBMS와 객체지향 DBMS의 개념을 통합한 것

객체지향 DBMS와 객체관계 DBMS가 등장한 뒤에도 대표적인 데이터베이스 관리 시스템은 일반적으로 관계 DBMS로 인식
하지만 대량의 비정형 데이터가 생성, 클라우딩 컴퓨팅, 빅데이터 개념이 등장하면서 새로운 DBMS에 대한 요구 발생

4세대 이후 - NoSQL, NewSQL DBMS

  • NoSQL DBMS - RDBMS의 안정성, 일관성을 포기, 데이터 구조를 정해두지 않기에 비정형 데이터를 저장하고 처리하는 데 적합하며, 뛰어난 확장성을 지님
    여러 대의 서버 컴퓨터에 데이터를 분산 저장 및 처리하는 환경에서 주로 사용
    (MongoDB, Cassandra, Redis, Neo4j, OriedntDB)
  • NewSQL DBMS - 정형 데이터는 관계 DBMS로 처리하고 비정형 데이터는 NoSQL로 처리하고자 각자 도입하기엔 부담과 불편함이 존재 -> NewSQL의 필요성 대두
    안정성과 일관성을 유지하면서 확장성과 유연성 지원 -> 정형 및 비정형 데이터를 안정적이고 빠르게 처리 가능 (Spanner, VoltDB, NuoDB)

NewSQL은 시장에 진입한 지 얼마 되지 않았기에 당분간 관계 DBMS, NoSQL, NewSQL이 상호 보완하면서 공존할 것으로 예상됨
그렇기에 저장할 데이터의 형태, 비즈니스의 성격 등을 고려해서 적합한 DBMS를 선택하는 것이 중요

출처 - 김연희저자의 데이터베이스 개론 2판 - 한빛 아카데미

profile
능력있는 DBA가 되고자하는 초짜 DBA

0개의 댓글