數(shù)據(jù)庫(kù)系統(tǒng)概論總結(jié)_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概論總結(jié)_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概論總結(jié)_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概論總結(jié)_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)概論總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)系統(tǒng)概論復(fù)習(xí)總結(jié)緒論根本概念〔1〕數(shù)據(jù):描述事物的符號(hào)記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有數(shù)字、文字、圖形、圖像、聲音等。數(shù)據(jù)與其語(yǔ)義是不可分的?!?〕數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合?!?〕數(shù)據(jù)庫(kù)管理系統(tǒng):DBMS是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,用于科學(xué)地組織和存儲(chǔ)數(shù)據(jù)、高效地獲取數(shù)據(jù)和維護(hù)數(shù)據(jù)。DBMS的主要功能:數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫(kù)的運(yùn)行管理功能、數(shù)據(jù)庫(kù)的建立和維護(hù)功能?!?〕數(shù)據(jù)庫(kù)系統(tǒng):數(shù)據(jù)庫(kù)系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)〔及其開發(fā)工具〕、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員構(gòu)成?!?〕數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn):數(shù)據(jù)結(jié)構(gòu)化;數(shù)據(jù)共享性高,冗余度低,易擴(kuò)充;數(shù)據(jù)獨(dú)立性高二、數(shù)據(jù)管理技術(shù)的開展過(guò)程1.?dāng)?shù)據(jù)庫(kù)管理技術(shù)開展的三個(gè)階段:人工管理階段、文件管理階段和數(shù)據(jù)庫(kù)系統(tǒng)階段.2.文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)區(qū)別和聯(lián)系:a.數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫(kù)的主要特征之一,也是數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。b.數(shù)據(jù)庫(kù)系統(tǒng)存儲(chǔ)數(shù)據(jù)的方式靈活,可以存儲(chǔ)數(shù)據(jù)庫(kù)中的某一個(gè)數(shù)據(jù)項(xiàng),一組數(shù)據(jù)項(xiàng),一組記錄或一個(gè)紀(jì)錄,而文件系統(tǒng)中數(shù)據(jù)的存取單位是記錄。c.數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)共享性高,易擴(kuò)充;而文件系統(tǒng)中的文件是為某一特定的應(yīng)用效勞的,系統(tǒng)也不宜擴(kuò)充。三、數(shù)據(jù)模型1.定義:數(shù)據(jù)模型也是一種模型,它是對(duì)現(xiàn)實(shí)世界的一種抽象。也就是說(shuō),數(shù)據(jù)模型是用來(lái)描述數(shù)據(jù)、組織數(shù)據(jù)和對(duì)數(shù)據(jù)進(jìn)行操作的。2.組成三要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束。〔1〕數(shù)據(jù)結(jié)構(gòu):是所研究的對(duì)象類型的集合,是對(duì)系統(tǒng)靜態(tài)特性的描述?!?〕數(shù)據(jù)操作:是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象〔型〕的實(shí)例〔值〕允許進(jìn)行的操作集合,包括操作及有關(guān)的操作規(guī)那么,是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述?!?〕數(shù)據(jù)的約束條件:是一組完整性規(guī)那么的集合。完整性規(guī)那么是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)那么,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。3.概念模式中常見(jiàn)術(shù)語(yǔ):〔1〕實(shí)體〔Entity〕:指客觀存在并可相互區(qū)別的事物。比方學(xué)生、學(xué)生的一次選課、學(xué)生與系的關(guān)系等。

〔2〕實(shí)體型〔Entity

type〕:指用實(shí)體名及其屬性集合來(lái)抽象和刻畫同類實(shí)體。如部門〔部門號(hào)、部門名稱〕就是一個(gè)實(shí)體型。

〔3〕實(shí)體集〔Entity

set〕:

指同類實(shí)體的集合。如全體部門就是一個(gè)實(shí)體集。

〔4〕屬性〔Attribute〕:指實(shí)體所具有的某一特性。假設(shè)干屬性可以刻畫一個(gè)實(shí)體,例如部門實(shí)體可以由部門號(hào)、部門名稱等屬性組成。

〔5〕碼〔Key〕:指唯一標(biāo)識(shí)實(shí)體的屬性集。比方部門號(hào)是部門實(shí)體的碼。〔6〕域〔Domain〕:指某一屬性的取值范圍。如部門名稱的域?yàn)樽址稀!?〕實(shí)體—聯(lián)系圖〔E-R〕:是一種用來(lái)在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中彼時(shí)數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)的方法,是一種可視化圖形方法。〔8〕聯(lián)系〔Relationship〕:反映為實(shí)體〔型〕內(nèi)部的聯(lián)系和實(shí)體〔型〕之間的聯(lián)系。

兩個(gè)實(shí)體型之間的聯(lián)系分為三類:

〔1〕一對(duì)一〔1:1〕;

〔2〕一對(duì)多〔1:n〕;

〔3〕多對(duì)多〔m:n〕4.概念模型的表示方法〔實(shí)體-聯(lián)系方法〕

數(shù)據(jù)庫(kù)的總體概念結(jié)構(gòu)可以用E-R模型中的E-R圖來(lái)表示。E-R圖由以下根本元素構(gòu)成:

〔1〕矩形:代表實(shí)體集;

〔2〕橢圓:代表屬性;

〔3〕菱形:代表實(shí)體間的聯(lián)系集;

