課程名稱:資料庫系統 授課老師:李春雄 博士 第 三 章 ER Model實體關係圖 課程名稱:資料庫系統 授課老師:李春雄 博士 各位同學大家好,我是李春雄老師,本學期所開設的課程名稱為「資料結構」, 今天所要為各位介紹的是第一章「資料結構導論」
本章學習目標 1.讓讀者瞭解何謂實體關係模式(Entity-Relation Model)。 2.讓讀者瞭解如何將設計者與使用者訪談的過程 記錄(情境)轉換成E-R圖。 3.讓讀者瞭解如何將ER圖轉換成資料表及資料 庫,以利資料庫程式設計所需要的資料來源。 開始: 本章學習目標 有二項:
本章內容 3-1 實體關係模式的概念 3-2 實體(Entity) 3-3 屬性(Attribute) 3-4 關係(Relationship) 3-5 情境轉換成E-R Model 3-6 將ER圖轉換成對應表格的法則 1-1 認識資料與資訊的關係: 其中,「資料」轉換成「資訊」必須要經過一連串處理過程,而這一連串的處理過程就是透過「程式」來處理。 1-2 何謂資料結構? 「資料結構」(Data Structures)主要是探討如何將資料更有組織地存放到電腦記憶體中,以提昇程式之執行效率的一 門學問。 1-3 何謂演算法?演算法就是「解決問題的方法」 1-4 程式設計概念: 步驟1. 分析所要解決的問題 步驟2. 設計解題的步驟 步驟3. 編寫程式 步驟4. 上機測試、偵測錯誤 步驟5. 編寫程 式說明書 1-5 結構化程式設計 利用「由上而下」的技巧,將程式分解成許多個獨立功能的模組。並且每一個模組都是由三種結構所組成。分別為循序結構、選擇結構及重複結構。 1-6 演算法的效率評估 指用來計算某些演算法所撰寫的程式,在經過編譯之後,實際執行所需要的時間。
前言 在開發資料庫系統時,首要的工作是先做資料庫的分析,在做資料庫分析工作時,需要先與使用者進行需求訪談,藉由訪談的過程來了解使用者對資料庫的需求,以便讓資料庫設計師來設計符合企業所需要的資料庫。 在需求訪談過程中,資料庫設計者會將使用者對資料的需求製作成規格書,這個規格書可以是用文字或符號來表達,然而,一般設計者會以雙方較容易了解的圖形符號形式的規格書來呈現,並輔助一些詳盡描述的說明文件。圖形符號的規格書有許多種方法表現,一般最常被使用的就是E-R圖(Entity Relationship Diagram,又稱實體關係圖)。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-1 實體關係模式的概念 【定義】實體關係模式(Entity-Relation Model)? 3-1 實體關係模式的概念 【定義】實體關係模式(Entity-Relation Model)? 它是用來描述「實體」與「實體」之間關係的工具。 【實體】是指用以描述真實世界的物件。 【例如1】學生、員工、產品等等都是屬於實體。 【例如2】在實務需求上我們可以將「實體」轉換成各種資料表: 學生實體學生資料表 員工實體員工資料表 產品實體產品資料表 《轉換規則》ch3-6詳細介紹。 【關係】是指用來表示「一個實體」與「另一個實體」關聯的方式。 【例如】一對一關係、一對多關係、多對多關係。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
ER圖的符號表 「實體關係模式」是利用「圖形化」的表示法,可以很容易的被一般非技術人員所了解。因此,「實體關係模式」可視為設計者與使用者溝通的工具與橋樑。 基本上,實體(Entity)與關係(Relation)是用來將事物加以模式化,並且以「圖形」表示的方式來顯示語意。如下表所示。 ER圖之組成元素 表示符號 說明 實體(Entity) 用以描述真實世界的物件。 例如:學生、員工及產品。 屬性(Attribute) 用來描述實體的性質。 例如:學生的學號、姓名。 鍵值(Key) 用來辨認某一實體集合中的每一個實體的唯一性。 例如:學號、身分證字號。 關係(Relationship) 用來表示一個實體與另一個實體關聯的方式。 例如:一對一關係、一對多關係、多對 多關係。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
假設資料庫設計者與使用者進行訪談之後,描述了一段事實「情境」的需求如下: 【實例】 假設資料庫設計者與使用者進行訪談之後,描述了一段事實「情境」的需求如下: 1. 每一位客戶可以下一張以上的訂單,也可以沒有下訂單, 2. 但是,每一張訂單一定會有一位客戶的下單資料。 請將以上的「情境」轉換成E-R圖。<細節會在ch3-6章節中介紹> 說明:一個「實體」在關聯式資料庫中視為一個「資料表」,對於一個 實體而言,它可以含有多個「屬性」(Attribute)用以描述該實體, 在關聯式資料庫中,則以資料表的「欄位」來表示。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-2 實體(Entity) 【定義】 1.用來描述實際存在的事物(如:學生), 也可以是邏輯抽象的概念(如:課程)。 2.必須可以被識別,亦即能夠清楚分辨出兩個不同的實體。 3.實體都是以「名詞」的型式來命名,不可以是「形容詞」或「動詞」。 【例如】學生、員工及產品。 【分類】 1.強實體(strong entity) 2.弱實體(weak entity) 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-2.1 強實體(Strong Entity) 【定義】 是指不需要依附其他實體而存在的實體。也就是說,真實世界中獨立 存在的一切事物,可以是實際存在的物品,也可以是概念性的事物。 【例如】學生、課程 【表示圖形】以長方形表示 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-2.2 弱實體(Weak Entity ) 【定義】 是指需要依賴其他實體而存在的實體。 【例如】教職員的眷屬或課程的上課教室 【表示圖形】雙同心長方形表示 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-3 屬性(Attribute) 【定義】用來描述實體的性質(Property)。 【例如】學號、姓名、性別是用來描述學生實體的性質。 【分類】 1.簡單屬性(simple attribute) 2.複合屬性(composite attribute) 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-3.1 簡單屬性(simple attribute) 【定義】指已經不能再細分為更小單位的屬性。 【例如】「學號」屬性便是「簡單屬性」。 【表示圖形】簡單屬性/單值屬性都是以「橢圓形」方式表示 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-3.2 複合屬性(Composite attribute) 【定義】屬性是由兩個或兩個以上的其他屬性的值所組成,並且代表 未來該屬性可以進一步作切割。 【例如】「地址」屬性是由區域號碼、縣市、鄉鎮、路、巷、弄、號等 各個屬性所組成。 【表示圖形】複合屬性表示方式如下: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-3.3 鍵屬性(Key attribute) 【定義】是指該屬性的值在某個環境下具有唯一性。 【例如】學號屬性稱為「鍵(Key)」。 【表示圖形】以「橢圓形」內的屬性名稱加底線方式表示如下: 【特性】 1.在實體關係圖(E-R Diagram)當中,我們會在鍵屬性的名稱底下加 一條底線表示之。 2.有些實體型態的鍵屬性不只一個。例如:在『學生』這個實體型態 裡面,學生的『身份證字號』及『學號』都具有唯一性,都可以是 鍵屬性。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 假設有一個學生(實體),它五個屬性,分別為學號、姓名、性別、身份證字號與地址。請繪出該學生的實體與屬性圖。<注意:鍵屬性的標示> 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】解答 假設有一個學生(實體),它五個屬性,分別為學號、姓名、性別、身份證字號與地址。請繪出該學生的實體與屬性圖。<注意:鍵屬性的標示> 【解答】 說明:對於實體與屬性各有指定的表示方法。 (1)實體以「長方形」表示。 (2)屬性則是以「橢圓形」表示。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-3.4 單值屬性(single-valued attribute) 【定義】是指屬性中只會存在一個單一值。 【例如】每個學生只會有一個學號,因此學號就是「單值屬性」。 【表示圖形】簡單屬性/單值屬性都是以「橢圓形」方式表示如下: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-3.5 多值屬性(Multi-valued attribute) 【定義】指屬性中會存在多個數值。 【例如】學生的「電話」屬性可能包含許多電話號碼。 【表示圖形】以「雙邊線的橢圓形」方式表示如下: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-3.6 衍生屬性(Derived attribute) 【定義】指可由其他屬性或欄位計算而得的屬性,即某一個屬性的值是 由其他屬性的值推演而得。 【例如】以實際的「年齡」表示,我們可以由目前的系統時間減去生日 屬性的值,便可換算出「年齡」屬性的值;因此,年齡屬性便 屬於衍生屬性。 【表示圖形】以「虛線橢圓形」方式表示如下: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 假設有一個學生(實體),它五個屬性,分別為學號、姓名、電話、年齡與地址。請繪出該學生的實體與屬性圖。<注意:依照實際情況來標示> 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 解答 假設有一個學生(實體),它五個屬性,分別為學號、姓名、電話、年齡與地址。請繪出該學生的實體與屬性圖。<注意:依照實際情況來標示> 【解答】 說明:對於實體與屬性各有指定的表示方法。 (1)實體以「長方形」表示。 (2)屬性則是以「橢圓形」表示。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-4 關係(Relationship) 【定義】是指用來表達兩個實體之間所隱含的關聯性。 【關係命名規則】使用足以說明關聯性質的「動詞」或「動詞片語」命名。 【例如】『學生』與『系所』兩個實體型態間存在著一種關係─「就讀於」。 【表示圖形】以「菱形」方式表示如下: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 試根據以下E-R模式,將關係的動詞填入,並簡述其意義所在。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 【隨堂練習】 試根據以下E-R模式,將關係的動詞填入,並簡述其意義所在。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 試根據以下E-R模式,將關係的動詞填入。 【解答】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 【隨堂練習】 試根據以下E-R模式,將關係的動詞填入。 【解答】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-4.1 關係的基數性(cardinality) 【定義】關係還具有「基數性」,代表實體所能參與關係的案例數。 【表示方式】基本上,可分為三大類來表示: 一、利用「比率關係」來表示 二、利用「雞爪圖基數性」來表示 三、利用「基數限制條件」來表示 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
一、利用「比率關係」來表示: 1.一對一的關係(1:1): 表示兩個實體之間的關係是一對一的關係。 2.一對多的關係(1:M):表示兩個實體之間的關係是一對多的關係。 3.多對一的關係(M:1):表示兩個實體之間的關係是多對一的關係。 4.多對多的關係(M:N):表示兩個實體之間的關係是多對多的關係。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
1.一對一的關係(1:1) 1.一對一的關係(1:1): 表示兩個實體之間的關係是一對一的關係。 說明:一個A實體會對應到一個B實體。 【對應關係圖】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【舉例】假設每一位老師僅能分配一間研究室,並且每一間研究室只能 被一位老師使用。 【對應關係圖】 說明:每一位老師會對應到每一間研究室。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
2.一對多的關係(1:M) 2.一對多的關係(1:M):表示兩個實體之間的關係是一對多的關係。 說明:一個A實體會對應到多個B實體。 【對應關係圖】 說明:A3實體對應B3與B4兩個實體 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【舉例】假設每一位教授可以同時指導多位研究生,但每一位研究生只 能有一位指導教授,不可以有共同指導現象。 【對應關係圖】 說明:每一位教授可以指導多位研究生,但每一位研究生只能有一位指導教授。 例如:T3教授同時指導S3與S4兩位研究生。但S1~S4只能找一位教授指導。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(1:M)的例子,並利用「比率關係」來繪出ER圖。 【提示】 1.客戶與訂單 2.員工與眷屬 3.學生與考試 【隨堂練習】 請您再舉三個(1:M)的例子,並利用「比率關係」來繪出ER圖。 【提示】 1.客戶與訂單 2.員工與眷屬 3.學生與考試 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(1:M)的例子,並繪出ER圖。 【解答】 1.每一個客戶可以「下」多張訂單 【隨堂練習】 請您再舉三個(1:M)的例子,並繪出ER圖。 【解答】 1.每一個客戶可以「下」多張訂單 2.每一個員工可以「扶養」多位眷屬 3.每一個學生可以「參加」多次考試 注意:如果只針對一個學生情況時(1:M),但是,如果針對全班學生時, 則「學生」與「考試」的關係為(M:N) 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3.多對一的關係(M:1) 3.多對一的關係(M:1):表示兩個實體之間的關係是多對一的關係。 說明:一個B實體會對應到多個A實體。 【對應關係圖】 說明:B3實體對應到A3與A4兩個實體 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【舉例】假設某一個國家型計畫,必須要由多位教授來共同主持一個國 科會總計畫 【對應關係圖】 說明: T3與T4兩位教授同時主持一件國科會總計畫案。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
4.多對多的關係(M:N) 4.多對多的關係(M:N):表示兩個實體之間的關係是多對多的關係。 說明:多個A實體會對應到多個B實體。 【對應關係圖】 說明:A1、A2及A3三個實體對應一個B1實體,並且B1,B2及B3三個實體對應 一個A3實體 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【舉例】假設每一位教授可以申請國科會多項計畫,並且每一項計畫也 可以由多位教授來共同申請。 【對應關係圖】 說明:T3教授申請P1,P2及P3三項計畫,並且P1計畫被T1,T2及T3三位教授共 同申請。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(M:N)的例子,並利用「比率關係」來繪出ER圖。 【提示】 1.客戶與零件 2.學生與課程 3.訂單與產品 【隨堂練習】 請您再舉三個(M:N)的例子,並利用「比率關係」來繪出ER圖。 【提示】 1.客戶與零件 2.學生與課程 3.訂單與產品 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(M:N)的例子,並繪出ER圖。 【解答】 1.每一個客戶可以「購買」多個零件,並且每一個零件可以被多位 客戶來預訂。 【隨堂練習】 請您再舉三個(M:N)的例子,並繪出ER圖。 【解答】 1.每一個客戶可以「購買」多個零件,並且每一個零件可以被多位 客戶來預訂。 2.每一位學生可以「選修」多門課程,並且每一個課程可以被多位 學生來選修。 3.每一張訂單可以「包含」多個產品,並且每一個產品可以被多張 訂單來訂。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
二、利用「雞爪圖基數性」來表示: 1.強制單基數:指一個實體參與其關係的案例數最少一個,最多也一個。 2. 強制多基數:指一個實體參與其關係的案例數最少一個,最多有多個。 3. 選擇單基數:指一個實體參與其關係的案例數最少0個,最多有一個。 4. 選擇多基數:指一個實體參與其關係的案例數最少0個,最多有多個。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
1.強制單基數 1.強制單基數:指一個實體參與其關係的案例數最少一個,最多也一個。 說明:A實體參與B實體關係的案例數最少一個,最多也一個(亦即洽 只有一個)。 【舉例】假設每一位老師僅能分配一間研究室 【實例】假設每一位老師僅能分配一間研究室,並且每一間研究室一定要被分 配給老師。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
2. 強制多基數 2. 強制多基數:指一個實體參與其關係的案例數最少一個,最多有多個。 說明:A實體參與B實體關係的案例數最少一個,最多有多個。 【舉例】假設每一位教授至少要指導一位研究生,也可以多位 【實例】假設每一位教授至少要指導一位研究生,也可以多位,但每一位研究 生只能被一位教授指導。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3. 選擇單基數 【舉例】假設每一位老師分配一位助教,但也有可能沒有 【實例】假設每一位老師分配一位助教,但也有可能沒有,而每一位助 3. 選擇單基數:指一個實體參與其關係的案例數最少0個,最多有一個。 說明:A實體參與B實體關係的案例數最少0個,最多有一個。 【舉例】假設每一位老師分配一位助教,但也有可能沒有 【實例】假設每一位老師分配一位助教,但也有可能沒有,而每一位助 教一定只能被分配給一位老師,不能多位。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
4. 選擇多基數 【舉例】假設每一位教授可以申請國科會多項計畫,但也可以不申請 4. 選擇多基數:指一個實體參與其關係的案例數最少0個,最多有多個。 說明:A實體參與B實體關係的案例數最少0個,最多有多個。 【舉例】假設每一位教授可以申請國科會多項計畫,但也可以不申請 【實例】假設每一位教授可以申請國科會多項計畫,但也可以不申請, 而每一件計畫至少要有一位老師來申請。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(1:M)的例子,並利用「雞爪圖基數性」來繪出ER圖。 【提示】 1.客戶與訂單 2.員工與眷屬 3.學生與考試 【隨堂練習】 請您再舉三個(1:M)的例子,並利用「雞爪圖基數性」來繪出ER圖。 【提示】 1.客戶與訂單 2.員工與眷屬 3.學生與考試 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(1:M)的例子,並繪出ER圖。 【解答】 1.假設每一個客戶至少要「下」一張以上訂單,但是每一張訂單僅能 被一位客戶來下。 【隨堂練習】 請您再舉三個(1:M)的例子,並繪出ER圖。 【解答】 1.假設每一個客戶至少要「下」一張以上訂單,但是每一張訂單僅能 被一位客戶來下。 2.假設每一個員工可以「扶養」多位眷屬,也可以沒有扶養。但是每 一個眷屬一定被一位員工來扶養。 3.假設每一位學生可以「參加」多次考試,不能缺考。並且每次考試 必須由學生親自來考。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(M:N)的例子,並利用「雞爪圖基數性」來繪出ER圖。 【提示】 1.客戶與零件 2.學生與課程 3.訂單與產品 【隨堂練習】 請您再舉三個(M:N)的例子,並利用「雞爪圖基數性」來繪出ER圖。 【提示】 1.客戶與零件 2.學生與課程 3.訂單與產品 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(M:N)的例子,並繪出ER圖。 【解答】 1.每一個客戶可以「預訂」多個零件,也可以不訂。並且每一個零件 【隨堂練習】 請您再舉三個(M:N)的例子,並繪出ER圖。 【解答】 1.每一個客戶可以「預訂」多個零件,也可以不訂。並且每一個零件 可以被多位客戶來預訂,也可以沒有被訂。 2.每一位學生可以「選修」至少要選一門以上課程,而每一個課程可 以被多位學生來選修,也可以沒有被選 3.每一張訂單可以「包含」至少有一項以上產品,並且每一個產品可 以被包含在多張訂單來訂,也可以沒有被訂。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
三、利用「基數限制條件」來表示: 【定義】是指在關聯型態更進一步標示「實體」允許參與關聯的範圍。 【分類】(1,N)、(0,N)、(1,1)和(0,1) 1. (1,1) :指一個實體參與其關係的案例數最少一個,最多也一個。 2. (1,N):指一個實體參與其關係的案例數最少一個,最多有多個。 3. (0,1):指一個實體參與其關係的案例數最少0個,最多有一個。 4. (0,N):指一個實體參與其關係的案例數最少0個,最多有多個。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
基數限制條件:(1,1) 1. (1,1) :指一個實體參與其關係的案例數最少一個,最多也一個。 說明:A實體參與B實體關係的案例數最少一個,最多也一個(亦即洽 只有一個)。 【舉例】假設每一位老師僅能分配一間研究室 【實例】假設每一位老師僅能分配一間研究室,並且每一間研究室一定要被分 配給老師。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
基數限制條件:(1,N) 2. (1,N):指一個實體參與其關係的案例數最少一個,最多有多個。 說明:A實體參與B實體關係的案例數最少一個,最多有多個。 【舉例】假設每一位教授至少要指導一位研究生,也可以多位 【實例】假設每一位教授至少要指導一位研究生,也可以多位,但每一位研究 生只能被一位教授指導。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
基數限制條件:(0,1) 【舉例】假設每一位老師分配一位助教,但也有可能沒有 【實例】假設每一位老師分配一位助教,但也有可能沒有,而每一位助 3. (0,1):指一個實體參與其關係的案例數最少0個,最多有一個。 說明:A實體參與B實體關係的案例數最少0個,最多有一個。 【舉例】假設每一位老師分配一位助教,但也有可能沒有 【實例】假設每一位老師分配一位助教,但也有可能沒有,而每一位助 教一定只能被分配給一位老師,不能多位。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
基數限制條件:(0,N) 【舉例】假設每一位教授可以申請國科會多項計畫,但也可以不申請 說明:A實體參與B實體關係的案例數最少0個,最多有多個。 【舉例】假設每一位教授可以申請國科會多項計畫,但也可以不申請 【實例】假設每一位教授可以申請國科會多項計畫,但也可以不申請, 而每一件計畫至少要有一位老師來申請。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(1:M)的例子,並利用「基數限制條件」來繪出ER圖。 【提示】 1.客戶與訂單 2.員工與眷屬 3.學生與考試 【隨堂練習】 請您再舉三個(1:M)的例子,並利用「基數限制條件」來繪出ER圖。 【提示】 1.客戶與訂單 2.員工與眷屬 3.學生與考試 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(1:M)的例子,並繪出ER圖。 【解答】 1.假設每一個客戶至少要「下」一張以上訂單,但是每一張訂單僅能 被一位客戶來下。 【隨堂練習】 請您再舉三個(1:M)的例子,並繪出ER圖。 【解答】 1.假設每一個客戶至少要「下」一張以上訂單,但是每一張訂單僅能 被一位客戶來下。 2.假設每一個員工可以「扶養」多位眷屬,也可以沒有扶養。但是每 一個眷屬一定被一位員工來扶養。 3.假設每一位學生可以「參加」多次考試,不能缺考。並且每次考試 必須由學生親自來考。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(M:N)的例子,並利用「基數限制條件」來繪出ER圖。 【提示】 1.客戶與零件 2.學生與課程 3.訂單與產品 【隨堂練習】 請您再舉三個(M:N)的例子,並利用「基數限制條件」來繪出ER圖。 【提示】 1.客戶與零件 2.學生與課程 3.訂單與產品 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
請您再舉三個(M:N)的例子,並繪出ER圖。 【解答】 1.每一個客戶可以「預訂」多個零件,也可以不訂。並且每一個零件 【隨堂練習】 請您再舉三個(M:N)的例子,並繪出ER圖。 【解答】 1.每一個客戶可以「預訂」多個零件,也可以不訂。並且每一個零件 可以被多位客戶來預訂,也可以沒有被訂。 2.每一位學生可以「選修」至少要選一門以上課程,而每一個課程可 以被多位學生來選修,也可以沒有被選 3.每一張訂單可以「包含」至少有一項以上產品,並且每一個產品可 以被包含在多張訂單來訂,也可以沒有被訂。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-4.2 關係的分支度(Degree) 【定義】 指參與關係的實體的個數,稱之為「分支度」(Degree)。 【分類】基本上,常見的分支度有三種: 1.一元關係:指參與關係的實體的個數只有一個,稱之。 2.二元關係:指參與關係的實體的個數有二個,稱之。 3.三元關係:指參與關係的實體的個數有三個,稱之。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
1.一元關係 【定義】是指參與關係的實體的個數只有一個,稱之。 【示意圖】 【舉例】「員工」中的主管,可以管理許多員工。如下圖所示: 圖: 1.一元關係 【定義】是指參與關係的實體的個數只有一個,稱之。 【示意圖】 【舉例】「員工」中的主管,可以管理許多員工。如下圖所示: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
2.二元關係 【定義】是指參與關係的實體的個數有二個,稱之。 【示意圖】 【舉例】「學生」選修「課程」的關係,其中,「學生」與「課程」為 2.二元關係 【定義】是指參與關係的實體的個數有二個,稱之。 【示意圖】 【舉例】「學生」選修「課程」的關係,其中,「學生」與「課程」為 兩個實體,而「選修」是兩個實體所參與的關係。如下圖所示: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【二元關係的3個重要的例子】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 【二元關係的3個重要的例子】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3.三元關係 【定義】是指參與關係的實體的個數有三個,稱之。 【示意圖】 【舉例】「客戶」、「員工」與「訂單」之間的關係為【訂購】。 3.三元關係 【定義】是指參與關係的實體的個數有三個,稱之。 【示意圖】 【舉例】「客戶」、「員工」與「訂單」之間的關係為【訂購】。 如下圖所示: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
假設每一位客戶可以訂購一張以上的訂單,也可以沒有下任何訂單, 但是,每一張訂單必須會有一位客戶的訂購資料。 【舉例】 假設每一位客戶可以訂購一張以上的訂單,也可以沒有下任何訂單, 但是,每一張訂單必須會有一位客戶的訂購資料。 並且每一張訂單必須要有一位員工負責客戶的訂購資料。 【解答】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-4.3 關係的屬性 【定義】每一個實體型態都擁有許多屬性。事實上,關係型態也可能 有一些屬性。 3-4.3 關係的屬性 【定義】每一個實體型態都擁有許多屬性。事實上,關係型態也可能 有一些屬性。 【適用時機】指兩個實體真正交易的時間點時,才會產生的屬性。 如下圖所示: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【實例1】 假設為了記錄「客戶」在下「訂單」時的數量,可以在「下」的關係型態裡加上一個屬性「數量」。 圖: 【實例1】 假設為了記錄「客戶」在下「訂單」時的數量,可以在「下」的關係型態裡加上一個屬性「數量」。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【注意】 如何將1:M的關係屬性轉移到資料表中呢? 【解答】 我們只需要將「關係屬性」轉移到多的那一方的實體型態中即可。 如下圖所示: 【注意】 如何將1:M的關係屬性轉移到資料表中呢? 【解答】 我們只需要將「關係屬性」轉移到多的那一方的實體型態中即可。 如下圖所示: 客戶(客戶代號,…) 訂單(訂單代號,…, 客戶代號,數量) 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 請再舉四個有關「關係屬性」的例子? 提示: 1.學生「選課」課程 2.學生「借還」圖書 3.司機「駕駛」車輛 【隨堂練習】 請再舉四個有關「關係屬性」的例子? 提示: 1.學生「選課」課程 2.學生「借還」圖書 3.司機「駕駛」車輛 4.員工「工作於」部門 (「工作時數」關係屬性) 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 請再舉三個有關「關係屬性」的例子? 【解答】<理論基本題> 1.學生「選課」課程成績 圖: 【隨堂練習】 請再舉三個有關「關係屬性」的例子? 【解答】<理論基本題> 1.學生「選課」課程成績 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【注意】 如何將M:N的關係屬性轉移到資料表中呢? 【解答】 我們只需要將「關係屬性」轉移到中介表格的實體型態中即可。 如下圖所示: 【注意】 如何將M:N的關係屬性轉移到資料表中呢? 【解答】 我們只需要將「關係屬性」轉移到中介表格的實體型態中即可。 如下圖所示: 學生(學號,…) 選修(學號,課號,成績) 課程(課號,…) 註:ER圖轉換成資料表的規則,詳細說明參考ch3-6. 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 請再舉三個有關「關係屬性」的例子? 【解答】<實務上> 1.學生「選課」課程成績,學年、學期 圖: 【隨堂練習】 請再舉三個有關「關係屬性」的例子? 【解答】<實務上> 1.學生「選課」課程成績,學年、學期 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 請再舉三個有關「關係屬性」的例子? 【解答】 2.學生「借還」圖書 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 【隨堂練習】 請再舉三個有關「關係屬性」的例子? 【解答】 2.學生「借還」圖書 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【隨堂練習】 請再舉三個有關「關係屬性」的例子? 【解答】 3.司機「駕駛」車輛 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 【隨堂練習】 請再舉三個有關「關係屬性」的例子? 【解答】 3.司機「駕駛」車輛 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-4.4 關係的參與限制 【定義】 是指「實體的實例」是全部或部分參與關係,它可以分為兩種。 【分類】 3-4.4 關係的參與限制 【定義】 是指「實體的實例」是全部或部分參與關係,它可以分為兩種。 【分類】 1.全部參與限制條件(Total Participation Constraints) 2.部分參與限制條件(Partial Participation Constraints) 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
1.全部參與限制條件 【定義】 是指實體全部集合中的實例都參與關聯性, 使用雙線來標示,也稱為「存在相依」。 【例如】 在「課程」與「考試」實體型態的一對多關聯中,課程實體只部分參與,因為課程可能沒有考試,考試實體是全部參與關聯,因為如果課程有考試,就一定存在考試實體,如下圖所示: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法 部分參與限制 全部參與限制
2.部分參與限制條件 【定義】 是指在實體全部集合中只有部分實例參與關聯性,使用單線標示。 【例如】 在「課程」與「考試」實體型態的一對多關聯中,課程實體只部分參與,因為課程可能沒有考試,考試實體是全部參與關聯,因為如果課程有考試,就一定存在考試實體,如下圖所示: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法 部分參與限制 全部參與限制
3-4.5 綱要(Schema) 【定義】 「綱要(Schema)」是資料庫中全體資料的邏輯結構和特徵的描述, 它僅僅涉及到型態的描述,不涉及到具體的值。 【例如】學生資料表(學號,姓名,系別) 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-4.6 實例(Instance) 【定義】 綱要的一個具體值稱為綱要的一個實例(Instance),同一個綱要可 以有很多實例。 【例如】 學生一:S0001,李碩安,資訊管理系 學生二:S0002,李碩崴,資訊工程系 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-5 情境轉換成E-R Model 在前面的章節中,我們已經學會E-R Model的意義與製作方法及使用時機之後,接下來,我們將帶領各位學生從實際的訪談過程(稱為情境),轉換成E-R Model。 首先我們需了解情境中的每一個實體。第二就是設定實體與實體之間的關係(Relationship)。第三就是決定實體的屬性(Attribute)。第四就是決定各個實體的鍵值(Key)。最後就是決定實體之間的基數性。 其說明如下所示: 1.以使用者觀點決定資料庫相關的實體(Entity) 2.設定實體與實體之間的關係(Relationship) 3.決定實體的屬性(Attribute) 4.決定各個實體的鍵值(Key) 5.決定實體之間的基數性(cardinality) 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【實例1】 情境一:假設每一位「老師」必須要開課一門以上的「課程」,並且每 一門「課程」只能有一位「老師」來開課,不能有多位老師開 【實例1】 情境一:假設每一位「老師」必須要開課一門以上的「課程」,並且每 一門「課程」只能有一位「老師」來開課,不能有多位老師開 相同的課程。 情境二:假設每一位「學生」必須要選修一門以上的「課程」,也可以 不選某一課程,而每一門「課程」可以被多位「學生」來選修。 請依照以上兩個情境來建立「學生」、「老師」及「課程」之選課的資料庫系統ER圖。 【解答】 1.分析 (1) 以使用者觀點決定資料庫相關的實體(Entity) 例如:學生、老師及課程三個實體。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
(2) 設定實體與實體之間的關係(Relationship) 例如:老師與課程之間有「開課」關係 學生與課程之間有「選修」關係。 (3) 決定實體的屬性(Attribute) 例如:學生的屬性有學號、姓名、班級 老師的屬性有老師代號、姓名、授課系別、學歷及專長 課程的屬性有課程編號、課程名稱及學分數。 (4) 決定各個實體的鍵值(Key) 例如:學生的主鍵有學號 老師的主鍵有老師代號 課程的主鍵有課程編號 (5) 決定實體之間的基數性(cardinality) 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
2.ER圖 老師 課程 學生 開課 選修 專長 老師代號 系別 姓名 課號 課名 學號 班級 學分數 學歷 成績 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【實例2】 假設下列為「雄雄桌球用品公司」的「客戶」訂購「產品」單,請依照訂購單的情況轉換成對應的ER圖。如下表所示: 【解答】 1.分析 【實例2】 假設下列為「雄雄桌球用品公司」的「客戶」訂購「產品」單,請依照訂購單的情況轉換成對應的ER圖。如下表所示: 【解答】 1.分析 (1) 以使用者觀點決定資料庫相關的實體(Entity) 例如:客戶、訂單及產品三個實體。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
(2) 設定實體與實體之間的關係(Relationship) 例如:客戶與訂單之間有「下」關係 訂單與產品之間有「包含」關係。 (3) 決定實體的屬性(Attribute) 例如:客戶的屬性有客戶代號、姓名及電話 產品的屬性有產品代號、品名、數量及單價 訂單的屬性有訂單代號、訂單日、出貨日及地址 (4) 決定各個實體的鍵值(Key) 例如:客戶的主鍵有客戶代號 產品的主鍵有產品代號 訂單的主鍵有訂單代號 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
(5) 決定實體之間的基數性(cardinality) 情境一:假設每一位客戶可以下多張訂單,也可以沒有訂單, 但一張訂單僅能被一位客戶來使用。 情境二:假設每一張訂單可以包含最少一張以上的產品, 而每一個產品可以被包含在多張訂單中,也可以沒有 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
2.ER圖 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
【課堂評量】<資料來源:高普考題> 【課堂評量】<資料來源:高普考題> 請利用「雞爪圖」依下列的述敘來畫出完整的實體-關係圖(ERD): 1.「學生實體」和「課程實體」之間有「選修」的關係。 2.學生實體有學號、姓名、生日、年齡、地址、電話及專長等屬性, 其中 學號為鍵屬性、年齡需要利用生日導出來, 而學生有兩個以上的專長。 3.課程實體有課程編號、課程名稱、學分數等屬性, 課程編號為鍵屬性。 【解答】???
【課堂評量】<資料來源:高普考題> 【課堂評量】<資料來源:高普考題> 請利用「雞爪圖」依下列的述敘來畫出完整的實體-關係圖(ERD): 1.「學生實體」和「課程實體」之間有「選修」的關係。 2.學生實體有學號、姓名、生日、年齡、地址、電話及專長等屬性, 其中 學號為鍵屬性、年齡需要利用生日導出來, 而學生有兩個以上的專長。 3.課程實體有課程編號、課程名稱、學分數等屬性, 課程編號為鍵屬性。 【解答】
【個案實例】 假如有一家「安安電腦書局」想將傳統手工作業改為電腦化作業。因此,「安安電腦書局」想委託「正修科大資管系」學生來開發此系統。所以,安安書局的老闆與我們正修科大資管系學生必須要進行一段訪談,在訪談之後,學生已經了解安安書局的作業流程與需求。 其需求描述如下所示: 1.安安書局會有客戶的資料,客戶資料包括:客戶代號、客戶姓名、電話及地址(城市與區域),其中客戶代號具有唯一性。 請將以上的需求(情境)轉換成對應的 ER圖 【解答】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
2.安安書局會有許多訂單,訂單資料包括:訂單編號、交貨日期、送貨日期、送貨方式、運費,其中訂單編號具有唯一性。請將以上的需求(情境)轉換成對應的ER圖 【解答】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3.安安書局會有員工的資料,員工資料包括:員工編號、員工姓名、生日、到職日期、電話、地址及主管代號,其中員工編號具有唯一性。 請將以上的需求(情境)轉換成對應的 ER圖 【解答】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
4.假設每一位客戶可以訂購一張以上的訂單,也可以沒有下任何訂單, 但是,每一張訂單必須會有一位客戶的訂購資料。 並且每一張訂單必須要有一位員工負責客戶的訂購資料。 請將以上的需求(情境)轉換成對應的ER圖 【解答】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
5.每一張訂單上可以包含一個以上的產品,訂單上包含以下的明細: 售價、產品數量及折扣。 6.每一個產品有可能被客戶來訂購,也可能沒有被客戶訂購。 產品的資料包括:產品代號、產品名稱、顏色、訂價、庫存量、己訂 購量數及安全存量,每一個產品都具有唯一的產品代號。 假設每一張訂單可以包含最少一張以上的產品,而每一個產品可以被包含在多張訂單中,也可以沒有 . 請將以上的需求(情境)轉換成對應的ER圖 【解答】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
7.每一家供應商可以供應各種產品,並且每一種產品可以由多家供應商 供應,且每一家供應商的資料包括:供應商代號、供應商名稱、電話 及地址,每一個供應商都具有唯一的供應商代號。 請將以上的需求(情境)轉換成對應的ER圖 【解答】 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
完整的ER圖如下所示: 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-6 將ER圖轉換成對應表格的法則 在上一節,已經提到情境轉換成ER圖,接下來如何將ER圖轉換成對應表格呢?。首先,每一個實體的屬性必須要轉為該表格的欄位,鍵值屬性則轉為主索引欄位(Primary Key)。 圖: 接下來,我們可以從圖1-1來說明「資料與資訊的關係」 當我們「輸入原始成績」之後,如何輸出一張成績單呢?那就必須要透過「程式」來進行處理, 而在資料結構中,程式=資料結構+演算法
3-6.1 轉換實體與屬性成為資料表與欄位 【規則】 1.每一個「實體」名稱轉換成「表格」名稱。 3-6.1 轉換實體與屬性成為資料表與欄位 【規則】 1.每一個「實體」名稱轉換成「表格」名稱。 2.每一個實體的「屬性」名稱轉換為該表格的「欄位」名稱。 3.每一個實體的「鍵值屬性」轉換為「主鍵欄位」。 4.如果鍵值屬性為複合屬性,則這複合屬性所有的欄位皆為主索引欄位。 【例如】請將下列的ER圖轉換成資料表。 【解答】 教師 客戶 (實體)的屬性有客戶代號、姓名、電話及地址。其中客戶代號為主索引欄位(Primary Key)。 教師編號 姓名 性別 薪水 系所代碼
3-6.2 建立資料表間的關聯 基本上,在關聯式資料庫中的資料表之間的關聯性有三種情況: 第一種情況:1對1(1:1)關係 3-6.2 建立資料表間的關聯 基本上,在關聯式資料庫中的資料表之間的關聯性有三種情況: 第一種情況:1對1(1:1)關係 第二種情況:1對多(1:M)關係 第三種情況:多對多(M:N)關係
第一種情況:1對1(1:1)關係 【定義】是指兩個實體之間的關係為一對一。 【ER圖】
將Entity2資料表的主鍵B嵌入到Entity1資料表中,當作Entity1資料表的 【作法】基本上有兩種不同的作法 1.第一種作法: 將Entity2資料表的主鍵B嵌入到Entity1資料表中,當作Entity1資料表的 外來鍵(F.K.)。因此,兩個資料表之間的關聯就是透過Entity1 資料表的外 來鍵(F.K.)參考對應Entity2 資料表的主鍵(P.K.) 外來鍵(F.K.) 對應 主鍵(P.K.) 嵌入
將Entity1資料表的主鍵A嵌入到Entity2資料表中,當作Entity2資料表的 【作法】基本上有兩種不同的作法 2.第二種作法: 將Entity1資料表的主鍵A嵌入到Entity2資料表中,當作Entity2資料表的 外來鍵(F.K.)。因此,兩個資料表之間的關聯就是透過Entity2 資料表的外 來鍵(F.K.)參考對應Entity1 資料表的主鍵(P.K.) 主鍵(P.K.) 對應 外來鍵(F.K.) 嵌入
【實例】 假設每一位「教師」只能分配一個「車位」,並且每一個「車位」僅能被分配給一位「教師」,其一對一的關係之ER圖,如下所示: 【實例】 假設每一位「教師」只能分配一個「車位」,並且每一個「車位」僅能被分配給一位「教師」,其一對一的關係之ER圖,如下所示: 請將以上的ER圖轉換成資料表。 【解答】 教師 分配 車位 教師編號 車位代碼 1 第一種情況 教師資料表(教師編號,…車位代碼) 車位資料表(車位代碼,…) 第二種情況 教師資料表(教師編號,…) 車位資料表(車位代碼,…,教師編號)
【Access 2010 上機實作--1:1關聯圖】 《資料庫名稱: ch3-6-2A.accdb 》 教師資料表(教師編號,…車位代碼) 第一種情況 教師資料表(教師編號,…車位代碼) 車位資料表(車位代碼,…) 第二種情況 教師資料表(教師編號,…) 車位資料表(車位代碼,…,教師編號)
第二種情況:1對多(1:M)關係 【定義】是指兩個實體之間的關係為一對多。 【ER圖】
當兩個實體的關係為一對多時,則實體為多那方在轉換成Table時,要再增加一個外來鍵(F.K.)。 【作法】 當兩個實體的關係為一對多時,則實體為多那方在轉換成Table時,要再增加一個外來鍵(F.K.)。 將Entity1資料表的主鍵A嵌入到Entity2資料表(多那方)中,當作Entity2資料表的外來鍵(F.K.)。因此,兩個資料表之間的關聯就是透過Entity2資料表的外來鍵(F.K.)參考對應Entity1 資料表的主鍵(P.K.) 主鍵(P.K.) 對應 外來鍵(F.K.) 嵌入
【實例】 假設每一位「教師」可以同時指導多位「學生」,但是,每一位「學生」僅能被一位「教師」指導,其一對多的關係之ER圖,如下所示: 【實例】 假設每一位「教師」可以同時指導多位「學生」,但是,每一位「學生」僅能被一位「教師」指導,其一對多的關係之ER圖,如下所示: 請將以上的ER圖轉換成資料表。 【解答】 教師 指導 學生 教師編號 學號 1 M 教師資料表(教師編號,…) 學生資料表(學號,…,教師編號)
【Access 2010 上機實作--1:M關聯圖】 教師資料表(教師編號,…) 學生資料表(學號,…,教師編號) 《資料庫名稱: ch3-6-2B.accdb 》 教師資料表(教師編號,…) 學生資料表(學號,…,教師編號)
第三種情況:多對多(M:N)關係 【定義】是指兩個實體之間的關係為多對多。 【ER圖】
而R資料表中B欄位代表外來鍵(F.K.)與Entity2資料表產生關聯。 【作法】 當兩個實體的關係為多對多時。我們將增加一個R資料表,而R資料表的主鍵欄位是由Entity1資料表的主鍵A與Entity2資料表的主鍵B所組成。在R資料表中A欄位代表外來鍵(F.K.)與Entity1資料表產生關聯, 而R資料表中B欄位代表外來鍵(F.K.)與Entity2資料表產生關聯。 對應
【實例】 假設每一位「學生」可以同時選修多門「課程」,並且,每一門「課程」也可以被多位「學生」來選課,其多對多的關係之ER圖,如下所示: 【實例】 假設每一位「學生」可以同時選修多門「課程」,並且,每一門「課程」也可以被多位「學生」來選課,其多對多的關係之ER圖,如下所示: 請將以上的ER圖轉換成資料表。 【解答】 學生 選修 課程 學號 課號 M N 學生資料表(學號,…) 選課資料表(學號,課號…) 課程資料表(課號,…)
【Access 2010上機實作—M:N關聯圖】 《資料庫名稱: ch3-6-2C.accdb 》
[課堂評量1] 請將下列的ER圖轉換成資料表。
[課堂評量1] 請將下列的ER圖轉換成資料表。 【解答】 A(a1,a2) B(b1,b2) C(c1,c2,a1) R1(a1,b1)
[課堂評量2] 請將下列的ER圖轉換成資料表。
[課堂評量2] 請將下列的ER圖轉換成資料表。 【解答】 A(a1,a2) B(b1,b2) C(c1,c2,a1,r21,r22) [課堂評量2] 請將下列的ER圖轉換成資料表。 【解答】 A(a1,a2) B(b1,b2) C(c1,c2,a1,r21,r22) R1(a1,b1,r11,r12)
[課堂評量3] 請將下列的ER圖轉換成資料表。 老師 課程 學生 開課 選修 專長 老師代號 系別 姓名 課號 課名 學號 班級 學分數 [課堂評量3] 請將下列的ER圖轉換成資料表。 老師 課程 學生 開課 選修 專長 老師代號 系別 姓名 課號 課名 學號 班級 學分數 學歷
【解答】 老師資料表(老師代號, 姓名, 專長, 系別, 學歷) 課程資料表(課號, 課名, 學分數, 老師代號 ) 選課資料表(學號, 課號) 學生資料表(學號,姓名,班級) 老師 課程 學生 開課 選修 專長 老師代號 系別 姓名 課號 課名 學號 班級 學分數 學歷
[課堂評量4] 請說明下列ER圖的意義
【解答】 (1)強實體:①員工②計劃③廠商④貨品 弱實體:①親屬 (2)關係: ①「員工」對「親屬」是一對多的關係(指員工可以有許多親屬,每個眷屬都屬於單一 員工,但並不是每個員工都有眷屬)。 ②「員工」對「計劃」是多對多的關係(即員工會參與許多計畫,計劃會有許多員工參 與),及(員工會擔任許多計劃的計劃經理,且每一個計劃都會有一個員工擔任其計 劃經理) ③各「計劃」會由各「廠商」供應所需「貨品」,其數量必須記錄下來。
【解答】 (3) 實體屬性 ①員工實體:有編號、姓名及年薪。 ②計劃實體:有名稱。 ③廠商實體:有編號及名稱。 ④貨品實體:有編號及名稱。 ⑤弱實體---親屬:有姓名,年齡及職業。
【解答】 (4) 決定主鍵 ①員工實體:以「編號」為「主鍵」。 ②計劃實體:以「名稱」為「主鍵」。 ③廠商實體:以「編號」為「主鍵」。 ④貨品實體:以「編號」為「主鍵」。 ⑤弱實體---親屬:以「姓名」為「外來鍵」。
【Access上機實作1】 題目:建立「客戶訂單系統」七個資料表的關聯圖 先備技能:1.參考附錄一 Access 2010的基本操作 2.建立關聯式資料庫 實作步驟: 步驟一:開啟資料庫 開啟附書光碟中「 01_Access 2010(範例資料庫)\ch3\素材檔\ch3-6-2E.accdb 」 步驟二: 資料庫工具/資料庫關聯圖/ 「客戶資料表」的「客戶代號」主鍵、 與「員工資料表」的「員工編號」主鍵各別拖曵到「訂單資料表」的「客戶代號」與「員工編號」,亦即各個資料表的「外鍵」參考另一個資料表的「主鍵」,以此類堆。完成之後的關聯圖如下所示: 您可以參考「完成檔\ ch3-6-2E.accdb 」
【Access 2010 上機實作】 《資料庫名稱: ch3-6-2E.accdb 》 請建立以上七個資料表,並建置資料庫的關聯圖。
3-6.3 弱實體之ER圖轉換成資料表 在前面兩個單元(ch3-6.1及ch3-6.2)已經介紹基本ER圖轉換成對應表格了,但是,對於比較特殊的ER圖欲轉換成資料表時,其規則必須要補充。例如:弱實體之ER圖如何轉換成資料表呢?或多值屬性之ER圖又如何轉換呢?本單元先介紹如何將「弱實體之ER圖轉換成資料表」。 【作法】 主索引欄位是由弱實體的弱鍵值屬性(如:親屬姓名)及其所依靠強實體的主索引欄位(如:教師編號)所組成。
在下圖中,親屬的弱鍵值屬性為姓名,是使用虛線當底部,它可以和擁有它的實體鍵值屬性合組成主索引欄位。對於弱實體親屬,我們將對於擁有它的教師實體的鍵值屬性教師編號,嵌入於弱實體所形成的親屬資料表,並和親屬的弱鍵值屬性組合成主索引欄位。而親屬資料表的教師編號為外來鍵,它必須參考到教師資料表中的教師編號欄位。
【課堂評量】 請再舉例一弱實體之ER圖轉換成資料表的例子。 【解答】 「員工」與「親屬」之【輔養】關係。
【Access上機實作2】 題目:弱實體之ER圖轉換成資料表 先備技能:1.參考附錄一 Access 2010的基本操作 2.建立關聯式資料庫 實作步驟: 步驟一:開啟資料庫 開啟附書光碟中「 01_Access 2010(範例資料庫)\ch3\素材檔\ch3-6-3.accdb 」 步驟二:將「親屬資料表」的「教師編號與姓名」設定為複合主鍵。 步驟三: 資料庫工具/資料庫關聯圖/ 「親屬資料表」的「教師編號」外鍵拖曵到「教師資料表」的「教師編號」主鍵 步驟四:在「編輯關聯」對話方塊中,說明「關聯類型:一對多」,其中一的那方代表「主鍵」 ,而多的那方代表「外鍵」 。 步驟五:一般而言,我們都會勾選「強迫參考完整性」及「串聯更新與串聯刪除」關聯欄位。 以確保資料在異動時的完整性。 您可以參考「完成檔\ ch3-6-3.accdb 」
【Access 2010上機實作】 《資料庫名稱: ch3-6-3.accdb 》
3-6.4 多值屬性之ER圖轉換成資料表 【作法】 1.建立一個新資料表(內含1個外鍵(F.K.)+多值屬性欄位值,形成複合主鍵) 2.再利用新資料表的外鍵參考原資料表的主鍵。 【圖解說明】 假設Entity1實體的多值屬性為M,我們建立一個Entity2資料表並將多值的屬性M放入Entity2資料表,並將Entity1實體的鍵值屬性嵌入到Entity2資料表來當作外鍵,使得Entity2資料表的外鍵參考Entity1資料表的主鍵來產生關聯,並且此欄位和Entity2資料表的M屬性合組成Entity2資料表的主索引欄位。
【隨堂練習】 假設學生的電話有二支或二支以上。 轉換 學生資料表(學號,姓名) 學生電話表(學號,電話)
【Access上機實作3】 題目:多值屬性之ER圖轉換成資料表 先備技能:1.參考附錄一 Access 2010的基本操作 2.建立關聯式資料庫 實作步驟: 步驟一:開啟資料庫 開啟附書光碟中「 01_Access 2010(範例資料庫)\ch3\素材檔\ch3-6-4B.accdb 」 步驟二:您必須要再增加一個資料表「學生電話表」<已建立>。 注意:該資料表的「學號」不能設為主鍵。 步驟三: 資料庫工具/資料庫關聯圖/ 「學生電話表」的「學號」外鍵拖曵到「學生資料表」的「學號」主鍵。此外,在「編輯關聯」對話方塊中,說明「關聯類型:一對多」,其中一的那方代表「主鍵」,而多的那方代表「外鍵」 。 您可以參考「完成檔\ ch3-6-4B.accdb 」
【Access 2010上機實作】 《資料庫名稱: ch3-6-4B.accdb 》 學生資料表(學號,姓名) 學生電話表(學號,電話)
3-6.5 大於2元關係之ER圖轉換成資料表 【作法】 大部份,每一個關係會存在兩個實體,但是,當關係的實體大於2時,則形成所謂的多元(大於2)關係。因此,我們就必須要再建立一個新的弱資料表R包含了所有關係及實體的鍵值屬性當作是R的外鍵欄位,在R中所有外鍵欄位的組合就是R資料表的主鍵欄位,並且將R關係屬性Z加入到R資料表中。如下圖所示。 【圖解說明】 E1 M R N E2 1 B A E3 C Z 亦即: 一個新資料表R(包含三個實體的鍵值屬性當作是R的外鍵欄位+R關係屬性Z)。
【實例】 請將以下三元關係的ER圖,轉換成資料表。 學生 M 選修 N 課程 課號 1 學號 系所助理 助理編號 成績 一個新資料表R(包含三個實體的鍵值屬性當作是R的外鍵欄位+R關係屬性Z)。 【解答】
【Access上機實作4】 題目:大於2元關係之ER圖轉換成資料表 先備技能:1.參考附錄一 Access 2010的基本操作 2.建立關聯式資料庫 實作步驟: 步驟一:開啟資料庫 開啟附書光碟中「 01_Access 2010(範例資料庫)\ch3\素材檔\ch3-6-5.accdb 」 步驟二: 資料庫工具/資料庫關聯圖/ 「學生資料表」的「學號」主鍵、 與「課程資料表」的「課號」主鍵各別拖曵到「選課資料表」的學號與課號之外,還必須將「系所助理資料表」的「助理編號」主鍵拖曵到「選課資料表」的「助理編號」外鍵。此外,在「編輯關聯」對話方塊中,說明「關聯類型:一對多」,其中一的那方代表「主鍵」,而多的那方代表「外鍵」 。 您可以參考「完成檔\ ch3-6-5.accdb 」
【Access 2010上機實作】 《資料庫名稱: ch3-6-5.accdb 》