數(shù)據(jù)庫期末考試(考點以及相關(guān)概念整理)

基本概念

數(shù)據(jù)庫系統(tǒng)的特點

數(shù)據(jù)庫(Database):有組織、冗余度小晨汹,可共享终议、數(shù)據(jù)獨立性高、易擴展的數(shù)據(jù)集合祥山。

????? 數(shù)據(jù)長期存儲

????? 數(shù)據(jù)由DBMS統(tǒng)一管理

????? 數(shù)據(jù)共享程度高

????? 數(shù)據(jù)獨立性高

????? 數(shù)據(jù)整體結(jié)構(gòu)化圃验,冗余小

DBMS的基本功能

1. 數(shù)據(jù)庫定義:定義外模式、 模式缝呕、 內(nèi)模式澳窑、 數(shù)據(jù)庫完整性、 安全保密供常、 存取路徑等

2. 數(shù)據(jù)存忍:提供數(shù)據(jù)的操縱語言以便對數(shù)據(jù)進行查找和增刪改

3. 數(shù)據(jù)庫運行管理:事務(wù)管理、 自動恢復(fù)话侧、 并發(fā)控制栗精、 死鎖檢測或防止、 安全性檢查瞻鹏、 存取控制悲立、 完整性檢查、 日志記錄等

4. 數(shù)據(jù)組織新博、 存儲和管理:數(shù)據(jù)字典薪夕、 用戶數(shù)據(jù)、 存取路徑的組織存儲和管理赫悄, 以便提高存儲空間利用率原献, 并方便存取

5. 數(shù)據(jù)庫的建立和維護:數(shù)據(jù)轉(zhuǎn)換馏慨、 數(shù)據(jù)庫初建、 轉(zhuǎn)儲姑隅、 恢復(fù)写隶、 重組、 重構(gòu)以及性能檢測等

6. 網(wǎng)絡(luò)通信讲仰、 數(shù)據(jù)轉(zhuǎn)換等

DBMS的體系結(jié)構(gòu)

DBMS的系統(tǒng)結(jié)構(gòu)
DBMS的系統(tǒng)組成示意

? 事務(wù)管理器

????– 將關(guān)于事務(wù)動作的消息傳給日志管理器

????– 將關(guān)于何時可以或必須將緩沖區(qū)拷回磁盤的消息傳給緩沖區(qū)管理器

????– 將數(shù)據(jù)庫查詢等操作消息傳給查詢處理器

? 恢復(fù)管理器

????– 當系統(tǒng)崩潰時慕趴, 恢復(fù)管理器被激活

????– 它檢查日志并在必要時利用日志恢復(fù)數(shù)據(jù)

? 日志管理器

????– 維護日志, 記錄所有對數(shù)據(jù)庫的修改操作

????– 必須與緩沖區(qū)管理器打交道鄙陡, 因為對磁盤的訪問是通過緩沖區(qū)管理器來進行的

? 緩沖區(qū)管理器

????– 分配冕房、 管理和回收緩沖區(qū)

????– 決定何時將緩沖區(qū)的數(shù)據(jù)寫回磁盤( 立即修改/延遲修改)


數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)

數(shù)據(jù)庫的三級模式結(jié)構(gòu)

外模式(所有用戶的公共數(shù)據(jù)視圖)、模式(數(shù)據(jù)庫用戶的數(shù)據(jù)視圖趁矾,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示)耙册、內(nèi)模式(數(shù)據(jù)物理存儲和存儲方式的描述)

通過三級模式結(jié)構(gòu)實現(xiàn)了數(shù)據(jù)獨立性


關(guān)系模型

關(guān)系模型的組成要素及其優(yōu)缺點

組成要素

數(shù)據(jù)結(jié)構(gòu):關(guān)系(二維表)

數(shù)據(jù)操作:查詢 / 增 / 刪 / 改

完整性約束條件:實體 / 參照 / 用戶自定義

優(yōu)點

關(guān)系模型是建立在嚴格的數(shù)學(xué)概念的基礎(chǔ)上的。無論實體還是實體之間的聯(lián)系都用關(guān)系來表示毫捣。對數(shù)據(jù)的查詢結(jié)果也是關(guān)系(表)详拙,因此概念單一,其數(shù)據(jù)結(jié)構(gòu)簡單蔓同、清晰溪厘。

