大學(xué)數(shù)據(jù)庫(kù)全面知識(shí)點(diǎn)資料整理_第1頁
大學(xué)數(shù)據(jù)庫(kù)全面知識(shí)點(diǎn)資料整理_第2頁
大學(xué)數(shù)據(jù)庫(kù)全面知識(shí)點(diǎn)資料整理_第3頁
大學(xué)數(shù)據(jù)庫(kù)全面知識(shí)點(diǎn)資料整理_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余13頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第1章緒論1 . 數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)重要組成部分,它的功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫(kù)的運(yùn)行管理、數(shù)據(jù)庫(kù)的建立和維護(hù)功能。2 . 數(shù)據(jù)庫(kù)系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng),一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(及其開發(fā)工具) 、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員構(gòu)成。3 . 數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展是與計(jì)算機(jī)技術(shù)及其應(yīng)用的發(fā)展聯(lián)系在一起的,它經(jīng)歷了三個(gè)階段:人工管理階段,文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。4 . 數(shù)據(jù)庫(kù)具有數(shù)據(jù)結(jié)構(gòu)化、最小的冗余度、較高的數(shù)據(jù)獨(dú)立性等特點(diǎn)。5 .DBMS還必須提供數(shù)據(jù)的安全性保護(hù)、數(shù)據(jù)的完整性檢查、并發(fā)控制、數(shù)據(jù)庫(kù)恢復(fù)等數(shù)據(jù)控制功能。6 . 數(shù)據(jù)庫(kù)管理系統(tǒng)的主

2、要功能有哪些?( 填空題 ) 數(shù)據(jù)庫(kù)定義功能; 數(shù)據(jù)存取功能; 數(shù)據(jù)庫(kù)運(yùn)行管理; 數(shù)據(jù)庫(kù)的建立和維護(hù)功能。7. 三級(jí)模式之間的兩層映象保證了數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。 ( 問答題 )8 . 試述概念模型的作用。(填空題)概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。概念模型用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言。9 . 根據(jù)模型應(yīng)用的不同目的,可以將這些模型劃分為兩類, 它們分別屬于兩個(gè)不同的層次。第一類是概念模型,第二類是數(shù)據(jù)模型。 ( 問答題 )10 . 定

3、義并解釋概念模型中以下術(shù)語:實(shí)體,實(shí)體型,實(shí)體集,屬性,碼,實(shí)體聯(lián)系圖(E-R圖) ( 填空題)實(shí)體:客觀存在并可以相互區(qū)分的事物叫實(shí)體。實(shí)體型: 具有相同屬性的實(shí)體具有相同的特征和性質(zhì),用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體稱為實(shí)體型。實(shí)體集:同型實(shí)體的集合稱為實(shí)體集。屬性:實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來刻畫。碼:唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。實(shí)體聯(lián)系圖: E-R 圖提供了表示實(shí)體型、屬性和聯(lián)系的方法:實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名。屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來。聯(lián)系: 用菱形表示, 菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同

4、時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1 : 1, 1 : n 或 m : n )。11 . 數(shù)據(jù)模型的三要素是指數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)操作,完整性約束。實(shí)際數(shù)據(jù)庫(kù)系統(tǒng)中所支持的主要數(shù)據(jù)模型是關(guān)系模型,層次模型,網(wǎng)狀模型。13 . 數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)是對(duì)數(shù)據(jù)系統(tǒng)的靜態(tài)特征描述, 包括數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)間聯(lián)系的描述, 數(shù)據(jù)操作是對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的動(dòng)態(tài)特征描述,是一組定義在數(shù)據(jù)上的操作,包括操作的涵義、操作符、運(yùn)算規(guī)則及其語言等。(問答題)14 . 定義并解釋以下術(shù)語:DDL、 DML ( 填空題 )DDL:數(shù)據(jù)定義語言。用來定義數(shù)據(jù)庫(kù)模式、外模式、內(nèi)模式的語言。DML:數(shù)據(jù)操縱語言。用來對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢、插入、

5、刪除和修改的語句。15 . 關(guān)系模型是目前最常用也是最重要的一種數(shù)據(jù)模型。采用該模型作為數(shù)據(jù)的組織方式的數(shù)據(jù)庫(kù)系統(tǒng)稱為關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。( 問答題)16 . 關(guān)系的完整性約束條件包括三大類:實(shí)體完整性、參照完整性和用戶定義的完整性。(問答題 )17 . 什么叫數(shù)據(jù)與程序的物理獨(dú)立性?什么叫數(shù)據(jù)與程序的邏輯獨(dú)立性?為什么數(shù)據(jù)庫(kù)系統(tǒng)具有數(shù)據(jù)與程序的獨(dú)立性?(填空題)數(shù)據(jù)與程序的邏輯獨(dú)立性:當(dāng)模式改變時(shí)(例如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)類型等),由數(shù)據(jù)庫(kù)管理員對(duì)各個(gè)外模式模式的映象作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯

