資料庫管理系統 緒 論
定 義 資料庫由不同的檔案構成 就辦公室或機關內的需求加以規劃 以資料不重覆的方法儲存在一起
優 點 避免資料的重覆 維持資料的一致性 資料具獨立性, 程式撰寫較簡單 資料具保密性和安全性 強化制度的標準化 平衡企業各方面之需求
缺 點 設計及維護成本高 資料庫管理師(DBA) 不容易培訓 需經常備份,否則意外狀況將造成重大傷害
DBMS 資料庫管理系統 (Database Management System) 一套獨特的軟體,同時用來建立以及維持資料庫,使能針對每一不同的商業應用焠取資料,並產生其所需之報表。 DBMS的三元件 資料定義語言(DDL) 資料使用語言(DML) 資料字典(Data Dictionary)
功 能 具親和力的使用介面 可事先檢查存取資料之權利 可事先檢查欲儲存資料的合理性, 以確保資料的完整性 提供資料共享能力
DBA 之職責 決定資料庫的內容及關係 決定檔案結構及存取方式 決定資料一致性及安全性之檢查方法 定義備份及復原之步驟 監視日常作業並配合需求改變資料庫 控制重覆(redundancy) 限制未授權者使用 提供多位使用者之介面
DBS 資料庫系統 硬體: CPU、記憶體、各種輸出入設備軟體(存取資料之應用程式、資料庫管理系統) 資料: 以不重覆儲存為目標,以達多人共享之目的 使用者: 如連線作業之使用者 資料庫管理師: 負責建立、修正、維護及管理資料庫
資料庫基本特性 獨立性: 防止應用程式因 “資料儲存結構” 和 “資料存取方法” 的改變, 而牽一髮動全身 安全性: 只有合法授權的使用者才能使用資料庫中的資料 復原性: 可將資料恢復成正確狀態 同作性: 可避免多個使用者同時存取同一筆資料 完整性: 隨時保持資料的正確性
external/conceptual mapping 資料庫的三層及觀點 (view) Conceptual Schema Conceptual Level Internal schema Internal Level External Level External View A View B View N external/conceptual mapping conceptual/internal mapping End Users Stored Database 外層:最接近使用者, 不同的使用者使用不同的資料, 對資料庫也產生不同的觀點 概念層:外層是資料庫某部分之表示, 概念層則是對整個資料及其可能關係之描述, 所以此層是群體使用者的觀點 內層:最接近系統底層實體儲存媒體的部份,以一邏輯的位址空間對應於資料實際存放的位置
資料庫邏輯結構 -1 階層式 (Hierarchical Model): 將資料組織成如樹狀之結構,每筆記錄可將其劃分成數個區段(Segments) 上層與下層具有一對多之親子關係 在實體觀中,藉pointers之建立連結上下層之區段(作為資料搜尋用) 適用於較固定之資料搜尋內容以及報告列印格式 由上層對下層搜尋容易, 但由下層往上層搜尋則難 同層搜尋亦難 root
資料庫邏輯結構 -2 網路式(Network Model): 區段之間為多對多之關係 可與階級式資料庫相互轉換 比階級式資料庫少重複之資料,較多彈性 利用網狀結構,提供多對多關係,較複雜且存取路徑須事先設定,重新建立關係或新鏈結,亦較麻煩 必須建立複雜的指標 Pointers 資料結構
資料庫邏輯結構 -3 關連式(Relational): Operations的種類: Select, Join, Project, 以表格(Table) 表示個體之間的關係,交易量屬中-低,易取用資料,且易使用 利用Relation (or Table二維度表格)作查詢,可從不同的表格內, 經由作業(operations)而得到所需報表之內容及資料 Operations的種類: Select, Join, Project, #Truple指在Relational Database下之 Record 其利用共用值(Shared Value)來建立個體關係,不用任何指標結構
資料庫 vs 資訊系統 在關聯式資料庫尚未成熟前,企業資訊系統的重點在於資料處理,功能為增加效率及降低成本 關連式資料庫成功發展後,資料間的關係即不受限制 (Logicl & Physical Independent),使決策者容易找出各資料間的關係來制定決策 透過網路,使得EIS逐漸受重視 往後還會發展出具地域獨立性的分散式資料庫、具推理能的知識庫、物件導向資料庫及多媒體資料庫等,皆以關連式資料庫為基礎
資料庫發展新趨勢 分散性資料庫系統 (Distributed Database) 物件導向式 (Object-Oriented, OO) 超媒體資料庫 (Hypermedia Database) 資料倉庫 (Data Warehouse) 資料探勘 (Data Mining) 知識庫 (Knowledge Management)
E/R Model 目的 雖然DBMS不支援語意模型, 但使用者在設計資料庫之前, 應先用語意模型去模型化真實世界中所感興趣之資料 根據所建立之語意模型去規劃資料庫的基本關聯 (Base Relation) 在設計 SQL程式時, 遵循語意模型中之語意規定, 以避免不當之操作
常用語意概念 基本三元素: 個體 (Entity):基本資料處理單元, 如: 張小姐是客戶資料、玫瑰花是銷售產品、訂購也是一項資料記錄 關聯 (Relationship):描述個體與個體間之關係,如: 訂購行為把客戶與銷售產品間建立了關係 屬性 (Property):描述個體之屬性,如: 客戶姓名、地址、身高、體重、出生日期、學歷、嗜好… Entity Relation-ship Property
常用語意概念-屬性表 個體(資料表) 與屬性 (欄位)表示: EXAMPLE: 客戶資料 資料表名稱 (一) 資料表名稱 (二) 訂購 Foreign Key 欄位一 欄位二 欄位三 … 客戶編號 客戶姓名 電話 最愛銷售產品 … Foreign Key Primary Key Primary Key 資料表名稱 (二) 訂購 欄位一 欄位二 欄位三 … 客戶編號 產品編號 銷售產品 產品編號 產品名稱 單位 品種 … Primary Key
E/R Diagram 1 實體(entity)可分為二類 一般實體(regular entity):不屬於 weak entity 的實體稱為regular entity, 又可稱為強實體 (strong entity) 弱實體(weak entity): 此實體的存在相依於另一個實體的存在, 即當所依存的實體不存在時, 它就無法存在. 例如學生家長即為一弱實體, 當學生實體不存在時, 學生家長就無存在之必要
E/R Diagram 2 簡單值(simple) 或 組合值 (composite) 鍵值(key): 用以唯一識別每個實體 屬性 (property) 簡單值(simple) 或 組合值 (composite) 鍵值(key): 用以唯一識別每個實體 單值(single-valued)或多值(multi-valued):如年齡和獎懲記錄 從缺(missing):表不詳或不需要記錄, 如身分證上的父母欄可為不詳 基本(base)性質或衍生(derived)性質:如重量與密度 關係 (relationship) 次型別 (subtype) 以不同角度觀看實體時,一個實體型別依照某些性質可以再細分為多種不同的型別,稱之為次型別 (subtype) 最原始的實體型則稱為超型別 (supertype)
各種鍵之定義 主鍵(Primary Key): 辨識所有值組的某(些)個屬性 唯一性(Uniqueness): 不會有相同的主鍵值 最小性(Minimality): 去除其任一屬性皆會破壞其唯一性 外鍵(Foreign Key): 為另一表格中之主鍵,用以連結原來之表格 候選鍵(Candidate): 符合唯一性及最小性兩種特性之屬性集合 候補鍵(Alternate): 除去主鍵以外之候選鍵 超鍵(Super Key): 用來辨識值組(tuple) 之屬性集合, 最大超鍵為所有屬性之集合,而最小超鍵則候選鍵
資料庫設計 需求分析: 不同使用者及群體有關應用系統及資訊需求之確認 概念設計: 對使用者及應用系統 (如人事薪資管理系統)之資訊觀點, 建立E-R Model) 正規化 邏輯設計: 將觀念架構轉換成所選定之DBMS 實體設計
需求分析 定義資料庫的範圍 確立原始資料內容 確定使用者對資料之觀點 確立資料之生命週期 明定操作上之需求 製作資料流程圖 (Data Flow Diagram) 建立資料辭典 (Data Dictionary) 文件:各種報表,檔案,文件及螢幕顯示
概念設計 Conceptual 尋找個體和屬性 建立個體關係 作法 Entity, Attribute,Relation (含Constraints), Keys 文件: E/R Model
正規化 Normalization 濃縮複雜的使用者觀點(view) 去除重複的資料儲存 得一組簡化且穩定的資料結構 做法: 至少經第一~第三正規化 文件: E/R Diagram
正規化 第一正規化 (1NF, First Normal Form):一筆記錄沒有重覆的資料項 第二正規化 (2NF , Second Normal Form):已1NF,且記錄中每筆資料可由主鍵單一辨視,但不能由部份主鍵來辨識 第三正規化 (3NF, Third Normal Fomr):已2NF,且所有和主鍵無關之資料項彼此間獨立 Boyce-Codd正規化:將多個候選鍵中挑出一個決定因子作為主鍵 4NF:去除多值相依性 5NF:克服合併相依性 Boyce-Codd及第四、第五正規化等格式,實務上不常發生
邏輯設計Logical design 轉換: E/R Model Mapping →資料庫 Model 資料限制 (Constraints) 欄位限制條件, 如NOT NULL, UNIQUE 判斷式(assertion), 如CHECK(…) 指定必要的index field和Primary key 建立各表格的關連 分割 垂直切割:將檔案中最常用的屬性與較不常用的屬性各自獨立為兩個檔案 水平切割:將檔案中較常用的記錄(row)與較不常用的記錄各自獨立為兩個檔案
實體設計Physical 將邏輯資料模式轉換成硬體及所選用的DBMS所適用之形式 決定資料儲存之結構與檢索路徑