關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性牌柄,更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作侧甫。

缺點

由于存取路徑對用戶透明珊佣,查詢效率往往不如非關(guān)系數(shù)據(jù)模型。因此為了提高性能披粟,必須對用戶的查詢請求進行優(yōu)化咒锻,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的負擔。


關(guān)系模型的完整性約束條件及違約處理策略

實體完整性守屉、參照完整性惑艇、用戶自定義完整性

違約處理

1. 實體完整性檢查和違約處理

? ? 插入元組或修改主碼列操作時, DBMS自動檢查和處理:

????????? 主碼值是否唯一拇泛, 如果不唯一則拒絕操作

????????? 主碼各屬性是否為空滨巴, 只要有一個為空就拒絕操作

2.?可能破壞參照完整性的情況及違約處理

破壞參照完整性的情況及違約處理

3. 用戶定義的約束條件檢查和違約處理

????– 插入元組或修改屬性的值時, DBMS檢查屬性上的

????????約束條件是否被滿足

????– 如果不滿足則操作被拒絕執(zhí)行


關(guān)系操作

關(guān)系代數(shù)

特點

????– 運算對象和運算結(jié)果均關(guān)系

????– 關(guān)系代數(shù)運算符包含集合運算符和專門的關(guān)系運算符

????– 傳統(tǒng)的集合運算是從關(guān)系的行的角度進行俺叭,專門的關(guān)系運算不僅涉及行而且涉及列

關(guān)系代數(shù)運算符

專門的關(guān)系運算:選擇恭取、投影、連接(等值連接熄守、自然連接蜈垮、外連接)耗跛、除運算

SQL語句


關(guān)系數(shù)據(jù)理論

如何評判數(shù)據(jù)庫設(shè)計的好壞?(數(shù)據(jù)冗余攒发、 操作異常)

數(shù)據(jù)冗余调塌、 插入異常、 刪除異常惠猿、 更新異常

1NF羔砾、 2NF、 3NF(定義紊扬、 判斷)

范式

數(shù)據(jù)依賴的公理系統(tǒng)(Armstrong公理蜒茄、 最小函數(shù)依賴集 )

Armstrong公理

最小函數(shù)依賴集是指沒有任何冗余的函數(shù)依賴集

性質(zhì): 函數(shù)依賴集F的最小函數(shù)依賴集不一定唯一, 它與求解的次序有關(guān)

定理: 每一個函數(shù)依賴集F均等價于一個最小依賴集F'


數(shù)據(jù)庫設(shè)計

數(shù)據(jù)庫設(shè)計的步驟及各階段完成的任務(wù)

數(shù)據(jù)庫設(shè)計的步驟

各階段的具體任務(wù)

? 需求分析階段 : 準確、 全面和深入地了解和分析用戶需求, 包括數(shù)據(jù)需求和處理需求牛曹。

? 概念結(jié)構(gòu)設(shè)計階段 : 通過對用戶需求進行綜合遣妥、歸納和抽象, 形成一個獨立于具體數(shù)據(jù)庫管理系統(tǒng)的概念模型凛篙。

? 邏輯結(jié)構(gòu)設(shè)計階段 : 將概念結(jié)構(gòu)轉(zhuǎn)換為某個數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型, 并對其進行優(yōu)化。

? 數(shù)據(jù)庫物理設(shè)計階段 : 為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)润讥。

? 數(shù)據(jù)庫實施階段: 運用數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言及其宿主語言, 根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫盘寡, 編制和調(diào)試應(yīng)用程序楚殿, 組織數(shù)據(jù)入庫, 并進行試運行竿痰。

? 數(shù)據(jù)庫運行和維護階段 : 數(shù)據(jù)庫系統(tǒng)在運行過程中必須不斷地對其進行評價脆粥、 調(diào)整和修改。

E-R圖設(shè)計及其到關(guān)系模式的轉(zhuǎn)換

????– 實體——矩形

????– 屬性——橢圓形

????– 聯(lián)系——菱形

????– 關(guān)鍵字—下劃線

E-R圖例子

