티스토리 뷰

안녕하세요. 오늘은 최근 많이 쓰이고 있는 데이터베이스 종류에 대해서 비교하는 포스팅을 하려고합니다. 대표적으로 분류하면 RDBMS, ORDBMS, NOSQL, NoSQL에 포함되어 있지만 In-Memory DB등이 있으며, 그 중, RDB, NoSQL, In-Memory DB에 대해서 비교해보려고 합니다.



1. RDB(Relational Database)


RDB는 관계형 데이터베이스며, 대표적으로 Mysql, Oracle, PostgreSql 등이 가장 많이 알려진 RDB입니다. 아래의 그림과 같은 구조를 나타냅니다.



- 특징


1) 테이블(Table) 마다 스키마(Schema)를 정의해야 됩니다.

2) 데이터 타입과 제약(Constraint)를 통해서 데이터의 정확성을 보장합니다.

3) SQL 질의문을 통해 요청을 처리합니다.

4) 성능을 높이려며 하드웨어(H/W)를 고성능으로 교체해야 된다. (Scale Up)

5) 고성능 하드웨어는 가격이 비싸기 때문에, RDB의 성능을 높이거나 확장하기 어렵기 때문에 확장성에 좋지 않습니다.





2. NoSQL(Not only SQL)


대표적으로 mongoDB, hBase 등이 있으며, mongoDB의 경우 문서(document)형 데이터베이스이며, 많이 알려진 DB중 하나입니다. 그리고, hBase 같은 경우는 빅데이터 처리를 한다고 하면 누구나 한번쯤은 들어봤을 법한 DB입니다. 아래의 그림과 같은 구조를 나타냅니다.(Key-Value 형태도 나타내지만 in-memory에서 표현했습니다.)



- 특징


1) RDB의 확장성 이슈를 해결하기 위해 나온 데이터베이스 모델입니다.

2) 분산 컴퓨팅 활용이 목적이고, 이것을 통해 비교적 저렴한 가격으로 DB 성능을 높일 수 있습니다. (Scale Out)

3) 여러 개의 테이블이 아닌, 큰 테이블 하나만을 사용합니다.

4) 가장 많이 쓰이는 NoSQL의 방식은 key-value방식으로 데이터를 관리합니다.

5) SQL 질의문을 사용하지 않습니다.

6) Schema-less (구조 변경이 용이하고, 데이터 형식이 다양하며, 바꾸기 쉬우며, 정확성 보다는 데이터 양이 중요한 빅데이터(Big Data)에 사용합니다.

7) 대표적으로 MongoDB(document-oriented), redies(key-value) 등이 있습니다.


 


3. In-Memory DB


In-Memory DB의 경우에는 NoSQL 방식에 속하는 데이터베이스 이며, key-value방식을 사용하고 있습니다. 아래와 같은 구조를 나타냅니다.



- 특징


1) Memory의 가격이 용량 대비, 충분히 낮아지면서 빠른 데이터베이스 성능을 위해서 등장했습니다.

2) 디스트(Disk) 대신 메모리(Memory)를 사용함으로써, I/O(input/output)의 성능을 높여줍니다.

3) 대표적으로 Redis 및 LMDB 등이 있습니다.



이상으로 간략하게 데이터베이스의 종류에 대해서 및 그것들이 어떠한 구조로 되어있고 어디서 쓰이는지에 대해 간략하게 알아보았으며, 이것으로 포스팅을 마치도록 하겠습니다.