版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫系統(tǒng)基本概念數(shù)據(jù)庫(Database,簡稱DB)數(shù)據(jù)庫是長期存儲在計算機內(nèi)有組織的大量可共享的數(shù)據(jù)集合數(shù)據(jù)庫管理系統(tǒng)(Database Management System,簡稱DBMS)數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件數(shù)據(jù)庫系統(tǒng)(Database System,簡稱DBS)數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成 DBMS的主要功能是什么?1、數(shù)據(jù)定義功能2、數(shù)據(jù)組織、存儲和管理3、數(shù)據(jù)操縱功能4、數(shù)據(jù)庫的事務(wù)管理和運行管理5、數(shù)據(jù)庫的建立和維護功能數(shù)據(jù)管理經(jīng)歷的發(fā)展經(jīng)歷了哪
2、幾個階段?1.人工管理階段2.文件系統(tǒng)階段3.數(shù)據(jù)庫階段數(shù)據(jù)庫系統(tǒng)有什么特點?1. 數(shù)據(jù)結(jié)構(gòu)化2. 數(shù)據(jù)共享性高、冗余度低、易擴充3. 數(shù)據(jù)獨立性高4. 數(shù)據(jù)由DBMS統(tǒng)一管理和控制數(shù)據(jù)的獨立性包括哪些?什么是邏輯獨立性?什么是物理獨立性?n 數(shù)據(jù)的獨立性是指邏輯獨立性和物理獨立性。n 數(shù)據(jù)的邏輯獨立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。數(shù)據(jù)的物理獨立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨立的,也就是說,數(shù)據(jù)在磁盤上的數(shù)據(jù)庫中怎樣存儲是有DBMS管理的,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這
3、樣當(dāng)數(shù)據(jù)的物理存儲改變了,應(yīng)用程序不用改變。數(shù)據(jù)庫管理系統(tǒng)提供了哪幾方面的數(shù)據(jù)控制功能?(1)數(shù)據(jù)的安全性(security)控制(2)數(shù)據(jù)的完整性(integrity)控制(3)并發(fā)(concurrency)控制(4)數(shù)據(jù)恢復(fù)(recovery)數(shù)據(jù)模型的三大要素是什么?數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)操作,數(shù)據(jù)的約束條件三個要素組成兩個實體型之間的聯(lián)系有哪幾種類型?(1)一對一聯(lián)系(1:1)n 如:班級與班主任,觀眾與座位,病人與床位。(2)一對多聯(lián)系(1:n)如:班級與學(xué)生、公司與職員、省與市。(3)多對多(m:n)如:教師與學(xué)生,學(xué)生與課程,工廠與產(chǎn)品。E-R圖的表示方法 用E-R圖來描述
4、現(xiàn)實世界的概念模型。 E-R圖提供了表示實體型、屬性和聯(lián)系的方法: n 實體型:用矩形表示,矩形框內(nèi)寫明實體名。 n 屬性:用橢圓形表示,并用直線將其與相應(yīng)的實體連接起來。 聯(lián)系 聯(lián)系本身:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n) 聯(lián)系的屬性:聯(lián)系本身也是一種實體型,也可以有屬性。如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來例子:為倉庫管理設(shè)計一個E-R模型,該倉庫主要管理零件的入庫、出庫和采購等事項。倉庫根據(jù)需要向外面廠家訂購零件,而許多工程項目需要倉庫供應(yīng)零件。實體有:n 倉庫:屬性有倉庫號、倉
5、庫面積、電話號碼。n 零件:屬性有零件號、名稱、規(guī)格、單價、描述。n 供應(yīng)商:屬性有供應(yīng)商號、姓名、地址、電話號、帳號。n 項目:屬性有項目號、預(yù)算、開工日期。n 職工:屬性有職工號、姓名、年齡、職稱。實體之間的聯(lián)系如下:n 一個倉庫可以存放多種零件,一種零件可以存放在多個倉庫中。某種零件在某個倉庫中的數(shù)量用庫存量描述。n 一個倉庫有多個職工當(dāng)倉庫保管員,一個職工只能在一個倉庫工作。n 職工之間具有領(lǐng)導(dǎo)被領(lǐng)導(dǎo)的關(guān)系,即倉庫主任領(lǐng)導(dǎo)若干保管員。 n 一個供應(yīng)商可以供給若干項目多種零件,每個項目可以使用不同供應(yīng)商供給的零件,每種零件可以由不同的供應(yīng)商供給。 畫出實體及其屬性圖零件名稱規(guī)格零件號單價
6、描述倉庫倉庫號面積電話號碼項目項目號預(yù)算開工日期供應(yīng)商姓名地址供應(yīng)商號電話號碼賬號職工職工號姓名年齡職稱 畫出實體及其聯(lián)系圖供應(yīng)量供應(yīng)商項目供應(yīng)mnp倉庫零件倉庫nm職工工作1n領(lǐng)導(dǎo)1n庫存量 畫出實體聯(lián)系圖供應(yīng)量供應(yīng)倉庫工作mnpnm1n領(lǐng)導(dǎo)1n庫存量供應(yīng)商姓名地址供應(yīng)商號電話號碼賬號倉庫倉庫號面積電話號碼職工職工號姓名年齡職稱項目項目號預(yù)算開工日期零件名稱規(guī)格零件號單價描述關(guān)系模型n 在用戶的觀點下,關(guān)系模型中,數(shù)據(jù)的邏輯結(jié)構(gòu)就是一張二維表。它以行和列組成。關(guān)系模式 對關(guān)系的描述,一般表示為:關(guān)系名(屬性1,屬性2,屬性n) 如:學(xué)生(學(xué)號,姓名,性別,年齡,系別關(guān)系模型的數(shù)據(jù)操縱n 數(shù)據(jù)
7、操縱主要包括查詢、插入、刪除和修改數(shù)據(jù)關(guān)系模型的完整性約束n 即實體完整性、參照完整性和用戶定義的完整性數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)模式(也稱邏輯模式) 數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述 所有用戶的公共數(shù)據(jù)視圖,綜合了所有用戶的需求 一個數(shù)據(jù)庫只有一個模式 模式的地位:是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層 與數(shù)據(jù)的物理存儲細(xì)節(jié)和硬件環(huán)境無關(guān) 與具體的應(yīng)用程序、開發(fā)工具及高級程序設(shè)計語言無關(guān)外模式(也稱子模式或用戶模式) 數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述 數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示 外模式的地位:介于模式與應(yīng)用之間 模式與外模式的關(guān)
8、系:一對多 外模式通常是模式的子集 一個數(shù)據(jù)庫可以有多個外模式。內(nèi)模式(也稱存儲模式) 是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述 是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式 記錄的存儲方式(順序存儲,按照B樹結(jié)構(gòu)存儲,按hash方法存儲) 索引的組織方式 數(shù)據(jù)是否壓縮存儲 數(shù)據(jù)是否加密 數(shù)據(jù)存儲記錄結(jié)構(gòu)的規(guī)定 一個數(shù)據(jù)庫只有一個內(nèi)模式二級映象功能 1外模式模式映象 2模式內(nèi)模式映象外模式模式映象 外模式模式映象的用途:保證數(shù)據(jù)的邏輯獨立性 當(dāng)模式改變時,數(shù)據(jù)庫管理員修改有關(guān)的外模式模式映象,使外模式保持不變模式內(nèi)模式映象 模式內(nèi)模式映象的用途:保證數(shù)據(jù)的物理獨立性 當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了(例如選用了另一種存儲結(jié)構(gòu))
9、,數(shù)據(jù)庫管理員修改模式內(nèi)模式映象,使模式保持不變關(guān)系關(guān)系是一個二維表,表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域。 候選碼 若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個元組,則稱該屬性組為候選碼(Candidate key)。 全碼 在最簡單的情況下,候選碼只包含一個屬性。在最極端的情況下,關(guān)系模式的所有屬性組是這個關(guān)系模式的候選碼,稱為全碼(All-key)。 主碼 若一個關(guān)系有多個候選碼,則選定其中一個為 主碼(Primary key)。關(guān)系模型中三類完整性約束: 實體完整性 參照完整性 用戶定義的完整性實體完整性規(guī)則(Entity Integrity) 若屬性A是基本關(guān)系R的主屬性,則屬性A不
10、能取空值。例SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE屬性為主碼(假設(shè)研究生不會重名),則其不能取空值。外碼 設(shè)F是基本關(guān)系R的一個或一組屬性, 但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼(Foreign Key)學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡) 專業(yè)(專業(yè)號,專業(yè)名)找出下面關(guān)系中的主碼和外碼。參照完整性規(guī)則 若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為: 或者取空值(F的每個屬性值均為空值)
11、或者等于S中某個元組的主碼值。用戶定義的完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。用戶定義的完整性(續(xù))例 課程(課程號,課程名,學(xué)分) “課程名”屬性必須取唯一值 非主屬性“課程名”也不能取空值 “學(xué)分”屬性只能取值1,2,3,4傳統(tǒng)的集合運算 對兩個關(guān)系的集合運算作并,交,差時,對關(guān)系有什么要求呢?兩個關(guān)系都具有相同的目n(即兩個關(guān)系都有n個屬性),且相應(yīng)的屬性取自同一個域。專門的關(guān)系運算 選擇 投影 連接 除選擇(續(xù)) 選擇運算是從行的角度進(jìn)行的運算 舉例設(shè)有一個學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系S
12、C。查詢年齡小于20歲的學(xué)生 Sage 20(Student) 或 4 20(Student)根據(jù)關(guān)系代數(shù)表達(dá)式寫出結(jié)果: SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS投影(Projection) 投影操作主要是從列的角度進(jìn)行運算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)查詢學(xué)生的姓名和所在系即求Student關(guān)系上學(xué)生姓名和所在系兩個屬性上的投影 Sname,Sdept(Student)或 2,5(Student)連接(續(xù))1. 等值連接中不要求相等屬性值的屬性名相同,而自然連接要求相等屬性
13、值的屬性名必須相同,即兩關(guān)系只有在同名屬性才能進(jìn)行自然連接。2. 等值連接不將重復(fù)屬性去掉,而自然連接去掉重復(fù)屬性,也可以說,自然連接是去掉重復(fù)列的等值連接。例查詢沒有任何一門課程成績不及格的所有學(xué)生的學(xué)號、姓名和系別 Sno,Sname,Sdept(Grade60(Student SC)關(guān)系代數(shù)表達(dá)式一定要掌握。書上的例題,課后作業(yè).練習(xí) 查詢2號課程的選課情況 查詢學(xué)習(xí)課程號為2的學(xué)生的學(xué)號和姓名 查詢學(xué)習(xí)課程名為數(shù)學(xué)的學(xué)生的學(xué)號和姓名 查詢學(xué)習(xí)課程號為2或3的學(xué)生的學(xué)號 查詢不學(xué)習(xí)課程號為2的學(xué)生的姓名和年齡 查詢學(xué)習(xí)全部課程的學(xué)生姓名n 查詢所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號Stu
14、dent(Sno , Sname , Ssex , Sage , Sdept)Course(Cno , Cname , Cpno , Credit)SC(Sno,Cno,Grade)SQL語言Structured Query Langue具有數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢、數(shù)據(jù)控制功能SQL的特點 綜合統(tǒng)一 2. 高度非過程化 3. 面向集合的操作方式 4. 同一種語法結(jié)構(gòu)提供兩種使用方式 5. 語言簡捷,易學(xué)易用SQL的數(shù)據(jù)定義功能: 模式定義、表定義、視圖和索引的定義 定義基本表(1) 定義基本表的語句格式: CREATE TABLE ( 列級完整性約束條件 , 列級完整性約束條件.) ,;
15、約束類型:在定義完整性約束時必須指定完整性約束的類型。 五種類型的完整性約束:(1)NULL/NOT NULL(2)UNIQUE約束(3)PRIMARY KEY約束(4)FOREIGN KEY約束(5)CHECK約束例 建立包含完整性定義的學(xué)生表CREATE TABLE S(SNO CHAR(6) PRIMARY KEY,SN CHAR(8) NOT NULL,AGE NUMERIC(2) NOT NULL,CHECK (AGE BETWEEN 15 AND 50),SEX CHAR(2), DEPT CHAR(10) foreign key references D(DNO));索引的分類聚
16、集索引:按照索引的字段排列記錄,并且依照排好的順序?qū)⒂涗洿鎯υ诒碇小Nㄒ凰饕罕硎颈碇忻恳粋€索引值只對應(yīng)唯一的數(shù)據(jù)記錄。1.唯一性索引常用于PRIMARY KEY的字段上,以區(qū)別每一筆記錄。2.而當(dāng)表中有PRIMARY KEY的字段時,SQL SERVER會在PRIMARY KEY字段建立一個唯一索引。復(fù)合索引:是將兩個字段或多個字段組合起來建立的索引,而單獨的字段允許有重復(fù)的值。建立索引建立索引的語句是CREATE INDEX,其語法格式為:CREATE UNIQUE CLUSTER INDEX ON ( 次序 , 次序)例為表SC在SNO上建立唯一索引。CREATE UNIQUE INDE
17、X SCI ON SC(SNO)例 為教師表T在TN上建立聚集索引。CREATE CLUSTER INDEX TI ON T(TN)例 為學(xué)生-課程數(shù)據(jù)庫中的Student、Couse、SC三個表建立索引。其中Student表按學(xué)號升序建唯一索引,Couse表按課程號升序建唯一索引,Sno、Cno表按學(xué)號升序和課程號降序建唯一索引。 CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE INDEX Coucno ON Couse(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC
18、); 數(shù)據(jù)庫的數(shù)據(jù)操縱功能: 數(shù)據(jù)的查詢; 數(shù)據(jù)的插入; 數(shù)據(jù)的刪除; 數(shù)據(jù)的修改.查 詢 單表查詢 連接查詢 嵌套查詢 集合查詢 語句格式SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ; SELECT子句:指定要顯示的屬性列 FROM子句:指定查詢對象(基本表或視圖) WHERE子句:指定查詢條件 GROUP BY子句:對查詢結(jié)果按指定列的值分組,該屬性列值相等的元組為一個組。通常會在每組中作聚集函數(shù) HAVING短語:篩選出滿足指定條件的組 ORDER BY子句:對查詢結(jié)果表按指定列值的升序或降序排
19、序 WHERE子句常用的查詢條件查詢計算機科學(xué)系全體學(xué)生的名單。 SELECT Sname FROM Student WHERE Sdept=CS; /Sname (Sdept=CS(Student))多重條件查詢查詢計算機系年齡在20歲以下的學(xué)生姓名。 SELECT Sname FROM Student WHERE Sdept= CS AND Sage20;ORDER BY子句 例24 查詢選修了3號課程學(xué)生的學(xué)號及其成績,查詢結(jié)果按分?jǐn)?shù)升序排列。 SELECT Sno,Grade FROM SC WHERE Cno= 3 ORDER BY Grade ASC;例25 查詢?nèi)w學(xué)生情況,查詢
20、結(jié)果按所在系的系號升序排列,同一系中的學(xué)生按年齡降序排列。 SELECT * FROM Student ORDER BY Sdept,Sage DESC; 聚集函數(shù) - 計數(shù)COUNT(DISTINCT|ALL *)COUNT(DISTINCT|ALL ) 計算總和SUM(DISTINCT|ALL ) 計算平均值A(chǔ)VG(DISTINCT|ALL ) 最大最小值 MAX(DISTINCT|ALL ) MIN(DISTINCT|ALL )例26 查詢學(xué)生總?cè)藬?shù)。 SELECT COUNT(*) FROM Student; 例27 查詢選修了課程的學(xué)生人數(shù)。 SELECT COUNT( DISTIN
21、CT Sno) FROM SC; GROUP BY子句分組: 細(xì)化聚集函數(shù)的作用對象 未對查詢結(jié)果分組,聚集函數(shù)將作用于整個查詢結(jié)果 對查詢結(jié)果分組后,聚集函數(shù)將分別作用于每個組 作用對象是查詢的中間結(jié)果表 按指定的一列或多列值分組,值相等的為一組例31 求各個課程號及相應(yīng)的選課人數(shù)。SELECT Cno,count(Sno) FROM SC GROUP BY Cno;例32 查詢選修了2門以上課程的學(xué)生學(xué)號。 SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) 2; 如果分組后還要求按一定的條件對這些組進(jìn)行篩選,最終只輸出滿足制定條件的組,則可以使
22、用HAVING短語制定篩選條件連接查詢前面的查詢都是針對一個表進(jìn)行的,當(dāng)查詢同時涉及兩個以上的表時,稱為連接查詢表的連接方法:表之間滿足一定的條件的行進(jìn)行連接,F(xiàn)ROM子句中指明進(jìn)行連接的表名,WHERE子句指明連接的列名及其連接條件查詢每個學(xué)生及其選修課程的情況。SELECT Student.*,SC.*FROM Student,SCWHERE Student.Sno = SC.Sno;復(fù)合條件連接:WHERE子句中含多個連接條件例37 查詢選修2號課程且成績在90分以上的所有學(xué)生的學(xué)號和姓名SELECT Student.Sno, SnameFROM Student, SCWHERE Stu
23、dent.Sno = SC.Sno AND /* 連接謂詞* SC.Cno= 2 AND SC.Grade 90; /其他限定條件 */查詢與“劉晨”在同一個系學(xué)習(xí)的學(xué)生。 SELECT Sno,Sname,Sdept FROM Student WHERE Sdept IN (SELECT Sdept FROM Student WHERE Sname= 劉晨 );1. EXISTS謂詞n 存在量詞$ n 帶有EXISTS謂詞的子查詢不返回任何數(shù)據(jù),只產(chǎn)生邏輯真值“true”或邏輯假值“false” 若內(nèi)層查詢結(jié)果非空,則外層查詢的WHERE子句返回真值 若內(nèi)層查詢結(jié)果為空,則外層查詢的WHER
24、E子句返回假值n 由EXISTS引出的子查詢,其目標(biāo)列表達(dá)式通常都用* ,因為帶EXISTS的子查詢只返回真值或假值,給出列名無實際意義2. NOT EXISTS謂詞 若內(nèi)層查詢結(jié)果非空,則外層查詢的WHERE子句返回假值 若內(nèi)層查詢結(jié)果為空,則外層查詢WHERE子句返回真值 用嵌套查詢(EXISTS) 查詢選修了1號課程的學(xué)生姓名。 SELECT Sname FROM Student WHERE EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno= 1 );集合查詢查詢計算機科學(xué)系的學(xué)生及年齡不大于19歲的學(xué)生信息。 SELECT *
25、 FROM Student WHERE Sdept= CS UNION SELECT * FROM Student WHERE Sage=19;插入單個元組語句格式 INSERT INTO (,) VALUES ( ,)功能 將新元組插入指定表中。將一個新學(xué)生記錄(學(xué)號:95020;姓名:陳冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中。 INSERT INTO Student VALUES (95020,陳冬,男,IS,18); 修改數(shù)據(jù) 語句格式 UPDATE SET =,= WHERE ;功能修改指定表中滿足WHERE子句條件的元組將學(xué)生95001的年齡改為22歲。
26、UPDATE Student SET Sage=22 WHERE Sno= 95001 ; 修改多個元組的值例6 將所有學(xué)生的年齡增加1歲 UPDATE Student SET Sage= Sage+1;例 將信息系所有學(xué)生的年齡增加1歲。 UPDATE Student SET Sage= Sage+1 WHERE Sdept= IS ;帶子查詢的修改語句例7 將計算機科學(xué)系全體學(xué)生的成績置零。 UPDATE SC SET Grade=0 WHERE CS = (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno);將計算機科學(xué)系全體學(xué)生的
27、成績置零。另解: UPDATE SC SET Grade=0 WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept=計算機)刪除數(shù)據(jù)l 語句格式 DELETE FROM WHERE ; 功能w 刪除指定表中滿足WHERE子句條件的元組 WHERE子句w 指定要刪除的元組w 缺省表示要修改表中的所有元組刪除2號課程的所有選課記錄。 DELETE FROM SC; WHERE Cno=2;刪除所有的學(xué)生選課記錄。 DELETE FROM SC;刪除計算機科學(xué)系所有學(xué)生的選課記錄。 DELETE FROM SC WHERE CS= (SELETE Sde
28、pt FROM Student WHERE Student.Sno=SC.Sno);刪除計算機科學(xué)系所有學(xué)生的選課記錄。另解: DELETE FROM SC WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept=計算機)視圖的特點是什么? 虛表,是從一個或幾個基本表(或視圖)導(dǎo)出的表 只存放視圖的定義,不會出現(xiàn)數(shù)據(jù)冗余 基表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也隨之改變建立視圖 語句格式 CREATE VIEW ( ,) AS WITH CHECK OPTION;建立信息系學(xué)生的視圖。 CREATE VIEW IS_Student AS SELE
29、CT Sno,Sname,Sage FROM Student WHERE Sdept= IS;建立信息系選修了1號課程的學(xué)生視圖。 CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept= IS AND Student.Sno=SC.Sno AND SC.Cno= 1;數(shù)據(jù)庫安全性 什么是數(shù)據(jù)庫的安全性 數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫,防止因用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞。計算機系統(tǒng)的三類安全性問題是什么?技術(shù)安全類管理安全類政策法律類計算機系統(tǒng)中
30、,安全措施是一級一級層層設(shè)置計算機系統(tǒng)的安全模型 數(shù)據(jù)庫安全性控制的常用方法有哪些?用戶標(biāo)識和鑒別存取控制視圖機制審計數(shù)據(jù)加密 常用存取控制方法有哪些?自主存取控制(DAC)強制存取控制(MAC)自主存取控制方法 通過 SQL 的 GRANT 語句和 REVOKE 語句實現(xiàn) 用戶權(quán)限組成n 數(shù)據(jù)對象n 操作類型 定義用戶存取權(quán)限:定義用戶可以在哪些數(shù)據(jù)庫對象上進(jìn)行哪些類型的操作 定義存取權(quán)限稱為授權(quán) 強制存取控制方法 主體是系統(tǒng)中的活動實體 DBMS所管理的實際用戶 代表用戶的各進(jìn)程 客體是系統(tǒng)中的被動實體,是受主體操縱的 文件 基表 索引 視圖 敏感度標(biāo)記(Label) 絕密(Top Sec
31、ret) 機密(Secret) 可信(Confidential) 公開(Public) 主體的敏感度標(biāo)記稱為許可證級別(Clearance Level) 客體的敏感度標(biāo)記稱為密級(Classification Level) MAC機制就是通過對比主體的Label和客體的Label,最終確定主體是否能夠存取客體授 權(quán) GRANT語句的一般格式: GRANT ,. ON TO ,. WITH GRANT OPTION; 誰定義?DBA和表的建立者(即表的屬主) GRANT功能:將對指定操作對象的指定操作權(quán)限授予指定的用戶。WITH GRANT OPTION子句 指定了WITH GRANT OPTI
32、ON子句: 獲得某種權(quán)限的用戶還可以把這種權(quán)限再授予別的用戶。 沒有指定WITH GRANT OPTION子句: 獲得某種權(quán)限的用戶只能使用該權(quán)限,不能傳播該權(quán)限。例1 把查詢Student表權(quán)限授給用戶U1 GRANT SELECT ON TABLE Student TO U1;把對Student表和Course表的全部權(quán)限授予用戶U2和U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;例3 把對表SC的查詢權(quán)限授予所有用戶 GRANT SELECT ON TABLE SC TO PUBLIC;例4 把查詢Student表和
33、修改學(xué)生學(xué)號的權(quán)限授給用戶U4 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;SQL收回權(quán)限的功能 REVOKE語句的一般格式為: REVOKE ,. ON FROM ,.; 功能:從指定用戶那里收回對指定對象的指定權(quán)限例7 把用戶U4修改學(xué)生學(xué)號的權(quán)限收回REVOKE UPDATE(Sno)ON TABLE Student FROM U4;什么是數(shù)據(jù)庫角色? 數(shù)據(jù)庫角色是被命名的一組與數(shù)據(jù)庫操作相關(guān)的權(quán)限,角色是權(quán)限的集合。什么是數(shù)據(jù)庫的完整性? 數(shù)據(jù)的正確性和相容性例: 學(xué)生的年齡必須是整數(shù),取值范圍為14-29; 學(xué)生的性別只能是男或女
34、; 學(xué)生的學(xué)號一定是唯一的; 學(xué)生所在的系必須是學(xué)校開設(shè)的系;DBMS的完整性控制機制應(yīng)具有哪些功能? (1)定義功能,即提供定義完整性約束條件的機制; (2)提供完整性檢查的方法,即檢查用戶發(fā)出的操作請求是否違背了完整性約束條件; (3)違約處理:如果發(fā)現(xiàn)用戶的操作違背了完整性約束條件,就采取一定的動作來保證數(shù)據(jù)的完整性。 1實體完整性CREATE TABLE語句中提供了PRIMARY KEY子句,供用戶在建表時指定關(guān)系的主碼列2定義參照完整性 FOREIGN KEY子句:定義外碼列 REFERENCES子句:外碼相應(yīng)于哪個表的主碼例:建立SC表 CREATE TABLE SC ( SNO
35、CHAR(9) NOT NULL, CNO CHAR(4) NOT NULL, GRADE SMALLINT, PRIMARY KEY (SNO,CNO), FOREIGN KEY (SNO) REFERENCES STUDENT(SNO), FOREIGN KEY (CNO) REFERENCES COURSE(CNO);3用戶定義的完整(續(xù))1. 用CREATE TABLE語句在建表時定義用戶完整性約束可定義三類完整性約束 列值非空(NOT NULL短語) 列值唯一(UNIQUE短語) 檢查列值是否滿足一個布爾表達(dá)式(CHECK短語)例 建立包含完整性定義的學(xué)生表CREATE TABLE
36、STUDENT(SNO CHAR(6) PRIMARY KEY,SN CHAR(8) UNIQUE,AGE NUMERIC(2)CHECK (AGE BETWEEN 15 AND 50),SEX CHAR(2) CHECK( SEX IN(男,女), DEPT CHAR(10) );4完整性約束命名子句CONSTRAINT PRIMARY KEY短語 |FOREIGN KEY短語 |CHECK短語例10 建立學(xué)生登記表Student,要求學(xué)號在9000099999之間,姓名不能取空值,年齡小于30,性別只能是“男”或“女”。 CREATE TABLE Student (Sno NUMERIC(
37、6) CONSTRAINT C1 CHECK (Sno BETWEEN 90000 AND 99999), Sname CHAR(20) CONSTRAINT C2 NOT NULL, Sage NUMERIC(3) CONSTRAINT C3 CHECK (Sage 30), Ssex CHAR(2) CONSTRAINT C4 CHECK (Ssex IN ( 男,女), CONSTRAINT StudentKey PRIMARY KEY(Sno) ); 在Student表上建立了5個約束條件,包括主碼約束(命名為StudentKey)以及C1、C2、C3、C4四個列級約束觸發(fā)器 觸發(fā)器(
38、Trigger)是用戶定義在關(guān)系表上的一類由事件驅(qū)動的特殊過程 由服務(wù)器自動激活一旦定義了觸發(fā)器,任何用戶對表的增、刪、改操作均由服務(wù)器自動激活相應(yīng)的觸發(fā)器,在DBMS核心層進(jìn)行集中的完整性控制 可以進(jìn)行更為復(fù)雜的檢查和操作,具有更精細(xì)和更強大的數(shù)據(jù)控制能力定義觸發(fā)器 CREATE TRIGGER語法格式 CREATE TRIGGER BEFORE | AFTER ON FOR EACH ROW | STATEMENT WHEN 一個好的關(guān)系模式應(yīng)該具備什么條件?1. 盡可能少的數(shù)據(jù)冗余。2. 沒有插入異常。3. 沒有刪除異常。4. 沒有更新異常。 什么叫函數(shù)依賴?1函數(shù)依賴的定義定義設(shè)關(guān)系模
39、式R(U,F(xiàn)),U是屬性全集,F(xiàn)是U上的函數(shù)依賴集,X和Y是U的子集,如果對于R(U)的任意一個可能的關(guān)系r,對于X的每一個具體值,Y都有唯一的具體值與之對應(yīng),則稱X函數(shù)確定Y,或Y函數(shù)依賴于X,記作XY。我們稱X為決定因素,Y為依賴因素。1平凡的函數(shù)依賴與非平凡的函數(shù)依賴。 如果X Y,并且Y不是X的子集,則稱X Y是非平凡的函數(shù)依賴; 如果Y是X的子集,則稱XY是平凡的函數(shù)依賴; 例如:(S#,SN) SN 是平凡的函數(shù)依賴 若不特別聲明,我們討論的都是非平凡的函數(shù)依賴。2 完全函數(shù)依賴與部分函數(shù)依賴定義 設(shè)關(guān)系模式R(U),U是屬性全集,X和Y是U的子集,如果XY,并且對于X的任何一個真
40、子集X,都有X Y,則稱Y對X完全函數(shù)依賴(Full Functional Dependency), 記作 X Y。如果對X的某個真子集X,有X Y,則稱Y部分函數(shù)依賴于X,記作 X Y。例如,在關(guān)系模式SCD中,因為SNO SCORE,且CNO SCORE,所以有: (SNO,CNO) SCORE 。 而SNOAGE,所以(SNO,CNO) AGE。注意:只有當(dāng)決定因素是組合屬性時,討論部分函數(shù)依賴才有意義,當(dāng)決定因素是單屬性時,只能是完全函數(shù)依賴。例如,在關(guān)系模式S(SNO,SN,AGE,DEPT),決定因素為單屬性SNO,有SNO(SN,AGE,DEPT),不存在部分函數(shù)依賴。 3 傳遞
41、函數(shù)依賴定義 設(shè)有關(guān)系模式R(U),U是屬性全集,X,Y,Z是U的子集, 若XY,但Y X,而YZ(Y X,Z Y),則稱Z對X傳遞函數(shù)依賴(Transitive Functional Dependency)。 加上條件Y X,是因為:如果YX,則X Y,這時稱Z對X直接函數(shù)依賴,而不是傳遞函數(shù)依賴。主屬性:包含在任何一個候選碼中的屬性,稱作主屬性,不包含在任何碼中的屬性稱為非主屬性。范式 至此在關(guān)系數(shù)據(jù)庫規(guī)范中建立了一個范式系列:1NF,2NF,3NF,BCNF,4NF,5NF,一級比一級有更嚴(yán)格的要求。 各個范式之間的聯(lián)系可以表示為: 5NF 4NF BCNF 3NF 2NF 1NF1 第一范式如果關(guān)系模式R,其所有的屬性均為簡單屬性,即每個屬性都城是不可再分的,則稱R屬于第一范式,簡稱1NF,記作R1NF。2 第二范式如果關(guān)系模式R1NF,且每個非主屬性都完全函數(shù)依賴于R的碼,則稱R屬于第二范式(Second Normal Form),簡稱2NF,記作R2NF。3 第三范式定義 如果關(guān)系模式R2NF,且每個非主屬性都不傳遞依賴于R的碼,則稱R屬于第三范式(Third Normal Form),簡
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建立完善的焊接管理制度制度
- 市政府發(fā)文計劃申報制度
- 【答案】《IndustrialEcology(產(chǎn)業(yè)生態(tài)學(xué))》(北京師范大學(xué))章節(jié)作業(yè)慕課答案
- 雨課堂學(xué)堂在線學(xué)堂云《電子測量技術(shù)(沈陽工業(yè))》單元測試考核答案
- 浙江工商職業(yè)技術(shù)學(xué)院《電路Ⅱ》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北水利電力學(xué)院《運動推拿按摩》2023-2024學(xué)年第二學(xué)期期末試卷
- 瀘州職業(yè)技術(shù)學(xué)院《ExportMarketing》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京醫(yī)科大學(xué)《自動化學(xué)科前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)部治安保衛(wèi)制度
- 平?jīng)雎殬I(yè)技術(shù)學(xué)院《電磁學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2026河北石家莊技師學(xué)院選聘事業(yè)單位工作人員36人備考考試試題附答案解析
- 云南省2026年普通高中學(xué)業(yè)水平選擇性考試調(diào)研測試歷史試題(含答案詳解)
- GB 4053.3-2025固定式金屬梯及平臺安全要求第3部分:工業(yè)防護欄桿及平臺
- 2025年下屬輔導(dǎo)技巧課件2025年
- 電儀施工質(zhì)量總結(jié)
- 《甜花香型大葉種工夫紅茶》編制說明
- QSY06503.14-2020石油煉制與化工裝置工藝設(shè)計包編制規(guī)范 - 副本
- 柜式七氟丙烷-氣體滅火系統(tǒng)-安裝與施工-方案
- 核醫(yī)學(xué)全身骨顯像骨顯像課件
- 昌樂縣鎮(zhèn)區(qū)基準(zhǔn)地價更新修正體系匯編(完整版)資料
- 項目管理學(xué)課件戚安邦全
評論
0/150
提交評論