1. 程式人生 > 資料庫 >資料庫複習筆記

資料庫複習筆記

1、資料庫系統概述

1.1 資料庫的基本概念
資料庫:
長期儲存在計算機內、有組織的、可共享的大量資料的集合。
基本特徵:
資料按一定的資料模型組織、描述和儲存
可為各種使用者共享、冗餘度較小、易擴充套件
資料獨立性較高
資料 :
描述事物的符號記錄
資料有結構的:記錄是計算機儲存資料的一種格式或一種方法
資料庫管理系統及其功能:
位於使用者應用與作業系統之間的一層資料管理軟體 ,是基礎軟體,是一個大型複雜的軟體系統
用途: 科學地組織和儲存資料、高效地獲取和維護資料
資料庫系統
是指在計算機系統中引入資料庫後的系統構成。
在不引起混淆的情況下常常把資料庫系統簡稱為資料庫。
元資料
用來描述資料的資料。

1.2 資料管理技術的產生和發展,以及每個階段的特點
在這裡插入圖片描述

2、資料模型

2.1資料模型的基本概念
是對現實世界資料特徵的模擬和抽象,用來描述資料是如何組織、儲存和操作的。

2.2資料模型的分類及每類常用的資料模型
對應不同的應用層次分成三種類型:分別是概念模型,邏輯模型和物理模型;
概念模型:
資訊世界的基本概念:
實體(Entity)
客觀存在並可相互區別的事物稱為實體。
可以是具體的人、事、物或抽象的概念。
屬性(Attribute)
實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。
碼(Key)
唯一標識實體的屬性集稱為碼。
實體型(Entity Type)
用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型

實體集(Entity Set)
同一型別實體的集合稱為實體集
聯絡(Relationship)
1.實體內部的聯絡:組成實體的各屬性之間的聯絡
2.實體之間的聯絡: 通常是指不同實體集之間的聯絡
實體之間的聯絡有一對一(1:1)、一對多(1:n)和多對多(m:n)等多種型別

2.3資料模型的組成要素
資料模型是嚴格定義的一組概念的集合, 精確地描述了系統的靜態特性、動態特性和完整性約束條件。
資料模型由三部分組成:
資料結構–描述系統的靜態特性 資料結構的型別來命名資料模型
資料操作–描述系統的動態特性 對資料庫中各種物件的例項允許執行的操作的集合
完整性約束
一組完整性規則的集合
完整性規則:

給定的資料模型中資料及其聯絡所具有的制約和依存規則。
用以限定符合資料模型的資料庫狀態以及狀態的變化,以保證資料的正確、有效和相容。
資料模型對完整性約束條件的定義
反映和規定必須遵守的基本的通用的完整性約束條件。
提供定義完整性約束條件的機制,以反映具體應用所涉及的資料必須遵守的特定的語義約束條件。
理解
完整性約束使用一些規則,規範資料的操作,來保證資料的正確、有效和相容。

ER圖

ER圖分為實體、屬性、關係三個核心部分。實體是長方形是實體,屬性是橢圓形,關係為菱形。

在這裡插入圖片描述

3、資料庫系統結構

