>  기사  >  데이터 베이스  >  데이터베이스의 첫 번째 정규형, 두 번째 정규형, 세 번째 정규형은 무엇인가요?

데이터베이스의 첫 번째 정규형, 두 번째 정규형, 세 번째 정규형은 무엇인가요?

一个新手
一个新手원래의
2017-09-09 14:56:163663검색

Paradigm: 영어 이름은 Normal Form입니다. 1970년대 영국의 E.F. Codd(관계형 데이터베이스의 조상)가 관계형 데이터베이스 모델을 제안한 후 요약한 것입니다. Paradigm은 관계형 데이터베이스 이론의 기초이기도 합니다. 데이터베이스 설계 과정에서 따라야 할 규칙과 지침입니다. 현재 추적할 수 있는 패러다임은 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, DKNF, 6NF 순으로 8가지입니다. 일반적으로 처음 세 가지 정규형, 즉 첫 번째 정규형(1NF), 두 번째 정규형(2NF) 및 세 번째 정규형(3NF)만 사용됩니다. 다음은 이 세 가지 패러다임에 대해 간략하게 소개합니다.
◆ 첫 번째 정규형(1NF): 열의 원자성을 강조합니다. 즉, 열을 다른 열로 나눌 수 없습니다.
다음과 같은 테이블을 고려해보세요: [연락처] (이름, 성별, 전화번호)
실제 시나리오에서 연락처에 집 전화번호와 회사 전화번호가 있으면 이 테이블 구조 디자인은 1NF에 도달하지 않습니다. 1NF를 준수하려면 열(전화), 즉 [연락처](이름, 성별, 집 전화번호, 회사 전화번호)만 분할하면 됩니다. 1NF는 구별하기 쉽지만, 2NF와 3NF는 혼동되기 쉽습니다.
◆ 두 번째 정규형(2NF): 첫째, 1NF이고 두 부분도 포함합니다. 첫째, 테이블에는 기본 키가 있어야 하며, 둘째, 기본 키에 포함되지 않은 열은 기본 키에 완전히 종속되어야 합니다. 기본 키의 일부에만 의존할 수는 없습니다.
주문 세부정보 테이블인 [OrderDetail](OrderID, ProductID, UnitPrice, 할인, 수량, ProductName)을 고려하세요.
한 번의 주문으로 여러 제품을 주문할 수 있다는 것을 알고 있으므로 단일 OrderID로는 기본 키가 될 수 없습니다(OrderID, ProductID). 할인 및 수량은 기본 키(OderID, ProductID)에 완전히 종속되는 반면, UnitPrice 및 ProductName은 ProductID에만 종속된다는 것은 명백합니다. 따라서 OrderDetail 테이블은 2NF를 따르지 않습니다. 2NF를 준수하지 않는 설계는 중복 데이터가 발생하기 쉽습니다.
[OrderDetail] 테이블을 [OrderDetail](OrderID, ProductID, 할인, 수량) 및 [Product](ProductID, UnitPrice, ProductName)로 분할하여 원래 주문 테이블에서 UnitPrice 및 ProductName이 여러 번 반복되는 것을 제거할 수 있습니다.
◆ 제3정규형(3NF): 첫째, 2NF입니다. 또한, 기본 키가 아닌 열은 기본 키에 직접 종속되어야 하며 전이적 종속성이 있을 수 없습니다. 즉, 존재할 수 없습니다. 기본 키가 아닌 열 A는 기본 키가 아닌 열 B에 종속되고 기본 키가 아닌 열 B는 기본 키에 종속됩니다.
기본 키가 (OrderID)인 주문 테이블 [Order](OrderID, OrderDate, CustomerID, CustomerName, CustomerAddr, CustomerCity)를 생각해 보세요.
그 중 OrderDate, CustomerID, CustomerName, CustomerAddr, CustomerCity 등과 같은 기본 키가 아닌 열은 기본 키(OrderID)에 완전히 종속되므로 2NF를 준수합니다. 그러나 문제는 CustomerName, CustomerAddr, CustomerCity가 기본 키에 직접 의존하지 않고 CustomerID(기본 키가 아닌 열)에 직접 의존하므로 전송을 통해 3NF를 준수하지 않는다는 점입니다.
[주문]을 [주문](OrderID, OrderDate, CustomerID)과 [고객](CustomerID, CustomerName, CustomerAddr, CustomerCity)으로 분할하여 3NF를 달성하세요.
두 번째 정규형(2NF)과 세 번째 정규형(3NF)의 개념은 혼동되기 쉽습니다. 이를 구별하는 핵심은 2NF: 기본 키가 아닌 열이 기본 키에 전적으로 의존하는지 아니면 일부에 의존하는지입니다. 기본 키, 3NF: 기본 키가 아닌 열 기본 키에 직접 종속됩니까, 아니면 기본 키가 아닌 열에 직접 종속됩니까?

