正規化轉換的基本要求!重點掌握!

2021-05-02 12:07:38 字數 902 閱讀 6045

書上講了好多, 歸結起來3句話:

1nf:字段不可分;

2nf:有主鍵,非主鍵字段依賴主鍵;

3nf:非主鍵字段不能相互依賴;

解釋:1nf:原子性 字段不可再分,否則就不是關聯式資料庫;

2nf:唯一性 乙個表只說明乙個事物;

3nf:每列都與主鍵有直接關係,不存在傳遞依賴;

不符合第一正規化的例子(關聯式資料庫中create不出這樣的表):

表:欄位1, 欄位2(欄位2.1, 欄位2.2), 欄位3 ......

存在的問題: 因為設計不出這樣的表, 所以沒有問題;

不符合第二正規化的例子:

表:學號, 姓名, 年齡, 課程名稱, 成績, 學分;

這個表明顯說明了兩個事務:學生資訊, 課程資訊;

存在問題:

資料冗餘,每條記錄都含有相同資訊;

刪除異常:刪除所有學生成績,就把課程資訊全刪除了;

插入異常:學生未選課,無法記錄進資料庫;

更新異常:調整課程學分,所有行都調整。

修正:學生:student(學號, 姓名, 年齡);

課程:course(課程名稱, 學分);

選課關係:selectcourse(學號, 課程名稱, 成績)。

滿足第2正規化只消除了插入異常。

不符合第三正規化的例子:

學號, 姓名, 年齡, 所在學院, 學院聯絡**,關鍵字為單一關鍵字"學號";

存在依賴傳遞: (學號) → (所在學院) → (學院地點, 學院**)

存在問題:

資料冗餘:有重複值;

更新異常:有重複的冗餘資訊,修改時需要同時修改多條記錄,否則會出現資料不一致的情況

刪除異常

修正:學生:(學號, 姓名, 年齡, 所在學院);

學院:(學院, 地點, **)。

順序表掌握基本要求

順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪查改。順序表一般可以分為 靜態順序表 使用定長陣列儲存。動態順序表 使用動態開闢的陣列儲存。靜態順序表適用於確定知道需要存多少資料的場景.靜態順序表的定長陣列導致n定大了,空間開多了浪費,開...

重寫的基本要求

訪問控制許可權 下級的訪問控制許可權應該不低於上級的訪問控制許可權 上級 public 下級 只能public 上級 protected 下級 protected,public 上級 private 下級 private protected public 實際此情況無意義。私有的不能覆蓋,而是完全當...

成功創業的基本要求

1 不說 不可能 2 凡事第一反應 找方法,不找藉口 3 遇到挫折對自己說聲 太好了,機會來了!4 不說消極的話,不落入消極的情緒,一旦發生立即正面處理 5 凡事先訂立目標 6 行動前,預先做計畫 7 工作時間,每一分 每一秒做有利於生產的事情 8 隨時用零碎的時間做零碎的事情 9 守時 10 寫點...