Keep going

데이터베이스 관리 시스템 본문

School/DBMS

데이터베이스 관리 시스템

코딩천재홍 2021. 4. 10. 03:53

과거 - 파일 시스템

  • 데이터를 파일로 관리하기 위해 파일을 생성, 수정, 검색, 삭제하는 기능을 제공하는 소프트웨어

장점

  • 별도의 구매 비용이 들지 않는다.

단점

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

    • 파일 시스템 내에서는 응용 프로그램별로 파일을 유지, 같은 데이터가 여러 파일에 저장 될 수 있음 (데이터 중복성)

    • 데이터가 중복되면 데이터 일관성과 데이터 무결성을 유지하기 어려움

      • ex) 고객 데이터 파일, 데이터 주문 파일 2개 있다고 가정 → 고객 데이터 파일의 연락처만 변경 → 데이터 일관성 유지 x
      • ex) 고객 아이디 명명 규칙 존재 → 유요하지 않은 아이디 있는 파일 존재 → 데이터 무결성 유지
    • 데이터 중복성 해결 방법 → 데이터 통합, 동시 공유, 보안, 회복 등 문제 남아 있음

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

    • 응용 프로그램은 파일에 직접 접근하여 데이터 처리하므로 물리적 저장 구조에 맞게 작성해야함
    • 파일의 구조를 변경하면 응용 프로그램도 변경해야 함 (데이터 종속성)
  1. 데이터 파일에 대한 동시 공유, 보안 , 회복 기능이 부족

    • 파일 시스템에서는 두 개의 응용 프로그램이 한 파일에 접근하는 동시 공유 기능 제공 x
    • 같은 파일 여러개 만들어 보안을 같은 수준으로 유지하기 어려움 (데이터 보안은 파일 단위 보다 더 세분화)
    • 응용프로그램이 파일 사용 도중, 장애가 발생하면 데이터를 일관된 상태로 회복하기 어려움
  1. 응용 프로그램을 개발하기 쉽지 않다.
  • 파일에 접근하여 데이터를 관리하는 모든 작업을 응용 프로그램이 담당하므로, 사용자 요구에 맞는 응용프로그램 개발 어려움

현재 - 데이터베이스 관리 시스템

  • DBMS는 파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어
  • DBMS는 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 담당
  • 두 응용 프로그램이 동시에 데이터베이스를 사용 할 때 발생할 수 있는 모든 분쟁을 DBMS가 중재 해줌 → 데이터 중복 문제 해결
  • 데이터베이스를 생성,접근,관리 하는 일들 DBMS가 모두 담당 → DBMS가 작업 수행 후 결과만 알려줌
  • 사용자나 응용 프로그램은 데이터베이스 물리적 구조 등을 알 필요 X → 데이터 독립성 확보

DBMS의 주요 기능

  1. 정의 기능

    • 데이터베이스 구조를 정의하거나 수정할 수 있다.
  1. 조작 기능

    • 데이터를 삽입, 삭제, 수정, 검색하는 연산을 할 수 있다.
  1. 제어 기능

    • 데이터를 항상 정확하고 안전하게 유지할 수 있다.
      • 여러 사용자가 공유해도 항상 정확하고 안전하게 유지
      • 다양한 연산을 한 후에도 내용이 일관되면서 무결성 유지
      • 장애가 발생해도 회복이 가능하도록 제어
      • 권한 있는 사용자에게만 데이터 접근을 허용하여 보안이 유지

장점

  1. 데이터 중복을 통제할 수 있다.

    • 데이터베이스에 데이터를 통합하여 관리하므로 데이터 중복 문제를 해결 가능
    • 효율성 때문에 데이터 중복을 허용하는 경우에도 통제 가능하도록 중복 최소화 → 데이터 일관성 유지

  2. 데이터 독립성 확보

    • 응용 프로그램 대신 데이터베이스에 접근하고 관리하는 모든 책임을 지기 때문에,
      데이터베이스 구조가 변경되어도 응용 프로그램이 영향 X (응용 프로그램과 데이터베이스 사이에 독립성 확보)

  3. 데이터를 동시 공유할 수 있다.

    • 통합된 데이터를 여러 응용 프로그램이 공유 하여 같은 데이터에 동시 접근 가능 → 불필요한 데이터 중복 제한할 수 있음
    • 동일한 데이터를 각 응용 프로그램의 요구에 따라 다양한 구조로 제공

  4. 데이터 보안이 향상

    • 데이터를 중앙 집중식으로 관리하므로 데이터에 대한 효율적인 접근 제어가 가능
    • 권한이 없는 사용자의 접근, 허용되지 않은 데이터 와 연산에 대한 요청 사전 차단
    • 사용자별로 접근 가능한 데이터 베이스 영역 제한, 접근 수준 차별화

  5. 데이터 무결성을 유지할 수 있다.

    • 데이터 무결성 은 데이터 값의 정확성을 의미
    • 데이터에 대한 연산이 수행될 때마다 유효성을 검사해 데이터 무결성을 유지할 수 있게 해줌

  6. 표준화할 수 있다.

    • 데이터에 대한 모든 접근이 데이터베이스 관리 시스템을 통해 이루어지기 때문에 데이터를 접근하는 방법, 데이터 형식과 구조 등을 표준화하기 쉬움

  7. 장애 발생 시 회복이 가능하다.

    • 장애가 발생해도 데이터 일관성과 무결성을 유지하면서 데이터를 장애가 발생하기 이전 상태로 복구하는 회복 기능 지원

  8. 응용 프로그램 개발 비용이 줄어든다.

    • 응용 프로그램 대신 DBMS가 데이터에 대한 모든 관리를 담당하기 때문에 파일 시스템을 사용할 때보다 응용 프로그램 개발 비용이 적게 듬
    • 데이터베이스 구조 변경되어도 응용 프로그램 변경할 필요 X → 유지 보수 비용 줄어듬

