ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데이터베이스개론] Ch2. 데이터베이스 관리 시스템
    DB 2024. 7. 15. 02:28
    728x90

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

    과거에는 데이터를 관리하기 위해 파일 시스템이라는 소프트웨어를 사용했다.

    별도의 구매 비용이 들지 않지만, 응용 프로그램마다 파일을 따로 유지하는 특성 때문에 다음과 같은 문제가 발생했다.

    1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.데이터가 중복되면 저장 공간이 낭비되고, 데이터 일관성과 데이터 무결성을 유지하기 어렵다.
      1. 응용 프로그램별로 파일을 유지하므로 같은 데이터가 여러 파일에 저장된다. 즉, 데이터 중복성 문제가 발생한다.
    2. 응용 프로그램이 데이터 파일에 종속적이다.
      1. 따라서 사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 하는데, 이 특징을 데이터 종속성이라고 한다.
      2. 응용 프로그램은 파일에 직접 접근하여 데이터를 처리해야 하므로 사용하는 파일의 데이터를 구성하는 방법이나 물리적인 저장 구조에 맞게 작성되어야 한다.
    3. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
      1. 일반 파일 시스템에서는 응용 프로그램 하나가 사용중인 파일을 다른 응용 프로그램이 접근하여 사용할 수 있는 동시 공유 기능을 제공하지 않는다.
      2. 주로 사용자에게 파일 단위로 읽기, 수정, 실행 권한을 부여하는 방식으로 데이터 접근을 통제한다.
      3. 데이터 보안에 대한 요구가 세분화되고 있어, 더 작은 단위에 대한 접근 통제와 구체적인 권한 부여가 가능해야 한다. 데이터가 중복된 모든 파일의 보안을 같은 수준으로 유지하기 어렵다.
      4. 파일을 사용하는 도중 장애가 발생하면 데이터를 일관된 상태로 회복하기 어렵다.
    1. 응용 프로그램을 개발하기 쉽지 않다.
      1. 파일에 접근하여 데이터를 관리하는 모든 작업을 응용 프로그램이 담당해야하므로 사용자 요구에 맞는 응용 프로그램을 개발하는데 어려움이 많다.

     

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

    파일 시스템이 지닌 모든 문제의 근본 원인은 데이터 중복성과 데이터 종속성으로 요약할 수 있다.

    데이터 중복성과 데이터 종속성 문제를 해결하기 위해 제시된 소프트웨어가 데이터베이스 관리 시스템이다.

    데이터베이스 관리 시스템(DBMS; DataBase Management System) : 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 집중적으로 담당

     

    여러 프로그램이 동시에 데이터베이스를 사용할 때 발생할 수 있는 모든 분쟁을 데이터베이스 관리 시스템이 중재해주므로 데이터 중복으로 인한 여러 문제가 해결된다. 또한 사용자가 응용 프로그램 없이도 데이터 처리를 직접 할 수 있다.

    사용자는 원하는 데이터가 무엇이며, 어떤 처리를 원하는지 데이터베이스 관리 시스템에 요청하면 된다. 데이터베이스와 관련한 작업은 데이터베이스 관리 시스템이 수행한 후 해당 결과만 응용 프로그램을 통해 사용자에게 전달해주는 것이다.

    데이터베이스 구조나 접근 방법 등이 변경되어도, 응용 프로그램을 변경할 필요가 없어 데이터 독립성이 확보된다.

     

    데이터베이스 관리 시스템이 제공하는 기능

    • 정의
      • 데이터베이스 구조를 정의하거나 수정
    • 조작
      • 데이터를 삽입, 삭제, 수정, 검색
    • 제어
      • 데이터를 정확하고 안전하게 유지

     

    장점

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

     

    단점

    • 비용이 많이 든다.
      • 복잡하고 다양한 기능을 제공하기 위해 컴퓨터 자원을 많이 사용한다.
      • 따로 설치해야 하므로 구매 비용이 많이 든다.
    • 백업과 회복 방법이 복잡하다.
      • 장애가 발생했을 때 원인과 상태를 정확히 파악하기 어렵다.
    • 중앙 집중 관리로 인한 취약점이 존재
      • 데이터베이스에 대한 의존도가 높은 시스템이면 가용성과 신뢰성에 치명적인 영향을 받을 수 있다.

     

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

    데이터 모델 : 데이터를 데이터베이스에 저장하는 구조

    1세데 데이터베이스 관리 시스템 : 네트워크, 계층 DBMS

    • 네트워크 DBMS : 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델을 사용한다. 데이터베이스의 구조가 복잡하고 변경하기 어렵다는 단점이 있다.
    • 계층 DBMS : 네트워크 DBMS보다 구조가 단순하지만, 복잡한 현실 세계의 모습을 트리 형태만으로 표현하기는 어렵다.

     

    2세데 데이터베이스 관리 시스템 : 관계 DBMS

    관계 DBMS는 데이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용한다.

     

    3세대 데이터베이스 관리 시스템 : 객체지향, 객체관계 DBMS

    1980년대 후반에 등장한 객체지향 DBMS는 객체지향 프로그래밍에서 도입한 객체라는 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델 사용

    1990년대 후반에 등장한 객체관계 DBMS

    • 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델을 사용한다. 즉 객체지향 DBMS와 관계 DBMS의 개념을 통합한 것이다.

    ex) 오라클

    일반적으로 단순하고 이해하기 쉬운 구조인 관계 DBMS가 많이 사용된다. 객체관계 DBMS의 사용도 늘고 있어서 2세대와 3세대 DBMS가 공존하는 추세이다.

     

    4세대 이후 데이터베이스 관리 시스템 : NoSQL, NewSQL DBMS

    3세대 DBMS가 등장한 뒤에도 대표적인 데이터베이스 관리 시스템은 여전히 RDBMS라는 인식이 일반적이었다.

    수많은 사람들이 소셜 네트워크 서비스를 폭발적으로 이요하면서, 사진, 동영상, 검색 로그와 같은 비정형 데이터가 대량으로 생산되었다. 이와 더불어 클라우드 컴퓨팅, 빅데이터의 개념이 등장하면서 RDBMS에 대한 확신이 흔들리게 되었다.

    RDBMS는 빠른 속도로 증가하는 대량의 비정형 데이터를 처리하는 데는 비효율적이므로 RDBMS는 그대로 유지한 채 CPU나 메모리 같은 하드웨어 장치의 성능을 향상하는 것만으로는 문제를 해결할 수 없기 때문이다.

    이러한 시대적 흐름이 NoSQL DBMS 등장을 이끌었다.

    NoSQL DBMS는 RDBMS의 강점인 안정성과 일관성 유지를 위한 복잡한 기능을 포기하고, 데이터 구조를 미리 정해두지 않기 때문에 비정형 데이터를 처리하는데 적합하다.

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

    728x90
Designed by Tistory.