




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目錄未找到目錄項(xiàng)。一 數(shù)據(jù)庫基礎(chǔ)知識(第1、2章) 一、有關(guān)概念1數(shù)據(jù)2數(shù)據(jù)庫(DB)3數(shù)據(jù)庫管理系統(tǒng)(DBMS) Access桌面DBMS VFP SQL Server Oracle客戶機(jī)/服務(wù)器型DBMS MySQL DB24數(shù)據(jù)庫系統(tǒng)(DBS) 數(shù)據(jù)庫(DB) 數(shù)據(jù)庫管理系統(tǒng)(DBMS) 開發(fā)工具 應(yīng)用系統(tǒng)二、數(shù)據(jù)管理技術(shù)的發(fā)展1數(shù)據(jù)管理的三個(gè)階段人工管理文件系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)能否保存不能保存可以保存可以保存數(shù)據(jù)面向的對象某一應(yīng)用程序某一應(yīng)用程序整個(gè)應(yīng)用系統(tǒng)數(shù)據(jù)的共享程度無共享,一組數(shù)據(jù)只能對應(yīng)一個(gè)應(yīng)用程序。共享性差,一個(gè)數(shù)據(jù)文件只能對應(yīng)一個(gè)應(yīng)用程序。共享性高數(shù)據(jù)的獨(dú)立性不獨(dú)立,它是應(yīng)用
2、程序的一部分。獨(dú)立性差數(shù)據(jù)庫與應(yīng)用系統(tǒng)完全分開 概念模型一、模型的三個(gè)世界1現(xiàn)實(shí)世界2信息世界:即根據(jù)需求分析畫概念模型(即E-R圖),E-R圖與DBMS無關(guān)。3機(jī)器世界:將E-R圖轉(zhuǎn)換為某一種數(shù)據(jù)模型,數(shù)據(jù)模型與DBMS相關(guān)。注意:信息世界又稱概念模型,機(jī)器世界又稱數(shù)據(jù)模型二、實(shí)體及屬性1實(shí)體:客觀存在并可相互區(qū)別的事物。2屬性:3關(guān)鍵詞(碼、key):能唯一標(biāo)識每個(gè)實(shí)體又不含多余屬性的屬性組合。一個(gè)表的碼可以有多個(gè),但主碼只能有一個(gè)。例:借書表(學(xué)號,姓名,書號,書名,作者,定價(jià),借期,還期)規(guī)定:學(xué)生一次可以借多本書,同一種書只能借一本,但可以多次續(xù)借。4實(shí)體型:即二維表的結(jié)構(gòu)例 stu
3、dent(no,name,sex,age,dept)5實(shí)體集:即整個(gè)二維表三、實(shí)體間的聯(lián)系:1兩實(shí)體集間實(shí)體之間的聯(lián)系 1:1聯(lián)系 1:n聯(lián)系 m:n聯(lián)系2同一實(shí)體集內(nèi)實(shí)體之間的聯(lián)系1:1聯(lián)系 1:n聯(lián)系 m:n聯(lián)系四、概念模型(常用E-R圖表示)實(shí)體型:屬性:聯(lián)系:說明: E-R圖作為用戶與開發(fā)人員的中間語言。 E-R圖可以等價(jià)轉(zhuǎn)換為層次、網(wǎng)狀、關(guān)系模型。舉例:學(xué)校有若干個(gè)系,每個(gè)系有若干班級和教研室,每個(gè)教研室有若干教員,其中有的教授和副教授每人各帶若干研究生。每個(gè)班有若干學(xué)生,每個(gè)學(xué)生選修若干課程,每門課程有若干學(xué)生選修。用E-R圖畫出概念模型。 數(shù)據(jù)模型一、層次模型:用樹型結(jié)構(gòu)表示實(shí)體
4、之間的聯(lián)系。 每個(gè)結(jié)點(diǎn)代表一個(gè)實(shí)體型。 只能直接處理一對多(含一對一)的實(shí)體關(guān)系。 查找層次數(shù)據(jù)庫中的記錄,速度較慢。二、網(wǎng)狀模型:用圖結(jié)構(gòu)表示實(shí)體之間的聯(lián)系。 每個(gè)結(jié)點(diǎn)代表一個(gè)實(shí)體型。 可以處理多對多的實(shí)體關(guān)系。 查找網(wǎng)狀數(shù)據(jù)庫中的記錄,速度最快。三、關(guān)系模型:用二維表表示實(shí)體之間的聯(lián)系。1重要術(shù)語:關(guān)系:一個(gè)關(guān)系就是一個(gè)二維表;元組:二維表的一行,即實(shí)體;關(guān)系模式:在實(shí)體型的基礎(chǔ)上,注明主碼。關(guān)系模型:指一個(gè)數(shù)據(jù)庫中全部二維表結(jié)構(gòu)的集合。2特點(diǎn): 關(guān)系模型是建立在嚴(yán)格的數(shù)學(xué)理論的基礎(chǔ)上的; 關(guān)系模型的存取路徑對用戶透明; 查找關(guān)系數(shù)據(jù)庫中的記錄,速度最慢。小結(jié):數(shù)據(jù)有三種類型,DBMS就有
5、三種類型,DB亦有三種類型。 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)一、數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu) 單機(jī)結(jié)構(gòu):DBMS、數(shù)據(jù)庫、開發(fā)工具、應(yīng)用系統(tǒng)安裝在一臺計(jì)算機(jī)上。 C/S結(jié)構(gòu):局域網(wǎng)結(jié)構(gòu)客戶機(jī):裝開發(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)客戶機(jī):裝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)的存儲(chǔ); 外模式:是模式的一個(gè)子集,是與某一個(gè)應(yīng)用程序有關(guān)的邏輯表示。特點(diǎn):一個(gè)應(yīng)用程序只能使用一個(gè)外模式,
6、但同一個(gè)外模式可為多個(gè)應(yīng)用程序使用。 內(nèi)模式:描述數(shù)據(jù)庫結(jié)構(gòu)的存儲(chǔ),但不涉及物理記錄。2兩級映象 外模式/模式映象:保證數(shù)據(jù)庫的邏輯獨(dú)立性; 模式/內(nèi)模式映象:保證數(shù)據(jù)庫的物理獨(dú)立性;3兩級映象的意義 使數(shù)據(jù)庫與應(yīng)用系統(tǒng)完全分開,數(shù)據(jù)庫改變時(shí),應(yīng)用系統(tǒng)不必改變。 數(shù)據(jù)的存取完全由DBMS管理,用戶不必考慮存取路徑。 數(shù)據(jù)庫管理系統(tǒng)1 DBMS的功能:負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理與控制。 數(shù)據(jù)定義:即定義數(shù)據(jù)庫中各對象的結(jié)構(gòu) 數(shù)據(jù)操縱:包括對數(shù)據(jù)庫進(jìn)行查詢、插入、刪除、修改等操作。 數(shù)據(jù)控制:包括安全性控制、完整性控制、并發(fā)控制、數(shù)據(jù)庫恢復(fù)。2DBMS的組成:DDL語言 DML語言DCL語言實(shí)用程
7、序注意: SQL集DDL,DML,DCL功能于一體; 所有應(yīng)用程序通過SQL語句才能訪問數(shù)據(jù)庫一、 基本概念1碼:能唯一標(biāo)識元組的屬性集。2候選碼:一個(gè)屬性集既能唯一標(biāo)識元組,且又不含有多余屬性,一個(gè)關(guān)系模式可以有多個(gè)候選碼。3主碼:任選候選碼中的一個(gè)。4主屬性:主碼中包含的各個(gè)屬性。5非主屬性:不包含在主碼中的各個(gè)屬性。6外碼:設(shè)F是關(guān)系R的一個(gè)屬性,不是R的主碼,但卻是另一個(gè)關(guān)系S的主碼,則稱F是關(guān)系R的外碼。例:student ( sno, sname, ssex, sage, sdept) Sc ( sno, cno, grade)Sc的主碼為:(sno,cno);外碼為:sno二 數(shù)
8、據(jù)庫設(shè)計(jì) (第3章) 一、數(shù)據(jù)庫設(shè)計(jì)的步驟 需求分析:了解分析用戶的需要、要求。 概念結(jié)構(gòu)設(shè)計(jì):根據(jù)需求分析的結(jié)果畫概念模型(即E-R圖)。 邏輯結(jié)構(gòu)設(shè)計(jì):將E-R圖轉(zhuǎn)換為某一種數(shù)據(jù)模型,并優(yōu)化。 物理結(jié)構(gòu)設(shè)計(jì) 數(shù)據(jù)庫實(shí)施 數(shù)據(jù)庫運(yùn)行與恢復(fù) 概念結(jié)構(gòu)設(shè)計(jì)一、局部E-R圖設(shè)計(jì) 1確定局部范圍 通常把系統(tǒng)涉及的各個(gè)部門或各個(gè)主要功能作為局部。2確定實(shí)體與屬性 屬性是不能再分的數(shù)據(jù)項(xiàng); 聯(lián)系只發(fā)生在兩實(shí)體之間; 原則上,能夠作為屬性,就不要作為實(shí)體。二、合并成總體E-R圖1消除各局部E-R圖的沖突問題。2按公共實(shí)體名合并,生成初步E-R圖。3消除冗余的屬性和冗余的聯(lián)系,生成總體E-R圖。 邏輯結(jié)構(gòu)設(shè)
9、計(jì)一、聯(lián)系的屬性和主碼(1)聯(lián)系的屬性:必須包含相關(guān)聯(lián)的各實(shí)體型的主碼。(2)聯(lián)系的主碼1:1聯(lián)系:可以是相關(guān)聯(lián)的任一實(shí)體型的主碼。1:n聯(lián)系:必須是n方實(shí)體型的主碼。m:n聯(lián)系:必須是相關(guān)聯(lián)的各實(shí)體型的主碼之和。二、E-R圖向關(guān)系模型的轉(zhuǎn)換(1)把每個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。(2)1:1聯(lián)系:可以消化到相關(guān)聯(lián)的任一實(shí)體型對應(yīng)的關(guān)系模式中。NLXMXHBHXHBHRS班級管理班長 11班長( XH, XM, NL,BH)班級(BH,RS)(3)1:n聯(lián)系:可以消化到n方實(shí)體名對應(yīng)的關(guān)系模式中。例:一個(gè)班級有多名學(xué)生,每名學(xué)生只能屬于一個(gè)班級。每一個(gè)班級有一名班長,他是學(xué)生中的一員。XHXMN
10、L 學(xué)生 1n班長組成XH組成BH11班級BHRS學(xué)生(XH,XM,NL,BH)班級(BH,RS,XH) 班長的學(xué)號(4)m:n聯(lián)系:必須轉(zhuǎn)換為一個(gè)關(guān)系模式,并且不能消化。sagessexsname例:sdeptcnogradesno選修理工creditcnamecno課程sno學(xué)生 mn學(xué)生(sno,sname, ssex, sage, sdept)課程(cno, cname,credit)選修(sno, cno, grade)(5)多元聯(lián)系:不能消化例:供應(yīng)商m供應(yīng) nmk零件產(chǎn)品 物理結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)庫實(shí)施1物理結(jié)構(gòu)設(shè)計(jì)在邏輯設(shè)計(jì)的基礎(chǔ)上,為每個(gè)關(guān)系模式選擇合適的存儲(chǔ)結(jié)構(gòu)與存儲(chǔ)方式。選擇存
11、儲(chǔ)結(jié)構(gòu):即決定每個(gè)表的記錄順序。選擇存取方式:即決定為哪些屬性建立非聚集索引,以便加快查找速度。一般把經(jīng)常查詢的屬性名指定為非聚集索引。2數(shù)據(jù)庫實(shí)施主要工作:定義數(shù)據(jù)庫結(jié)構(gòu);組織數(shù)據(jù)入庫;編寫應(yīng)用程序;數(shù)據(jù)庫試運(yùn)行;三 關(guān)系數(shù)據(jù)庫 (第4章)一、域( domain)1定義:域是一組具有相同類型的值的集合。2域的基數(shù):域中所含數(shù)據(jù)的個(gè)數(shù)。二、笛卡爾積1定義:給定一組域D1,D2,D3,則D1×D2×D3稱為笛卡爾積。2笛卡爾積D1×D2×D3對應(yīng)一個(gè)二維表,所含元組的個(gè)數(shù)等于各個(gè)域的基數(shù)之積。三、關(guān)系1定義:笛卡兒積的一部分元組稱為關(guān)系。2關(guān)系的目(或度)
12、:一個(gè)關(guān)系所含屬性的個(gè)數(shù)。3關(guān)系的性質(zhì)任意兩個(gè)元組不能完全相同,同一關(guān)系的屬性名不允許重復(fù)。四、關(guān)系的完整性1實(shí)體完整性:指關(guān)系的所有主屬性都不能取空值。注意:實(shí)體完整性不僅僅是主碼整體不能取空值。2參照完整性:指一個(gè)關(guān)系外碼的取值必須是相關(guān)關(guān)系中主碼的有效值或空值。例:班級( 班名,人數(shù))學(xué)生(學(xué)號,姓名,性別,密碼,班名)在學(xué)生表中,班名的取值必須是班級表班名的值或空值。 關(guān)系代數(shù)一、傳統(tǒng)的集合運(yùn)算設(shè)關(guān)系R、S的結(jié)構(gòu)完全相同,則:RS:由屬于R或?qū)儆赟的元組組成。RS:由既屬于R又屬于S的元組組成。RS:由屬于R而不屬于S的元組組成。思考:(RS)(RS)=?R×S:設(shè)R有m個(gè)屬
13、性,K1個(gè)元組;S有n個(gè)屬性,K2個(gè)元組,則R×S含有(m+n)個(gè)屬性,(K1×K2)個(gè)元組。二、專門的關(guān)系運(yùn)算1選擇:從關(guān)系R中選擇滿足條件的元組。記為: 2投影:從關(guān)系R中選擇若干屬性組成新的關(guān)系,并把新關(guān)系的重復(fù)元組去掉。記為: 3條件連接:將兩關(guān)系按一定條件連接成一個(gè)新關(guān)系,記為: 說明:條件連接:兩關(guān)系可以沒有公共屬性,若有公共屬性,則新關(guān)系含有重復(fù)屬性。4自然連接:將兩關(guān)系按公共屬性連接成一個(gè)新的關(guān)系,并把新關(guān)系的重復(fù)屬性去掉。記為: 說明: 自然連接:兩關(guān)系至少有一個(gè)公共屬性。 對于R的每個(gè)元組,S都從第一個(gè)元組開始判斷,若兩元組的公共屬性值相同,則產(chǎn)生一個(gè)新
14、元組添加到新關(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。檢查每個(gè)象集是否包含K注:除不是一個(gè)必須的運(yùn)算,可以由其它運(yùn)算符代替。例:設(shè)有關(guān)系R,S如下圖,求R÷S。RABCSBCDa1b1c2b1c2d1a2b3c7b2c1d1a3b4c6b2c3d2a1b2c3a4b6c6a2b2c3a1b2c1解:在關(guān)系R中,A可以取四個(gè)值,a1,a2,a3,a4。a1的象集為(b1,c2),(b2,c3),(b2,c1)a
15、2的象集為(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ù)表達(dá)式?答: 查詢涉及多個(gè)關(guān)系時(shí),一般使用 。 查詢涉及“否定”時(shí),一般用差運(yùn)算。 查詢涉及“全部”時(shí),一般用除運(yùn)算。 查詢涉及“至少”時(shí),一般用× 四 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL (第5章)T-SQL 一、SQL語言的特點(diǎn)SQL語言集數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)控制的功能于一體。動(dòng)詞數(shù)據(jù)定義Create、drop數(shù)據(jù)查詢select數(shù)據(jù)操縱Inse
16、rt、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 表名(屬性名 類型,屬性名 類型)指定標(biāo)識字段:identity(標(biāo)識種子,標(biāo)識增量)指定公式字段:屬性名 as 表達(dá)式例:create table student (no int identity(1,1),name char(6),chi smallint,mat smallint,score
17、as chi+mat)2刪除表 drop table表名, 表名三、select語句select */表達(dá)式表into 新表from 表名,表名where 條件group by 屬性名having 條件order by屬性名Asc/Desc1Select 子句 *代表所有屬性名 若一個(gè)屬性名來自多個(gè)表,則屬性名前須冠以表名,格式為:表名. 屬性名 設(shè)置表達(dá)式的別名: 表達(dá)式 As 別名 限制查詢結(jié)果的記錄行數(shù): all 返回全部記錄 top n 返回前面n號記錄 distinct 表示取消重復(fù)行 說明:top n只能放在關(guān)鍵字select的后面; all、distinct只能放在關(guān)鍵字sele
18、ct或聚合函數(shù)的后面。2Where 子句 in的格式:屬性名 in (常量,常量) like的格式:屬性名 like 通配字符串 通配符有: % 表示0個(gè)或多個(gè)字符 - 表示1個(gè)字符 在Where 子句中指定連接: Where 表名1. 屬性名=表名2. 屬性名3Order by子句 order by屬性名1 Asc/Desc, 屬性名2 Asc/Desc4聚合函數(shù) sum(屬性名):縱向求數(shù)值型屬性之和。 avg(屬性名) count(*) 返回表的記錄行數(shù)(含重復(fù)行)。count(屬性名) 返回指定列中取非NULL值的單元格數(shù)目。 count(distinct 屬性名) 返回指定列中取非N
19、ULL值、非重復(fù)的單元格數(shù)目。 max(屬性名) min(屬性名)5Group by子句 使用Group by子句時(shí),Select 子句只能使用分組項(xiàng)字段和聚合函數(shù) 例:以性別為分組項(xiàng),求每一組的平均年齡。 Select ssex, avg(sage) as 平均年齡 From student Group by ssex6Having子句 Having子句只能跟在Group by子句之后,且只能使用聚合函數(shù)和分組項(xiàng)字段。 where子句放在Group by子句之前,甚至可以沒有Group by子句;且不能包含聚合函數(shù)。 例:以系別為分組項(xiàng),查詢學(xué)生平均年齡大于19歲的系的系名,平均年齡。Sel
20、ect sdept,avg(sage) as平均年齡From studentGroup by sdeptHaving avg(sdept)>197into子句 功能:將查詢結(jié)果保存到新的基表中。一、 查詢的分類 單表查詢連接查詢嵌套查詢1連接查詢:在where子句中指定連接where 表名1.屬性名=表名2.屬性名2嵌套查詢 嵌套查詢的特點(diǎn)·每級查詢的from子句一般只包含一個(gè)表名。·一個(gè)嵌套查詢總可以分解為若干個(gè)單表查詢,總可以改寫成連接查詢。·若查詢結(jié)果顯示的屬性名來自一個(gè)表,才可以寫成嵌套查詢。·子查詢不能使用order by子句,order
21、 by只能用于最頂層的查詢。 在where子句中指定子查詢 where 屬性名 not in(子查詢):子查詢返回一列多行。 where 屬性名=(子查詢):子查詢返回一列一行。 where not exists(子查詢):子查詢返回多列多行。五、數(shù)據(jù)操縱1insert語句(1)每次插入一條記錄 insert into 表名(屬性名表) values(表達(dá)式表)(2)插入子查詢的結(jié)果 insert into 表名(屬性名表) 子查詢 例:insert into student select * from student12update語句update 表名 set 屬性名=值,屬性名=值 wh
22、ere 條件 缺省where子句,默認(rèn)為更新全部記錄。3delete語句delete from 表名 where 條件五 關(guān)系數(shù)據(jù)庫規(guī)范化理論(第7章) 函數(shù)依賴一、有關(guān)概念:1函數(shù)依賴:任給R(U),U為屬性集,x、y為U的子集,如果對于x的每個(gè)值,y有唯一確定的值與之對應(yīng),則稱x決定y,或y函數(shù)依賴于x。記為:xy。2. 完全函數(shù)依賴:若xy,且對于x的所有真子集x,都有x y,則稱x完全決定y,或y完全函數(shù)依賴于x。記為:。結(jié)論:若xy,且x只包含一個(gè)屬性,則。3部分函數(shù)依賴:若xy,且存在x的一個(gè)真子集x,滿足xy,則稱x部分決定y,或y部分函數(shù)依賴于x。記為:。4傳遞函數(shù)依賴:若xy
23、,yz,但 y x,則二、平凡函數(shù)依賴與非平凡函數(shù)依賴設(shè)xy,如果y是x的子集,則該依賴是平凡的。如:Sno,snamesno 如果y中至少有一個(gè)屬性不在x中,則該依賴是非平凡的。如:Sno,snamesname,sdept如果y中沒有一個(gè)屬性在x中,則該依賴為完全非平凡的。三、函數(shù)依賴的推理規(guī)則設(shè)有關(guān)系R,x、y、z為R的一個(gè)屬性集,則有:自反律:若,則xy。增廣律:若xy,則xzyz。傳遞律:若xy,yz,則xz。注意傳遞律與傳遞函數(shù)依賴的區(qū)別。合并律:若xy,xz,則xyz。分解律:若xyz,則xy,xz。 關(guān)系模式的規(guī)范化一、問題提出R表XHKHKMXMDZCJ961C1OS高明D17
24、0962C2DBS高飛D272962C4AI高飛D280962C1OS高明D175963C1OS高明D190答:存在問題 數(shù)據(jù)冗余大; 修改麻煩; 插入異常:應(yīng)該插入到DB中的數(shù)據(jù)插不進(jìn)去。如:新開課程沒有學(xué)生選修時(shí),新開課程的課程號、課程名插不進(jìn)去。 刪除異常:不應(yīng)該刪除的數(shù)據(jù)被刪掉。如選修某門課的學(xué)生畢業(yè)了,在刪除學(xué)生信息的同時(shí),把課程信息也刪除掉。結(jié)論:一個(gè)好的關(guān)系模式應(yīng)滿足: 冗余應(yīng)盡可能少; 應(yīng)盡可能避免插入、刪除異常; 消去關(guān)系中不合適的屬性依賴關(guān)系。二、范式 什么叫范式?指一個(gè)關(guān)系的非主屬性函數(shù)依賴于主碼的程度。 什么叫關(guān)系規(guī)范化?指一個(gè)關(guān)系從低級范式向高級范式的轉(zhuǎn)換過程。 應(yīng)用
25、:關(guān)系規(guī)范化理論應(yīng)用在邏輯結(jié)構(gòu)設(shè)計(jì)階段。三、關(guān)系模式的規(guī)范化1第一范式(1NF) 定義:若關(guān)系R的所有屬性不能再分,則R1NF2第二范式(2NF) 定義:若關(guān)系R1NF,且它的每個(gè)非主屬性都完全依賴于主碼,則稱R2NF。 存在問題:l 冗余大: R1必要冗余,R2冗余可以修改。l 修改麻煩l 插入異常:如新來的教師沒有上課,則該教師的信息就沒辦法插入R2表中。l 刪除異常:若某位教師只授一門課,當(dāng)該門課不開時(shí),該教師的信息亦被刪除。 原因:存在非主屬性對主碼的傳遞依賴。KHXM,XMDZ,但XM KH傳遞依賴必須有兩個(gè)非主屬性 解決辦法:將R2 一分為二R21表 R22表KHKMXMXMDZC
26、1OS高明高明D1C2DBS高飛高飛D2C4AI高飛R21主碼:KHR22主碼:XM3第三范式(3NF) 定義:若關(guān)系R2NF,且它的每個(gè)非主屬性都不傳遞依賴于主碼,則稱R3NF。 規(guī)范化過程非規(guī)范關(guān)系使每個(gè)屬性都不能再分1NF 消去非主屬性對主碼的部分依賴2NF 消去非主屬性對主碼的傳遞依賴3NFBCNF:關(guān)系模式R<U,F>中,如每一個(gè)決定因素都包含碼,則R是范式。如果R屬于BCNF 那么R一定屬于3NF,反之未必。3NF 消去主屬性對主碼的部分依賴和傳遞依賴 BCNF4結(jié)論 若R1NF,且主碼只含一個(gè)屬性,則R一定為2NF。 若R2NF,且只有01個(gè)非主屬性,則R一定為3NF
27、。 3NF一般控制了數(shù)據(jù)冗余,一般避免了操作異常。 范式并非越高越好,適可而止。六 數(shù)據(jù)庫保護(hù)技術(shù)(第8章)安全管理一、兩種身份驗(yàn)證模式:僅windows模式:用戶只能使用windows登錄名登錄SQL Server混合模式:用戶可以使用windows登錄名或SQL Server登錄名登錄SQL Server二、兩種身份驗(yàn)證: 用戶登錄到SQL Server時(shí),必須使用特定的登錄名和密碼標(biāo)識自己。 Windows身份驗(yàn)證:用戶登錄到SQL Server時(shí),使用操作系統(tǒng)當(dāng)前的登錄名和密碼。SQL Server身份驗(yàn)證:用戶登錄到SQL Server時(shí),必須顯式提供登錄名和密碼。常用安全性控制方法
28、:用戶標(biāo)識和控制、存取控制、視圖、審計(jì)、數(shù)據(jù)加密 數(shù)據(jù)庫完整性 一、在創(chuàng)建表時(shí)指定約束1主鍵約束 constraint約束名 Primary key Clustered/Nonclustered (屬性名,屬性名)說明: 每個(gè)約束都有一個(gè)約束名,約束名通常由系統(tǒng)自動(dòng)給出。 列級約束:只牽涉到一個(gè)屬性的約束,它放在相關(guān)屬性的后面,且省略屬性名表。 表級約束:牽涉到多個(gè)屬性的約束。 創(chuàng)建主鍵約束、唯一性約束時(shí)可以指定聚集(clustered)或非聚集(nonclustered)。 主鍵約束默認(rèn)為聚集的,唯一性約束默認(rèn)為非聚集的。 一個(gè)表最多只能創(chuàng)建一個(gè)約束是聚集的,聚集約束會(huì)影響數(shù)據(jù)表的記錄號順序
29、。2外鍵約束 constraint約束名Foreign key(屬性名,屬性名)References 主鍵表名(屬性名,屬性名)注意:兩表關(guān)聯(lián)的方式:臨時(shí)關(guān)聯(lián):where 表名1屬性名=表名2屬性名永久關(guān)聯(lián):創(chuàng)建外鍵約束3唯一性約束constraint約束名Unique Clustered/Nonclustered (屬性名,屬性名)主鍵約束與唯一約束的區(qū)別: 在一個(gè)表中只能定義一個(gè)主鍵約束,但可定義多個(gè)唯一性約束; 指定為主鍵約束的字段不能取null值,但指定為唯一性約束的字段允許取null值。4檢查約束 constraint約束名 Check (條件表達(dá)式) 5. 缺省約束 constra
30、int約束名 Default 常量二、刪除表中的約束alter table 表名drop constraint 約束名,.,約束名注意:alter語句后面只能跟著一個(gè)子句。三、向表添加約束alter table 表名 add constraint 約束名 約束定義,., constraint 約束名 約束定義約束定義指:Primary key Clustered/Nonclustered (屬性組)Foreign key(屬性組) references 主鍵表名(屬性組)Unique Clustered/Nonclustered (屬性組)Check(條件表達(dá)式)Default 常量 for
31、屬性名 默認(rèn)對象默認(rèn)對象與默認(rèn)約束的功能類似。默認(rèn)對象以單獨(dú)的對象創(chuàng)建,可以綁定到數(shù)據(jù)庫的所有表中。默認(rèn)約束只能綁定到一個(gè)表中。 規(guī)則規(guī)則與check約束的功能類似。 則以單獨(dú)的對象創(chuàng)建,可以綁定到數(shù)據(jù)庫的所有表中。 check約束只能綁定到一個(gè)表中。索引一、索引的概念:索引使用戶能快速訪問數(shù)據(jù)表的特定信息。 索引必須依附于某個(gè)基本表,不能單獨(dú)存在。二、索引的類型:聚集索引:影響數(shù)據(jù)表的記錄順序非聚集索引:不會(huì)影響數(shù)據(jù)表的記錄順序注:一個(gè)表只能建立一個(gè)聚集索引,但可以建立若干個(gè)非聚集索引。三、創(chuàng)建索引1自動(dòng)創(chuàng)建索引:。如果在數(shù)據(jù)表的某個(gè)屬性設(shè)置主鍵約束或唯一約束,則系統(tǒng)將在這些屬性上自動(dòng)創(chuàng)建唯
32、一索引。自動(dò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í),如果使主鍵字段值不影響數(shù)據(jù)表的記錄順序? 視圖一、視圖的特點(diǎn):視圖只有結(jié)構(gòu),沒有記錄,是虛表; 一個(gè)視圖總對應(yīng)著一個(gè)select語句;對視圖的查詢、更新,實(shí)際
33、上是對基本表的查詢、更新。二、定義視圖:1創(chuàng)建視圖: Create view 視圖名 (屬性名,屬性名) As 子查詢 with check option說明:視圖的屬性個(gè)數(shù)必須與子查詢中select子句的表達(dá)式個(gè)數(shù)相同。2刪除視圖: Drop view 視圖名,視圖名三、查詢視圖:select */表達(dá)式表from 視圖名,視圖名 where 條件group by 屬性名order by屬性名Asc/Desc四、操縱視圖:1向視圖插入一條記錄 insert into 視圖名(屬性名表) values(表達(dá)式表)2修改視圖中的數(shù)據(jù) update視圖名set 屬性名=值,屬性名=值 where
34、條件3刪除視圖中的記錄 delete from 視圖名 where 條件 存儲(chǔ)過程1什么叫存儲(chǔ)過程? 將一組SQL語句,以一個(gè)名稱存儲(chǔ)在數(shù)據(jù)庫中,就形成存儲(chǔ)過程。2創(chuàng)建存儲(chǔ)過程Create proc存儲(chǔ)過程名形參名 類型=常量outputAs SQL語句序列說明: =常量:用于指定形參的默認(rèn)值;output用來指定該形參值是可以返回的。觸發(fā)器一、維護(hù)數(shù)據(jù)完整性的措施:創(chuàng)建約束 基于一個(gè)表創(chuàng)建創(chuàng)建觸發(fā)器創(chuàng)建規(guī)則:以單獨(dú)的對象創(chuàng)建,可以綁定到數(shù)據(jù)庫的所有表中。事務(wù)處理與并發(fā)控制1什么叫事務(wù)? 事務(wù)是用戶定義的一組操作序列。 事務(wù)是并發(fā)控制的基本單位。 一個(gè)事務(wù)包含的諸操作要么都執(zhí)行,要么都不執(zhí)行。1 事務(wù)的屬性原子性:指事務(wù)中包含的諸操作要么都執(zhí)行,要么都不執(zhí)行。一致性:事務(wù)必須使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。持久性數(shù)據(jù)的鎖定一、并發(fā)操作與數(shù)據(jù)不一致性1數(shù)據(jù)不一致性
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 區(qū)域中心小學(xué)餐飲配送服務(wù)體系建設(shè)規(guī)劃方案探討
- 合肥特殊疾病管理辦法
- 學(xué)校三年發(fā)展規(guī)劃實(shí)施成果評估與反思總結(jié)報(bào)告
- 江蘇紅酒倉儲(chǔ)管理辦法
- 回遷工作經(jīng)費(fèi)管理辦法
- 非物質(zhì)文化遺產(chǎn)保護(hù)策略研究
- 余杭房屋租賃管理辦法
- 請假休假管理:全面指南與實(shí)施建議
- 安全生產(chǎn)與文明施工綜合實(shí)施方案
- 公司個(gè)人借支管理辦法
- 拍賣公司員工培訓(xùn)考核管理制度
- 廣東省行業(yè)企業(yè)職業(yè)技能競賽技術(shù)工作指引
- 浙江2025年6月高一學(xué)考模擬歷史試題及答案
- 2025年計(jì)算機(jī)程序設(shè)計(jì)考試試卷及答案
- 2025年河南省中考數(shù)學(xué)真題含答案
- 人力中介公司管理制度
- 抗精神病藥氯丙嗪講課件
- 2025人教英語初中八年級下冊期末測試卷(含答案)
- 燃?xì)馊霊艋卦L管理制度
- 燃?xì)夤居?jì)量管理制度
- 綜合與實(shí)踐 白晝時(shí)長規(guī)律的探究 同步練習(xí)(含答案)人教版七年級數(shù)學(xué)下冊
評論
0/150
提交評論