〔4〕線段:將屬性與實(shí)體集相連或?qū)?shí)體集與聯(lián)系集相連。除線段以外,每個(gè)元素上都標(biāo)有它所代表的實(shí)體、屬性或聯(lián)系。5.常用的數(shù)據(jù)庫(kù)模型:層次、網(wǎng)狀、關(guān)系模型層次模型與網(wǎng)狀模型的優(yōu)缺點(diǎn):層次數(shù)據(jù)模型的優(yōu)點(diǎn)是:1.層次數(shù)據(jù)結(jié)構(gòu)比擬簡(jiǎn)單清晰。2.層次數(shù)據(jù)庫(kù)的查詢效率高。3.層次數(shù)據(jù)模型提供了良好的完整性支持。缺點(diǎn)主要有:1.現(xiàn)實(shí)世界中很多聯(lián)系是非層次性的,如結(jié)點(diǎn)之間具有多對(duì)多聯(lián)系。2.一個(gè)結(jié)點(diǎn)具有多個(gè)雙親等,層次模型表示這類聯(lián)系的方法很笨拙,只能通過(guò)引入冗余數(shù)據(jù)或創(chuàng)立非自然的數(shù)據(jù)結(jié)構(gòu)來(lái)解決。對(duì)插入和刪除操作的限制比擬多,因此應(yīng)用程序的編寫比擬復(fù)雜。3.查詢子女結(jié)點(diǎn)必須通過(guò)雙親結(jié)點(diǎn)。4.由于結(jié)構(gòu)嚴(yán)密,層次命令趨于程序化??梢?jiàn)用層次模型對(duì)具有一對(duì)多的層次聯(lián)系的部門描述非常自然,直觀容易理解,這是層次數(shù)據(jù)庫(kù)的突出優(yōu)點(diǎn)。網(wǎng)狀模型的優(yōu)點(diǎn)主要有:1.能夠更為直接地描述現(xiàn)實(shí)世界,如一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親。結(jié)點(diǎn)之間可以有多種上聯(lián)第。2.具有良好的性能,存取效率較高。缺點(diǎn)主要有:1.結(jié)構(gòu)比擬復(fù)雜,而且隨著應(yīng)用環(huán)境的擴(kuò)大,數(shù)據(jù)庫(kù)的結(jié)構(gòu)就變得越來(lái)越復(fù)雜,不利于最終用戶掌握。2.網(wǎng)狀模型的DDL,DML復(fù)雜,并且要嵌入某一種高級(jí)語(yǔ)言中,用戶不容易掌握,不容易使用。6四、數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)1.數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu):外模式、模式和內(nèi)模式。模式也稱邏輯模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和牲的描述,是所有用戶的公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是數(shù)據(jù)庫(kù)用戶能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。內(nèi)模式也稱存儲(chǔ)模式,是一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式。它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。2.三級(jí)模式之間的二級(jí)映像:外模式/模式映像、模式/模式映像.3.數(shù)據(jù)庫(kù)管理系統(tǒng)的主要功能有〔1〕數(shù)據(jù)庫(kù)定義功能;〔2〕數(shù)據(jù)組織、存儲(chǔ)和管理;〔3〕數(shù)據(jù)操縱功能;〔4〕數(shù)據(jù)庫(kù)的事務(wù)管理和運(yùn)行管理;〔5〕數(shù)據(jù)庫(kù)的建立和維護(hù)功能等等DDL:數(shù)據(jù)定義語(yǔ)言DML:數(shù)據(jù)操縱語(yǔ)言DCL:數(shù)據(jù)控制語(yǔ)言4.什么叫數(shù)據(jù)與程序的物理獨(dú)立性?什么叫數(shù)據(jù)與程序的邏輯獨(dú)立性?數(shù)據(jù)與程序的物理獨(dú)立性:當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)改變了〔例如采用了更先進(jìn)的存儲(chǔ)結(jié)構(gòu)〕,數(shù)據(jù)庫(kù)管理員修改模式/內(nèi)模式映像,使模式保持不變,當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),由數(shù)據(jù)庫(kù)管理員對(duì)模式/內(nèi)模式映像做相應(yīng)改變,以保持模式不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨(dú)立性。數(shù)據(jù)與程序的邏輯獨(dú)立性:當(dāng)模式改變時(shí),數(shù)據(jù)庫(kù)管理員修改有關(guān)的外模式/模式映像,使外模式保持不變,應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性重難點(diǎn):畫E—R圖,實(shí)體、聯(lián)系、實(shí)體聯(lián)系的屬性,以及實(shí)體間的對(duì)應(yīng)關(guān)系重點(diǎn)掌握1、書19頁(yè)工廠物資管理E-R圖例如第二章關(guān)系數(shù)據(jù)庫(kù)一、關(guān)系模型的根本概念1.關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、關(guān)系完整性約束三局部組成。2.根本術(shù)語(yǔ):域:域是一組具有相同數(shù)據(jù)類型的值的集合。元組:關(guān)系中的每個(gè)元素是關(guān)系中的元組。屬性:關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。由于域可以相同,為了加以區(qū)分,必須對(duì)每列起一個(gè)名字,稱為屬性〔Attribute〕。候選碼:假設(shè)關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,那么稱該屬性組為候選碼主碼:假設(shè)一個(gè)關(guān)系有多個(gè)候選碼,那么選定其中一個(gè)為主碼〔Primarykey〕。外部碼:設(shè)F是根本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與根本關(guān)系S的主碼Ks相對(duì)應(yīng),那么稱F是根本關(guān)系R的外部碼〔Foreignkey〕,簡(jiǎn)稱外碼。關(guān)系模式:關(guān)系的描述稱為關(guān)系模式〕。關(guān)系:在域D1,D2,…,Dn上笛卡爾積D1×D2×…×Dn的子集稱為關(guān)系。關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系操作在不斷地更新著數(shù)據(jù)庫(kù)中的數(shù)據(jù)。關(guān)系數(shù)據(jù)庫(kù):關(guān)系數(shù)據(jù)庫(kù)也有型和值之分。關(guān)系數(shù)據(jù)庫(kù)的型也稱為關(guān)系數(shù)據(jù)庫(kù)模式,是對(duì)關(guān)系數(shù)據(jù)庫(kù)的描述,它包括假設(shè)干域的定義以及在這些域上定義的假設(shè)干關(guān)系模式。關(guān)系數(shù)據(jù)庫(kù)的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常就稱為關(guān)系數(shù)據(jù)庫(kù)。3.關(guān)系的三類完整性約束

〔1〕實(shí)體完整性;〔2〕參照完整性;〔3〕用戶定義的完整性。二、關(guān)系代數(shù)1.

