2014-04-08 2 views
0

아래 표는 테이블이 세 번째 정규 형식 인 자습서에서 가져온 것입니다. 나는 테이블 프로젝트에 정보를 삽입한다면 다음과 같이이 테이블에 정보를 추가하면 3NF가 손실됩니까

projectCode projectDescr customerNo 

1   Apples  21 

1   Apples  22 

은 내가 projectcode 왜냐하면 3NF을 잃지 않았고 projectdescr 가능성이 같은 프로젝트를 가질 수 2 개 고객부터 반복 끝?

제 질문은 아래 이미지의 표가 3NF인지 여부입니다. 그리고 위의 문제가 존재합니까? 아니면 잘못보고 있습니까? 나는 내 테이블을 세우고 있지만 그 전에는 3NF의 이해를 얻으려고 노력하고 있습니다. 도와주세요. 감사. 튜토리얼에서

테이블 :

enter image description here

답변

0

이 예에서 가정 PROJECT 고객 관계 한 많은 것이 될 것이다. 고객은 여러 프로젝트를 가질 수 있지만 각 프로젝트는 오직 한 고객에게만 적용됩니다. 프로젝트를 여러 고객에게 적용하려면 각 행에 대한 프로젝트와 고객 키를 포함하는 또 다른 project_customer 테이블을 분할해야합니다.

+0

그걸 바탕으로, 거의 모든 3NF 튜토리얼이 테이블을 채워서 3NF를 깨뜨릴 수있는 동일한 문제를 제시하기 때문에 모든 가정을 제거하는 것이 많은 테이블로 끝나는 것 같습니다. – kar

+0

'Constraint'는 아마 가정보다 더 나은 단어 일 것입니다. 중복 된 기본 키를 삽입하는 것은 실제로 허용되지 않습니다. 따라서 단순히 삽입하는 것 이상으로 삽입 할 수 없습니다. 데이터에 대한 모든 제한을 제거하면 예, 일반 양식이 창 밖으로 나옵니다. – yed

+0

데이터 간의 관계가 중요합니다. 그것을 정의하지 않고는 정규화 할 수 없습니다. – yed

관련 문제