[last updated Jul 13, 2022]

reference : 한빛미디어 혼공단오라클, 위키백과, planhoster, 메일리


● 데이터베이스, DBMS의 개념

DataBase(데이터베이스) 란 특정 기업이나 조직 또는 개인이 필요에 의해 논리적으로 연관된 데이터를 일정한 형태로 정리해 놓은 것으로, 쉽게 말해 데이터 조직화되거나 구조화된, 통합하여 관리되는 자료의 집합을 의미한다. 줄여서 DB 라고도 표현한다.

보통 데이터베이스가 데이터베이스 자체로 존재하기보다는, 데이터베이스 관리자들은 관리 프로그램을 통해 관리를 하는데 이 소프트웨어를 DBMS (DataBase Management System) 라고 한다. Oracle, SYBASE 등이 DBMS에 해당한다. 데이터베이스 자체만으로는 거의 아무 것도 할 수 없다. 요즘 DBMS와 DB를 묶어 DB라고 부르기도 하는 등 혼용되는 상황도 있는데, 엄연히 두 개는 다른 개념이다.

더보기

간단히 비유하자면 데이터베이스 자체는 화물(데이터)을 저장할 수 있는 창고 그 자체의 역할만 수행하고, 화물을 적재하거나 적재된 화물을 처리할 수 있는 능력은 없다. 이 때문에 DBMS라는 관리자들을 고용하여 화물을 적재하거나 이동시키는 등 크레인과 같은 여러가지 업무를 수행하도록 하는 것이다.

즉, 데이터베이스를 사용하려면 DBMS 를 설치해야 한다. 보통 입문자들에게 좋으면서, 실무에서도 많이 사용되는 것은 MySQL이라고 한다.

 

데이터베이스는 일반적으로 여러 명의 사용자나 여러 응용 프로그램에게 공유가 가능하며 동시 접근이 가능해야 한다. 은행처럼 여러명의 계좌 정보를 모아둔 것이 DBMS이다. 하나의 계좌를 통해 은행 직원, 계좌의 주인, ATM, 인터넷 뱅킹 등을 통해 접근이 가능하다.

 

 

● 데이터베이스의 특징

보통 데이터베이스는 개인이 사용하기보다는 공동 작업을 위해 통합된 형태로 사용을 하는 것이다.

  • 통합된 (Integrated) 데이터 : 데이터를 통합하여 사용한다. 데이터의 중복을 최소화한다.
  • 저장된 (Stored) 데이터 : 저장장치에 저장된다.
  • 운영 (Operational) 데이터 : 운영/관리를 위해 사용된다.
  • 공용 (Shared) 데이터 : 여러 업무를 위해 공통으로 사용된다.

 

DBMS 의 특징

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

 

● DBMS 의 사용

일반적으로 위의 그림처럼 사용자가 데이터를 필요로 했을 때, 네트워크 구조에 있는 DBMS를 통해 데이터베이스에 접근을 할 수 있다. 물론, DBMS에 직접 접근하는 것이 아니라 DBMS에 연결해주는 연결프로그램을 사용한다. Toad, Orange, SQLGate 등이 이에 해당한다. DBMS에서 제공하는 인터페이스를 통해 데이터를 처리하거나, 문제가 발생했을 시 데이터를 복구(롤백)할 수 있다.

 

● DBMS 의 종류

DBMS Company OS 기타
MySQL Oracle Unix, Linux, Windows, Mac 오픈소스, 상용
MariaDB MariaDB Unix, Linux, Windows 오픈소스
PostgreSQL PostgreSQL Unix, Linux, Windows, Mac 오픈소스
Oracle Oracle Unix, Linux, Windows 상용 시장 점유율 1위
SQL Server Microsoft Windows 주로 중/대형 시장에서 사용
DB2 IBM Unix, Linux, Windows 메인 프레임 시장 점유율 1위
Access Microsoft Windows PC용
SQLite SQLite Android, iOS 모바일 전용, 오픈소스

 

세계 DBMS 랭킹을 통해 확인해보니 작성일인 2022년 7월 기준 Oracle, MySQL, MSSQL이 탑3에 있음을 알 수 있다.

 

 

 

● DBMS 의 분류

계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류되며 관계형 데이터베이스(RDBMS) 가 그 중 가장 많은 비중을 차지한다.

 

  • 계층형 DBMS (HDBMS) 

    트리 형태의 구조로 조직된 것으로, 부모-자식 관계에 대한 정보를 표현한다. 부모는 다수의 자식, 자식은 하나의 부모를 가질 수 있어서 1:N (일 대 다수) 의 관계이다. 상하 종속적인 관계로 구성되어 있다.
    데이터 액세스 속도가 빨라 초창기 메인프레임 컴퓨터의 DBMS로 사용되었으나, 관계가 무너졌을 경우에 프로세스 적용이 어려운 경우가 많아 현재는 거의 사용되지 않는다. 
  • 망형 DBMS (NDBMS)

    노드 형태의 구조로 조직된 모델로, 각 노드를 대등한 관계로 구성한다. 계층형 DBMS의 상하종속적인 관계는 해결이 된 유연한 구조지만 구성과 설계가 복잡하며, 궁극적으로 '종속성' 은 완전히 해결하지 못했다. 이 DBMS 또한 오늘날 거의 사용하지 않는다.

  • 관계형 DBMS (RDBMS)

    수학적 논리 관계를 테이블 형태로 구성한 것으로 마치 행렬과 같은 형태이다. 테이블(table) 단위로 구성되며, 열(column)과 행(row)으로 이루어져 있다. 즉, 2차원 구조로 이루어져 있다.
    테이블들이 서로 연관되어 있기 때문에 DBMS에 비해 효율적 관리가 가능하고, 유지보수가 편리하다. 다른 DBMS에 비해 더 많은 컴퓨팅 자원이 필요하다는 단점이 있지만 정규화를 통해 데이터 중복성을 최소화한다는 장점도 있다.
    관계형 데이터베이스가 현재 DBMS 에서 가장 많이 사용되는 유형이라고는 하지만, 요새는 비 관계형 데이터베이스도 많이 사용되는 추세이다. 이를 NoSQL 이라 한다.


  • 객체지향형 DBMS (ODBMS)

    2차원의 구조가 아닌 다차원의 구조로 이루어진 데이터, 즉 멀티미디어 데이터의 원활한 처리를 위해 고안된 구조이다. 기존 관계형 DBMS로는 문자, 숫자, 날짜형 데이터만 저장이 가능했기 때문에, 해당 제한점을 극복하고자 다양한 데이터 타입을 지원하며 비정형 정보의 모델링이 가능하다.


● SQL 의 개념

SQL (Structured Query Language) 은 관계형 데이터베이스에 사용되는 언어로, 데이터베이스를 조작 (작성 및 접근) 하는 데 사용한다. 

(더 디테일한 설명은 추후 수정 예정)

+ Recent posts