2015-11-05 63 views
2

According to Wikipedia確定超級中心

今天的法院登記

enter image description here

  • 表中的每一行代表一個法庭預訂有一個硬地球場網球俱樂部(苑1)一個草法院(法院2)
  • 甲預訂由其法院定義的量,法院被保留
  • 的期間
  • 此外,每個預訂都有與之相關的費率類型。有四個不同的費率類型:
    • 保護程序,用於法院成員提出1個預訂
    • STANDARD,用於法院非成員作出
    • PREMIUM-A,用於通過成員
    • 由法院2個預訂1個預訂非成員

製成

  • PREMIUM-B,用於法院2周的預訂表的superkeys是:

    • S1 = {法院,開始時間}
    • S2 = {法院,結束時間}
    • S3 = {費率類型,開始時間}
    • S4 = {費率類型,結束時間}
    • S5 = {法院,開始時間,結束時間}
    • S6 = {匯率類型,開始時間,結束時間}
    • S7 = {法院,匯率類型,開始時間}
    • S8 = {法院,房價類型,結束時間}
    • ST = {法院,匯率類型,開始時間,結束時間},瑣碎的超密鑰

    需要注意的是,即使在上表中開始時間和結束時間 屬性沒有重複的值爲他們每個人,我們還是要承認 在其他一些天法庭1和 法院兩個不同的預訂2可以在同一時間啓動或在同一時間結束。這就是爲什麼 {開始時間}和{結束時間}不能被視爲 表的superkeys的原因。

  • S1 = {Court,Start Time}是一個超級密鑰?

    說,第1天,會員書法院1從11:00至12:00,以及第2天,非會員書法院1從11:00至12:00。

    在表中的記錄將 {1,11:00,12:00,SAVER}和{1,11:00,12:00,STANDARD}

    顯然S1 = {法院,開始時間},不是超級鍵。或者我錯了?

    回答

    2

    這個例子是一個糟糕的選擇,因爲理解表應該容納什麼涉及未說明的,雖然常識,假設。它希望你看到桌子只有一天 - 「今天」 - 並推斷在任何一天都不會有重疊的預訂。也就是說,法院沒有一個法庭的起始時間段與另一個法院重疊。 (文中提到時,他們的意思是不同的表值不同的日子;但不同的值是否必須在不同的日子也沒關係的例子。)

    這也是一個糟糕的選擇爲3NF VS BCNF在特定。當然,它受制於與3NF vs BCNF相關的某些FD(功能依賴)和它們相關的JD(聯合依賴)。但預訂的不重疊是與3NF vs BCNF無關的單獨約束條件。

    第1天

    說,會員書法院1從11:00至12:00,以及第2天,非會員書法院1從11:00至12:00。

    當我們說一個表「滿足」的限制(例如,FD)或「是受」約束或「有」的約束或約束「持有」表我們的意思是該值使約束爲真。當我們對錶變量(基表)這麼說時,我們的意思是變量在每個數據庫狀態下的值都是如此。對於此表,描述「今日」的當前預訂情況,任何特定的預訂情況將大約一天 - 今天。因此,報價中涉及不同天數的重疊與約束無關。同樣,不管預訂方式如何變化,同一天不同時間的每個表格值都會滿足約束條件。

    在這些情況下,用於表的列的四個指定集是CKS(候選鍵)的任何狀態:

    • S1 = {法院,開始時間}
    • S2 = {法院,結束時間}
    • S3 = {費率類型,開始時間}
    • S4 = {費率類型,結束時間}

    因爲預訂不重疊,所以這些列的每個列的子值都是唯一的。所以他們是超級的。因爲對於每個子集都沒有更小的子集,所以它們是CK。由於沒有其他專欄集合,所以沒有其他專欄。由於超級密鑰的每個超集都是超級密鑰,其他列出的集合是其他(非CK)超級密鑰。

    PS還有一些對條目的talk page對頁面上的網球/預訂範例和困惑的幾個部分。該頁面還有其他不好的例子。例如,它將非BCNF 3NF設計重構爲BCNF設計,但不是通過標準的無損分解來對原始投影(重新投影)進行投影。 (它引入了一個新的列)。例如,它還會討論保留依賴關係,但只有在分解爲原始投影時纔有意義。