본문 바로가기
목차훔치기/면접을 위한 CS 전공지식 노트

ERD 정규화 과정(면접을 위한 CS 전공지식 노트)

by 해삼2 2023. 10. 5.
728x90
반응형
ERD 정규화 과정

ERD정규화 과정

ERD의 정규화는 데이터베이스 설계 과정에서 중복을 최소화하고 

데이터 일관성을 유지하기 위한 과정입니다. 

이것은 주로 관계형 데이터베이스에서 사용되며 데이터 중복을 줄이고 데이터 저장 및 관리를 최적화합니다. 

 

ERD 정규화 과정

1차 정규화 (1NF - First Normal Form):
엔터티 내의 모든 속성은 원자적이어야 합니다.

이것은 각 속성이 더 이상 나눌 수 없는 최소 단위의 데이터를 포함해야 함을 의미합니다.
중복된 열을 제거하고, 모든 열은 동일한 데이터 형식을 가져야 합니다.

 

2차 정규화 (2NF - Second Normal Form):
1차 정규화를 통해 각 엔터티는 원자적인 속성을 가지고 있습니다. 

이제 관련된 모든 데이터는 하나의 엔터티에 포함되어야 합니다.
부분 함수 종속을 제거하기 위해 모든 엔터티는 주요 키에 대해 완전 함수 종속해야 합니다.

 

3차 정규화 (3NF - Third Normal Form):
2차 정규화를 통해 부분 함수 종속이 제거되었습니다. 

이제 이행 함수 종속을 제거하기 위해 필요한 조치를 취해야 합니다.
이를 위해, 엔터티 내의 모든 비주요 속성이 후보 키에 대해 이행 함수 종속되지 않아야 합니다.


BCNF (Boyce-Codd Normal Form):
BCNF는 3차 정규화의 확장으로, 엔터티의 모든 결정자가 후보 키여야 합니다.

즉, 어떤 열도 후보 키가 아닌 열에 종속적이지 않아야 합니다.


4차 정규화 (4NF - Fourth Normal Form):
4차 정규화는 다중 값 종속을 다루기 위한 것으로, 다중 값 속성을 별도의 엔터티로 분리합니다.

 

5차 정규화 (5NF - Fifth Normal Form):
다중 값 종속과 관련하여 불필요한 데이터 중복을 제거하기 위해 5차 정규화를 수행합니다.


정규화는 데이터의 중복을 최소화하고 데이터 무결성을 유지하기 위한 과정으로, 

데이터베이스의 성능을 향상시키고 데이터의 일관성을 보장합니다. 

그러나 과도한 정규화는 쿼리의 복잡성을 증가시킬 수 있으므로 실제 적용 시에는 

성능과 일관성 사이의 균형을 고려해야 합니다.

 

정규화 과정시 주의 할 점

목표 이해: 

데이터베이스 정규화의 목적은 데이터 중복을 최소화하고 데이터 일관성을 유지하는 것입니다. 

이를 명확히 이해하고 목표를 고려하며 정규화를 진행해야 합니다.

데이터 손실 방지: 

높은 정규형으로 이동하면 데이터 중복이 감소하지만 필요한 정보를 얻기 어려워질 수 있습니다. 

정규화 과정에서 필요한 정보를 잃지 않도록 주의해야 합니다.

효율성 고려: 

정규화는 데이터 일관성을 유지하는 데 도움이 되지만 쿼리 성능에도 영향을 미칩니다. 

너무 많은 테이블을 생성하면 복잡한 조인이 필요하므로 성능 저하가 발생할 수 있습니다.

업무 규칙 이해: 

정규화를 진행할 때 해당 업무의 규칙을 이해하고, 엔터티와 속성을 정확하게 식별해야 합니다. 

엔터티 및 속성을 정확하게 정의하지 않으면 데이터 일관성이 훼손될 수 있습니다.

반복 검토: 

정규화 과정은 반복적일 수 있으며, 모든 단계를 한 번에 완료할 필요는 없습니다. 

초기에는 기본적인 정규화를 수행한 후 데이터 모델을 검토하고, 

필요할 때 더 높은 정규형으로 이동할 수 있습니다.

성능 고려: 

정규화는 데이터 일관성을 개선하지만 쿼리 성능에도 영향을 미칩니다. 

데이터베이스 사용 패턴과 요구 사항을 고려하여 성능 최적화를 위한 적절한 균형을 찾아야 합니다.

인덱싱: 

정규화된 테이블을 쿼리하기 위한 적절한 인덱스를 설계하고 유지해야 합니다. 

인덱스 없이 정규화된 테이블을 쿼리하면 성능 문제가 발생할 수 있습니다.

의사 결정: 

정규화 과정은 일부 의사 결정을 필요로 합니다. 

예를 들어, 어떤 엔터티를 분리할 것인지, 

어떤 속성을 어떤 엔터티로 이동할 것인지 등에 대한 결정을 신중하게 내려야 합니다.

문서화: 

정규화된 데이터 모델을 문서화하여 향후 유지보수 및 이해 관계자들에게 설명하기 쉽게 만듭니다.

정규화는 데이터베이스 설계에서 중요한 프로세스이며, 주의 깊게 고려해야 합니다. 

데이터 모델의 복잡성과 업무 요구 사항을 고려하면서 최적의 정규화 수준을 찾는 것이 중요합니다.

 

728x90
반응형