[SQLD/개정] 오답노트 과목 1 - 데이터의 이해
1장. 데이터 모델링의 이해
2장. 데이터 모델과 성능
성능 데이터 모델링 순서
정규화 → 용량산정 → 트렌젝션 파악 → 반정규화 → PK/FK등 조정 → 검증
1차, 2차, 3차 데이터 정규화
-
1차 정규화 :
1) 같은 성격과 내용의 컬럼이 연속적으로 나오는 경우
2) 속성 하나에 2개 이상 속성값이 있는 경우
→ 해당 컬럼 제거 → PK를 추가한 새로운 테이블 생성 -
2차 정규화 : 부분함수종속상태인 경우
→ 모든 컬럼이 완전 함수적 종속을 만족하도록 분리 -
3차 정규화 : PK가 아닌 일반 열에 의존하는 열이 있는 경우
→ 기본키 외 컬럼이 다른 컬럼을 결정하면 안 됨!
→ 별도 테이블 생성
파티셔닝 != 분산 데이터베이스
- 데이터베이스 분할 하는 것. 분할된 각 부분은 파티션
- 파티셔닝의 특징 : 분산 데이터베이스 분할. 여러 노드에 파티션을 분산 배치
로우 체이닝, 로우 마이그레이션
- 원인/현상 : 하나의 테이블에 대량의 데이터 or 많은 수의 칼럼 존재
→ 남는 공간이 없어서 새로운 데이터 블록에 저장 - 로우 체이닝 : 저장 시 발생. 하나의 로우가 2개 이상에 걸침
- 로우 마이그레이션 : 수정 시 발생, 다른 블록 빈 공간 찾음, 기존 자리엔 포인터 표시
인덱스
- 엔터티간에 논리적 관계가 있는 경우 → 조인 자주 발생
→ 이럴 때 인덱스 있으면 조인 성능 향상에 도움됨
슈퍼-서브타입
- 트랜젝션은 항상 전체를 통합하여 처리함
- 슈퍼-서브타입을 하나 테이블로 통합 시 조인이 감소되어 성능이 우수함