關(guān)系代數(shù)是一種抽象的查詢語(yǔ)言,它是用關(guān)系的運(yùn)算來(lái)表達(dá)查詢的。2.

運(yùn)算符種類:集合運(yùn)算符〔∪

∩〕、專門的關(guān)系運(yùn)算符〔×

σ

÷〕、算術(shù)比擬符〔>

≠〕和邏輯運(yùn)算符〔┑

∨〕。3.關(guān)系代數(shù)的運(yùn)算按運(yùn)算符的不同可分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算兩類。4.傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,包括交、并、差和笛卡爾積四種運(yùn)算。并〔Union〕:R∪S={t|t∈R∨t∈S},t屬于R或t屬于S。

差〔Difference〕:R-S={t|t∈R∧t不屬于S}。

交〔Intersection〕:R∩S={t|t∈R∧t∈S}。

廣義笛卡爾積:r1×r2

專門的關(guān)系運(yùn)算包括選擇、投影、連接、除運(yùn)算等。1〕選擇〔Selection〕

選擇運(yùn)算給出滿足給定謂詞(條件)的元組。用小寫希臘字母σ來(lái)表示選擇運(yùn)算,而將謂詞寫作σ的下標(biāo),并在σ后的括號(hào)中給出作為參數(shù)的關(guān)系。記作:

σF(R)={t|t∈R∧F(t)='True'}

例如,我們要找出職員表中所有廣東省的員工,那么寫作:σ籍貫='廣東'〔職員表〕。

通常允許在選擇謂詞中進(jìn)行比擬,使用的比擬運(yùn)算符是=、≠、<、≤、>和≥。另外,還可以用連詞and(∧)和or(∨)將多個(gè)謂詞合并成一個(gè)較大的謂詞。

2、投影〔Projection〕

關(guān)系R上的投影是從R中選擇出假設(shè)干屬性列組成新的關(guān)系,投影后會(huì)取消原有關(guān)系中的某些列或玩組。記作:

ΠA〔R〕={t[A]|t∈R}

例如,查詢職員所在的姓名和部門:Π姓名,部門〔職員表〕。

3、連接〔Join〕

從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。常用的有等值連接和自然連接兩種。這里要記住,自然連接需取消重復(fù)列,其它連接操作只須考慮行。

等值連接與自然連接的區(qū)別和聯(lián)系:等值連接是從關(guān)系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系到中進(jìn)行比擬的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。4.關(guān)系代數(shù)的根本運(yùn)算有哪些?在八種關(guān)系代數(shù)運(yùn)算中:并、差、笛卡爾積、投影、選擇五種運(yùn)算為根本的運(yùn)算。其他三種運(yùn)算,即交、連接和除均可用這五種根本運(yùn)算來(lái)表達(dá)。三、關(guān)系演算1.關(guān)系演算分為元組關(guān)系演算和域關(guān)系演算。典型例題:1、有關(guān)圖書發(fā)行的關(guān)系模型如下:書店S〔書店號(hào)SNo,書店名SN,地址A〕圖書B〔書號(hào)BNo,書名BN,價(jià)格P〕圖書館L〔館號(hào)LNo,館名LN,城市C〕圖書發(fā)行LBS〔LNo,BNo,SNo,發(fā)行量Q〕分別用關(guān)系代數(shù)和SQL語(yǔ)言表達(dá)如下查詢:圖書館L4〔館號(hào)〕收藏圖書的書名和出售該書的書店名?!?2分〕1〕πBN,SN〔σLNo=L4〔BLBSS〕〕2〕SELECTBN,SNFROMB,LBS,SWHEREB.BNo=LBS.BNoANDLBS.SNo=S.SNoANDLBS.LNo=L4;2、參照課本P55---60頁(yè)的學(xué)生—課程數(shù)據(jù)庫(kù)例如。第三章系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL一、SQL概貌,特點(diǎn)及其相關(guān)根本概念1.SQL(StructuredQueryLanguage),即結(jié)構(gòu)化查詢語(yǔ)言,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。2.SQL包括:數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制。3.SQL語(yǔ)言的特點(diǎn):〔1〕綜合統(tǒng)一〔2〕高度非過(guò)程化〔3〕面向集合的操作方式〔4〕以同一種語(yǔ)法結(jié)構(gòu)提供兩種使用方式〔5〕語(yǔ)言簡(jiǎn)潔,易學(xué)易用。4.根本表是本身獨(dú)立存在的表,在SQL中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)表。視圖是從一個(gè)或幾個(gè)根本表導(dǎo)出的表。視圖本身不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫(kù)中,是一個(gè)虛表。即數(shù)據(jù)庫(kù)中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的根本表中。視圖在概念上與根本表等同,用戶可如同根本表那樣使用視圖,可以在視圖上再定義視圖。在數(shù)據(jù)庫(kù)的三級(jí)模式中,外模式對(duì)應(yīng)于視圖和局部根本表,模式對(duì)應(yīng)于根本表,內(nèi)模式對(duì)應(yīng)于存儲(chǔ)文件。二SQL數(shù)據(jù)定義功能1.SQL的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。SQL語(yǔ)言使用CREATETABLE語(yǔ)句建立根本表,ALTERTABLE語(yǔ)句修改根本表,DROPTABLE語(yǔ)句刪除根本表;使用CREATEINDEX語(yǔ)句建立索引,DROPINDEX語(yǔ)句刪除索引;使用CREATEVIEW語(yǔ)句建立視圖,DROPVIEW語(yǔ)句刪除視圖。三、SQL數(shù)據(jù)查詢功能1.SQL提供了SELECT語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)的查詢。有以下幾種形式:(1).無(wú)條件查詢:獲取表中的全部信息(2).防止選取重復(fù)行(用distinct消除重復(fù)行)和使用別名(可用as)(3).條件查詢—WHERE子句,比擬運(yùn)算符(</>/=/!=),邏輯運(yùn)算符(NOT/AND/OR)特殊運(yùn)算符(between/in/like/%/_/null)(4).查詢結(jié)果排序Orderby列名ASC升/DESC降默認(rèn)ASC(5).信息匯總——特殊函數(shù)、groupby,having子句特殊函數(shù)有:COUNTAVGSUMMINMAX一般COUNT是記錄元組的行數(shù)或個(gè)數(shù);在有g(shù)roupby時(shí)COUNT*表示記錄每個(gè)小組的個(gè)數(shù)而不是全部的個(gè)數(shù)2.連接查詢連接查詢是關(guān)系數(shù)據(jù)庫(kù)中最主要的查詢,包括廣義笛卡爾積、等值連接查詢(含自然連接查詢)、非等值查詢、自身連接查詢、外連接查詢和符合條件查詢等。3.嵌套查詢(1).一個(gè)SELECT—FROM—WHERE語(yǔ)句成為一個(gè)查詢塊。將一個(gè)語(yǔ)句塊嵌套在另一個(gè)查詢快的WHERE子句或HAVING短語(yǔ)中的查詢稱為嵌套查詢。(2).嵌套查詢的使用場(chǎng)合:條件未知和存在依賴數(shù)據(jù)。(3).在嵌套查詢中,子查詢的SELECT語(yǔ)句不能有ORDERBY子句,ORDERBY只能對(duì)最終查詢進(jìn)行排序。(4).不關(guān)子查詢(如帶有IN的)、相關(guān)子查詢(如帶有比擬運(yùn)算符的子查詢)、含ANY/ALL/EXISTS謂詞的子查詢4.集合查詢集合操作主要包括并操作UNION、交操作INTERSECT和差操作EXCEPT。四、數(shù)據(jù)更新插入數(shù)據(jù)INSERT、修改數(shù)據(jù)UPDATE、刪除數(shù)據(jù)DELETE五、視圖的定義和作用1.視圖是從一個(gè)或幾個(gè)根本表〔或視圖〕導(dǎo)出的表。它與根本表不同,是一個(gè)虛擬表。數(shù)據(jù)庫(kù)中只存放視圖的定義,而不存放試圖對(duì)應(yīng)的數(shù)據(jù)。2.創(chuàng)立視圖:CREATEVIEW3.刪除視圖:DROPVIEW注意:如果所刪除的視圖還導(dǎo)出了其他視圖,那么使用CASCADE級(jí)聯(lián)刪除語(yǔ)句,把該視圖和有它導(dǎo)出的視圖一起刪除。4.更新視圖:INSERT/DELETE/UPDATE注意:對(duì)視圖的更新最終都轉(zhuǎn)化成對(duì)根本表的更新。WITHCHECKOPTION表示對(duì)試圖進(jìn)行更新時(shí),保證了所作的更新滿足視圖定義中的條件,假設(shè)不滿足那么拒絕執(zhí)行該操作。5.在關(guān)系數(shù)據(jù)庫(kù)中,并不是所有的視圖都可以更新。因?yàn)橛行┮晥D的更新不能唯一有意義地轉(zhuǎn)換成對(duì)相應(yīng)根本表的更新,例如我們要修改某學(xué)生的平均成績(jī),必須修改各科成績(jī),而我們無(wú)法知道哪些課程成績(jī)的變化導(dǎo)致了平均成績(jī)的變化。6.如果視圖是從多個(gè)根本表使用聯(lián)接操作導(dǎo)出的,那么不允許更新。

