2014-11-06 85 views
-1

第一個模塊是用戶模塊。管理員,學生,講師或嘉賓是從系統中受益的用戶,他們參與此模塊。管理員將爲每個用戶分配角色作爲學生或講師。每個角色都有不同的權限,即講師可以上傳作業和課程資料,創建在線測驗和單個上傳文件。用戶擁有諸如用戶ID,註冊日期,最新登錄日期,登錄帳戶,密碼,名字,姓氏以及其他所需詳細信息等信息。只要說學生證和講師ID不能成爲主鍵。因此,當分配ID和我的測驗ID是主鍵時,我想如何聲明分配或測驗ID在功能上依賴於講師?基於我的函數依賴關係,我不太確定我如何將它們與函數依賴關係聯繫起來?編寫功能依賴關係

Entity: User 
User(user ID, student ID, lecturer ID, guest ID, course ID, assignment ID, quiz ID, file upload, date of registration, date of latest logon, login account, password, first name, last name, e-mail, birthdate) 

Functional dependency 
user ID -> {student ID, lecturer ID, guest ID, date of registration, date of latest logon, login account, password, first name, last name, e-mail, birthdate} 
lecturer ID -> {course ID, assignment ID, quiz ID, file upload} 

Full dependency 
user ID, lecturer ID -> {student ID, guest ID, course ID, assignment ID, quiz ID, file upload, date of registration, date of latest logon, login account, password, first name, last name, e-mail, birthdate} 

回答

0

首先,在形式A-函數依賴>乙意味着,給定爲1個值,就可以確定一個且只有一個爲B. A和B兩者代表值集合的列。 (這就是爲什麼他們用大寫字母寫的原因。)

鍵確實與狀態沒有任何關係。

如果「講師ID」在功能上確定「分配ID」,則FD是「講師ID」 - >「分配ID」。如果「講師ID」也在功能上確定「測驗ID」,則另一個FD是「講師ID」 - >「測驗ID」。

如果你想寫得更緊湊,你可以像這樣陳述兩個FD。

"lecturer id"->{"assignment id", "quiz id"} 

如果您分配字母L,A和Q,則可以像這樣陳述兩個FD。

L->AQ 

由於每個人都知道他們應該在那裏,所以大括號通常會被忽略。

我不確定你想要與你的最後一節。但在其中,標有「功能依賴」的部分不表示任何依賴; 「完全依賴」不表示完整的依賴關係,但可能表達一些部分依賴關係; 「部分依賴關係」不表示任何部分依賴關係; 「傳遞依賴性」不表示任何傳遞性依賴性。

+0

我編輯了我的答案,我只是想問我在任何意義上我是否正確?謝謝.. – Synetrix 2014-11-06 14:31:39

0

目前尚不清楚你在努力完成什麼。你似乎並不瞭解我們在模式設計中經歷的步驟。

首先我們確定我們感興趣的應用程序關係,例如「用戶[用戶ID]有角色講師」或「用戶[用戶ID]有名字[名]和密碼[密碼]和...」。每一個都獲得一個基本關係,該基礎關係保存那些與這種方式相關的值的行。

對於每個關係,其應用程序關係的含義爲每列確定它在功能上依賴於哪些列。然後我們找到一個最小的封面。這決定了候選鍵。我們可以選擇一個候選鍵作爲主鍵。

這確定了每個候選鍵上的非主列的完全和部分依賴關係。這允許我們通過分解我們的關係來將歸一化爲2NF,以將候選關鍵字上的非主列部分功能依賴分解爲單獨的關係。

只要說學生證和講師ID不能成爲主鍵。 因此,我想如何陳述分配或測驗ID是 功能上依賴於講師何時分配ID和我的測驗ID 是主鍵?

這沒有意義。在我們確定所有函數依賴之前,我們不能確定候選鍵。另外:你的意思是{studentID,lecturerID}「不能成爲主鍵」,或者你的意思是{學生ID}「不能」和{講師ID}「不能」?另外:你的意思是「不能」?

我們說assignmentID和quizID是在功能上有一定的關係依賴於lecturerID方式:

{lecturer ID} -> {assignment ID} 
{lecturer ID} -> {quiz ID} 

我們可以用相同的左側設置(確定)的右手邊(確定列集)結合:

{lecturer ID} -> {assignment ID, quiz ID} 

但還有其他規則,如尋找最小封面。

基於我的函數依賴關係,我不太確定我如何 假設他們與功能依賴關係?

這沒有意義。將什麼與你的函數依賴關係聯繫起來?

如果「用戶」的唯一的功能性依賴是在「功能依賴性」的傳遞閉包的那些(即,僅文件描述符是必須在那裏當那些者是那些),則最小的蓋是

{user ID} -> {student ID, lecturer ID, guest ID, course ID, assignment ID, quiz ID, file upload, date of registration, date of latest logon, login account, password, first name, last name, e-mail, birthdate} 

,唯一的候選鍵是

{user ID} 

,並有一個候選鍵沒有非黃金柱部分的依賴。