반응형
- 정규화(Normalization)란
- 정규화의 기본 목표는 테이블간에 중복된 데이터를 허용하지 않는 것이다. 이로써 무결성을 유지할 수 있으면 DB의 저장 용량 역시 줄일 수 있다.
- 제 1 정규화
- 테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분해하는 것
- 제 2 정규화
- 제 1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것
- 완전 함수 종속이란, (기본키가 복합키일 경우) 기본키의 부분 집합이 결정자가 되어서는 안 된다는 것을 의미한다.
- 제 1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것
- 제 3 정규화
- 제 2정규화를 진행한 테이블에 대해 이행적 종속이 없도록 테이블을 분해하는 것
- 이행적 종속이란, A→B가 성립하고 B→C가 성립할 때 A→C가 성립하는 것을 말한다.
- 이런 경우 A와 B, B와 C로 묶어 테이블을 2개로 분리해야 한다.
- 제 2정규화를 진행한 테이블에 대해 이행적 종속이 없도록 테이블을 분해하는 것
- BCNF 정규화
- 제 3 정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것
반응형
'개발이야기 > 웹개발' 카테고리의 다른 글
[코드잇 스프린트 풀스택 4기] 웹 페이지 랜더링 방식 CSR, SSR, SSG (1) | 2025.01.20 |
---|---|
[코드잇 스프린트 풀스택 4기] 관계형 데이터 베이스 (0) | 2024.12.10 |
[코드잇 스프린트 풀스택 4기] 리액트 생명 주기(Life Cycle)란 (1) | 2024.12.10 |
[코드잇 스프린트 풀스택 4기] 리액트 배열 렌더링 시 key를 지정해야 하는 이유 (0) | 2024.12.10 |
[코드잇 스프린트 풀스택 4기] 리액트 useMemo, useCallback (0) | 2024.12.10 |