国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

《數(shù)據(jù)庫原理》知識點總結(jié)

2023-10-21 10:29 作者:答案資料  | 我要投稿


一 數(shù)據(jù)庫基礎(chǔ)知識(第1、2章)


一、有關(guān)概念

1.?dāng)?shù)據(jù)

2.?dāng)?shù)據(jù)庫(DB)

3.?dāng)?shù)據(jù)庫管理系統(tǒng)(DBMS)

Access

桌面DBMS VFP

SQL Server

Oracle

客戶機/服務(wù)器型DBMS MySQL

DB2

4.?dāng)?shù)據(jù)庫系統(tǒng)(DBS)

數(shù)據(jù)庫(DB)

數(shù)據(jù)庫管理系統(tǒng)(DBMS)

開發(fā)工具

應(yīng)用系統(tǒng)

二、數(shù)據(jù)管理技術(shù)的發(fā)展

1.?dāng)?shù)據(jù)管理的三個階段



人工管理

文件系統(tǒng)

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

數(shù)據(jù)能否保存

不能保存

可以保存

可以保存

數(shù)據(jù)面向的對象

某一應(yīng)用程序

某一應(yīng)用程序

整個應(yīng)用系統(tǒng)

數(shù)據(jù)的共享程度

無共享,一組

數(shù)據(jù)只能對應(yīng)一個應(yīng)用程序。

共享性差,一個數(shù)據(jù)文件只能對應(yīng)一個應(yīng)用程序。

共享性高

數(shù)據(jù)的獨立性

不獨立,它是應(yīng)用程序的一部分。

獨立性差

數(shù)據(jù)庫與應(yīng)用系統(tǒng)完全分開


概念模型

一、模型的三個世界

1.現(xiàn)實世界

2.信息世界:即根據(jù)需求分析畫概念模型(即E-R圖),E-R圖與DBMS無關(guān)。

3.機器世界:將E-R圖轉(zhuǎn)換為某一種數(shù)據(jù)模型,數(shù)據(jù)模型與DBMS相關(guān)。



注意:信息世界又稱概念模型,機器世界又稱數(shù)據(jù)模型

二、實體及屬性

1.實體:客觀存在并可相互區(qū)別的事物。

2.屬性:

3.關(guān)鍵詞(碼、key):能唯一標識每個實體又不含多余屬性的屬性組合。

一個表的碼可以有多個,但主碼只能有一個。

例:借書表(學(xué)號,姓名,書號,書名,作者,定價,借期,還期)

規(guī)定:學(xué)生一次可以借多本書,同一種書只能借一本,但可以多次續(xù)借。

4.實體型:即二維表的結(jié)構(gòu)

例 student(no,name,sex,age,dept)

5.實體集:即整個二維表

三、實體間的聯(lián)系:

1.兩實體集間實體之間的聯(lián)系

1:1聯(lián)系

1:n聯(lián)系

m:n聯(lián)系

2.同一實體集內(nèi)實體之間的聯(lián)系

1:1聯(lián)系

1:n聯(lián)系

m:n聯(lián)系

四、概念模型(常用E-R圖表示)


實體型:


屬性:


聯(lián)系:


說明:① E-R圖作為用戶與開發(fā)人員的中間語言。

② E-R圖可以等價轉(zhuǎn)換為層次、網(wǎng)狀、關(guān)系模型。

舉例:

學(xué)校有若干個系,每個系有若干班級和教研室,每個教研室有若干教員,其中有的教授

和副教授每人各帶若干研究生。每個班有若干學(xué)生,每個學(xué)生選修若干課程,每門課程有若干學(xué)生選修。用E-R圖畫出概念模型。

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

一、層次模型:用樹型結(jié)構(gòu)表示實體之間的聯(lián)系。

① 每個結(jié)點代表一個實體型。

② 只能直接處理一對多(含一對一)的實體關(guān)系。

③ 查找層次數(shù)據(jù)庫中的記錄,速度較慢。

二、網(wǎng)狀模型:用圖結(jié)構(gòu)表示實體之間的聯(lián)系。

① 每個結(jié)點代表一個實體型。

② 可以處理多對多的實體關(guān)系。

③ 查找網(wǎng)狀數(shù)據(jù)庫中的記錄,速度最快。

三、關(guān)系模型:用二維表表示實體之間的聯(lián)系。

1.重要術(shù)語:

關(guān)系:一個關(guān)系就是一個二維表;

元組:二維表的一行,即實體;

關(guān)系模式:在實體型的基礎(chǔ)上,注明主碼。

關(guān)系模型:指一個數(shù)據(jù)庫中全部二維表結(jié)構(gòu)的集合。

2.特點:

