系統分析與設計 第九章 資料設計
目標 解釋檔案式系統及它與資料庫管理系統的異同。 解釋資料設計的術語,包括實體、欄位、共同欄位、記錄、檔案、資料表及鍵欄位。 描述資料關係、繪製實體關係圖、定義基數,以及使用基數標記。 解釋正規化的概念。 解釋代碼的重要性並說明各種編碼機制。 解釋資料倉儲和資料探勘。 區分邏輯與實體儲存和記錄。 解釋資料控制方法。 第九章 資料設計 第345頁
簡介 一開始將帶領你了解資料設計概念和術語,然後討論檔案式系統和資料庫系統,包括 Web 式資料庫。 最後將討論資料的儲存和存取,包括一些策略性工具,例如資料倉儲與資料探勘、實體設計議題、邏輯與實體記錄、資料儲存格式和資料控制。 第九章 資料設計 第345頁
資料設計概念(1/7) 資料結構(data structure) 是資訊系統內的組織和儲存資料的架構。 檔案(file) 或資料表(table):每個檔案或資料表都存放著與資訊系統進行互動的人、地、物或事件等資料。 檔案式系統 (file-oriented system):它是將資料以單一或多個檔案進行處存與管理。 資料庫管理系統(database management ystem, DBMS):它是由彼此連結的資料表所組成的一個整體的資料結構。 第九章 資料設計 第347頁
資料設計概念(2/7) 檔案式處理綜述 在某些特定情況下可以很有效率並節省成本。 潛在的問題 資料重複(data redundancy) 資料完整性(data integrity) 資料結構僵化 第九章 資料設計 第349-350頁
資料設計概念(3/7) 圖9-5 一家信用卡公司可能使用一個檔案處理系統將每日交易從「交易」檔案轉移到「顧客」檔案。 圖9-5 一家信用卡公司可能使用一個檔案處理系統將每日交易從「交易」檔案轉移到「顧客」檔案。 第九章 資料設計 第350頁
資料設計概念(4/7) 檔案式處理綜述 數種類型的檔案 主檔(master file) 表檔(table file) 交易檔(transaction file) 工作檔(work file) 安全檔(security file) 歷史記錄檔(history file) 第九章 資料設計 第350頁
資料設計概念(5/7) 從檔案式系統演進至資料庫系統(1/3) 檔案式處理環境中,資料檔是為單一商業系統所設計的;而資料庫環境中,數個系統圍繞著單一資料庫建造。 資料庫管理系統 (database management system, DBMS) 是讓使用者「可以新增、更新、管理、存取、及分析資料內容」的工具、功能、及介面的組合。 DBMS的主要優點是它提供即時、互動及彈性的資料存取。 第九章 資料設計 第351頁
資料設計概念(6/7) 圖9-6 此例中的銷售資料庫可支援四個不同的商業系統。 第九章 資料設計 第351頁
資料設計概念(7/7) 從檔案系統演進至資料庫系統(3/3) DBMS的具體優點如下: 可延展性(scalability) 更佳的支援主從式系統 經濟規模(economy of scale) 彈性的資料分享 有效支援企業級應用系統;是由資料庫管理師 (database administrator, DBA)負責管理。 更強的標準 冗餘控制 更佳的安全性 增加程式設計師的產能 資料獨立性 第九章 資料設計 第351-352頁
DBMS 組成元件(1/3) 給使用者、資料庫管理師、相關系統的介面: 查詢語言(query language) 實例查詢 (query by example, QBE) 結構化查詢語言(Structured Query Language, SQL) 資料庫管理師 DBA 負責 DBMS 的管理與支援。 相關資訊系統 DBMS 可支援許多提供輸入給 DBMS 或是從 DBMS 取得特定資料的相關資訊系統。 在 DBMS 與相關系統之間的雙向溝通中,並不需要使用者的介入。 第九章 資料設計 第353-354頁
DBMS 組成元件(2/3) 圖9-8 除了提供使用者、資料庫管理師、相關系統使用的介面外,DBMS 也有資料操作語言、綱目和子綱目,以及實體資料儲存空間。 第九章 資料設計 第353頁
DBMS 組成元件(3/3) 資料操作語言 綱目 實體資料儲存處 資料操作語言 (data manipulation language, DML) 控制資料庫的操作,包括儲存、檢索、更新、或刪除資料。 綱目 資料庫的完整定義,包含所有欄位、資料表及關聯性的描述,稱之為綱目(schema)。 我們也可以定義一個或多個子綱目(subschema)。 實體資料儲存處 資料字典會被轉換成實體資料儲存處,它也包含了綱目及子綱目。 實體儲存處可以採集中式,也可以分散到數個地點。 ODBC―開放式資料庫連結(open database connectivity)。 JDBC―JAVA 資料庫連結(JAVA database connectivity)。 第九章 資料設計 第354-355頁
Web 式資料庫設計(1/3) Web 式資料庫設計特性 圖9-9 Web 式資料庫設計的特徵包含全球存取、容易使用、跨平台、成本效益、安全問題和適應性問題。在Web 式設計下,網際網路做為資料庫管理系統的前台或介面。存取資料庫僅需要Web 瀏覽器和網際網路連線。 第九章 資料設計 第356頁
Web 式資料庫設計(2/3) 網際網路術語 Web 瀏覽器 (Web browser) 網頁 (Web page) 超文字標記語言 (Hypertext Markup Language, HTML) 標記 (tag) Web 伺服器 (Web server) 網站 (Web site) 企業內部網路 (intranet) 企業外部網路 (extranet) 協定(protocol) 以Web為主 (Web-centric) 伺服器 (servers) 用戶端 (clients) 第九章 資料設計 第356頁
Web 式資料庫設計(3/3) 將資料庫連上 Web 資料安全 資料庫必須連上網際網路或企業內部網路。 中介軟體 (middleware) Adobe ColdFusion 資料安全 設計良好的系統必須有三層的安全防護:資料庫本身的安全、Web 伺服器的安全,以及連接系統元件的通訊連結。 第九章 資料設計 第357-358頁
資料設計術語(1/5) 定義 實體(entity):是蒐集和維護資料的對象。 資料表(data table)或檔案(file):資料必需被整理與儲存到資料表(或檔案)內。 欄位(field) :又稱屬性,是資料實體的一個特性。而資料實體(資料表)由多個欄位所構成。 共同欄位(common field):是指出現在一個以上實體的欄位(屬性),實體間的關係可透過共同欄位連結。 記錄(record)又稱值組(tuple),是一組相關欄位的組合,用以描述實體的一筆實例。 第九章 資料設計 第359頁
資料設計術語(2/5) 圖9-12 共同欄位、主鍵、候選鍵、外鍵和次級鍵的範例。 第九章 資料設計 第361頁
資料設計術語(3/5) 鍵欄位(key fields) 主鍵(primary key) :是一個欄位或一組欄位,它可以唯一且簡潔地識別出實體中的某一特定實例。 候選鍵(candidate key) :我們需選取某一欄位(或一組欄位)做為主鍵,其他可做為主鍵的欄位(具內涵值唯一性),而未被選取者,即稱為候選鍵。 非鍵欄位(nonkey field):其他非主鍵或候選鍵的欄位即是非鍵欄位。 外鍵(foreign key):是某一資料表的非鍵欄位,同時也是另一資料表的主鍵,用以建立兩張資料表的關係。 次級鍵(secondary key):是一個欄位或一組欄位,可用來存取或檢索記錄,次級鍵的值並非唯一。 第九章 資料設計 第359-360.362頁
資料設計術語(4/5) 參照完整性 有效性的檢查可以避免資料輸入的錯誤。 在關聯式資料庫中,參照完整性意指一個外鍵的值必須是其所對應的另一張資料表主鍵的值,否則無法輸入。 孤兒(orphan)記錄:若無參照完整性檢查,即有可能出現在某一資料表外鍵中存在的記錄卻在另一資料表主鍵中不存在的錯誤,即稱為孤兒記錄。 第九章 資料設計 第362頁
資料設計術語(5/5) 圖9-13 Microsoft Access 可讓使用者指定加強關聯式資料庫設計的參照完整性規則。 第九章 資料設計 第363頁
實體關係圖(1/10) 實體(entity) 實體關係圖(entity-relationship diagram, ERD) 是我們要蒐集和維護資料的對象,亦即是人、地、物、或事件。例如顧客、銷售地區、產品、或訂單等。 實體關係圖(entity-relationship diagram, ERD) 是一種顯示系統實體間邏輯關係的模型。ERD提供一個系統的資料全貌,是建立實體資料結構的藍圖。 第九章 資料設計 第363頁
實體關係圖(2/10) 圖9-14 在實體關係圖中,實體常常是單數名詞標示,且關係常是以動詞標示。這種關係可以用簡單的句子詮釋。 圖9-14 在實體關係圖中,實體常常是單數名詞標示,且關係常是以動詞標示。這種關係可以用簡單的句子詮釋。 第九章 資料設計 第363頁
實體關係圖(3/10) 繪製 ERD圖 關係的種類 第一步是列出之前在系統分析階段所確認的實體,並想清楚連結它們的關係性質。 最常見的方法是以長方形表示實體(以名詞標示)、菱形表示關係(以動詞標示) 。 關係的種類 實體之間有三種關係存在。 一對一關係(one-to-one relationship) ,簡記為 1:1。 一對多關係(one-to-many relationship),簡記為 1:M。 多對多關係(many-to-many relationship),簡記為 M:N。 組合實體(associative entity),因為多對多關係而產生的延伸(人為)的實體,它擁有自己的特性。 第九章 資料設計 第364頁
實體關係圖(4/10) 圖9-15 一對一關係(1:1)的範例。 第九章 資料設計 第364頁
實體關係圖(5/10) 圖9-16 一對多關係(1:M)的範例。 第九章 資料設計 第364頁
實體關係圖(6/10) 圖9-17 多對多關係(M:N)的範例。我們可以看到連接兩個實體的事件或交易被稱為組合實體,擁有自己的一套屬性和特性。 第九章 資料設計 第365頁
實體關係圖(7/10) 圖9-18 「業務人員」、「顧客」、「訂單」、「產品」和「倉庫」的實體關係圖。我們可以看到「訂單」與「產品」實體由一個「訂購明細」組合實體結合。 第九章 資料設計 第366頁
實體關係圖(8/10) 基數(cardinality) 基數標記法 (cardinality notation) 鴨足標記法 (crow's foot notation) 統一塑模語言 (Unified Modeling Language, UML) 了解了資料元素和其關係之後,就可以開始設計資料表。 第九章 資料設計 第366頁
實體關係圖(9/10) 圖9-19 鴨足標記法是一種常見的基數標示法,圖中的四個例子說明你可以使用不同符號來說明實體間的關係。 圖9-19 鴨足標記法是一種常見的基數標示法,圖中的四個例子說明你可以使用不同符號來說明實體間的關係。 第九章 資料設計 第367頁
實體關係圖(10/10) 圖9-20 在第一個基數標記法的例子中,一且唯一的「顧客」可以下零到多筆「訂單」;第二個例子中,一且唯一的「訂單」可以包含一到多個「訂購品項」;第三個例子中,一且唯一的「員工」可以擁有一個或沒有「配偶」;第四個例子中,一個、多個或零個「員工」可以被指派一個、多個或零個「專案」。 第九章 資料設計 第367頁
正規化(1/7) 正規化(normalization):是為資料庫中每個資料表指定明確欄位(或屬性)的資料表設計流程。亦即是為特定資料表(或檔案)指定其欄位與主鍵的動作。 標準標記格式 若使用一套標準標記格式 (standard notation format) 來顯示資料表的結構、欄位、及主鍵,那麼資料表的設計就會比較容易。 資料表名稱 (欄位 1, 欄位 2, 欄位 3) 第九章 資料設計 第368頁
資料表名稱 (欄位 1, 欄位 2, 欄位 3, …, (重複欄位 1,重複欄位 2)) 正規化(2/7) 重複群組和未正規化的設計 重複群組(repeating group) 指在單一筆記錄中,某個欄位或多個欄位出現多個不同的值。 未正規化(unnormalized)資料表 包含重複群組的資料表稱之。 以第二層的括弧將重複群組的欄位全部包括在裡面。 資料表名稱 (欄位 1, 欄位 2, 欄位 3, …, (重複欄位 1,重複欄位 2)) 第九章 資料設計 第368頁
訂單 (訂單編號, 訂單日期, 產品編號, 產品說明, 訂購數量) 正規化(3/7) 第一正規形式 如果資料表不包含重複群組,則可稱其為第一正規形式 (first normal form, 1NF)。 要將未正規化的設計轉變為 1NF,必須將重複群組的主鍵納入資料表的主鍵,成為複合主鍵。 訂單 (訂單編號, 訂單日期, 產品編號, 產品說明, 訂購數量) 第九章 資料設計 第369頁
正規化(4/7) 圖9-22 在「訂單」資料表的設計中,記錄 1 和記錄 2 都有重複群組,因為它們包含好幾項產品。「訂單編號」是「訂單」資料表的主鍵,而「產品編號」是重複群組的主鍵。因為包含重複群組,所以「訂單」資料表的設計是未正規化。 第九章 資料設計 第369頁
正規化(5/7) 第二正規形式 如果資料表的設計符合 1NF 且不屬於主鍵的所有欄位都功能相依於整個主鍵時,則此資料表設計便符合第二正規形式 (second normal form, 2NF)。 從 1NF 轉換為 2NF 有一套標準程序。 目標是將原始資料表分割為兩個以上的資料表,並適當地分配欄位,讓所有非鍵欄位都相依於所屬資料表的整個主鍵。 2NF的結果: 訂單 (訂單編號, 訂單日期) 產品 (產品編號, 產品說明) 訂單明細 (訂單編號, 產品編號, 訂購數量) 第九章 資料設計 第371頁
顧客 (顧客編號, 顧客姓名, 地址, 業務員編號, 業務員姓名) 正規化(6/7) 第三正規形式 3NF 設計將能避免仍然存在於 2NF 的重複與資料完整性問題。 當資料表已經符合 2NF 且所有非鍵欄位都沒有與其他非鍵欄位相依,則可以稱此資料表設計符合第三正規形式 (third normal form, 3NF)。 若要將資料表轉換成 3NF,必須移出所有 2NF 資料表中相依於其他非鍵欄位的欄位,並將它們置放於新的資料表,使用該非鍵欄位做為主鍵。 示例: 顧客 (顧客編號, 顧客姓名, 地址, 業務員編號, 業務員姓名) 3NF的結果: 顧客 (顧客編號, 顧客姓名, 地址, 業務員編號) 業務員 (業務員編號, 業務員姓名) 第九章 資料設計 第373-374頁
正規化(7/7) 一個正規化的範例 圖9-32 3NF 的「學生」、「導師」、「課程」和「成績」資料表。「學生」資料表從2NF 轉換到3NF,變成兩張資料表:「學生」和「導師」。 第九章 資料設計 第378頁
使用代碼於資料設計(1/3) 代碼綜述 因為代碼常用來代表資料,所以在每天生活中都會看到。 因為代碼通常比它們所代表的資料來得簡短,所以可以節省儲存空間與成本、減少資料傳輸時間並減少資料輸入時間。 代碼可以減少資料輸入的錯誤。 第九章 資料設計 第379-380頁
使用代碼於資料設計(2/3) 代碼的類型 順序代碼(sequence codes) 分段順序代碼(block sequence codes) 字母代碼(alphabetic codes) 有意義的數字代碼(significant digit codes) 推導代碼(derivation codes) 加密代碼(cipher codes) 行動代碼(action codes) 圖9-35 航空行李標籤利用三個英文單字的代碼來識別機場,而機械條碼則包含有關乘客、航班編號與其他相關資訊。 第九章 資料設計 第380-382頁
使用代碼於資料設計(3/3) 開發一套代碼 保持代碼精簡。 允許擴充。 保持代碼穩定。 使代碼唯一。 使用可排序代碼。 避免混淆式代碼。 使代碼有意義。 一個代碼只用在一個用途。 保持代碼一致性。 第九章 資料設計 第382-383頁
資料庫設計的步驟 步驟1:建立一個初步的ERD圖。 步驟2:接下來,建立一份ERD圖。 步驟3:檢視所有資料元素。 步驟4:檢視3NF 設計的所有資料表。 步驟5:再次核對所有資料字典的條目。 在完成了最終 ERD 並且對資料表設計進行正規化後,接著就可以將它們變成資料庫了。 第九章 資料設計 第384頁
資料庫模式 實際運用範例 假設某家公司提供電腦設備駐點服務,包括更換零件與人工服務。 圖9-38 一家電腦服務公司的關聯式資料庫設計,它使用共同欄位連結資料庫以建立一個整體的資料結構。圖中可以看到一對多標記符號及主鍵都使用粗體顯示。 第九章 資料設計 第385頁
資料庫模式 使用關聯式資料庫 想要了解關聯式資料庫的功能和彈性,最好的方式是跟著本節的練習實作看看。 假設你服務於某 IT 部門,而銷售部門需要回答三個特定問題。 所需資料可能實際儲存於這 7 張資料表內。 第九章 資料設計 第386頁
資料儲存及存取 資料儲存及存取的策略性工具。 使用資料倉儲和資料探勘做為策略性工具 資料倉儲(data warehouse)―向度 ( dimensions) 資料市集(data mart) 資料探勘(data mining) 第九章 資料設計 第387-390頁
資料儲存及存取 圖9-43 資料倉儲存放來自數個系統的資料。透過選擇資料的向度,使用者可以取得特定資訊,而不需要知道資料是如何存放或是存放在哪裡。 第九章 資料設計 第390頁
資料儲存及存取 邏輯與實體儲存 邏輯儲存 實體儲存 字元(characters) 資料元素 (data element) 或資料項目 (data item) 邏輯記錄 (logical record) 實體儲存 實體記錄 (physical record) 或區塊 (block) 緩衝區 (buffer) 區塊因數 (blocking factor) 第九章 資料設計 第392-393頁
資料儲存及存取 資料編碼與儲存 位元(bit) 二進位數字(binary digit) EBCDIC、ASCII 及 Binary 位元組 (byte) 萬國碼(Unicode) 圖9-46 萬國碼是一種國際的編碼格式,以整數來表示字元,每個字元使用16個位元。萬國碼協會維護標準並支持萬國碼。 第九章 資料設計 第393-394頁
資料儲存及存取 資料編碼與儲存 儲存日期 Y2K 問題(Y2K issue)。 如今大多數日期格式都是以國際標準組織(International Organization for Standardization, ISO)所制訂的模式為主。 絕對日期(absolute date)。 第九章 資料設計 第394-395頁
資料控制 使用者 ID(user ID) 密碼(password) 權限(permission) 加密(encryption) 備份(backup) 復原程序(recovery procedures) 稽核紀錄檔(audit log file) 稽核欄位(audit field) 第九章 資料設計 第395-396頁
本章總結 檔案和資料表包含了有關人、地、物、事件等資料,這些資料都會影響資訊系統。 DBMS 設計較傳統的檔案導向系統來得更強大且具彈性。 實體關係圖 (ERD) 利用圖像來表示系統中的所有實體和它們之間的關係。 代碼是用來在系統中代表資料的一套字母或數字。 邏輯儲存係指透過使用者觀點所見到的資料,而不管該資訊實際組織或儲存的方法及地點。 實體儲存純粹是硬體相關的,因為它涉及將二進位的資料區塊從實體媒體讀出與寫入的程序。 檔案和資料庫控制的方法包括限制資料的存取、加密、備份/復原程序、稽核軌跡檔案,以及內部稽核欄位等。 第九章 資料設計 第396-397頁