[圖資]951系統分析期末考第八章習題參考答案
課本的解答寫得跟課本本身一樣令人吐血,所以我重寫了很多部份,讓答案本身更好懂。希望可以幫得上同學的忙。
Ch.8
- 區別邏輯和實體模型。對於架構業務需求,為什麼邏輯模型比較好?寫出三個理由?
- 邏輯模型為企業需求提供說明文件以顯示系統是什麼或執行什麼,它們是與實作(實際運作的方式)無關的;也就是說,它們描述系統與任何的技術實作無關
- 實體模型不只顯示系統是什麼或做什麼,還顯示系統如何實地運作與實作的技術。它們和實作有關,因為他們反映出選擇使用哪種技術來實作,以及這個選擇所遭遇到的限制。
- 邏輯模型比實體模型還好的原因在於
- 邏輯模型不會受限於實作系統的方法
- 因為我們有可能太注重在技術細節反而會忽略功能上的要求,邏輯模型可以減少功能要求被遺漏掉的風險。
- 邏輯模型可以作為不需要技術化、或是低技術層面,僅需邏輯理解的語言,來與最終使用者來交談。
- 什麼是資料模塑?他最後建立的資料模型稱為什麼?
- 資料模塑是一種技術,用來組織系統、和以文件說明來系統資料。資料模塑有時稱為資料庫模塑,因為資料模型通常最後會實作成為資料庫。
- 資料模塑最後建立的資料模型稱為實體關係圖(ERD—entity-relationship diagram),它由資料所描述的實體和關係的觀點來描述資料。
- 什麼是實體?實體的五個類型是什麼?
- 實體是關於業務必須儲存的資料之一些事項
- 類型為:人、地、事件、物、概
- 區別實體和實體範例。為什麼我們不嘗試建立實體範例模型。
- 所謂實體,請看上一題。實體範例是指實體當中的一個代表性的例子,可以代表實體中每一項資料的情況。
例如「大學」實體中可能有許多資料,例如包含了「輔仁大學」、「台灣大學」等等,但為了說明方便,而使用「輔仁大學」作為實體範例。 - 為什麼我們是建立實體模型而不是實體範例模型呢?實體範例僅能代表實體中的各項資料,但是在建立模型時,我們選擇使用實體這個集合與概念,在說明與邏輯分析上會較為方便
- 所謂實體,請看上一題。實體範例是指實體當中的一個代表性的例子,可以代表實體中每一項資料的情況。
- 什麼是屬性?什麼是復合屬性?各舉出一個例子。
- 對於特定的實體範例,我們想要儲存的有關資料稱為屬性,屬性是實體描述性的特性或特徵。
例如對於「員工」實體來說,「身分證字號」、「薪資」等特徵就是他的屬性。 - 有些屬性因為具有共通點,因此有時候會將多種屬性結合成一個屬性的資料。
學生的屬性「名字」就是一個複合屬性,因為他個別是由「姓」和「名」所組成的
- 對於特定的實體範例,我們想要儲存的有關資料稱為屬性,屬性是實體描述性的特性或特徵。
- 就屬性而言,值域的三個觀點是什麼?
- 資料型態:定義哪種資料型態可以儲存在這個屬性中。
- 值域:定義該屬性可接受的合理值。
- 預設值:如果使用者沒有設定資料的時候,所使用的預設資料。
- 以月份來說,資料型態是數字,值域是1到12,預設值可以是1或12之間任何的數字。
- 區別替代鍵、主鍵和候選鍵。他們每一個都可能是結合鍵嗎?
- 候選鍵是實體範例中,可能成為主鍵的屬性。候選鍵可能可以是單一屬性或是結合鍵
- 主鍵的特色是用來識別各個實體範例之用,主鍵資料不會重複、每個實體範例的主鍵皆不同以作區分
- 沒有被挑選為主鍵的任一候選鍵稱為替代鍵,或稱為次要鍵
- 三種鍵都有可能成為結合鍵
- 結合鍵是為了識別各個實體範例,而結合了數個屬性所組成的。
- 例如對於圖書館館藏來說,單有「分類號」可能不夠,因為同個分類中還會有許多書、會難以識別,因此加上「作者號」、「複本號」等等屬性,結合而成「索書號」這個結合鍵。
- 什麼是分組條件?為什麼他很重要?
- 分組條件是屬性的一種,他的值域僅在一定範圍中,用各個不同的值來將實體範例分組。
例如用「性別」屬性作為分組條件,值可能有「男」或「女」;用「月份」作為分組條件,值可能有「1」到「12」。 - 分組條件在統計資料上特別有用,因為可以明確地區分出不同組別之間的關係。
可以用上面的例子來想想看分出「男」或「女」對於未來的資料整理有什麼幫助。
- 分組條件是屬性的一種,他的值域僅在一定範圍中,用各個不同的值來將實體範例分組。
- 什麼是關係?為什麼關係對確認和描述實體是重要的?什麼是非特定關係?
- 實體與實體之間,會因為有些工作要作(就是業務)啦,而有所關聯。這種關聯叫做關係
- 關係可以確認與描述實體與實體之間的邏輯關係,例如「學生」與「系所」之間就有「就讀」的關係。
- 非特定關係(或稱多對多關係)是指在這個關係中,一個實體的每一個實體範例而言,會與另一個實體的多個實體範例有所關聯(有點饒舌)。反過來說,特定關係的意思就是對一個實體中的每一個實體範例而言,他只會與另一個實體中的其中一個實體範例有關係。
- 說明基數和元數之區別。
- 基數的意思是說
- 在某個關係中,實體A有多少個實體範例,可以與實體B的單一個實體範例有所關聯。而這個多少個只看最大最小,只有0(沒有關聯)、1(特定關聯)、n(多數關聯)三種可能。
- 關係是雙向的,上面是講實體A關聯到實體B,也有實體B關聯到實體A的可能,因此兩邊都得把基數定義清楚
- 因為懶得解釋了,所以我貼個大家都很熟悉的圖吧,括弧裡面的就是基數:
- 元數就是幾元關係,就是有多少個實體與這個關係有所牽扯
- 基數的意思是說
- 什麼是遞迴關係?舉出例子。
- 關係存在於同一個實體當中的不同實體範例,稱為遞迴關係。
- 例如「人」實體而言,有個屬性叫做「配偶」。A的配偶屬性與B有所關聯,表示A的配偶為B。而A跟B都是在「人」這個實體裡面,這樣子的關係稱為遞迴關係。
- 什麼是關聯實體?它在三元關係中扮演什麼角色?在消除非特定關係中它扮演什麼角色?
- 關聯實體的特色,在於它是由多個實體的主鍵來組成它的主鍵。反過來說,這種主鍵也是一種結合鍵,個別由多個實體的主鍵來組成。
- 由上可知,在三元關係(也就是與三個實體有所關聯)中,關聯實體因為是拿取每一個實體的主鍵來用,所以是「連結」角色
- 所謂非特定關係,是指實體範例與實體範例中沒有明確地特定關聯,請回頭看看9.3。為了讓實體與實體之間能夠有特定關聯,首先就要把能夠識別各個實體範例的主鍵取出來,並將每個實體的主鍵結合在一起,便能達到消除非特定關係的目的。這就是關聯實體在消除非特定關係中扮演的「連結」角色
- 確定性關係和非確定性關係有何不同?
- 兩者的不同在於子實體當中有無母實體的主鍵
- 有母實體主鍵的是確定性關係;沒有的是非確定關係,非確定關係的實體擁有獨立的主鍵,與母實體無關
- 因為主鍵可以識別實體範例,區別出各個實體範例。所以主鍵的繼承、分享可以用來確定實體與實體之間的關係
- 什麼是「弱實體」?
任何確定性關係中的子實體通常稱為弱實體(weak entity),因為它的識別取決於母實體的存在。 - 外鍵在實作關係時扮演什麼角色?
- 把從母實體的主鍵,借過來成為子實體的一個屬性,該屬性稱為外鍵。
- 反過來說,子實體的外鍵,可以對照到母實體的主鍵,也就是母實體的特定實體範例
- 說明超型態和次型態之區別?
- 請用物件導向的概念來看,也就是繼承的概念。
- 超型態跟次型態是種相對的概念
- 超型態是指較廣泛層面的實體、次型態是指較特定層面的實體。這是兩者個區別。
- 超型態所具備的屬性,可以被次型態繼承利用,並加入次型態特定的屬性及變化
- 舉例來說,「人類」與「學生」、「教職員」是超型態與次型態的關係。在「人類」所擁有的「名字」、「性別」等屬性,皆可被「學生」、「教職員」繼承使用
- 使用超型態與次型態的概念,可強化實體與實體之間的邏輯關聯,並減少重覆設定屬性的工作,以達到具備共通性的方法。這種方法稱之為一般化(generalization)。
- 簡單描述可以解決非特定關係的三種可能方法。
(這推論太過複雜了,就背吧)- 在實體間插入多個關聯實體,可解決的理由請看12.3
- 將非特定關係以關聯實體與兩個一對多關係取代
- 將關係分割,例如分割成兩個一對多關係
- 什麼是一般化?它的價值是什麼?
- 一般化是一種技術。他找出了數個實體(次實體)中的共同屬性,並且合成這群實體當中的實體型態(超實體)。
- 一般化的價值在於調查和發現實體共通性
- 說明企業資料模型和應用系統資料模型之區別。
- 企業資料模型:通常只定義最基本的實體,沒有鍵值或屬性的定義。可以包含或不包含關係。假如關係被包含在內,他們許多將是非特定的。通常儲存在公司貯藏庫
- 應用系統資料模型:個別資訊系統的資料模型
- 企業資料模型較不明確、不特定,是用來說明的;應用系統資料模型則是實作時使用的,需要明確的定義
- 解釋用來建構應用系統資料模型的工作。
- 找尋實體:列出在系統中可以或可能需要用資料描述的基本實體
- 建立環境關聯資料模型(Context Data Model):依此建立專案範疇。如果之前有做的話,那麼需要修正後再使用
- 繪製以鍵為基礎的資料模型(Key-based Data Model):這模型將消除非特定關係,加入關連實體,並加入主鍵和替代鍵。也將包括精確的基數和任何的一般化階層架構。
- 建構完全屬性的資料模型(Fully Attributed Data Model):加入所有其他的敘述性屬性和分組條件。每一個屬性以資料型態、值域和預設值定義並存入貯藏庫。(貯藏庫中的模型有時候稱為完全描述的資料模型。)
- 正規化(Normalized Model):以一種過程來分析所完成的資料模型之適用性和彈性。最後稱為正規化的資料模型(Normalized Data Model)。
- 說明資料模塑和資料分析之區別。
- 資料模塑:是一種程序,他將原本只是概念的專案或專案的階段,轉換成可閱讀的模型
- 資料分析:是一種程序,他分析資料模型,將它重新設計成更為簡單、沒有重複、具備彈性而且可以調整的資料庫。常用的分析技術叫做正規化
- 舉出好的資料模型的三種特性。
- 特定的、不複雜的:描述任何特定實體的資料屬性應該只描述這個實體。
- 沒有重複的:這表示每個資料屬性除了外鍵,描述最多一個實體
- 有彈性可調整的:在缺乏這種標準的情況下,盡可能的讓資料模型是應用獨立的,以促使資料庫結構可以被擴大或修改而不影響現行的程式。
- 列出並簡單地描述正規化的三個步驟。
(這網頁的敘述非常簡單易懂,下面只列出參考答案)- 第一正規式:一個屬性中只擁有一個值
- 第二正規式:非主鍵資料對主鍵資料有完全依賴關係
- 第三正規式:非主鍵之欄位沒有完全的依賴關係
- 什麼是衍生屬性?舉例說明。
- 衍生屬性:是其值可以由其他屬性的值計算而得,或由其他屬性的值經邏輯推論而得。
- 例如:有了生日的屬性可以推算出衍生屬性:年齡。
- 什麼是遞移依賴性?在哪一個正規化期間解決遞移依賴性?舉出遞移依賴性的例子。
- 當非鍵屬性依賴於另一個非鍵屬性時,就存在遞移依賴性。
- 只有在第三正規式中那些沒有結合鍵的實體上進行。
- 例子:
Stu_no(學號) City ZIP 75312 台中市 400 75524 高雄市 800 75302 高雄縣 830 可是因為ZIP是依賴於City,而不是完全依賴於Stu_no。如果要新增一個City及其ZIP時,變成非得增加一個學生才能操作。或著是資料中沒有住在台中City的學生,那麼台中市的City跟ZIP資料就會有跟著消失的危險
因此改成《C1》 Stu_no City 75312 台中市 75524 高雄市 75302 高雄縣 《C2》 City ZIP 台中市 400 高雄市 800 高雄縣 830 可解決下列問題
- 無法單獨新增一筆縣市資料
- 無法單獨刪除一筆學生資料
- 解釋以檢查來單化模型的意義。
- 簡單來說,就是把抽象的資料庫中各個資料表畫成模型,並依照正規化的步驟一一檢查。單化的意思是簡單化、讓資料表變得更不複雜
- 因為設計大型資料庫時,每個人可能只作單一的資料表,因此有時會忽略考量自己與他人負責之資料表之間的關連。
到了整合的時候,便需要將繪成模型來輔助檢查的步驟
- CRUD代表哪些動詞的首字母?
- C=建立
- R=讀取
- U=更新或修改
- D=刪除、徹銷
- 資料對地點CRUD表如何補充說明資料模型?
- 所謂的「資料對地點CRUD表(data-to-location-CRUD matrix)」是指將該資料庫與該系統結合時,系統的哪個部份會與資料表相關、以及該部份可以控制資料表的權限說明。CRUD四項權限請看上一題。
- 本來「訂單」只是一個單純的資料表,但是在系統當中,他可能會與「客戶訂購」、「商人檢查」等系統相關的功能作結合。而該表可以說明「客戶訂購」對於「訂單」資料表的權限。