기능적 종속성 표기(A - > BC)의 의미를 이해하는 데 문제가 있습니다.
-
21-12-2019 - |
문제
A->BC가 무엇을 의미하는지, 주로 정확히 BC가 무엇을 의미하는지 시각화하는 데 어려움을 겪고 있습니다.
예를 들어, 테이블에서 "If A -> B 및 B -> C, then A -> C"는 다음과 같으며 명령문은 true입니다.
A | B | C
1 | 2 | 3
1 | 2 | 3
A -> BC는 어떤 모습일까요?
"AB -> C이면 A -> BC"와 같은 내용이 거짓임을 어떻게 표시할 수 있나요?
감사해요!
편집하다:
내 생각에는 AB -> C는 C가 A와 B 모두에 종속된다는 것을 의미하므로 테이블은 다음과 같습니다.
A | B | C
1 | 2 | 3
1 | 2 | 3
또는 이것은 (위의 질문에 대한 반례가 될 것입니다):
A | B | C
1 | 2 | 4
1 | 3 | 4
그리고 둘 다 사실일 것이다.그러나 이것은 거짓이다:
A | B | C
1 | 2 | 4
1 | 3 | 5
그게 맞는 생각인가요?
해결책
아직 읽지 않으셨다면 이것, 기능적 종속성에 대한 괜찮은 소개입니다.그것은 말한다:
노동 조합:X → Y 및 X → Z이면 X → YZ
분해:X → YZ이면 X → Y 및 X → Z
읽으면 도움이 될 것 같아요 A -> B
"A가 B를 결정합니다"라고 읽고 A -> BC
"A가 B와 C를 결정합니다"처럼.즉, A가 주어지면 B와 C의 값을 고유하게 결정할 수 있지만 B와 C가 주어지면 A의 값을 고유하게 결정할 수 있는 것은 아닙니다.
간단한 예는 다음과 같습니다.A가 기본 키이고 B와 C가 다른 열인 3개 이상의 열이 있는 테이블:
id | x | y
------------
1 | 7 | 4
2 | 9 | 4
3 | 7 | 6
그것을 보여주기 위해 If AB -> C, then A -> BC
거짓이라면 단 하나의 반례를 생각해내면 됩니다.다음은 하나입니다.AB가 기본 키인 테이블(따라서 정의에 따라 다음을 충족함) AB -> C
):
A | B | C
------------
1 | 1 | 4
1 | 2 | 5
2 | 1 | 6
2 | 2 | 4
하지만, 만족스럽지 못하다 A -> B
(A=1, B=1,2이기 때문에) 따라서 Union에서는 다음을 만족하지 않습니다. A -> BC
.(보너스 포인트:그것은 만족합니까? A -> C
?그게 그렇게 중요한 건가?)