如果導(dǎo)出的視圖使用了分組和聚合操作,也不允許更新。

如果視圖是從單個(gè)根本表使用選擇和投影操作導(dǎo)出的,并且包括了根本表的主鍵或某個(gè)候選鍵,那么可以執(zhí)行操作。常見(jiàn)問(wèn)題分析:1、在確定用實(shí)體集還是聯(lián)系集時(shí),一個(gè)可采用的原那么是什么?在確定用實(shí)體集還是聯(lián)系集時(shí)一個(gè)可采用的原那么就是:當(dāng)描述發(fā)生在實(shí)體間的行為時(shí)最好采用聯(lián)系集。2、關(guān)系和表是一回事嗎?嚴(yán)格地說(shuō),關(guān)系和表不一樣。關(guān)系是一系列域上的笛卡爾積的子集,是一個(gè)集合。既然關(guān)系是集合就不允許在集合中有重復(fù)的元組。按照課件的解釋表可以看成是由一行一行的內(nèi)容組成的一個(gè)格式,每個(gè)表有多個(gè)列,每列有唯一的列名,而每個(gè)表也有一個(gè)唯一的名字。值得注意的是在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,表中允許有重復(fù)的行存在,即允許有重復(fù)的記錄。3、NULL是表示一個(gè)屬性值非法嗎?不對(duì),NULL是一個(gè)合法的屬性值。它表示該屬性的值為空值,空值的含義有兩層意思,一是表示屬性沒(méi)有值;二是表示屬性的值未知。當(dāng)屬性值未知時(shí)還有兩種情況,一是值缺失,表示屬性有值,且占用一個(gè)空格,但是我們目前還沒(méi)有該值的信息;二是不知道該屬性有沒(méi)有值。4、在關(guān)系代數(shù)和SQL中對(duì)查詢結(jié)果的重復(fù)行的處理一樣嗎?不一樣。關(guān)系代數(shù)的運(yùn)算結(jié)果仍然是一個(gè)關(guān)系,絕對(duì)不允許重復(fù)的元組在關(guān)系代數(shù)的結(jié)果中出現(xiàn)。而在SQL中,去掉查詢結(jié)果中的重復(fù)行是一件非常耗時(shí)的操作,因此允許在SQL的查詢結(jié)果中保存重復(fù)的行。可以通過(guò)DISTINCT選項(xiàng)說(shuō)明SQL的查詢結(jié)果是否要保存重復(fù)的行。5、數(shù)據(jù)庫(kù)中的視圖和關(guān)系有什么區(qū)別?視圖是虛關(guān)系,在DBMS中只保存定義視圖的SQL語(yǔ)句,而不保存視圖的具體數(shù)據(jù)。當(dāng)在查詢中用到視圖時(shí),DBMS會(huì)根據(jù)其保存的視圖的定義〔即SQL語(yǔ)句〕來(lái)得到有關(guān)的數(shù)據(jù)。如果在DBMS中保存視圖的數(shù)據(jù),這樣的視圖稱之為實(shí)體化視圖。而關(guān)系在DBMS中不僅存儲(chǔ)有其定義,而且還存儲(chǔ)有實(shí)實(shí)在在的數(shù)據(jù)典型例題:SQL查詢語(yǔ)句涉及SQL語(yǔ)句的主要功能。數(shù)據(jù)定義〔DDL〕:createdropalter;數(shù)據(jù)操縱〔DML〕:insertupdatedelete,數(shù)據(jù)控制〔DCL〕:revokegraint1建立一個(gè)“學(xué)生”表Student,它由學(xué)號(hào)Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個(gè)屬性組成。其中學(xué)號(hào)不能為空,值是唯一的,并且姓名取值也唯一。CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINT,SdeptCHAR(15));建立一個(gè)“學(xué)生選課”表SC,它由學(xué)號(hào)Sno、課程號(hào)Cno,修課成績(jī)Grade組成,其中(Sno,Cno)為主碼。CREATETABLESC(SnoCHAR(5),CnoCHAR(3),Gradeint,Primarykey(Sno,Cno),FOREIGNKEY(Sno)REFERENCESS(Sno),FOREIGNKEY(Cno)REFERENCESC(Cno));注意:常用約束的寫法,留意其中關(guān)鍵字的間隔次序,以及標(biāo)點(diǎn)符號(hào)的使用Foreignkey和unique的區(qū)別:Primarykey在建立的時(shí)候會(huì)默認(rèn)地建立此field的索引,且此primarykey可以作為作為另外的表的foreignkey。Primarykey一定是notnull,而unique那么沒(méi)有此限制單表查詢:查詢所有列,局部列,使用聚合函數(shù),對(duì)結(jié)果排序,對(duì)結(jié)果分組查詢信息系〔IS〕、數(shù)學(xué)系〔MA〕和計(jì)算機(jī)科學(xué)系〔CS〕學(xué)生的姓名和性別。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');關(guān)于LIKE語(yǔ)句的使用類似于正那么表達(dá)式,其中的%表示任意多的字符“1%2”表示以“1開頭2結(jié)尾的一個(gè)字符串”,但是假設(shè)被匹配的語(yǔ)句中有“%”,那么進(jìn)行轉(zhuǎn)義?!癬”表示任何一個(gè)字符,“\_”那么表示一個(gè)下劃線。邏輯運(yùn)算中and的優(yōu)先級(jí)高于or5個(gè)重要的集合函數(shù):ALL為默認(rèn)值計(jì)數(shù)COUNT〔[DISTINCT|ALL]*〕COUNT〔[DISTINCT|ALL]<列名>〕計(jì)算總和SUM〔[DISTINCT|ALL]<列名>〕 計(jì)算平均值A(chǔ)VG〔[DISTINCT|ALL]<列名>〕求最大值MAX〔[DISTINCT|ALL]<列名>〕 求最小值MIN〔[DISTINCT|ALL]<列名>〕Groupby的使用,作用在查詢中間結(jié)果多表查詢連接查詢,嵌套查詢,集合查詢。嵌套查詢,返回?cái)?shù)值只有一個(gè)時(shí),可以使用邏輯運(yùn)算符,返回值為多個(gè)時(shí)使用any,all,exists,(not)in另外exist與in同義all與notin同義Select*from學(xué)生where性別=’女’and年齡<all(select年齡fromfrom學(xué)生where性別=’男’)查詢結(jié)果為年齡小于所有男生的女生設(shè)職工-社團(tuán)數(shù)據(jù)庫(kù)有三個(gè)根本表:職工〔職工號(hào),姓名,年齡,性別〕;社會(huì)團(tuán)體〔編號(hào),名稱,負(fù)責(zé)人號(hào),活動(dòng)地點(diǎn)〕參加〔職工號(hào),編號(hào),參加日期〕查找沒(méi)有參加任何團(tuán)體的職工情況;Select*from職工wherenotexists(select*from參加where參加.職工號(hào)=職工.職工號(hào));查找參加了全部社會(huì)團(tuán)體的職工情況;Select*from職工wherenotexists(select*from社會(huì)團(tuán)體wherenotexists(select*from參加where參加.職工號(hào)=職工.職工號(hào)and參加.編號(hào)=社會(huì)團(tuán)體.編號(hào)));查找參加了職工號(hào)為1001的職工所參加的全部社會(huì)團(tuán)體的職工的職工號(hào)。Select職工號(hào)from職工wherenotexists(select*from參加1where1.職工號(hào)=‘1001’andnotexists(select*from參加2where2.編號(hào)=1.編號(hào)and2.職工號(hào)=職工.職工號(hào)));相關(guān)子查詢Select姓名from學(xué)生s,成績(jī)g,wheres.學(xué)號(hào)=g.學(xué)號(hào)and課程號(hào)=’C01Select姓名from學(xué)生swhereexists(select*from成績(jī)where學(xué)號(hào)=s.學(xué)號(hào)And課程號(hào)=’C01’兩者效果一樣.集合運(yùn)算:Union并運(yùn)算查詢所有男學(xué)生和男教師的姓名年齡SelectName,AgefromTeacherwhereSex=’male’USelectName,AgefromStudentwhereSex=’male’Intersect交運(yùn)算SelectName,AgefromTeacherIntersectSelectName,AgefromStudent查詢既是學(xué)生也是老師的人員的姓名和年齡Minus差運(yùn)算注意兩個(gè)語(yǔ)句的前后順序查詢不是學(xué)生的老師。對(duì)調(diào)次序后那么是不是老師的學(xué)生SelectName,AgefromTeacherMinus SelectName,AgefromStudent集合運(yùn)算中orderby的使用ORDERBY子句只能用于對(duì)最終查詢結(jié)果排序,不能對(duì)中間結(jié)果排序任何情況下,ORDERBY子句只能出現(xiàn)在最后對(duì)集合操作結(jié)果排序時(shí),ORDERBY子句中用數(shù)字指定排序?qū)傩藻e(cuò)誤寫法SELECT*FROMStudentWHERESdept='CS'ORDERBYSno〔不能對(duì)中間結(jié)果排序〕UNIONSELECT*FROMStudentWHERESage<=19ORDERBYSno;〔不能對(duì)中間結(jié)果排序〕正確寫法SELECT*FROMStudentWHERESdept='CS'UNIONSELECT*FROMStudentWHERESage<=19ORDERBY1;//其中的1表示按照第一列的屬性進(jìn)行排序,使用數(shù)字指示,且本句必須在最后視圖中的查詢:查詢有3門以上課程是90分以上的學(xué)生的學(xué)號(hào)及〔90分以上的〕課程數(shù)SELECTSno,COUNT(*)FROMSCWHEREGrade>=90GROUPBYSnoHAVINGCOUNT(*)>=3;在S_G視圖中查詢平均成績(jī)?cè)?0分以上的學(xué)生學(xué)號(hào)和平均成績(jī)SELECT*FROMS_GWHEREGavg>=90;S_G視圖定義:CREATEVIEWS_G(Sno,Gavg)ASSELECTSno,AVG(Grade)FROMSCGROUPBYSno;錯(cuò)誤:SELECTSno,AVG(Grade)FROMSCWHEREAVG(Grade)>=90GROUPBYSno;正確:SELECTSno,AVG(Grade)FROMSCGROUPBYSnoHAVINGAVG(Grade)>=90;對(duì)于關(guān)系代數(shù)和SQL語(yǔ)句查詢是重點(diǎn),仔細(xì)看課本例如。第四章數(shù)據(jù)庫(kù)平安性1.數(shù)據(jù)庫(kù)的平安性是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。2.計(jì)算機(jī)平安標(biāo)準(zhǔn)級(jí)別劃分:A1、B3、B2、B1、C2、C1、D(級(jí)別由高到底排列且高級(jí)兼容低級(jí))3.實(shí)現(xiàn)數(shù)據(jù)庫(kù)平安性控制的常用方法有:用戶標(biāo)識(shí)和鑒別、存儲(chǔ)控制、視圖機(jī)制、審計(jì)加密等。4.存取控制:包括兩局部定義用戶權(quán)限和合法權(quán)限檢測(cè)自主存取控制DAC方法:定義各個(gè)用戶對(duì)不同數(shù)據(jù)對(duì)象的存取權(quán)限。當(dāng)用戶對(duì)數(shù)據(jù)庫(kù)訪問(wèn)時(shí)首先檢查用戶的存取權(quán)限。防止了不合法用戶對(duì)數(shù)據(jù)庫(kù)的存取。強(qiáng)制存取控制MAC方法:每一個(gè)數(shù)據(jù)對(duì)象被〔強(qiáng)制地〕標(biāo)以一定的密級(jí),每一個(gè)用戶也被〔強(qiáng)制地〕授予某一個(gè)級(jí)別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級(jí)別的用戶才能存取某一個(gè)密級(jí)的數(shù)據(jù)對(duì)象。5.自主存取控制采用GRANT語(yǔ)句向用戶授予權(quán)限,用REVOKE語(yǔ)句收回權(quán)限的授予。GRANT授予的權(quán)限有:SELECT,INSERT,UPDATE,DELETE,ALLPRIVILEGES等。用WITHGRANTOPTION那么表示,獲得某種權(quán)限的用戶還可以把這種權(quán)限再授予其他用戶。GRANT<權(quán)限>ON<用戶>[WITHGRANTOPTION]REVOKE<權(quán)限>ON<對(duì)象名>FROM<用戶>收回權(quán)限時(shí),假設(shè)該用戶已將權(quán)限授予其他用戶那么必須級(jí)聯(lián)(CASCADE)收回6.視圖機(jī)制:通過(guò)視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無(wú)權(quán)存取的用戶隱藏起來(lái),從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的平安保護(hù)。7.審計(jì)功能把用戶對(duì)數(shù)據(jù)庫(kù)的所有操作自動(dòng)的記錄下來(lái)放入審計(jì)日志中。8.數(shù)據(jù)加密是防止數(shù)據(jù)庫(kù)中數(shù)據(jù)在存儲(chǔ)和傳輸中失密的有效手段,有替換和置換兩種加密方法。第五章數(shù)據(jù)庫(kù)完整性1.數(shù)據(jù)庫(kù)的完整性是指數(shù)據(jù)的正確性、有效性和相容性。2.數(shù)據(jù)的完整性和平安性是兩個(gè)不同的概念,但是有一定的聯(lián)系。完整性是為了防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出,即所謂垃圾進(jìn)垃圾出所造成的無(wú)效操作和錯(cuò)誤結(jié)果。平安性是保護(hù)數(shù)據(jù)庫(kù)防止惡意的破壞和非法的存取。即平安性措施的防范對(duì)象是非法用戶和非法操作,完整性措施防范對(duì)象是不合語(yǔ)義的數(shù)據(jù)。3.數(shù)據(jù)庫(kù)完整性約束條件包括實(shí)體完整性、參照完整性和用戶定義完整性違約處理:違反實(shí)體完整性約束時(shí),拒絕執(zhí)行操作;違反參照完整性約束時(shí),可以拒絕執(zhí)行、級(jí)聯(lián)操作或設(shè)置為空;違反用戶定義完整性約束時(shí),可以拒絕執(zhí)行該操作。4.觸發(fā)器是用戶定義在關(guān)系表上的一類由事件驅(qū)動(dòng)的特殊過(guò)程。第六章關(guān)系數(shù)據(jù)理論一、根本概念函數(shù)依賴:設(shè)R(U)是一個(gè)關(guān)系模式,U是R的屬性集合,X和Y是U的子集。對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,如果r中不存在兩個(gè)元組,它們?cè)赬上的屬性值相同,而在Y上的屬性值不同,那么稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作XY。完全函數(shù)依賴、局部函數(shù)依賴:在R(U)中,如果XY,并且對(duì)于X的任何一個(gè)真子集X,都有X′Y,那么稱Y對(duì)X完全函數(shù)依賴;假設(shè)XY,但Y不完全函數(shù)依賴于X,那么稱Y對(duì)X局部函數(shù)依賴。傳遞依賴:在關(guān)系R(U)中,如果XY〔YX〕,YX,YZ,那么稱Z對(duì)X傳遞函數(shù)依賴。候選碼、主碼:設(shè)K為R(U,F(xiàn))中的屬性或?qū)傩越M合,假設(shè)KU那么K為R的候選碼。假設(shè)候選碼多于一個(gè),那么選定其中的一個(gè)為主碼。外碼:關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,那么稱X是R的外部碼也稱外碼。全碼:整個(gè)屬性組是碼,稱為全碼〔All-key〕。1NF:如果一個(gè)關(guān)系模式R的所有屬性都是不可分的根本數(shù)據(jù)項(xiàng),那么R∈1NF2NF:假設(shè)關(guān)系模式R∈1NF,并且每一個(gè)非主屬性都完全函數(shù)依賴于R的關(guān)鍵字,那么R∈2NF。3NF:關(guān)系模式R<U,F>中假設(shè)不存在這樣的關(guān)鍵字X、屬性組Y及非主屬性Z(ZY),使得XY,YX,YZ成立,那么稱R<U,F>∈3NF。BCNF:設(shè)關(guān)系模式R<U,F>∈1NF,如果對(duì)于R的每個(gè)函數(shù)依賴XY,假設(shè)YX,那么X必含有候選關(guān)鍵字,那么R∈BCNF。二、關(guān)系標(biāo)準(zhǔn)化1.標(biāo)準(zhǔn)化:把一個(gè)低一級(jí)的關(guān)系模式分解為高一級(jí)關(guān)系模式的過(guò)程。2.范式:關(guān)系模式滿足確實(shí)定約束條件,由低到高分為1NF、2NF、3NF、BCNF、4NF、5NF等。3.1NF、2NF、3NF和BCNF的內(nèi)涵可概括為:〔1〕每一個(gè)屬性都是不可再分解的屬性〔1NF的要求〕〔2〕非主屬性完全函數(shù)依賴于碼〔2NF的要求〕〔3〕非主屬性不傳遞依賴于任何一個(gè)候選碼〔3NF的要求〕〔4〕主屬性對(duì)不含它的碼完全函數(shù)依賴〔BCNF的要求〕〔5〕沒(méi)有屬性完全函數(shù)依賴于一組非主屬性〔BCNF的要求〕三、數(shù)據(jù)依賴數(shù)據(jù)依賴是通過(guò)一個(gè)關(guān)系中屬性間值的相等與否表達(dá)出來(lái)的數(shù)據(jù)間的相互關(guān)系,是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語(yǔ)義的表達(dá)。現(xiàn)在人們已經(jīng)提出了許多種類型的數(shù)據(jù)依賴,其中最重要的是函數(shù)依賴和多值依賴。四、關(guān)系模式標(biāo)準(zhǔn)化的根本步驟如下圖。

