資料庫系統導論
大綱 資料庫系統概念 資料庫系統建立與管理 資料庫系統應用 資料庫系統安全
1.資料庫系統概念 資料處理方式的演進 資料庫系統架構的演進 資料庫系統簡介 關聯式資料模型 資料庫表格正規化
基本名詞 資料(Data):表示某種可被記錄下來的事實 資料庫(Database):相關資料的集合 資料庫管理系統(Database Management System(DBMS): 建立與管理資料庫的程式集合 資料庫系統(Database System): DBMS + Database 資訊(Information):經過組織及處理過的資料 知識(Knowledge):應用資訊所推論出來的事實
資料元素架構圖
1.1資料處理方式的演進 第一階段:人工檔案管理 第二階段:以電腦化循序檔案系統處理 第三階段:以電腦化直接存取檔案系統處理 第四階段:以記錄(record)為處理單元的方式 第五階段:以物件(object)為處理單元的方式
第二、三階段檔案系統處理
檔案系統處理問題 資料分開且隔離 資料經常性重覆 應用程式關連性過大 資料檔案不相容 檔案格式難以了解
第四階段:以記錄為處理單元的方式 記錄(Record):為了改進檔案存取的缺點,而將檔案向下拆解為一筆一筆的記錄 階層式資料庫管理系統 (Hierarchical DBMS) 網路式資料庫管理系統(Network DBMS) 關聯式資料庫管理系統(Relational DBMS)
DBMS系統處理
DBMS優點 資料集中且整合 資料的重覆性減少 資料為與程式無關的 資料為易於了解
資料模式(Data Model) 用來描述資料庫內資料的特性,由下列3要素組成 資料結構(Data Structures):資料的組成與表示方式 整合限制條件(Integrity Constraints):資料在結構中的合法條件 資料的運算(Data Manipulation or Operations)
階層式資料庫管理系統 結構由樹狀結構組成,資料的完整順序,由上至下,由左至右來排定 整合限制條件為任何子記錄資料都必須要有父記錄資料 為一對多的描述
網路式資料庫管理系統 改進階層式系統只能一對多的缺點 結構是由資料記錄的集合(Set of Records)與鏈結的集合(Set of Links)所組成 整合限制條件為除非存在父記錄資料,否則子記錄資料不得加入資料庫中
關聯表圖示
關聯式資料庫管理系統 以關聯表(Relations)做為處理單位 資料與資料的關係由資料值(Data Value)來連結 資料結構:為表格式(Tabluar)的資料結構,由相同型態的記錄集合而成,稱為關聯表(Relations) 整合限制條件包含個體整合限制(Entity Integrity)與參考整合限制(Referential Integrity) 資料運算:對關聯表做任意運算後,所得結果或中間結果也為關聯表
第五階段以物件為處理單元的方式 物件導向式資料庫管理系統(Object-Oriented DBMS):簡稱 OODBMS 以物件的觀念來代替記錄 物件可以由其它物件所組成 物件可以有縱向繼承與橫向組合的關係 物件可以定義特定的運算於其上
第五階段以物件為處理單元的方式(cont.) 1.物件導向式資料庫管理系統 (Object-Oriented DBMS) 2.物件關聯式資料庫管理系統 (Object-Releational DBMS)
1.2資料庫系統架構的演進 第一階段:集中式處理(Centralized) 第二階段:主-從式架構(Client-Server) 第三階段:三層式處理架構(Three-Tier) 第四階段:同質性分散式處理 第五階段:異質性分散式處理 第六階段:行動計算處理(Mobile Computing)
集中式處理
主-從式架構
主-從式架構(cont.)
三層式處理架構
三層式處理架構(cont.)
分散式處理架構
分散式處理架構(cont.) 優點: 因映組織架構變化 自主性 網路流量較大 擴充彈性 優點: 因映組織架構變化 自主性 網路流量較大 擴充彈性 缺點: 資料保密性較難控制 安全性不易維護 設計複雜性較高 資料一致性難以維護.
行動計算處理
1.3資料庫系統簡介 目的: 1.電腦化的方式將資料集中控制管理 2.以集中方式存取資料 3.讓應用程式不受資料的真正存放方式影響,達到資料獨立(Data Independence)性
資料庫系統組成部份 使用者(Users) 資料(Data) 硬體(Hardware) 軟體(Software)
資料庫系統的使用者 直接使用者(End Users):直接對系統下達命令的使用者 應用程式(Application Programs):透過程式介面的呼叫,向系統下達命令的應用軟體程式 資料庫管理員(Database Administrator DBA):透過系統所提供的管理指令,負責排解系統使用上的問題,調整系統效能,維護資料庫安全等
直接使用者 直接使用系統所提供的指令,進資料庫的資料下達查詢.運算的要求 常用的查詢方式: 結構化查詢語言(Structural Query Language) 表單方式(Menu-driven) 表格方式(Form-driven)
應用程式 以高階語言呼叫(C,Cobol,VB…)系統所提供的資料庫存取程式庫(Database Access Library),如 Sybase 的 DB-Library,Microsoft的 ODBC,ADO,OLEDB.. 將SQL語言嵌入於高階語言中來使用
資料庫管理員 決定資料的儲存結構 提供由中央控制的整合資料庫,並依不同的需求,使用權限而呈現不同的資料內容 監督並調整資料庫的效能,及規劃安全措施以防止系統錯誤及資料的損毀 安全性控制(Security Control)及整合性檢查(Integrity Checking) 對資料進行備份(Backup)或還原(Restrore) 舊資料的轉換
著名的關聯式資料庫管理系統 商業系統: Oracle:http://www.oracle.com Informix:http://www.informix.com Sybase:http://www.sybase.com Ingres:http://www.naiua.org MS-SQL server:http://www.micorsoft.com DB2:http://www.ibm.com
著名的關聯式資料庫管理系統(cont) 開放原始碼(open source)系統 Mysql:http://www.mysql.com PostgreSQL:http://www.postgresql.org Interbase:http://www.borland.com
1.4關聯式資料模型
A Student Relation
Functional Dependency 介於屬性(attributes)之間的關係(relation)
Key 一或多個attributes組合,可以用來唯一識別一筆(row)記錄
資料庫表格正規化(Normal Form ) 由於資料表格設計不良而導致後續異常的動作,因此將表格中造成異常的部分屬性從表格中分離出來,產生另外一個新的表格, 此過程就稱為『正規化』 避免資料重複的狀況發生,試想當某個名稱出現在不同表格 ( Table ) 時,當客戶名稱變更時,必須同步更改數個表格,不僅會增加應用系統撰寫的負擔,同時也會增加資料庫的處理負擔,所以避免資料重複是一件很重要的工作。
表格異常實例
1st NF第一正規化 每一筆row只描述一件事情 每一attribute只含有單一事物的特性(attribute的唯一性) 沒有任何兩筆資料是相同的 row或欄位的先後順予是無關緊要的 主要在於消除重覆性資料 每個一表格都會有一個 PK ( Primary Key ),同時每一個表格 ( Table ) 中的每一列 ( Row ) 的每一欄 ( Column ),都只能存放一個資料。
2nd NF第二正規化 移去部分相關性 若一關連R,其屬性Y功能相關於屬性X, 記作R.X→R.Y;若且唯若R中有二個X值相同時,其Y值亦相同 主要在於消除功能相依(Functional Dependency) 在表格中的每一個不是 PK 的欄位都只能與 PK 有相依性。
3rd NF第三正規化 消除遞移相依(Transitive Dependency) 所謂遞移相依是指在一個表格中,如果某一欄位值可決定其他欄位值,但這些欄位中又存在某一欄位可以決定剩餘欄位值,稱遞移相依性。若有上述情況存在.如果在刪除資料時,可能會造成其他資料損毀。 一個關連R R.A→R.B且R.B→R.C則,R.A→R.C成立,此種相關性稱為遞移相關。 在表格中的每一個不是 PK 的欄位都必須與完整的 PK 有相依性。
其它的正規化
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 MS-SQL 資料庫: Mysql資料庫:
資料庫的驅動連接架構 ODBC ADO OLE DB
Access 資料庫管理 新建立一個資料庫 新加入一個表格(Table) 新加入一個查詢 匯入及匯出資料
三.資料庫系統應用
四.資料庫系統安全 資料庫的安全性、權限與角色