7.1 Database Management System
- 資料庫的使用
- 基本資料庫概念
- 資料庫管理系統實作
- 資料庫理論基礎
檔案保存與資料庫保存比較
- Access Method 找尋方法
- Data Consistent 一致性
- 編寫複雜度
- 格式不一致
Access Method
透過純檔案保存,靈活性不大,並且有浪費資源或資料不一致的可能,透過人工建立的方式產生。
DBMS可以透過id找尋對應的資料,DBMS會背後自動連結資料關聯性。
Data Consistent
傳統檔案的缺點
- Data Redundancy
- 檔案維護困難
- 編寫複雜
- 資料格式不一致: 型態不同, Data Dependence
名詞
- Data Dependence: 檔案結構變化之後,必須修改程式
- Data Independence: 檔案結構變化之後,不必修改程式
7.2 Data Base Definition
何謂Database
- 一群關聯資料集合
- 盡可能避免資料重複性
- 以最佳化的型態提供一或多個程式使用
- 資料皆為Data independent與程式無關,並且能共通控制並增刪修改。
資料庫的優點
- 減少資料重複性、不一致
- 共用資料
- 提供標準使用工具: Data Definition, Data Manipulation(SQL)
- 增加資料私密性(權限管理)
- 維護整體性(Integrity): 例如刪除特定資料之後,會自動移除相關的資料
- Data independent
- Concurrency (資源共用) and Recovery
保存資料的方式
- Sequential file 循序檔: 一筆筆擺入資料
- Random access file: 隨機存取檔,可以任意讀取檔案
- Index file: b-tree
Sequential file與Random access file收尋時,需要花費大量時間, 透過index file解決key search
ISAM file與Database差異
- File Record Layout: 描述item(field),與Database相同
- file relationship: ISAM必須人工連接關係,Database則是自動處理
- 查詢能力: SQL比ISAM方便使用
- primary key: 能必須獨一無二能對映一筆資料,必為一個
- secondary key: k個(k > = 0)作為查詢,不限數量
7.3 Data Base System Architecture
- DBA 資料庫管理師
- DBMS: 如oracle, MySQL,透過DBMS處理datbase
- Schema: 資料庫架構,並且分配sub schema權限給不同使用者
- DSL(Data sub language):如SQL
註: DBMS處理database類似file system處理file
- standard storage structure: Access method
- Conceptual Schema (schema): DBA
- External Schema(subschema): DBA與user
- Host Language + Database Utilities (SQL)
Data base Description Language
- physical Database description Language
- Data Definition Language (DDL): 用來描述Schema與Subschema
- Data manipulation Language(DML)
- Programming Language Extension (Embedded Statement): 定義database的指令在程式語言
- 函數呼叫: 透過函數協助呼叫
- 查詢 : SQL語法查詢
7.4 Data Base Processing
- 必須先定義Schema
- 資料必須載入到database
步驟
- user: 程式要求資料,請求DBMS
- DBMS: 找出subschema的描述
- DBMS: 找出schema的描述
- DBMS: 獲取database的Physical database description,找出需要的紀錄
- DBMS: 請求OS給予檔案
- OS: 從次級儲存裝置獲取檔案
- OS: 將資料傳入System buffer
- DBMS: 根據使用個需要內容重建資料
- DBMS: 回傳資料
- DBMS:回傳查詢狀態
- DBMS & OS: 將控制權轉交給應用程式
System Program