① 關(guān)系模型是建立在嚴格的數(shù)學(xué)理論的基礎(chǔ)上的;

② 關(guān)系模型的存取路徑對用戶透明;

③ 查找關(guān)系數(shù)據(jù)庫中的記錄,速度最慢。

小結(jié):數(shù)據(jù)有三種類型,DBMS就有三種類型,DB亦有三種類型。


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

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

① 單機結(jié)構(gòu):

DBMS、數(shù)據(jù)庫、開發(fā)工具、應(yīng)用系統(tǒng)安裝在一臺計算機上。

② C/S結(jié)構(gòu):局域網(wǎng)結(jié)構(gòu)

客戶機:裝開發(fā)工具、應(yīng)用系統(tǒng)

服務(wù)器:裝DBMS、數(shù)據(jù)庫

③ B/S結(jié)構(gòu):Internet 結(jié)構(gòu)

服務(wù)器:裝DBMS、數(shù)據(jù)庫、開發(fā)工具、應(yīng)用系統(tǒng)

客戶機:裝IE即可

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

1.三級模式

① 模式:是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。

ü 模式只涉及數(shù)據(jù)庫的結(jié)構(gòu);

ü 模式既不涉及應(yīng)用程序,又不涉及數(shù)據(jù)庫結(jié)構(gòu)的存儲;

② 外模式:是模式的一個子集,是與某一個應(yīng)用程序有關(guān)的邏輯表示。

特點:一個應(yīng)用程序只能使用一個外模式,但同一個外模式可為多個應(yīng)用程序使用。

③ 內(nèi)模式:描述數(shù)據(jù)庫結(jié)構(gòu)的存儲,但不涉及物理記錄。

2.兩級映象

① 外模式/模式映象:保證數(shù)據(jù)庫的邏輯獨立性;

② 模式/內(nèi)模式映象:保證數(shù)據(jù)庫的物理獨立性;

3.兩級映象的意義

① 使數(shù)據(jù)庫與應(yīng)用系統(tǒng)完全分開,數(shù)據(jù)庫改變時,應(yīng)用系統(tǒng)不必改變。

② 數(shù)據(jù)的存取完全由DBMS管理,用戶不必考慮存取路徑。


數(shù)據(jù)庫管理系統(tǒng)

1. DBMS的功能:負責(zé)對數(shù)據(jù)庫進行統(tǒng)一的管理與控制。

① 數(shù)據(jù)定義:即定義數(shù)據(jù)庫中各對象的結(jié)構(gòu)

② 數(shù)據(jù)操縱:包括對數(shù)據(jù)庫進行查詢、插入、刪除、修改等操作。

③ 數(shù)據(jù)控制:包括安全性控制、完整性控制、并發(fā)控制、數(shù)據(jù)庫恢復(fù)。

2.DBMS的組成:

DDL語言

DML語言

DCL語言

實用程序

注意:

① SQL集DDL,DML,DCL功能于一體;

② 所有應(yīng)用程序通過SQL語句才能訪問數(shù)據(jù)庫

一、 基本概念

1.碼:能唯一標識元組的屬性集。

2.候選碼:一個屬性集既能唯一標識元組,且又不含有多余屬性,一個關(guān)系模式可以有多個候選碼。

3.主碼:任選候選碼中的一個。

4.主屬性:主碼中包含的各個屬性。

5.非主屬性:不包含在主碼中的各個屬性。

6.外碼:設(shè)F是關(guān)系R的一個屬性,不是R的主碼,但卻是另一個關(guān)系S的主碼,則稱F是關(guān)系R的外碼。

例:student ( sno, sname, ssex, sage, sdept)

Sc ( sno, cno, grade)

Sc的主碼為:(sno,cno);外碼為:sno











二 數(shù)據(jù)庫設(shè)計 (第3章)

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

① 需求分析:了解分析用戶的需要、要求。

② 概念結(jié)構(gòu)設(shè)計:根據(jù)需求分析的結(jié)果畫概念模型(即E-R圖)。

③ 邏輯結(jié)構(gòu)設(shè)計:將E-R圖轉(zhuǎn)換為某一種數(shù)據(jù)模型,并優(yōu)化。

④ 物理結(jié)構(gòu)設(shè)計

⑤ 數(shù)據(jù)庫實施

⑥ 數(shù)據(jù)庫運行與恢復(fù)


概念結(jié)構(gòu)設(shè)計

一、局部E-R圖設(shè)計

1.確定局部范圍

通常把系統(tǒng)涉及的各個部門或各個主要功能作為局部。

2.確定實體與屬性

① 屬性是不能再分的數(shù)據(jù)項;

② 聯(lián)系只發(fā)生在兩實體之間;

③ 原則上,能夠作為屬性,就不要作為實體。

二、合并成總體E-R圖

