數(shù)據(jù)庫原理

本文整理自《數(shù)據(jù)庫原理》和期末復(fù)習(xí)提綱


1. DBMS

數(shù)據(jù)庫管理系統(tǒng)(Database Management System)蝉娜,簡稱DBMS,是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件复斥。


DBMS.png

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

  • 數(shù)據(jù)結(jié)構(gòu)化
  • 數(shù)據(jù)的高共享性
  • 數(shù)據(jù)獨(dú)立性
  • DBMS對(duì)數(shù)據(jù)統(tǒng)一管理和控制

2. 數(shù)據(jù)庫管理技術(shù)的發(fā)展過程

人工管理階段 —— 20 世紀(jì) 40 年代中期 - 20 世紀(jì) 50 年代中期
文件系統(tǒng)階段 —— 20 世紀(jì) 50 年代末期 - 20 世紀(jì) 60 年代中期
數(shù)據(jù)庫系統(tǒng)階段 —— 20 世紀(jì) 60 年代后期以來


3. 數(shù)據(jù)模型

通俗地講數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬,在數(shù)據(jù)庫中用數(shù)據(jù)模型這個(gè)工具來抽象械媒、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息永票。

數(shù)據(jù)模型分成兩個(gè)不同的層次

概念模型(用戶),也稱信息模型滥沫,它是按用戶的觀點(diǎn)來對(duì)數(shù)據(jù)和信息建模侣集。
數(shù)據(jù)模型(計(jì)算機(jī)),主要包括網(wǎng)狀模型兰绣、層次模型世分、關(guān)系模型、面向?qū)ο竽P偷茸罕纾前?strong>計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模臭埋。


4. 數(shù)據(jù)庫系統(tǒng)的模式

模式.png

4.1 三級(jí)模式結(jié)構(gòu)

(1) 外模式(又名子模式、用戶模式)臀玄,是數(shù)據(jù)庫用戶可見可用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述瓢阴,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示

(2) 模式(又名邏輯模式)健无,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述荣恐,是所有用戶的公共數(shù)據(jù)視圖

(3) 內(nèi)模式(又名存儲(chǔ)模式),是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述累贤,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的存儲(chǔ)方式

(4) 一個(gè)數(shù)據(jù)庫只有一個(gè)模式和一個(gè)內(nèi)模式叠穆,但是可以有多個(gè)外模式。

(5) 模式與外模式的關(guān)系:一對(duì)多

  • 外模式通常是模式的子集
    • 一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式臼膏。反映了不同的用戶的應(yīng)用需求硼被、看待數(shù)據(jù)的方式、對(duì)數(shù)據(jù)保密的要求
      • 對(duì)模式中同一數(shù)據(jù)渗磅,在外模式中的結(jié)構(gòu)嚷硫、類型检访、長度、保密級(jí)別等都可以不同

(6) 外模式與應(yīng)用的關(guān)系:一對(duì)多

  • 同一外模式可以為某一用戶的多個(gè)應(yīng)用系統(tǒng)所使用
  • 一個(gè)應(yīng)用程序只能使用一個(gè)外模式

4.2 二級(jí)映像模式

(1) 外模式 - 模式映象(邏輯獨(dú)立性)

  • 定義外模式與模式之間的對(duì)應(yīng)關(guān)系
  • 每一個(gè)外模式都對(duì)應(yīng)一個(gè)外模式/模式映象
  • 外模式/模式映象的用途:保證數(shù)據(jù)的邏輯獨(dú)立性
    • 當(dāng)模式改變時(shí)仔掸,數(shù)據(jù)庫管理員修改有關(guān)的外模式/模式映象脆贵,使外模式保持不變
    • 應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改嘉汰,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性丹禀,簡稱數(shù)據(jù)的邏輯獨(dú)立性。

(2) 模式 - 內(nèi)模式映像(物理獨(dú)立性)

  • 模式/內(nèi)模式映象定義了數(shù)據(jù)全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系鞋怀。例如双泪,說明邏輯記錄和字段在內(nèi)部是如何表示的
  • 數(shù)據(jù)庫中模式/內(nèi)模式映象是唯一的
  • 模式/內(nèi)模式映象的用途:保證數(shù)據(jù)的物理獨(dú)立性
    • 當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)改變了(例如選用了另一種存儲(chǔ)結(jié)構(gòu)),數(shù)據(jù)庫管理員修改模式/內(nèi)模式映象密似,使模式保持不變
    • 應(yīng)用程序不受影響焙矛。保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡稱數(shù)據(jù)的物理獨(dú)立性残腌。

5. 事務(wù)

(1) 事務(wù)是恢復(fù)和并發(fā)控制的基本單位

