데이터베이스/데이터베이스 이론

[DB 이론] 데이터베이스 관리 시스템(DBMS)

ReBugs 2023. 10. 3.

이 글은 데이터베이스 개론 (저자 김연희)의 내용을 개인적으로 정리하는 글임을 알립니다.


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

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

파일 시스템 환경에서는 응용 프로그래머가 파일의 논리적인 구조뿐 아니라 물리적인 구조까지 정확히 파악해야 한다.

그래야 필요한 데이터에 직접 접근하여 처리하는 응용 프로그램을 개발할 수 있었다.

파일 시스템은 별도의 구매 비용이 들지 않는다는 장점이 있지만 응용 프로그램마다 파일을 따로 유지해야 하는 특징 때문에 아래와 같은 문제가 발생한다.

  1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.
  2. 응용 프로그램이 데이터 파일에 종속적이다.
  3. 데이터 파일에 대한 동시, 공유 보안, 회복 기능이 부족하다.
  4. 응용 프로그램을 개발하기 쉽지 않다.
같은 내용의 데이터가 여러 파일에 중복 저장된다.
예를 들어, 고객 관리 담당자는 고객 데이터를 파일에 저장해두고 고객 관리 응용 프로그램을 이용해 고객 관리에 필요한 업무를 처리한다.
마찬가지로 주문 관리 담당자도 주문 내역 데이터를 파일에 저장해두고 주문 관리 응용 프로그램의 도움을 받아 제품 주문과 관련한 업무를 처리한다.

파일 시스템에서는 응용 프로그램별로 파일을 유지하므로 같은 데이터가 여러 파일에 저장될 수 있다. 즉, 데이터 중복성 문제가 발생한다.
위 그림에서 고객 아이디, 고객명, 연락처, 주소 등의 데이터가 고객 데이터 파일과 주문 데이터 파일에 모두 존재한다. 데이터가 중복되면 저장 공간이 낭비될 뿐만 아니라 데이터 일관성과 데이터 무결성을 유지하기가 어렵다.

 

응용 프로그램이 데이터 파일에 종속적이다.
사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 하는데, 이러한 특징을 데이터 종속성이라 한다.

 

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

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

파일 시스템이 지닌 문제를 해결하는 1차 방안은 데이터를 통합하여 저장하는 것이다.

하지만 통합 저장된 데이터를 관리하고 모든 응용 프로그램이 공통으로 요구하는 데이터에 대한 기본 처리를 담당하면서 동시 공유, 보안, 회복 등의 복잡한 기능을 제공해 주는 새로운 무엇이 여전히 필요하다.

그 대안으로 제시된 것이 데이터베이스 관리 시스템(DBMS:DataBase Management System)이다.

 

DBMS는 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 집중적으로 담당한다.

DBMS는 응용 프로그램을 대신하여 데이터베이스에 들어 있는 데이터를 삽입, 삭제, 수정, 검색하고 모든 응용 프로그램이 데이터베이스를 공유할 수 있게한다.

 

DBMS가 제공하는 주요 기능은 아래의 세 가지로 요약할 수 있다.

정의 기능

  • DBMS는 조직에 필요한 데이터를 저장하기 적합한 데이터베이스 구조를 정의하거나, 이미 정의된 구조를 수정할 수 있다.

조작 기능

  • DBMS 데이터베이스에 저장된 데이터에 접근하여 사용할 수 있는 기능을 제공한다.
    즉, 사용자 요구에 따라 데이터를 삽입, 삭제, 수정, 검색하는 연산을 효율적으로 처리한다.

제어 기능

  • DBMS는 데이터를 여러 사용자가 공유해도 항상 정확하고 안전하게 유지하는 기능을 제공한다.
    또한 장애가 발생해도 회복이 가능하도록 제어하고, 권한이 있는 사용자에게만 데이터 접근을 하용하여 보안이 유지되도록 제어한다.
    특히, 여러 사용자가 데이터베이스에 동시에 접근하여 데이터를 처리할 수 있도록 제어한다.

 

DBMS의 장점과 단점

장점

  1. 데이터 중복을 통제할 수 있다.(효율성을 위해 중복을 허용하여도 중복을 최소화함)
  2. 데이터 독립성이 확보된다.(종속적이지 않고, 독립적)
  3. 데이터를 동시 공유할 수 있다.
  4. 데이터 보안이 향상된다.
  5. 데이터 무결성을 유지할 수 있다.(유효성 검사를 이용하여 무결성 유지)
  6. 표준화할 수 있다.(접근 방법, 데이터 형식과 구조 등을 표준화)
  7. 장애 발생 시 회복이 가능하다.
  8. 응용 프로그램 개발 비용이 줄어든다.(DB구조가 변경되어도 응용 프로그램은 변경할 필요 없기 때문)

 

