大綱 5.1 前言 5.2 資料庫架構的三層次vs.資料模式 5.3 E-R資料模型 5.4 建構一個E-R Diagram
5.1 前言 規劃一個嚴謹的資料庫藍圖,需觀察跟企業有關的各種資料,整理出一個有系統的資料關係圖。 5.1 前言 規劃一個嚴謹的資料庫藍圖,需觀察跟企業有關的各種資料,整理出一個有系統的資料關係圖。 E-R資料模式:協助使用者或是資料庫管理師進行資料庫概念設計。 為了協助讀者了解資料模式與資料庫概念設計之間的關聯性,將針對兩者的關聯加以說明。 在第四節會利用一個實例引導讀者透過E-R 資料模型建構一個完整的E-R圖示 (E-R diagram)。
5.2資料庫架構的三層次vs.資料模式 資料模式三個層級(資料庫系統三個層次) 概念模式(Conceptual level) 外部模式(External level) 內部模式(Internal level) 對應(mapping) 外層與概念層的對應 概念層與內層的對應
美國國家標準局/標準規劃和規定委員會(ANSI/SPARC)定義資料模式三個不同的層級
圖5.2從資料綱要定義來看資料庫三層次
圖5.3 以資料庫包含教師、學生、與教師指導學生關係等資料為例說明三層之關聯
圖5.4 資料庫架構的三層次與資料模式間的關連性 圖5.4 資料庫架構的三層次與資料模式間的關連性
概念層 (Conceptual level) 外層(External level) 代表個別使用者對於資料庫的認知。 使用者可能是終端使用者或是應用程式設計師。 概念層 (Conceptual level) 概念層對應到資料庫所有的內容,但是跟資料的實際儲存方式沒有關係。 概念層的目的在於真實且完整地表達資料庫中各個資料,以及存在各資料間的關係。 各個外部景觀(external view)都可以在概念景觀中找到對應(mapping)關聯。概念景觀主要是透過概念綱要(conceptual schema)所定義出來,而概念綱要同樣也是透過資料定義語言(DDL)所定義出來。
內層 (Internal level) 對應 (mapping) 內部景觀(internal view)是整個資料庫的低階表示法。內部景觀由內部綱要(internal schema)所定義,內部綱要不僅定義不同型態的儲存記錄,同時也指明有哪些索引、儲存欄位的表示方法、指標等等。 對應 (mapping) 所謂的對應(mapping)在資料庫三個層次中存在兩個地方,分別是外層與概念層的對應(external/conceptual mapping)、以及概念層與內層的對應(conceptual/internal mapping)。 前者定義著外層綱要與概念綱要之間的對應。一個概念綱要中所定義的欄位可以對應到不同應用程式所定義不同的欄位名稱,換言之,也就是對應到多個外層綱要中所定義的欄位名稱。
存在概念層與內層的對應(conceptual/internal mapping),則定義概念景觀與儲存資料庫之間的關聯。
資料庫架構的三層次個別可以透過資料模型設計對應到三個相互關聯的資料模型 圖5.4 資料庫架構的三層次與資料模型間的關聯性
5.3 E-R資料模型 E-R資料模型 (E-R model, entity-relationship model) 是在1975年由Peter P.S Chen 所提出 用來協助資料庫管理師描述出實體(entity)以及實體和實體之間的各種關係(relationship)。 而透過E-R資料模型所描繪出的E-R資料關聯圖便是對應到資料庫架構三層次中概念層的概念模型(conceptual model)。 實體(Entity) 實體在真實世界是指我們有興趣的人、事、物 。 實體細分為強實體(strong entity)以及弱實體(weak entity),以及實體子型態以及超型態。 屬性(Attribute) 關係(Relationship)
每個實體都會包含一個或一個以上的實例(instance) 。 每個實體的實例可以透過關聯式模型中的表格(table)來紀錄 。 SNO SNAME ADDRESS TEL 8334801 林小華 桃園大溪路25號 33213016 8334802 陳孟 彰化大學路101號 47244901 … 8334821 王小雲 台北市信義路8巷11F2號 226327801 學生 圖5.5 實體與實例(instance)之間的關係
實體(Entity) 強實體(strong entity) 弱實體(weak entity) 圖5.6 (b) 強實體與弱實體的表示方式
實體子型態以及超型態 圖5.7 (b) 實體子型態與超型態範例 圖5.7 (a) 實體子型態與超型態範例
實體超型態 子型態會包含重複實例,表示符號為Gs。 子型態不會包含重複實例,表示符號為G。 圖5.8 兩種實體超型態表示法(a)表會重複(b)表不會重複
屬性(Attribute) 對於每個實體,使用者會有進一步想紀錄或了解的資訊,而這些資料便成為該實體的屬性(attribute) 。 每個實體通常擁有多個屬性。 圖5.9 實體與屬性的圖形表示
學者Chen進一步將屬性作以下的區分 簡單屬性(simple attribute)與複合屬性(composite attribute) 。 鍵(key):是指該屬性的值在某個環境內具有唯一性。 單值屬性(single-valued attribute)與多值屬性(multi-valued attribute) 。 衍生屬性(derived attribute) 。 圖5.10(a) 各種屬性的圖形表示法
圖5.10(b) 各種屬性的圖形表示法
關係(Relationship) 指存在實體與實體之間的關聯 。 關係把 E-R 模型中的實體結合在一起,一個關係是一個或多個實體的實例間之關聯(association),一個關聯經常意味著事件已發生或存在一些實例間自然的連結。關係的程度(Degree of a Relationship) 簡稱關係度(degree),是參與在某個關係中之實體類型的數量。 在 E-R 資料模型中,三種最常見之關係度分別為:單一(Unary, degree one)、二元(Binary, degree two)以及三元(Ternary, degree three)關係。不論是一個實體或多個實體的實例間存在關係,E-R資料模型將這些關係區分為三類:分別是1對1(1:1)、1對多(1:m)以及多對多(m:n)。 對於這三種關係,Chen在E-R資料模型中給定一個名詞「基數(cardinality)」來稱呼。
茲以二元關係為例分別說明1對1、1對多以及多對多關係如下 1對1:是指實體與實體之間存在1對1的關係。 1對多:是指實體與實體之間存在1對多的關係。 多對多:是指實體與實體之間存在多對多的關係。 圖5.11 三種不同的實體關係 (m與n都表示多的意思 )
在透過E-R資料模型表示實體與實體之間的關係程度時,有時尚需要註明一個實體之實例(instance)與另一個實體之實例間關聯之數目。 如果關聯數目有最小或最大之限制,則分別稱之為最小基數(Minimum cardinality)與最大基數(Maximum cardinality)。 最小基數表示某實體之實例能與另一實體之實例關聯之最小數目;相對於最小基數,最大基數則表示關聯實例的最大數,如圖5.12(b)。
圖5.12(a) 基數範例一 圖5.12(b) 基數範例二
除三種基本關係外,Chen並提出另外兩種關係 單一實體參與的關係(unary):又稱為遞迴關係(recursive relationship)。 圖5.13 單一實體的關係(unary relationship)
三個實體參與的關係(ternary):此類關係是包含三種實體。 圖5.14 三個實體參與的關係
5.4 建構一個E-R 關聯圖之一 Seattle 大學想要建立一個資料庫,希望日後可以透過資料庫紀錄以下資訊 各系的基本資料:各系系名、系辦公室分機、目前的主任姓名以及所在位置。 學生的基本資料:包括學生的學號、姓名、地址、聯絡電話、出生年月日、年齡。 教職員的基本資料:包括教職員的教職員編號、辦公室號碼、分機、聯絡電話與地址。如果是職員希望可以額外紀錄其工作單位,如果是教授希望可以紀錄其聘任的系所名稱以及專長。 行政單位:包括分機、主管。 每學期的課程資料:包括課程名稱、學分數。 每學期的開課班級:包括上課時間、地點、授課老師以及可容納人數。 學生修課的情形:紀錄每個學生修課的成績。 紀錄每門課程的主修課程。
管理規則 一個教授只能被一個系聘任。 教授得兼行政職務。 每位教授只能兼任一行政職務。 每位學生至少要修一門課,最多六門課。 一位同學不得就同一門課程選修兩個開課班級。 每個系會有一位且只有一位系主任。 每個授課班級只會有一位老師授課,同一門課程的授課班級可以都是同一位老師也可以是不同的老師授課。 每個教授可以有多個專長。 每門課程最多會有兩門先修課。
資料庫管理師便可以根據以下步驟,利用E-R資料模型進行資料庫的概念分析。 決定實體。 為每個實體定義出所包含的屬性。 圖5.15 Seattle 大學資料庫概念設計中所定義的實體 圖5.16 以「系」為例,說明各實體與其屬性之關係
找出存在實體之間的關係。 圖5.17 以「系」和「教授」以及「教授」和「開課班級」為例
將重複出現的實體作為連接的基礎,將一組一組的E-R資料模型整合整一個完整的E-R關聯圖。 圖5.18 將圖5.17 (a,b) 整合後的E-R關聯圖
圖5.19(a) 完整的E-R關聯圖
E-R資料模式應用在內層資料模式的建構,為了清楚地表示出資料庫未來在實作階段所要產生的表格。 圖5.19(b) 應用E-R資料模型所完成的內層資料模型
由應用程式的角度來看,可以把開課班級和學生之間的關係看成一個選課系統,教授以及開課班級之間的關係為一個排課系統。 圖5.20 將E-R資料模性應用在建構外層資料模式
5.5 建構一個E-R 關聯圖之二 A&B公司想要建立一個資料庫,希望日後可以透過資料庫記錄以下資訊: 各個顧客的基本資料:顧客編號、統一編號、顧客名稱、地址、聯絡電話以及聯絡人姓名。 產品的基本資料:包括產品的編號、產品名稱以及單價。 訂單資料:包括訂單編號、顧客名稱、下單日期、交貨日期、交貨地點、訂單明細以及總金額。其中,訂單明細包括明細編號、數量(指訂購數量)與售價。
管理規則如下 在記錄顧客的聯絡電話時,A&B公司習慣記錄兩支電話號碼。 每張訂單只隸屬於一個顧客,但是一個顧客可以下很多張訂單。 每張訂單可以包含很多個訂單產品。
決定實體:根據上述描述,我們可以歸納出A&B公司有興趣的人、事、物分別是:顧客、訂單以及產品。如圖5.21所示。
為每個實體定義出所包含的屬性:以顧客為例,如圖5.22。 圖5.22 以「顧客」為例,說明各實體與其屬性之關係
找出存在實體之間的關係: 圖5.23 (a) 「顧客」和「訂單」的關係
圖5.23 (b) 「訂單」和「訂單明細」的關係
圖5.23 (c) 「產品」和「訂單明細」的關係
重複出現的實體做為連接的基礎,將一組一組的E-R資料模型整合一個完整的E-R關聯圖。茲以「顧客」和「訂單」以及「訂單」和「產品」兩組資料模型作為整合的範例。
圖5.24 完整的E-R關聯圖
圖5.25 將E-R資料模性應用在建構內層資料模型
圖5.26 將E-R資料模型應用在建構外層資料模型