(2) 事務(wù)的特性(ACID)

  • 原子性(Atomicity)

    事務(wù)是數(shù)據(jù)庫的邏輯工作單位村斟,事務(wù)中包括的諸操作要么都做,要么都不做抛猫。

  • 一致性(Consistency)

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

    一致性狀態(tài):數(shù)據(jù)庫中只包含成功事務(wù)提交的結(jié)果
    不一致狀態(tài):數(shù)據(jù)庫中包含失敗事務(wù)的結(jié)果

  • 隔離性(Isolation)

    對(duì)并發(fā)執(zhí)行而言

    • 一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾蟆盹。
    • 一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)其他并發(fā)事務(wù)是隔離的。
    • 并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾
  • 持續(xù)性(Durability)

    持續(xù)性也稱永久性(Permanence)

    • 一個(gè)事務(wù)一旦提交闺金,它對(duì)數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的逾滥。
    • 接下來的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響。
  • 破壞事務(wù)ACID特性的因素

    • 多個(gè)事務(wù)并行運(yùn)行時(shí)败匹,不同事務(wù)的操作交叉執(zhí)行
    • 事務(wù)在運(yùn)行過程中被強(qiáng)行停止

6. 故障的種類

6.1 事務(wù)故障

(1) 事務(wù)故障的恢復(fù) (先UNDO再REDO)

  • 撤消事務(wù)(UNDO)
  • 強(qiáng)行回滾(ROLLBACK)該事務(wù)

清除該事務(wù)對(duì)數(shù)據(jù)庫的所有修改寨昙,使得這個(gè)事務(wù)像根本沒有啟動(dòng)過一樣。

(2) 事務(wù)故障的常見原因
輸入數(shù)據(jù)有誤掀亩、運(yùn)算溢出舔哪、違反了某些完整性限制、某些應(yīng)用程序出錯(cuò)槽棍、并行事務(wù)發(fā)生死鎖

6.2 系統(tǒng)故障

(1) 什么是系統(tǒng)故障

  • 整個(gè)系統(tǒng)的正常運(yùn)行突然被破壞
  • 所有正在運(yùn)行的事務(wù)都非正常終止
  • 內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失
  • 外部存儲(chǔ)設(shè)備上的數(shù)據(jù)未受影響

(2) 系統(tǒng)故障的恢復(fù) (先UNDO再REDO)

  • 正向掃描日志文件(即從頭掃描日志文件)
  • 對(duì)Undo隊(duì)列事務(wù)進(jìn)行UNDO處理
  • 對(duì)Redo隊(duì)列事務(wù)進(jìn)行REDO處理

(3) 系統(tǒng)故障的常見原因
操作系統(tǒng)或DBMS代碼錯(cuò)誤捉蚤、操作員操作失誤、特定類型的硬件錯(cuò)誤(如CPU故障)刹泄、突然停電

6.3 介質(zhì)故障

(1) 什么是介質(zhì)故障
硬件故障使存儲(chǔ)在外存中的數(shù)據(jù)部分丟失或全部丟失外里。

介質(zhì)故障比前兩類故障的可能性小得多,但破壞性大得多

(2) 介質(zhì)故障的恢復(fù)

先找備份點(diǎn)再重新執(zhí)行備份點(diǎn)之后的成功事務(wù)

  • 裝入數(shù)據(jù)庫發(fā)生介質(zhì)故障前某個(gè)時(shí)刻的數(shù)據(jù)副本

  • (REDO)重做自此時(shí)始的所有成功事務(wù)特石,將這些事務(wù)已提交的結(jié)果重新記入數(shù)據(jù)庫

恢復(fù)操作的基本原理:冗余

  • 利用存儲(chǔ)在系統(tǒng)其它地方的冗余數(shù)據(jù)來重建數(shù)據(jù)庫中已被破壞或不正確的那部分?jǐn)?shù)據(jù)

(3) 介質(zhì)故障的常見原因
硬件故障:磁盤損壞、磁頭碰撞鳖链、操作系統(tǒng)的某種潛在錯(cuò)誤姆蘸、瞬時(shí)強(qiáng)磁場干擾


7. 并發(fā)控制

數(shù)據(jù)庫管理系統(tǒng)中并發(fā)控制的責(zé)任是保證事務(wù)的 ACID (原子性墩莫、一致性、隔離性逞敷、持久性狂秦;在此主要針對(duì)一致性和隔離性)特性。

