데이터베이스의 첫 번째 정규형, 두 번째 정규형, 세 번째 정규형은 무엇인가요?
패러다임(Paradigm): 영어 명칭은 Normal Form으로, 영국의 E.F. Codd(관계형 데이터베이스의 조상)가 1970년대 관계형 데이터베이스 모델을 제안한 후 요약한 것이 관계형 데이터베이스 이론의 기초이다. . 이는 데이터베이스 구조를 설계할 때 따라야 하는 규칙 및 지침 방법이기도 합니다. 현재 추적할 수 있는 ***의 8개 패러다임은 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, DKNF, 6NF 순서입니다. 일반적으로 처음 세 가지 정규형, 즉 첫 번째 정규형(1NF), 두 번째 정규형(2NF) 및 세 번째 정규형(3NF)만 사용됩니다. 다음은 이 세 가지 패러다임에 대해 간략하게 소개합니다.
◆ 제1정규형(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, 할인, 수량) 및 제품(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를 준수하지 않는다는 점입니다.
3NF는 Order를 Order(OrderID, OrderDate, CustomerID)와 Customer(CustomerID, CustomerName, CustomerAddr, CustomerCity)로 분할하여 달성됩니다.
두 번째 정규형(2NF)과 세 번째 정규형(3NF)의 개념은 혼동되기 쉽습니다. 이를 구별하는 핵심은 2NF: 기본 키가 아닌 열이 기본 키에 완전히 의존하는지 여부입니다. , 또는 기본 키의 일부에 따라 다름 ;3NF: 기본 키가 아닌 열이 기본 키 또는 기본 키가 아닌 열에 직접적으로 종속되는지 여부입니다.
패러다임(Paradigm): 영어 명칭은 Normal Form이다. 1970년대 영국의 E.F. Codd(관계형 데이터베이스의 조상)가 관계형 데이터베이스 모델을 제안한 후 요약한 것이 관계형 데이터베이스 이론의 기초이다. . 이는 데이터베이스 구조를 설계할 때 따라야 하는 규칙 및 지침 방법이기도 합니다. 현재 추적할 수 있는 ***의 8개 패러다임은 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, DKNF, 6NF 순서입니다. 일반적으로 처음 세 가지 정규형, 즉 첫 번째 정규형(1NF), 두 번째 정규형(2NF) 및 세 번째 정규형(3NF)만 사용됩니다. 다음은 이 세 가지 패러다임에 대해 간략하게 소개합니다.
◆ 제1정규형(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, 할인, 수량) 및 제품(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를 준수하지 않는다는 점입니다.
3NF는 Order를 Order(OrderID, OrderDate, CustomerID)와 Customer(CustomerID, CustomerName, CustomerAddr, CustomerCity)로 분할하여 달성됩니다.
두 번째 정규형(2NF)과 세 번째 정규형(3NF)의 개념은 혼동되기 쉽습니다. 이를 구별하는 핵심은 2NF: 기본 키가 아닌 열이 기본 키에 완전히 의존하는지 여부입니다. , 또는 기본 키의 일부에 따라 다름 ;3NF: 기본 키가 아닌 열이 기본 키 또는 기본 키가 아닌 열에 직접적으로 종속되는지 여부입니다.