본문 바로가기
IT 기술/그외 관련지식

[IT 상식] DBMS 종류와 특징

by Chacha2211 2024. 3. 3.

1. 데이터베이스 관리 시스템(DBMS)?

데이터베이스 관리 시스템(DataBase Management System, DBMS)은 데이터베이스를 관리하고 운영하는 소프트웨어로, DBMS를 통해 데이터베이스를 관리하여 응용 프로그램들이 데이터베이스를 공유하고, 사용할 수 있는 환경을 제공한다. DBMS는 데이터베이스를 구축하는 틀을 제공하고, 효율적으로 데이터를 검색하고 저장하는 기능을 제공한다. 또한 응용 프로그램들이 데이터베이스에 접근할 수 있는 인터페이스를 제공하고, 장애에 대한 복구 기능, 사용자 권한에 따른 보안성 유지 기능 등을 제공한다. 즉, 데이터베이스 내의 정보를 구성하는 컴퓨터 프로그램의 집합으로서, 자료의 중복성을 제거하고 다른 특징들 중에 무결성, 일관성, 유용성을 보장하기 위해서 자료를 제거하고 관리하는 소프트웨어 체계이다.

 

 

2. 데이터베이스 관리 시스템(DBMS)의 분류

DBMS의 유형은 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류된다. 현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지하며, MySQL도 관계형 DBMS에 포함된다. 

 

계층형 DBMS

계층형 DBMS(Hierarchical DBMS)는 처음으로 등장한 DBMS 개념으로 1960년대에 시작. 각 계층은 트리tree 형태를 갖는다. 계층형 DBMS의 문제는 처음 구성을 완료한 후에 이를 변경하기가 상당히 까다롭다는 것이다. 또한 다른 구성을 찾아가는 것이 비효율적이다. 예를 들어 node 1에서 node3-2 를 연결하려면 node 1   node 2-2   node 3-2와 같이 여러 단계를 거쳐야 한다. 최근에는 잘 사용하지 않는 구조


 


망형 DBMS

망형 DBMS(Network DBMS)는 계층형 DBMS의 문제점을 개선하기 위패 등장. 하위에 있는 구성원끼리도 연결된 유연한 구조이다. 예를 들어 node3-1에서 바로 node 3-2로 연결이 가능하다. 망형 DBMS를 잘 활용하려면 프로그래머가 모든 구조를 이해해야만 프로그램 작성이 가능하다는 단점이 존재한다.

 


관계형 DBMS

관계형 DBMS(Relational DBMS)는 줄여서 RDBMS라고 부릅니다. MySQL뿐만 아니라, 대부분의 DBMS가 RDBMS 형태로 사용된다. RDBMS의 데이터베이스는 테이블(table)이라는 최소 단위로 구성되며, 이 테이블은 하나 이상의 열(column)과 행(row)으로 이루어져 있다.

RDBMS에서는 모든 데이터가 테이블에 저장된다. 이 구조가 가장 기본적이고 중요한 구성이기 때문에 RDBMS는 테이블로 이루어져 있으며, 테이블은 열과 행으로 구성되어 있다는 것을 파악했다면 RDBMS를 어느정도 이해했다고 할 수 있습니다.


객체-관계형 데이터베이스(ORDBMS)

기존의 관계형 데이터 베이스 (RDBMS) 로서의 안정된 성능에 기반하면서 동시에 객체 지향 모델의 특징을 추가한 모델이다.
정보가 테이블 형태 또는 객체 형태로 저장되도록 하고 주된 키(PK: Primary Key) 사용을 주장한다. 또한 PK가 없을 시에만 OID(Object IDentifier) 사용을 주장하고, 값에 기반한 데이터 접근 방식을 가지기 때문에 데이터 접근 시 참조 정보 기반의 모든 접근을 지원한다.

 

 

 

3. DBMS 의 종류와 특징

Oracle

  • 미국 오라클(Oracle) 사의 관계형 데이터베이스 관리 시스템(RDBMS)
  • 오픈 소스 DBMS가 있음에도 안정성과 유지보수를 보장받을 수 있다는 장점 때문에 비 IT업종 기업에서 많이 사용한다.

