데이터 베이스 (DataBase) 란?
먼저 데이터베이스에 대해 알아보자.
데이터베이스(DB)란 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 말한다.
이러한 데이터베이스를 관리해주는 시스템이 있다.
우리는 그것을 DBMS(DataBase Management System) 라고 한다.
DBMS를 이용하여 데이터베이스에서 사용자가 원하는 데이터를 추출하고 가공하여 사용자에게 정보를 제공할 수 있다.
RDBMS
관계형 데이터베이스는 DB 앞에 R( Relational, 관계형 )을 붙여 RDB로 나타낸다.
RDB를 관리해주는 시스템을 RDBMS 라고 한다.
RDB는 테이블, 행, 열을 구조화하는 방식이다.
테이블 간의 JOIN을 이용하여 정보간의 관계를 설정할 수 있어 여러가지 데이터 포인트 간의 관계를 쉽게 이해할 수 있다는 장점이 있다.
RDBMS의 종류에는 MySQL, PostgreSQL, MariaDB, MsSQL 등이 있다.
NoSQL
Not only SQL 로 비관계형 데이터베이스이다.
관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술이며, 관계형 데이터베이스의 한계를 극복하기 위해 만들어진 데이터베이스이다.
비관계형 데이터베이스의 유형에는 여러가지가 있다
- Key - Value
- Document
- graph
Key-Value 데이터베이스는 Key-Value를 한쌍으로 데이터를 저장하여 속도가 빠르고 분산 저장시 유용하다.
ex) Redis, DynamoDB
Document 데이터베이스는 row, column과 같은 구조가 없어 자유로운 형태로 데이터를 저장한다.
일반적으로 JSON, XML 형태이다.
데이터베이스별로 데이터를 조작할 수 있는 언어가 따로 존재한다.
ex) MongoDB, CassandraDB, CouchBase
Graph 데이터베이스는 데이터를 graph 형태로 저장한다.
각 항목이 노드(node)로 이루어져 있으며, 각 노드간의 관계를 edge를 이용하여 나타낸다.
SNS 등과 같이 서로 간의 관계가 복잡할 때 사용한다.
ex) Neo4J, OrientDB
RDBMS와 NoSQL의 장단점
- 관계형 데이터베이스 (RDBMS)
- 장점
- 스키마를 정하여 정해진 스키마에 따라 데이터를 저장하여 명확한 데이터 구조를 보장한다.
- 데이터의 분류, 정렬, 탐색 속도가 비교적 빠름
- 작업의 완전성을 보장함
- SQL 이라는 구조화된 질의를 통해 데이터를 다룰수 있음
- 단점
- 반드시 스키마에 맞춰서 데이터를 다뤄야한다
- 데이터 처리에 대한 부하 발생 시, 처리가 어렵다
- 장점
- 비관계형 데이터베이스 (NoSQL)
- 장점
- 데이터간의 관계를 정의하지 않는다
- RDBMS보다 복잡도가 떨어져 대용량의 데이터를 저장 관리할 수 있다
- 스키마를 정하지 않아 데이터 저장이 자유롭다
- 단점
- 스키마를 정하지 않아 데이터 규격화가 되어있지 않음
- 데이터를 UPDATE 하는 것이 비교적 느림
- 장점
댓글