0

무손실 조인에 대한 다음 설명이 제공되었습니다. 누군가가 변수 'r'이 무엇이고 어떻게 알고리즘/방정식/공식의 양쪽에 나타날 수 있는지 설명해 주시겠습니까?분해 무손실 결합 알고리즘

"릴레이션 R은 관계로 분해되면 R1, R2되도록 R의 모든 법적 인스턴스 R ... 용

R = πR1 (R) ⋈ πR2 (R)

... 그러면 분해 자체가 무손실 - 결합 분해라고합니다. "

참고 : R1과 R2는 아래 첨자입니다.

+0

이 견적의 출처는 무엇입니까? 신용을주고, 그들이 말하는 것을 더 잘 이해하는 것. – philipxy

+0

@philipxy 이것은 Relational Database Management Systems 강사가 무손실 분해에 대한 설명입니다. 나는 그의 출처를 모른다. 그러나 Wikipedia와 같은 신뢰할 수없는 출처에서 인용 된 것이라면 솔직히 놀라지 않을 것이다. 수식이 실제로 논리적으로 이해가 되나 잘못 쓰여졌습니까? 관계식 R이 R1과 R2로 분해된다면 (표현할 수있는 것과 관계없이) _ 다음에는 어느 시점에서든 R1 ⋈ R2가 항상 재현되어야한다. 원래 관계 R? – Coffeebeean

+0

예, 모든 투영법 R = R1 ⋈ R2에있는 경우에만 구성 요소 투영이 항상 원본과 다시 결합하는 경우에만 분해가 무손실입니다. 이름의 각 용도가 나타내는 것을 명심하십시오. 따옴표와 주석에 대한 첫 번째 언급에서 R은 관계 * 변수 *입니다. π에 대한 호출에서 R은 해당 변수의 속성 집합을 의미합니다. 귀하의 방정식에서 R은 해당 변수의 * 값을 나타냅니다. 그 견적은 분명히 r은 그것에 대한 R & S의 "합법적 인 사례"라고 말합니다 - r은 변수가 아니며, 그것은 "시점의 변수"R의 값입니다. – philipxy

답변

0

r은 스키마 R (무손실 분해 가능)의 관계 값/인스턴스를 나타냅니다. 그러나 관계 값이 무손실로 분해 될 수 있다고하더라도, 우리는 어느 속성으로 분해되는지에주의를 기울여야합니다.

더 중요한 질문 : R1, R2은 무엇입니까?

귀하의 견적은 아마도 the wikipedia article 또는 그 중 하나의 링크를 기반으로합니다 - 거의 모든 쓰레기로 보입니다. 관계형 모델 (Relational Model) 주제에 대한 위키 피 디아 (Wikipedia)의 일반적인 표준보다 훨씬 나쁩니다. (예를 들어, 돌기를 재구성하는 직교 제품을 보여준다 - 무손실 반면 보통 가입 요구 조인 다음 나비 넥타이 운영자, 사용자가 표시한다.)

조작 π

관계형 대수 투영이다. π은 일반적으로 속성 이름 (또는보다 적절하게 속성 이름 집합)이 첨자로 표시됩니다. 그리고 그것들은 대개 X, Y 또는 그와 비슷한 것으로 상징됩니다. 그런 다음 R1, R2이 아닌 관계의 속성 이름 집합이어야합니다. 확실히 둘 다 될 수는 없습니다. ( R1, R2은 두 릴레이션의 스키마/애트리뷰트 집합을 나타 내기위한 것임을 알 수 있습니다.)

또한 무손실 조인 분해의 경우 두 속성에 모두 R의 특성을 포함시켜야합니다. (그리고 일반적으로 공통적 인 일부 속성은 함께 경기에 참여할 수 있도록.)

그래서 우리가

r1 = πX(r)    -- r1 is the value of R1 corresponding to r 
r2 = πY(r)    -- ditto for R2 
attributes of R = X ∪ Y -- intersection of X, Y not necessarily empty 
r = r1 ⋈ r2 

해야 R{A, B, C}을 특성을 가지고 있으며, {A}가 핵심이다 명확한 예입니다. 그러면 X = {A, B}, Y = {A, C}으로 분해 할 수 있습니다.

+0

위키 피 디아 페이지가 불분명 할뿐만 아니라, "분해가 무손실이기 때문에"어떤 것들은 반드시 그렇게되어야한다고 잘못 주장하고 있습니다. 그러나 옳은 점은 주어진 무손실 분해가 주어진 FD를 보존하기 위해서는 그러한 조건이 반드시 있어야한다는 것입니다. – philipxy

+0

R, R1 & R2는 변수 및/또는 스키마의 이름을 지정하고 해당 속성 집합의 이름을 지정하는 데 "반드시"사용할 수 있습니다. (그리고 wiki 페이지에서 그 가치가 있습니다.) 즉, 그들은 [ "학대받는"] (https://en.wikipedia.org/wiki/Abuse_of_notation#Abuse_of_language)입니다. 이것은 잘 작성된 프리젠 테이션에서 명시 적으로 언급됩니다. 또한 우리가 "두 속성을 모두"포함 "하지 않고"모든 속성 "으로"함께 "포함시켜야한다고 주장하는 것이 더 명확합니다. R = R1 U R2의 전부 또는 일부가 "관계의 평등에 의해 내포되기 때문에"명시 적으로 요구되어야하는 것은 아니다. – philipxy

+0

"abused"표기법은 무슨 일이 일어나는지 설명하는 데 도움이되지 않습니다. 오식자가 아닙니다. 저는 위키 백과에서 사용한 데카르트 제품에서 추측하려고 시도하는 것과는 달리 'X, Y가 반드시 비어있는 것은 아닙니다'라고 지적하고 싶습니다. 'X, Y'의 합집합은'R'의 "모든 속성"이 그 라인이 요구하는 것입니다. (노조가 비어 있다고 말하는 것은 사실이지만 비효율적입니다. 왜냐하면 'R'은 0이어야하기 때문입니다.) – AntC