RDB (Relational Database)
ACID rules
- 원자성(Atomicity) - 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것
- 일관성(Consistency) - 트랜잭션 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것
- 고립성(Isolation) - 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하는 것
- 지속성(Durability) - 성공적으로 수행된 트랜잭션은 영원히 반영되는 것
NO-sql (Not Only SQL)
Key-Value
- Set 처럼 자료 저장
document
[
{
"year" : 2013,
"title" : "Turn It Down, Or Else!",
"info" : {
"directors" : [ "Alice Smith", "Bob Jones"],
"release_date" : "2013-01-18T00:00:00Z",
"rating" : 6.2
}
},
....
{...}
]
- json 과 같은 비슷한 형태
그래프
인 메모리
- 디스크 대신 RAM에 저장
- 휘발성
RDB vs NO-sql
관계형 데이터베이스 | NO-sql 데이터베이스 | |
---|---|---|
최적의 워크로드 | 관계형 데이터베이스는 트랜잭션 및 강력히 일관된 온라인 트랜잭션 프로세싱(OLTP) 애플리케이션을 위해 설계 | NoSQL 키 값, 문서, 그래프 및 인 메모리 데이터베이스는 낮은 지연 시간의 애플리케이션을 포함한 수많은 데이터 액세스 패턴에 맞도록 OLTP를 위해 설계되었습니다. NoSQL 검색 데이터베이스는 반정형 데이터에서 분석을 위해 설계되었습니다 |
데이터 모델 | 테이블, 행, 열, 인덱스, 테이블 간 관계, 기타 데이터베이스 요소를 정확하게 규정 | 문서, 그래프, 키 값, 인 메모리, 검색 등 다양한 데이터 모델 |
ACID 속성 | ACID(atomicity, consistency, isolation, durability)의 속성을 제공 | 관계형 데이터베이스의 일부 ACID 속성을 완화 |
성능 | 디스크 하위 시스템에 따름. 쿼리, 인덱스, 테이블 구조 최적화 필요 | 하드웨어 클러스터 크기, 네트워크 지연 시간 및 호출 애플리케이션에 따름 |
확장 | 머신성능 향상 | 분산형 아키텍처 |
API 요청 | SQL(구조화 질의 언어)을 준수하는 쿼리 | 객체 기반 API |
성능
| 데이터 모델 | 성능 | 확장성 | 유연성 | 복잡성 | 기능 | |————-|—–|———-|—–|—–|———-| | 키-값 스토어 | 높음 | 높음 | 높음 | 없음 | 가변적 (없음) | | 컬럼 지향 스토어 | 높음 | 높음 | 준수 | 낮음 | 최소 | | 도큐먼트 지향 스토어 | 높음 | 가변적 (높음) | 높음 | 낮음 | 가변적 (낮음) | | 그래프 데이터베이스 | 가변적 | 가변적 | 높음 | 높음 | 그래프 이론 | | 관계형 데이터베이스 | 가변적 | 가변적 | 낮음 | 준수 | 관계대수 |
댓글남기기