一、資料庫三正規化
第一正規化(確保每列保持原子性)
即所有字段值都是不可分解的原子值。
需要根據實際情況劃分,比如「位址」可以當作,如果經常關注位址中的城市部分, 就要把位址拆成省份,城市,詳細位址多個字段。
列不能再分
第二正規化(確保表中的每列都和主鍵相關)
即需要確保資料庫表中每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯合主鍵而言)
乙個表中只能儲存一種資料,不可以把多種資料儲存在同一張資料庫表中。
主要是消除部分依賴。
給個例子
碼用(學號+課程),為什麼要加課程呢?因為不同課程成績是通過學號查不出來的。
不過用(學號+課程)當作碼是不是有些問題?
(學號+課程)->姓名,但是學號->姓名
(學號+課程)->系名,但是學號->系名
(學號+課程)->系主任,但是學號->系主任
這個就是部分依賴,說實話我看定義一臉懵逼。
要是上面那張表符合第二正規化。需要將表拆分為兩張表。
一張是 學號、課程、分數表
另外一張是 學號、姓名、系名、系主任表
第三正規化(確保每列都和主鍵列直接相關,而不是間接相關)
需要確保資料表中的每一列資料都和主鍵直接相關,而不能間接相關。
消除傳遞依賴。
傳遞依賴
學號->系名,系名->系主任 傳遞依賴。
如果想知道詳細一點的看這個
oracle資料庫知識點整理
1 行列轉換 2 一條sql語句取出整個樹形結構 pid 0 是根節點的資料,id 主鍵,pid父id select from rc area start with pid 0 connect by prior id pid 3 number p,s 有效數字和精度 number p,s p 1 3...
MSE複試 資料庫知識點整理
第二章 關係模型的基本概念與基本理論 2.1 資料庫的基本概念 資料庫,資料庫管理系統 dbms database management system 資料模型 data model 2.2 關係模型的基本概念 資料結構 二維表 table relation 屬性 column attribute ...
資料庫SQL面試知識點整理
一 什麼是儲存過程?有哪些優缺點?儲存過程是一些預編譯的sql語句。更加直白的理解 儲存過程可以說是乙個記錄集,它是由一些t sql語句組成的 塊,這些t sql語句 像乙個方法一樣實現一些功能 對單錶或多表的增刪改查 然後再給這個 塊取乙個名字,在用到這個功能的時候呼叫他就行了。儲存過程是乙個預編...