E-R 模型向關(guān)系模型的轉(zhuǎn)換規(guī)則

????? 一個實體型轉(zhuǎn)換為—個關(guān)系模式

????? 一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式影涉,也可以與任意對應(yīng)的關(guān)系模式合并

????? 一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式变隔,也可以與n端對應(yīng)的關(guān)系模式合并

????? 一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式

????? 三個或三個以上實體間的一個多元聯(lián)系可以轉(zhuǎn)換為一個關(guān)系模式

????? 具有相同碼的關(guān)系模式可以合并


存儲與索引

計算機系統(tǒng)的存儲體系及工作原理


查詢處理與優(yōu)化

關(guān)系查詢處理的步驟


事務(wù)及其ACID特性

事務(wù)( Transaction)

????– 用戶定義的一個對數(shù)據(jù)庫讀寫操作序列

????– 是數(shù)據(jù)庫中不可分割的執(zhí)行單位

????– 是數(shù)據(jù)庫恢復(fù)和并發(fā)控制的基本單位

????– 數(shù)據(jù)庫系統(tǒng)中通常有多個事務(wù)并行運行

ACID特性

? 原子性(Atomicity)

????– 事務(wù)中的操作要么都做, 要么都不做 (All or None)

? 一致性(Consistency)

????– 事務(wù)執(zhí)行的結(jié)果必須使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)

????– 與原子性密切相關(guān)

? 隔離性(Isolation)

????– 并發(fā)執(zhí)行的各事務(wù)不能相互干擾

? 持久性(Durability)

????– 事務(wù)一旦提交蟹倾, 它對數(shù)據(jù)庫的更新不再受后繼操作或故障的影響

★ DBMS中事務(wù)處理必須保證其ACID特性匣缘, 這樣才能保證數(shù)據(jù)庫中數(shù)據(jù)的安全和正確

★ 保證事務(wù)正確執(zhí)行是事務(wù)管理器的工作


數(shù)據(jù)庫恢復(fù)

故障種類及其可能對數(shù)據(jù)庫造成的影響

故障種類

? 事務(wù)故障

????– 錯誤輸入、 運算溢出等導(dǎo)致事務(wù)中斷

????– 這些錯誤有些是不可檢測(如電話號碼輸錯了1位)鲜棠, 有些是可以檢測(如電話號碼輸漏了1位)

????– 通過用戶定義約束肌厨、 DBMS檢查約束并啟動觸發(fā)器的方法可以捕捉并處理那些可被檢測的錯誤

? 介質(zhì)故障

????– 若只是局部的故障, 通常能通過磁盤扇區(qū)的奇偶校驗檢測到

????– 若磁頭損壞豁陆, 將使整個磁盤無法訪問夏哭, 常采用的解決方法是某種RAID模式、 備份献联、 冗余分布拷貝等

? 系統(tǒng)故障

????– 由于系統(tǒng)重啟竖配、 OS軟件故障何址、 DBMS代碼錯誤、 掉電等造成

????– 導(dǎo)致正在執(zhí)行的事務(wù)狀態(tài)丟失进胯, 原因是內(nèi)存的易失性

????– 解決方法是在分離的用爪、 非易失性的日志中記錄所有數(shù)據(jù)庫更新, 必要時進行恢復(fù)

可能對數(shù)據(jù)庫造成的影響

? 數(shù)據(jù)庫本身被破壞胁镐, 使數(shù)據(jù)庫中全部或部分數(shù)據(jù)丟失

????– 如系統(tǒng)故障偎血、 介質(zhì)故障等

? 數(shù)據(jù)庫沒有被破壞, 但因事務(wù)的運行被非正常終止而使數(shù)據(jù)庫數(shù)據(jù)失去一致性(正確性)

????– 如事務(wù)內(nèi)部故障盯漂、 系統(tǒng)故障等

恢復(fù)的實現(xiàn)技術(shù)(轉(zhuǎn)儲颇玷、 日志、 檢查點)

? 數(shù)據(jù)庫恢復(fù)的基本原理

????– 利用存儲在系統(tǒng)別處的冗余數(shù)據(jù)來重建

? 冗余數(shù)據(jù)包括

????– 日志文件

????– 數(shù)據(jù)備份