단점

  1. 비용이 많이 든다.

    • 파일 시스템은 운영체제와 함께 설치 되므로 구매 비용이 들지 X, DBMS는 따로 설치해야 하므로 구매 비용이 많이 듬.
    • 사용이 허용되는 사용자 수에 따라 제품 가격도 증가, 컴퓨터 자원 많이 사용

  2. 백업과 회복 방법이 복잡하다

    • 데이터베이스는 데이터양이 많아 구조가 복잡하고, 동시 공유를 지원하므로 장애 발생시 원인과 상태 파악하기 어려움.
    • 장애 발생 전 미리 백업해놓은 데이터로 회복하는 방법 복잡

  3. 중앙 집중 관리로 인한 취약점 존재

    • 모든 데이터가 데이터베이스에 통합되어 있고 이에 대한 관리 책임이 DBMS에 집중되어, 데이터베이스나 DBMS에 장애가 발생하면 전체 시스템의 업무 처리가 중단 된다.

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

사용하는 데이터 모델에 따라 다양한 DBMS로 구분할 수 있다.

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

1 세대 데이터베이스 관리 시스템 : 네트워크 DBMS, 계층 DBMS (1960년대 ~ 1970년대)

  • 네트워크 DBMS

    • 네트워크 DBMS는 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델 사용
    • 네트워크 DBMS 는 간선을 이용해 데이터 간의 관계를 표현하므로 데이터베이스의 구조가 복잡하고 변경하기 어려움
    • ex) IDS (Integrated Data Store)

  • 계층 DBMS

    • 트리 형태로 구성하는 계층 데이터 모델을 사용
    • 네트워크 DBMS 보다 구조가 단순하나 복잡한 현실 세계의 모습을 부모 자식 관게가 명확한 트리 형태로 표현하기 어려움, 구조 변경 어려움
    • ex) IMS (Information Management System)

2 세대 데이터베이스 관리 시스템 : 관계 DBMS (1980년대 초반 ~ )

  • 관계 DBMS 는 데이터 베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용
  • 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성한다는 장점
  • 1980년대에 관계 DBMS가 주류, 1990년대에도 기술 계속 확장, 성능 향상, 지금도 널리 사용
  • ex) 오라클, MS SQL , My SQL, 액세스, 인포믹스

3 세대 데이터베이스 관리 시스템 : 객체 지향 DBMS (1980년대 후반) , 객체 관계 DBMS (1990년대 후반)

  • 객체 지향 DBMS

    • 객체 지향 DBMS는 객체지향 프로그래밍에서 도입한 객체라는 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용
    • 새로운 유형의 데이터를 저장, 데이터에 대한 복잡한 분석 및 처리를 지원
    • ex) 오투, 온투스, 젬스톤

  • 객체 관계 DBMS

    • 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델을 사용
    • 관계 DBMS가 많이 사용되었지만 객체 관계 DBMS의 사용도 늘고 있음

4 세대 이후 데이터베이스 관리 시스템 : NoSQL DBMS (1998년 처음 언급, 2009년부터 주로 사용) , NewSQL DBMS (2011)

  • NoSQL DBMS

    • SNS를 이용하면서 사진, 동영상, 검색 로그와 같은 비정형 데이터가 대량으로 생산되고 클라우드 컴퓨팅, 빅데이터의 개념이 등장하면서 관계 DBMS 확신 ↓
    • NoSQL DBMS는 안정성, 일관성 유지를 위한 복잡한 기능 포기, 데이터 구조를 미리 정해두지 않기 때문에 비정형 데이터를 저장하고 처리하는데 적합
    • 확장성 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용
    • ex) 몽고디비, H베이스, 카산드라, 레디스, 네오포제이, 오리엔트 DB

  • NewSQL DBMS

    • 안정성과 일관성 유지하면서도 SQL을 이용해 다양하고 복잡한 데이터 처리를 편리하게 요청 가능 (관계 DBMS의 장점 + NoSQL의 확장성)
    • 정형 및 비정형 데이터를 안정적이고 빠르게 처리
    • ex) 스패너, 볼트DB, 누오 DB
    • 관계 DBMS나 NoSQL을 완전히 대신할 것으로 생각하기엔 섣부른 판단

'School > DBMS' 카테고리의 다른 글

1. 데이터베이스 기본 개념  (0) 2021.04.02
Comments