版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQLSERVER
應(yīng)用與開(kāi)發(fā)
計(jì)算機(jī)工程技術(shù)學(xué)院(軟件學(xué)院)
任淑美二00七年九月(一)本課主要內(nèi)容數(shù)據(jù)與數(shù)據(jù)處理數(shù)據(jù)庫(kù)技術(shù)發(fā)展數(shù)據(jù)模型和數(shù)據(jù)的完整性約束關(guān)系數(shù)據(jù)庫(kù)及其規(guī)范本課核心知識(shí)點(diǎn)三種數(shù)據(jù)模型的表示與不同關(guān)系數(shù)據(jù)庫(kù)特點(diǎn)如何建立規(guī)范的關(guān)系數(shù)據(jù)庫(kù)本課重點(diǎn)難點(diǎn)關(guān)系數(shù)據(jù)庫(kù)定義數(shù)據(jù)的完整性約束3NF范式關(guān)系數(shù)據(jù)庫(kù)本課教學(xué)目的了解數(shù)據(jù)庫(kù)技術(shù)的發(fā)展掌握關(guān)系數(shù)據(jù)庫(kù)的基本概念熟悉三種數(shù)據(jù)模型及其主要特點(diǎn)熟悉建立規(guī)范關(guān)系數(shù)據(jù)庫(kù)的原則第1章數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)數(shù)據(jù)庫(kù)是相關(guān)數(shù)據(jù)的集合,其中的數(shù)據(jù)必須是可以被記錄的、且具有一定意義的事實(shí)。對(duì)數(shù)據(jù)庫(kù)的管理和維護(hù)既可以使用數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)組織和處理,也可以編寫(xiě)自己的程序,按照文件方式來(lái)組織與處理。文件處理只能處理特定的數(shù)據(jù)庫(kù),而數(shù)據(jù)庫(kù)管理系統(tǒng)軟件則可以通過(guò)引用數(shù)據(jù)字典來(lái)存取各種數(shù)據(jù)庫(kù)。1.1概述信息技術(shù)是知識(shí)經(jīng)濟(jì)的重要支柱,數(shù)據(jù)庫(kù)技術(shù)和網(wǎng)絡(luò)技術(shù)又是信息技術(shù)最重要的技術(shù)核心。以Internet為標(biāo)志的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)席卷全球IT業(yè)界,信息傳播速度越來(lái)越快。以MicrosoftSQLServer為代表的成熟數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用越來(lái)越廣泛,超大容量的數(shù)據(jù)存儲(chǔ)、高效率的數(shù)據(jù)查詢(xún)技術(shù)、方便易用的向?qū)Ш凸ぞ?、友好親切的用戶(hù)界面,促進(jìn)了電子商務(wù)、信息技術(shù)和數(shù)據(jù)管理的發(fā)展。1.1.1
任務(wù)一理解數(shù)據(jù)與數(shù)據(jù)處理
【問(wèn)題1-1】表1-1是學(xué)校04計(jì)應(yīng)1班某學(xué)期開(kāi)課表,在這個(gè)表中,如班級(jí)、課程、教師等數(shù)據(jù),這些數(shù)據(jù)用什么類(lèi)型表示呢?表1-1班級(jí)開(kāi)課表從這份表不難知道:課程、班級(jí)、教師都可以用字符串表示。1.?dāng)?shù)據(jù)數(shù)據(jù)是客觀(guān)事物的反映和記錄,是用以載荷信息的物理符號(hào)。數(shù)據(jù)不等于數(shù)字,數(shù)據(jù)包括兩大類(lèi),即數(shù)值型數(shù)據(jù)和非數(shù)值型數(shù)據(jù)。在計(jì)算機(jī)系統(tǒng)中,凡是能被計(jì)算機(jī)存儲(chǔ)并處理的數(shù)字、字符、圖形和聲音等統(tǒng)稱(chēng)為數(shù)據(jù)。數(shù)據(jù)也不等同于信息,信息是經(jīng)過(guò)加工后的數(shù)據(jù)。數(shù)據(jù)和信息是兩個(gè)相互聯(lián)系、但又相互區(qū)別的概念;數(shù)據(jù)是信息的具體表現(xiàn)形式,信息是數(shù)據(jù)有意義的表現(xiàn)。2.?dāng)?shù)據(jù)處理數(shù)據(jù)處理是將數(shù)據(jù)轉(zhuǎn)換為信息的過(guò)程。數(shù)據(jù)處理的內(nèi)容主要包括:數(shù)據(jù)的收集、整理、存儲(chǔ)、加工、分類(lèi)、維護(hù)、排序、檢索和傳輸?shù)取?shù)據(jù)處理的目的是從大量的數(shù)據(jù)中,根據(jù)數(shù)據(jù)自身的規(guī)律和及其相互聯(lián)系,通過(guò)分析、歸納、推理等科學(xué)方法,利用計(jì)算機(jī)技術(shù)、數(shù)據(jù)庫(kù)技術(shù)等手段,提取有效的信息資源,為進(jìn)一步分析、管理和決策提供依據(jù)。數(shù)據(jù)處理也稱(chēng)信息處理。例如,上面所提到的統(tǒng)計(jì)教師工作量,或經(jīng)過(guò)計(jì)算求出人均工作量的過(guò)程就是數(shù)據(jù)處理。1.1.2任務(wù)二了解數(shù)據(jù)處理技術(shù)發(fā)展
數(shù)據(jù)處理技術(shù)的發(fā)展經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)階段。20世紀(jì)50年代前,計(jì)算機(jī)主要用于數(shù)值計(jì)算,沒(méi)有操作系統(tǒng)及管理數(shù)據(jù)的軟件。這種處理方式涉及數(shù)據(jù)量小,數(shù)據(jù)無(wú)結(jié)構(gòu),而且數(shù)據(jù)間缺乏邏輯組織,數(shù)據(jù)依賴(lài)于特定的應(yīng)用程序,缺乏獨(dú)立性。50年代后期到60年代中期,由于磁鼓、磁盤(pán)等存儲(chǔ)設(shè)備和操作系統(tǒng)的出現(xiàn),數(shù)據(jù)管理進(jìn)入了文件系統(tǒng)階段。這種數(shù)據(jù)處理系統(tǒng)把計(jì)算機(jī)中的數(shù)據(jù)組織成相互獨(dú)立的數(shù)據(jù)文件,系統(tǒng)可以按照文件的名稱(chēng)對(duì)其進(jìn)行訪(fǎng)問(wèn)。它實(shí)現(xiàn)了文件內(nèi)數(shù)據(jù)的結(jié)構(gòu)化,但文件之間沒(méi)有聯(lián)系。這種數(shù)據(jù)處理方式面向特定的應(yīng)用程序,因此數(shù)據(jù)共享性、獨(dú)立性差,且冗余度大。60年代后期,為解決海量數(shù)據(jù)管理、多用戶(hù)及多應(yīng)用程序共享數(shù)據(jù)的需求,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專(zhuān)門(mén)軟件系統(tǒng)——數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),從而使數(shù)據(jù)處理邁上了新的階段,數(shù)據(jù)安全及維護(hù)也得到了很大提高。1.2數(shù)據(jù)庫(kù)技術(shù)概述數(shù)據(jù)庫(kù)技術(shù)是研究如何科學(xué)組織和存儲(chǔ)數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù),以及如何保障數(shù)據(jù)安全,實(shí)現(xiàn)數(shù)據(jù)共享的一門(mén)計(jì)算機(jī)技術(shù)。數(shù)據(jù)庫(kù)技術(shù)作為信息技術(shù)的一個(gè)重要支撐部分,它的產(chǎn)生來(lái)源于社會(huì)的實(shí)際需要,并對(duì)現(xiàn)代信息管理產(chǎn)生了深刻影響。現(xiàn)在數(shù)據(jù)庫(kù)技術(shù)是計(jì)算機(jī)軟件領(lǐng)域的一個(gè)重要方面,已經(jīng)發(fā)展成為以數(shù)據(jù)管理系統(tǒng)為核心,內(nèi)容豐富、領(lǐng)域?qū)拸V的一門(mén)學(xué)科。1.2.1
任務(wù)一掌握數(shù)據(jù)庫(kù)的基本概念
1.?dāng)?shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(DataBase)即存放數(shù)據(jù)的倉(cāng)庫(kù),我們把它定義為存放在計(jì)算機(jī)存儲(chǔ)設(shè)備上的相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)最終以文件的形式存儲(chǔ),與不同于普通文件的是,它是相互關(guān)聯(lián)的數(shù)據(jù)的集合,如一個(gè)班級(jí)數(shù)據(jù)庫(kù),就包含有學(xué)生基本信息表、課程表、成績(jī)表等。而一般文件僅是相關(guān)信息的集合,其存放形式可以是雜亂無(wú)章的,如班級(jí)數(shù)據(jù),用一般文件存儲(chǔ),就可能需要多個(gè)文件分別保存學(xué)生基本信息、開(kāi)課表及成績(jī)表等。2.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManageSystem)負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理和維護(hù),它是實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)的主要軟件。數(shù)據(jù)庫(kù)管理系統(tǒng)與計(jì)算機(jī)硬件及其他軟件的層次關(guān)系如圖1-1所示,外層應(yīng)用依賴(lài)于內(nèi)層資源的支持。數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的幾個(gè)功能:數(shù)據(jù)定義語(yǔ)言(DDL):用來(lái)描述和定義數(shù)據(jù)庫(kù)中的各種數(shù)據(jù)的及數(shù)據(jù)之間的聯(lián)系。如在上述教材表中規(guī)定頁(yè)數(shù)用整數(shù)表示,定價(jià)用實(shí)數(shù)表示都屬于這一功能體現(xiàn)。(CREATE,DROP)數(shù)據(jù)管理語(yǔ)言(DML):用來(lái)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行插入、查找、修改和刪除等操作。如修改教材表中某本教材的定價(jià)或刪除某教材信息。(SELECT,INSERT,UPDATE,DELETE)數(shù)據(jù)控制語(yǔ)言(DCL):用來(lái)完成系統(tǒng)控制、數(shù)據(jù)完整性控制及并發(fā)控制等操作。如課程名、教材名不能超過(guò)20個(gè)漢字的約定等都屬于數(shù)據(jù)完整性控制。(CRANT,REVOKE)目前,典型數(shù)據(jù)庫(kù)管理系統(tǒng)系統(tǒng)有:SQLServer、FOXPRO、SYBASE、INFORMIX、ORACLE等。3.?dāng)?shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)實(shí)際上是一個(gè)應(yīng)用系統(tǒng),它除了有數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)外,還包括使用系統(tǒng)的用戶(hù)和支持?jǐn)?shù)據(jù)庫(kù)管理系統(tǒng)的計(jì)算機(jī)系統(tǒng)本身。用戶(hù)是指使用數(shù)據(jù)庫(kù)的人員,包括終端用戶(hù)、應(yīng)用程序員和數(shù)據(jù)庫(kù)管理員三類(lèi)用戶(hù)。終端用戶(hù)是指數(shù)據(jù)庫(kù)系統(tǒng)的最終使用人員,他們通過(guò)數(shù)據(jù)庫(kù)系統(tǒng)提供的界面友好的交互式對(duì)話(huà)手段使用數(shù)據(jù)庫(kù)中的數(shù)據(jù)。應(yīng)用程序員是為終端用戶(hù)編寫(xiě)應(yīng)用程序的軟件人員,他們?cè)O(shè)計(jì)的應(yīng)用程序主要目的是使用和維護(hù)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理員(DBA)全面負(fù)責(zé)數(shù)據(jù)庫(kù)系統(tǒng)正常運(yùn)轉(zhuǎn)的高級(jí)人員,他們負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的深入研究。例如:一個(gè)電子商務(wù)網(wǎng)站中,通過(guò)瀏覽器進(jìn)行信息查詢(xún)和購(gòu)物的用戶(hù)即為最終用戶(hù);編寫(xiě)網(wǎng)頁(yè)程序和相關(guān)管理程序的人員即為應(yīng)用程序員;負(fù)責(zé)后臺(tái)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的維護(hù)人員即為數(shù)據(jù)庫(kù)管理員(DBA)。計(jì)算機(jī)系統(tǒng)是指存儲(chǔ)數(shù)據(jù)庫(kù)及運(yùn)行DBMS的軟、硬件資源。如計(jì)算機(jī)本身、操作系統(tǒng)、外部設(shè)備等等。1.2.2任務(wù)二熟悉數(shù)據(jù)庫(kù)系統(tǒng)模型
數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的存儲(chǔ)和管理是按照同一結(jié)構(gòu)進(jìn)行的,不同的應(yīng)用程序都可以直接操作這些數(shù)據(jù),也就是說(shuō)應(yīng)用程序具有高度的獨(dú)立性。數(shù)據(jù)庫(kù)系統(tǒng)有如下幾個(gè)特點(diǎn):數(shù)據(jù)結(jié)構(gòu)化:數(shù)據(jù)庫(kù)系統(tǒng)中包含的多個(gè)單獨(dú)的文件之間是相互聯(lián)系的,在整體上有一個(gè)統(tǒng)一的結(jié)構(gòu)形式。數(shù)據(jù)共享:數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)可以為不同的用戶(hù)使用。數(shù)據(jù)獨(dú)立性:應(yīng)用程序和數(shù)據(jù)庫(kù)間的依賴(lài)性較小。最小冗余度:數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)集中存儲(chǔ),共同使用,避免了大量重復(fù)。1.3數(shù)據(jù)模型數(shù)據(jù)模型是對(duì)現(xiàn)實(shí)世界進(jìn)行抽象的工具,它的主要用途是對(duì)客觀(guān)事物表現(xiàn)的數(shù)據(jù)及數(shù)據(jù)關(guān)系、數(shù)據(jù)約束進(jìn)行數(shù)學(xué)描述。由于客觀(guān)世界事物之間的聯(lián)系多樣,因此數(shù)據(jù)之間的聯(lián)系也表現(xiàn)多樣,因此可以用不同的數(shù)據(jù)結(jié)構(gòu)來(lái)表示數(shù)據(jù)之間的聯(lián)系,即不同的數(shù)據(jù)模型。如一個(gè)單位組織結(jié)構(gòu)是層次關(guān)系,一個(gè)班級(jí)學(xué)生則可以用一張表表示,一個(gè)地區(qū)的交通圖則需要用圖來(lái)表示。目前,比較流行的數(shù)據(jù)模型有三種,即層次結(jié)構(gòu)模型和網(wǎng)狀結(jié)構(gòu)模型以及按關(guān)系理論建立的關(guān)系結(jié)構(gòu)模型,應(yīng)用最廣泛的為關(guān)系結(jié)構(gòu)模型。1.3.1任務(wù)一了解層次模型
層次模型是指用樹(shù)型結(jié)構(gòu)來(lái)表示數(shù)據(jù)及數(shù)據(jù)間聯(lián)系的模型。在層次模型中,樹(shù)的結(jié)點(diǎn)表示各個(gè)數(shù)據(jù),連線(xiàn)表示數(shù)據(jù)之間的關(guān)系。層次模型的特點(diǎn):層次模型中有且僅有一個(gè)最高層的結(jié)點(diǎn),稱(chēng)為根結(jié)點(diǎn)。其它的結(jié)點(diǎn)有且僅有一個(gè)直接的上層結(jié)點(diǎn),稱(chēng)為父結(jié)點(diǎn)。上層結(jié)點(diǎn)和下層結(jié)點(diǎn)的聯(lián)系是1:N的聯(lián)系。層次模型中,必須從根結(jié)點(diǎn)開(kāi)始查詢(xún)記錄的內(nèi)容。層次模型中一個(gè)層次表示一組相關(guān)的記錄。其中一個(gè)最明顯的特點(diǎn)是任何一個(gè)給定的記錄值只有按其路徑查找時(shí),才能顯示出它的全部意義,沒(méi)有一個(gè)子女記錄值能夠脫離雙親記錄值而獨(dú)立存在。其存儲(chǔ)結(jié)構(gòu)常用的方法是鄰接法和鏈接法。N1N3N2N4N6N51.3.2任務(wù)二了解網(wǎng)狀模型
網(wǎng)狀模型是指用網(wǎng)絡(luò)結(jié)構(gòu)來(lái)表示數(shù)據(jù)及數(shù)據(jù)間聯(lián)系的模型。如城市之間交通路徑圖就是網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)。網(wǎng)狀模型是層次模型的拓展,網(wǎng)狀模型和層次模型一樣,記錄的存取路徑是由模型的結(jié)構(gòu)定義好的,數(shù)據(jù)必須按照定義好的存取路徑才能進(jìn)行存取操作。按照網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)建立的數(shù)據(jù)庫(kù)系統(tǒng)稱(chēng)為網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)。網(wǎng)狀數(shù)據(jù)模型是用記錄類(lèi)型和表示記錄類(lèi)型間的1:N聯(lián)系的系結(jié)構(gòu)來(lái)描述數(shù)據(jù)庫(kù)的。其存儲(chǔ)結(jié)構(gòu)依系統(tǒng)而異,常用的方法是鏈接法,能夠更為直接地描述現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的聯(lián)系。1.3.3任務(wù)三熟悉關(guān)系模型
關(guān)系模型指的是用二維表格來(lái)表示數(shù)據(jù)間聯(lián)系的模型。如表1-2所示的教材使用信息表就是這樣的關(guān)系模型。每個(gè)表有行和列,每一列的數(shù)據(jù)為同一類(lèi)數(shù)據(jù),稱(chēng)為字段;每行中的數(shù)據(jù)稱(chēng)為記錄;行和列的數(shù)據(jù)存在一定的關(guān)系,這樣形成的表稱(chēng)為關(guān)系表,由關(guān)系表組成的數(shù)據(jù)庫(kù)為關(guān)系數(shù)據(jù)庫(kù)。1.字段(屬性)二維表格的每一列稱(chēng)為一個(gè)字段(屬性),其中字段名相當(dāng)于標(biāo)題欄中的標(biāo)題。表的每一列數(shù)據(jù)都屬于同一類(lèi)型。一般來(lái)說(shuō),為便于計(jì)算機(jī)處理,每一個(gè)字段都有字段名、字段類(lèi)型和字段長(zhǎng)度(占字節(jié)數(shù))等規(guī)定。
2.記錄(元組)二維表格中的每一行稱(chēng)為一條記錄(元組),記錄由若干個(gè)相關(guān)屬性值組成。3.表的主鍵和外鍵鍵(Key)是關(guān)系型數(shù)據(jù)庫(kù)模型中的一個(gè)非常重要概念,它對(duì)維護(hù)表的完整性及管理表都相當(dāng)重要。主鍵是指表中的某一列,該列的值能標(biāo)識(shí)一行。外鍵是指一個(gè)表中的某個(gè)字段是另外一個(gè)表的主鍵。如果還有一個(gè)出版社表,則該表中的出版社字段“press”就是出版社表的外鍵。關(guān)系模型的特點(diǎn):每一列必須是基本數(shù)據(jù)項(xiàng),即不可再分解。表中每一列必須具有相同的數(shù)據(jù)類(lèi)型(例如字符型、數(shù)值型等)。表中每一列的名字必須是的。表中不應(yīng)有內(nèi)容完全相同的行。行的順序與列的順序不影響表格中所表示的信息的含義。對(duì)于關(guān)系數(shù)據(jù)庫(kù)的幾個(gè)名詞在不同的領(lǐng)域中有不同的稱(chēng)謂:列、行、二維表屬于日常用語(yǔ);屬性、元組、關(guān)系是數(shù)學(xué)領(lǐng)域中的名詞;字段、記錄、數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)領(lǐng)域中的名詞。關(guān)系數(shù)據(jù)模型是由一組表來(lái)描述數(shù)據(jù)庫(kù),這里的每個(gè)表可以做為一個(gè)獨(dú)立的文件存儲(chǔ)。大多數(shù)關(guān)系數(shù)據(jù)庫(kù)都有高級(jí)查詢(xún)語(yǔ)言,且支持有限的用戶(hù)視圖。關(guān)系數(shù)據(jù)模型中的數(shù)據(jù)操作是集合操作,操作對(duì)象和操作結(jié)果都是關(guān)系,即若干個(gè)元組的集合,數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、清晰,數(shù)據(jù)的獨(dú)立性高。補(bǔ)充:
關(guān)系模型(relationalmodel)關(guān)系模型是用“表”來(lái)表示實(shí)體及其聯(lián)系的。網(wǎng)狀模型和層次模型是用“圖”來(lái)表示實(shí)體及其聯(lián)系的。關(guān)系的直觀(guān)解釋就是一張二維表,而關(guān)系模型就是用若干個(gè)二維表來(lái)表示實(shí)體及其聯(lián)系的,這就是關(guān)系的本質(zhì)。補(bǔ)充:例:設(shè)有“教師”、“學(xué)生”、“課程”三個(gè)實(shí)體,其聯(lián)系情況如圖所示:
補(bǔ)充:用三個(gè)關(guān)系表示三個(gè)實(shí)體集合
補(bǔ)充:補(bǔ)充:歸納關(guān)系模型有著一體化的特點(diǎn),即不論實(shí)體還是聯(lián)系統(tǒng)一用關(guān)系來(lái)表示,并且能直觀(guān)反映各種聯(lián)系方式;其數(shù)據(jù)表現(xiàn)力強(qiáng),而且符合人們的習(xí)慣;對(duì)關(guān)系的任何操作都可以直觀(guān)地從二維表去理解,又有數(shù)學(xué)理論為基礎(chǔ),所以獲得了廣泛的應(yīng)用。①
所有的關(guān)系框架構(gòu)成關(guān)系數(shù)據(jù)模型。教師(工號(hào),姓名,職稱(chēng),課程號(hào))課程(課程號(hào),課程名,學(xué)時(shí)數(shù))學(xué)生(學(xué)號(hào),姓名,性別,年齡)學(xué)習(xí)(學(xué)號(hào),課程號(hào),分?jǐn)?shù))②
所有的關(guān)系集合構(gòu)成了關(guān)系數(shù)據(jù)庫(kù)。補(bǔ)充:1.3.4數(shù)據(jù)的完整性約束
數(shù)據(jù)的完整性約束是指在給定的數(shù)據(jù)模型中,數(shù)據(jù)及數(shù)據(jù)關(guān)聯(lián)等各種對(duì)象所遵守的一組通用的完整性規(guī)則。它能保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性、一致性。簡(jiǎn)單的完整性約束主要有:(1)數(shù)據(jù)類(lèi)型:對(duì)每個(gè)數(shù)據(jù)項(xiàng)規(guī)定了特定的類(lèi)型。(2)值域約束:對(duì)每個(gè)數(shù)據(jù)項(xiàng)規(guī)定了其值域,即其取值的范圍。(3)唯一性約束:表中的記錄不能相同。例如,使用教材的編號(hào)必須唯一,且不能為空;書(shū)的頁(yè)數(shù)、價(jià)格不能為負(fù)數(shù)或零等。1.4關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)以關(guān)系模型為基礎(chǔ),它是表的集合。對(duì)于關(guān)系數(shù)據(jù)庫(kù),它也有運(yùn)算、完整性等規(guī)定。1.4.1任務(wù)一關(guān)系運(yùn)算
1.選擇選擇運(yùn)算是在關(guān)系(表)中選擇滿(mǎn)足某些條件的記錄(或元組)組成的新關(guān)系(子表)。其實(shí)際上是從表中選擇符合給定條件的行,如表1-2中所有定價(jià)大于或等于25元的書(shū)有前3條記錄,結(jié)果如表1-3所示。2.投影投影運(yùn)算是在關(guān)系中選擇某些屬性列。例如,在教材表中,若要編號(hào)、課程、書(shū)名三列,那么就可以用投影運(yùn)算來(lái)實(shí)現(xiàn),結(jié)果如表1-4所示。3.連接連接運(yùn)算是從兩個(gè)或以上關(guān)系中選擇符合一定條件的記錄。如,班級(jí)上課除了需要教材以外,還需要教師,設(shè)該班各課程上課教師如表1-5所示。我們可能需要將表1-4和表1-5根據(jù)課程編號(hào)合成一個(gè)表格,結(jié)果如表1-6所示。設(shè)表1-4為R,表1-5為S,則這個(gè)連接的條件就是R.NO=S.NO,即兩個(gè)表依據(jù)課程號(hào)進(jìn)行連接運(yùn)算。1.4.2任務(wù)二關(guān)系完整性
【問(wèn)題1-3】在表1-2中,為什么要設(shè)置課程號(hào)?課程號(hào)一般應(yīng)如何構(gòu)成?由于各專(zhuān)業(yè)課程名存在相同情況,因此,學(xué)校需要使用課程號(hào)來(lái)唯一標(biāo)識(shí)所開(kāi)課程。課程號(hào)是標(biāo)識(shí)班級(jí)所開(kāi)課程的編號(hào),一般應(yīng)由班號(hào)、學(xué)期、序號(hào)構(gòu)成。如04011501表示04011班第5學(xué)期所開(kāi)的第1門(mén)課,這樣做的目的,是為了使各學(xué)期所開(kāi)課程具有唯一標(biāo)識(shí)。如果不這樣做,當(dāng)將多個(gè)班所開(kāi)課程放入一個(gè)表時(shí),就會(huì)造成數(shù)據(jù)的重復(fù)。如上所述的開(kāi)課表,對(duì)課程號(hào)構(gòu)成就需要有一個(gè)約定,如唯一性要求,且不能為空等。由于開(kāi)設(shè)課程名及教材都可能存在同名情況,因此通過(guò)課程號(hào)唯一決定所開(kāi)課程,這時(shí)我們稱(chēng)這一字段為關(guān)鍵字段或主鍵。這些對(duì)定義表的約束,反映了關(guān)系的完整性,關(guān)系完整性表現(xiàn)在以下三個(gè)方面。(1)實(shí)體完整性實(shí)體完整性是指表中關(guān)鍵字段不能為空。如表1-4中的課程號(hào)字段就不能為空。(2)參照完整性我們來(lái)觀(guān)察表1-4和表1-5,在表1-5中,有課程號(hào)這一信息,這一字段中的各個(gè)數(shù)據(jù)必須和表1-4中的課程號(hào)所對(duì)應(yīng),如果在表1-5中出現(xiàn)了一個(gè)表1-4中沒(méi)有的課程號(hào),則這個(gè)表就出現(xiàn)了表示錯(cuò)誤。這種一個(gè)關(guān)系表的數(shù)據(jù)需要參照另一個(gè)表的數(shù)據(jù)而定的要求就稱(chēng)為參照完整性。(3)用戶(hù)定義的完整性用戶(hù)定義的完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件。它反映了某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿(mǎn)足的某些語(yǔ)義要求。例如:在學(xué)生基本信息表中,學(xué)生性別只能有‘男’、‘女’兩種數(shù)據(jù),入學(xué)日期必須在畢業(yè)日期之前等。完整性是指保證數(shù)據(jù)庫(kù)數(shù)據(jù)的正確性和有效性。為了維護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)的完整性,DBMS必須提供一種機(jī)制,用來(lái)檢查數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否滿(mǎn)足規(guī)定的條件,這個(gè)條件在數(shù)據(jù)庫(kù)系統(tǒng)中稱(chēng)為完整性約束條件。完整性控制是為了防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出。實(shí)體完整性和參照完整性是關(guān)系模型必須滿(mǎn)足的完整性約束條件,稱(chēng)為關(guān)系完整性。補(bǔ)充:1、實(shí)體完整性實(shí)體完整性是指關(guān)系的主關(guān)鍵字不能取空值。分析下例是否滿(mǎn)足實(shí)體完整性。教工號(hào)教師姓名課程號(hào)100700370321劉文輝王城芳任利恒8307課程號(hào)課程名學(xué)時(shí)數(shù)178303哲學(xué)數(shù)學(xué)英語(yǔ)688680
完整性約束(a)教師(b)課程補(bǔ)充:2、參照完整性在關(guān)系數(shù)據(jù)庫(kù)中,關(guān)系與關(guān)系之間的聯(lián)系是通過(guò)公共屬性實(shí)現(xiàn)的。公共屬性是這樣一個(gè)屬性組,該屬性組在一個(gè)關(guān)系中是主關(guān)鍵字,同時(shí)又是另一個(gè)關(guān)系的外部關(guān)鍵字。外部關(guān)鍵字的取值必須是相關(guān)表中主關(guān)鍵字的有效值,或者是一個(gè)空值,這就是參照完整性。在前例中,“課程號(hào)”是“課程”的主關(guān)鍵字,也是“教師”的外部關(guān)鍵字。觀(guān)察發(fā)現(xiàn),其中教工號(hào)為0037的教師對(duì)應(yīng)的課程號(hào)為空值,表明還沒(méi)有給該教師分配課程。而教工號(hào)為0321的教師對(duì)應(yīng)的課程號(hào)為07,課程號(hào)07沒(méi)有出現(xiàn)在“課程”關(guān)系中,所以這個(gè)值是非法的。補(bǔ)充:完整性約束不單純是對(duì)關(guān)系主關(guān)鍵字和外部關(guān)鍵字的取值必須有效的約束。應(yīng)該做到盡可能全方位、準(zhǔn)確描述操作對(duì)象的實(shí)際意義以及該操作對(duì)象與其他操作對(duì)象的聯(lián)系。完整性的實(shí)現(xiàn)包括兩個(gè)方面:一是系統(tǒng)提供定義完整性約束條件的功能。如在關(guān)系模式中定義屬性名、類(lèi)型、長(zhǎng)度、主關(guān)鍵字和侯選關(guān)鍵字屬性名并標(biāo)明其值是惟一的和非空的、外部關(guān)鍵字以及其相關(guān)表等等,還有一些約束條件需要用戶(hù)在程序中加以定義。二是系統(tǒng)還要提供檢查完整性約束條件的功能。補(bǔ)充:1.4.3任務(wù)三數(shù)據(jù)庫(kù)的規(guī)范化
規(guī)范化理論是研究如何將一個(gè)不好的關(guān)系模式轉(zhuǎn)化為好的關(guān)系模式的理論,規(guī)范化理論是圍繞范式而建立的。規(guī)范化理論認(rèn)為,一個(gè)關(guān)系數(shù)據(jù)庫(kù)中所有的關(guān)系,都應(yīng)滿(mǎn)足一定的規(guī)范(約束條件)。規(guī)范化的目的是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)定義中不合理的部分,以解決數(shù)據(jù)插入、刪除時(shí)發(fā)生異常的現(xiàn)象。我們把關(guān)系數(shù)據(jù)庫(kù)的規(guī)范過(guò)程中為規(guī)范化程度要求設(shè)立的不同標(biāo)準(zhǔn)稱(chēng)為范式。到目前為止,有第一范式、第二范式、第三范式、第四范式、第五范式等。標(biāo)準(zhǔn)越高,對(duì)關(guān)系數(shù)據(jù)庫(kù)的規(guī)范程度就越高。一般的應(yīng)用滿(mǎn)足第三范式即可。規(guī)范的每一級(jí)別都依賴(lài)于它的前一級(jí)別,例如若一個(gè)關(guān)系模式滿(mǎn)足2NF,則一定滿(mǎn)足1NF。下面我們只介紹1NF,2NF,3NF范式。1.1NF1NF是關(guān)系模型的最低要求,它的規(guī)則是:每個(gè)字段不可再分,不能有重復(fù)行,這是建表的最低要求。滿(mǎn)足這一規(guī)范,要求表中有主鍵,主鍵不能為空。例:如果要求一個(gè)學(xué)生一行,一個(gè)學(xué)生可選多門(mén)課,則下面的“學(xué)生”表就不滿(mǎn)足1NF:student(s-no,s-name,class-no)其中:s-no為學(xué)號(hào),s-name為學(xué)生姓名,class-no為課程號(hào)。因?yàn)橐粋€(gè)學(xué)生可選多門(mén)課,所以列class-no有多個(gè)值,所以它不符合1NF。規(guī)范化就是把它分成如下兩個(gè)表:“學(xué)生”表和“選課”表,則這兩個(gè)表就都滿(mǎn)足1NF了。student(s-no,s-name)stu-class(s-no,class-no)2.2NF對(duì)于滿(mǎn)足2NF的表,除滿(mǎn)足1NF外,其他非主鍵字段都必須完全依賴(lài)于主鍵。例:下面的“選課”表,不符合2NF。stu-class(s-no,class-no,class-name)其中:class-name為課程名稱(chēng)。該表的主鍵列是:(s-no,class-no),非主鍵字段class-name只依賴(lài)于主鍵的一部分class-no,所以它不符合2NF。對(duì)該表規(guī)范化也是把它分解成兩個(gè)表:“選課”表和“課程”表,則它們就都滿(mǎn)足2NF
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保健拔罐師變更管理評(píng)優(yōu)考核試卷含答案
- 空調(diào)器壓縮機(jī)裝配工風(fēng)險(xiǎn)評(píng)估競(jìng)賽考核試卷含答案
- 工藝畫(huà)制作工崗前工作技能考核試卷含答案
- 道路貨運(yùn)汽車(chē)駕駛員崗前沖突解決考核試卷含答案
- 2025年絲絹紡織及精加工產(chǎn)品項(xiàng)目發(fā)展計(jì)劃
- 2025年閑置物品調(diào)劑回收項(xiàng)目發(fā)展計(jì)劃
- 班委培訓(xùn)職責(zé)
- 2026北京密云初三上學(xué)期期末英語(yǔ)試卷和答案
- 2026年視頻會(huì)議攝像頭項(xiàng)目項(xiàng)目建議書(shū)
- 2025年江蘇省宿遷市中考化學(xué)真題卷含答案解析
- 廣東省花都亞熱帶型巖溶地區(qū)地基處理與樁基礎(chǔ)施工技術(shù):難題破解與方案優(yōu)化
- 生鮮乳安全生產(chǎn)培訓(xùn)資料課件
- GB 4053.3-2025固定式金屬梯及平臺(tái)安全要求第3部分:工業(yè)防護(hù)欄桿及平臺(tái)
- YY/T 1846-2022內(nèi)窺鏡手術(shù)器械重復(fù)性使用腹部沖吸器
- GB/T 15390-2005工程用焊接結(jié)構(gòu)彎板鏈、附件和鏈輪
- GA 1016-2012槍支(彈藥)庫(kù)室風(fēng)險(xiǎn)等級(jí)劃分與安全防范要求
- 學(xué)生傷害事故處理辦法及案例分析
- 安全管理人員紅頭任命文件
- 6.項(xiàng)目成員工作負(fù)荷統(tǒng)計(jì)表
- 砂漿拉伸粘結(jié)強(qiáng)度強(qiáng)度試驗(yàn)記錄和報(bào)告
- 220kv輸電線(xiàn)路工程施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論