事務(wù)的原子性與日志

? 事務(wù)的原子性: 事務(wù)要么作為一個整體被執(zhí)行就缆, 要么根本不執(zhí)行帖渠。

? 日志是一個日志記錄的序列, 每個日志記錄記錄這某個事務(wù)的重要操作( 開始竭宰、 更新空郊、 提交或中止等) 。 日志的增長速度非城薪遥快狞甚。

? 事務(wù)的交錯執(zhí)行使日志更復(fù)雜, 僅在事務(wù)結(jié)束后記錄事務(wù)的全過程是不夠的廓旬。

? 在數(shù)據(jù)庫恢復(fù)時哼审, 對故障發(fā)生時已提交的事務(wù)進行重做(Redo), 對未提交的事務(wù)進行撤銷(Undo)孕豹, 從而保證所有事務(wù)的原子性棺蛛。

? 恢復(fù)管理器的第一個任務(wù)就是將所有事務(wù)劃分為已提交事務(wù)和未提交事務(wù)兩類。

支持Undo和Redo的日志記錄

Undo日志規(guī)則

(1) 對每一個更新操作都生成一條undo日志記錄

(2) 如果事務(wù)改變了數(shù)據(jù)庫元素x巩步, 那么日志記錄必須在

x的新值寫回磁盤之前寫到磁盤 (write aheadlogging,WAL);

(3) 如果事務(wù)提交桦踊, 則其Commit日志記錄必須在事務(wù)改變的所有數(shù)據(jù)庫元素已寫到磁盤后再寫磁盤椅野。

推斷: 如果事務(wù)T的Commit日志記錄已到達磁盤,該事務(wù)一定已經(jīng)完成籍胯。

使用Undo日志的恢復(fù)

使用Undo日志的恢復(fù)
Undo日志和Redo日志的區(qū)別

系統(tǒng)故障的恢復(fù)策略

系統(tǒng)故障( 造成主存中的臨時數(shù)據(jù)丟失)

介質(zhì)故障( 造成磁盤中的數(shù)據(jù)丟失)

解決方法: 數(shù)據(jù)庫備份( archive) 竟闪, 即維護一個與數(shù)據(jù)庫本身分離的數(shù)據(jù)庫拷貝。

前提: 備份以來的日志被保存杖狼, 且日志自身在故障后仍存在炼蛤。

轉(zhuǎn)儲


并發(fā)控制

并發(fā)操作可能造成的數(shù)據(jù)不一致現(xiàn)象及其原因

? 導(dǎo)致數(shù)據(jù)庫狀態(tài)不一致的可能原因

????– 故障發(fā)生

????– 并發(fā)事務(wù)對數(shù)據(jù)的共享

? 并發(fā)操作可能引起的數(shù)據(jù)不一致

????– 現(xiàn)象: 丟失修改、 不可重復(fù)讀蝶涩、 讀臟數(shù)據(jù)

????– 原因: 事務(wù)的隔離性被破壞理朋, 事務(wù)間相互干擾

可串行化調(diào)度的定義

? 可串行性: 多個事務(wù)的并發(fā)執(zhí)行是正確的絮识, 當且僅當其結(jié)果與按某一次序串行地執(zhí)行它們時的結(jié)果相同。

? 可串行性是并發(fā)事務(wù)操作是否正確的判別準則嗽上。

? 為了保證并發(fā)執(zhí)行的事務(wù)能保持數(shù)據(jù)庫的正確性次舌,DBMS的并發(fā)控制機制必須提供一定的手段來保證調(diào)度是可串行化的。

? 并發(fā)控制的思想: 調(diào)度器可能推遲一些操作的執(zhí)行兽愤, 甚至可能中斷一個事務(wù)彼念。

沖突可串行化調(diào)度的定義及判斷方法

? 沖突的操作: 涉及同一數(shù)據(jù)元素, 且至少有一個寫操作

? 如果通過一系列相鄰動作的非沖突交換能將他們中的一個轉(zhuǎn)換為另一個浅萧, 我們說兩個調(diào)度是沖突等價的逐沙。

? 如果一個調(diào)度沖突等價于一個串行調(diào)度, 我們說該調(diào)度是沖突可串行化的洼畅。

