logo

표준화

단일 관계로 정의된 대규모 데이터베이스는 데이터 중복을 초래할 수 있습니다. 이러한 데이터 반복으로 인해 다음이 발생할 수 있습니다.

  • 관계를 매우 크게 만듭니다.
  • 관련된 많은 기록을 검색해야 하기 때문에 데이터를 유지하고 업데이트하는 것은 쉽지 않습니다.
  • 디스크 공간과 리소스가 낭비되고 활용도가 떨어집니다.
  • 오류와 불일치가 발생할 가능성이 높아집니다.

따라서 이러한 문제를 해결하려면 중복된 데이터와의 관계를 원하는 속성을 만족하는 더 작고 단순하며 잘 구조화된 관계로 분석하고 분해해야 합니다. 정규화는 관계를 더 적은 속성을 가진 관계로 분해하는 프로세스입니다.

정규화란 무엇입니까?

  • 정규화는 데이터베이스의 데이터를 구성하는 프로세스입니다.
  • 정규화는 관계 또는 관계 집합의 중복을 최소화하는 데 사용됩니다. 또한 삽입, 업데이트 및 삭제 이상과 같은 바람직하지 않은 특성을 제거하는 데에도 사용됩니다.
  • 정규화는 더 큰 테이블을 더 작은 테이블로 나누고 관계를 사용하여 연결합니다.
  • 일반 형식은 데이터베이스 테이블의 중복을 줄이는 데 사용됩니다.

정규화가 필요한 이유는 무엇입니까?

int를 문자열로 C++

관계를 정규화하는 주된 이유는 이러한 이상 현상을 제거하는 것입니다. 이상 현상을 제거하지 못하면 데이터 중복이 발생하고 데이터베이스가 커짐에 따라 데이터 무결성 및 기타 문제가 발생할 수 있습니다. 정규화는 좋은 데이터베이스 구조를 만드는 데 도움이 되는 일련의 지침으로 구성됩니다.

데이터 수정 이상은 세 가지 유형으로 분류될 수 있습니다.

    삽입 이상:삽입 이상(Insertion Anomaly)은 데이터 부족으로 인해 관계에 새 튜플을 삽입할 수 없는 경우를 말합니다.삭제 이상:삭제 이상 현상은 데이터 삭제로 인해 다른 중요한 데이터가 의도치 않게 손실되는 상황을 나타냅니다.업데이트 이상:업데이트 예외는 단일 데이터 값을 업데이트하려면 여러 행의 데이터를 업데이트해야 하는 경우입니다.

정규형의 유형:

정규화는 정규 형식이라는 일련의 단계를 통해 작동됩니다. 정규형은 개별 관계에 적용됩니다. 관계가 제약 조건을 만족하면 특정 정규 형식이라고 합니다.

다음은 다양한 유형의 정규 형식입니다.

DBMS 정규화
일반형 설명
1NF 원자 값을 포함하는 관계는 1NF에 속합니다.
2NF 관계가 1NF이고 키가 아닌 모든 속성이 기본 키에 따라 완전히 기능하는 경우 관계는 2NF가 됩니다.
3NF 관계가 2NF이고 전환 종속성이 존재하지 않으면 관계는 3NF가 됩니다.
BCNF 3NF에 대한 보다 강력한 정의는 Boyce Codd의 정규형으로 알려져 있습니다.
4NF 관계가 Boyce Codd의 정규 형식이고 다중 값 종속성이 없는 경우 관계는 4NF가 됩니다.
5NF 관계는 5NF에 있습니다. 4NF이고 조인 종속성을 포함하지 않는 경우 조인은 무손실이어야 합니다.

정규화의 장점

  • 정규화는 데이터 중복을 최소화하는 데 도움이 됩니다.
  • 전체 데이터베이스 구성이 더 커졌습니다.
  • 데이터베이스 내의 데이터 일관성.
  • 훨씬 더 유연한 데이터베이스 설계.
  • 관계 무결성의 개념을 적용합니다.

정규화의 단점

  • 사용자에게 필요한 것이 무엇인지 알기 전에는 데이터베이스 구축을 시작할 수 없습니다.
  • 관계를 더 높은 정규 형식(예: 4NF, 5NF)으로 정규화하면 성능이 저하됩니다.
  • 더 높은 수준의 관계를 정상화하는 것은 매우 시간이 많이 걸리고 어렵습니다.
  • 부주의하게 분해하면 데이터베이스 설계가 잘못되어 심각한 문제가 발생할 수 있습니다.