(1) 不加控制的并發(fā)操作會(huì)導(dǎo)致數(shù)據(jù)的不一致性推捐,包括:

  • 丟失修改
    兩個(gè)事務(wù) T1裂问、T2 讀入同一數(shù)據(jù)進(jìn)行修改,T2 提交的結(jié)果破壞了 T1 提交的結(jié)果牛柒,導(dǎo)致 T1 的修改被丟失

  • 不可重復(fù)讀
    事務(wù) T1 讀入數(shù)據(jù)后堪簿,事務(wù) T2 對(duì)該數(shù)據(jù)執(zhí)行了更新操作,使得事務(wù) T1 再次讀取數(shù)據(jù)時(shí)得到跟之前不一樣的結(jié)果

    • 之前讀到 100皮壁,之后讀到 200
    • 之前讀到有/無椭更,之后讀到無/有
    • 之前讀到很少,之后讀到很多
  • 讀臟數(shù)據(jù)
    事務(wù) T1 寫入某一數(shù)據(jù)蛾魄,事務(wù) T2 讀到這一數(shù)據(jù)虑瀑,但后來 T1 被取消了,導(dǎo)致 T2 讀到了不正確的數(shù)據(jù)

(2) 并發(fā)控制的主要技術(shù)有封鎖滴须、時(shí)間戳舌狗、樂觀控制法和多版本并發(fā)控制

  • 封鎖:排他鎖(X)和共享鎖(S)組成的封鎖協(xié)議
  • 時(shí)間戳:給每一個(gè)事務(wù)蓋上一個(gè)時(shí)間戳標(biāo)簽,按照這個(gè)時(shí)間戳來解決事務(wù)的沖突操作
  • 樂觀控制法:讓事務(wù)自由執(zhí)行扔水,在事務(wù)提交前再進(jìn)行正確性檢查
  • 多版本并發(fā)控制:在數(shù)據(jù)庫中通過維護(hù)數(shù)據(jù)對(duì)象的多個(gè)版本信息實(shí)現(xiàn)高效并發(fā)控制

(3) 基本封鎖類型

  • 排他鎖痛侍、寫鎖、X:若事務(wù) T 對(duì)數(shù)據(jù)對(duì)象 A 加 X 鎖铭污,則 T 可以讀寫 A恋日,在 T 釋放 A 上的鎖之前其他任何事務(wù)都不能再對(duì) A 加任何類型的鎖

  • 共享鎖、讀鎖嘹狞、S:若事務(wù) T 對(duì)數(shù)據(jù)對(duì)象 A 加 S 鎖岂膳,則 T 只可以讀 A,在 T 釋放 A 上的 S 鎖之前其他任何事
    務(wù)都只能對(duì) A 加 S 鎖磅网,而不能加 X 鎖

(4) 封鎖協(xié)議

  • 三級(jí)封鎖協(xié)議


    三級(jí)封鎖協(xié)議.png
  • 兩段鎖協(xié)議
    并發(fā)調(diào)度的可串行性的充分條件 - 多個(gè)事務(wù)的并發(fā)執(zhí)行正確谈截,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行
    地執(zhí)行這些事務(wù)時(shí)的結(jié)果相同


8. 范式

范式是一種分層結(jié)構(gòu)的規(guī)范,分為六層:每一次層都比上一層更加嚴(yán)格:若要滿足下一層范式涧偷,前提是滿足上一層范式簸喂。

六層范式:1NF,2NF燎潮,3NF喻鳄,BCNF,4NF确封,5NF除呵,1NF要求最低再菊;5NF要求最嚴(yán)格。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末颜曾,一起剝皮案震驚了整個(gè)濱河市纠拔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泛豪,老刑警劉巖稠诲,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诡曙,居然都是意外死亡臀叙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門岗仑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匹耕,“玉大人,你說我怎么就攤上這事荠雕∥绕洌” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵炸卑,是天一觀的道長既鞠。 經(jīng)常有香客問我,道長盖文,這世上最難降的妖魔是什么嘱蛋? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮五续,結(jié)果婚禮上洒敏,老公的妹妹穿的比我還像新娘。我一直安慰自己疙驾,他們只是感情好凶伙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著它碎,像睡著了一般函荣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扳肛,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天傻挂,我揣著相機(jī)與錄音,去河邊找鬼挖息。 笑死金拒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的套腹。 我是一名探鬼主播殖蚕,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼轿衔,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼沉迹!你這毒婦竟也來了睦疫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤鞭呕,失蹤者是張志新(化名)和其女友劉穎蛤育,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葫松,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瓦糕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腋么。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咕娄。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖珊擂,靈堂內(nèi)的尸體忽然破棺而出圣勒,到底是詐尸還是另有隱情,我是刑警寧澤摧扇,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布圣贸,位于F島的核電站,受9級(jí)特大地震影響扛稽,放射性物質(zhì)發(fā)生泄漏吁峻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一在张、第九天 我趴在偏房一處隱蔽的房頂上張望用含。 院中可真熱鬧,春花似錦帮匾、人聲如沸啄骇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肠缔。三九已至,卻和暖如春哼转,著一層夾襖步出監(jiān)牢的瞬間明未,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工壹蔓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趟妥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓佣蓉,卻偏偏與公主長得像披摄,于是被迫代替她去往敵國和親亲雪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344