第一章 緒論
1.1數據庫系統概述
1.1.1 數據庫的四個基本概念
數據、數據庫、數據庫管理系統、數據庫系統
1.數據(data)
數據庫中存儲的基本對象。
- 定義:描述事物的符號記錄。
- 種類:數字、文字、視頻、音頻等
- 特征:特征就是數據的語義,數據與其語義是不可分割的。
2.數據庫
是長期存儲在計算機內部、有組織、可共享的、大量的數據的集合。
- 基本特征:數據按照一定的數據模型組織、描述和儲存;可為各種用戶共享;冗余度較小;數據獨立性較高;易擴展。
3.數據庫管理系統
位於用戶與操作系統之間的一層數據管理軟件。用來科學的組織和存儲數據、高效地獲取和維護數據。
4.數據庫系統
在計算機系統中一如數據庫后地系統。
-
數據庫系統的構成
數據庫、操作系統、數據庫管理系統及開發工具、應用系統、數據庫管理員、用戶。
- 特征:數據結構化;數據共享性高,冗余度低且易擴充;數據獨立性搞;數據又數據庫系統統一管理和控制。
1.1.2數據管理技術的產生和發展
-
什么是數據處理:
圍繞着數據所作的工作都可成為數據處理。既對各種數據進行手機、管理、加工、傳播的一系列活動的綜合。
-
什么是數據管理:
對數據進行分類、組織、編譯、存儲、檢索、維護,是數據處理的中心問題。數據管理是數據處理業務的基本環節,而且是任何數據業務處理中必不可少的共有部分。
-
數據管理技術的發展過程
- 人工管理階段
- 文件系統階段
- 數據庫系統階段
1.1.3數據庫系統的特點
- 數據結構化
- 數據的高共享性,冗余度低且易擴充
- 數據的獨立性高
- 物理獨立性:指用戶的應用程序與數據庫中數據的物理存儲時相互獨立的。當數據的物理存儲改變了,應用程序不用改變。
- 邏輯獨立性:指用戶的應用程序與數據庫的邏輯結構是相互獨立的。數據的邏輯結構改變了,應用程序不用改變。
- 數據由數據庫管理系統統一管理和控制
1.2數據模型
1.2.1三種數據模型
- 概念模型:也稱為信息模型,它是按用戶的觀點來對數據和信息建模,用於數據庫設計。
- 邏輯模型:邏輯模型主要包括網狀模型、乘此模型、關系模型、面向對象數據模型、對象關系數據模型、半結構化數據模型等。按照計算機系統的觀點對數據建模,用與DBMS實現。
- 物理模型:物理模型是對數據最底層的抽象,描述數據在系統內部的表示方式和存取方法,在磁盤或磁帶上的存儲方式和存取方法。
1.2.2數據模型的組成要素
數據模型有三個組成要素:數據結構、數據操作、完整性約束條件。
-
數據結構
描述數據庫的組成對象及對象之間的聯系。它是對系統 靜態特性的描述。
-
數據操作
對各種對象的實例允許執行的操作及有關的操作規則。它是對系統動態特性的描述。
-
數據的完整性約束條件
一組完整性規則的集合。
用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效、相容。
1.2.3概念模型
概念模型的用途:它主要用於信息世界的建模,是現實世界到機器世界的一個中間層次。是數據庫設計的有力工具;是數據庫設計人員和用戶之間進行交流的語言。
實體:客觀存在且相互區別的事物。
-
屬性:實體所具有的某一特性。
-
碼:唯一表示實體的屬性集合。
-
域:屬性的取值范圍稱為該屬性的域。
-
實體型:用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型。
-
實體集:同一類型實體的集合成為實體集。
-
聯系:顯示世界中書屋內部以及事物之間的聯系。
1.2.4 最常用的數據模型
- 非關系模型:層次模型、網狀模型
- 關系模型:
- 面向對象模型
- 對象關系模型
1.2.5層次模型
類似於數據結構里面的樹狀結構的東西。
1.2.6網狀模型
對應數據結構里面的圖
1.2.7關系模型
一張二維表
-
術語
-
關系:對應一張表
-
元組:表的一行
-
屬性:表的一列,這一列的名稱叫做屬性名
-
主碼:表中的屬性組可以唯一的確定一個元組
-
域:屬性的取值范圍
-
分量:屬性的取值范圍
-
關系模式:對關系的描述
關系名(屬性1,屬性2,,,屬性3)
-
關系必須是規范化的,滿足一定的規范條件。
關系的每一個分量條件是一個不可分割的數據項,即不存在表中表
關系術語 一般表格的術語 關系名 表名 關系模式 表頭(表格的描述) 關系 (一張)二維表 元組 記錄或行 屬性 列 屬性名 列名 屬性值 列值 分量 一條記錄中的一個列值 非規范關系 表中有表(大表中嵌有小表)
-
-
關系數據模型的操縱
- 查詢
- 插入
- 刪除
- 更新
-
關系數據模型的完整性約束條件
- 實體完整性
- 參照完整性
- 用戶自定義的完整性
-
關系模型的優點
- 建立在嚴格的數學概念的基礎上
- 概念單一
- 關系模型的存取路徑對用戶透明
-
關系模型的缺點
- 存取路徑都用戶透明,查詢效率低
- 提高性能要對用戶查詢的請求進行優化,增加了開發難度。
層次模型 | 網狀模型 | 關系模型 | 面向對象模型 | |
---|---|---|---|---|
創始 | 1968年IBM公司的IMS系統 | 1969 年 CODASYL 的 DBTG 報告 (71 年通過 ) | 1970 年 F.Codd 提出關系模型 | 20 世紀 80 年代 |
數據結構 | 復雜 (樹結構) | 復雜 (有向圖結構) | 簡單 ( 二維表 ) | 復雜 (嵌套遞歸) |
數據聯系 | 通過指針 | 通過指針 | 通過表間的公共屬性 | 通過對象標識 |
查詢語言 | 過程性語言 | 過程性語言 | 非過程性語言 | 面向對象語言 |
典型產品 | IMS | IDS/Ⅱ IMAGE/3000 IDMS TOTAL | Oracle Sybase DB2 SQL Server Informix | ONTOS DB |
盛行期 | 20 世紀 70 年代 | **70 ** 年代至 80 年代中期 | 80 年代至現在 | 90 年代至現在 |
1.3數據庫系統結構
1.3.1數據庫系統模式的概念
- 型:對某一類數據的節后和屬性的說明。(一個類型)
- 值:型的一個具體賦值(一個實例)
- 模式:數據庫邏輯結構和特征的描述。它是型的描述。
- 實例:模式的一個具體值。
1..3.2 數據庫系統的三級模式
- 外模式(子模式或用戶模式):數據庫用戶使用的局部數據的邏輯結構特征的的描述。一個數據庫可以有多個。
- 模式(邏輯模式或概念模式):數據庫中全體數據的邏輯結構和特征的描述。一個數據庫只有一個。
- 內模式(存儲模式): 是數據物理結構和存儲方式的描述,是數據在數據庫內部的表示方式,一個數據庫只有一個內模式。
1.3.3 數據的二級映像功能與數據獨立性
-
二層映射
-
外模式/模式
同一個模式可以有多個外模式。 對每一個外模式 ,數據庫系統都有一個外模式/模式映象,用來定義外模式與模式之間的對應關系,映象定義通常包含在各自外模式的描述中,以 保證數據的邏輯獨立性。
當模式改變時,數據庫管理員修改有關的外模式/模式映象,使外模式保持不變。 應用程序是依據外模式編寫的 ,從而應用程序不必修改,保證了數據與程序的邏輯獨立性。
-
模式/內模式映像
l當數據庫的存儲結構改變了(如 , 選用了另一種存儲結構 ), 數據庫管理員修改模式/內模式映象,使模式保持不變 。
-
1.3.4 數據庫模式
1.4 數據庫系統的組成
硬件平台與數據庫、應用程序、數據庫管理員。
第二章 關系數據庫
2.1 關系數據結構及形式化定義
2.1.1 關系
關系模型中的數據的邏輯結構時一張二維表
-
域:一組具有相同數據類型的值的集合。
-
笛卡爾積:一組域中的所有的值的全排列,不能出現重復。
- 元組:笛卡爾積中的一組取值
- 分量:一組取值中的一項
- 基數:組合出出來的個數
-
關系:笛卡爾積的子集,表示為
-
屬性:列的名字
-
碼
候選碼:關系中某一屬性組的值能唯一標識一個元組,而其自己不能。
關鍵字/主碼:多個候選碼時選擇其中一個。
主屬性:候選碼的諸屬性
非主屬性:不包含在候選碼中的屬性。
-
2.1.2 關系模式
- 關系模式:關系模式是對關系的描述,關系模式是型,關系是值。
- 定義關系模式:R ( U , D , DOM , F )
- R:關系名
- U:組成該關系的屬性名集合
- D:屬性組U中屬性所來自的域
- DOM:屬性向域的映像集合
- F:屬性鍵的數據依賴集合。
- 關系模式和關系
- 關系模式:對關系的描述,靜態的、穩定的、
- 關系:關系模式在某一時刻的狀態或內容。動態的、隨時間不斷變化。
2.1.3 關系數據庫
在一個給定的應用領域中,所有關系的集合構成一個關系數據庫。
2.1.4 關系模型的存儲結構
2. 2關系操作
增、刪、改、查。
2.3關系的完整性
關系的三類完整性約束:實體完整性、參照完整性、用戶定義的完整性。
2.3.1 實體完整性
實體完整性規則:若屬性A是基本關系R的主屬性,則主屬性A不能去空值。
2.3.2 參照完整性
設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F域基本關系S的主碼Ks相對應,則稱F是基本關系R的外碼,基本關系R成為基本參照關系,基本關系S成為被參照關系。
參照完整性規則:若屬性F是基本關系R的外碼,它與基本關系S的主碼Ks相對應。則對於R中每個元組在F上的值必須為一下兩種情況:
- 或者取空值
- 或者等於S中某個元組的主碼值。
實質就是不允許引用不存在的實體。
2.4 關系代數
-
並:
-
差:
-
交:
-
笛卡爾積:
笛卡爾積是把兩列分別放在一起進行排列組合
-
選擇:
-
投影:
-
連接:
- 等值連接:用A=B來選擇。
- 自然連接:要就把兩個關系中進行比較的分量必須是相同的屬性組,並且在結果中把相重復的屬性列去掉。此時記作:
- 懸浮元組:
- 外連接、左外連接、右外連接
-
除:
第1步:將被除關系R的屬性分為象集屬性和結果屬性兩部分:與除關系S相同的屬性屬於象集屬性,不相同的屬性屬於結果屬性。
第2步:在除關系S中,對與被除關系R相同的屬性(象集屬性)進行投影,得到除目標數據集。
第3步:將被除關系R分組,原則:結果屬性值一樣的元組為一組,求每個結果屬性值的象集。
第4步:逐一考察每個組,如果它的象集屬性值中包括除目標數據集,則對應的結果屬性值應 屬於該除法運算結果集。