2012-06-10 3 views
-1

어제 나는 데이터베이스 검사를 받았고 정규화에 관한 질문은 이상했다. 테이블 R (ABCDEFG)과 함수 종속성 G -> B, C -> DG, CF -> E, F - A가 있습니다. R의 후보 키는 무엇입니까? 나는 단지 하나를 발견했다 : CF. 그런 다음 R1 (DFG)은 R1의 후보 키입니까? 나는 단지 하나를 발견했다 : DFG. ((C, F), E), ((F), A), ((C), D)정확하게 답변 했습니까?

다음에 기능적 의존성 GDF-> C가 추가되었습니다. 이제 R의 올바른 3NF 정규화는 무엇입니까? 나는 ((G, D, F, C)), ((G), B), ((F,), A), ((C), D), ((C, F), E)

해결 되었습니까?

그리고 더 이상, 우리는 무엇인지 명시해야 무엇 나열되어 다음과 같은 경우 :

  • 제품 ID
  • 주문 번호
  • 고객 ID
  • 수량
  • 고객 이름
  • 제품 이름
  • 날짜

나는

G= Product ID 
C= Order number 
F= Customer ID 
D= Quantity 
A= Customer name 
B= Product name 
E= Date 

이 정확 결론? FD GDF -> C는 평범한 영어로 무엇을 의미합니까? 정상화 가 이상한 대해

답변

2

"어제는 데이터베이스 시험과 질문을했다. 우리는 테이블 R (ABCDEFG) 및 함수 종속 G-> B, C-> DG, CF-> E, FA 있었다. ? 어느 난 단지 발견 R의 후보 키이다 하나.? CF를

확인을 보인다

그리고 R1 R1의 후보 키이다 (DFG)은, 나는 단지 하나를 발견 : DFG.

FD의 동일한 세트로 ??? 전혀 FD가 없다면 ??? 어쨌든, 이건 너무 올바른 것 같습니다.

상태 R. 대한 정확한 3NF 정규화 I는 ((C, F), E), ((G, B)), ((F) A), ((C), D)를 명시

((G, B)) 대신 ((G, B))가 더 비슷할 것입니다.

((C), DG) 대신에 ((C), D)가 더 비슷할 것입니다.

이어서, 기능 의존성 GDF-> C를 첨가 하였다. 이제 의 올바른 3NF 정규화가 무엇입니까?나는 ((G, D, F, C)), ((G), B), ((F, ); A), ((C), D), ((C, F), E)

이 FD (/ 제한 조건)를 추가해도 3NF 형식이 변경되지 않습니다. 3NF 디자인에서 표현할 수있는 모든 종속성은 여전히 ​​"완전한 키"에서 벗어납니다. 이 추가 종속성이 분해에 의해 보존 될 수 없다는 사실은 정상 형식을 낮추지 않습니다. 의존성 보존 문제이며 정상적인 형식 문제는 아닙니다.

정확하게 해결 했습니까?

최상의 옵션은 교사에게 문의하는 것입니다.

"그럼 더 이상, 우리는 이 나열되는 다음 때 무엇을 무엇인지 명시해야"

어리 석음. 질문 자체는 당신이 가정을하도록 강요합니다. 날짜. 그게 무슨 데이트 야? 주문한 고객의 생년월일? 주문한 제품에 현재 이름이 지정된 날짜? 아니면 주문 날짜? 아마도 그렇 겠지만, 사양에 분명히 나와 있어야하며 데이터베이스 설계자는 사양에 대해 전혀 배제하지 않아야합니다. 가정은 모든 좌초의 어머니입니다.

FD GDF -> C는 일반 영어로 무엇을 의미합니까?

평이한 영어로 답변을 전제로하면 {고객 ID, 제품 ID 및 수량}의 특정 조합이 주문에 사용되면 더 이상 두 번째 주문이 표시되지 않습니다. 다른 주문 ID)와 {고객 ID, 제품 ID 및 수량}이 동일해야합니다. 또는, 각 고객은 특정 특정 제품의 특정 수량을 한 번만 주문할 수 있습니다.