IT/SQL Programming

불친절한 SQL 프로그래밍 정규화(1NF, 2NF, 3NF)

만두토끼 2022. 8. 12. 14:40

2.3 정규형(Normal Form, NF) 은 데이터 이상 현상을 제거하기 위한 관계형 모델의 설계 지침 

 

2.3.1 정규화(Normalization)은 데이터 이상(anomaly) 현상을 제거하기 위한 관계형 모델의 설계 지침

🥕 1정규형(1NF) - 원자성(atomicity)와 관련

 

1정규형위배(다중값)

상품코드 엔터티 : 관련부서목록은 다중 값(multiple value)을 가진다. 다가 속성이라고도 부른다.

상품코드
상품명
관련부서목록

1정규형위배(반복그룹)

상품코드
상품명
관련부서번호1
관련부서번호2

🥕 2정규형(2NF) - 부분 종속(Partial dependency)과 관련: 일반 속성이 식별자의 일부 속성에만 종속되는 것이다.

 

2정규형위배

주문상세 엔터티 : 주문수량은 주문번호랑 상품코드 조합에 종속 / 상품명은 상품코드에 종속

1) 주문이 발생하지 않으면 상품입력이 안되고

2) 상품명이 변경되면 동일한 상품코드의 튜플을 모두 수정해야하며

3) 상품이 삭제되면 주문도 함께 삭제된다.

주문번호
상품코드
주문수량
상품명

🥕 3정규형(3NF) - 이행 종속(transitive dependency)과 관련: 일반 속성이 다른 일반 속성에 종속되는 것이다.

 

3정규형위배

사원 엔터티 : 소속부서명은 소속부서번호에 종속

사원번호
사원명
소속부서번호
소속부서명

 

2.3.2 반정규화(denormalization) 

성능 개선을 위해 의도적으로 데이터를 중복시키는 것

데이터 무결성을 보장하기 어렵기 때문에 제한적으로 사용하는 편이 바람직

 

 

2.4 물리 데이터 모델

논리데이터모델 물리데이터모델
엔터티 테이블
속성
도메인 데이터 타입, NOT NULL 제약 조건, CHECK 제약 조건
기본 식별자 PK 제약 조건
외래 식별자 FK 제약 조건