반응형
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 |
댓글