단점

  1. 비용이 많이 든다.(DBMS자체 가격, DBMS의 다양한 기능 때문에 컴퓨터 자원을 많이 사용)
  2. 백업과 회복 방법이 복잡하다.
  3. 중앙 집중 관리로 인한 취약점이 존재한다.(DBMS에 장애가 발생하면, 전체 시스템 업무처리 중단)

 

DBMS를 이용함으로써 얻는 단점보다 이점이 많기 때문에 여러 단점에도 불구하고 대량의 데이터는 데이터베이스 관리 시스템을 이용해 처리한다.

 

 

DBMS의 발전 과정

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

  • 네트워크 DBMS
    간선을 이용해 데이터 간의 관계를 표한하기 때문에 데이터베이스의 구조가 복잡하고 변경하기 어렵다는 단점이 있다.
  • 계층 DBMS
    트리 형태로 구성하는 계층 데이터 모델을 사용
    네트워크 DBMS보다 구조가 단순하다. 하지만 복잡한 현실 세계의 모습을 부모 자식 관계가 명확한 트리 형태만으로 표현하기가 힘들고, 구조 변경이 어렵다는 단점이 존재한다.

 

2세대 DBMS : 관계 DBMS(RDBMS)

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

단순하고 이해하기 쉬운 구조를 구성한다는 장점이 있다.

관계 DBMS는 지금도 널리 사용되고 있는데, 대표적인 관계 DBMS는 오라클, MS SQL 서버, 액세스, 인포믹스, MySQL, 마리아 DB 등이 있다.

 

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

  • 객체지향 DBMS
    객체지향 프로그래밍에서 도입한 객체라는 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용한다.
    객체지향 DBMS는 더 다양하고 복잡한 응용 분야의 데이터를 관리하려는 사용자 요구를 충족시키기 위해 제안되었다.
  • 객체관계 DBMS
    관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델을 사용한다.
    객체지향 DBMS와 관계 DBMS의 개념을 통합한 것이다.
    대표적인 DBMS로 오라클이 있다.

 

4세대 이후 DBMS : NoSQL, NewSQL DBMS

수많은 사람들이 소셜 네트워크 서비스를 폭발적으로 이용하면서 사진, 동영상, 검색 로그와 같은 비정형 데이터가 대량으로 생산되었다.

이와 더불어 클라우드 컴퓨팅, 빅데이터의 개념이 등장하면서 관계 DBMS에 대한 확신이 흔들리게 되었다.

관계 DBMS는 빠른 속도로 증가하는 대량의 비정형 데이터를 처리하는 데는 비효율적이기 때문이다.

 

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

NoSQL DBMS는 안정성과 일관성 유지를 위한 복잡한 기능을 포기하고 데이터 구조를 미리 정해두지 않기 때문에 비정형 데이터를 저장하고 처리하는 데 적합하다. 그리고 확장성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용한다.

대표적인 NoSQL DBMS로 MongoDB, HBase 등이 있다.

 

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

 

NoSQL이 많은 장점을 지니고 있음에도 불구하고 관계 DBMS를 온전하게 대신한다고 생각하는 사람은 많지 않다.

일반 기업들은 안정성과 일관성을 여전히 중요하게 평가하고 있고, 각 기업에서 처리하는 데이터 중에 정형 데이터가 차지하는 비율이 높기 때문이다.

따라서 정형 데이터와 비정형 데이터를 하나의 DBMS로 어떻게 관리를 할지 고안하던 중에 탄생한 것이 NewSQL DBMS이다.

즉, 관계 DBMS의 장점과 NoSQL의 확장성 및 유연성을 모두 지원한다.

따라서 정형 및 비정형 데이터를 안정적이고 빠르게 처리할 수 있다.

대표적으로 구글 스패너, 볼트 DB, 누오 DB 등이 있다.

 

하지만 NewSQL은 시장에 진입한 지 얼마 되지 않았으므로 당분간 관계 DBMS, NoSQL, NewSQL이 상호 보완하면서 공존할 것으로 예상된다.

그러므로, 여러 가지 상황과 조건으로 고려하여 적합한 DBMS를 선택하는 것이 중요하다.

댓글