Relational-Theory

叉積後的相關屬性

  • October 4, 2015

我對關係代數中兩個關係的叉積中的結果屬性有疑問……

通常,叉積會產生一個關係,其屬性是所有屬性的總和,因此 in 中的屬性數R1 x R2將是 中的屬性R1 + R2,所以R1(a, b, c) x R2(d, e, f)R(a, b, c, d ,e ,f)

但是,如果R1並且R2有共同的屬性*(同名的屬性)*會發生什麼?因為關係不能有重複的屬性……那麼在這種情況下會發生什麼R1(a, b, c) X R2(a, e, f)?謝謝…

要以代數符號表示該關係,您實際上需要為屬性起別名。

笛卡爾積在設計上不辨識常見的屬性名稱,就像單個操作在自關係場景中不起作用一樣,有必要在符號中執行重命名。

自連接範例:

R(a, b, c);

≠ R ⋈ R ( a, b, c );

使用重命名:

R(a, b, c);

S = ρ a/b, b/b 2 , c/c 2 R;

∴ R ⋈ S ( a, b, c, b 2 , c 2 );

例如:

E(EmpID,ManagerID,EmpName);

M = ρ EmpID/ManagerID、ManagerID/ManagerEmpID、EmpName/ManagerName E;

∴ E ⋈ M ( EmpID, ManagerID, EmpName, ManagerEmpID, ManagerName );

笛卡爾積可以用關係代數以同樣的方式表示:

R1(a, b, c);

R2 (a, e, f);

≠ R1 × R2 (a, b, c, e, f);

所以然後重命名:

R1(a, b, c);

R2 (a, e, f);

R3 = ρ a/a 2 R2;

∴ R1 × R3 ( a, b, c, a 2 , e, f );

引用自:https://dba.stackexchange.com/questions/116934