1.消除各局部E-R圖的沖突問題。

2.按公共實體名合并,生成初步E-R圖。

3.消除冗余的屬性和冗余的聯(lián)系,生成總體E-R圖。

邏輯結(jié)構(gòu)設(shè)計

一、聯(lián)系的屬性和主碼

(1)聯(lián)系的屬性:必須包含相關(guān)聯(lián)的各實體型的主碼。

(2)聯(lián)系的主碼

1:1聯(lián)系:可以是相關(guān)聯(lián)的任一實體型的主碼。

1:n聯(lián)系:必須是n方實體型的主碼。

m:n聯(lián)系:必須是相關(guān)聯(lián)的各實體型的主碼之和。

二、E-R圖向關(guān)系模型的轉(zhuǎn)換

(1)把每個實體型轉(zhuǎn)換為一個關(guān)系模式。

(2)1:1聯(lián)系:可以消化到相關(guān)聯(lián)的任一實體型對應(yīng)的關(guān)系模式中。









班長( XH, XM, NL,BH)

班級(BH,RS)

(3)1:n聯(lián)系:可以消化到n方實體名對應(yīng)的關(guān)系模式中。

例:一個班級有多名學(xué)生,每名學(xué)生只能屬于一個班級。每一個班級有一名班長,他是學(xué)生中的一員。








學(xué)生(XH,XM,NL,BH)

班級(BH,RS,XH)

班長的學(xué)號

(4)m:n聯(lián)系:必須轉(zhuǎn)換為一個關(guān)系模式,并且不能消化。

例:










學(xué)生(sno,sname, ssex, sage, sdept)

課程(cno, cname,credit)

選修(sno, cno, grade)


(5)多元聯(lián)系:不能消化

例:









物理結(jié)構(gòu)設(shè)計與數(shù)據(jù)庫實施

1.物理結(jié)構(gòu)設(shè)計

在邏輯設(shè)計的基礎(chǔ)上,為每個關(guān)系模式選擇合適的存儲結(jié)構(gòu)與存儲方式。

選擇存儲結(jié)構(gòu):即決定每個表的記錄順序。

選擇存取方式:即決定為哪些屬性建立非聚集索引,以便加快查找速度。一般把經(jīng)常查詢的屬性名指定為非聚集索引。

2.?dāng)?shù)據(jù)庫實施

主要工作:

定義數(shù)據(jù)庫結(jié)構(gòu);

組織數(shù)據(jù)入庫;

編寫應(yīng)用程序;

數(shù)據(jù)庫試運行;













三 關(guān)系數(shù)據(jù)庫 (第4章)


一、域( domain)

1.定義:域是一組具有相同類型的值的集合。

2.域的基數(shù):域中所含數(shù)據(jù)的個數(shù)。


二、笛卡爾積

1.定義:給定一組域D1,D2,D3,則D1×D2×D3稱為笛卡爾積。

2.笛卡爾積D1×D2×D3對應(yīng)一個二維表,所含元組的個數(shù)等于各個域的基數(shù)之積。


三、關(guān)系

1.定義:笛卡兒積的一部分元組稱為關(guān)系。

2.關(guān)系的目(或度):一個關(guān)系所含屬性的個數(shù)。

3.關(guān)系的性質(zhì)

任意兩個元組不能完全相同,同一關(guān)系的屬性名不允許重復(fù)。


四、關(guān)系的完整性

1.實體完整性:指關(guān)系的所有主屬性都不能取空值。

注意:實體完整性不僅僅是主碼整體不能取空值。


2.參照完整性:指一個關(guān)系外碼的取值必須是相關(guān)關(guān)系中主碼的有效值或空值。

例:班級( 班名,人數(shù))

學(xué)生(學(xué)號,姓名,性別,密碼,班名)

在學(xué)生表中,班名的取值必須是班級表[班名]的值或空值。


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

一、傳統(tǒng)的集合運算

設(shè)關(guān)系R、S的結(jié)構(gòu)完全相同,則:

R∪S:由屬于R或?qū)儆赟的元組組成。

R∩S:由既屬于R又屬于S的元組組成。

R-S:由屬于R而不屬于S的元組組成。

思考:(R∩S)∪(R-S)=?


R×S:設(shè)R有m個屬性,K1個元組;S有n個屬性,K2個元組,則R×S含有(m+n)個屬性,(K1×K2)個元組。

二、專門的關(guān)系運算

1.選擇:從關(guān)系R中選擇滿足條件的元組。記為:



2.投影:從關(guān)系R中選擇若干屬性組成新的關(guān)系,并把新關(guān)系的重復(fù)元組去掉。

記為:


3.條件連接:將兩關(guān)系按一定條件連接成一個新關(guān)系,記為:


說明:條件連接:兩關(guān)系可以沒有公共屬性,若有公共屬性,則新關(guān)系含有重復(fù)屬性。


4.自然連接:將兩關(guān)系按公共屬性連接成一個新的關(guān)系,并把新關(guān)系的重復(fù)屬性去掉。

記為:

說明:① 自然連接:兩關(guān)系至少有一個公共屬性。

② 對于R的每個元組,S都從第一個元組開始判斷,若兩元組的公共屬性值相同,則產(chǎn)生一個新元組添加到新關(guān)系中,最后把新關(guān)系中的重復(fù)屬性去掉。

等值連接?


5.除:給定關(guān)系R(x,y)和S(y,z),則R÷S=P(x),其中x,y,z為屬性組。

求解過程:

① 求R中x可以取哪些值,并求各值的象集。

② 求S在屬性組y上的投影K。

③ 檢查每個象集是否包含K

注:除不是一個必須的運算,可以由其它運算符代替。

例:設(shè)有關(guān)系R,S如下圖,求R÷S。


R

A

B

C

S

B

C

D


a1

b1

c2


b1

c2

d1


a2

b3

c7


b2

c1

d1


a3

b4

c6


b2

c3

d2


a1

b2

c3






a4

b6

c6






a2

b2

c3






a1

b2

c1





解:在關(guān)系R中,A可以取四個值,a1,a2,a3,a4。

a1的象集為{(b1,c2),(b2,c3),(b2,c1)}

a2的象集為{(b3,c7),(b2,c3)}

a3的象集為{(b4,c6)}

a4的象集為{(b6,c6)}

S在(B,C)上的投影K為{(b1,c2),(b2,c3),(b2,c1)}

顯然只有a1的象集包含K,故R÷S={a1}



結(jié)論:如何寫關(guān)系代數(shù)表達式?

答:① 查詢涉及多個關(guān)系時,一般使用∞→

。

② 查詢涉及“否定”時,一般用差運算。

③ 查詢涉及“全部”時,一般用除運算。

④ 查詢涉及“至少”時,一般用×














四 關(guān)系數(shù)據(jù)庫標準語言SQL (第5章)


T-SQL


一、SQL語言的特點

①SQL語言集數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)控制的功能于一體。




動詞

數(shù)據(jù)定義

Create、drop

數(shù)據(jù)查詢

select

數(shù)據(jù)操縱

Insert、delete、update

數(shù)據(jù)控制

Grant、revoke

②所有的DBMS都支持SQL語言。


SQL基礎(chǔ)

一、創(chuàng)建和使用數(shù)據(jù)庫

1.創(chuàng)建數(shù)據(jù)庫

create database 數(shù)據(jù)庫名

2.使用數(shù)據(jù)庫

Use數(shù)據(jù)庫名

3.刪除數(shù)據(jù)庫

drop database數(shù)據(jù)庫名


二、 定義表

1.創(chuàng)建表

create table 表名(屬性名 類型,…,屬性名 類型)

①指定標識字段:identity(標識種子,標識增量)

②指定公式字段:屬性名 as 表達式

例:create table student

(no int identity(1,1),

name char(6),

chi smallint,

mat smallint,

score as chi+mat)

2.刪除表

drop table表名,…, 表名


三、select語句

select */表達式表

[into 新表]

from 表名,…,表名

[where 條件]

[group by 屬性名]

[having 條件]

[order by屬性名][Asc/Desc]


1.Select 子句

① *代表所有屬性名

② 若一個屬性名來自多個表,則屬性名前須冠以表名,格式為:表名. 屬性名

③ 設(shè)置表達式的別名:

表達式 As 別名

④ 限制查詢結(jié)果的記錄行數(shù):

all 返回全部記錄

top n 返回前面n號記錄

distinct 表示取消重復(fù)行

說明:top n只能放在關(guān)鍵字select的后面;

all、distinct只能放在關(guān)鍵字select或聚合函數(shù)的后面。


2.Where 子句

① in的格式:屬性名 in (常量,…,常量)

② like的格式:屬性名 like 通配字符串

通配符有: % 表示0個或多個字符

- 表示1個字符

③ 在Where 子句中指定連接:

Where 表名1. 屬性名=表名2. 屬性名


3.Order by子句

order by屬性名1 [Asc/Desc], 屬性名2 [Asc/Desc]


4.聚合函數(shù)

① sum(屬性名):縱向求數(shù)值型屬性之和。

② avg(屬性名)

③ count(*) 返回表的記錄行數(shù)(含重復(fù)行)。

count(屬性名) 返回指定列中取非NULL值的單元格數(shù)目。

count(distinct 屬性名) 返回指定列中取非NULL值、非重復(fù)的單元格數(shù)目。

