RDBMS와 NOSQL
RDBMS와 NOSQL
컴퓨터에서 사용하는 데이터를 구조화한 체계적인 집합체를 데이터베이스라고 한다.
이 데이터 베이스를 관리하는 시스템을 DBMS(DataBase Management System)이라고 하며
이를 다시 크게 두 분류로 나눌 수 있는데
관계형 데이터베이스 RDBMS(Relational DataBase Management System)와
그외 형태의 NoSQL이 있다.
RDBMS
키(key)와 값(value)들의 관계를 테이블화 시킨 데이터베이스로
테이블과 테이블이 서로 관계를 맺고 모여있는 집합체로 볼 수 있다.
테이블끼리의 연관성을 나타내기위해 외래키(foreign key)를 사용한다.
이 외래키를 이용하여 테이블끼리 JOIN하여 서로 참고를 할 수 있다.
SQL(Structed Query Language)을 사용하여 데이터를 처리한다.
ACID트랜잭션을 보장하는 특징이 있다.
ACID는 데이터의 유효성을 보장하기 위한 트랜잭션 특징이다.
- Atomicity 원자성: 하나라도 실패하면 전부 실패한다는 특징이다. 성공하려면 전부 성공해야한다.
- Consistency 일관성: 트랜잭션이 성공하면 언제나 일관성있는 DB상태를 유지한다.
- Isolation 독립성: 트랜잭션 수행 시 다른 트랜잭션이 개입할 수 없는 특징이다.
- Durability 지속성: 성공한 트랜잭션은 영원히 반영된다.
예시로는 MySQL, ORACLE 등이 있다.
장점
데이터의 분류, 정렬, 탐색 속도가 빠르다.
ACID를 통해 작업의 완전성을 보장한다.
NoSQL
NoSQL은 Not Only SQL의 약자로 RDBMS외의 다른 형태의 데이터 베이스관리 시스템이다.
테이블은 서로 관계를 맺을 수 없고 그저 하나의 테이블이다.
키-값 데이터베이스, 그래프 데이터베이스, 문서 데이터베이스 등 형태가 다양하다.
예시로는 Redis, MongoDB 등이 있다.
장점
형식이 없어 자유로운 데이터 구조를 가질 수 있다.
데이터 조정, 추가가 자유롭다.
대용량 데이터를 다룰 수 있다.