2015-08-14 30 views
-3
A - flight_date 
B - plane ticket price 
C - source_airport_country 
D - ticket holder names 
E - address 
F - source airport 
G - Pilot_name 
H - Pilot_grade 
I - Plane_id 

還有就是plane_id,飛行日期和飛行員的名字之間的功能依賴關係(如果我知道 使用的飛行和飛機的日期我可以找到那架飛機的特定飛行員)。即考慮以下atttributes,爲了清楚已經被映射到信爲

AI - 「G

存在什麼其他功能的依賴在這些屬性

答案應該用字母來表示的屬性等 應該像:AI - 」G

對於關係R(A,B,C,D,E,F,G,H,I)(即上面的屬性),並使用上面找到的功能依賴關係,使用關鍵字確定算法, : 1.絕對是R的關鍵部分, 2. Defintely不是針對R鍵的一部分,併爲R. 關鍵 3.也許最後得出R.

+0

對不起,我無法確定你想要在這裏實現什麼,但實際分配屬性,F源對於定義還不清楚。源代碼包含什麼?其次,試點需要一個ID。不能依賴名字,甚至包括名字。你需要一個唯一的飛行員標識符。 –

+0

噢,對不起源如果源機場 –

+0

木格,這僅僅是一個任務IV已經設置了其他的表,但在這個特殊的問題,我一定要找到給定的表 –

回答

0

一鍵從this answer

重新申請的人際關係及狀況:

一起應用程序的關係和情況確定規則和FD(和其他約束)!它們只是每個應用程序情況或每個數據庫狀態(即一個或多個基本表的值)(這些是標準和可能的應用程序情況的函數)的事情。然後我們規範化以減少冗餘。

重新文件描述符&中正:

鑑於準則將行插入或離開出來的表以及可能出現的所有可能的情況下,只有一些值(行集)可以永遠在那張桌子裏。

對於列的每個子集,您需要決定哪些其他列只能爲這些列的給定子值賦予一個值。當它只能有一個時,我們會說列的子集在功能上決定了該列。但是該子集的每個超集都會在功能上確定它,這樣可以減少案例。相反,如果給定的集合不確定列,那麼該集合的任何子集都不確定。另外,你可能會認爲列集是唯一的;那麼所有其他列在功能上依賴於該集合。這樣的一組被稱爲超級密鑰。

只有在確定了FD之後,才能確定候選鍵!一個CK是一個超級密鑰,它不包含更小的超級密鑰。 (CK和superkeys的存在也是約束條件。)我們可以選擇CK作爲主鍵。

請參閱this answerthis one(以及涉及標準化的其他礦山)。

相關問題