資料庫的設計
參考文獻:
1、多表之間的關係
1.1、分類:
(1)、一對一(只做了解)
* 比如:某個人和它的身份證
* 分析:乙個人只要乙個身份證,乙個身份證只能對應乙個人。
(2)、一對多(或叫多對一)
* 如:部門和員工
* 分析:乙個部門多有個員工,乙個員工只能對應乙個部門
(3)、多對多:
* 如:學生和課程
* 分析:乙個學生可以選擇很多課程,乙個課程可以被很多學生選擇。
1.2、實現關係
(1)、一對一(只做了解)
* 比如:某個人和它的身份證
* 實現方式:一堆一關係實現,可以在任意放新增 唯一外來鍵 指向另外一方的主鍵
(2)、一對多(或叫多對一)
* 如:部門和員工
* 實現方式:在『多』的一方建立外來鍵,執行『一』的一方的主鍵,比如在員工表單中建立乙個外來鍵執行部門表單中的主鍵。
(3)、多對多:
* 如:學生和課程
* 實現方式:多對多關係實現需要借助第三方中間表。中間表包含兩個字段(聯合主鍵),並使用這兩個字段作為外來鍵,分別指向兩張表的主鍵。
2、正規化
(1)概念:要設計資料庫,必須遵循一定規範,應用後面的正規化必須遵循前面的正規化。
設計關係
資料庫時,遵從不同的規範
要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。
(2)、分類
名詞解釋:
①、函式依賴:a->b,如果通過a屬性(或屬性組)的值,可以確定唯一b屬性的值,稱b依賴a。
例如:學號->姓名 (學號,課程名稱)->分數
②、完全函式依賴:a->b,如果a是乙個屬性組,則確定b屬性需要依賴於a屬性值組中所有的屬性值。
例如:(學號,課程名稱)->分數
③、部分函式依賴:a->b,如果a是乙個屬性組,則確定b屬性值需要a屬性組中的某一些值即可。
④、傳遞函式依賴:a->b,b->c,如果通過a屬性(屬性組)的值,可以確定唯一b屬性的值,再通過b屬性(屬性組)的值可以確定唯一的c屬性值,則稱c傳遞函式依賴於a.
舉例:學號->系名,系名->系主任 ⑤
、碼:如果一張表中,乙個屬性或屬性組,被其它所有屬性完全依賴,則稱這個屬性(屬性組為該錶的碼):
*主屬性:碼屬性中的所有屬性。
*非主屬性:除碼屬性組外的屬性。 目前
關聯式資料庫
有六種正規化:第一正規化(
1nf)、第二正規化(
2nf)、第三正規化(
3nf)、巴斯
-科德正規化(
bcnf
)、第四正規化
(4nf
)和第五正規化
(5nf
,又稱完美正規化)。 a
、第一正規化(
1nf)
。資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。
b、第二正規化(
2nf)。在第一正規化的基礎上,消除非主屬性對碼的部分函式依賴 c
、第三正規化(
3nf)。在
2nf基礎上消除
傳遞依賴。
海量資料庫設計思想
分割槽 1.範圍分割槽 a.通常按時間字段劃分 create table partition by range partition partition 1 values less than to date 01 02 2000 dd mm yyyy partition partition 2 val...
資料庫開發015檢視資料庫連線狀態
表 1 sqlconnection 初始化 sqlconnection 類的新例項。sqlconnection string 如果給定包含連線字串的字串,則初始化 sqlconnection 類的新例項。sqlconnection string,sqlcredential 在給定連線字串的情況下,初...
資料庫設計中引入OOD思想
例子 汽車銷售商要求對銷售車型的建立資料庫進行統計 考慮這樣幾種設計方案 1 轎車 id,顏色,車長,排量,最多乘坐人數,銷量,有無頂窗 卡車 id,顏色,車長,排量,最多乘坐人數,載重量,銷量 電單車 id,顏色,車長,排量,踏板或檔位車 2 車 id,顏色,車長,排量,最多乘坐人數,銷量,有無頂...