6、獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)與程序的物理獨(dú)立性:當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)改變了, 由數(shù)據(jù)庫(kù)管理員對(duì)模式內(nèi)模式映象作相應(yīng)改變, 可以使模式保持不變,從而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的物理獨(dú)立性, 簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性。 數(shù)據(jù)庫(kù)管理系統(tǒng)在三級(jí)模式之間提供的兩層映象保證了數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。關(guān)系操作的特點(diǎn) :集合方式,操作對(duì)象和結(jié)果都是關(guān)系元組的集合非關(guān)系操作的特點(diǎn):層次 /網(wǎng)狀,以記錄為操作單位2 . 關(guān)系數(shù)據(jù)模型中,二維表的列稱為屬性,二維表的行稱為記錄或元組。3 . 用戶選作元組標(biāo)識(shí)的一個(gè)候選碼為主碼,其屬性不能取空值。(問答題)Chapter 1數(shù)

7、據(jù) Data:描述事物的符號(hào)記錄稱為數(shù)據(jù)。信息 (information):數(shù)據(jù)所表示的含義稱為信息。數(shù)據(jù)庫(kù) : 所謂數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù) (DB) 是各種信息系統(tǒng)( Information System)的核心。數(shù)據(jù)庫(kù)特點(diǎn): 數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。即數(shù)據(jù)及結(jié)構(gòu)相對(duì)于應(yīng)用程序具有獨(dú)立性數(shù)據(jù)庫(kù)管理系統(tǒng)Database Management System(DBMS) : DBMS是對(duì)數(shù)據(jù)庫(kù)建立、操縱、維護(hù)的系統(tǒng)軟件。主要功能: 1、數(shù)據(jù)定義功能;2、數(shù)據(jù)操縱功能;3、數(shù)據(jù)庫(kù)的運(yùn)行管理;4、數(shù)據(jù)庫(kù)的

8、建立維護(hù)。常見的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)大型 DBMS:ORACLESQL-SERVERDB2SYBASE中型 DBMS:MYSQL,INFORMIX, INTERBASE小型(桌面) DBMS:ACCESS, FOXPRO, SQL-ANYWHERE數(shù)據(jù)庫(kù)系統(tǒng) Database System(DBS) :在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng),通常由:數(shù)據(jù)庫(kù) DB,操作系統(tǒng) OS,數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS,開發(fā)工具SDK,應(yīng)用系統(tǒng)APP ,管理員 DBA ,用戶 USER計(jì)算機(jī)數(shù)據(jù)管理經(jīng)歷階段:1、人工管理階段; 2、文件系統(tǒng)階段; 3、數(shù)據(jù)庫(kù)系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)管理的特點(diǎn):1. 數(shù)據(jù)結(jié)構(gòu)化 ( 數(shù)

9、據(jù)庫(kù)的文件系統(tǒng)的根本區(qū)別)2. 數(shù)據(jù)獨(dú)立性高(數(shù)據(jù)結(jié)構(gòu)變,程序不須變)3. 數(shù)據(jù)共享性高,冗余度低,易擴(kuò)充4. 數(shù)據(jù)由 DBMS統(tǒng)一管理和控制 ,并使數(shù)據(jù)管理具有:數(shù)據(jù)的安全性 (security)保護(hù)(數(shù)據(jù)不被非法訪問)數(shù)據(jù)完整性( Integrity)檢查 ( 數(shù)據(jù)的正確性有效性相容性)并發(fā)控制( Concurrency)控制數(shù)據(jù)恢復(fù)( Recovery)數(shù)據(jù)模型是對(duì)現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象。數(shù)據(jù)模型的三要素:1 數(shù)據(jù)結(jié)構(gòu):對(duì)實(shí)體類型和實(shí)體間聯(lián)系的表達(dá)和實(shí)現(xiàn)。2 數(shù)據(jù)操作:允許執(zhí)行的操作。主要:檢索和更新3 數(shù)據(jù)約束條件:完整性規(guī)則的集合。完整性規(guī)則 : 數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,