Paradigm: 영어 이름은 Normal Form입니다. 영국의 E.F. Codd(관계형 데이터베이스의 조상)가 1970년대 관계형 데이터베이스 모델을 제안한 후 요약한 것입니다. Paradigm은 관계형 데이터베이스 이론의 기초이기도 합니다. 데이터베이스 설계 과정에서 따라야 할 규칙과 지침입니다. 현재 찾을 수 있는 패러다임은 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, DKNF, 6NF 순으로 8가지입니다. 일반적으로 처음 세 가지 정규형, 즉 첫 번째 정규형(1NF), 두 번째 정규형(2NF) 및 세 번째 정규형(3NF)만 사용됩니다. 다음은 이 세 가지 패러다임에 대해 간략하게 소개합니다.
◆ 첫 번째 정규형(1NF): 열의 원자성을 강조합니다. 즉, 열을 다른 열로 나눌 수 없습니다.
다음과 같은 테이블을 고려해보세요: [연락처] (이름, 성별, 전화번호)
실제 시나리오에서 연락처에 집 전화번호와 회사 전화번호가 있으면 이 테이블 구조 디자인은 1NF에 도달하지 않습니다. 1NF를 준수하려면 열(전화), 즉 [연락처](이름, 성별, 집 전화번호, 회사 전화번호)만 분할하면 됩니다. 1NF는 구별하기 쉽지만, 2NF와 3NF는 혼동되기 쉽습니다.
◆ 두 번째 정규형(2NF): 첫째, 1NF이고 두 부분도 포함합니다. 첫째, 테이블에는 기본 키가 있어야 하며, 둘째, 기본 키에 포함되지 않은 열은 기본 키에 완전히 종속되어야 합니다. 기본 키의 일부에만 의존할 수는 없습니다.
주문 세부정보 테이블인 [OrderDetail](OrderID, ProductID, UnitPrice, 할인, 수량, ProductName)을 고려하세요.
한 번의 주문으로 여러 제품을 주문할 수 있다는 것을 알고 있으므로 단일 OrderID로는 기본 키가 될 수 없습니다(OrderID, ProductID). 할인 및 수량은 기본 키(OderID, ProductID)에 완전히 종속되는 반면, UnitPrice 및 ProductName은 ProductID에만 종속된다는 것은 명백합니다. 따라서 OrderDetail 테이블은 2NF를 따르지 않습니다. 2NF를 준수하지 않는 설계는 중복 데이터가 발생하기 쉽습니다.
[OrderDetail] 테이블을 [OrderDetail](OrderID, ProductID, 할인, 수량) 및 [Product](ProductID, UnitPrice, ProductName)로 분할하여 원래 주문 테이블에서 UnitPrice 및 ProductName이 여러 번 반복되는 것을 제거할 수 있습니다.
◆ 제3정규형(3NF): 첫째, 2NF입니다. 또한, 기본 키가 아닌 열은 기본 키에 직접 종속되어야 하며 전이적 종속성이 있을 수 없습니다. 즉, 존재할 수 없습니다. 기본 키가 아닌 열 A는 기본 키가 아닌 열 B에 종속되고 기본 키가 아닌 열 B는 기본 키에 종속됩니다.
기본 키가 (OrderID)인 주문 테이블 [Order](OrderID, OrderDate, CustomerID, CustomerName, CustomerAddr, CustomerCity)를 생각해 보세요.
그중 OrderDate, CustomerID, CustomerName, CustomerAddr, CustomerCity 및 기타 기본 키가 아닌 열은 기본 키(OrderID)에 완전히 종속되므로 2NF를 준수합니다. 그러나 문제는 CustomerName, CustomerAddr, CustomerCity가 기본 키에 직접 의존하지 않고 CustomerID(기본 키가 아닌 열)에 직접 의존하므로 전송을 통해 3NF를 준수하지 않는다는 점입니다.
[주문]을 [주문](OrderID, OrderDate, CustomerID)과 [고객](CustomerID, CustomerName, CustomerAddr, CustomerCity)으로 분할하여 3NF를 달성하세요.
두 번째 정규형(2NF)과 세 번째 정규형(3NF)의 개념은 혼동되기 쉽습니다. 이를 구별하는 핵심은 2NF: 기본 키가 아닌 열이 기본 키에 전적으로 의존하는지 아니면 일부에 의존하는지입니다. 기본 키, 3NF: 기본 키가 아닌 열 기본 키에 직접 종속됩니까, 아니면 기본 키가 아닌 열에 직접 종속됩니까?

위 내용은 데이터베이스의 첫 번째 정규형, 두 번째 정규형, 세 번째 정규형은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.