3.1資料庫模式和例項的概念以及區別
模式(Schema)
是對資料庫邏輯結構和特徵的描述
是型的描述,不涉及具體值
模式是相對穩定的
例項(Instance)
資料庫某一時刻的狀態——模式的一個具體值
同一個模式可能有很多例項
實力隨資料庫中資料的更新而變動
3.2資料庫系統的三級模式結構
模式(Schema)
模式(也稱概念模式):
資料庫中全體資料的邏輯結構和特徵的描述
所有使用者的公共資料檢視
一般,某個應用的資料庫有一個模式
模式是資料庫系統模式結構的中心:
與資料的物理儲存細節和硬體環境無關
與具體的應用程式、開發工具及高階程式設計語言無關
定義模式:
DDL定義資料的邏輯結構,以某種資料模型為基礎
資料記錄由哪些資料項構成,資料項的名字、型別、取值範圍等
定義資料之間的聯絡
定義與資料有關的安全性、完整性要求
外模式 (External Schema)
外模式(也稱子模式或使用者模式):
資料庫使用者使用的區域性資料的邏輯結構和特徵的描述
資料庫使用者的資料視窗,是與某一應用有關的資料的邏輯表示
外模式與模式的關係:
外模式通常是模式的自己、一個模式可以有多個外模式,反映了不同的使用者的應用需求、看待資料的方式、對資料保密的要求
對模式中某一資料,在不同的外模式種結構、型別、長度、保密級別等都可以不同
外模式與應用的關係:
一個外模式可以為多個應用系統所使用,一個應用程式只能使用一個外模式
外模式的用途:
每個使用者只能看見和訪問所對應的外模式中的資料,簡化使用者檢視
保證資料庫安全性的一個有力措施
內模式 (Internal Schema)
內模式(也稱為儲存模式):
是資料物理結構和儲存方式的描述
是資料再資料庫內部的表示方式
記錄的儲存方式(例如,順序儲存,堆儲存,Cluste按hash方法儲存等)
索引的組織方式(B+樹,Bitmap,Hash)
資料是否壓縮儲存
資料是否加密
資料儲存記錄結構的規定——如定長/變長,記錄是否可以跨頁存放等
一個數據庫只有一個內模式
三級模式是對於資料的三個抽象級別
資料庫管理系統內部提供二級映像
外模式/模式映像:
對每一個外模式,有一個外模式/模式映像 定義外模式與模式之間的對應關係 映像定義通常包含在各外模式的描述中
保證資料的邏輯獨立性
當模式改變時,資料庫管理員堆外模式/模式映像做相應改變,使外模式保持不變
應用程式是依據資料的外模式編寫的,應用程式不必修改,保證了資料與程式的邏輯獨立性,簡稱資料的邏輯獨立性
模式/內模式映像:
定義了資料全域性邏輯結構與儲存結構之間的對應關係。如,說明某個邏輯記錄對應何種儲存結構
資料庫中模式/內模式映像是唯一的
該映像定義通常包含在模式描述中
保證資料的物理獨立性
當資料庫的儲存結構改變了(例如選用了另一種儲存結構) ,資料庫管理員修改模式/內模式映像,使模式保持不變
模式不變,則應用程式不變。保證了資料與程式的物理獨立性,簡稱資料的物理獨立性

3.3資料庫系統的兩級映像功能與資料獨立性
保證了應用程式的穩定性
除非應用需求本身發生變化,否則應用程式一般不需要修改
從程式為中心——發展為以資料為中心
具有了資料與程式之間的獨立性,使得資料的定義和描述可以從應用程式中分離出去
資料的存取由資料庫管理系統管理
簡化了應用程式的編制
大大減少了應用程式的維護和修改
3.4SQL SERVER資料庫種類及檔案(參考教材8.6節)

個別題目:
在這裡插入圖片描述
在這裡插入圖片描述

4、關係資料庫基礎

4.1關係模型的基本概念

屬性取值範圍
關係模式
1.最早由E.F.Codd在1970年提出。
2.是從表(Table)及表的處理方式中抽象出來的,是在對傳統表及其操作進行數學化嚴格定義的基礎上,引入集合理論與邏輯學理論提出的。
3.是資料庫的三大經典模型之一,現在大多數資料庫系統仍然使用關係資料模型。
4.標準的資料庫語言(SQL語言)是建立在關係模型基礎之上的,資料庫領域的眾多理論也都是建立在關係模型基礎之上的。
關係的前兩種定義:
笛卡爾乘積的子集就是一個關係
關係是滿足特定規範的二維表
關係與關係模式的區別:
1.同一關係模式下,可有很多的關係
2.關係模式是關係的結構,關係是關係模式在某一時刻的資料
3.關係模式是穩定的:而關係是某一時刻的值,是隨時間可能變化的
碼:也稱作鍵,指的是取值具有唯一性的屬性,可以唯一的確定表中的一個元組,他可以由一個屬性組成,也可以由多個屬性共同構成;
候選碼:某一屬性組的值能唯一地標識一個元組,而其子集不能的屬性組
主碼:若一個關係有多個候選碼,則選定一個作為主碼
外碼:必須與其所參照的主碼具有相同的域,且外碼的取值只能引用參照表中主碼的值或者使用空值。