④ max(屬性名)

⑤ min(屬性名)

5.Group by子句

使用Group by子句時,Select 子句只能使用分組項字段和聚合函數(shù)

例:以性別為分組項,求每一組的平均年齡。

Select ssex, avg(sage) as 平均年齡

From student

Group by ssex


6.Having子句

① Having子句只能跟在Group by子句之后,且只能使用聚合函數(shù)和分組項字段。

② where子句放在Group by子句之前,甚至可以沒有Group by子句;且不能包含聚合函數(shù)。

例:以系別為分組項,查詢學(xué)生平均年齡大于19歲的系的系名,平均年齡。

Select sdept,avg(sage) as平均年齡

From student

Group by sdept

Having avg(sdept)>19


7.into子句

功能:將查詢結(jié)果保存到新的基表中。


一、 查詢的分類

單表查詢

連接查詢

嵌套查詢


1.連接查詢:在where子句中指定連接

where 表名1.屬性名=表名2.屬性名


2.嵌套查詢

① 嵌套查詢的特點

·每級查詢的from子句一般只包含一個表名。

·一個嵌套查詢總可以分解為若干個單表查詢,總可以改寫成連接查詢。

·若查詢結(jié)果顯示的屬性名來自一個表,才可以寫成嵌套查詢。

·子查詢不能使用order by子句,order by只能用于最頂層的查詢。

② 在where子句中指定子查詢

where 屬性名 [not] in(子查詢):子查詢返回一列多行。

where 屬性名=(子查詢):子查詢返回一列一行。

where [not] exists(子查詢):子查詢返回多列多行。


五、數(shù)據(jù)操縱

1.insert語句

(1)每次插入一條記錄

insert into 表名[(屬性名表)] values(表達式表)

(2)插入子查詢的結(jié)果

insert into 表名[(屬性名表)]

子查詢

例:insert into student

select * from student1

2.update語句

update 表名 set 屬性名=值,…,屬性名=值 [where 條件]

缺省where子句,默認為更新全部記錄。

3.delete語句

delete from 表名 [where 條件]









五 關(guān)系數(shù)據(jù)庫規(guī)范化理論(第7章)


函數(shù)依賴

一、有關(guān)概念:

1.函數(shù)依賴:

任給R(U),U為屬性集,x、y為U的子集,如果對于x的每個值,y有唯一確定的值與之對應(yīng),則稱x決定y,或y函數(shù)依賴于x。記為:x→y。


2. 完全函數(shù)依賴:

若x→y,且對于x的所有真子集x′,都有x′ y,則稱x完全決定y,或y完全函數(shù)依賴于x。記為:

結(jié)論:若x→y,且x只包含一個屬性,則

。



3.部分函數(shù)依賴:

若x→y,且存在x的一個真子集x′,滿足x′→y,則稱x部分決定y,或y部分函數(shù)依賴于x。記為:

。


4.傳遞函數(shù)依賴:

若x→y,y→z,但 y ∕ x,則


二、平凡函數(shù)依賴與非平凡函數(shù)依賴

設(shè)x→y,如果y是x的子集,則該依賴是平凡的。如:

Sno,sname→sno

如果y中至少有一個屬性不在x中,則該依賴是非平凡的。如:

Sno,sname→sname,sdept

如果y中沒有一個屬性在x中,則該依賴為完全非平凡的。


三、函數(shù)依賴的推理規(guī)則

設(shè)有關(guān)系R,x、y、z為R的一個屬性集,則有:

①自反律:若

,則x→y。

②增廣律:若x→y,則xz→yz。

③傳遞律:若x→y,y→z,則x→z。

注意傳遞律與傳遞函數(shù)依賴的區(qū)別。

④合并律:若x→y,x→z,則x→yz。

⑤分解律:若x→yz,則x→y,x→z。



關(guān)系模式的規(guī)范化


一、問題提出

R表

XH

KH

KM

XM

DZ

CJ

961

C1

OS

高明

D1

70

962

C2

DBS

高飛

D2

72

962

C4

AI

高飛

D2

80

962

C1

OS

高明

D1

75

963

C1

OS

高明

D1

90

答:存在問題

① 數(shù)據(jù)冗余大;

② 修改麻煩;

③ 插入異常:應(yīng)該插入到DB中的數(shù)據(jù)插不進去。

如:新開課程沒有學(xué)生選修時,新開課程的課程號、課程名插不進去。

④ 刪除異常:不應(yīng)該刪除的數(shù)據(jù)被刪掉。

如選修某門課的學(xué)生畢業(yè)了,在刪除學(xué)生信息的同時,把課程信息也刪除掉。

結(jié)論:一個好的關(guān)系模式應(yīng)滿足:

