概論一基礎篇-1緒論
1.1 資料庫系統概述
1.1.1資料庫四個基本概念
資料Data、資料庫(DataBase - DB)、資料庫管理系統(DataBase Management System - DBMS)、資料庫系統(DataBase System - DBS)
1-資料Data
- 定義:描述事物的符號記錄稱為資料
資料的語義:資料含義(資料語義與資料不可分)
2-資料庫DataBase - DB
- 定義:資料庫是長期儲存在計算機內、有組織的、可共享的大量資料的集合。(資料庫中的資料按一定的資料模型組織、描述和儲存,具有較小的冗餘度、較高的資料獨立性和易擴充套件性,並可為各種使用者共享。)
三個基本特點:永久儲存、有組織和可共享
3-資料庫管理系統 - DBMS
- 定義:位於使用者和作業系統之間的資料管理軟體,用於建立、使用和維護資料庫。
DBMS主要功能:
- 資料定義功能:
資料庫管理系統提供資料定義語言(Data Definition Language - DDL),使用者可通過它方便地對資料庫中的資料物件的組成與結構進行定義。 - 資料操縱功能
DBMS提供資料操縱語言(Data Manipulation Language - DML),使用者可通過它操縱資料,實現對資料庫的基本操作。 - 資料組織、儲存和管理
- 資料庫事務管理和執行管理
- 資料庫的建立和維護功能(主要有以下四點)
- 資料庫初始資料的輸入、轉換功能
- 資料庫的儲存、恢復功能
- 資料庫的重組織功能
- 效能監視、分析功能
4-資料庫系統 - DBS
- 定義:資料庫系統是由資料庫、資料庫管理系統(及其應用開發工具)、應用程式和資料庫管理員(DBA)組成的儲存、管理、處理和維護資料的系統。
1.1.2 資料庫管理技術的產生和發展
資料管理:對資料進行分類、組織、編碼、儲存、檢索和維護。
發展史(資料庫技術的飛躍)
人工管理階段
特點:
- 資料不儲存
- 應用程式管理資料
- 資料不共享
- 資料不具有獨立性
檔案系統階段
特點:
- 資料可長期儲存
- 由檔案系統管理資料
- 資料共享性差,冗餘度較大
- 資料獨立性差
資料庫系統階段
1.1.3 資料庫系統特點
1.資料結構化
資料庫系統實現整體資料的結構化
整體結構化:資料庫中的資料不再僅僅針對某一個應用,而是面向整個組織或企業;資料內部與整體均是結構化的,資料之間具有聯絡。
2.資料共享性高,冗餘度低且易擴充套件
資料共享的含義及作用:
- 資料共享可大大減少資料冗餘,節約儲存空間。
- 資料共享還能避免你資料之間的不相容性與不一致性。
- 資料庫系統彈性大且易於擴充
3.資料獨立性高
資料獨立性包括物理獨立性和邏輯獨立性
物理獨立性: 指使用者的應用程式和資料庫中資料的物理儲存時相互獨立的。
邏輯獨立性: 使用者的應用程式與資料庫的邏輯結構時相互獨立的。
4.資料由DBMS統一管理和控制
資料庫共享為併發共享(多個使用者可同時存取資料庫中資料甚至同一資料)
如下資料庫中功能:
- 資料安全性保護(保護資料以防止不合法使用造成資料洩密和破壞)
- 資料完整性檢查(資料的正確性、有效性和相容性)
- 併發控制
- 資料庫恢復
總結
- 資料庫是長期儲存在計算機內有組織、大量、共享的資料集合。
- 資料庫可供各種使用者共享,具有最小冗餘度和較高的資料獨立性。
- 資料庫管理系統在資料庫建立、運用和維護時對資料庫進行統一控制,保證資料完整性和安全性,並進行併發控制,發生故障後對資料庫進行恢復。
1.2 資料模型
- 定義:資料模型是對現實資料特徵的抽象,是資料庫系統的核心和基礎。
要求:
- 比較真實地模擬現實世界
- 容易為人所理解
- 便於在計算機上實現
1.2.1 兩類資料模型
- 概念模型:按使用者觀點對資料和資訊建模,主要用於資料庫設計
- 邏輯模型和物理模型
- 邏輯模型(按計算機系統觀點對資料建模,主要用於實現DBMS)
- 層次模型
- 網狀模型
- 關係模型
- 面向物件資料模型
- 物件關係資料模型
- 半結構化資料模型
- 物理模型(對資料最底層的抽象)
- 邏輯模型(按計算機系統觀點對資料建模,主要用於實現DBMS)
1.2.2 概念模型(現實世界到機器世界的一箇中間層,用於資訊世界的建模)
要求:
- 具有較強的語義表達能力,能方便、直接表達應用中的各種語義只是
- 應簡單、清晰、易於理解
1.資訊世界基本概念
- 實體 entity
客觀存在並可相互卻別的事務 - 屬性 attribu
實體所具有的某一特性 - 碼 key
唯一標識實體的屬性集 - 實體型 entity type
用實體名及其屬性名集合來抽象和刻畫同類實體 - 實體集 entiity set
同一型別實體的集合 - 聯絡
- 實體內部的聯絡:組成實體的各屬性之間的聯絡
- 實體之間的聯絡:不同實體集之間的聯絡
- 實體之間的聯絡由一對一、一對多和多對多
2. 概念模型的一種表示方法:實體-聯絡方法
1.2.3 資料模型的組成要素(資料結構、資料操作和完整性約束)
- 資料結構
資料結構描述資料庫的組成物件以及物件之間的聯絡。 - 資料操作
資料操作是指對資料庫中各種物件(型)的例項(值)允許執行的操作的集合,包括操作及有關的操作規則。 - 資料的完整性約束條件 (資料的完整性約束條件是一組完整性規則。(完整性規則是給定的資料模型中資料及其聯絡所具有的制約和一條規則)
- 資料模型應反映和規定其必須遵守的基本的和通用的完整性約束條件
- 資料模型還應提供定義完整性約束條件的機制,以反映具體應用所涉及的資料必須遵守的特定語義約束條件。
1.2.4 常用資料模型
- 層次模型 hierarchical model - 格式化模型
- 網狀模型 network model - 格式化模型
- 關係模型 relational model (MySQL)
- 面向物件資料模型 object oriented data model
- 物件關係資料模型 object relational data model
- 半結構化資料模型 semistructure data model (XML)
1.2.5 層次模型(最早出現,類似於樹結構)
1.資料結構
要求:
- 有且只有一個節點沒有雙親結點(根節點)
- 根以外的其他節點有且只有一個雙親結點
層次模型中每個節點表示一個記錄型別,記錄型別之間的聯絡用節點之間的連線表示(父子間的一對多)。
特點: 任何一個給定的記錄值只能按其層次路徑檢視,沒有一個子女記錄值能脫離雙親記錄值而存在。
2.資料操縱與完整性約束
資料操縱: 查詢、刪除、插入和更新
注:
- 插入時沒有相應的雙親節點值則不能插入新值
- 刪除時若刪除雙親節點值則對應子女節點值也被同時刪除
3.層次模型優缺點
- 優點
- 資料結構簡單清晰
- 層次資料庫查詢效率高(效能優於關係資料庫且不低於網狀資料庫)
- 缺點
- 現實世界眾多模型不適於
- 若一節點有多個雙親節點,則用層次模型較笨拙。
- 查詢子女節點必須通過雙親節點
- 因結構嚴密,層次命令趨於程式化
1.2.6 網狀模型(DBTG系統)
1.資料結構
要求:
- 允許一個以上節點無雙親
- 一個節點可以有多於一個的雙親
網次模型中每個節點表示一個記錄型別,節點之間的連線表示記錄型別之間的父子聯絡(因雙親不唯一聯絡需被命名)
2.資料操縱與完整性約束(以DBTG為例)
- 支援記錄碼的概念
- 保證一個聯絡中雙親記錄和子女記錄之間一對多聯絡
- 可以支援雙親記錄和子女記錄之間的某些約束條件
3.優缺點
- 優點
- 更直觀描述現實世界
- 效能良好,存取效率高
- 缺點
- 結構較複雜(且會趨於更復雜)
- DDL、DML複雜且需嵌入高階語言
- 需通過儲存路徑訪問資料,程式設計複雜。
1.2.7 關係模型(最重要! MySQL)
1.資料結構(建立於嚴格數學概念基礎)
一些術語:
- 關係:一個關係對應一張表 (一張二維表)
- 元組: 表中的一行即為一個元組 (記錄或行)
- 屬性:表中的一列即為一個屬性 (列)
- 碼(key):主鍵,可以唯一確定一個元組
- 域:一組具有相同資料型別的值的集合,屬性的取值來自於某個域(性別:男/女)
- 分量: 元組中的一個屬性值 (一條記錄中的一個列值)
- 關係模式:對關係的描述 - 關係名(屬性1,屬性2,... ,屬性n) (表頭)
關係模型要求關係必須是規範化的(最基本要求:關係中的每一個分量必須是一個不可分的資料項)
網狀模型可以更直觀地描述現實世界,層次模型是網狀模型的一個特例。
2. 關係模型的資料操縱與完整性約束
資料操縱:增刪改查
完整性約束:實體完整性、參照完整性和使用者定義的完整性
關係模型的資料操作都是集合操作,操作物件和操作結果都是關係;
關係模型把存取路徑向使用者隱蔽了,使用者只要指出幹什麼與找什麼,而不必詳細說明怎麼幹或怎麼找。
3.優缺點
- 優點
- 建立於嚴格數學概念基礎
- 關係模型概念單一,資料結構簡單、清晰、易懂
- 存取路徑對使用者隱蔽,有更高的資料獨立性、更好的安全保密性,簡化資料庫建立開發工作
- 缺點: 存取路徑對使用者隱蔽,查詢效率不如格式化資料模型。為提高效能,DBMS需對查詢請求進行優化。
1.3 資料庫系統的結構
1.3.1 資料庫系統模式的概念
資料庫模型有‘型’和‘值’兩個概念,‘型’是對某一類資料的結構和屬性的說明,‘值’是型的一個具體賦值。
可籠統為:型為關係模式,值為一個元組。
模式是資料庫中全體資料的邏輯結構和特徵的描述,僅僅設計型的描述。
模式的一個具體值稱為模式的例項;模式相對穩定而例項相對變動;模式反映資料的結構及其聯絡,例項反映資料庫某一時刻的狀態。
1.3.2 資料庫系統的三級模式結構(外模式、模式、內模式)
1.模式(資料全域性邏輯結構)
- 定義:模式也稱邏輯模式,是資料庫中全體資料的邏輯結構和特徵的描述,是所有使用者的公共資料檢視。
地位:是資料庫系統模式結構的中間層,既不涉及物理儲存與硬體環境,也與應用程式和開發工具無關。
一個數據庫只有一個模式。
2.外模式(資料區域性邏輯結構)
- 定義:外模式也稱子模式或使用者模式,是資料庫使用者能夠看見和使用的區域性資料的邏輯結構和特徵的描述,是資料庫使用者的資料檢視,與某一應用有關的資料的邏輯表示。
外模式通常是模式的子集。一個數據庫可有多個外模式。
DBMS提供外模式資料定義語言(DDL)嚴格定義外模式。
3.內模式
- 定義:內模式也稱儲存模式,一個數據庫只有一個內模式。它是資料物理結構和儲存方式的描述,是資料在資料庫內部的組織方式。
1.3.3 資料庫的二級映像功能與資料獨立性
使系統內部實現這三個抽象層次的聯絡和轉換。
1.外模式/模式映像
模式改變時(關係、屬性的增加...),由資料庫管理員對各個外模式/模式的映像作相應改變,可使外模式保持不變。應用程式依據資料的外模式編寫,從而應用程式不必修改,保證了資料與程式的邏輯獨立性 - 簡稱資料的邏輯獨立性。
2.模式/內模式映像
當資料庫儲存結構改變時(選擇了另一種儲存結構),由資料庫管理員對模式/內模式映像作相應改變,使模式保持不變,從而應用程式也不必改變。保證資料與程式的物理獨立性 - 簡稱物理獨立性
1.4 資料庫系統的組成
資料庫系統一般由資料庫、資料庫管理系統、應用程式和資料庫管理員構成。
1-硬體平臺及資料庫
對硬體資源的要求:
- 記憶體足夠大以存放作業系統、資料庫管理系統核心模組、資料緩衝區和應用程式。
- 磁碟會磁碟陣列等裝置足夠大以存放資料庫
- 系統又較高通道能力以提升資料傳送率。
2-軟體
資料庫系統軟體主要包括:
- 資料庫管理系統
- 支援資料庫管理系統執行的作業系統
- 具有與資料庫介面的高階語言及其編譯系統以開發應用程式
- 以資料庫管理系統為核心的應用開發工具。
- 為特定應用環境開發的資料庫應用系統。
3-人員
- 資料庫管理員 (DataBase Administrator - DBA)
- 決定資料庫資訊內容和結構
- 決定資料庫儲存結構和存取策略
- 定義資料安全性要求和完整性約束條件
- 監控資料庫的使用和執行
- 資料庫的改進和重組、重構
- 系統分析員和資料設計人員
- 系統分析員:負責應用系統的需求分析和規範說明
- 資料庫設計人員:負責資料庫中資料的確定以及資料庫各級模式的設計
- 應用程式設計師
- 使用者