본문 바로가기
Programming

RDB와 NoSQL 비교 및 언제 사용하면 좋을까

by Berasix 2022. 11. 8.
반응형

RDB(Relational DataBase)

- 관계형 데이터베이스

- 테이블끼리 서로 관계를 맺고 있다.

- 테이블 사이의 관계는 외래 키로 표현한다.

- 정교하며, 테이블 사이에 의존성이 있기 때문에, 스키마 변경이 어렵다.

- ACID 성질 : 데이터베이스 트랜잭션이 발생할 때, 그 안정성을 보장할 수 있는 성질

- 핵심은 SQL!

- 데이터 구조만 생각하면 된다.

- 트랜잭션 처리

- Oracle, DB2, SQL Server, MySQL, PostgreSQL

 

NoSQL(Not only SQL / Not SQL)

- 관계형이 아니다. 

- 정규화되어 있지 않는다.

- 조인연산이 없다. 쿼리를 사용할 수 없다.

- 데이터모델을 총칭하며 document 모델, key-value 모델, 그래프 모델 등이 있다.

- 연산이 빨라 빅데이터, 실시간 연산에 적합하다.

- 저장 전 DB에서 어떤 걸 얻을지 생각해야 한다.

- 분석 처리

- document 모델 : MongoDB(json 형태로 저장)

- Key-Value 모델 : CassandraDB(읽기 쓰기가 겁나 빠르다), DynamoDB(아마존)

- 그래프 모델 : Tao(페이스북/각각의 엔티티를 저장하고 관계망으로 연결), neo4j

 

NoSQL은 언제 사용하는 게 좋을까?

일반적인 프로젝트는 RDB로 시작하고 소프트웨어가 커져 RDB로 해결되지 않을 경우 NoSQL 도입을 생각한다.

 

따라서, 딱히 미리 공부할 필요는 없을 듯하다.

 

728x90

'Programming' 카테고리의 다른 글

Getting Real 빠르게 읽고 요약  (0) 2023.04.03
고급 프로그래머 역량  (0) 2023.01.30
올바른 DB 스키마 설계하기  (0) 2022.11.08

댓글