DBMS의 개요
RDBMS
RDBMS(Relational DataBase Management System)는 관계형 데이터베이스(RDB, Relational DataBase)를 관리하는 시스템이다. 관계형 데이터베이스는 모든 데이터를 테이블 단위로 저장하며, 각 테이블은 속성과 튜플로 구성된다. 관계형 데이터베이스에서는 현실 세계의 복잡한 사건이나 사물의 특성을 관계(relationship)으로 표현하며, 테이블 간의 관계는 일대일 관계, 일대다 관계, 다대다 관계로 구분된다.
- 일대일(1:1) 관계 : 한 튜플이 다른 테이블의 한 튜플과 연관된 관계이다.
- 일대다(1:N) 관계 : 한 튜플이 다른 테이블의 여러 튜플과 연관된 관계이다.
- 다대다(N:M) 관계 : 여러 튜플이 다른 테이블의 여러 튜플과 연관된 관계이다
SQL
RDBMS에서 데이터를 관리하는 데 사용하는 언어는 SQL(Structured Query Language)이다.
SQL의 문법은 크게 세 가지 유형으로 나뉜다. 데이터 정의어인 DDL(Data Definition Language), 데이터 조작어인 DML(Data Manipulation Language), 데이터 제어어인 DCL(Data Control Language)이 있다.
유형 | 설명 | 종류 |
---|---|---|
DDL | 테이블이나 관계의 구조를 생성하고 관리하기 위해 사용 | CREATE, DROP, ALTER, TRUNCATE |
DML | 테이블의 데이터를 생성, 조회, 수정, 삭제하기 위해 사용 | SELECT, INSERT, UPDATE, DELETE |
DCL | 데이터의 사용 권한을 관리하기 위해 사용 | GRANT, REVOKE |
NoSQL
NoSQL(Not only SQL)은 이름 그대로 SQL을 사용하지 않는 DBMS이다. 저장 형식이 일정하지 않은 비정형 데이터를 효율적을 관리하기 위해 개발됨. 저장 유형이 테이블뿐인 RDBMS와 달리, NoSQL은 데이터 저장 유형이 다양하다. 예를 들어 도큐먼트 데이터베이스, key-value 데이터베이스, 그래프 데이터베이스가 있다.
도큐먼트 데이터베이스
도큐먼트 데이터베이스(document DB)는 JSON(제이슨) 또는 XML 형식의 도큐먼트로 데이터를 저장한다. 관계형 데이터베이스와 달리 도큐먼트 데이터베이스에는 행과 열이라는 개념이 없다. 도큐먼트 형식만 맞추면 되고 데이터마다 구성이 같을 필요도 없기 때문에 원하는 형태의 데이터를 자유롭게 저장할 수 있다.
key-value 데이터베이스
읽고 쓰는 속도가 매우 빠른 데이터베이스이다. key-value 데이터베이스를 사용하는 프로그램은 CassandaDB(카산드라디비)와 DynamoDB(다이나모디비)이다. 데이터는 고유한 식별자인 ‘키’와 해당 데이터의 ‘값’으로 구성된다.
- 장점 : 데이터가 단순하기 때문에 분산 시스템에서 데이터 저장과 접근이 쉽고, 대용량 데이터 처리와 병렬 처리도 용이하다.
- 단점 : 관계형 데이터베이스보다 데이터 처리의 유연성이 떨어지기 때문에 데이터 간의 관계를 표현하는 것이 불가능하고, 복잡한 쿼리 작업이 어려울 수 있다.
따라서 키-값 데이터베이스는 간단한 데이터 처리에 적합하며, 데이터 간의 관계가 중요하지 않은 경우에 사용된다.
그래프 데이터베이스
4개 이상의 테이블을 사용하는 복잡한 쿼리를 수행할 때 강점을 발취하는 데이터베이스이다. 그래프 데이터를 사용하는 대표적인 프로그램은 Neo4j(네오포제이)이다. 그래프 데이터베이스는 복잡한 데이터 간의 연결을 효율적으로 관리하고, 경로 탐색 같은 복잡한 쿼리를 지원한다. 하지만 그래프 데이터베이스는 데이터 모델의 복잡성 때문에 상대적으로 구현이 어려울 수 있다. 또한 분산 시스템에서 확장성이 상대적으로 떨어지므로 대용량 데이터 처리에 제한적일 수 있다.