只記錄了個人覺得的重點和難點知識,大部分是摘抄ppt,部分會給出自己的解答和擴展。
持續更新中
1. 緒論
1.1 數據庫系統概述
數據(Data) :數據庫存儲的基本對象,即數據表的一行數據,如一個學生
數據庫(Database,DB) :長期儲存在計算機內、有組織的、可共享的大量數據的集合。
基本特徵
- 數據按一定的數據模型組織、描述和儲存
- 可爲各種用戶共享、冗餘度較小、易擴展
- 數據獨立性較高
數據庫管理系統 (DataBase Management System,DBMS) :位於用戶應用與操作系統之間的一層數據管理軟件,是基礎軟件,是一個大型複雜的軟件系統,能夠科學地組織和存儲數據、高效地獲取和維護數據。
主要功能:
- 數據定義功能
- 提供數據定義語言(DDL)
- 定義數據庫中的數據對象
- 數據組織、存儲和管理
- 分類組織、存儲和管理各種數據
- 確定數據在存儲級別上的結構和存取方式
- 實現數據之間的聯繫
- 提供多種存取方法提高存取效率
- 數據操縱功能
- 提供數據操縱語言(DML)
- 實現對數據庫的基本操作 (查詢、插入、刪除和修改)
- 數據庫的事務管理和運行管理
- 數據的安全性、完整性、多用戶對數據的併發使用
- 發生故障後的系統恢復數據庫
- 由數據庫管理系統統一管理和控制,保證事務正確運行
- 數據庫的建立和維護功能
- 提供實用程序/工具,完成數據庫數據批量裝載,數據庫轉 儲,介質故障恢復,數據庫的重組織和性能監視等
- 其它功能
- 數據庫管理系統與網絡中其它軟件系統的通信
- 數據庫管理系統系統之間的數據轉換
- 異構數據庫之間的互訪和互操作
也就是說,數據庫管理系統就是我們平時說的數據庫,如mysql數據庫就是一個數據庫管理系統
數據庫系統 ( DataBase System ,DBS ) :是指在計算機系統中引入數據庫後的系統構成。
在不引起混淆的情況下常常把數據庫系統簡稱爲數據庫。
數據庫系統的構成
- 數據庫
- 數據庫管理系統(及其應用開發工具)
- 應用程序
- 數據庫管理員(DataBase Administrator,DBA
數據管理:對數據進行分類、組織、編碼、存儲、檢索和維護 ,數據處理和數據分析的中心問題 。
數據管理技術發展:人工管理階段、文件系統階段、數據庫系統階段。
數據庫系統的特點:
- 數據結構化
- 數據的共享性高,冗餘度低且易擴充
- 數據獨立性高
- 數據由數據庫管理系統統一管理和控制
數據獨立性:指
應用程序
和數據結構
之間相互獨立, 互不影響
- 物理獨立性:應用程序與數據的物理存儲是相互獨立的,數據的物理存儲改變了,應用程序不變
- 邏輯獨立性:
數據獨立性由數據庫管理系統的二級映像功能來保證。
數據庫管理系統提供的數據控制功能
- (1)數據的安全性(Security)保護:保護數據以防止不合法的使用造成的數據的泄密和破壞。
- (2)數據的完整性(Integrity)檢查:保證數據的正確性、有效性和相容性。
- (3)併發控制(Concurrency Control) 對多用戶的併發操作加以控制和協調,防止相互干擾而得到錯誤的結果。
- (4)數據庫恢復(Recovery) 將數據庫從錯誤狀態恢復到某一已知的正確狀態。
1.2 數據模型
數據模型是對現實世界數據特徵的抽象。
數據模型分爲兩類(兩個不同的層次)
- (1) 概念模型,也稱信息模型。它是按用戶的觀點來對數據和信息建模,用於數據庫設計。
- (2) 邏輯模型和物理模型。
- 邏輯模型主要包括網狀模型、層次模型、關係模型、面向對象數據模型、對象關係數據模型、半結構化數據模型等。
- 按計算機系統的觀點對數據建模,用於DBMS實現。
- 物理模型是對數據最底層的抽象,描述數據在系統內(磁盤上)的表示方式和存取方法
概念模型
術語:
- (1)實體(Entity) 客觀存在並可相互區別的事物稱爲實體。 可以是具體的人、事、物或抽象的概念。 (一張表)
- (2)屬性(Attribute) 實體所具有的某一特性稱爲屬性。一個實體可以由若干個屬性來刻畫。 (字段)
- (3)碼(Key) 唯一標識實體的屬性集稱爲碼。 (主鍵)
- (4)實體型(Entity Type) 用實體名及其屬性名集合來抽象和刻畫同類實體稱爲實體型
- (5)實體集(Entity Set) 同一類型實體的集合稱爲實體集
- (6)聯繫(Relationship) 現實世界中事物內部以及事物之間的聯繫在信息世界中反映爲實體(型)內部的聯繫和實體(型)之間的聯繫。
- 實體內部的聯繫: 是指組成實體的各屬性之間的聯繫
- 實體之間的聯繫: 通常是指不同實體集之間的聯繫 實體之間的聯繫有一對一(1:1)、一對多(1:n)和多對多(m:n)等多種類型
實體-聯繫方法(Entity-Relationship Approach)
ER圖
數據模型的組成要素:
- 數據結構–描述系統的靜態特性
- 數據操作–描述系統的動態特性
- 完整性約束
數據模型
常用數據模型:
- 層次模型:一棵樹,有且只有一個根節點;除根以外,其他節點有且只有一個父節點
- 完整性約束條件:無父則無子;強外關聯;
- 網狀模型:更傾向於連接方式
- 關係模型:更傾向於表達一張表的結構;(就是我們常用的關係數據表,如同excel表)
- 術語:
- 關係(Relation)—— 一個關係對應通常說的一張表
- 元組(Tuple)—— 表中的一行即爲一個元組
- 屬性(Attribute)——表中的一列即爲一個屬性,給每一個屬性起一個名稱即屬 性名
- 主碼(Key)——也稱碼鍵。表中的某個屬性組,它可以唯一確定一個元組
- 域(Domain)——是一組具有相同數據類型的值的集合。 屬性的取值範圍來自某個域。 例:學生年齡屬性的域(15~45歲), 性別的域是(男,女), 系名的域是一個學校所有系名的集合;
- 分量——元組中的一個屬性值。
- 關係模式——對關係的描述 關係名(屬性1,屬性2,…,屬性n) 學生(學號,姓名,年齡,性別,系名,年級)
- 術語:
- 最基本的規範條件:關係的每一個分量必須是一個不可分的數據項,不允許表中還有表。
- 關係的完整性約束:
1.3 數據庫系統的結構
從數據庫應用開發人員角度看:
數據庫系統採用三級模式結構,是數據庫系統內部的系統結構
從數據庫最終用戶角度看,數據庫系統的結構有:
- 單用戶結構
- 主從式結構
- 分佈式結構
- 客戶-服務器
- 瀏覽器-應用服務器/數據庫服務器 等
數據庫系統模式
模式(Schema)
- 是對數據庫邏輯結構和特徵的描述
- 是型的描述,不涉及具體值
- 模式是相對穩定的
實例(Instance)
數據庫
某一時刻的狀態
——模式的一個具體值- 同一個模式可以有很多實例
- 實例隨數據庫中的數據的更新而變動
數據庫系統的三級模式結構
理解三層模式:
內模式:記錄數據的物理結構
和存儲方式,如使用堆存儲、壓縮存儲、加密等
模式: 數據庫中全體
數據的邏輯結構
和特徵的描述
外模式:數據庫用戶使用的局部
數據的邏輯結構和特徵的描述
假設現在有一堆學生數據,存放在數據庫中,模式理解如下圖:
顯然,內模式和模式只有一種,外模式根據用戶需求,有多種。
三級模式是對數據的三個抽象級別。
數據庫管理系統內部提供二級映像
- Map:{外模式:模式映像 }
- Map:{模式:內模式映像 }
先舉個例子:
假設A和C認識,經常聯繫,他們直接聯繫,即A–>C。
有一天,C整容失敗了,A就不認識C了,AC就斷了。
現在加入映射。
A–>B–>C
A現在跟C聯繫,它需要通過B,這個B就是一個映射關係。
如果C現在整容了,管理員只需要讓B在認識一下C就行了(修改B),A繼續通過B找C,依舊能找到。
(爲什麼不修改A呢?因爲實際開發中,A作爲“用戶”,如果會因爲底層變動而改變,是非常不好的做法,這裏不多贅述,可以百度面向接口編程
)
外模式/模式映像:
- 當模式改變時(例如增加新的關係、新的屬性、改變屬性的數據類型等),由數據庫管理員對各個外模式/模式的映像作相應改變,可以使外模式保持不變。應用程序是根據數據的外模式編寫的,從而應用程序不用修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。
(假設用戶想要的外模式視圖是(學號,姓名),當數據本身的
模式
變了,管理員就讓映射關係變一下,用戶依舊能得到(學號,姓名))
模式/內模式映像:
- 數據庫只有一個模式,也只有一個內模式,所以模式/內模式映像是唯一的,它定義了數據全局邏輯結構與存儲結構之間的對應關係。例如,說明邏輯記錄和字段在內部是如何表示的。該映像定義通常包含在模式描述中。當數據庫的存儲結構改變時(例如選用了另一種存儲結構,即內模式變了),由數據庫管理員對模式/內模式映像作相應改變,可以使模式保持不變,從而應用程序也不必改變。保證了數據與程序之間的物理獨立性,簡稱數據的物理獨立性。
1.4 數據庫系統的組成
問題記錄
1. 如何理解數據獨立性中的邏輯獨立性
查看1.3