4.2關係的型別
基本關係
實際存在的表,是 實際儲存資料的邏輯表示
查詢表
查詢結果對應的表
視圖表
由基本表或者其他視圖表匯出的表
4.3關係的性質
列是同質的,即每一列中的分量是同一型別的資料,來自同一個域
關係中的元組(行)無先後順序
關係中的屬性(列)無先後順序
在關係中的所有元組必須是獨一無二的
在元組中的每個值是一個原子值
4.4什麼是複合屬性、多值屬性
4.5關係資料庫和關係資料庫模式
4.6什麼是完整性約束,五種約束的概念
1、關係的完整性約束
完整性通常包括域完整性、實體完整性、參照完整性和使用者自定義完整性;其中域完整性、實體完整性和參照完整性是關係模型必須滿足的完整性的約束條件
2、域完整性約束
指屬性的值域的完整性
3、實體完整性規則
關係中的主碼值不可以為空值
意義:關係中的元組都是通過主碼來識別的,若主碼為空,則會出現不可識別的個體,這是不允許的。
4、參照完整性規則
如果關係R1的外碼Fk與關係R2的主碼Pk相對應時。那麼R1的每一個元組的Fk值都等於R2的某個元組的Pk值或者為空。
意義:如果關係R1的某個元組t1參照R2的某個元組t2,則必須要求t2存在。
5、使用者定義的完整性規則
使用者根據具體應用的環境來定義的完整性約束。
五種約束
域約束
鍵約束
非空約束
實體完整性約束
參照完整性約束

4.7關係代數八種運算的符號、意義及表示方法。在這八種運算中哪些屬於基本運算?
基本運算
選擇(σ)
設R是一個n元關係,F是一個形如riθc的公式,其中θ∈{=,≠,>,<,≤,≥},R的選擇操作定義為F®={(r1,…,ri ,…,rn )|(r1,…,ri ,…,rn )∈R∧riθc }。
白話: 把符合條件的拿出來
投影(Π)
設R是一個n元關係,R的投影操作定義為∏i1,i2,…,im® = {(ri1, …,rim)|(r1 ,…,ri1,…,rim,…,rn)∈R}。
白話: 看橫行, 如果有兩個橫行相同, 只寫一個. 因此若是S關係投影操作的話, 也就是有b和a
並(∪)
設R和S是n元關係,而且兩者各對應屬性的資料型別也相同。R和S的並操作定義為 R∪S = { t | t∈R∨t∈S }。
白話: R和S關係合一起, 相同的不寫
交(∩)
設R和S是n元關係,而且兩者各對應屬性的資料型別也相同。R和S的交操作定義為 R  S = { t | t∈R∧t∈S }= R-(R-S)。
白話: 相同的拿出來
差(-)
設R和S是n元關係,而且兩者各對應屬性的資料型別也相同。R和S的差定義為 R-S ={ t | t∈R∧tS}。
白話: 因為是R-S, 找R在S關係中沒有的
笛卡爾積(X)
設R是n元關係,S是m元關係,R和S的的笛卡爾積定義為R×S={(r1,…,rn,s1,…,sm)|(r1,…, rn )∈R∧(s1, …,sm )∈S}。
白話: 和普通的笛卡爾乘機差不多, 自己看看, 規律很好找

