데이터베이스는 크게 Relational DB와 Non-relational DB(non SQL, Not only SQL)로 나뉜다.
Relational DB는 개체 간 관계를 2차원 테이블로 표현한 것으로 ACID(atomicity, consistency, isolation, durability)를 제공하며,
Non-relational DB는 RDB의 ACID를 완화하여 많은 처리량과 낮은 지연 시간을 요구하는 데이터 액세스 패턴에 맞도록 설계되었다.
ACID - atomicity, consistency, isolation, durability
atomicity : 트랜잭션 단위의 데이터 처리 보장
consistency : 트랜잭션 커밋시, 스키마를 준수하도록 보장
isolation : 동시에 발생하는 트랜잭션들이, 각자 별도로 수행되도록 보장
durability : 장애시 데이터 복구 보장
또한, RDB는 반영하고자 하는 비지니스 로직이 OLTP와 OLAP 관점 중 어느 관점에 더욱 적합한지에 따라 여러 갈래로 나뉘어진다.
본 포스트에서는 DB 선택/설계시의 관점인 OLAP와 OLTP에 대해서 간략히 다룬다.
최적화 방향성: 정규화 기반 ER 모델링을 통한 데이터 갱신 효율성, 무결성 극대화
최적화 방향성: 디멘션 모델링을 통한 조회성능, 사용성, 접근 편의성 개선
참고: OLAP는 데이터들을 어떻게 저장하느냐에 따라 Relational OLAP(릴레이션으로 저장), Multimensinal OLAP(결과값을 다차원 배열로 저장) 등으로 다시 나뉘어진다.
OLAP의 종류: https://12bme.tistory.com/144