10、以保證數(shù)據(jù)的正確、有效和相容。數(shù)據(jù)的完整性:指數(shù)據(jù)的正確性、有效性和相容性。概念模型:計(jì)算機(jī)數(shù)據(jù)處理的第一層抽象,反映人對(duì)客觀事物的認(rèn)識(shí)。概念模型的表示方法:實(shí)體- 聯(lián)系圖( E-R 圖)用矩形表示實(shí)體、用橢圓表示屬性、用菱形表示聯(lián)系。屬性和實(shí)體間、實(shí)體和聯(lián)系間用線段連接聯(lián)系線標(biāo)注聯(lián)系類型( 1, n), 如果聯(lián)系有屬性 , 也要標(biāo)注常見的數(shù)據(jù)模型有四種(按發(fā)展時(shí)間為序) :層次模型、網(wǎng)狀模型、關(guān)系模型、對(duì)象模型用表格 ( 稱為關(guān)系 ) 表示實(shí)體以及實(shí)體間聯(lián)系的數(shù)據(jù)模型叫關(guān)系模型。關(guān)系( Relation):一個(gè)二維表格;元組( Tuple):表中的一行即為一個(gè)元組;屬性( Attribute

11、):表中的一列即為一個(gè)屬性;碼( key) :表中某屬性組,可唯一確定任一元組;域( Domain) :屬性的取值范圍;分量:元組中的一個(gè)屬性值;關(guān)系模式:對(duì)關(guān)系的描述,表述為:關(guān)系名(屬性1,屬性 2, . ,屬性 n)例:學(xué)生數(shù)據(jù)庫(kù)的關(guān)系模式:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè),入學(xué)時(shí)間)數(shù)據(jù)庫(kù)模式( Schema): 數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的結(jié)構(gòu)和特征的描述稱為數(shù)據(jù)庫(kù)模式。數(shù)據(jù)庫(kù)系統(tǒng)三級(jí)模式結(jié)構(gòu):模式、外模式、存儲(chǔ)模式三級(jí)模式的概念。三級(jí)模式之間有兩級(jí)映象:外模式/ 模式映象、模式/ 內(nèi)模式映象外模式 (Sub-Schema)( 用戶模式):用戶的數(shù)據(jù)視圖、是數(shù)據(jù)的局部邏輯結(jié)構(gòu),模式的子集模式 (S

12、chema) (概念模式) :所有用戶的公共數(shù)據(jù)視圖;是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的描述。內(nèi)模式 (Storage Schema)(存貯模式):又稱存儲(chǔ)模式,是數(shù)據(jù)的物理結(jié)構(gòu)及存儲(chǔ)方式。數(shù)據(jù)的邏輯獨(dú)立性:當(dāng)模式改變時(shí),修改外模式 / 模式映象,使外模式保持不變,從而應(yīng)用程序可以保持不變。物理獨(dú)立性:存儲(chǔ)結(jié)構(gòu)改變時(shí),修改模式 / 內(nèi)模式映象,使模式保持不變,從而應(yīng)用程序可以保持不變。數(shù)據(jù)庫(kù)系統(tǒng)外部的體系結(jié)構(gòu):?jiǎn)斡脩艚Y(jié)構(gòu)、主從式結(jié)構(gòu)、分布式結(jié)構(gòu)、客戶 / 服務(wù)器結(jié)構(gòu)、瀏覽器 / 應(yīng)用服務(wù)器 / 數(shù)據(jù)庫(kù)服務(wù)器結(jié)構(gòu)。Chapter 2關(guān)系模式是對(duì)關(guān)系的描述:關(guān)系的結(jié)構(gòu)(屬性構(gòu)成、 屬性來自的

13、域、 屬性與域之間的映象關(guān)系),完整性約束條件,屬性間的數(shù)據(jù)依賴關(guān)系集合關(guān)系模式可以形式化地表示為:R( U, D, dom, F)R:關(guān)系名; U:組成該關(guān)系的屬性名集合; D:屬性組 U中屬性所來自的域;dom:屬性向域的映象集合; F:屬性間的數(shù)據(jù)依賴關(guān)系集合關(guān)系模式通??梢院?jiǎn)記為R (A1 , A2, , An) 。A1, A2, , An:屬性名數(shù)據(jù)完整性 : 數(shù)據(jù)的正確性、有效性和相容性。關(guān)系模型中三類完整性約束:實(shí)體完整性、參照完整性、用戶定義的完整性實(shí)體完整性規(guī)則:若屬性A 是基本關(guān)系R 的主屬性,則屬性A 不能取空值參照完整性規(guī)則:若屬性 (或?qū)傩越M) F 是關(guān)系 R 的外碼

