1. 程式人生 > >【資料庫系統概念】第7章 資料庫設計和E-R模型 知識總結

【資料庫系統概念】第7章 資料庫設計和E-R模型 知識總結

資料庫系統概念》第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版——機械工業出版社