《资料库设计与实体关联模型课件.ppt》由会员分享,可在线阅读,更多相关《资料库设计与实体关联模型课件.ppt(71页珍藏版)》请在三一办公上搜索。
1、資料庫(DB),ch06,1,第6章 資料庫設計與實體關聯模型,6-1 資料庫設計的基礎6-2 實體關聯模型6-3 建立實體關聯圖6-4 實體關聯圖的常見錯誤6-5 將實體關聯圖轉換成關聯表綱要6-6 資料庫的邏輯資料模型,資料庫(DB),ch06,2,6-1-1 資料庫系統開發的生命周期-圖例,資料庫(DB),ch06,3,6-1-1 資料庫系統開發的生命周期-種類,完整資料庫設計分成2個部分:資料庫設計(Database Design):依照一定的程序、方法和技術使用結構化方式將概念資料模型轉換成資料庫的過程應用程式設計(Application Design):建立使用者介面將商業處理流程
2、轉換成應用程式的執行流程以便使用者能夠很容易存取資訊,這就是資料庫程式設計(Database Programming),資料庫(DB),ch06,4,6-1-2 資料庫設計方法論-說明,資料庫設計方法論(Database Design Methodology):使用特定程序、技術和工具的結構化設計方法一種結構化的資料庫設計方法一種有計劃,按部就班的進行資料庫設計優點:一步一步的指引,幫助我們完成整個資料庫設計減少或根本不會造成資料庫設計的錯誤方便資料庫系統相關文件的整理以便撰寫資料庫系統的規格書當商業流程變更時,容易修改資料庫設計,資料庫(DB),ch06,5,6-1-2 資料庫設計方法論-三
3、階段,資料庫設計方法論的三階段:概念資料庫設計(Conceptual Database Design):將資料庫需求轉換成概念資料模型的過程沒有針對特定資料庫管理系統或資料庫模型實體關聯圖(Entity Relationship Diagram)目前最廣泛使用的概念資料模型 邏輯資料庫設計(Logical Database Design):將概念資料模型轉換成邏輯資料模型的過程針對特定的資料庫模型來建立邏輯資料模型將實體關聯圖轉換成關聯表綱要使用關聯表綱要的外來鍵參考圖建立邏輯資料模型 實體資料庫設計(Physical Database Design):將邏輯資料模型轉換成關聯式資料庫管理系統
4、的一系列SQL指令敘述用來描述實際的基底關聯表、檔案組織、索引設計和額外的完整性限制條件,資料庫(DB),ch06,6,6-1-2 資料庫設計方法論-圖例,實體關聯圖,關聯表綱要的外來鍵參考圖,SQL的指令敘述,資料庫(DB),ch06,7,6-1-2 資料庫設計方法論-邏輯資料庫設計的主要工作,邏輯資料庫設計主要工作有2項:將實體關聯圖轉換成關聯表綱要關聯表的正規化,資料庫(DB),ch06,8,6-2 實體關聯模型,實體關聯模型(Entity-Relationship Model):1976年Peter Chen開發的資料塑模方法目前資料庫系統分析和設計的基礎將商業領域的公司或組織的資料以
5、邏輯方式呈現使用實體(Entities)和關聯性(Relationship)描述真實世界的資料,且描述資料和資料間的關係將真實世界的資料模型化成邏輯關聯資料(Logically Related Data),儲存在資料庫,資料庫(DB),ch06,9,6-2-1 實體關聯模型的基礎-實體與實體型態(1),實體(Entities):實體是從真實世界的資料中所識別出的東西例如:人、客戶、產品、供應商、地方、物件、事件或一個觀念也稱為實體實例(Entity Instance)特性:實體一定屬於資料庫系統範圍之內的東西實體至少擁有一個不是鍵(即關聯表主鍵)的屬性實體型態(Entity Type):將實體
6、分類成不同的實體型態(Entity Type)它們都擁有相同屬性同一類實體以指定的實體型態名稱(Entity Type Name)來代表同一類實例集合稱為實體集合(Entity Set)也就是一個關聯表例如:學生陳會安是實體同一類學生實體可歸類成實體型態StudentsStudents是實體型態名稱,資料庫(DB),ch06,10,6-2-1 實體關聯模型的基礎-關聯與關聯型態,關聯性(Relationships):二個或多個實體間所擁有的關係,也稱為關聯實例(Relationship Instances)關聯型態(Relationship Type):將關聯實例收集的集合稱為關聯集合(Rel
7、ationship Set)可歸類成關聯型態(Relationship Type),資料庫(DB),ch06,11,6-2-1 實體關聯模型的基礎-屬性與屬性型態,屬性(Attributes):實體所擁有的特性例如:學生實體擁有學號、姓名、地址和電話等屬性屬性型態(Attribute Type):屬性的所有可能值稱為屬性型態(Attribute Type)或值集合(Value Set)相當於是關聯表的定義域(Domain),資料庫(DB),ch06,12,6-2-2 實體關聯模型與自然語言-說明,資料庫(DB),ch06,13,6-2-2 實體關聯模型與自然語言-句型範例1,轉換英文句子:“T
8、here are A in B.”“B has.A.”B與A是實體型態,has就是關聯型態例:“There are many employees in every department.”“Every department has many employees.”employees和department是實體型態has是關聯型態例:“One employee works for only one company.”employees和company是實體型態works-for是關聯型態,資料庫(DB),ch06,14,6-2-2 實體關聯模型與自然語言-句型範例2,英文句型:“The A of
9、 B is C.”B是實體,如果C是專有名詞,A是B與C的關聯型態否則,如果C不是專有名詞,A是B的屬性例:“The birthday of the Instructor is 09/03/66.”Instructor是實體型態09/03/66不是專有名詞,所以birthday是屬性“The advisor of Tom Chen is Dr.Chen.”Tom Chen是專有名詞的學生實體,可歸類成Student實體型態Dr.Chen是專有名詞的教授實體,可歸類成Instructor實體形態Dr.Chen是專有名詞,所以advisor是關聯型態,是Student和Instructor之間的關
10、聯性,例如:陳惠安是專有名詞 Students 是普通名詞,資料庫(DB),ch06,15,6-2-3 實體關聯模型與資料庫設計,實體關聯模型:圖形化工具描述使用者和設計者眼中的真實世界,作為之間的溝通橋樑實體對應關聯式資料庫模型的關聯表關聯性就是外來鍵參考實體關聯圖(Entity-Relationship Diagram,ERD):使用圖形符號表示的實體關聯模型使用在概念資料庫設計建立概念資料模型及邏輯資料庫設計邏輯資料模型與概念資料模型的最大差異:正規化邏輯資料模型是一個正規化的實體關聯圖,資料庫(DB),ch06,16,6-3 建立實體關聯圖-步驟,實體關聯圖的基本建立步驟:Step 1
11、:從系統需求找出實體型態Stpe 2:找出實體型態與其他實體型態間的關聯Step 3:定義實體型態間的關聯型態種類:一對一一對多多對多Step 4:定義實體型態的屬性型態與主鍵,資料庫(DB),ch06,17,6-3 建立實體關聯圖-符號,資料庫(DB),ch06,18,6-3 建立實體關聯圖-範例,資料庫(DB),ch06,19,6-3-1 實體型態-實體型態,實體型態(Entity Type):同一類實體的集合,也就是同一類東西圖形符號是長方形節點,內為實體型態的名稱,資料庫(DB),ch06,20,6-3-1 實體型態-實體集合,實體型態的實例(Instances):每一位學生稱為實體型
12、態的實例(Instances),或簡稱為實體,實例的集合稱為實體集合(Entity Set),資料庫(DB),ch06,21,6-3-2 關聯型態-關聯型態,關聯型態(Relationship Types):屬於一種結合實體型態(Associate Entity Type)目的:用來連結一、二個或以上相關的實體型態圖形符號使用菱形節點,在菱形端點使用實線與關聯的實體型態連接,資料庫(DB),ch06,22,6-3-2 關聯型態-關聯集合,關聯集合(Relationship Set):關聯型態也可建立實例,實例的集合稱為關聯集合,資料庫(DB),ch06,23,6-3-2 關聯型態-遞迴,遞迴(
13、Recursive):實體型態本身會參與關聯自己的關聯型態,資料庫(DB),ch06,24,6-3-3 關聯限制條件-說明,關聯限制條件(Relationship Constraints):實體關聯圖中,關聯型態連接的實體型態可指定限制條件,稱為關聯限制條件關聯限制條件有3種:基數比限制條件(Cardinality Ratio Constraints)基數限制條件(Cardinality Constraints)參與限制條件(Participation Constraints),資料庫(DB),ch06,25,6-3-3 關聯限制條件-基數比限制條件1,基數比限制條件(Cardinality
14、Ratio Constraints):限制關聯實體型態的實例個數,分為3種:一對一關聯性(One-to-one Relationship,1:1):一個實體只關聯到另一個實體例如:一位講師只能是學校的一位員工,資料庫(DB),ch06,26,6-3-3 關聯限制條件-基數比限制條件2,一對多關聯性(One-to-many Relationship,1:N):一個實體關聯到多個實體例如:一門課程有小考、期中考和期末考等考試,資料庫(DB),ch06,27,6-3-3 關聯限制條件-基數比限制條件3,多對多關聯性(Many-to-many Relationship,M:N):多個實體關聯到多個其他
15、實體例如:學生可參加多次考試,反過來,考試可讓多位學生應試,資料庫(DB),ch06,28,基數限制條件(Cardinality Constraints):標示實體允許參與關聯性的範圍:(1,N)、(0,N)、(1,1)和(0,1)等例如:課程Courses關聯型態是以(0,N)範圍參與Has關聯型態考試Exams關聯型態是(1,1)參與,6-3-3 關聯限制條件-基數限制條件,資料庫(DB),ch06,29,6-3-3 關聯限制條件-參與限制條件(說明),參與限制條件(Participation Constraints):實體集合的實例是全部或部分參與關聯型態分為兩種:全部參與限制條件(To
16、tal Participation Constraints):所有實體集合的實例都參與關聯性雙線來標示,也稱為存在相依(Existence Dependency)部分參與限制條件(Partial Participation Constraints):在實體集合只有部分實例參與關聯性單線標示,資料庫(DB),ch06,30,6-3-3 關聯限制條件-參與限制條件(圖例),Courses實體只部分參與關聯,因為課程可能沒有考試,Exams實體是全部參與關聯,因為如果課程有考試,就一定存在考試實體,資料庫(DB),ch06,31,6-3-3 關聯限制條件-參與限制條件(雞爪符號),資料庫(DB),c
17、h06,32,6-3-4 屬性-說明,屬性:實體關聯圖的實體與關聯型態可擁有0到多個屬性(Attributes)屬性使用橢圓型圖形符號的節點,使用線與實體與關聯型態連接,資料庫(DB),ch06,33,6-3-4 屬性-種類1,屬性:一組值的集合這些值是屬性可能的值,稱為值集合(Value Set)或定義域(Domain)屬性分成很多種:單元值屬性型態(Atomic Attribute Types):實體與關聯型態的基本屬性型態,只擁有單元值例如:Students實體型態sid、name、GPA、birthday和tel屬性,資料庫(DB),ch06,34,6-3-4 屬性-種類2,複合屬性型
18、態(Composite Attribute Types):屬性由多個單元屬性組成使用樹狀的單元屬性圖形符號來表示例如:address複合屬性:由street、city和ZIP單元屬性組成,多重值屬性型態(Multivalued Attribute Types):屬性值不是單元值,而是多重值雙線的橢圓形節點符號來標示例如:若學生有多個通訊地址,則address屬性為多重值屬性學生有多個興趣,則hobby屬性為多重值屬性,資料庫(DB),ch06,35,6-3-4 屬性-種類3,資料庫(DB),ch06,36,6-3-4 屬性-種類4,導出屬性型態(Derived Attribute Types)
19、:由其他屬性計算出的屬性使用虛線的橢圓形節點符號來標示例如:Exams實體型態的numOfStudents屬性記錄參加考試的學生數,可從Results關聯型態計算而得例如:age(年齡)屬性可由生日推導出來,資料庫(DB),ch06,37,6-3-4 屬性-種類5,鍵屬性型態(Key Attribute Types):用來識別實例的屬性,相當於關聯表的主鍵鍵屬性型態是在名稱下加上底線來標示例如:Students實體型態的主鍵是sid屬性,資料庫(DB),ch06,38,弱實體型態(Weak Entity Types):依賴其他實體型態才能存在的實體形態,沒有主鍵的實體型態使用雙框的長方形圖形符
20、號來標示例如:parent(學生家長)是一個弱實體只有學生實體存在,家長實體才會存在一般實體型態(Regular Entity Type):擁有主鍵的實體型態或稱強實體型態(Strong Entity Type),6-3-5 弱實體型態-說明,資料庫(DB),ch06,39,6-3-5 弱實體型態-圖例,識別實體型態(Identifying Entity Type):弱實體型態一定關聯到一個強實體型態,以便識別其身份這個強實體型態稱為識別實體型態使用的關聯型態稱為識別關聯型態(Identifying Relationship Type)使用雙框的菱形圖形符號表示,此強實體型態稱為識別實體型態,
21、此關聯型態稱為識別關聯型態,弱實體型態,資料庫(DB),ch06,40,練習:利用dia 軟體畫出實體關聯圖,資料庫(DB),ch06,41,練習:成績單實體關聯圖(E-R diagram),請根據下列成績單畫出其實體關聯圖(E-R diagram),假設每個科目皆由一個老師來授課,每個科目只在一間教室上課。,資料庫(DB),ch06,42,6-4 實體關聯圖的常見錯誤,連接陷阱(Connection Traps):錯誤解釋實體間的關聯性造成實體關聯圖的錯誤,稱為連接陷阱實體關聯圖最常見的2種連接陷阱錯誤:扇形陷阱(Fan Traps)斷層陷阱(Chasm Traps),資料庫(DB),ch0
22、6,43,6-4-1 扇形陷阱-說明1,扇形陷阱(Fan Traps):通常產生在實體型態擁有多個一對多的關聯型態如同扇形散開(名稱的由來)關聯到的各實體型態間的關聯性會產生令人混淆的問題有兩個實體類型:EA與 EB在實體-關係圖中可找到一條路徑將它們聯繫起來但,卻存在某個屬於EA的實體聯繫到兩個以上屬於EB的實體便產生了扇形陷阱(Fan Trap)例如:學生、講師與課程實體型態間擁有3個一對多關聯性:講師可以教多位學生講師可以教多門課程學生可以選修多門課 學生到底修了哪門課?,資料庫(DB),ch06,44,6-4-1 扇形陷阱-說明2,例如:許多學生(Students)受教於(Teach)
23、一位老師(instructors)而一位老師(instructors)則教授(Teach)多門課程問題討論:兩位同學受教於張三老師但,張三老師教授了資料結構 與 資料庫系統這兩門課 問題:到底這兩位同學所修的課是資料結構,還是資料庫系統呢?或是兩門都修?沒有人知道!原因:不應該將(instructors)拿來作為(Students)與(Courses)之間的橋樑因為ERD 中的對應關係為n.1.1.m,資料庫(DB),ch06,45,6-4-1 扇形陷阱-說明3,扇形陷阱問題:學生選修多門課程的一對多關聯性沒有辦法建立在講師與學生和講師與課程的2個一對多關聯性上,如此就會產生混淆,資料庫(DB
24、),ch06,46,6-4-1 扇形陷阱-解決方案,扇形陷阱解決方案:扇形陷阱發生的原因是誤解關聯的意義關聯正確的解釋應該是以課程建立關聯性的橋樑,資料庫(DB),ch06,47,6-4-1 扇形陷阱-解決方案(續),學生選修多門課和講師教多門課程的2個一對多關聯性講師教多位學生的一對多關聯性可透過講師教多門課,一門課有多位學生,所以講師可以教多位學生,資料庫(DB),ch06,48,6-4-2 斷層陷阱-說明,斷層陷阱(Chasm Traps):實體間應存在的關聯根本不存在,2個實體間沒辦法找到一條路徑來連接有兩個實體類型:EA與 EB 在實體-關係圖中可找到一條路徑將它們聯繫起來但,卻存在
25、某個屬於EA中的實體無法聯繫到屬於EB的任何一個實體便產生了斷層陷阱(Chasm Trap)例如:一位學生可修多門課程,每一位學生會購買多本教課書,資料庫(DB),ch06,49,6-4-2 斷層陷阱-說明(續),斷層陷阱的問題:學生可能不買教課書學生會修多門課,會買多本教課書有些教課書不知道到底是那一門課程的教課書?,資料庫(DB),ch06,50,6-4-2 斷層陷阱-解決方案,斷層陷阱(Chasm Traps)解決方案:新增關聯型態在Courses和Textbooks實體型態新增一對多的關聯型態來解決,資料庫(DB),ch06,51,6-4-2 斷層陷阱-解決方案(續),Courses和
26、Textbooks實體型態間擁有一個新關聯型態Assign表示課程指定的教課書有那幾本,資料庫(DB),ch06,52,6-4-2 斷層陷阱-補充範例,例如:一個科系(Department)有(Contain)多位老師(Teacher)而一位老師(Teacher)掌管(Manage)許多的財產設備(Property),資料庫(DB),ch06,53,6-4-2 斷層陷阱-補充範例(續),何時會出現問題?若系上任何財產設備都一定會由某位老師掌管這樣設計是沒有問題的只要找出老師就可找到所有的設備但若系上某些設備並不是由老師來掌管,那麼就會出現問題例如:書櫃屬於資管系(MIS)的財產,但沒有老師掌管
27、以.代表掌管老師為虛值問題:當透過老師去統計系上的財產設備時,將會遺漏掉書櫃這樣財產!解決方式:另外建立科系(Department)與財產設備(Property)之間的關係,資料庫(DB),ch06,54,6-4-2 斷層陷阱-補充範例(續),資料庫(DB),ch06,55,6-5 將實體關聯圖轉換成關聯表綱要,6-5-1 將強實體型態轉換成關聯表6-5-2 將關聯型態轉換成外來鍵6-5-3 轉換多重關聯型態6-5-4 多重值屬性轉換成關聯表6-5-5 弱實體型態轉換成關聯表,資料庫(DB),ch06,56,6-5-1 將強實體型態轉換成關聯表-規則,強實體型態轉換成關聯表:強實體型態(即一般
28、實體型態)對應關聯表將強實體型態轉換成關聯表綱要規則如下:建立新關聯表綱要,名稱是實體型態名稱關聯表綱要包含:單元值屬性型態複合屬性型態關聯表綱要不包含:多重值屬性型態外來鍵導出屬性型態將鍵屬性(Key Attribute)指定為關聯表綱要的主鍵,資料庫(DB),ch06,57,6-5-1 將強實體型態轉換成關聯表-圖例,age,資料庫(DB),ch06,58,6-5-2 將關聯型態轉換成外來鍵-說明,關聯型態轉換成外來鍵:關聯型態可轉換成關聯表綱要的外來鍵關聯表綱要新增參考其他實體型態的外來鍵,分為3種:一對一關聯型態一對多關聯型態多對多關聯型態,資料庫(DB),ch06,59,6-5-2
29、將關聯型態轉換成外來鍵:一對一關聯型態(規則),一對一關聯型態轉換成關聯表綱要的規則:參與關聯性的關聯表綱要新增參考到另一個關聯表綱要的外來鍵(FK)若關聯型態擁有單元值屬性一併加入新增外來鍵的關聯表綱要,資料庫(DB),ch06,60,6-5-2 將關聯型態轉換成外來鍵:一對一關聯型態(圖例),rank,外來鍵,SSN為身份證字號,當主鍵,資料庫(DB),ch06,61,6-5-2 將關聯型態轉換成外來鍵:一對多關聯型態(規則),一對多關聯型態轉換成關聯表綱要的規則:將1端關聯表綱要的主鍵(PK)加到N端的關聯表綱要當作外來鍵(FK)若關聯型態擁有單元值屬性:一併加入新增外來鍵的關聯表綱要,
30、資料庫(DB),ch06,62,6-5-2 將關聯型態轉換成外來鍵:一對多關聯型態(圖例),外來鍵,主鍵,資料庫(DB),ch06,63,6-5-2 將關聯型態轉換成外來鍵:多對多關聯型態(規則),多對多關聯型態轉換成關聯表綱要的規則:關聯型態:建立成新的關聯表綱要,名稱為關聯型態名稱新關聯表綱要擁有兩個外來鍵(FK):分別參考關聯到的實體型態的主鍵若關聯型態擁有單元值屬性:一併加入新的關聯表綱要主鍵:兩個外來鍵組合的複合主鍵有時,可能需要新增幾個關聯型態的屬性作為主鍵,資料庫(DB),ch06,64,6-5-2 將關聯型態轉換成外來鍵-多對多關聯型態(圖例),外來鍵,外來鍵,主鍵,主鍵,複合
31、主鍵,資料庫(DB),ch06,65,6-5-3 轉換多重關聯型態-規則,轉換多重關聯型態:多重關聯型態(Ternary Relationship Type):關聯型態擁有3個或更多實體型態間的關聯性,稱為多重關聯型態轉換規則:關聯型態:建立成新的關聯表綱要,名稱是關聯型態的名稱關聯表綱要擁有多個外來鍵(FK):分別參考關聯到的實體型態的主鍵若關聯型態擁有單元值屬性一併加入新建立的關聯表綱要主鍵:所有外來鍵組合的複合主鍵可能需要新增幾個關聯型態的屬性,或部分外來鍵來作為主鍵,資料庫(DB),ch06,66,6-5-3 轉換多重關聯型態-實體關聯圖,rank,SSN為身份證字號,參考PPT p5
32、6,此三個欄位皆是外來鍵,Classes,複合主鍵,主鍵,主鍵,主鍵,資料庫(DB),ch06,67,6-5-4 多重值屬性轉換成關聯表-規則,多重值屬性轉換成關聯表綱要的規則:多重值屬性:建立新的關聯表綱要名稱:可為屬性名稱或實體與屬性結合的名稱新增外來鍵將參考到的實體型態主鍵,新增為外來鍵主鍵:外來鍵加上多重值屬性若多重值屬性是複合屬性:可能需要加上其中一個屬性或是全部屬性,資料庫(DB),ch06,68,6-5-4 多重值屬性轉換成關聯表-圖例,複合主鍵,外來鍵,主鍵,資料庫(DB),ch06,69,6-5-5 弱實體型態轉換成關聯表-規則,弱實體型態轉換成關聯表:弱實體型態轉換成關聯表綱要:因為弱實體型態一定擁有一個對應的識別實體型態(Identifying Entity Type)弱實體型態:建立新的關聯表綱要,名稱為弱實體型態的名稱新關聯表綱要包含單元值屬性型態新增外來鍵:將對應的強實體型態的主鍵,新增為外來鍵主鍵:將弱實體型態的部分鍵(Partial Key)加上外來鍵,資料庫(DB),ch06,70,6-5-5 弱實體型態轉換成關聯表-圖例,複合主鍵,外來鍵,主鍵,資料庫(DB),ch06,71,討論區:將下列實體關聯圖轉成關聯表及外來鍵參考圖,