最近複習資料庫原理,中國人民大學慕課**現了這樣一道思考題:
如果乙個關係模式r的主碼是全碼, 則r至少可以達到第幾正規化?思考過後,我覺得答案應當是「bcnf」。而網上的很多答案是「3nf」,我覺得這是錯誤的。
首先,如果r是全碼,意味著所有的屬性都是主屬性,沒有非主屬性,因此符合3nf。
其次,主屬性不可能對碼存在部分函式依賴或傳遞函式依賴。
假設r(a,b,c,d),若有部分函式依賴,如(a,c)->b,那麼將違背「全碼」這一條件,此時的碼應當是(a,c,d)。
另外,不可能存在傳遞函式依賴,因為任何主屬性都直接依賴於(a,b,c,d)。
綜上,滿足全碼的關係模式必定符合bcnf。
另外:在關聯式資料庫中,任意乙個二元關係模式r至少可以達到第幾正規化?
答案:bcnf。
關係模式正規化
資料庫的關係模式正規化就是資料庫設計要滿足的規範,滿足這些規範的資料庫是簡潔的,結構清晰的。第一正規化 1nf 所有的列不可再分 第一正規化就是指所有的列都是不可再分的基本資料項,即表中的每一列都不能有多個值。說明 在任何乙個關聯式資料庫中,第一正規化是對關係模式的基本要求,不滿足第一正規化的資料庫...
關係正規化詳解
函式依賴 若 y f x 則稱x函式決定y,或y函式依賴於x,記為 x y。在資料庫中,通常將x置為關鍵字,將y置為非主屬性。1nf定義 關係的所有分量都必須是不可分的最小資料項。如日期可以拆分為年 月 日三項。2nf定義 滿足1nf,且每個非主屬性都完全依賴於關鍵字,即不存在非主屬性部分依賴於關鍵...
正規化與反正規化
設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。但是有些時候一昧的追求正規化減少冗餘,反而會降低資料讀寫的效率,這個時候就要反正規化,利用空間來換時間。目前關聯式資料庫有六種正規化 第一正規化 ...