①對(duì)1NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對(duì)碼的函數(shù)依賴,將1NF關(guān)系轉(zhuǎn)換為假設(shè)干個(gè)2NF關(guān)系。

②對(duì)2NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對(duì)碼的傳遞函數(shù)依賴,從而產(chǎn)生一組3NF關(guān)系。

③對(duì)3NF關(guān)系進(jìn)行投影,消除原關(guān)系中主屬性對(duì)碼的局部函數(shù)依賴和傳遞函數(shù)依賴〔也就是說(shuō),使決定屬性都成為投影的候選碼〕,得到一組BCNF關(guān)系。消除決定屬性集非碼的非平凡函數(shù)依賴

1NF消除非主屬性對(duì)碼的局部函數(shù)依賴

2NF消除非主屬性對(duì)碼的傳遞函數(shù)依賴

3NF消除主屬性對(duì)碼的局部和傳遞函數(shù)依賴

BCNF消除非平凡且非函數(shù)依賴的多值依賴

4NF消除不是由候選碼所蘊(yùn)含的連接依賴

5NF以上三步也可以合并為一步:對(duì)原關(guān)系進(jìn)行投影,消除決定屬性不是候選碼的任何函數(shù)依賴。1NF/2NF/3NF存在的問(wèn)題:①插入異常②刪除異常③數(shù)據(jù)冗余度大④修改復(fù)雜

