資料庫第一章
緒論
一、資料庫概念
1.資料庫
定義:是長期儲存在計算機內、有組織的、可共享的大量資料的集合。
基本特徵:資料按一定的資料模型組織、描述和儲存;可為各種使用者共享;冗餘度較小;資料獨立性較高;易擴充套件
2.資料庫管理系統
位於使用者與作業系統之間的一層資料管理軟體
用途:n科學地組織和儲存資料、高效地獲取和維護資料;n資料定義功能;n資料組織、儲存和管理;n資料操縱功能;n資料庫的事務管理和執行管理;n資料庫的建立功能;n其它功能
3.資料庫系統
構成:資料庫,資料庫管理系統,應用程式,資料庫管理員,硬體平臺及資料庫,軟體,人員
4.資料庫管理技術的發展:人工管理階段,檔案系統階段,資料庫系統階段
5.資料庫系統的特點
- 資料結構化
- 資料的共享性高,冗餘度低且易擴充
- 資料獨立性高,包括物理獨立性與邏輯獨立性
- 資料由資料庫管理系統統一管理和控制
6.資料庫管理系統提供的資料控制功能
(1)資料的安全性(Security)保護
保護資料以防止不合法的使用造成的資料的洩密和破壞。
(2)資料的完整性(Integrity)檢查
保證資料的正確性、有效性和相容性。
(3)併發(Concurrency)控制
對多使用者的併發操作加以控制和協調,防止相互干擾而得到錯誤的結果。
(4)資料庫恢復(Recovery)
將資料庫從錯誤狀態恢復到某一已知的正確狀態。
二、資料模型
1.概念模型:
概念模型的一種表示方法:實體-聯絡方法
實體之間的聯絡有一對一、一對多和多對多等多種型別
2.資料模型的組成要素
- 資料結構:n描述資料庫的組成物件,以及物件之間的聯絡
- 資料操作:
- 查詢
- 更新(包括插入、刪除、修改)
- 資料的完整性約束條件
三、常用的資料模型
1.層次模型(最早出現的資料模型,用樹形結構來表示各類實體以及實體間的聯絡)
(1).滿足下面兩個條件的基本層次聯絡的集合為層次模型
a.有且只有一個結點沒有雙親結點,這個結點稱為根結點
b.根以外的其它結點有且只有一個雙親結點
(2).層次模型中的幾個術語:根結點,雙親結點,兄弟結點,葉結點
(3)層次模型的資料操縱:查詢,插入,刪除,更新
(4)層次模型的完整性約束條件
- 無相應的雙親結點值就不能插入子女結點值
- 如果刪除雙親結點值,則相應的子女結點值也被同時刪除
- 更新操作時,應更新所有相應記錄,以保證資料的一致性
2.網狀模型
(1)滿足下面兩個條件的基本層次聯絡的集合:
a. 允許一個以上的結點無雙親;
b. 一個結點可以有多於一個的雙親。
(2)用網狀模型間接表示多對多聯絡
方法: 將多對多聯絡直接分解成一對多聯絡
3.關係模型
(1)資料的邏輯結構是一張二維表,它由行和列組成。
(2)
- 關係(Relation):一個關係對應通常說的一張表
- 元組(Tuple):表中的一行即為一個元組
- 屬性(Attribute):表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名
- 主碼(Key):也稱碼鍵。表中的某個屬性組,它可以唯一確定一個元組
- 域(Domain):是一組具有相同資料型別的值的集合。屬性的取值範圍來自某個域。
- 分量:元組中的一個屬性值。
- 關係模式:對關係的描述
- 關係名(屬性1,屬性2,…,屬性n)
例如:學生(學號,姓名,年齡,性別,系名,年級)
(3)關係的規範化條件:關係的每一個分量必須是一個不可分割的資料項,不允許表中還有表。
(4)關係的完整性約束條件
- 實體完整性
- 參照完整性
- 使用者定義的完整性
四、資料庫系統的結構
1.資料庫系統的三級模式結構:模式,外模式,內模式
(1)模式:資料庫中全體資料的邏輯結構和特徵的描述;v一個數據庫只有一個模式;是資料庫系統模式結構的中間層
(2)外模式(子模式或使用者模式):n區域性資料的邏輯結構和特徵的描述;n模式與外模式的關係:一對多;n外模式與應用的關係:一對多
(3)內模式:n是資料物理結構和儲存方式的描述;v一個數據庫只有一個內模式
(4)二級映象:
- 外模式/模式映像:保證資料的邏輯獨立性
- 模式/內模式映像:保證資料的物理獨立性
五、資料庫系統的組成
(1).資料庫管理員(DBA)具體職責
a. 決定資料庫中的資訊內容和結構
b. 決定資料庫的儲存結構和存取策略
c. 定義資料的安全性要求和完整性約束條件
d.監控資料庫的使用和執行
- 週期性轉儲資料庫:資料檔案;日誌檔案
- 系統故障恢復
- 介質故障恢復
- 監視審計檔案
e. 資料庫的改進和重組
- 效能監控和調優
- 定期對資料庫進行重組織,以提高系統的效能
- 需求增加和改變時,資料庫須需要重構造
(2).系統分析員
- 負責應用系統的需求分析和規範說明
- 與使用者及資料庫管理員結合,確定系統的硬軟體配置
- 參與資料庫系統的概要設計
(3).資料庫設計人員
- 參加使用者需求調查和系統分析
- 確定資料庫中的資料
- 設計資料庫各級模式
(4).應用程式設計師
- 設計和編寫應用系統的程式模組
- 進行除錯和安裝