난 테이블이 2 개 있습니다. 기본 키 book_id와 title이라는 다른 필드가있는 책 테이블. 기본 키 author_id와 필드 first_name, last_name 및 외래 키 book_id가있는 작성자 테이블.이 디자인은 2NF를 구성합니까?
내 디자인이 2NF를 준수합니까?
난 테이블이 2 개 있습니다. 기본 키 book_id와 title이라는 다른 필드가있는 책 테이블. 기본 키 author_id와 필드 first_name, last_name 및 외래 키 book_id가있는 작성자 테이블.이 디자인은 2NF를 구성합니까?
내 디자인이 2NF를 준수합니까?
는 일반적으로 (그리고 평신도의 관점에서), 레벨 1의 정상화는 의미 :
2NF의 경우 모든 열이 전체 키 (다른 비 키 열을 통해 직접 또는 간접적으로)에 종속된다는 추가 제한 조건이 있습니다.
그래서 1NF에 대한 기준을 충족하고 책이 저자에 의존하기 때문에이 경우 2NF를 준수한다고 말하고 싶습니다.
하지만 여전히 좋은 디자인은 아닙니다. 특히 일반적으로 3NF부터 시작해야하기 때문에. 더 나은 솔루션 날려 전체 것 :
books:
book_id
title
authors:
author_id
name
books_and_authors:
book_id
author_id
그 방법은, 당신이 대다 책과 저자 사이의 관계 (0을 포함). 유일한 경우는 1NF에 어떠한 비 주요 특성 (wikipedia)에서 테이블 후보 키 중 적절한 서브 세트에 의존하지 않는 경우
테이블은 2NF이다.
테이블이 1NF 인 것으로 가정해야합니다.
후보 (및 기본) 키는 book_id 및 author_id입니다.
귀하의 비 주요 속성은 제목, 및 이 LAST_NAME FIRST_NAME 있습니다. 이러한 속성은 후보 키의 적절한 하위 집합에 의존하지 않습니다 (하위 집합이 없으므로 쉽게 구현됩니다). 이 디자인의 유일한 문제는 외래 키 book_id이 서적 작성자를 1 : 1 관계로 만듭니다 (즉, 한 권의 책 -> 한 권의 저자, 한 권의 저자 -> 한 권의 책). 이것은 쉽게 새 테이블이 을 들고 고정 할 수는을 book_id 및 는
1NF (또한 wikipedia) author_id :
이관계형 데이터베이스를 구성하는 방법은 다음과 같습니다.
나중에 다 대 다 관계를 수용하지 않는다는 점을 고려할 때 좋은 디자인이 아니라는 것을 알고 있습니다. 위의 질문은 내 마음에있는 문제를 명확히하기위한 것입니다. 도와 주셔서 감사합니다. –