14、。 它與關(guān)系S 的主碼 Ks 相對(duì)應(yīng)(關(guān)系 R 和 S 可是一個(gè)關(guān)系) ,則對(duì)于R 中每個(gè)元組在F 上的值必須為:或者取空值(F 的每個(gè)屬性值均為空值)或者等于S 中某個(gè)元組的主碼值。用戶定義的完整性例: 課程 ( 課程號(hào),課程名,學(xué)分)“課程號(hào)”主屬性必須取唯一值;非主屬性“課程名”也不能取空值;“學(xué)分”屬性只能取值1 , 2, 3, 4關(guān)系數(shù)據(jù)庫(kù)語言:實(shí)現(xiàn)關(guān)系操作 ( 查詢 , 插改刪 ) 的語言關(guān)系代數(shù)語言:一種抽象的查詢語言,用對(duì)關(guān)系的運(yùn)算來表達(dá)查詢(ISBL)關(guān)系演算語言:用謂詞來表達(dá)查詢要求元組關(guān)系演算語言:謂詞變?cè)幕緦?duì)象是元組變量(APLHA )域關(guān)系演算語言:謂詞變?cè)幕?/p>

15、對(duì)象是域變量(QBE)具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言:SQL( Structured Query Language)關(guān)系代數(shù)運(yùn)算的三個(gè)要素:運(yùn)算對(duì)象,運(yùn)算結(jié)果,運(yùn)算符【運(yùn)算對(duì)象和運(yùn)算結(jié)果的操作對(duì)象都是:關(guān)系(元組的集合)】傳統(tǒng)的集合運(yùn)算:并、差、交、廣義笛卡爾積專門的關(guān)系運(yùn)算:選擇、投影、連接、除并: R S = t|tR tS 差: R -S = t|tR t S 交: R S = t|tR tS 笛卡爾積: R× S = t r t s | tr R t s S 選擇( Selection):在關(guān)系 R 中選擇滿足給定條件的諸元組。從行的角度進(jìn)行的運(yùn)算。F (R) t |

16、tRF (t)'真'F:選擇條件,是一個(gè)邏輯表達(dá)式例 1查詢信息系( IS系)全體學(xué)生Sdept ' IS' (Student)投影:從R中選擇出若干屬性列組成新的關(guān)系,從列的角度進(jìn)行運(yùn)算A (R) t A |tRA: R 中的屬性列注意:但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)例 3查詢學(xué)生的姓名和所在系。即求 Student 關(guān)系學(xué)生姓名和所在系兩個(gè)屬性上的投影snam e , sdept( Student )查詢沒有選過課的學(xué)號(hào):sno( Student)sno ( SC)查詢沒有不及格的學(xué)號(hào):()()snoStudent

17、snoGrade60SC連接:從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組RS t r t s | t rRtsStr A t s BA BA 和 B:分別為R 和 S 上的屬性組; :比較運(yùn)算符例,查詢沒有選過課的學(xué)號(hào),姓名。R1= sno ( Student )sno ( SC)R2=sno , snam e ( StudentR1)象集( Image Set ),關(guān)系 R(X , Z), X, Z是屬性組, x 是 X 上的取值,定義x 在 R 中的象集為Zx = tZ | tRtX= x ( 從 R 中選出在 X 上取值為 x 的元組,去掉X 上的分量,只留Z 上的分量 )SNO

18、=95001在 R 中的象集: Z95001 =1 ,2, 3 ,SNO=95002在 R 中的象集: Z95002 =2, 3 ,SNO=95003在 R 中的象集: Z95003 =1 ,2 ,除運(yùn)算:給定關(guān)系R (X ,Y)和 S (Y ,Z) ,其中 X, Y, Z 為屬性組。R與 S 的除運(yùn)算得到一個(gè)新的關(guān)系P(X) ,P 是 R中滿足下列條件的元組在X 屬性列上的投影:元組在 X 上分量值 x 的象集 Yx 包含 S 在 Y上投影的集合。R ÷ S = tr X |t rRY (SYX)Yx: x 在 R 中的象集, x =t r X 例 7 查詢至少選修1 號(hào)課程和3

