《數據庫系統概念》第7章知識點總結
數據庫設計和E-R模型
本章我們將學習將數據庫表示爲一個關係數據庫設計和一個與之關聯的約束集合
實體:指示所有可明確識別的個體。各種各樣的實體以多種方式互相關聯,而所有這些方式都需要在數據庫設計中反映出來
設計一個數據庫模式的時候,必須避免的兩個主要的缺陷
(1)冗餘:一個不好的設計可能會重複信息。信息的冗餘表達的最大問題是當對一條信息進行更新,但沒有將這條信息的所有拷貝都更新時這條信息的拷貝會變得不一致。
(2)不完整:如字面意思,一個不好的設計可能會使得企事業機構的某些方面難於甚至無法建模。
實體-聯繫模型
實體-聯繫(E-R)數據模型的提出旨在方便數據庫的設計,它是通過允許定義代表數據庫全局邏輯結構的企業模式實現的。
實體:是現實世界中可區別於所有其他對象的一個“事物”或“對象”
實體集:是相同類型即具有相同性質(或屬性)的一個實體集合。例如一所給定大學的所有教師的集合可定義爲實體集instructor
聯繫:是指多個實體間的相互關聯
聯繫集:是相同類型聯繫的集合。
參與:實體集之間的關聯稱爲參與。也就是說,實體集E1,E2,...,En參與聯繫集R
角色:實體在聯繫中扮演的功能稱爲實體的角色。
屬性:實體集的屬性是將實體集映射到域的函數。由於一個實體集可能有多個屬性,因此每個實體可以用一組(屬性,數據值)對來表示,實體集的每個屬性對應一個這樣的對。
E-R模型中的屬性可以按照如下的屬性類型來劃分
(1)簡單和複合屬性:簡單屬性指不能劃分爲更小的部分;複合屬性指可以再劃分爲更小的部分(即其他屬性)。例如屬性name可設計爲一個包含first_name、middle_initial和last_name的複合屬性
(2)單值和多值屬性:我們直接用例子說明:對某個特定的學生實體而言,student_ID屬性只對應於一個學生ID,這樣的屬性爲單值;在教師實體中,每個教師可以有0個、1個或多個電話號碼,這個phone_number屬性就是多值的。
(3)派生屬性:這類屬性的值可以從別的相關屬性或實體派生出來。
約束
映射基數:表示一個實體通過一個聯繫集能關聯的實體的個數。
(1)一對一:A中的一個實體至多與B中的一個實體相關聯,並且B中的一個實體也至多與A中的一個實體相關聯
(2)一對多:A中的一個實體至多與B中的零個或多個實體相關聯,而B中的一個實體也至多與A中的一個實體相關聯
(3)多對一:A中的一個實體至多與B中的一個實體相關聯,而B中的一個實體可以與A中的零個或多個實體相關聯
(4)多對多:A中的一個實體至多與B中的零個或多個實體相關聯,而且B中的一個實體也可以與A中的零個或多個實體相關聯
碼
關係模式中的超碼、候選碼、主碼的概念同樣適用於實體集
實體-聯繫圖
基本結構
分成兩部分的矩形:代表實體集,上面的第一部分爲實體集的名字,下面的第二部分包含實體集中所有屬性的名字
菱形:代表聯繫集
未分割的矩形:代表聯繫集的屬性,構成主碼的屬性以下劃線表明
線段:將實體集連接到聯繫集
虛線:將聯繫集屬性連接到聯繫集
雙線:顯示實體在聯繫集中的參與度
雙菱形:代表連接到弱實體集的標誌性聯繫集
聯繫集和實體集之間也有映射基數,意思同約束中的映射技術,聯繫集爲實體A,實體集爲實體B
約束的方式有兩種:
一、
二、用l..h的形式表示一個關聯的最小和最大的映射基數
複雜的屬性
表示方法:
name、address、street爲複合屬性
{phone_number}爲多值屬性
{age()}爲派生屬性age
角色
通過在菱形和矩形之間的連線上進行標註來表示角色,例如下圖中的course_id和prereq_id
弱實體集:沒有足夠的屬性以形成主碼的實體集稱作弱實體集
強實體集:有主碼的實體集稱作強實體集
弱實體集必須與另一個稱作標識或屬主實體集的實體集關聯纔能有意義。每個弱實體必須和一個標識實體關聯;也就是說,弱實體集存在依賴於標識實體集。我們稱標識實體集擁有它所標識的弱實體集。將弱實體集與其標識實體集相聯的聯繫稱爲標識性聯繫。
分辨符:雖然弱實體集沒有主碼,但是我們仍然需要區分依賴於特定強實體集的弱實體集中的實體的方法。弱實體集的分辨符是使我們進行這種區分的屬性集合,也稱爲該實體集的部分碼。
弱實體集這個知識點有待完善
轉換爲關係模式
具有簡單屬性的強實體集的表示
設E是隻具有簡單描述性屬性a1,a2,...,an的強實體集。我們用具有n個不同屬性的模式E來表示這個實體集。該模式的關係中的每個遠足同實體集E的一個實體相對應。
具有複雜屬性的強實體集的表示
這個就比上面的情況複雜一點,我們通過爲每個子屬性創建一個單獨的和屬性來處理符合屬性,我們並不爲符合屬性自身出啊關鍵一個單獨的屬性。
例如instructor實體集,裏面有複合屬性name,爲instructor生成的末世包括屬性first_name、middle_initial和last_name;沒有單獨的屬性或末世表示name。其他屬性類似。
弱實體集的表示
設A是具有屬性a1,a2,...,am的弱實體集,設B是A所依賴的強實體集,設B的主碼包括屬性b1,b2,...,bn。我們用名爲A的關係模式表示實體集A,該模式的每個屬性對應以下集合中的一個成員:
所以A的模式的屬性有:A的屬性和B的主碼
該模式的主碼由實體集B的主碼和A的分辨符組成
聯繫集的表示
擴展的E-R特性
特化(自頂向下)
在實體集內部進行分組的過程稱爲特化。
特化是因爲實體集中的某個實體子集可能具有不被該實體集中所有實體所共享的一些屬性。
概化(自底向上)
概化是高層實體集與一個或多個底層實體集間的包含關係。
概化是多個實體集根據共同具有的特徵綜合成一個較高層的實體集
注:圖片均來自《數據庫系統概念》第6版——機械工業出版社