SQLD 시험준비 (벼락치기) 개념정리 4번째 글
개념정리 1 ~ 3편은 아래 글을 참조
2024 SQLD 시험 준비 - 개념 정리 1편 <데이터 모델의 이해>
1월 말일에 SQLD 시험을 등록하고 한 달이 지났는데 아직 공부 시작을 하지 않았다. 물론 개인적으로 진짜 바쁘긴 했지만, 이렇게 코앞에 다가올 때까지 하지 않을 줄 몰랐다. 사실 사이트에 가서
minbook.tistory.com
2024 SQLD 시험 준비 - 개념 정리 2편 <엔터티, 속성, 관계>
SQLD 시험준비 (벼락치기) 개념정리 2번째 글 첫 번째 글인 정리는 아래를 참고. 2024.03.03 - [일상 기록] - 2024 SQLD 시험 준비 - 개념 정리 1편 엔터티 (Entity) 엔터티 (Entity) 정의 및 개념 데이터의 집합
minbook.tistory.com
2024 SQLD 시험 준비 - 개념 정리 3편 <식별자>
SQLD 시험준비 (벼락치기) 개념정리 3번째 글 개념정리 1, 2편은 아래 글을 참조 2024 SQLD 시험 준비 - 개념 정리 1편 1월 말일에 SQLD 시험을 등록하고 한 달이 지났는데 아직 공부 시작을 하지 않았다.
minbook.tistory.com
성능 데이터 모델링 개요
모델링 시 최대한 중복 데이터를 허용하지 않아야 저장공간 효율적 사용 & 업무 프로세스 성능 UP
→ 중복 데이터를 허용하지 않는 방식으로 테이블을 설계하는 방식 = 정규화 (필수)
- 성능 데이터 모델링: DB 성능 향상을 위한 사항이 데이터 모델링에 반영되도록 하는 것
- 수행 시점: 분석 / 설계 단계 (늦어질수록 재업무 비용 증가)
- 고려 사항: 정규화 수행, DB 용량 산정 & 트랜잭션 유형 파악 → 반정규화 수행
정규화(DB Normalization) 개념
- 하나의 엔터티에 많은 속성 → 엔터티 조회마다 많은 양 데이터가 조회됨 : 최소한 데이터만을 하나의 엔터티로 넣는 데이터 분해 과정
- 데이터 일관서으 최소한의 데이터 중복, 최대한의 데이터 유연성 과정
- 데이터 중복을 제거 & 데이터 모델의 독립성 확보
- 데이터 이상현상 (anomaly) 줄이기 위한 데이터베이스 설계 기법
- 엔터티를 상세화하는 과정 → 논리 데이터 모델링 수행 시점에서 고려됨
- 제 1 정규화 - 제 5 정규화 (실질적으로는 제3 정규화까지만 진행)
이상 현상 (Abnormality)
- 정규화를 하지 않아 발생하는 현상 (삽입 이상 / 갱신 이상 / 삭제 이상)
- 삽입 이상: 특정 인스턴스가 삽입될 때 정의되지 않아도 될 속성까지 반드시 입력해야 하는 현상 (불필요한 값까지 입력해야 함)
- 갱신 이상: 데이터 갱신 시 일부 데이터만 갱신되며 일관성 유지되지 않음
- 삭제 이상: 관련 정보를 같이 삭제해야 하는 현상, 행 삭제 시 원하지 않는 연쇄 삭제 발생
정규화 단계
제 1 정규화 (1NF)
- 테이블의 컬럼이 원자성을 갖도록 분해함 (원자성을 확보하는 단계)
- 기본키를 설정하는 과정
- 한 속성이 하나의 값을 갖는 특성
- 하나의 행, 컬럼에 하나의 값만 있도록 분리함
제 2 정규화 (2NF)
- 완전 함수 종속을 만들도록 테이블을 분해 / 부분 함수 종속성을 제거
- 완전 함수 종속: 기본키를 구성하는 모든 컬럼의 값이 다른 컬럼을 결정짓는 상태
- 기본키의 부분집합이 다른 컬럼과 1:1 대응을 갖지 않는 상태
- 예) 기본키로 결정되지 않는 값, 부분 함수 종속성을 가짐 = 완전 함수 종속을 위배함
제 3 정규화 (3NF)
- 제2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분리 (이행 함수 종속성 제거)
- 이행적 종속: A → B, B → C 의 관계가 성립할 때, A → C 관계가 성립됨
- 이 상태에서 (A, B)와 (B, C) 로 분리하는 것 = 제 3 정규화
--- 아래부터는 시험에 자주 등장하진 않음 ---
제 4 정규화
- 여러 컬럼들이 하나의 컬럼으로 종속되는 경우 분해하여 다중값 종속성 제거
제 5 정규화
- 조인에 의해서 종속성 발생되는 경우 분해
--- 2024년 개정부터 아래 내용은 제외된 것으로 보이지만 개념상 정리 ---
반정규화 (역정규화, De-Normalization) 개념
- 데이터베이스 성능 향상 목적으로 데이터 중복을 허용, 조인을 줄이기 위한 목적
- 시스템 성능 향상
- 다량 범위의 잦은 처리, 요약/집계 정보 자주 요구, 수행 속도 저하 등 대량의 데이터가 자주 활용될 때 시행
'일상 기록' 카테고리의 다른 글
2024 SQLD 시험 준비 - 개념 정리 6편 <관계형 데이터베이스, SELECT, FROM> (0) | 2024.03.08 |
---|---|
2024 SQLD 시험 준비 - 개념 정리 5편 <관계와 조인, 트랜잭션, Null> (0) | 2024.03.08 |
2024 SQLD 시험 준비 - 개념 정리 3편 <식별자> (1) | 2024.03.06 |
2024 SQLD 시험 준비 - 개념 정리 2편 <엔터티, 속성, 관계> (0) | 2024.03.03 |
2024 SQLD 시험 준비 - 개념 정리 1편 <데이터 모델의 이해> (0) | 2024.03.03 |
댓글