[DB] DBMS 종류별 간단 정리

지환·2022년 12월 28일
0
post-thumbnail

데이터베이스를 구축할 때 막연하게 데이터베이스를 써야지라고 하지만 데이터베이스를 관리하는 시스템의 종류도 여러 가지이다.

그렇기 때문에 어떤 걸 내 프로젝트에 써야 할까 항상 고민이 되는데,

그래서 간단하게 여러 데이터베이스 시스템들의 특징과 장단점을 정리해두고 데이터베이스를 선택할 때마다 찾아보는 수고를 줄이기로 하였다.

아 이런 DBMS들이 있구나 정도로 살펴보면 될 것 같다.

나열할 DBMS는 https://db-engines.com/en/ranking 사이트의 상위권에 있는 것들 위주로 할 생각이다.

Oracle

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

특징

기업용으로 주로 사용
대량의 정보관리를 할 때 타 DBMS에 비해 좋은 성능을 보인다.
오라클 자체 SQL 쿼리를 사용해 표준 형식과 약간 다름

MySql

관계형 데이터베이스 관리 시스템(RDMS)
오픈 소스이며, 다중 사용자와 다중 스레드 지원

특징

오픈 소스 라이선스를 따르기 때문에 무료로 사용 가능
표준 SQL 형식 사용
오픈 소스이기 때문에 기술 지원의 한계가 있음

MS-SQL

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

특징

분산된 기업환경에서의 집중된 서버 관리 도구 제공
데이터베이스 관리 시스템 툴인 MS-SQL 서버 관리 스튜디오의 사용이 매우 편리함
마이크로소프트 개발이다 보니 모든 버전의 Windows에서 문제없이 잘 작동됨
중앙 집중식 테이버 베이스 제어로 통신 누락, 오류 발생 최소화
.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과 동일한 소스 코드를 기반, GPL v2 라이선스를 따름
MySQL의 개발진들이 오라클의 정책이 추구하는 바와 맞지 않아 나와서 개발한 DB

특징

위의 말한 관계로 인해 MySQL과 거의 100% 호환성을 가지고 있음
MySQL에 비해 애플리케이션 부분 속도가 약 4~5천 배 빠르고, 성능면에선 70% 향상을 보인다고 말함
좀 더 자유로운 MySQL 정도로 이해하면 될듯함

결론

위 내용들을 하나하나 정리해보면서 규모가 크면 보통 Oracle을 사용하는 게 좋아 보이고,

소규모라면 SQLite가 적합하지 않나 생각했다.

나머지 DBMS는 각각 장단점이 있어 개발자가 편한 대로 사용하면 될 듯하다.

이번 조사를 통해 MariaDB에 관심이 생겼고, 한 번 사용해보려고 생각 중이다.

RDBMS 즉, 관계형 데이터베이스 구조와 NoSQL로 나누어져 있는데 두 개의 차이점에 대해서도 정리해보아야겠다.

출처 | https://toload.tistory.com/entry/DB-DBMS-%EC%A2%85%EB%A5%98%EB%B3%84-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC

profile
아는만큼보인다.

0개의 댓글