DB의 분류
데이터베이스는 크게 RDB와 NoSQL의 두종류로 나뉜다.
-
RDBMS(Relational Database Management System)
-
ORDBMS(Object-Relational Database Management System)
객체지향 데이터베이스 모델을 가진 RDB. -
NoSQL(Not Only SQL)
RDB가 아닌 데이터베이스가 NoSQL. NoSQL은 각 제품에 따라 저장 방식이 달라 하나로 정의할 수 없다. 몽고DB나 카우치DB는 도큐먼트 베이스다. 그러나 당연히 공통적인 특징은 있는데,- RDB와 달리 데이터간 관계를 정의하지 않는다. -> 고정되지 않은 테이블 스키마
- RDB에 비해 훨씬 더 대용량의 데이터를 저장할 수 있다
- 클라우드 시스템(분산형 구조)
RDB
-
MySQL
알다시피 가장 많이 사용하는 무료 DBMS다. 커뮤니티 버전은 오픈소스. SUN에 10억 달러에 인수된 후 오라클이 썬을 72억 달러에 인수하면서 결국 오라클이 MySQL을 소유하게 되었다. 오라클이 오픈소스에 호의적이지 않기 때문에 MySQL 사용자들 사이에서 불안감이 커졌고 그로 인해 대체재로 등장한 것이 바로 MariaDB다. -
MariaDB
MySQL이 Sun Microsystems로 넘어가면서 당시 MySQL AB 출신들이 따로 나와서 MySQL을 기반으로 한 오픈 소스 DBMS를 만들었다. 그게 바로 MariaDB. MySQL을 기반으로 만들었기 때문에 거의 완벽하게 호환이 된다. -
Oracle
가장 유명한 유료 DBMS. 미국의 대표적인 RDBMS 회사인 오라클 사 및 그 회사에서 만드는 데이터베이스 관리 시스템. 엔터프라이즈 DB 시장의 절반 이상을 항상 차지하고 있다. -
PostgreSQL
ORDBMS. 다양한 기능을 제공하는 오픈소스 DBMS. 엔터프라이즈급이나 차세대 DBMS에서 제공하는 기능들을 많이 제공한다. -
기타 RDBMS
IBM DB2, Infomix, MS SQL, Sybase, dBase 등
NoSQL
MongoDB, Couchbase : Document DB이며 메모리DB와 결합되어 있다.
- MongoDB
- 단연 가장 많이 쓰이는 NoSQL. 다양한 인덱싱을 지원하기 때문에 RDB에 익숙한 사람이 다루기 편하다.
- Couchbase
- In-memory DB인 memcached에 persistence를 붙여 DB로 만든 것. 맵&리듀스 방식을 사용한다.
- Cassandra와 HBase
빅데이터 처리에 적합하다. 둘다 별로 많이 쓰이지 않는다. 참고로 HBase는 HDFS(HaDoop File System)을 기반으로 만들어짐.
In-memory DB
-
memcached
memcached는 레디스와 다르게 순수한 메모리 DB다. -
Redis
REmote DIctionary System. NoSQL로도 분류된다. 레디스는 memcached와 다르게 데이터를 디스크에 저장할 수 있다.
SQLite
- 지금까지 살펴본 DBMS들은 서버-클라이언트 구조에서 대규모 데이터베이스 관리를 위한 시스템이다. 그러나 sqlite는 이와 달리 로컬에서 사용하는 경량 데이터베이스. 원격 Connection이 발생하지 않기 때문에 데이터로의 접근이 매우 빠름. 아이폰이나 안드로이드 등의 모바일에서 많이 활용된다. 오픈소스.