19、號(hào)課程的學(xué)生號(hào)碼首先建立一個(gè)臨時(shí)關(guān)系K:cno (cno 1cno3 (SC )然后求:sno , cno ( SC )K 例 8查詢選修了2 號(hào)課程的學(xué)生的學(xué)號(hào)。 例 9查詢至少選修了一門其直接先行課為5 號(hào)課程的課程的學(xué)生姓名。 例 10查詢選修了全部課程的學(xué)生號(hào)碼和姓名。 例 11 查未被選修的課號(hào) 例 12 查詢選修了95002 所選全部課程的學(xué)生號(hào)碼圖書管理數(shù)據(jù)庫(kù)有關(guān)系模式:圖書 ( 書號(hào),書名,價(jià)格,作者)讀者(讀者號(hào),姓名,性別,年齡)借閱(讀者號(hào) , 書號(hào) , 借日期,還日期, 罰款金額)用關(guān)系代數(shù)查詢:1 查詢價(jià)格大于 50 的書名和作者名2 查詢 ( 一次 ) 罰款金額 &

20、gt;20 元的讀者名3 查詢被年齡大于 60 的讀者借過的書名和作者名4 查詢看了所有書的讀者名5 查詢看了 ' 張三所看過的所有書的讀者名6 查詢沒有借過書的讀者姓名元組關(guān)系演算語言ALPHA檢索語句: GET更新語句: PUT, HOLD, UPDATE, DELETE, DROP格式GET 工作空間名(表達(dá)式1)例 1查詢所有被選修的課程號(hào)碼。GET W (SC.Cno)例 2查詢所有學(xué)生的數(shù)據(jù)。GET W (Student)格式GET工作空間名(表達(dá)式1):操作條件例 3查詢信息系 (IS) 年齡小于 20歲的學(xué)號(hào)和年齡。GETW (Student.Sno, Student.

21、Sage): Student.Sdept='IS'student.Sage<20例 4查詢計(jì)算機(jī)科學(xué)系(CS) 學(xué)生的學(xué)號(hào)、年齡,結(jié)果按年齡降序排序。UPGET W (Student.Sno , Student.Sage): Student.Sdept='CS' DOWN Student.Sage例 6查詢信息系年齡最大的三個(gè)學(xué)生的學(xué)號(hào)及其年齡,結(jié)果按年齡降序排序。GET W (3) (Student.Sno,Student.Sage):Student.Sdept='IS' DOWN Student.Sage定義元組變量格式:RANGE關(guān)系

22、名 變量名例 7查詢選修2 號(hào)課程的學(xué)生名字和成績(jī)。( 條件來自工作區(qū)的關(guān)系,不用存在量詞)GET W (Student.Sname , SC.Grade): SC.Sno=Student.Sno SC.Cno='2'例 8查詢選修2 號(hào)課程的學(xué)生名字。RANGE SC XGET W (Student.Sname):X(X.Sno=Student.Sno X.Cno='2')查詢語義:查詢這樣的學(xué)生名,條件是存在選課元組X, X 的學(xué)號(hào)與該生的學(xué)號(hào)相等并且X的課號(hào)為 2(表明該生選了2 號(hào)課)用存在量詞的檢索( 條件來自工作區(qū)外的關(guān)系)例 9查詢選修了這樣課程的

