02장
데이터 모델과 질의 언어
데이터 모델은 소프트웨어가 어떻게 작성됐는지, 문제를 어떻게 생각해야 하는지에 영향을 끼친다.
- 관계형 모델과 문서 모델
- SQL: 정해진 스키마가 있음, 관계(relation)로 구성되고 각 관계는 순서 없는 튜플(tuple)(SQL에서 row) 모음
- (+) 데이터 무결성
- (+) 각 데이터를 중복없이 한번만 저장
- (-) 스키마를 사전에 계획
- (-) 대체로 수직적 확장만 가능
- NoSQL: 스키마, 관계(realation)이 없음
- (+) 데이터 조정, 새로운 필드 추가에 유연함
- (+) 데이터를 애플리케이션이 필요로 하는 형식으로 저장, 데이터 읽어오는 속도 빠름
- (+) 수직, 수평 확장 가능하여 애플리케이션이 발생시키는 모든 읽기/쓰기 요청 처리 가능
- (-) 데이터 중복 계속 업데이트
- (-) 데이터 수정시 모든 컬렉션의 중복 수정
- 다중 저장소 지속성(polyglot persistence): 관계형 데이터베이스를 비관계형 데이터스토어와 함께 사용하는 개념