數(shù)據(jù)庫備考--引言部分知識概念
1.1 數(shù)據(jù)庫的系統(tǒng)應(yīng)用??
1.數(shù)據(jù)庫的基本特性
? ? 數(shù)據(jù)非結(jié)構(gòu)化、數(shù)據(jù)獨立性、數(shù)據(jù)冗余小,易擴充、統(tǒng)一管理和控制,給用戶提供數(shù)據(jù)的抽象視圖
2.使用數(shù)據(jù)庫的方式
? ? 1. 聯(lián)機事務(wù)處理
? ? 2. 數(shù)據(jù)分析
3.三代數(shù)據(jù)庫系統(tǒng)
? ? 第一代網(wǎng)狀/層次模型數(shù)據(jù)庫
? ? 第二代關(guān)系模型數(shù)據(jù)庫
? ? 第三代面向?qū)ο蟮臄?shù)據(jù)庫
1.2 數(shù)據(jù)庫系統(tǒng)的目標(biāo)
1.文件處理系統(tǒng)的弊端
? ? 1. 數(shù)據(jù)的冗余與不一致性
? ? 2. 數(shù)據(jù)訪問困難
? ? 3. 數(shù)據(jù)孤立
? ? 4. 完整性問題
? ? 5. 原子性問題:操作同時發(fā)生或者都不發(fā)生
? ? 6. 并發(fā)訪問異常
? ? 7. 安全性問題
2.一致性約束的概念
? ? 數(shù)據(jù)庫中所存儲數(shù)據(jù)的值必須滿足某種特定類型,用來確保數(shù)據(jù)的準(zhǔn)確性和一致性
3.完全性約束的概念
? ? 為了防止不符合規(guī)范的數(shù)據(jù)進入數(shù)據(jù)庫,在用戶對數(shù)據(jù)進行插入、修改、刪除等操作時,DBMS自動按照一定的約束條件對數(shù)據(jù)進行監(jiān)測,使不符合規(guī)范的數(shù)據(jù)不能進入數(shù)據(jù)庫,以確保數(shù)據(jù)庫中存儲的數(shù)據(jù)正確、有效、相容
1.3 數(shù)據(jù)視圖
1.數(shù)據(jù)模型的概念
? ? 一個描述數(shù)據(jù)、數(shù)據(jù)聯(lián)系、數(shù)據(jù)語義以及一致性約束的概念工具的集合
2.數(shù)據(jù)模型的大致分類
? ? 1. 關(guān)系模型:用表的集合來表示數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系,每個表有多個列,每列有唯一的列名。表也稱作**關(guān)系**
? ? 2. 實體-聯(lián)系模型(E-R):使用稱作**實體**的基本對象的集合,以及這些對象間的聯(lián)系
? ? 3. 半結(jié)構(gòu)化數(shù)據(jù)模型:允許在其數(shù)據(jù)定義中某些相互同類型的數(shù)據(jù)項含有不同的屬性集
? ? 4. 基于對象的數(shù)據(jù)模型:過程可以被存放在數(shù)據(jù)庫系統(tǒng)中,并由數(shù)據(jù)庫系統(tǒng)來執(zhí)行他們
3.數(shù)據(jù)抽象的層次
? ? 由低到高的層次有
? ? 1. 物理層:描述數(shù)據(jù)實際如何存儲的
? ? 2. 邏輯層:描述數(shù)據(jù)庫中存儲什么數(shù)據(jù)以及這些數(shù)據(jù)有什么聯(lián)系
? ? 3. 視圖層:只描述數(shù)據(jù)庫的某個部分
4.實例的概念
? ? 特定時刻存儲在數(shù)據(jù)庫中的信息的集合
5.數(shù)據(jù)庫模式的概念
? ? 數(shù)據(jù)庫的總體設(shè)計
? ? 模式是對數(shù)據(jù)的抽象,數(shù)據(jù)的結(jié)構(gòu)性描述稱為模式;
6.按照**抽象**層次劃分,數(shù)據(jù)庫系統(tǒng)的模式
? ? 1. 物理模式:物理層次描述數(shù)據(jù)庫的設(shè)計
? ? 2. 邏輯模式:邏輯層次描述數(shù)據(jù)庫的設(shè)計
? ? 3. 子模式:描述數(shù)據(jù)庫的不同視圖
7.兩種映像
? ? 1. E-C Mapping:將外模式映射為概念模式,從而支持實現(xiàn)數(shù)據(jù)概念視圖向外部視圖的轉(zhuǎn)換,便于用戶觀察和使用
? ? 2. C-I Mapping:將概念模式映射為內(nèi)模式,從而支持實現(xiàn)數(shù)據(jù)概念視圖向內(nèi)部視圖的轉(zhuǎn)換,便于計算機進行存儲和處理
8.兩個獨立性
? ? 1. 邏輯數(shù)據(jù)獨立性:當(dāng)概念模式變化時,可以不改變外部模式(只需改變E-C Mapping),從而無需改變應(yīng)用程序,外模式到概念模式的映像實現(xiàn)了數(shù)據(jù)的邏輯獨立性。
? ? 2. 物理數(shù)據(jù)獨立性:當(dāng)內(nèi)部模式變化時,可以不改變概念模式(只需改變C-I Mapping) ,從而不改變外部模式,概念模式到內(nèi)模式的映像實現(xiàn)了數(shù)據(jù)的物理獨立性。
9.三大經(jīng)典數(shù)據(jù)類型
? ? 1. 關(guān)系模型:表
? ? 2. 層次模型:樹
? ? 3. 網(wǎng)狀模型:圖
1.4 數(shù)據(jù)庫語言
1.數(shù)據(jù)定義語言(DDL)
? ? 通過特定的DDL語句來說明數(shù)據(jù)庫系統(tǒng)所采用的存儲結(jié)構(gòu)和訪問方式,這種特定的DDL稱作**數(shù)據(jù)存儲和定義**語言。DDL的輸出放在**數(shù)據(jù)字典**中,數(shù)據(jù)字典包含**元數(shù)據(jù)**,元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù)
2.完整性約束的分類
? ? 1. 域約束:每個屬性必須對應(yīng)于一個所有可能的取值構(gòu)成的域
? ? 2. 引用完整性:確保一個關(guān)系中給定屬性集上的取值也在另一關(guān)系的某一屬性集的取值中出現(xiàn)
? ? 3. 授權(quán) :對于不同的用戶在數(shù)據(jù)庫中的不同數(shù)據(jù)值上允許不同的訪問類型。
? ? ? ? 常見授權(quán)有:
? ? ? ? 1. 讀權(quán)限
? ? ? ? 2. 插入權(quán)限
? ? ? ? 3. 更新權(quán)限
? ? ? ? 4. 刪除權(quán)限
3.數(shù)據(jù)操縱語言(DML)的概念
? ? 使得用戶可以訪問和操縱那些按照某種適當(dāng)數(shù)據(jù)模型組織起來的數(shù)據(jù)
4.數(shù)據(jù)操縱語言的訪問類型
? ? 1. 對存儲在數(shù)據(jù)庫中的信息進行檢索
? ? 2. 向數(shù)據(jù)庫中插入新的信息
? ? 3. 從數(shù)據(jù)庫中刪除信息
? ? 4. 修改數(shù)據(jù)庫中存儲的信息
5.數(shù)據(jù)操縱語言的類型
? ? 1. 過程化的DML:要求用戶指定需要什么數(shù)據(jù)以及如何獲得這些數(shù)據(jù)
? ? 2. 聲明式的DML(非過程化的DML):只要求用戶指定需要什么數(shù)據(jù),而不必指明如何獲得這些數(shù)據(jù)
6.查詢語言(DQL)
? ? DML中涉及信息檢索的部分稱作查詢語言
7.SQL數(shù)據(jù)操縱語言
? ? SQL查詢語言是非過程化的。一個查詢以多個或一個表作為輸入,總是僅返回一個表
8.從應(yīng)用程序訪問操作系統(tǒng)
? ? 系統(tǒng)是由應(yīng)用和數(shù)據(jù)庫組合而成的。最通用訪問數(shù)據(jù)庫的辦法是使用應(yīng)用程序接口(過程集合),它可以用來將DML和DDL語句發(fā)送給數(shù)據(jù)庫,再取回結(jié)果
? ? ? ? 常見的應(yīng)用程序接口有:
? ? ? ? 1. ODBC
? ? ? ? 2. JDBC
? ? ? ? 3. ADO.NET
? ? ? ? 4. PDO
9.常見的數(shù)據(jù)庫
? ? 1. Oracle
? ? 2. Sybase
? ? 3. SQL Server
? ? 4. DB 2
? ? 5. MS Acess
? ? 6. XML
10.數(shù)據(jù)控制語言(DCL)
? ? 用來授權(quán)或回收訪問數(shù)據(jù)庫的某種特權(quán),并控制數(shù)據(jù)庫操縱事務(wù)發(fā)生的時間及效果,能夠?qū)?shù)據(jù)庫進行監(jiān)視
1.5 數(shù)據(jù)庫設(shè)計
1.規(guī)范化的概念
? ? 將所有屬性集輸入,生成一組關(guān)系表
1.6 數(shù)據(jù)庫引擎
1.數(shù)據(jù)庫部件的大致分類
? ? 1. 存儲管理器
? ? 2. 查詢處理器
? ? 3. 事務(wù)管理部件
2.存儲管理器的部件
? ? 1. 權(quán)限及完整性管理器:檢測是否滿足完整性約束,檢查試圖訪問數(shù)據(jù)的用戶的權(quán)限
? ? 2. 事務(wù)管理器:系統(tǒng)發(fā)生故障時,保證原子性
? ? 3. 文件管理器:管理次哦按存儲空間分配,管理磁盤上存儲信息的數(shù)據(jù)結(jié)構(gòu)
? ? 4. 緩沖區(qū)管理器: 負(fù)責(zé)將數(shù)據(jù)從磁盤讀到內(nèi)存中,并決定哪些應(yīng)被緩沖到內(nèi)存中
3.存儲管理器的數(shù)據(jù)結(jié)構(gòu):
? ? 1. 數(shù)據(jù)文件:存儲數(shù)據(jù)庫本身
? ? 2. 數(shù)據(jù)字典:存儲關(guān)于數(shù)據(jù)庫結(jié)構(gòu)的元數(shù)據(jù),特別是數(shù)據(jù)庫模式
? ? 3. 索引:提供對數(shù)據(jù)項的快速訪問
4.查詢處理器的組件
? ? 1. DDL解釋器:解釋DDL語句并將定義記錄在數(shù)據(jù)字典中
? ? 2. DML編譯器:將查詢語言中DML語句翻譯為包括一系列查詢執(zhí)行引擎能理解的低級指令的執(zhí)行方案
? ? 3. 查詢執(zhí)行引擎:執(zhí)行DML編譯器產(chǎn)生的低級指令
1.7 數(shù)據(jù)庫和應(yīng)用體系結(jié)構(gòu)
三層體系結(jié)構(gòu)
? ? 1. 前端
? ? 2. 應(yīng)用服務(wù)器
? ? 3. 數(shù)據(jù)庫系統(tǒng)
數(shù)據(jù)庫系統(tǒng)構(gòu)成的要素
? ? 1. 數(shù)據(jù)庫(DB)
? ? 2. 數(shù)據(jù)庫管理系統(tǒng)(DBMS)
? ? 3. 數(shù)據(jù)庫應(yīng)用(DBAP)
? ? 4. 數(shù)據(jù)庫管理員(DBA)
? ? 5. 計算機基本系統(tǒng)