① 冗余應(yīng)盡可能少;

② 應(yīng)盡可能避免插入、刪除異常;

③ 消去關(guān)系中不合適的屬性依賴關(guān)系。


二、范式

① 什么叫范式?

指一個關(guān)系的非主屬性函數(shù)依賴于主碼的程度。

② 什么叫關(guān)系規(guī)范化?

指一個關(guān)系從低級范式向高級范式的轉(zhuǎn)換過程。

③ 應(yīng)用:關(guān)系規(guī)范化理論應(yīng)用在邏輯結(jié)構(gòu)設(shè)計階段。


三、關(guān)系模式的規(guī)范化

1.第一范式(1NF)

① 定義:若關(guān)系R的所有屬性不能再分,則R∈1NF


2.第二范式(2NF)

① 定義:若關(guān)系R∈1NF,且它的每個非主屬性都完全依賴于主碼,則稱R∈2NF。

② 存在問題:

l 冗余大: R1必要冗余,R2冗余可以修改。

l 修改麻煩

l 插入異常:如新來的教師沒有上課,則該教師的信息就沒辦法插入R2表中。

l 刪除異常:若某位教師只授一門課,當(dāng)該門課不開時,該教師的信息亦被刪除。

③ 原因:存在非主屬性對主碼的傳遞依賴。

KH→XM,XM→DZ,但XM KH

[傳遞依賴必須有兩個非主屬性]

④ 解決辦法:將R2 一分為二

R21表 R22表

KH

KM

XM


XM

DZ

C1

OS

高明


高明

D1

C2

DBS

高飛


高飛

D2

C4

AI

高飛



R21主碼:KH

R22主碼:XM


3.第三范式(3NF)

① 定義:若關(guān)系R∈2NF,且它的每個非主屬性都不傳遞依賴于主碼,則稱R∈3NF。

② 規(guī)范化過程

非規(guī)范關(guān)系

↓使每個屬性都不能再分

1NF

↓消去非主屬性對主碼的部分依賴

2NF

↓消去非主屬性對主碼的傳遞依賴

3NF


BCNF:關(guān)系模式R<U,F>中,如每一個決定因素都包含碼,則R是BC范式。

如果R屬于BCNF 那么R一定屬于3NF,反之未必。

3NF

↓消去主屬性對主碼的部分依賴和傳遞依賴

BCNF


4.結(jié)論

① 若R∈1NF,且主碼只含一個屬性,則R一定為2NF。

② 若R∈2NF,且只有0~1個非主屬性,則R一定為3NF。

③ 3NF一般控制了數(shù)據(jù)冗余,一般避免了操作異常。

④ 范式并非越高越好,適可而止。













六 數(shù)據(jù)庫保護技術(shù)(第8章)


安全管理

一、兩種身份驗證模式:

僅windows模式:用戶只能使用windows登錄名登錄SQL Server

混合模式:用戶可以使用windows登錄名或SQL Server登錄名登錄SQL Server

二、兩種身份驗證:

用戶登錄到SQL Server時,必須使用特定的登錄名和密碼標識自己。

Windows身份驗證:用戶登錄到SQL Server時,使用操作系統(tǒng)當(dāng)前的登錄名和密碼。

SQL Server身份驗證:用戶登錄到SQL Server時,必須顯式提供登錄名和密碼。



常用安全性控制方法:用戶標識和控制、存取控制、視圖、審計、數(shù)據(jù)加密



數(shù)據(jù)庫完整性


一、在創(chuàng)建表時指定約束

1.主鍵約束

[constraint約束名]

Primary key [Clustered/Nonclustered] [(屬性名,…,屬性名)]

說明:

① 每個約束都有一個約束名,約束名通常由系統(tǒng)自動給出。

② 列級約束:只牽涉到一個屬性的約束,它放在相關(guān)屬性的后面,且省略屬性名表。

表級約束:牽涉到多個屬性的約束。

③ 創(chuàng)建主鍵約束、唯一性約束時可以指定聚集(clustered)或非聚集(nonclustered)。

④ 主鍵約束默認為聚集的,唯一性約束默認為非聚集的。

⑤ 一個表最多只能創(chuàng)建一個約束是聚集的,聚集約束會影響數(shù)據(jù)表的記錄號順序。


2.外鍵約束

[constraint約束名]

Foreign key[(屬性名,…,屬性名)]

References 主鍵表名(屬性名,…,屬性名)

注意:兩表關(guān)聯(lián)的方式:

①臨時關(guān)聯(lián):where 表名1.屬性名=表名2.屬性名

②永久關(guān)聯(lián):創(chuàng)建外鍵約束


3.唯一性約束

[constraint約束名]

Unique [Clustered/Nonclustered] [(屬性名,…,屬性名)]

