一、資料庫系統概論
Published in
6 min readJul 4, 2021
《每日一句》You have to do the best what God gave you.
你必須盡力發揮上帝所賜予你的。<阿甘正傳>
資料庫
將資料以系統化的方式儲存在一起,並減少資料的重複性
資料庫管理系統 (DataBase Management System,DBMS)
資料庫系統所帶來的優點
1、避免資料重覆存放 (Data Redundancy)
- 透過資料集中化,避免資料重複存放
2、避免資料不一致 (Inconsistency)
- 資料具有傳播更新 (propagating update) 的特性確保任何更新的動作會自動地更新到其它重複的資料,以減少不一致現象
3、限制未授權的存取 (Restricting Unauthorized Access)
- 提供適當的安全性與認証機制,針對資料庫的帳密存取權限
4、提供備份與回復功能 (Providing Backup and Recovery)
- 確保資料能回到之前的狀態
5、安全性與完整性控制 (Security Constraints and Integrity Constraints)
- 資料庫的集中控制讓 DBA 更容易從事安全性 (Security) 與完整性(Integrity) 的限制
6、資料獨立性 (Data Independence)
- 儲存方式的改變或資料庫結構的改變不會影響到上一層次的應用
View (觀點、景觀)
- 實際存在於資料庫的表格所衍生出來的關聯表格
- 不需以實體的形式存在,也不需要儲存實體得資料,可視為虛擬表格 (Virtual Table)
Meta-data
- 用來描述資料的資料,稱之為中繼資料 (Meta-data)
- 資料庫系統具有自我描述 (Self-Description) 的特性
- 包含資料的型態、儲存格式、關係及各種限制、實際儲存結構,ex: 循序檔、索引檔
資料冗餘
資料冗餘會帶來的問題
- 空間浪費
- 更新資料時,產生不一致
- 浪費系統資源和時間
控制冗餘
- 冗餘欄位位於資料庫,用以加速存取速度
- 使用靜態 tables,複製資料以減少 DB 存取次數
為何有控制冗餘的發生
- 計算資料過於龐大,可以事先計算出來,常用於報表
ANSI/SPARC 三層式架構
外部層 (External Level)
- 不同使用者有不同的資料呈現
- 為使用者的景觀 (View),為最接近使用者的層次
概念層 (Conceptual Level)
- 描述資料庫儲存的整體性資料,為資料庫設計的核心,ex: 資料型態、關係、使用者操作限制
內部層 (Internal Level)
- 資料實際儲存方法,描述資料庫的資料儲存和存取路徑的完整細節
- 資料儲存結構,ex: 循序檔、索引檔
資料獨立性 (Data Independence)
修改資料庫的某一層架構時,不影響到較高層式架構
邏輯資料獨立性 (Logical Data Independence)
- 改變概念層時,不需要跟著改變外部層及其應用程式
- ex: 在資料庫新增一個欄位,外部層不需作任何更動
實體資料獨立性 (Physical Data Independence)
- 改變內部層時,不需要跟著改變概念層和外部層
- ex: 將循序檔改為索引檔,概念層和外部層不需變動
資料庫架構
主從式架構 (Client/Server)
- 可藉由 Client 端本身的運算能力,分擔 Server 端處理資料的負荷。
- 當 Server 種類變多,Client 也需因此而安裝多個介面
- 當 Client 增多時,Server 的負荷也會變重
多層式架構 Multi-Tier Architecture( 3-tier architecture)
- 將應用程式代理者 (Application agent) 置於 Client 與 Server 中間,存放企業應用邏輯 (Business logic),以處理 Client 與 Server 間往來的業務
- 若規模不斷擴大,中間端將成為瓶頸
分散式資料庫系統 (Distributed Database System)
- 可視為單一資料庫系統,但實際上資料卻是分散在網路的多個地方
- 透通性 (Transparency):不需要了解細節,即可正常運作的特性
- ex: 存取透通性、位置透通性、分割透通性
分散式資料庫優點
- 區域自主性
- 不倚賴中央點
- 持續操作性
- 資料分割、重複、位置獨立性
- 分散式查詢處理
- 分散式交易管理
- 硬體、OS、網路、DBMS系統獨立性
資料分割 (Data fragmentation)
- 水平分割、垂直分割、混合式分割
資料分割需滿足
- 完整性 : 分割後必須保有所有分割之前的資料
- 重組性 : 分割後可經由運算回復成分割前的資料關聯
- 互斥性 : 水平分割後,相同資料不可重複出現於不同分割部分中
ODBC (Open Database Connectivity)
- Server 端資料庫系統與 Client 端應用程 式之間標準的的 API 介面
- ODBC 是一種讓各種資料庫都具有相同的存取資料介面的程式
資料模型 (Data Model)
階層式 (hieraarchical)
- 樹狀階層,指標連接
- 可描述一對一,無法描述多對多
- 存取速度快,適合大量結構固定的資料
- 父節點被刪除,子節點也會被刪除
- 插入、刪除動作複雜
網路式 (network)
- 可描述一對一,一對多,多對多
- 父節點可能有多個
- 存取速度快,可達到資料獨立性
- 結構複雜,指標過多難理解
關聯式 (relational)
- 關聯必無重複的紀錄,且記錄順序不重要,屬性順序也不重要
- 須遵守整合性限制 (個體整合性、參考整合性限制)
- 採宣告式查詢語言 (SQL)
- 不適用於大量資料處理
物件導向 (object-oriented)
- 以物件特性操作資料庫
- 以 superclass 和 subclass 來表達階層關係
- 支援非文字資料,聲音、圖片...
- 實作產品不多,已淘汰
以上針對資料庫的系統概論做個學習筆記
如果你喜歡我的創作,請大力地給我拍拍手 🐊 🐊 🐊
參考資料 : 杰哥數位教室-資料庫系統管理課程
目錄 : 資料庫理論基礎
下一章 : 二、個體關係模型 (ER model)