連線(![在這裡插入圖片描述](https://www.icode9.com/img/ll/?i=20201123221949489.png#pic_center)
設R是n元關係,S是m元關係,A是R的屬性,B是S的屬性,A和B的值域具有相同的資料型別,θ∈{=, ≠, >, <, ≤, ≥}。R和S的連線操作定義為這裡寫圖片描述在這裡插入圖片描述
其中,r[A]表示元組r在屬性A上的值,s[B]表示元組s在屬性B上的值。我們稱A和B是連線屬性。
除(/)

4.8什麼叫“併兼容”的兩個關係?哪些關係代數運算要求兩個關係必須是“併兼容”的?什麼叫“重複消除”?
兩個關係有相同數量的屬性,每對對應的屬性有同樣的值域; 並,交,差。

個別習題:
在這裡插入圖片描述

選D
在這裡插入圖片描述
選B
在這裡插入圖片描述

5、SQL語言

5.1SQL語言的功能組成
資料查詢,資料操縱,資料定義,資料控制;

5.2單表查詢,主要掌握以下SQL語句用法,並複習實驗2相關部分
(1)不帶元組篩選條件的單表查詢
檢索所有行和列:SELECT * FROM Student
(2)重新命名查詢結果關係列名(友好列標題)
在原始欄位之後跟上As再指定標題即可:SELECT Sno As 學號,Sname As 姓名…
(3)TOP關鍵字
TOP n語法只說明顯示前n條資料:SELECT TOP 3 * FROM Student
(4)篩選元組:IN、BETWEEN、DISTINCT、LIKE的用法
1.可以在BETWEEN…AND語法前使用NOT取反
檢索年齡不在19-21歲的學生資訊,顯示學號,姓名:SELECT Sno,Sname FROM Student WHERE Sage NOT BETWEEN 19 AND 21
2.要檢索的資訊是一系列取值列表,可以使用IN
從Teacher表中檢索職稱為教授或者副教授的資訊:SELECT * FROM Teacher WHERE Tport IN(‘教授’,‘副教授’)
3.使用DISTINCT關鍵字,表示檢索時顯示不重複資訊
顯示Teacher表中有哪些職稱,要求資訊不重複:SELECT DISTINCT Tprot FROM Teacher
4.使用LIKE關鍵字進行模糊查詢
查詢Student表中姓劉的同學:SELECT * FROM Student WHERE Sname LIKE '劉%'
(5)空值檢查
檢索Master資料庫中spt_values表裡low欄位為空的資料行:SELECT * FROM spt_values WHERE low IS NULL
(6)查詢結果排序
使用ORDER BY對顯示的資料進行排序,升序時ASC可以省略
顯示Course表的所有行,要求按照課程名稱降序顯示:SELECT * FROM Course ORDER BY Cname DESC
顯示Course表的所有行,要求按照課程學分降序,學分相同再按照課程號升序排列:SELECT * FROM Course ORDER BY Ccredit DESC,Cno ESC
(7)返回“計算列”
對Course表,顯示課程號、課程名、學分,另外額外增加一列“學時”,學時等於學分16:**SELECT Cno,Cname,Ccredit, Ccredit16 AS 學時 FROM Course**
(8)五個彙總函式的用法
COUNT(統計Teacher表中教授的數量):SELECT COUNT(*) FROM Teacher WHERE Tprot = ‘教授’ (COUBT()函式返回匹配指定條件的行數,COUNT(*)函式返回表中的記錄數)
SUM(求和):對Course表中必修課的學分進行求和:SELECT SUM(Ccredit) FROM Course WHERE XKLB='必修’
MAX
MIN
AVG:分別用來計算最大值,最小值,平均值,顯示Teacher表中教師年齡最大,最小,平均年齡:SELECT MAX(Tage),MIN(Tage),AVG(Tage) FROM Teacher
(9)分組及對分組的篩選
對Course表,按照必修和選修進行分類,統計每種類別的課程數量:SELECT XKLB As 類別,COUNT(Cname) AS 數量 FROM Course GROUP BY XKLB
對Student表按照專業和性別進行分組,顯示每個專業,每種性別的學生數量,按照學生數量降序排列:SELECT Smajar,Ssex,COUNT(Sno) FROM Student GROUP BY Smajor,Ssex,ORDER BY COUNT(Sno) DESC

5.3多表連線查詢,主要掌握以下SQL語句用法,並複習實驗2相關部分
(1)內聯接
對SC和Student表進行內連線,顯示學生的學號,姓名,課程號,分數:
語法一:SELECT Student.Sno,Student.Sname,SC.Cno,SC.Grade FROM SC JOIN Studet ON SC.Sno=Student.Sno
語法二:SELECT Student.Sno,Student.Sname,SC.Cno,SC.Grade FROM SC,Student WHERE SC.Sno=Studet,Sno
(2)外聯接
讓Student表和SC表進行左外連線,即不管學生是否選課,該學生的資訊都會顯示出來:
SELECT Student.Sno,Student.Sname,SC.Sno,SC.Grade FROM Student LEFT OUTER JOIN SC ON Student.Sno= SC.Sno
讓SC表和Teacher表進行完全外連線,顯示教師編號,教師姓名,教師講授的課程號:
SELECT Teacher.Tno,Teacher.Tname.SC.Cno FROM SC FULL OUTER JOIN Teacher ON SC.Tno=Teacher.Tno
(3)交叉聯接
對學生和課程兩張表進行交叉連線:SELECT * FROM Student CROSS JOIN Course
(4)自聯接
(5)補充:一個查詢優化的例子(參考課件第7講)

5.4子查詢,主要掌握以下SQL語句用法,並複習實驗2相關部分
(1)帶有IN謂詞的子查詢
查詢在SC表中選修了課程的學生資訊:SELECT * FROM Student WHERE Sno IN (SELECT DISTINCT Sno FROM SC)
(2)帶有比較運算子的子查詢
(3)帶有ANY或ALL謂詞的子查詢
在教室表中,檢索比任何一個女教師年齡都大的男教師的資訊:SELECT * FROM Teacher WHERE Tsex=‘男’ AND Tage > ALL(SELECT Tage FROM Teacher WHERE Tsex=‘女’)
(4)帶有EXISTS謂詞的子查詢(只需掌握一層EXISTS)
查詢和王國在同一專業學習的所有學生的基本資訊:SELECT Sno,Sname,Smajar FROM Student S1 WHERE EXISTS(SELECT * FROM Student S2 WHERE S2 WHERE S1.Smajor=S2.Smajor AND S2.Sname=‘王國’)

5.5集合查詢,主要掌握以下SQL語句用法,並複習實驗2相關部分
(1)並
將學生的學號、姓名和教師的教工號,姓名,在一個檢索結果中顯示出來:SELECT Sno,Sname FROM Student UNION SELECT Tno,Tname FROM Teacher
(2)交
對專業名以計算機開頭的學生及年齡是21歲的學生,用交運算求兩者的交集:SELECT Sno,Sname,Sage,Smajor FROM Student WHERE Smajor LIKE ‘計算機%’ INTERSECT SELECT Sno,Sname,Sage,Smajor FROM Student WHERE Sage=21
(3)差
查詢專業名以計算機開頭,但不包括年齡是21歲的學生:SELECT Sno,Sname,Sage,Smajor FROM Student WHERE Smajor LIKE ‘計算機%’ EXCEPT SELECT Sno,Sname,Sage, Smajor FROM Student WHERE Sage=21

5.6資料的增、刪、改(利用SQL語言),並複習實驗3相關部分
將學生表中的學號,姓名,性別,院系,年齡,電話,郵箱抽取出來,插入Teacher表,所有新插入的資料,職稱為講師:
INSERT INTO Teacher(Tno,Tname,Tsex,Tdept,Tage,Tport,Tel,EMAIL)SELECT Sno,Sname,Ssex,Sdept,Sage,‘講師’,Tel,EMAIL FROM Student
將Course表中的編號是B002的課程,學分修改為3分:
UPDATE Course SET Ccredit=3 WHERE Cno='B002’
刪除Course表中編號為B009的記錄
DELETE FROM Course WHERE Cno='B009’

字元擷取函式SUBSTRING
查詢姓名中第二個漢字和第三個漢字相同的學生:Select * from Student Where SUBSTRING(Sname,2,1)=SUBSTRING(Sname,3,1)

5.7DDL資料定義語言,主要掌握以下SQL語句用法,並複習實驗3相關部分
(1)建立資料庫(簡易版)
CREATE DATABASE 資料庫名字
(2)刪除資料庫
DROP DATABASE 資料庫名字
(3)建立資料庫表:指定資料型別、是否允許為空、標識列
(4)修改資料庫表:增加列、修改列、刪除列
Alter table 表名 add 欄位名 型別 是否為空
Alter table 表名 alter column 欄位名 型別 是否為空
Alter table 表名 drop column 欄位名 型別 是否為空
(5)刪除資料庫表
DROP table 表名
(6)完整性約束條件
①完整性約束條件的分類:按作用物件、按狀態
②預設值約束
③對資料格式的約束
④對取值範圍或取值集合的約束
⑤元組級約束
⑥主鍵約束
⑦唯一性約束
⑧外來鍵約束
⑨刪除約束
(7)檢視的概念(複習實驗3相關部分)
(8)檢視的優點
(9)檢視的建立
建立一個名為vwSCs的檢視,將學生表中院系是電腦科學學院的學生學號、姓名、性別、專業四個欄位顯示出來:
CREATE VIEW vwScs AS SELECT Sno,Sname,Ssex,Tel,EMAIL FROM Student WHERE Sdept='電腦科學學院’
(10)檢視的修改
通過對檢視進行資料更新,將楊華的電話修改為66666666:UPDATE vwScs SET TEL=‘66666666’ WHERE Sname ='楊華’
(11)刪除檢視
(12)檢視的更新
①檢視可更新性的基本判斷原則
(1)檢視中的每一列都必須和一個基本表中的一個源列對應
(2)檢視中的每一行都必須和一個基本表中的一個源行對應
②檢視可更新性的具體判斷標準
只要修改隻影響與檢視相關的一個基礎表,檢視就可以修改,
包含聚合函式的檢視不可更新
存在計算列或者匯出列的檢視不可更改
(14)索引的概念和作用(參考教材4.7節)
(15)索引的建立和管理(複習實驗3相關部分)

5.8DCL資料控制語言,主要掌握以下相關概念及SQL語句用法,並複習實驗4相關部分
(1)SQL SERVER的安全控制過程、安全控制模型
(2)SQL SERVER的身份驗證模式
(3)SQL SERVER登入名的管理
(4)SQL SERVER資料庫使用者的管理
(5)SQL SERVER許可權的管理
(6)SQL SERVER角色的管理

5.9 Transact-SQL程式設計,主要掌握以下相關概念及T-SQL語句用法,並複習實驗5相關部分
(1)Transact-SQL基礎語法
(2)Transact-SQL流程控制語句
(3)Transact-SQL常用函式
(4)儲存過程概述
(5)儲存過程(包括帶輸入和輸出引數的)的建立與管理

6、資料庫設計(複習資料庫設計案例)
6.1資料庫設計的基本過程及每階段的主要任務
資料庫設計通常分為6個階段
1、需求分析:分析使用者的需求,包括資料、功能和效能需求;
分析方法常用SA(Structured Analysis) 結構化分析方法,SA方法從最上層的系統組織結構入手,採用自頂向下,逐層分解的方式分析系統。
資料流圖表達了資料和處理過程的關係,在SA方法中,處理過程的處理邏輯常常藉助判定表或判定樹來描述。在處理功能逐步分解的同事,系統中的資料也逐級分解,形成若干層次的資料流圖。系統中的資料則藉助資料字典(data dictionary,DD)來描述。資料字典是系統中各類資料描述的集合,資料字典通常包括資料項,資料結構,資料流,資料儲存,和處理過程 5個階段。
2、概念結構設計:主要採用E-R模型進行設計,包括畫E-R圖;
3、邏輯結構設計:通過將E-R圖轉換成表,實現從E-R模型到關係模型的轉換;
4、資料庫物理設計:主要是為所設計的資料庫選擇合適的儲存結構和存取路徑;
常用的存取方法有三類:1.索引方法,目前主要是B+樹索引方法。2.聚簇方法(Clustering)方法。3.是HASH方法。
5、資料庫的實施:包括程式設計、測試和試執行;
6、資料庫執行與維護:系統的執行與資料庫的日常維護。
6.2 掌握E-R建模和繪製E-R圖的方法
6.3 “資料庫邏輯結構設計階段”的任務
6.4 掌握將E-R模型轉換為關係模型的規則和方法
(1)每個實體型別轉換成一個關係模式。實體的屬性就是關係模式的屬性,實體的的碼就是關係的主碼。
(2)實體之間的聯絡轉換,根據不同的情況進行不同的處理:一個 1:1 的聯絡可以轉換為一個獨立的關係模式,也可以與任意一端的關係模式合併;一個 1:n 的聯絡可轉換為一個獨立的關係模式,也可以與 n 端實體對應的關係模式合併;一個 m:n 的聯絡必須轉換為一個關係模式。
6.5 掌握關係模式的非形式化設計原則和更新異常的概念
6.6 掌握1NF、2NF、3NF的概念和規範化方法(參考教材5.1、5.2、5.3節)
規範化的基本思想是消除關係模式中的資料冗餘,消除資料依賴中不合適的部分,解決資料插入、刪除和修改時發生的異常現象。關係資料庫的規範化過程中為不同程度的規範化要求設立的不同的標準或準則稱為正規化。一個低一級的正規化的關係模式,通過模式分解可以轉換為若干個高一級的正規化的關係模式的集合,這種過程叫做規範化。
6.6.1 第一正規化
如果關係模式R所有屬性均為簡單屬性,即每個屬性都是不可再分的,則稱R為第一正規化。
6.6.2 第二正規化
如果關係模式屬於第一正規化,R(U,F)中的所有非主屬性都完全函式依賴於任意一個候選關鍵字,則稱關係R屬於第二正規化。即不存 在某非主屬性對某候選關鍵字存在部分函式依賴。
6.6.3 第三正規化
如果關係模式R屬於第二正規化,R(U,F)中的所有非主屬性對任何候選關鍵字都不存在傳遞函式依賴,則稱R是屬於第三正規化。
在這裡插入圖片描述

6.7 反規範化的基本概念(參考教材5.4節)
常用的反規範化技術有哪些?
解:反規範化常用的方法是合併 1:1 聯絡的表,合併 1:n 聯絡的表,複製 1:n 聯絡 1端表中資料到 n 端,複製 m:n 聯絡中 m 端和 n 端資料到新產生的聯絡表中。

在這裡插入圖片描述
(2)將所畫的 E-R 圖轉換為關係模型。
解: 讀者(借閱證號 ,姓名,地址)
圖書(編號,書名,出版社,單價,作者姓名)
借閱(借閱證號,圖書編號,借閱日期)
作者(姓名,性別,工作單位)

在這裡插入圖片描述

7、 資料庫保護
7.1事務的基本概念
7.2 事務的定義
事務是使用者定義的一個數據操作序列,這些操作要麼全部執行,要麼全部不執行,是一個不可分割的工作單元;
7.3 事務的特徵
7.4 併發控制
事務是併發控制的基本單位。
7.5 併發操作引發的問題
併發操作帶來的資料不一致性包括:丟失修改、不可重複讀、讀 “髒” 資料。
7.6併發控制的基本方法(封鎖協議,併發排程的可序列性,兩段鎖協議)
併發控制主要技術:封鎖、時間戳、樂觀控制法、多版本併發控制等。
基本封鎖型別:排他鎖(X 鎖 / 寫鎖)、共享鎖(S 鎖 / 讀鎖)。

7.7 死鎖的概念、預防、診斷與解除(詳見教材第7.2節)
活鎖和死鎖:
活鎖:事務永遠處於等待狀態,可通過先來先服務的策略避免。
死鎖:事物永遠不能結束
預防:一次封鎖法、順序封鎖法;
診斷:超時法、等待圖法;
解除:撤銷處理死鎖代價最小的事務,並釋放此事務的所有的鎖,使其他事務得以繼續執行下去。
7.7資料庫故障型別
事務內部故障,系統故障,介質故障,計算機病毒

7.8資料庫恢復的基本方法(詳見教材第7.3節)
7.9備份和恢復資料庫(詳見教材第11章)
7.10 備份型別和備份內容(詳見教材第11.2節)
資料庫備份,就是通過特定的辦法,將資料庫的必要檔案複製到轉儲裝置的過程。其 中,轉儲裝置是指用於放置資料庫拷貝的磁帶或磁碟。資料庫備份的作用就是防止資料丟失,最大限度地降低災難性資料丟失的風險,從資料庫中定期儲存使用者對資料庫所做的修改,當資料庫出現故障時,用以將資料庫從錯誤狀態下恢復到正確狀態的副本。還有一個作用,就是對資料庫進行轉儲。
7.11 備份策略(詳見教材第11.3節)
7.12 恢復策略(詳見教材第11.5節)

在這裡插入圖片描述

8 、資料庫新技術
8.1 什麼是大資料?(參考教材14.2)
8.2 資料倉庫與資料探勘(參考教材14.3)
8.3 NoSQL資料庫(參考教材14.4)