主鍵約束與唯一約束的區(qū)別:

① 在一個表中只能定義一個主鍵約束,但可定義多個唯一性約束;

② 指定為主鍵約束的字段不能取null值,但指定為唯一性約束的字段允許取null值。


4.檢查約束

[constraint約束名]

Check (條件表達式)


5. 缺省約束

[constraint約束名]

Default 常量


二、刪除表中的約束

alter table 表名

drop constraint 約束名,...,約束名

注意:alter語句后面只能跟著一個子句。


三、向表添加約束

alter table 表名

add constraint 約束名 約束定義,...,

constraint 約束名 約束定義

約束定義指:

Primary key [Clustered/Nonclustered] (屬性組)

Foreign key(屬性組) references 主鍵表名(屬性組)

Unique [Clustered/Nonclustered] (屬性組)

Check(條件表達式)

Default 常量 for 屬性名


默認對象

①默認對象與默認約束的功能類似。

②默認對象以單獨的對象創(chuàng)建,可以綁定到數(shù)據(jù)庫的所有表中。

③默認約束只能綁定到一個表中。


規(guī)則

①規(guī)則與check約束的功能類似。

① 則以單獨的對象創(chuàng)建,可以綁定到數(shù)據(jù)庫的所有表中。

② check約束只能綁定到一個表中。



索引

一、索引的概念:

①索引使用戶能快速訪問數(shù)據(jù)表的特定信息。

② 索引必須依附于某個基本表,不能單獨存在。


二、索引的類型:

聚集索引:影響數(shù)據(jù)表的記錄順序

非聚集索引:不會影響數(shù)據(jù)表的記錄順序

注:一個表只能建立一個聚集索引,但可以建立若干個非聚集索引。


三、創(chuàng)建索引

1.自動創(chuàng)建索引:

。如果在數(shù)據(jù)表的某個屬性設(shè)置主鍵約束或唯一約束,則系統(tǒng)將在這些屬性上自動創(chuàng)建唯一索引。

。自動創(chuàng)建的索引隨約束的存在而存在,隨約束的消失而消失。


2.使用SQL語句創(chuàng)建索引

Create [unique] [clustered/nonclustered] index 索引名

On 表名(屬性名[asc/desc], 屬性名[asc/desc])

注:①若未指定clustered,則創(chuàng)建非聚集索引;

②若未指定排序方式,則為ASC;

③text,ntext類型的字段不能指定為索引字段。


四、刪除索引:

Drop index 索引名,…,索引名

思考題:創(chuàng)建主鍵時,如果使主鍵字段值不影響數(shù)據(jù)表的記錄順序?


視圖

一、視圖的特點:

①視圖只有結(jié)構(gòu),沒有記錄,是虛表;

②一個視圖總對應(yīng)著一個select語句;

③對視圖的查詢、更新,實際上是對基本表的查詢、更新。


二、定義視圖:

1.創(chuàng)建視圖:

Create view 視圖名 [(屬性名,…,屬性名)]

As 子查詢

[with check option]

說明:視圖的屬性個數(shù)必須與子查詢中select子句的表達式個數(shù)相同。


2.刪除視圖: Drop view 視圖名,…,視圖名


三、查詢視圖:

select */表達式表

from 視圖名,…,視圖名

[where 條件]

[group by 屬性名]

[order by屬性名][Asc/Desc]


四、操縱視圖:

1.向視圖插入一條記錄 insert into 視圖名[(屬性名表)] values(表達式表)

2.修改視圖中的數(shù)據(jù) update視圖名set 屬性名=值,…,屬性名=值 [where 條件]

3.刪除視圖中的記錄 delete from 視圖名 [where 條件]



存儲過程

1.什么叫存儲過程?

將一組SQL語句,以一個名稱存儲在數(shù)據(jù)庫中,就形成存儲過程。

2.創(chuàng)建存儲過程

Create proc存儲過程名[@形參名 類型][=常量][output]

As SQL語句序列

說明:

① [=常量]:用于指定形參的默認值;[output]用來指定該形參值是可以返回的。



觸發(fā)器

一、維護數(shù)據(jù)完整性的措施:

創(chuàng)建約束 基于一個表創(chuàng)建

創(chuàng)建觸發(fā)器

創(chuàng)建規(guī)則:以單獨的對象創(chuàng)建,可以綁定到數(shù)據(jù)庫的所有表中。



事務(wù)處理與并發(fā)控制

1.什么叫事務(wù)?

事務(wù)是用戶定義的一組操作序列。

③ 事務(wù)是并發(fā)控制的基本單位。

④ 一個事務(wù)包含的諸操作要么都執(zhí)行,要么都不執(zhí)行。

1. 事務(wù)的屬性

