고양이 여름이의 지식채널
데이터 베이스 정규화 정리 (개요, 예시) 본문
데이터베이스 설계를 시작할 때는 정규화 프로세스를 고려해야 합니다. 정규화 프로세스는 데이터베이스의 데이터를 체계적으로 구성하는 방법으로, 일관성 있고 관리하기 쉬우며 중복되지 않도록 데이터베이스의 데이터를 구성하는 프로세스를 포함합니다.
데이터베이스 정규화 이해
데이터베이스 정규화를 하다는 것은 테이블에서 데이터 중복은 제거되어 구성되며 데이터는 가장 효율적인 방식으로 저장하는 일련의 과정이라고 생각하면 됩니다.
정규화를 수행하면 데이터 중복이나 불일치가 발생하지 않으므로 데이터의 무결성과 정확성을 유지하는 데 도움이 됩니다.
정규화 단계
정규화 프로세스에는 일반적으로 사용하는 데이터베이스 설계를 평가하고 세분화하는 작업도 포함됩니다만 정규화를 한다고 하면 다음 3가지 단계를 거치게 됩니다. 3단계는 다음과 같습니다.
제1 정규화 (1NF)
제1 정규화에서 각 테이블은 1개의 원자 값만 포함하도록 설계됩니다. 즉, 표의 각 열에는 값이 하나만 포함되어야 합니다.
예를 들어, 고객 정보가 들어 있는 표를 생각해 보자면. 각 열에는 고객의 이름 또는 전화 번호와 같은 단일 정보만 포함되어야 합니다.
제2 정규화(2NF)
제2 정규화는 우선적으로 제1정규화가 완료된 테이블에 한해서
테이블의 각 열은 테이블의 주 키에 종속됩니다. 즉, 테이블의 모든 열이 기본 키(primary key)와 관련되어 데이터 중복이 발생하지 않도록 해야 합니다.
제3 정규화(3NF)
제3정규화는 제2정규화가 완료된 테이블에 한해서 이행 함수 종속을 제거하는 과정입니다.
정규화 예제
정규화해야 하는 간단한 표의 예제입니다.
제1 정규형 테이블
각 열에 각각 1개의 단일정보만 포함되고 있다.
Order.
OrderID | ProductName | ProductDescription | SupplierName | SupplierCountry | UnitPrice |
1 | iPhone | Latest iPhone model | Apple | USA | 1000 |
1 | AirPods | Wireless earbuds | Apple | USA | 200 |
2 | Samsung TV | 55" 4K Smart TV | Samsung | South Korea | 1500 |
3 | Sony Camera | 20MP Digital Camera | Sony | Japan | 800 |
3 | Camera Lens | 50mm Prime Lens for Sony | Sony | Japan | 300 |
여기서 제2 정규화를 하게 되면.
제2 정규형 테이블
OrderDetails.
OrderID | ProductName | ProductDescription | UnitPrice |
1 | iPhone | Latest iPhone model | 1000 |
1 | AirPods | Wireless earbuds | 200 |
2 | Samsung TV | 55" 4K Smart TV | 1500 |
3 | Sony Camera | 20MP Digital Camera | 800 |
3 | Camera Lens | 50mm Prime Lens for Sony | 300 |
Suppliers.
SupplierName | SupplierCountry |
Apple | USA |
Samsung | South Korea |
Sony | Japan |
주문정보 테이블과 공급자 테이블로 놔눌수가 있다.
그러나 여전히 공급사와 공급국가 간에 종속성이 남아있습니다.
제3정규화...
제3 정규형 테이블
OrderDetails.
OrderID | ProductName | ProductDescription | UnitPrice |
1 | iPhone | Latest iPhone model | 1000 |
1 | AirPods | Wireless earbuds | 200 |
2 | Samsung TV | 55" 4K Smart TV | 1500 |
3 | Sony Camera | 20MP Digital Camera | 800 |
3 | Camera Lens | 50mm Prime Lens for Sony | 300 |
Suppliers.
SupplierName |
Apple |
Samsung |
Sony |
Country.
CountryName | SupplierName |
USA | Apple |
South Korea | Samsung |
Japan | Sony |
정리
정규화 프로세스는 데이터 중복 및 종속성을 점진적으로 제거하는 정규화 양식이라는 규칙 집합을 따르는 것을 포함합니다.
* 제 1 정규화는 반복 그룹을 제거하고 테이블의 모든 속성에 단일 원자 값만 포함되도록 합니다.
* 제 2 정규화는 부분 종속성을 제거하고 각 속성이 전체 기본 키에 의존해야 합니다.
* 제 3 정규화는 과도적 종속성을 제거하고 모든 비 키 속성이 기본 키에만 의존하도록 합니다.
정규화는 때때로 더 복잡한 쿼리와 테이블 조인으로 이어질 수 있지만, 잘 정규화된 데이터베이스는 더 효율적이고 확장 가능할 뿐만 아니라 유지관리 및 수정이 더 쉽습니다. 따라서 크기나 복잡성에 관계없이 데이터베이스 설계에 정규화 원칙을 적용하는 것이 중요합니다.