BCNF問(wèn)題:①數(shù)據(jù)冗余度大

②增加操作復(fù)雜

③刪除操作復(fù)雜

④修改操作復(fù)雜

典型例題:寫出3個(gè)關(guān)系模式分別滿足:1〕是1NF,不是2NF;2〕是2NF,不是3NF;3〕是3NF,也是BCNF;各用兩句話分別說(shuō)明你所寫的關(guān)系模式是前者,不是〔或也是〕后者。參考答案1〕學(xué)生選課〔學(xué)號(hào),姓名,課程號(hào),成績(jī)〕屬性不可分,是1NF;存在非主屬性對(duì)鍵碼的局部依賴〔學(xué)號(hào),課程號(hào)姓名〕,不是2NF。2〕學(xué)生〔學(xué)號(hào),姓名,系別,系主任〕鍵碼為單屬性,不存在局部依賴,是2NF;存在非主屬性對(duì)鍵碼的傳遞依賴〔學(xué)號(hào)→姓名,系別;系別學(xué)號(hào);系別→系主任;學(xué)號(hào)系主任〕,不是3NF。3〕學(xué)生〔學(xué)號(hào),姓名,年齡〕非主屬性〔姓名,年齡〕對(duì)鍵碼不存在局部依賴和傳遞依賴,是3NF;主屬性〔學(xué)號(hào)〕對(duì)鍵碼也不存在局部依賴和傳遞依賴,是BCNF。3、涉及到學(xué)生、教師和課程的關(guān)系模式STC(SNo,SN,SA,TN,CN,G),其中6個(gè)屬性分別為學(xué)生的學(xué)號(hào)、姓名、年齡、教師的姓名、課程名以及學(xué)生的成績(jī)。假設(shè)學(xué)生有重名,課程名也可能有重名。又假設(shè)每個(gè)教師只教一門課,但一門課可有幾個(gè)教師開設(shè)。當(dāng)某個(gè)學(xué)生選定某門課后,其上課教師就固定了。1)寫出鍵碼和函數(shù)依賴;2)分解關(guān)系模式使之屬于BC范式。第七章數(shù)據(jù)庫(kù)設(shè)計(jì)概述一、數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程:〔1〕需求分析;〔2〕概念結(jié)構(gòu)設(shè)計(jì);〔3〕邏輯結(jié)構(gòu)設(shè)計(jì);〔4〕數(shù)據(jù)庫(kù)物理設(shè)計(jì);〔5〕數(shù)據(jù)庫(kù)實(shí)施;〔6〕數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)。二、需求分析1.需求分析階段的設(shè)計(jì)目標(biāo)是通過(guò)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象〔組織、部門、企業(yè)等〕,充分了解原系統(tǒng)〔手工系統(tǒng)或計(jì)算機(jī)系統(tǒng)〕工作概況,明確用戶的各種需求,然后在此根底上確定新系統(tǒng)的功能。2.數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典的內(nèi)容包括:〔1〕數(shù)據(jù)項(xiàng);〔2〕數(shù)據(jù)結(jié)構(gòu);〔3〕數(shù)據(jù)流;〔4〕數(shù)據(jù)存儲(chǔ);〔5〕處理過(guò)程。其中數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小組成單位,假設(shè)干個(gè)數(shù)據(jù)項(xiàng)可以組成一個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)字典通過(guò)對(duì)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的定義來(lái)描述數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)的邏輯內(nèi)容。三、概念設(shè)計(jì)結(jié)構(gòu)1.概念結(jié)構(gòu)是信息世界的結(jié)構(gòu),即概念模型,2.重要性:數(shù)據(jù)庫(kù)概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,將在需求分析階段所得到的應(yīng)用需求首先抽象為概念結(jié)構(gòu),以此作為各種數(shù)據(jù)模型的共同根底,從而能更好地、更準(zhǔn)確地用某一種DBMS實(shí)現(xiàn)這些需求。3.設(shè)計(jì)步驟:概念結(jié)構(gòu)的設(shè)計(jì)方法有多種,其中最經(jīng)常采用的策略是自底向上方法,該方法的設(shè)計(jì)步驟通常分為兩步:第1步是抽象數(shù)據(jù)并設(shè)計(jì)局部視圖,第2步是集成局部視圖,得到全局的概念結(jié)構(gòu)4.視圖集成需兩步:合并分E—R圖,生成初步E—R圖;修改和重構(gòu),消除不必要的冗余,生成根本E—R圖。合并E—R圖時(shí)會(huì)存在許多不一致的地方,即沖突。沖突種類有:屬性沖突、命名沖突和結(jié)構(gòu)沖突。處理屬性沖突和命名沖突可以通過(guò)討論和協(xié)商,而處理結(jié)構(gòu)沖突那么需要根據(jù)語(yǔ)義對(duì)實(shí)體聯(lián)系的類型進(jìn)行綜合調(diào)整如求并集。四、邏輯結(jié)構(gòu)設(shè)計(jì)1.數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的根本E-R圖轉(zhuǎn)換為與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。即E-R圖轉(zhuǎn)化成關(guān)系模型。2.注意實(shí)體和聯(lián)系都得轉(zhuǎn)化為關(guān)系模式:一個(gè)實(shí)體轉(zhuǎn)化成一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。實(shí)體間的聯(lián)系轉(zhuǎn)化成關(guān)系模式那么有以下幾種情況〔1〕1:1的聯(lián)系轉(zhuǎn)化,聯(lián)系可以轉(zhuǎn)化成一個(gè)獨(dú)立的關(guān)系模式,也可以與任何一個(gè)實(shí)體對(duì)應(yīng)的關(guān)系模式合并。如果聯(lián)系單獨(dú)轉(zhuǎn)化成一個(gè)關(guān)系模式,,那么與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)化成關(guān)系的屬性,每個(gè)實(shí)體的碼均是關(guān)系的候選碼。如果聯(lián)系歸并到實(shí)體的某一端那么需要在該關(guān)系模式的屬性中參加另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。1:n的聯(lián)系可以轉(zhuǎn)化成獨(dú)立的關(guān)系模式,也可以與n端合并。獨(dú)立轉(zhuǎn)化時(shí),各實(shí)體的碼以及聯(lián)系本身的屬性都是關(guān)系的屬性,而關(guān)系的碼是n端實(shí)體的碼m:n的聯(lián)系只可以轉(zhuǎn)化成一個(gè)獨(dú)立的關(guān)系模式,聯(lián)系不能和任意一端合并。各實(shí)體的碼以及聯(lián)系本身的屬性都是關(guān)系的屬性,各實(shí)體的碼共同組成關(guān)系的碼第九章關(guān)系查詢處理和查詢優(yōu)化1.關(guān)系數(shù)據(jù)庫(kù)查詢優(yōu)化的總目標(biāo)是:選擇有效的策略,求得給定關(guān)系表達(dá)式的值。2.查詢優(yōu)化的一般準(zhǔn)那么:〔1〕選擇運(yùn)算應(yīng)盡可能先做?!?〕在執(zhí)行連接前對(duì)關(guān)系適當(dāng)?shù)仡A(yù)處理。分為兩種:在連接屬性上建立索引和對(duì)關(guān)系排序,然后執(zhí)行連接?!?〕把投影運(yùn)算和選擇運(yùn)算同時(shí)進(jìn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論