[DataBase] DBMS의 종류와 비교

Xilver·2022년 10월 31일
3

DataBase

목록 보기
1/1
post-thumbnail

DBMS의 개념과 종류, 대표적 DB간의 간단한 비교를 해보자

🗄DBMS?

데이터베이스(DataBase)

  DBMS에 대해서 설명하기 전에, 먼저 데이터베이스의 개념을 살짝 훑어 보자.

데이터와 정보

  그리고 그 전에, 데이터와 정보의 차이를 짚고 넘어가자.

  • 데이터 : 관찰의 결과로, 정량적 혹은 정성적인 실제 값을 의미
  • 정보 : 데이터를 가공하여 의미를 부여한 것
e.g.데이터정보
전세계 오라클 사용 점수 : 1236.37오라클은 세계에서 가장 많이 사용되는 DBMS다.

1. 데이터의 집합

  데이터베이스란 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보(Data)의 집합니다. 연관된 데이터의 모음을 구조화함으로써 검색 및 갱신의 편의를 추구한다.

2. 중복이 없다.

  데이터베이스 내에서는 기본적으로 중복이 제거된 데이터를 추구한다. 정확히는 자료 항목의 중복이 제거된 데이터를 추구한다. 사용자는 목적에 따라 동일한 데이터여도 다르게 사용할 수 있다. 이렇게 업무를 진행할 경우, 각각의 업무 전용 데이터 파일을 사용하더라도 각 파일에 중복된 정보가 들어있게 된다. 이 중복을 피해서 저로 관련성이 있는 데이터를 일원화하여 처리 효율성을 증대하고, 중복이 없는 데이터의 집합이 데이터베이스다.

즉, 데이터베이스(Database, DB)는 여러 데이터 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기록해 놓은 데이터의 집합체다.

※ 의도적으로 중복을 허용하는 경우, 항상 파악하여 관리

데이터베이스의 대표적인 특징

  • 실시간 접근성(Real-time Accessibility) : 사용자의 질의(Query)에 대해 즉시 처리하여 응답
  • 계속적인 진화(Continuous evolution) : CRUD(Create-생성, Read-읽기, Update-갱신, Delete-삭제)를 통해 항상 정확한 최신 데이터를 동적으로 유지
  • 동시 공유(Concurrent sharing) : 여러 사용자가 동시에 원하는 데이터를 공유
  • 내용에 의한 참조(Content reference) : 데이터베이스에 있는 데이터 참조 시, 튜플(Tuple)의 주소나 위치가 아닌 사용자가 원하는 데이터 내용에 따라 참조
  • 데이터 논리적 독립성(Independence) : 응용프로그램과 데이터베이스를 독립시김으로써 데이터 논리적 구조를 변경하더라도 응용프로그램에는 반영되지 않음

데이터베이스 사용 목적

  이제 대충 데이터베이스가 어떤거구나... 하는 감은 잡혔을것이다. 그렇다면 왜? Why? 데이터베이스를 사용하는지 알아보자.
1. 데이터 공유와 접근 용이
- 여러 사람과 데이터를 공유하고, 데이터에 편리하게 접근 가능
2. 일관성, 무결성, 보안성 유지
- 데이터의 중복을 최소화하고, 신뢰할 수 있는 데이터를 사용하기 위함
3. 데이터의 표준화 가능
- 다량의 데이터를 연관하여 표준화 가능
4. 데이터의 논리적, 물리적 독립성
- 응용프로그램과의 분리를 통해 각자 구축 가능
5. 데이터 저장 공간 절약

그 외의 자세한 개념

  본문에서 중점적으로 다룰 내용은 DBMS이므로 데이터베이스는 이 정도로 간략하게 설명하고 넘어가겠다. 모르는 부분이 있으면 구글링을 해보고, 더 심화적인 내용이 알고 싶다면 스키마 등 데이터베이스 구성 요소에 대해서 공부해보자.(추후 포스팅 예정)

DBMS는 무엇인고...

  데이터베이스 관리 시스템(DataBase Management System, DBMS)은 데이터베이스에서 데이터를 추출,조작,정의,제어 등을 할 수 있게 해주는 데이터베이스 전용 관리 프로그램이다.

e.g. DBMS의 개념 (출처)

DBMS는 응용 프로그램들이 데이터베이스를 공유하고, 사용할 수 있는 환경을 제공하며 데이터베이스를 구축하는 틀과 효율적으로 데이터를 검색하고 저장하는 기능까지 제공한다(굉장해 엄청나...!). 이 외에도...

  • 데이터베이스 접근 인터페이스 제공
  • 장애 복구 기능
  • 권한에 따른 보안성 유지 기능
  • 등등등
    데이터베이스 사용에 전반적인 기능과 유용한 편의 기능들을 포함하고 있다.

