關系資料庫理論(一)
一些基本概念
關系
-
用于描述物體、屬性、物體之間的聯系,
-
從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一 個子集,
關系模式
- 用來定義關系,
- 關系資料庫中的關系模式是型,而關系是值,關系模式是對關系的描寫敘述,
關系資料庫
-
基于關系模型的資料庫,利用關系來描述現實世界,
-
從形式上看,它由一組關系組成,(多張表組成一個資料庫嘛~)
關系資料庫的模式
- 定義這組關系的關系模式的全體,
形式化定義
R(U,D,DOM,F)
| 字符 | 含義 |
|---|---|
| R | 關系名,是符號化的元組語意 |
| U | 組成該關系的屬性名的集合,一組屬性 |
| D | 屬性組U中屬性所來自的域 |
| DOM | 屬性向域的映象集合 |
| F | 屬性間資料的依賴關系集合(關系內部屬性與屬性之間的一種約束關系,主要分函式依賴和多值依賴) |
由于D、DOM與模式設計關系不大,所以常常把關系模式看作一個三元組:R<U,F>,
當且僅當U上的一個關系r 滿足F時,r稱為關 系模式 R(U, F)的一個關系,
資料依賴
完整性約束的表現形式
- 限定屬性取值范圍:例如學生成績必須在0-100之間,
- 定義屬性值間的相互關連(主要體現于值的相等與否),這就是 資料依賴,它是資料庫模式設計的關鍵,
資料依賴
- 是通過一個關系中屬性間值的相等與否體現出來的資料間的相互關系,
- 是現實世界屬性間相互聯系的抽象,是資料內在的性質 ,是語意的體現, (一種 A->B的感覺)
- 資料依賴的型別:
- 函式依賴(Functional Dependency,簡記為FD),
- 多值依賴(Multivalued Dependency,簡記為MVD),
問題的提出
- 針對具體的問題,如何構造一個適用于它的資料模式,
- 如何進行資料庫的邏輯設計? ->關系資料庫的規范化理論,
示例
資料庫描述
學生的學號(Sno)、所在系(Sdept)、系主任姓名 (Mname)、課程名(Cname)、 成績(Grade)
單一的關系模式 : Student<U,F>
U ={ Sno, Sdept, Mname, Cname, Grade }
| Sno | Cname | Grade | Sdept | name |
|---|---|---|---|---|
問題
- 巨大的資料冗余,系主任系號的名字反復出現,
- 更新例外,更新資料時,維護資料完整性代價大,
- 插入例外,例,如果一個系剛成立,尚無學生,我們就無法把這個系及其系主 任的資訊存入資料庫,
- 洗掉例外,如果某個系的學生全部畢業了, 我們在洗掉該系學生資訊的 同時,把這個系及其系主任的資訊也丟掉了,
原因
- 由于模式中存在某些資料以來
解決
- 通過分解關系模式來消除其中不合適的資料依賴,
規范化
函式依賴
定義
設R(U)是一個屬性集U上的關系模式,X和Y是U的子 集,若對于R(U)的任意一個可能的關系r,r中不可能存在兩 個元組在X上的屬性值相等, 而在Y上的屬性值不等, 則 稱 “X函式確定Y” 或 “Y函式依賴于X”,記作X→Y, X稱為這個函式依賴的決定屬性集(Determinant), Y=f(x)
x可唯一確定y
說明
- R的所有關系實體均要滿足的約束條件,
- 函式依賴是語意范疇的概念,只能根據資料的語意來確定函式依賴, 例如“姓名→年齡”這個函式依賴只有在不允許有同名人的條件下成立,
- 資料庫設計者可以對現實世界作強制的規定,例如規定不允許同名人 出現,函式依賴“姓名→年齡”成立,所插入的元組必須滿足規定 的函式依賴,若發現有同名人存在, 則拒絕裝入該元組,
平凡函式依賴與非平凡函式依賴
在關系模式R(U)中,對于U的子集X和Y:
? 如果X->Y,但Y 不包含于 X,則稱X->Y是非平凡的函式依賴
?
? 若X→Y,但Y 包含于X, 則稱X→Y是平凡的函式依賴
在關系SC(Sno, Cno, Grade)中:
| 型別 | 示例 |
|---|---|
| 非平凡函式依賴 | (Sno, Cno) → Grade |
| 平凡函式依賴 | (Sno, Cno) → Sno |
| 平凡函式依賴 | (Sno, Cno) → Cno |
易知:對于任一關系模式,平凡函式依賴都是必然成立的,它不反映新的 語意,所以我們默 認討論非平凡函式依賴,
完全函式依賴于部分函式依賴
定義
在關系模式R(U)中,如果X -> Y,并且對 于X的任何一個真子集X’,都有 X’ !-> Y, 則稱Y完全函式依賴于X, 若X→Y,但Y不完全函式依賴于X,則稱Y部分 函式依賴于X,
示例
在關系SC(Sno, Cno, Grade)中,:
由于:Sno ->Grade,Cno -> Grade
因此:(Sno, Cno) 函式確定 Grade,Grade 函式依賴于(Sno, Cno)
傳遞函式依賴
定義
在關系模式R(U)中,如果X->Y,Y->Z, 且Y !-> X,Y->X,則稱Z傳遞函式依賴于X,
ps : 如果Y->X, 即X<–>Y,則Z直接依賴于X,可以雙向的傳遞就不是傳遞函式依賴了,
示例
在關系Std(Sno, Sdept, Mname)中:
有: Sno -> Sdept,Sdept -> Mname
? Mname傳遞函式依賴于Sno,
碼🐎
定義
設K為關系模式R中的屬性或屬性組合,若 K 函式確定 U,則K稱為R的一個侯選碼(Candidate Key), 若關系模式R有多個候選碼,則選定其中的一個做為主 碼(Primary key),
外碼
定義
關系模式 R 中屬性或屬性組 X 并非 R 的碼,但 X 是另一個關系模式的碼,則稱 X 是R 的外部碼(Foreign key)也稱外碼 主碼又和外部碼一起提供了表示關系間聯系的手段,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/279652.html
標籤:其他
上一篇:資料庫筆記--《事務篇》
下一篇:insert插入觸發器的錯誤問題
