資料庫總結——緒論
第一章緒論
1.1 資料庫系統概述
1,資料庫技術產生於六十年代末,是資料管理的有效技術,是電腦科學的重要分支。
2,資料庫技術是資訊系統的核心和基礎,它的出現極大地促進了計算機應用向各行各業的滲透。
3,資料庫已經成為每個人生活中不可缺少的部分。
資料庫的4個基本概念
資料(Data)
資料庫(Database)
資料庫管理系統(DBMS)
資料庫系統(DBS)
資料(Data)是資料庫中儲存的基本物件
資料的定義
描述事物的符號記錄
資料的種類
數字、文字、圖形、影象、音訊、視訊、學生的檔案記錄等
資料的含義稱為資料的語義,資料與其語義是不可分的。
資料庫的定義
資料庫(Database,簡稱DB)是長期儲存在計算機內、有組織的、可共享的大量資料的集合。
1,資料庫的基本特徵
2,資料按一定的資料模型組織、描述和儲存
3,可為各種使用者共享
4,冗餘度較小
5,資料獨立性較高
6,易擴充套件
什麼是資料庫管理系統
位於使用者與作業系統之間的一層資料管理軟體
是基礎軟體,是一個大型複雜的軟體系統
資料庫管理系統的用途
科學地組織和儲存資料、高效地獲取和維護資料
資料定義功能
提供資料定義語言(DDL)
定義資料庫中的資料物件
資料組織、儲存和管理
分類組織、儲存和管理各種資料
確定組織資料的檔案結構和存取方式
實現資料之間的聯絡
提供多種存取方法提高存取效率
資料操縱功能
1,提供資料操縱語言(DML)
2,實現對資料庫的基本操作 (查詢、插入、刪除和修改)
資料庫的事務管理和執行管理
1,資料庫在建立、執行和維護時由資料庫管理系統統一管理和控制
2,保證資料的安全性、完整性、多使用者對資料的併發使用
3,發生故障後的系統恢復
資料庫的建立和維護功能
1,資料庫初始資料的裝載和轉換
2,資料庫轉儲、恢復功能
3,資料庫的重組織
4,效能監視、分析等
其它功能
1,資料庫管理系統與網路中其它軟體系統的通訊
2,資料庫管理系統系統之間的資料轉換
3,異構資料庫之間的互訪和互操作
資料庫系統(Database System,簡稱DBS)
資料庫系統的構成
1,資料庫
2,資料庫管理系統(及其應用開發工具)
3,應用程式
4,資料庫管理員
資料管理技術的產生和發展
什麼是資料管理
1,對資料進行分類、組織、編碼、儲存、檢索和維護
2,資料處理的中心問題
資料管理技術的發展過程
1,人工管理階段(20世紀50年代中之前)
2,檔案系統階段(20世紀50年代末--60年代中)
3,資料庫系統階段(20世紀60年代末--現在)
資料管理技術的發展動力
1,應用需求的推動
2,計算機硬體的發展
3,計算機軟體的發展
人工管理階段
時期
20世紀50年代中之前
產生的背景
1,應用背景 科學計算
2,硬體背景 無直接存取儲存裝置
3,軟體背景 沒有作業系統
4,處理方式 批處理
特點
1,資料的管理者:使用者(程式設計師),資料不儲存
2,資料面向的物件:某一應用程式
3,資料的共享程度:無共享、冗餘度極大
4,資料的獨立性:不獨立,完全依賴於程式
5,資料的結構化:無結構
6,資料控制能力:應用程式自己控制
檔案系統階段
時期
20世紀50年代末--60年代中
產生的背景
應用背景 科學計算、資料管理
硬體背景 磁碟、磁鼓
軟體背景 有檔案系統
處理方式 聯機實時處理、批處理
特點
1,資料的管理者:檔案系統,資料可長期儲存
2,資料面向的物件:某一應用
3,資料的共享程度:共享性差、冗餘度大
4,資料的結構化:記錄內有結構,整體無結構
5,資料的獨立性:獨立性差
6,資料控制能力:應用程式自己控制
資料庫系統階段
時期
20世紀60年代末以來
產生的背景
1,應用背景 大規模資料管理
2,硬體背景 大容量磁碟、磁碟陣列
3,軟體背景 有資料庫管理系統
4,處理方式 聯機實時處理,分佈處理,批處理
檔案系統到資料庫系統,標誌著資料管理技術的飛躍
資料庫系統的特點
1,資料結構化
2,資料的共享性高,冗餘度低且易擴充
3,資料獨立性高
4,資料由資料庫管理系統統一管理和控制
資料的整體結構化是資料庫的主要特徵之一
整體結構化
1,不再僅僅針對某一個應用,而是面向全組織
2,不僅資料內部結構化,整體是結構化的,資料之間具有聯絡
3,資料記錄可以變長
4,資料的最小存取單位是資料項
資料的用資料模型描述,無需應用程式定義
資料面向整個系統,可以被多個使用者、多個應用共享使用。
資料共享的好處
1,減少資料冗餘,節約儲存空間
2,避免資料之間的不相容性與不一致性
3,使系統易於擴充
物理獨立性
指使用者的應用程式與資料庫中資料的物理儲存是相互獨立的。當資料的物理儲存改變了,應用程式不用改變。
邏輯獨立性
指使用者的應用程式與資料庫的邏輯結構是相互獨立的。資料的邏輯結構改變了,應用程式不用改變。
資料獨立性由資料庫管理系統的二級映像功能來保證。
資料庫管理系統提供的資料控制功能
(1)資料的安全性(Security)保護
保護資料以防止不合法的使用造成的資料的洩密和破壞。
(2)資料的完整性(Integrity)檢查
保證資料的正確性、有效性和相容性。
(3)併發(Concurrency)控制
對多使用者的併發操作加以控制和協調,防止相互干擾而得到錯誤的結果。
(4)資料庫恢復(Recovery)
將資料庫從錯誤狀態恢復到某一已知的正確狀態。
資料庫是長期儲存在計算機內有組織的大量的共享的資料集合。
可以供各種使用者共享,具有最小冗餘度和較高的資料獨立性。
資料庫管理系統在資料庫建立、運用和維護時對資料庫進行統一控制,以保證資料的完整性、安全性,並在多使用者同時使用資料庫時進行併發控制,在發生故障後對資料庫進行恢復。
資料模型
- 資料模型是對顯示世界資料特徵的抽象。
- 通俗的將資料模型就是現實世界的模擬。
- 資料模型應滿足三方面要求:
能比較真實的模擬現實世界
容易為人所理解
便於在計算機上實現
- 資料模型是資料庫系統的核心和基礎
兩類資料模型
資料模型分為兩類(兩個不同的層次)
(1) 概念模型 也稱資訊模型,它是按使用者的觀點來對資料和資訊建模,用於資料庫設計。
(2) 邏輯模型和物理模型
邏輯模型主要包括網狀模型、層次模型、關係模型、面向物件資料模型、物件關係資料模型、半結構化資料模型等。按計算機系統的觀點對資料建模,用於DBMS實現。
物理模型是對資料最底層的抽象,描述資料在系統內部的表示方式和存取方法,在磁碟或磁帶上的儲存方式和存取方法。
客觀物件的抽象過程---兩步抽象
現實世界中的客觀物件抽象為概念模型;
將現實世界抽象為資訊世界
把概念模型轉換為某一資料庫管理系統支援的資料模型。
將資訊世界轉換為機器世界
概念模型
- 概念模型的用途
- 概念模型用於資訊世界的建模
- 是現實世界到機械世界的一箇中間層次
- 是資料庫設計的有力工具
- 資料庫設計人員和使用者之間進行交流的語言
- 對概念模型的基本要求
- 較強的語義表達能力
- 簡單,清晰,易於使用者理解
(1)實體(Entity)
客觀存在並可相互區別的事物稱為實體。
可以是具體的人、事、物或抽象的概念。
(2)屬性(Attribute)
實體所具有的某一特性稱為屬性。
一個實體可以由若干個屬性來刻畫。
(3)碼(Key)
唯一標識實體的屬性集稱為碼。
(4)實體型(Entity Type)
用實體名及其屬性名集合來抽象和刻畫同類實體稱為
實體型
(5)實體集(Entity Set)
同一型別實體的集合稱為實體集
(6)聯絡(Relationship)
現實世界中事物內部以及事物之間的聯絡在資訊世界
中反映為實體(型)內部的聯絡和實體(型)之間的聯絡。
1,實體內部的聯絡通常是指組成實體的各屬性之間的聯絡
2,實體之間的聯絡通常是指不同實體集之間的聯絡
3,實體之間的聯絡有一對一、一對多和多對多等多種型別
資料模型的組成要素
資料結構
資料操作
資料的完整性約束條件
資料模型的資料結構
描述資料庫的組成物件,以及物件之間的聯絡
描述的內容
1. 與物件的型別、內容、性質有關
2. 與資料之間聯絡有關
資料結構是對系統靜態特性的描述
資料操作
對資料庫中各種物件(型)的例項(值)允許執行的
操作的集合,包括操作及有關的操作規則
資料操作的型別
查詢
更新(包括插入、刪除、修改)
資料模型對操作的定義
1,操作的確切含義
2,操作符號
3,操作規則(如優先順序)
4,實現操作的語言
資料操作是對系統動態特性的描述
資料的完整性約束條件
1,一組完整性規則的集合
2,完整性規則:給定的資料模型中資料及其聯絡所具有的制約和依存規則
3,用以限定符合資料模型的資料庫狀態以及狀態的變化,以保證資料的正確、有效和相容
資料模型對完整性約束條件的定義
1,反映和規定必須遵守的基本的通用的完整性約束條件。
2,提供定義完整性約束條件的機制,以反映具體應用所涉及的資料必須遵守的特定的語義約束條件。
常用的資料模型
層次模型(Hierarchical Model)
網狀模型(Network Model)
關係模型(Relational Model))
面向物件資料模型(Object Oriented Data Model)
物件關係資料模型(Object Relational Data Model)
半結構化資料模型(Semistruture Data Model)
層次模型
層次模型是資料庫系統中最早出現的資料模型
層次資料庫系統的典型代表是IBM公司的IMS(Information Management System)資料庫管理系統
層次模型用樹形結構來表示各類實體以及實體間的聯絡
層次模型
滿足下面兩個條件的基本層次聯絡的集合為層次模型
1. 有且只有一個結點沒有雙親結點,這個結點稱為根結點
2. 根以外的其它結點有且只有一個雙親結點
層次模型中的幾個術語
根結點,雙親結點,兄弟結點,葉結點
層次模型的特點:
1,結點的雙親是唯一的
2,只能直接處理一對多的實體聯絡
3,每個記錄型別可以定義一個排序欄位,也稱為碼欄位
4,任何記錄值只有按其路徑檢視時,才能顯出它的全部意義
5,沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在
層次模型的資料操縱
查詢
插入
刪除
更新
層次模型的完整性約束條件
1,無相應的雙親結點值就不能插入子女結點值
2,如果刪除雙親結點值,則相應的子女結點值也被同時刪除
3,更新操作時,應更新所有相應記錄,以保證資料的一致性
優點
1,層次模型的資料結構比較簡單清晰
2,查詢效率高,效能優於關係模型,不低於網狀模型
3,層次資料模型提供了良好的完整性支援
缺點
1,結點之間的多對多聯絡表示不自然
2,對插入和刪除操作的限制多,應用程式的編寫比較複雜
3,查詢子女結點必須通過雙親結點
4,層次命令趨於程式化
網狀模型
網狀資料庫系統採用網狀模型作為資料的組織方式
典型代表是DBTG系統:
1,亦稱CODASYL系統
2,20世紀70年代由DBTG提出的一個系統方案
實際系統
1,Cullinet Software公司的 IDMS
2,Univac公司的 DMS1100
3,Honeywell公司的IDS/2
4,HP公司的IMAGE
網狀模型
滿足下面兩個條件的基本層次聯絡的集合:
1. 允許一個以上的結點無雙親;
2. 一個結點可以有多於一個的雙親。
表示方法(與層次資料模型相同)
實體型:用記錄型別描述
每個結點表示一個記錄型別(實體)
屬性:用欄位描述
每個記錄型別可包含若干個欄位
聯絡:用結點之間的連線表示記錄型別(實體)之
間的一對多的父子聯絡
網狀模型與層次模型的區別
1,網狀模型允許多個結點沒有雙親結點
2,網狀模型允許結點有多個雙親結點
3,網狀模型允許兩個結點之間有多種聯絡(複合聯絡)
4,網狀模型可以更直接地描述現實世界
5,層次模型實際上是網狀模型的一個特例
多對多聯絡在網狀模型中的表示
1,用網狀模型間接表示多對多聯絡
2,方法:
將多對多聯絡直接分解成一對多聯絡
網狀資料庫系統(如DBTG)對資料操縱加
了一些限制,提供了一定的完整性約束
1,碼:唯一標識記錄的資料項的集合
2,一個聯絡中雙親記錄與子女記錄之間是一對多聯絡
3,支援雙親記錄和子女記錄之間某些約束條件
優點
1,能夠更為直接地描述現實世界,如一個結點可以有多個雙親
2,具有良好的效能,存取效率較高
缺點
1,結構比較複雜,而且隨著應用環境的擴大,資料庫的結構就變得越來越複雜,不利於終端使用者掌握
2,DDL、DML語言複雜,使用者不容易使用
3,記錄之間聯絡是通過存取路徑實現的,使用者必須瞭解系統結構的細節
關係模型
1,關係資料庫系統採用關係模型作為資料的組織方式
2,1970年美國IBM公司San Jose研究室的研究員E.F.Codd首次提出了資料庫系統的關係模型
3,計算機廠商新推出的資料庫管理系統幾乎都支援關係模型
關係(Relation)
一個關係對應通常說的一張表
元組(Tuple)
表中的一行即為一個元組
屬性(Attribute)
表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名
主碼(Key)
也稱碼鍵。表中的某個屬性組,它可以唯一確定一個元組
域(Domain)
是一組具有相同資料型別的值的集合。屬性的取值範圍來自某個域。
分量
元組中的一個屬性值。
關係模式
對關係的描述
關係名(屬性1,屬性2,…,屬性n)
學生(學號,姓名,年齡,性別,系名,年級)
關係術語 |
一般表格的術語 |
關係名 |
表名 |
關係模式 |
表頭(表格的描述) |
關係 |
(一張)二維表 |
元組 |
記錄或行 |
屬性 |
列 |
屬性名 |
列名 |
屬性值 |
列值 |
分量 |
一條記錄中的一個列值 |
非規範關係 |
表中有表(大表中嵌有小表) |
資料操作是集合操作,操作物件和操作結果都是關係
查詢
插入
刪除
更新
存取路徑對使用者隱蔽,使用者只要指出“幹什麼”,不必詳細說明“怎麼幹”
關係的完整性約束條件
實體完整性
參照完整性
使用者定義的完整性
優點
建立在嚴格的數學概念的基礎上
概念單一
1,實體和各類聯絡都用關係來表示
2,對資料的檢索結果也是關係
關係模型的存取路徑對使用者透明
1,具有更高的資料獨立性,更好的安全保密性
2,簡化了程式設計師的工作和資料庫開發建立的工作
缺點
1,存取路徑對使用者透明,查詢效率往往不如格式化資料模型
2,為提高效能,必須對使用者的查詢請求進行優化,增加了開發資料庫管理系統的難度
資料庫系統的結構
從資料庫應用開發人員角度看,資料庫系統通常採用三級模式結構,是資料庫系統內部的系統結構
從資料庫終端使用者角度看,資料庫系統的結構分為:
1,單使用者結構
2,主從式結構
3,分散式結構
4,客戶-伺服器
5,瀏覽器-應用伺服器/資料庫伺服器多層結構等
資料庫系統模式的概念
“型” 和“值” 的概念
型(Type)
對某一類資料的結構和屬性的說明
值(Value)
是型的一個具體賦值
例如
學生記錄:
(學號,姓名,性別,系別,年齡,籍貫)
一個記錄值:
(201315130,李明,男,計算機系,19,江蘇南京市)
模式(Schema)
1,資料庫邏輯結構和特徵的描述
2,是型的描述,不涉及具體值
3,反映的是資料的結構及其聯絡
4,模式是相對穩定的
例項(Instance)
1,模式的一個具體值
2,反映資料庫某一時刻的狀態
3,同一個模式可以有很多例項
4,例項隨資料庫中的資料的更新而變動
資料庫系統的三級模式結構
模式(Schema)
外模式(External Schema)
內模式(Internal Schema)
模式(也稱邏輯模式)
1,資料庫中全體資料的邏輯結構和特徵的描述
2,所有使用者的公共資料檢視
一個數據庫只有一個模式
模式的地位:是資料庫系統模式結構的中間層
1,與資料的物理儲存細節和硬體環境無關
2,與具體的應用程式、開發工具及高階程式設計語言無關
模式的定義
資料的邏輯結構(資料項的名字、型別、取值範圍等)
資料之間的聯絡
資料有關的安全性、完整性要求
外模式(也稱子模式或使用者模式)
資料庫使用者(包括應用程式設計師和終端使用者)使用的區域性資料的邏輯結構和特徵的描述
資料庫使用者的資料檢視,是與某一應用有關的資料的邏輯表示
外模式的地位:介於模式與應用之間
一,模式與外模式的關係:一對多
1,外模式通常是模式的子集
2,一個數據庫可以有多個外模式。反映了不同的使用者的應用需求、看待資料的方式、對資料保密的要求
3,對模式中同一資料,在外模式中的結構、型別、長度、保密級別等都可以不同
二,外模式與應用的關係:一對多
1,同一外模式也可以為某一使用者的多個應用系統所使用
2,但一個應用程式只能使用一個外模式
外模式的用途
1,保證資料庫安全性的一個有力措施
2,每個使用者只能看見和訪問所對應的外模式中的資料
內模式(也稱儲存模式)
一,是資料物理結構和儲存方式的描述
二,是資料在資料庫內部的表示方式
1,記錄的儲存方式(例如,順序儲存,按照B樹結構儲存,
按hash方法儲存等)
2,索引的組織方式
3,資料是否壓縮儲存
4,資料是否加密
5,資料儲存記錄結構的規定
一個數據庫只有一個內模式
資料庫的二級映像功能與資料獨立性
一,三級模式是對資料的三個抽象級別
二,二級映象在資料庫管理系統內部實現這三個抽象層次的聯絡和轉換
1,外模式/模式映像
2,模式/內模式映像
模式:描述的是資料的全域性邏輯結構
外模式:描述的是資料的區域性邏輯結構
同一個模式可以有任意多個外模式
每一個外模式,資料庫系統都有一個外模式/模式映象,定義外模式與模式之間的對應關係
映象定義通常包含在各自外模式的描述中
保證資料的邏輯獨立性
當模式改變時,資料庫管理員對外模式/模式映象作相應改變,使外模式保持不變
應用程式是依據資料的外模式編寫的,應用程式不必修改,保證了資料與程式的邏輯獨立性,簡稱資料的邏輯獨立性
模式/內模式映象定義了資料全域性邏輯結構與儲存結構之間的對應關係。
例如,說明邏輯記錄和欄位在內部是如何表示的
資料庫中模式/內模式映象是唯一的
該映象定義通常包含在模式描述中
保證資料的物理獨立性
當資料庫的儲存結構改變了(例如選用了另一種儲存結構),資料庫管理員修改模式/內模式映象,使模式保持不變。
應用程式不受影響。保證了資料與程式的物理獨立性,簡稱資料的物理獨立性。
資料庫模式
即全域性邏輯結構是資料庫的中心與關鍵
獨立於資料庫的其他層次
設計資料庫模式結構時應首先確定資料庫的邏輯模式
資料庫的內模式
依賴於它的全域性邏輯結構
獨立於資料庫的使用者檢視,即外模式
獨立於具體的儲存裝置
將全域性邏輯結構中所定義的資料結構及其聯絡按照一定的物理儲存策略進行組織,以達到較好的時間與空間效率
資料庫的外模式
面向具體的應用程式
定義在邏輯模式之上
獨立於儲存模式和儲存裝置
當應用需求發生較大變化,相應外模式不能滿足其檢視要求時,該外模式就得做相應改動
設計外模式時應充分考慮到應用的擴充性
特定的應用程式
在外模式描述的資料結構上編制的
依賴於特定的外模式
與資料庫的模式和儲存結構獨立
不同的應用程式有時可以共用同一個外模式
資料庫的二級映像
保證了資料庫外模式的穩定性
從底層保證了應用程式的穩定性,除非應用需求本身發生變化,否則應用程式一般不需要修改
資料與程式之間的獨立性,使得資料的定義和描述可以從應用程式中分離出去
資料的存取由資料庫管理系統管理
簡化了應用程式的編制
大大減少了應用程式的維護和修改
資料庫系統的組成
資料庫
資料庫管理系統(及其開發工具)
應用程式
資料庫管理員
硬體平臺及資料庫
軟體
人員
資料庫系統對硬體資源的要求
足夠大的記憶體
足夠的大的磁碟或磁碟陣列等裝置
較高的通道能力,提高資料傳送率
資料庫管理系統
支援資料庫管理系統執行的作業系統
與資料庫介面的高階語言及其編譯系統
以資料庫管理系統為核心的應用開發工具
為特定應用環境開發的資料庫應用系統
人 員
資料庫管理員
系統分析員和資料庫設計人員
應用程式設計師
終端使用者
資料庫管理員(DBA)
具體職責:
1. 決定資料庫中的資訊內容和結構
2. 決定資料庫的儲存結構和存取策略
3. 定義資料的安全性要求和完整性約束條件
4.監控資料庫的使用和執行
週期性轉儲資料庫
資料檔案
日誌檔案
系統故障恢復
介質故障恢復
監視審計檔案
5. 資料庫的改進和重組
效能監控和調優
定期對資料庫進行重組織,以提高系統的效能
需求增加和改變時,資料庫須需要重構造
系統分析員
負責應用系統的需求分析和規範說明
與使用者及資料庫管理員結合,確定系統的硬軟體配置
參與資料庫系統的概要設計
資料庫設計人員
參加使用者需求調查和系統分析
確定資料庫中的資料
設計資料庫各級模式
設計和編寫應用系統的程式模組
進行除錯和安裝
使用者
使用者是指終端使用者(End User)。終端使用者通過應用系統的使用者介面使用資料庫。
1. 偶然使用者
不經常訪問資料庫,但每次訪問資料庫時往往需要不同的資料庫資訊
企業或組織機構的高中級管理人員
2. 簡單使用者
主要工作是查詢和更新資料庫
銀行的職員、機票預定人員、旅館總檯服務員
3. 複雜使用者
工程師、科學家、經濟學家、科技工作者等
直接使用資料庫語言訪問資料庫,甚至能夠基於資料庫管理系統的應用程式介面編制自己的應用程式