? 沖突可串行化調(diào)度是可串行調(diào)度的充分條件吩案,是商用系統(tǒng)中的事務(wù)調(diào)度器在需要保證可串行性時通常使用的條件。

沖突可串行化判斷方法
沖突可串行化?判斷方法例子

封鎖協(xié)議及事務(wù)隔離程度

? 一級封鎖協(xié)議

????– 事務(wù)T在修改數(shù)據(jù)R之前須先對其加X 鎖土思, 直至事務(wù)結(jié)束

????– 可解決丟失修改問題

? 二級封鎖協(xié)議

????– 讀數(shù)據(jù)前加S鎖务热, 讀完即釋放

????– 寫數(shù)據(jù)前加X鎖直至事務(wù)結(jié)束

????– 可解決丟失修改和讀臟數(shù)據(jù)問題

? 三級封鎖協(xié)議

????– 讀數(shù)據(jù)前加S鎖直至事務(wù)結(jié)束

????– 寫數(shù)據(jù)前加X鎖直至事務(wù)結(jié)束

????– 可解決丟失修改、 讀臟數(shù)和不可重復(fù)讀問題

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末己儒,一起剝皮案震驚了整個濱河市崎岂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闪湾,老刑警劉巖冲甘,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異途样,居然都是意外死亡江醇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門何暇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陶夜,“玉大人,你說我怎么就攤上這事裆站√醣伲” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵宏胯,是天一觀的道長羽嫡。 經(jīng)常有香客問我,道長肩袍,這世上最難降的妖魔是什么杭棵? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮氛赐,結(jié)果婚禮上魂爪,老公的妹妹穿的比我還像新娘先舷。我一直安慰自己,他們只是感情好甫窟,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布密浑。 她就那樣靜靜地躺著,像睡著了一般粗井。 火紅的嫁衣襯著肌膚如雪尔破。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天浇衬,我揣著相機與錄音懒构,去河邊找鬼。 笑死耘擂,一個胖子當著我的面吹牛胆剧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播醉冤,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼秩霍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蚁阳?” 一聲冷哼從身側(cè)響起铃绒,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎螺捐,沒想到半個月后颠悬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡定血,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年赔癌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澜沟。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡灾票,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茫虽,到底是詐尸還是另有隱情刊苍,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布席噩,位于F島的核電站,受9級特大地震影響贤壁,放射性物質(zhì)發(fā)生泄漏悼枢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一脾拆、第九天 我趴在偏房一處隱蔽的房頂上張望馒索。 院中可真熱鬧莹妒,春花似錦、人聲如沸绰上。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜈块。三九已至鉴腻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間百揭,已是汗流浹背爽哎。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留器一,地道東北人课锌。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像祈秕,于是被迫代替她去往敵國和親渺贤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • [TOC] ER模型 實體 屬性(實體的屬性) 域(屬性的取值范圍) 候選碼(唯一標識實體的屬性或最小屬性組)必須...
    梁思宇閱讀 3,523評論 1 6
  • 概念 簡稱 INT 1 bytes = 8 bit 當符號位為0時,00000000到01111111對應(yīng)了數(shù)軸上...
    _Aqua_閱讀 935評論 0 4
  • 數(shù)據(jù)庫基礎(chǔ)(面試常見題) 一请毛、數(shù)據(jù)庫基礎(chǔ) Oracle對象有哪些志鞍? 答案:表,表空間获印,用戶述雾,視圖,索引兼丰,存儲過程玻孟,...
    莓是草莓的莓閱讀 1,708評論 0 0
  • 需要原文的可以留下郵箱我給你發(fā),這里的文章少了很多圖鳍征,懶得網(wǎng)上粘啦 1數(shù)據(jù)庫基礎(chǔ) 1.1數(shù)據(jù)庫定義 1)數(shù)據(jù)庫(D...
    極簡純粹_閱讀 7,404評論 0 46
  • 分布式數(shù)據(jù)庫 事務(wù) 什么是事務(wù)黍翎? 事務(wù)就是并發(fā) + 鎖 事務(wù)就是為了保證數(shù)據(jù)的一致性,ACID保證事務(wù)的完整性 事...
    倔強swj閱讀 288評論 0 1