특징

  • 대기업에서 주로 사용하며, 글로벌 DB 시장 점유율 1위
  • 윈도우, 리눅스, 유닉스 등 다양한 운영체제(OS)에서 설치 가능
  • 대량의 정보관리시 타 DBMS에 비해 좋은 성능
  • 오라클 자체 SQL 쿼리를 사용해 표준 형식과 약간 다름

 


 

MySql

  • MySQL사에서 개발, 썬마이크로시스템즈를 거쳐 현재 오라클에 인수합병
  • 관계형 데이터베이스 관리 시스템(RDMS)
  • 오픈 소스이며, 다중 사용자와 다중 스레드 지원

특징

  • 윈도우, 리눅스, 유닉스 등 다양한 운영체제(OS)에서 설치 가능
  • 오픈 소스 라이선스를 따르기 때문에 무료로 사용 가능(상업적으로 사용 시 비용 발생)→ 가격의 장점 때문에 중소기업에서 사용
  • 표준 SQL 형식 사용
  • 오픈 소스이기 때문에 기술 지원의 한계가 있음

 

MS-SQL

  • 미국 마이크로스프트에서 개발한 관계형 데이터베이스 관리 시스템(RDBMS)

특징

  • 다른 운영체제에서도 사용가능하지만 윈도우에 특화
  • 분산된 기업환경에서의 집중된 서버 관리 도구 제공
  • 비공개 소스로 폐쇄적인 운영(리눅스 버전은 오픈소스)
  • 데이터베이스 관리 시스템 툴인 MS-SQL 서버 관리 스튜디오의 사용이 매우 편리
  • 중앙 집중식 테이버 베이스 제어로 통신 누락, 오류 발생 최소화
  • .Net 언어 구현에만 초점을 맞춰 설계됨

 


 

PostrgreSQL

  • 오픈 소스 객체-관계형 데이터베이스 시스템 (ORDBMS)
  • macOS 서버의 경우 기본 데이터베이스로 사용된다.
  • 북미나 일본에서 많이 사용

특징

  • 초기 개발 단계부터 완벽한 ACID와 MVCC를 지원하는 아키텍처로 설계
  • 다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 SQL 차원에서 제공
  • 테이블 상속 기능을 이용해 하위 테이블 생성 가능
  • 오픈 소스임에도 상용 RDBMS급의 기능을 제공
  • 기본적인 CRUD 성능이 경쟁 DB에 비해 좋지 않다.

 

 


 

MongoDB

  • 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템
  • NoSQL 데이터베이스

특징

  • ACID 대신 BASE를 택해 성능과 가용성을 우선시함
  • 모든 데이터가 JSON 형태로 저장, 스키마가 없음
  • 다양한 인덱싱 제공
  • 일관성이 매우 중요한 작업에는 사용하기 힘들다

 


 

Redis

  • Remote Dictionary Server의 약자
  • Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비 관계형 데이터베이스 관리 시스템
  • 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 DBMS

특징

  • 메모리 기반이기에 속도가 빠르고 간편
  • 최고의 성능이 필요한 웹, 모바일, 게임, 광고 기술 및 IoT 애플리케이션에서 널리 사용
  • 문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 자료구조의 지원

 


 

SQLite

  • 독립형 파일 기반의 오픈소스 RDBMS
  • 구글 안드로이드 운영 체제에 기본 탑재된 데이터베이스
  • ACID 준수

특징

  • 이름과 같이 매우 가볍다. 사용하는 공간은 시스템에 따라 다르지만 600kb 미만의 공간을 차지
  • 완전히 독립형이라 SQLite가 작동하기 위해 시스템에 설치해야 하는 외부 종속성이 없음
  • 이식성이 뛰어남
  • 동시성의 제한, 사용자 관리 존재의 부재, 서버리스 데이터베이스이기에 보안이 약함

 


 

MariaDB

  • 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)
  • MySQL의 개발진들이 오라클의 정책이 추구하는 바와 맞지 않아 나와서 개발한 DB
  • MySQL과 동일한 소스 코드를 기반, GPL v2 라이선스를 따름

특징

  • 구현언어 : C++
  • 위의 말한 관계로 인해 MySQL과 거의 100% 호환성을 가지고 있음
  • MySQL에 비해 애플리케이션 부분 속도가 약 4~5천 배 빠르고, 성능면에선 70% 향상을 보인다

 

댓글