DBMS의 기능

  대충 앞에서 훑어봤지만, DBMS의 대표적인 기능들에 대해서 짚고 넘어가자.

  • 정의 : 데이터에 대한 형식, 구조, 제약조건들을 명세하는 기능
  • 구축 : DBMS가 관리하는 기억 장치에 데이터를 저장하는 기능.
  • 조작 : 특정한 데이터를 검색하기 위한 질의, 데이터베이스의 갱신, 보고서 생성 기능 등을 포함
  • 공유 : 여러 사용자와 프로그램이 데이터베이스에 동시에 접근하도록 하는 기능
  • 제어 : 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어함. 백업과 회복, 동시성 제어 등의 기능을 지원
  • 보호 : 하드웨어나 소프트웨어의 오동작 또는 권한이 없는 악의적인 접근으로부터 시스템을 보호
  • 유지보수 : 시간이 지남에 따라 변화하는 요구사항을 반영할 수 있도록 하는 기능

DBMS 장점

  • 데이터 독립화 : 데이터와 응용 프로그램을 분리시킴으로써 상호 영향 정도 감소
  • 데이터 중복 최소화/데이터 무결성 보장 : 중복되는 데이터를 최소화 시키면 데이터 무결성이 손상될 가능성 감소 및 저장공간의 여유 확보
  • 데이터 보안 향상 : 응용프로그램은 DBMS를 통해 DBMS가 허용하는 데이터에만 접근 가능하고, 권한에 맞게 데이터 접근을 제한하거나 데이터를 암호화시켜 저장 가능
  • 관리 편의성 향상 : 다양한 방법으로 데이터를 백업 및 장애 발생 시 데이터를 복구 가능

DBMS의 종류

1. 계층형(Hierachical) 데이터베이스 관리 시스템(HDBMS)

  데이터가 계층적이며 상하 종속적인 관계로 구성. 즉, 트리 형태의 계층적 구조를 가진 데이터베이스 최상위 계층의 데이터부터 검색하는 구조

  • 장점 : 데이터의 엑세스 속도가 빠르고, 데이터의 사용량을 쉽게 예측 가능
  • 단점 : 상하 종속적인 관계로 구성되어 있어 초기 셋팅 후 변화하는 프로세스를 수용에 어려움

2. 망형(Network) 데이터베이스 관리 시스템 (NDBMS)

  데이터 구조를 네트워크상의 노드 형태로 논리적이게 표현한 데이터 모델로서 각각의 노드를 서로 대등한 관계로 구성한 시스템(여기서 노드란 시스템을 의미하는 것이 아닌 자료를 의미)

  • 장점 : 계층형데이터베이스관리 시스템의 문제점인 상하 종속적인 관계는 해결
  • 단점 : 구성과 설계가 복잡하고 궁극적으로 데이터의 종속성을 해결하지 못함

3. 관계형(Relational) 데이터베이스 관리시스템(RDBMS)

  수학적 논리 관계를 2차원 테이블의 형태로 구성한 구조로서 테이블 내의 컬럼 중 일부를 다른 테이블과 중복해 각 테이블간의 상관관계를 정의

  • 장점 : 업무 변화에 대한 적응력 높아 변화하는 업무에 쉽게 활용하며 유지보수 편리 → 생산성도 향상
  • 단점 : 다른 DBMS 보다 더 많은 자원이 필요로해 시스템의 부하가 높음

4. 객체지향(Object Oriented) 데이터베이스 관리 시스템(ODBMS)

  멀티미디어 데이터의 원활한 처리와 RDBMS의 비지니스형 데이터 타입만 처리되는 기본적인 제한점을 극복하고자 고안

  • 사용자 정의 타입을 지원 : 사용자가 임의로 정한 데이터 유형을 말하며, 기본형 데이터 타입을 뛰어 넘어 다양한 형태의 데이터를 다룰 수 있다.

  • 참조(reference)타입을 지원 : 객체들로 이루어진 객체 테이블의 경우, 하나의 레코드가 다른 레코드를 참조할 수 있는 것을 말한다.

  • 중첩 테이블을 지원한다 : 테이블을 구성하는 로우(Row)자체가 또 다른 테이블로 구성되는 테이블을 지원하여 조금 더 복잡하고 복합적인 정보 표현이 가능.

  • 대단위 객체의 저장, 추출이 가능하다 : 이미지, 오디오, 비디오 등 을 저장하기 위한 대단위 객체(LOB)를 지원

  • 객체간의 상속관계를 지원 : 오라클의 경우 OBJECT 타입을 지원함으로써 상속기능을 구현

Ref

JYJung님의 "데이터베이스 개요 - DBMS 종류와 특징 및 유형"
SD아카데미의 "데이터베이스 관리 시스템(DBMS)의 정의와 종류"
RURU님의 "DBMS종류와 특징 (관계형데이터베이스 외)"

profile
CV/NLP 딥러닝 엔지니어 Xilver 입니다.

1개의 댓글

comment-user-thumbnail
2022년 11월 24일

헉 예전부터 DB에 대한 중요성은 알고 있었고, 공부해보려고 찾아보는데
이렇게 깔끔하게 정리되어 있는 글은 처음인거 같아요! 정리해 주셔서 감사합니다!

답글 달기