原子性:指事務(wù)中包含的諸操作要么都執(zhí)行,要么都不執(zhí)行。

一致性:事務(wù)必須使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。

隔離性:一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。

持久性


數(shù)據(jù)的鎖定

一、并發(fā)操作與數(shù)據(jù)不一致性

1.?dāng)?shù)據(jù)不一致性包括三類

丟失修改:指事務(wù)1與事務(wù)2從數(shù)據(jù)庫中讀入同一數(shù)據(jù)并修改,事務(wù)2的提交結(jié)果破壞事務(wù)1提交的結(jié)果,導(dǎo)致事務(wù)1的修改被丟失。

不可重復(fù)讀:指事務(wù)1讀取數(shù)據(jù)后,事務(wù)2執(zhí)行更新操作,使事務(wù)1無法再現(xiàn)前一次讀取結(jié)果。

讀臟數(shù)據(jù):指事務(wù)1修改某一數(shù)據(jù)后,事務(wù)2讀取該數(shù)據(jù),事務(wù)1由于某種原因被撤銷,這時數(shù)據(jù)又恢復(fù)到原值,事務(wù)2讀到的數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)不一致,稱為“臟”數(shù)據(jù)。


2.產(chǎn)生數(shù)據(jù)不一致性的原因

并發(fā)操作破壞了事務(wù)的隔離性。


二、并發(fā)控制的目標、方法

1.目標:確保DB中的數(shù)據(jù)一致性。


2.并發(fā)事務(wù)正確性的原則

幾個事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與任何一個串行執(zhí)行的結(jié)果相同。

2. 并發(fā)控制的方法

DBMS一般采用“封鎖”技術(shù),保證并發(fā)操作的可串行化。


一、 封鎖(Locking)

1. 什么叫封鎖?

SQL Server自動強制封鎖,并且會將封鎖粒度控制在合適的級別,用戶不必考慮封鎖問題。

2. 封鎖類型

排它鎖(X鎖):事務(wù)T對數(shù)據(jù)A加X鎖,其它事務(wù)不能再對A加鎖,即其它事務(wù)不能讀取和修改A。

共享鎖(S鎖):事務(wù)T對數(shù)據(jù)A加S鎖,其它事務(wù)只能再對A加S鎖,即其它事務(wù)只能讀A,不能修改A。

3. 封鎖粒度

封鎖對象可以是屬性列、元組、關(guān)系、整個數(shù)據(jù)庫。封鎖對象的大小稱為封鎖粒度。

封鎖粒度越小,并發(fā)度越高,但并發(fā)控制的開銷越大。

4. 封鎖協(xié)議

① 事務(wù)T在修改數(shù)據(jù)A之前,必須對其加X鎖,直到事務(wù)結(jié)束才釋放。

② 事務(wù)T在讀取數(shù)據(jù)A之前,必須對其加S鎖,直到事務(wù)結(jié)束才釋放。

遵循封鎖協(xié)議,可以解決三種數(shù)據(jù)不一致性問題:

丟失修改

不可重復(fù)讀

讀“臟”數(shù)據(jù)


四、死鎖和活鎖

封鎖技術(shù)可以解決并發(fā)操作的不一致性問題,但也帶來新的問題,即死鎖和活鎖。

1. 死鎖:

① 定義:兩個事務(wù)已經(jīng)各自鎖定一個數(shù)據(jù),但是又要訪問被對方鎖定的數(shù)據(jù),造成了循環(huán)等待,稱為死鎖。

② 避免死鎖的方法:

順序封鎖法:若規(guī)定封鎖順序為A,B,則T1,T2只能先封鎖A,再封鎖B。

2.活鎖:

① 定義:若多個事務(wù)請求封鎖同一個數(shù)據(jù)時,其中的某個事務(wù)總處于等待狀態(tài),則稱為活鎖。

② 避免活鎖的方法:先來先服務(wù)



事務(wù)可串行化調(diào)度:兩段鎖協(xié)議




《數(shù)據(jù)庫原理》知識點總結(jié)的評論 (共 條)

分享到微博請遵守國家法律
长汀县| 广西| 珠海市| 马鞍山市| 吉木乃县| 高唐县| 漳平市| 伊金霍洛旗| 怀化市| 上犹县| 塔河县| 康保县| 革吉县| 武冈市| 明水县| 兴海县| 确山县| 宝清县| 通渭县| 石狮市| 孟村| 惠安县| 洪江市| 乡城县| 辽阳县| 巴塘县| 达孜县| 新绛县| 灵丘县| 迁安市| 永顺县| 阿克苏市| 德安县| 元谋县| 武清区| 金溪县| 定安县| 墨玉县| 隆化县| 闸北区| 樟树市|