23、學(xué)生學(xué)號(hào),其直接先行課是6 號(hào)課程。RANGE Course CXGET W (SC.Sno):CX (CX.Cno=SC.Cno CX.Pcno='6') 例 10 查詢至少選修一門先行課為6 號(hào)課程的學(xué)生名字或查詢選修過先行課為6 號(hào)課程的學(xué)生名字 .RANGE Course CXSCSCXGET W (Student.Sname):SCX(SCX.Sno=Student.SnoCX (CX.Cno=SCX.Cno CX.Pcno='6')GET W (Student.Sname):SCX CX (SCX.Sno=Student.Sno CX.Cno=SCX

24、.Cno CX.Pcno='6')例12查詢不選1 號(hào)課程的學(xué)生名字。查詢語義:查詢這樣的學(xué)生,條件是對(duì)所有選課元組,都不表明該生選了1 號(hào)課(或者與該生學(xué)號(hào)不同, 或者課號(hào)不是 1)RANGE SC SCX表 3.2 SQL的數(shù)據(jù)定義語句表 3.1 SQL 語言的動(dòng)詞GET W (Student.Sname):SCX (SCX.SnoStudent.Sno操作 對(duì) SCX.Cno操作方式'1')SQL功能動(dòng)詞數(shù)據(jù)定義CREATE ,DROP ,ALTER象創(chuàng) 建刪 除修 改GET W (Student.Sname):SCX (SCX.Sno=Student.S

25、no SCX.Cno='1')DROPALTER例 13數(shù)據(jù)查詢SELECT表CREATE查詢選修了全部課程的學(xué)生姓名。TABLETABLETABLE數(shù)據(jù)操縱INSERT , UPDATE視 圖CREATEDROP VIEWRANGE Course CXDELETESCSCXVIEW數(shù)據(jù)控制GRANT , REVOKEGET W(Student.Sname):CX SCX(SCX.Sno=Student.Sno SCX.Cno=CX.Cno)索 引CREATEDROP解釋:對(duì)于 STUDENT中的一個(gè)學(xué)生,如果對(duì)所有的課程,都存在著INDEXINDEXSC的元組SCX,表明這個(gè)

26、 學(xué)生選修了該課程,則這個(gè)學(xué)生屬于查詢范圍。例14查詢最少選修了95002 學(xué)生所選課程的學(xué)生學(xué)號(hào)。RANGE Couse CX SCSCXSC SCYGET W (Student.Sno):CX(SCX (SCX.Sno='95002' SCX.Cno=CX.Cno)SCY(SCY.Sno=Student.Sno SCY.Cno= CX.Cno)查詢語義: 查詢這樣的學(xué)生,條件是對(duì)所有課程,如果 95002 選了,則該學(xué)生也選修了該課PQ=P QGET W (Student.Sno):CX(SCX(SCX.Sno='95002' SCX.Cno=CX.Cno)

27、SCY(SCY.Sno=Student.Sno SCY.Cno= CX.Cno)CREATE TABLE Student(SnoCHAR(5) PRIMARY KEY,Sname CHAR(20) NOT NULL,SsexCHAR(1),SageINT,SdeptCHAR(15)Primary key (Sno, Cno);sex char(2) default '男 ' check( sex='男 ' or sex='女 ') ;DROP TABLEStudent ;ALTER TABLE <表名 > ADD < 新列名 &

28、gt; < 數(shù)據(jù)類型> 完整性約束 DROP < 完整性約束名 > MODIFY<列名><數(shù)據(jù)類型 > ;<表名 >:要修改的基本表ADD子句:增加新列和新的完整性約束條件DROP子句:刪除指定的完整性約束條件MODIFY子句:用于修改列名和數(shù)據(jù)類型 例 2向 Student表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)類型為日期型。ALTER TABLE Student ADD Scome DATE;刪除屬性列例: ALTER TABLE Student Drop Scome 例 3將年齡的數(shù)據(jù)類型改為半字長(zhǎng)整數(shù)。;ALTER TABLE Stude

29、nt MODIFY Sage SMALLINT;例 6CREATE為 Student 的 sname列建立索引。INDEX StuName ON Student(Sname);例6為Course的 Cname列建立唯一值索引。CREATE UNIQUE INDEX CouName ON Course(Cname) ;在 Student 表的 Sname(姓名)列上建立一個(gè)聚簇索引,而且 Student 表中的記錄將按照Sname值的升序存放。CREATE CLUSTER INDEX Stusname ONStudent(Sname) ;DROP INDEX Stusname;學(xué)生表: Stud

30、ent(Sno , Sname, Ssex ,Sage, Sdept)課程表: Course(Cno , Cname, Cpno,Ccredit)學(xué)生選課表: SC(Sno, Cno,Grade)例 5查詢?nèi)w學(xué)生的姓名、出生年份和所有系,要求用小寫字母表示所有系名。SELECT Sname, 'Year of Birth: ',2012 Sage , ISLOWER(Sdept) FROM Student ;SELECT DISTINCT Sno FROM SC;例 17查詢名字中第2 個(gè)字為 " 陽 " 字的學(xué)生的姓名和學(xué)號(hào)。SELECT Sname,

31、Sno FROM Student WHERE Sname LIKE '_ 陽 %';例19查詢 DB_Design 課程的課程號(hào)和學(xué)分。SELECT Cno, Ccredit FROM Course WHERE Cname LIKE 'DB_Design' ESCAPE ''SELECT Sno, Cno FROM SC WHERE Grade IS NOT NULL;例 32查詢每個(gè)學(xué)生及其選修課程的情況。用 WHERE子句指定連接條件:SELECT * FROM Student, SC WHERE Student.Sno = SC.Sno ;

32、或,用 FROM子句指定連接條件:SELECT * FROM Student JOIN SC ON Student.Sno=SC.Sno;自身連接例 34查詢每一門課的先行課名SELECT First.Cname課名 , Second.Cname先行課名 FROM Course First, courseSecondWHERE First.Cpno = Second.Cno;例 36查詢每個(gè)學(xué)生的學(xué)號(hào)、姓名、選修的課程名及成績(jī)。SELECT Student.Sno , Sname, Cname,Grade FROM Student JOIN SC ON Student.Sno =SC.Sno

33、JOIN Course ON SC.Cno = Course.Cno;子查詢:SELECT Sno,Sname, Sdept FROM Student WHERE Sdept IN (SELECT Sdept FROM Student WHERE Sname= 劉晨 ) ;EXISTS 子查詢方式 ( 類似關(guān)系演算方式 ) 例 42 查詢沒有選修1 號(hào)課程的學(xué)生姓名。SELECT Sname FROM StudentWHERE NOT EXISTS(SELECT* FROM SC WHERESno=Student.Sno AND Cno= '1'); 例 43 查詢選修了全部課

34、程的學(xué)生姓名。SELECTSname FROMStudent WHERENOT EXISTS ( SELECT* FROMCourse WHERENOTEXISTSSELECT * FROM SC WHERE SC.Sno= Student.Sno AND SC.Cno= Course.Cno) ); 例 44 查詢至少選修了學(xué)生 95002 選修的全部課程的學(xué)生號(hào)碼。思路:不存在這樣的課95002 選了這個(gè)學(xué)生未選用關(guān)系演算實(shí)現(xiàn):RANGE Couse CXSC SCXSCSCYGET W(Student.Sno):CX(SCX(SCX.Sno='95002' SCX.Cno

35、=CX.Cno)SELECT SNO FROM STUDENT S WHERE NOT EXISTS ( SELECT * FROM COURSE C WHERE EXISTS (SELECT * FROMSC WHERESC.SNO='95002' AND SC.CNO=C.CNO)ANDNOT EXISTS ( SELECT * FROM SC WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO ) )2 查詢被 ' 張三 ' 選修的課名RANGE SC SCXRANGE S SXGET W( C.CNAME):存在SCX(SCX.CNO

36、=C.CNO并且存在SX(SX.SNO=SCX.SNO并且SX.SNAME='張三 ')SELECT CNAME FROM CWHERE EXISTS( SELECT * FROM SCWHERE SC.CNO=C.CNO AND EXISTS(SLEECT * FROM SWHERE S.SNO=SC.SNO ANDS.SNAME='張三 ') )4 查詢被所有同學(xué)選修的課名SELECT CNAME FROM CWHERE NOT EXISTS (SELECT * FROM SWHERE NOT EXISTS ( SELECT * FROM SCWHERE S

37、C.SNO=S.SNO AND SC.CNO=C.CNO)5 查詢選了 ' 張三 ' 選修所有課的學(xué)生名SELECT SNAME FROM SWHERE NOT EXISTS(SELECT * FROM CWHEREEXISTS (SELECT * FROM SCWHERE SC.CNO=C.CNO AND EXISTS( SELECT * FROM S WHERE S.SNO=SC.SNO AND S.SNAME= 張三 ')ANDNOT EXISTS(SELECT * FROM SCWHERE SC.CNO=C.CNO AND SC.SNO=S.SNO) 例 45查

38、詢計(jì)算機(jī)科學(xué)系的學(xué)生及年齡不大于19 歲的學(xué)生。SELECT* FROMStudent WHERESdept= 'CS' UNIONSELECT* FROMStudent WHERESage<=19; SELECT DISTINCT * FROM Student WHERE Sdept= 'CS' OR Sage<=19查詢未選課的學(xué)號(hào)( 所有學(xué)號(hào)與選過可得學(xué)號(hào)的差集)SELECT Sno FROM Student WHERE Sno NOT IN (SELECT Sno FROM SC);INSERT INTO Student VALUES (&#

39、39;95020', ' 陳冬 ' , ' 男 ' , 'IS',18)INSERT INTO Deptage(Sdept, Avgage) SELECT Sdept , AVG(Sage) FROM StudentGROUPBY Sdept ;UPDATE Student SET Sage=22 WHERE Sno=' 95001 ';DELETE FROM Student WHERE Sno='95019' ;DELETE FROM SC;CREATE VIEW IS_Student(No,Name,A

40、ge) AS SELECT Sno, Sname, Sage FROM Student WHERE Sdept= 'IS' ; 例 2 建立信息系學(xué)生的視圖,并要求透過該視圖進(jìn)行的更新操作只涉及信息系學(xué)生。 CREATEVIEW IS_Student AS SELECTSno, Sname, Sage FROM Student WHERE Sdept= 'IS'WITH CHECK OPTION;DROP VIEW IS_S1;指定 WITH CHECK OPTION子句后, DBMS在更新視圖時(shí)會(huì)進(jìn)行檢查,防止用戶通過視圖對(duì)不屬于視圖范圍內(nèi)的基本表數(shù)據(jù)進(jìn)行更新

41、。Chapter 4為用戶 'ZhangPing'創(chuàng)建了一個(gè)密碼為'Rose' 的 SQL Server登錄語法格式 : EXEC sp_addlogin 'UserName', 'Password'EXEC sp_addlogin 'ZhangPing ', 'Rose'將用戶 ZhangPing添加到當(dāng)前數(shù)據(jù)庫(kù)語法格式 :EXEC sp_adduser 'UserName'EXEC sp_adduser 'ZhangPing'4. 將 BOOK查詢權(quán)授予 PUBL

42、IC grant select on BOOK to public;5. 將 READER的查詢權(quán)授予 ZhangPing grant select on READER to ZhangPing;6. 將 BOOK插入權(quán)刪除權(quán)修改權(quán)授予 ZhangPing grant insert,delete,update on BOOK to ZhangPing;7.將 LOAN的插入權(quán)刪除權(quán)修改權(quán)從ZhangPing 收回revoke insert,delete,update on loan from ZhangPing8. 重新以 ZhangPing 登錄登錄后更改密碼,將密碼 'Rose&#

43、39; 改為 'coffee'格式 :EXEC sp_password '舊密碼 ', '新密碼 'EXEC sp_password 'Rose','coffee'10. 查詢 BOOK所有數(shù)據(jù), (有權(quán)執(zhí)行) 。13. 重新以 DBA登錄 將 create table 權(quán)授予 ZhangPing grant create table to ZhangPingChapter 52、修改批處理文件 CREATE_TABLES.TXT中對(duì)表的定義,對(duì)外關(guān)鍵字加入刪除與修改級(jí)聯(lián), 并重新執(zhí)行建立數(shù)據(jù)表CREATE TAB

44、LE SC(SNO NUMERIC(5) REFERENCES STUDENTON UPDATE CASCADEON DELETE CASCADE,CNO NUMERIC(2) REFERENCES COURSE(CNO)ON UPDATE CASCADEON DELETE CASCADE,GRADE NUMERIC(6,2),PRIMARY KEY(SNO,CNO);第六章 關(guān)系數(shù)據(jù)理論理解并給出下列術(shù)語的定義:函數(shù)依賴、 部分函數(shù)依賴、 完全函數(shù)依賴、 傳遞依賴、 候選碼、主碼、 外碼、全碼 (All-key)、多值依賴。定義 6.1設(shè) R(U) 是一個(gè)屬性集U 上的關(guān)系模式, X 和 Y

45、 是 U的子集。若對(duì)于 R(U)的任意一個(gè)可能的關(guān)系r ,r 中對(duì)于 X 的每一個(gè)具體值, Y 都有唯一的具體值與之對(duì)應(yīng) ,則稱 “ X 函數(shù)決定 Y”或 “ Y 函數(shù)依賴于 X”,記作 XY。例:在關(guān)系 SC(Sno, Cno, Grade)中,平凡函數(shù)依賴:Sno Sno(Sno, Cno) Sno(Sno, Cno) Cno非平凡函數(shù)依賴:(Sno, Cno) Grade若 XY,但 YX, 則稱 X Y 是平凡的函數(shù)依賴, 否則稱 X Y 是非平凡的函數(shù)依賴候選碼( Candidatekey ):若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,且該屬性組沒有多余的屬性,則稱該屬性組為候選

46、碼, 候選碼簡(jiǎn)稱為碼。1NF的定義 :如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R 1NF。問題正好出現(xiàn)在對(duì)碼部分依賴的屬性上定義 6.6若關(guān)系模式 R 1NF,并且每一個(gè)非主屬性都完全函數(shù)依賴于R的碼,則 R2NF。(2NF 也就是不允許關(guān)系模式存在非主屬性對(duì)碼的部分函數(shù)依賴)SCG( Sno, Sname, Sage, Cno, Grade )分解為兩個(gè)關(guān)系模式S( Sno, Sname, Sage )S: Sno Sname Sno SageSC( Sno, Cno , Grade )SC:( Sno, Cno) Grade沒有非主屬性對(duì)碼部分函數(shù)依賴,S, SC分別達(dá)到 2

47、NF有關(guān)系模式 SL(Sno, Sname, Sdept, Sloc),并且一個(gè)系的學(xué)生住處相同函數(shù)依賴: Sno Sdept 、 Sno Sname、Sdept Sloc 、 Sno Sloc如果關(guān)系的碼只有一個(gè)屬性, 一定是 2NF,故已達(dá)到 2NF定義 6.8關(guān)系模式 R<U,F(xiàn)> 中若不存在這樣的碼 X、屬性組 Y 及非主屬性 Z, 使得 X Y,Y Z 成立,則稱 R<U, F> 3NF。( Y X , ZY )(即沒有非主屬性對(duì)碼的傳遞函數(shù)依賴)采用投影分解法,把 SL 分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴:SD( Sno, Sname, Sdept)DL( Sdept , Sloc ) SD的碼為 Sno, DL 的碼為 Sdept 。因?yàn)榉侵鲗傩灾苯右蕾嚺c碼, 所以是 3NF。定義 6.9設(shè)關(guān)系模式 R<U,F(xiàn)> 1NF,如果對(duì)于 R 的每個(gè)非平凡函數(shù)依賴X Y, X 必含有碼,那么 R BCNF。等

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論