




已閱讀5頁,還剩112頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫技術(shù)SQLServer2000,吳銳佳TELQ:11060824E-MAIL:,第1章關(guān)系數(shù)據(jù)庫基礎(chǔ)第2章SQLServer2000安裝與配置第3章SQLServer2000數(shù)據(jù)庫的建立與管理第4章SQLServer2000表的建立與管理第5章索引與視圖的建立與管理第6章Transact-SQL使用基礎(chǔ)第7章Transact-SQL編程第8章Transact-SQL事務(wù)編程第9章SQLServer2000數(shù)據(jù)庫管理與維護(hù)第10章SQLServer2000應(yīng)用開發(fā)基礎(chǔ)與實(shí)例,第1章關(guān)系數(shù)據(jù)庫基礎(chǔ),1.1基本概念1.2數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)1.3關(guān)系數(shù)據(jù)庫系統(tǒng)基本概念1.4關(guān)系代數(shù)1.5數(shù)據(jù)庫設(shè)計(jì)1.6關(guān)系規(guī)范化基本思想,1.1基本概念,數(shù)據(jù)(Data):是人們用來反映客觀世界而記錄下來的可以鑒別的數(shù)字、字母、符號(hào)、圖形、聲音、圖象、視頻信號(hào)。數(shù)據(jù)經(jīng)編碼后可存入計(jì)算機(jī)進(jìn)行相關(guān)處理。信息(Information):是對(duì)原始數(shù)據(jù)進(jìn)行加工或解釋之后得到的對(duì)客觀世界產(chǎn)生影響的數(shù)據(jù)。信息是消化理解了的數(shù)據(jù)。,數(shù)據(jù)庫(Database,DB):是長期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。顧名思義,數(shù)據(jù)庫就是計(jì)算機(jī)內(nèi)存放數(shù)據(jù)的倉庫。數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS):數(shù)據(jù)庫管理系統(tǒng)能夠?yàn)閿?shù)據(jù)庫提供數(shù)據(jù)的定義、建立、查詢、統(tǒng)計(jì)、維護(hù)等功能,并完成對(duì)數(shù)據(jù)完整性、安全性、多用戶同時(shí)使用等控制功能,以及發(fā)生故障后進(jìn)行系統(tǒng)恢復(fù)的功能。,DBMS是用戶與計(jì)算機(jī)之間的數(shù)據(jù)管理軟件,是計(jì)算機(jī)操作系統(tǒng)支持的計(jì)算機(jī)系統(tǒng)軟件,類似于VB、VC、Pascal、FORTRAN等程序設(shè)計(jì)語言,為事務(wù)管理提供計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)平臺(tái)與實(shí)現(xiàn)的工具。DBMS有很多,目前流行的有Oracle,Sybase,SQLServer,Access,VisualFoxPro等。,數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,簡寫為:DBS)包括和數(shù)據(jù)庫有關(guān)的整個(gè)系統(tǒng):計(jì)算機(jī)硬件、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)以及在它支持下建立起來的數(shù)據(jù)庫、應(yīng)用程序、用戶和維護(hù)人員等。有時(shí)也將人以外與數(shù)據(jù)庫有關(guān)的硬件和軟件系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個(gè)數(shù)據(jù)庫系統(tǒng)應(yīng)該具有的功能有:使用數(shù)據(jù)定義語言建立數(shù)據(jù)庫;使用數(shù)據(jù)操作或查詢語言對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢和更新;支持存儲(chǔ)大量的數(shù)據(jù),保證對(duì)數(shù)據(jù)的正確安全使用;支持多用戶并發(fā)訪問且不相互影響和損壞數(shù)據(jù)。,數(shù)據(jù)管理技術(shù)的發(fā)展,數(shù)據(jù)處理一般總是以某一種管理為目的。例如,商店里用計(jì)算機(jī)來記賬、開發(fā)票,人事部門用計(jì)算機(jī)來建立和管理人事檔案等。伴隨著計(jì)算機(jī)硬件、軟件技術(shù)的發(fā)展以及計(jì)算機(jī)應(yīng)用的不斷擴(kuò)充,計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理也經(jīng)歷了從低級(jí)到高級(jí)的4個(gè)發(fā)展階段。,人工管理階段,在早期(20世紀(jì)50年代中期以前),計(jì)算機(jī)主要用于數(shù)值計(jì)算,只能使用卡片、紙帶、磁帶等來存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)是程序的組成部分,數(shù)據(jù)的輸入、輸出和使用都是由程序來控制的,使用時(shí)隨程序一起進(jìn)入內(nèi)存,用完后完全撤出計(jì)算機(jī)。這里有“人”指的是程序員。,人工管理階段中程序與數(shù)據(jù)之間的關(guān)系,文件系統(tǒng)階段,在這一階段,數(shù)據(jù)不再是程序的組成部分,而是按照一定的規(guī)則把成批數(shù)據(jù)組織在數(shù)據(jù)文件中,存放于外存儲(chǔ)器上,并可為每個(gè)文件取一個(gè)名字。在程序中通過文件名把文件調(diào)入內(nèi)存而使用其中的數(shù)據(jù)。到了20世紀(jì)60年代中期,出現(xiàn)了磁帶、磁盤等大容量的外存儲(chǔ)器和操作系統(tǒng),便可利用操作系統(tǒng)中的文件管理功能來進(jìn)行數(shù)據(jù)處理了。,文件系統(tǒng)階段中程序與數(shù)據(jù)之間的關(guān)系,記錄內(nèi)有結(jié)構(gòu)。數(shù)據(jù)的結(jié)構(gòu)是靠程序定義和解釋的。數(shù)據(jù)只能是定長的。可以間接實(shí)現(xiàn)數(shù)據(jù)變長要求,但訪問相應(yīng)數(shù)據(jù)的應(yīng)用程序復(fù)雜了。文件間是獨(dú)立的,因此數(shù)據(jù)整體無結(jié)構(gòu)??梢蚤g接實(shí)現(xiàn)數(shù)據(jù)整體的有結(jié)構(gòu),但必須在應(yīng)用程序中對(duì)描述數(shù)據(jù)間的聯(lián)系。數(shù)據(jù)的最小存取單位是記錄。,文件系統(tǒng)階段特點(diǎn),實(shí)例:人事數(shù)據(jù)文件的存儲(chǔ)格式,2000A12345678,李光明,1980/12/25,男,河北省,2000A12345679,李格,1982/10/25,男,山西省,2000A12345680,李希望,1980/12/5,女,北京市,2000A12345681,王光,1983/2/2,男,北京市,2000A12345683,李希望,1980/12/5,男,北京市,2000A12345688,王光名,1983/2/2,男,陜西省,在數(shù)據(jù)文件中,數(shù)據(jù)之間用逗號(hào)隔開。在上邊的人事數(shù)據(jù)文件中,每個(gè)學(xué)生有5個(gè)屬性:學(xué)號(hào),姓名,生日,性別,籍貫;這5個(gè)屬性之間用逗號(hào)隔開。而每兩個(gè)學(xué)生之間的數(shù)據(jù)也是用逗號(hào)隔開。這樣,數(shù)據(jù)的存取、管理不是很方便。,數(shù)據(jù)庫系統(tǒng)階段,20世紀(jì)60年代后期,數(shù)據(jù)處理的規(guī)模急劇增長。同時(shí),計(jì)算概系統(tǒng)中采用了大容量的磁盤(數(shù)百M(fèi)B以上)系統(tǒng),使聯(lián)機(jī)存儲(chǔ)大量數(shù)據(jù)成為可能。為了解決數(shù)據(jù)的獨(dú)立性問題,實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一管理,達(dá)到數(shù)據(jù)共享的目的,數(shù)據(jù)庫技術(shù)得到了極大的發(fā)展。為數(shù)據(jù)庫的建立、使用和維護(hù)而配置的軟件稱為數(shù)據(jù)庫管理系統(tǒng)(databasemanagementsystem,DBMS),它是在操作系統(tǒng)支持下運(yùn)行的。數(shù)據(jù)庫系統(tǒng)是一種可以有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方便用戶訪問的計(jì)算機(jī)應(yīng)用軟件。,數(shù)據(jù)庫系統(tǒng)階段中程序與數(shù)據(jù)之間的關(guān)系,數(shù)據(jù)庫系統(tǒng)階段的特點(diǎn),數(shù)據(jù)的管理者:DBMS數(shù)據(jù)面向的對(duì)象:現(xiàn)實(shí)世界數(shù)據(jù)的共享程度:共享性高數(shù)據(jù)的獨(dú)立性:高度的物理獨(dú)立性和一定的邏輯獨(dú)立性數(shù)據(jù)的結(jié)構(gòu)化:整體結(jié)構(gòu)化數(shù)據(jù)控制能力:由DBMS統(tǒng)一管理和控制,人工管理階段,文件系統(tǒng)階段,從第1階段到第3階段數(shù)據(jù)與程序之間關(guān)系的演變,數(shù)據(jù)庫系統(tǒng)階段,分布式數(shù)據(jù)庫系統(tǒng)階段,分布式數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物,在20世紀(jì)80年代中期已有商品化產(chǎn)品問世。分布式數(shù)據(jù)庫系統(tǒng)是一個(gè)邏輯上統(tǒng)一、地域上分布的數(shù)據(jù)集合,是計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境中各個(gè)局部數(shù)據(jù)庫的邏輯集合,同時(shí)受分布式數(shù)據(jù)庫管理系統(tǒng)的控制和管理。分布式數(shù)據(jù)庫系統(tǒng)適合于那些各部門在地理上分散的組織機(jī)構(gòu)的事務(wù)處理,如銀行業(yè)務(wù)、飛機(jī)訂票等。,1.2數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu),站在不同的角度或不同層次上看數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)會(huì)有所不同。站在最終用戶的角度看,數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)分為集中式、分布式、C/S(客戶/服務(wù)器)和并行結(jié)構(gòu)。站在數(shù)據(jù)庫管理系統(tǒng)的角度看,數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)一般采用三級(jí)模式結(jié)構(gòu):外模式、模式和內(nèi)模式。,集中式數(shù)據(jù)庫體系結(jié)構(gòu):將DBMS軟件、所有用戶數(shù)據(jù)和應(yīng)用程序放在一臺(tái)計(jì)算機(jī)(作為服務(wù)器)上,其余計(jì)算機(jī)作為終端通過通信線路向服務(wù)器發(fā)出數(shù)據(jù)庫應(yīng)用請(qǐng)求,這種網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用系統(tǒng)稱為集中式數(shù)據(jù)庫體系結(jié)構(gòu)。客戶/服務(wù)器(C/S)體系結(jié)構(gòu):這是在客戶/服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò)上運(yùn)行的數(shù)據(jù)庫系統(tǒng),這個(gè)計(jì)算機(jī)網(wǎng)絡(luò)中,有一些計(jì)算機(jī)稱為客戶,另一些計(jì)算機(jī)稱為服務(wù)器(即客戶機(jī)/服務(wù)器)。客戶/服務(wù)體系結(jié)構(gòu)的關(guān)鍵在于功能的分布,一些功能放在客戶機(jī)(前端機(jī))上運(yùn)行,另一些功能則放在服務(wù)器(后端機(jī))上執(zhí)行。,分布式數(shù)據(jù)庫體系結(jié)構(gòu):將分散存儲(chǔ)在計(jì)算機(jī)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)上的數(shù)據(jù)庫在邏輯上統(tǒng)一管理。它是建立在數(shù)據(jù)庫技術(shù)與網(wǎng)絡(luò)技術(shù)發(fā)展的基礎(chǔ)之上的。最初的數(shù)據(jù)庫一般是集中管理的,隨著網(wǎng)絡(luò)的擴(kuò)大,增加了網(wǎng)絡(luò)的負(fù)荷,對(duì)數(shù)據(jù)庫的管理也困難了,分布式數(shù)據(jù)庫則可克服這些缺點(diǎn),分布式數(shù)據(jù)庫可供地理位置分散的用戶共享彼此的數(shù)據(jù)資源。并行結(jié)構(gòu)數(shù)據(jù)庫體系結(jié)構(gòu):是多個(gè)物理上連在一起的CPU(而分布式系統(tǒng)是多個(gè)地理上分開的CPU),各個(gè)承擔(dān)數(shù)據(jù)庫服務(wù)責(zé)任的CPU劃分它們自身的數(shù)據(jù),通過劃分的任務(wù)以及通過每秒兆位級(jí)的高速網(wǎng)絡(luò)通信完成事務(wù)查詢。,(1)概念模式簡稱模式,是由數(shù)據(jù)庫設(shè)計(jì)者綜合所有用戶數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)構(gòu)造的全局邏輯結(jié)構(gòu)。(2)外模式又稱為子模式,是用戶與數(shù)據(jù)庫的接口,是應(yīng)用程序可見的數(shù)據(jù)描述。(3)內(nèi)模式又稱為物理模式或存儲(chǔ)模式,它描述數(shù)據(jù)在存儲(chǔ)介質(zhì)上的安排與存儲(chǔ)方式。,三種模式,應(yīng)用程序,應(yīng)用程序,應(yīng)用程序,外模式A,模式,外模式B,DBMS,子模式/模式映射,模式/子模式映射,三級(jí)模式之間的聯(lián)系:二級(jí)映射,映射用來指定映射雙方進(jìn)行數(shù)據(jù)轉(zhuǎn)換的規(guī)則,實(shí)際的轉(zhuǎn)換工作由DBMS來完成。子模式/模式映射:表達(dá)了子模式與模式之間的對(duì)應(yīng)關(guān)系;模式/內(nèi)模式映射:表達(dá)了模式與內(nèi)模式之間的對(duì)應(yīng)關(guān)系。,1.3關(guān)系數(shù)據(jù)庫系統(tǒng)基本概念,1970年美國IBM公司的TedCodd發(fā)表了一篇著名的論文,文中首次提出了關(guān)系數(shù)據(jù)庫的概念。此前出現(xiàn)過層次數(shù)據(jù)庫系統(tǒng)和網(wǎng)狀數(shù)據(jù)庫系統(tǒng),但現(xiàn)在均已很少使用,關(guān)系數(shù)據(jù)庫早已占據(jù)了主導(dǎo)地位。我們使用的SQLServer是關(guān)系型的數(shù)據(jù)庫系統(tǒng),其理論基礎(chǔ)是關(guān)系代數(shù)。這節(jié)我們主要介紹關(guān)系的基本概念、關(guān)系模型、關(guān)系運(yùn)算等方面的內(nèi)容。,關(guān)系,所謂關(guān)系,就是一張表。表的各列以屬性開始,屬性是列的入口。屬性下面的每一行稱為元組。,齡,屬性,元組(記錄),關(guān)鍵字(主碼或主鍵),關(guān)系中能唯一標(biāo)識(shí)每個(gè)元組的最少屬性或?qū)傩越M稱之為關(guān)鍵字或主碼。例如“學(xué)生”關(guān)系中的屬性“學(xué)號(hào)”就是關(guān)鍵字,只要學(xué)號(hào)確定了,就能知道這個(gè)學(xué)號(hào)對(duì)應(yīng)的姓名、性別和年齡等信息,但學(xué)生關(guān)系中的“性別”和“年齡”不能作為關(guān)鍵字,因?yàn)榧词鼓挲g或性別確定了,還是不能確定學(xué)生的姓名和學(xué)號(hào)等信息,同性別或者同年齡的學(xué)生太多了。當(dāng)然如果這個(gè)關(guān)系中沒有同姓名的學(xué)生,則姓名也可以作為關(guān)鍵字看待,這要根據(jù)具體的語義來決定。當(dāng)有多個(gè)可選的關(guān)鍵字(稱之為候選關(guān)鍵字)時(shí),可由關(guān)系的設(shè)計(jì)者或使用者指定其中之一為主關(guān)鍵字。,關(guān)系的特點(diǎn),關(guān)系中的每一個(gè)屬性值都必須是不能再分的元素。例如學(xué)生的“姓名”不能再細(xì)分為“姓”和“名”兩個(gè)屬性值,必須把其作為一個(gè)整體來看待。每一列中的數(shù)值是同類型的數(shù)據(jù)。例如學(xué)生的年齡列為整數(shù)值等。不同的列應(yīng)該給予不同的屬性名。同一個(gè)關(guān)系中的兩個(gè)列即使其取值范圍相同也必須有不同的屬性名,以便區(qū)分其不同意義。同一關(guān)系中不允許有相同的元組。如果有相同的元組也只保留一個(gè)。關(guān)系是行或列的集合,所以行、列的次序可以任意交換,不影響關(guān)系的實(shí)際意義。,關(guān)系模式,關(guān)系名稱和關(guān)系的屬性名集稱為該關(guān)系的模式,其記法為:(,),教材表1-1所示的學(xué)生關(guān)系對(duì)應(yīng)的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,性別,年齡)一個(gè)數(shù)據(jù)庫中往往包含多個(gè)關(guān)系,一個(gè)數(shù)據(jù)庫中這些關(guān)系模式的集合稱之為“數(shù)據(jù)庫模式”。數(shù)據(jù)庫設(shè)計(jì)的主要任務(wù)是確定其中需要多少個(gè)關(guān)系,每個(gè)關(guān)系有多少個(gè)屬性,屬性的名稱和數(shù)據(jù)類型等內(nèi)容,也就是設(shè)計(jì)好每個(gè)關(guān)系的模式。,外關(guān)鍵字,在同一個(gè)數(shù)據(jù)庫中某個(gè)關(guān)系R1中的屬性或?qū)傩越M若在另一個(gè)關(guān)系R2中作為主碼使用,則該屬性或?qū)傩越M為R1的外關(guān)鍵字或外碼。在同一個(gè)數(shù)據(jù)庫中的關(guān)系往往是通過外關(guān)鍵字而相互關(guān)聯(lián)的。學(xué)生(學(xué)號(hào),姓名,性別,年齡)課程(課程號(hào),課程名,學(xué)分)成績(學(xué)號(hào),課程號(hào),成績)“學(xué)號(hào)”是“成績”關(guān)系中的外關(guān)鍵字;“課程號(hào)”也是“成績”關(guān)系中的外關(guān)鍵字。,關(guān)系模型,數(shù)據(jù)模型就是對(duì)客觀事物抽象化的表現(xiàn)形式,具有三大特點(diǎn):1、它必須真實(shí)地反映現(xiàn)實(shí)世界中的具體應(yīng)用,否則就失去了意義;2、要便于理解,使用者與設(shè)計(jì)者要取得一致的看法;3、應(yīng)該便于使用計(jì)算機(jī)來實(shí)現(xiàn)和處理。數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三要素組成。分別表示系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和數(shù)據(jù)庫的正確性、相容性和有效性。,傳統(tǒng)的數(shù)據(jù)模型有層次、網(wǎng)狀和關(guān)系。但層次和網(wǎng)狀數(shù)據(jù)模型已很少使用,關(guān)系數(shù)據(jù)庫占據(jù)了主導(dǎo)地位。近年以來,對(duì)象模型也得到了一些應(yīng)用。數(shù)據(jù)以“關(guān)系”的形式表示,也就是二維表的形式表示,其數(shù)據(jù)模型就是我們所說的關(guān)系模型。在關(guān)系模型中,數(shù)據(jù)及數(shù)據(jù)之間的聯(lián)系均用關(guān)系來表達(dá),并且對(duì)關(guān)系進(jìn)行各種處理之后得到的還是關(guān)系。,關(guān)系模型建立數(shù)據(jù)庫系統(tǒng)具有的特點(diǎn),(1)組織數(shù)據(jù)的結(jié)構(gòu)單一(2)采用集合運(yùn)算(3)數(shù)據(jù)完全獨(dú)立(4)數(shù)學(xué)理論支持,關(guān)系數(shù)據(jù)庫系統(tǒng),關(guān)系數(shù)據(jù)庫系統(tǒng)就是以關(guān)系模型為基礎(chǔ)的數(shù)據(jù)庫系統(tǒng)。由于關(guān)系模型有嚴(yán)格的數(shù)學(xué)基礎(chǔ),而且便于人們理解和使用,因此關(guān)系數(shù)據(jù)庫系統(tǒng)自七十年代末推出以來,得到了廣泛的應(yīng)用,并迅速占據(jù)了數(shù)據(jù)庫系統(tǒng)的主流位置。近年來各大公司推出的關(guān)系數(shù)據(jù)庫產(chǎn)品主要有:Microsoft公司的ACCESS、SQLServer2000、ORACLE公司的Oracle、IBM公司的DB2、Sybase公司是Sybase等。,1.4關(guān)系代數(shù),關(guān)系代數(shù)是過程化的查詢語言,所謂過程化語言就是需要用戶指導(dǎo)系統(tǒng)對(duì)數(shù)據(jù)庫執(zhí)行一系列操作從而計(jì)算得到所需要的結(jié)果。關(guān)系代數(shù)包括運(yùn)算的集合,這些運(yùn)算都是以一個(gè)或兩個(gè)關(guān)系為輸入,產(chǎn)生一個(gè)新的關(guān)系作為結(jié)果。關(guān)系代數(shù)的運(yùn)算分為兩大類,第一類是傳統(tǒng)的集合運(yùn)算(并、交、差),另一類是專門的關(guān)系運(yùn)算(選擇、投影、連接等)。,關(guān)系運(yùn)算,從集合論的觀點(diǎn)來定義關(guān)系:每個(gè)關(guān)系(表)是一個(gè)具有K個(gè)屬性(字段)的元組(記錄)集合。關(guān)系的基本運(yùn)算分為兩大類:1、傳統(tǒng)的集合運(yùn)算(并、交、差)2、專門的關(guān)系運(yùn)算(選擇、投影、聯(lián)接等),傳統(tǒng)的集合運(yùn)算,設(shè)P1和P2為參加運(yùn)算的兩個(gè)關(guān)系,它們具有相同的屬性集,則可定義以下三種傳統(tǒng)的集合運(yùn)算。并運(yùn)算:P1P2,表示關(guān)系P1與關(guān)系P2的并,結(jié)果中的元組或者屬于P1或者屬于P2。差運(yùn)算:P1一P2,表示關(guān)系P1與關(guān)系P2的差,結(jié)果中的元組屬于P1但不屬于P2。交運(yùn)算:P1P2,表示關(guān)系P1與關(guān)系P2的交,結(jié)果中的元組既屬于P1又屬于P2。,R1R2,R1R2R1R2R1R2,專門的關(guān)系運(yùn)算,專門的關(guān)系運(yùn)算我們主要介紹三類:選擇、投影和連接(笛卡爾積、等值連接和自然連接)。選擇:從關(guān)系中找出滿足條件的元組的運(yùn)算,其運(yùn)算符號(hào)為“”。投影:從關(guān)系中選取若干屬性的運(yùn)算,其運(yùn)算符號(hào)為“”。連接:從兩個(gè)關(guān)系的廣義笛卡兒積中選取滿足條件的元組的運(yùn)算,其運(yùn)算符號(hào)“”,選擇(Selection)運(yùn)算“”,選擇的運(yùn)算符號(hào)為“”;選擇時(shí)需要說明是從哪個(gè)關(guān)系(表)中進(jìn)行選擇,給出關(guān)系名;選擇時(shí)需要說明選擇的條件,如年齡19或成績60等;復(fù)合條件使用AND、OR、NOT等符號(hào)連接。選擇運(yùn)算的一般表示:條件(關(guān)系名),選擇運(yùn)算是從關(guān)系中行的角度進(jìn)行的運(yùn)算,選擇運(yùn)算實(shí)例,設(shè)有一個(gè)學(xué)生關(guān)系Student如上所示,要求找出信息(IS)系的全部學(xué)生。,Student,條件(關(guān)系名)Sdept=IS(Student),查詢年齡小于20歲的女學(xué)生;,條件(關(guān)系名)Sage20ANDSsex=女(Student),投影運(yùn)算“”,從原關(guān)系中選擇出若干屬性列組成新的關(guān)系。投影的運(yùn)算符號(hào)為“”;投影時(shí)需要說明是從哪個(gè)關(guān)系(表)中進(jìn)行投影,給出關(guān)系名;投影時(shí)需要說明要投影的列(屬性)名,多個(gè)列之間用逗號(hào)分開。投影運(yùn)算的一般表示:列名集(關(guān)系名),投影操作主要是從列的角度進(jìn)行運(yùn)算注意:但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(重復(fù)行),投影運(yùn)算實(shí)例,在前面學(xué)生關(guān)系中查詢學(xué)生的姓名及所在系。Sname,Sdept(Student)結(jié)果如右圖所示,查詢學(xué)生關(guān)系Student中都有哪些系Sdept(Student)結(jié)果如右表所示,注意:少了一行!,笛卡爾積(CartesianProduct),給定一組域D1,D2,Dn(注:這些域中可以有相同的),則D1,D2,Dn的笛卡爾積為:D1D2Dn(d1,d2,dn)diDi,i1,2,n其中每個(gè)(d1,d2,.,dn)叫做一個(gè)n元組,元組中的每個(gè)di是Di域中的一個(gè)值,稱為一個(gè)分量。當(dāng)n1時(shí),稱為單元組,當(dāng)n2時(shí),稱為二元組,依此類推。,笛卡爾積實(shí)例,設(shè)有域D1李明,劉滔,吳雙,D220,21,19,則笛卡兒積D1D2=?,D1D2(李明,20),(李明,21),(李明,19),(劉滔,20),(劉滔,21),(劉滔,19),(吳雙,20),(吳雙,21),(吳雙,19),李明,20,李明,21,李明,19,劉滔,20,劉滔,21,劉滔,19,吳雙,20,吳雙,21,吳雙,19,連接運(yùn)算,連接運(yùn)算是從兩個(gè)關(guān)系的笛卡兒積中選取滿足條件的元組形成新的關(guān)系,表示為:R(F)S其中R和S是要連接的兩個(gè)關(guān)系的名稱,F(xiàn)是兩關(guān)系中元組連接的條件表達(dá)式,其值為真時(shí)連接,否則不連接。兩種特殊的連接:等值連接與自然連接。如果F僅僅是比較兩個(gè)關(guān)系中兩個(gè)屬性的值相等這樣的條件,我們稱這樣的連接為等值連接;如果兩關(guān)系中有相同的屬性并且連接時(shí)比較相同屬性的值相等即連接,且去掉重復(fù)的屬性,則這種連接稱之為自然連接,記為:RS,一般的連接操作是從行的角度進(jìn)行運(yùn)算。而自然連接還需要取消重復(fù)列,所以是同時(shí)從行和列的角度進(jìn)行運(yùn)算。,R,S,連接運(yùn)算舉例,R,S,連接運(yùn)算RCES,等值連接:RR.B=S.BS,自然連接RS,關(guān)系代數(shù)運(yùn)算綜合實(shí)例,先行課,學(xué)分,Student,Course,SC,Sno(Cno=2(SC),查詢選修了2號(hào)課程的學(xué)生的學(xué)號(hào),進(jìn)行綜合運(yùn)算時(shí),要弄清楚需要對(duì)哪些關(guān)系進(jìn)行什么樣的運(yùn)算,注意盡量先做選擇運(yùn)算,然后再自然連接,最后進(jìn)行投影運(yùn)算。,Sname(Cpno=5(CourseSCStudent)或Sname(Cpno=5(Course)SCSno,Sname(Student)或Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student),查詢至少選修了一門其直接先行課為5號(hào)課程的課程的學(xué)生姓名。,查詢出姓名(Sname)為lhy的學(xué)生的學(xué)生號(hào)、所選課程的每門課程號(hào)及相應(yīng)成績,Sno,Cno,Grade(sname=lhp(SCStudent)或Sno,Sno,Grade(sname=lhp(Sno,Sname,Cno,Grade(SCStudent)或Sno,Sno,Grade(sname=lhp(Sno,Sname(Student)SC),1.5數(shù)據(jù)庫設(shè)計(jì),在給定的DBMS、操作系統(tǒng)和硬件環(huán)境下,如何表達(dá)應(yīng)用需求,并將其轉(zhuǎn)換為有效的數(shù)據(jù)庫結(jié)構(gòu),構(gòu)成較好的數(shù)據(jù)庫模式,這個(gè)過程稱為數(shù)據(jù)庫設(shè)計(jì)。根據(jù)一個(gè)單位的信息需求、處理需求和數(shù)據(jù)庫的支撐環(huán)境,設(shè)計(jì)出數(shù)據(jù)模式(包括外模式、邏輯(概念)模式和內(nèi)模式)以及典型的應(yīng)用程序。其中信息需求表示一個(gè)單位所需要的數(shù)據(jù)及其結(jié)構(gòu)。處理需求表示一個(gè)單位需要經(jīng)常進(jìn)行的數(shù)據(jù)處理。,數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)和步驟,數(shù)據(jù)庫設(shè)計(jì)的3個(gè)特點(diǎn)反復(fù)性(Iterative)試探性(Tentative)分步進(jìn)行(Multistage)數(shù)據(jù)庫設(shè)計(jì)的4個(gè)步驟數(shù)據(jù)庫的設(shè)計(jì)一般分為四步:需求分析概念設(shè)計(jì)邏輯設(shè)計(jì)物理設(shè)計(jì),需求分析,需求分析時(shí)首先圍繞要設(shè)計(jì)的課題進(jìn)行調(diào)查研究,明確使用系統(tǒng)的有哪些用戶,并與他們進(jìn)行充分溝通,了解系統(tǒng)設(shè)計(jì)的目的、意義,要達(dá)到的預(yù)期目標(biāo),現(xiàn)有系統(tǒng)的狀況,業(yè)務(wù)處理流程,用戶希望的主要功能及特殊要求,并收集所有的數(shù)據(jù)資料。在上面的基礎(chǔ)上,再對(duì)調(diào)研所收集到的所有信息進(jìn)行歸類、整理、篩選、抽象(抽取本質(zhì)特性,去掉非本質(zhì)內(nèi)容)、提煉、分析和仔細(xì)審查,以確保準(zhǔn)確地明白其含義并找出其中的錯(cuò)誤、遺漏或其它不足的地方。在此基礎(chǔ)上,再對(duì)調(diào)研所收集到的所有信息進(jìn)行歸類、整理、篩選、抽象(抽取本質(zhì)特性,去掉非本質(zhì)內(nèi)容)、提煉、分析和仔細(xì)審查,以確保準(zhǔn)確地明白其含義并找出其中的錯(cuò)誤、遺漏或其它不足的地方。,對(duì)于得到的需求分析結(jié)果,經(jīng)整理后,都必須用一種較統(tǒng)一的方式來將它們編寫成用戶需求(功能)說明書。用戶需求(功能)說明書闡述你所設(shè)計(jì)的系統(tǒng)必須提供的功能和性能以及它所要考慮的限制條件,它不僅是系統(tǒng)測試和用戶文檔的基礎(chǔ),也是后續(xù)設(shè)計(jì)和編碼、測試的基礎(chǔ)。為確保系統(tǒng)設(shè)計(jì)者對(duì)用戶需求的理解正確,設(shè)計(jì)者完成了用戶需求說明書之后,請(qǐng)有關(guān)用戶對(duì)需求說明書及相關(guān)模型進(jìn)行仔細(xì)的檢查,確認(rèn)這些需求的正確性和還未包括的內(nèi)容,并進(jìn)行有關(guān)的修正。,概念設(shè)計(jì),概念設(shè)計(jì)階段的主要任務(wù)和目標(biāo)是根據(jù)需求分析的結(jié)果找出所有的數(shù)據(jù)實(shí)體及其相互聯(lián)系,畫出對(duì)應(yīng)的實(shí)體-聯(lián)系(Entity-Relationship)模型,或稱之為E-R圖。E-R圖是數(shù)據(jù)庫建模的一種直觀的易于理解的圖形表示,由實(shí)體、屬性和聯(lián)系三部分組成。用概念數(shù)據(jù)模型,例如E-R模型,表示數(shù)據(jù)及其相互間的聯(lián)系,產(chǎn)生反映用戶信息需求和處理需求的數(shù)據(jù)庫概念模式。數(shù)據(jù)庫概念模式是獨(dú)立于任何數(shù)據(jù)庫管理系統(tǒng)、面向現(xiàn)實(shí)世界的數(shù)據(jù)模型。,用圖形表示的數(shù)據(jù)庫建模方法E-R方法,E-R(EntityRelation)即實(shí)體-聯(lián)系方法,用于構(gòu)造數(shù)據(jù)庫的概念模型,是設(shè)計(jì)數(shù)據(jù)庫的一種實(shí)用工具。E-R圖由實(shí)體、屬性和聯(lián)系三者構(gòu)成。實(shí)體集:實(shí)體是實(shí)體集的成員,矩形表示實(shí)體集,有時(shí)將實(shí)體和實(shí)體集混為一說。屬性:使用橢圓形表示屬性。聯(lián)系:E/R圖中的聯(lián)系可以涉及兩個(gè)以上的實(shí)體集。菱形表示聯(lián)系。,E-R圖例,E/R圖中聯(lián)系的三種類型,聯(lián)系有三種類型:一對(duì)一(1:1),一對(duì)多(1:n)和多對(duì)多(n:m)。,三個(gè)或更多實(shí)體之間存在多元聯(lián)系,一個(gè)供應(yīng)商為多個(gè)工程項(xiàng)目提供多種設(shè)備的訂貨,一個(gè)工程項(xiàng)目可由多個(gè)供應(yīng)商提供多種設(shè)備;一種設(shè)備可以由多個(gè)供應(yīng)商提供給不同的工程項(xiàng)目所使用。,E-R圖設(shè)計(jì)中要注意的問題,實(shí)際問題往往比較復(fù)雜,應(yīng)從局部分析做起,先局部后全部;分清哪些應(yīng)該是實(shí)體而哪些應(yīng)該是實(shí)體的屬性;再分析實(shí)體之間的聯(lián)系;使用一些制作工具,如PowerDesigner等,ER圖設(shè)計(jì)實(shí)例,假設(shè)要求我們?cè)O(shè)計(jì)一個(gè)適合大學(xué)選課的數(shù)據(jù)庫。該數(shù)據(jù)庫應(yīng)需要表達(dá)學(xué)生選修的課程及其成績;每個(gè)教師可擔(dān)任多門課程的教學(xué),每門課也可以由多個(gè)教師來授課,一個(gè)系可以開設(shè)多門課程,每門課程只歸屬于一個(gè)系等信息。請(qǐng)用E-R圖表達(dá)學(xué)生選課數(shù)據(jù)庫。,設(shè)計(jì)步驟,在設(shè)計(jì)過程中,我們首先要做的工作是找出實(shí)體集,然后再分析實(shí)體集之間的聯(lián)系,最后考慮實(shí)體集和聯(lián)系的屬性有哪些。,找出實(shí)體和聯(lián)系,分析上面實(shí)例說明,我們可以看出有學(xué)生、教師、系和課程等四個(gè)實(shí)體集。學(xué)生和課程之間有多對(duì)多的選課聯(lián)系,即一個(gè)學(xué)生可能選修多門課,每門課亦可以由多個(gè)學(xué)生選修;教師和課程之間也是多對(duì)多的聯(lián)系;系與課程之間是一對(duì)多的聯(lián)系;教師與系之間也是一對(duì)多的聯(lián)系。,實(shí)體和聯(lián)系的屬性,學(xué)生實(shí)體的屬性有:學(xué)號(hào)、姓名、性別和班級(jí);課程的屬性有:課程號(hào)、課程名和學(xué)分;教師的屬性的:姓名、性別和職稱;系的屬性有:系名、系辦地址和聯(lián)系電話。學(xué)生選修課程的聯(lián)系上應(yīng)該有成績屬性,而教師授課應(yīng)該加上教學(xué)效果這個(gè)屬性,邏輯設(shè)計(jì),在邏輯設(shè)計(jì)階段,將第二步所得到的數(shù)據(jù)庫概念模式,轉(zhuǎn)換成以DBMS的邏輯數(shù)據(jù)模型表示的邏輯模式(關(guān)系)。,從E-R圖轉(zhuǎn)換為數(shù)據(jù)庫需要遵循的規(guī)則,一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)數(shù)據(jù)表;實(shí)體的屬性轉(zhuǎn)換為數(shù)據(jù)庫的字段。一對(duì)一、一對(duì)多的聯(lián)系不轉(zhuǎn)換為數(shù)據(jù)表,兩個(gè)實(shí)體對(duì)應(yīng)的數(shù)據(jù)表依靠外部關(guān)鍵字建立聯(lián)系;多對(duì)多的聯(lián)系轉(zhuǎn)換為一個(gè)數(shù)據(jù)表。該數(shù)據(jù)表的復(fù)合關(guān)鍵字為兩個(gè)實(shí)體的關(guān)鍵字;,三個(gè)或三個(gè)以上實(shí)體多對(duì)多聯(lián)系轉(zhuǎn)換為一個(gè)數(shù)據(jù)表。該數(shù)據(jù)表的復(fù)合關(guān)鍵字為各個(gè)實(shí)體的關(guān)鍵字;也可引入一個(gè)單一字段(ID)作為關(guān)鍵字,把各個(gè)實(shí)體的關(guān)鍵字作為外關(guān)鍵字;處理三個(gè)以上實(shí)體的聯(lián)系時(shí),先畫出一對(duì)一對(duì)應(yīng)的實(shí)體;具有相同關(guān)鍵字的數(shù)據(jù)表可以合并為一個(gè)。,邏輯設(shè)計(jì)實(shí)例1,對(duì)于教材中圖1-22所示的學(xué)生選課E-R圖,有兩個(gè)實(shí)體,一個(gè)多對(duì)多的聯(lián)系,轉(zhuǎn)化成數(shù)據(jù)庫的邏輯結(jié)構(gòu)時(shí)變成三個(gè)關(guān)系,分別是學(xué)生、課程和選修,內(nèi)容如下所示。學(xué)生關(guān)系對(duì)應(yīng)原來的學(xué)生實(shí)體集,其主碼為“學(xué)號(hào)”;課程關(guān)系對(duì)應(yīng)原來的課程實(shí)體集,選修聯(lián)系是多對(duì)多的,轉(zhuǎn)換為邏輯模式時(shí)成為一個(gè)新的關(guān)系,其關(guān)鍵碼(主碼)是與之相關(guān)的兩體的關(guān)鍵碼(主碼)的組合,再加上聯(lián)系本身的屬性“成績”。學(xué)生(學(xué)號(hào),姓名,性別,班級(jí))課程(課程號(hào),課程名,學(xué)分)選修(學(xué)號(hào),課程號(hào),成績),邏輯設(shè)計(jì)實(shí)例2,教材中圖1-23所示的大學(xué)選課數(shù)據(jù)庫E-R圖,有四個(gè)實(shí)體,兩個(gè)多對(duì)多的聯(lián)系和兩個(gè)一對(duì)多的聯(lián)系,轉(zhuǎn)化成數(shù)據(jù)庫的邏輯結(jié)構(gòu)時(shí)變成六個(gè)關(guān)系,分別是學(xué)生、課程、系、教師和選修、講授,內(nèi)容如下所示。學(xué)生(學(xué)號(hào),姓名,性別,年齡)課程(課程號(hào),課程名,學(xué)分,系名*)教師(教師名,性別,職稱,系名*)系(系名,地址,電話)選修(學(xué)號(hào),課程號(hào),成績)講授(課程號(hào),教師名,效果),物理設(shè)計(jì),根據(jù)數(shù)據(jù)庫的邏輯和概念模式、DBMS及計(jì)算機(jī)系統(tǒng)所提供的功能和施加的限制,設(shè)計(jì)數(shù)據(jù)庫文件的物理存儲(chǔ)結(jié)構(gòu)、各種存取路徑。,從E-R圖到數(shù)據(jù)庫,數(shù)據(jù)庫的概念模型:用E-R圖表示的實(shí)體模型,數(shù)據(jù)庫的邏輯模型:用格式化表示的數(shù)據(jù)模型,數(shù)據(jù)庫的物理模型:用數(shù)據(jù)表(二維表)表示的數(shù)據(jù)庫,1.6關(guān)系規(guī)范化基本思想,在使用基于關(guān)系數(shù)據(jù)模型的關(guān)系數(shù)據(jù)庫時(shí),需要理解的幾個(gè)主要概念:關(guān)系:由行和列組成的二維表。元組:表中的一行,記錄。屬性:表中的一列,字段。域(Domain):屬性(字段)的取值范圍。關(guān)系模式:關(guān)系名(屬性1,屬性2,,屬性n)或表名(字段1,字段2,,字段n)。,關(guān)鍵字(Key):某個(gè)或某幾個(gè)字段,可以唯一確定一條記錄,就成為本關(guān)系的關(guān)鍵字?;蛘哒f,對(duì)于某個(gè)關(guān)系,能夠唯一地確定其它屬性(字段)值的屬性(字段)組稱為關(guān)鍵字。候選關(guān)鍵字:對(duì)于某個(gè)關(guān)系,若存在多個(gè)屬性組都是關(guān)鍵字,則稱它們中的每一個(gè)都為該關(guān)系的候選關(guān)鍵字。主關(guān)鍵字:從候選關(guān)鍵字中任選一個(gè)作為現(xiàn)行關(guān)鍵字,則該關(guān)鍵字稱為主關(guān)鍵字。主屬性和非主屬性:凡能作候選關(guān)鍵字的屬性稱為主屬性,而不能作候選關(guān)鍵字的屬性稱為非主屬性。外部關(guān)鍵字:不是本關(guān)系的關(guān)鍵字,而是另一個(gè)關(guān)系的關(guān)鍵字。關(guān)系之間的連接常常依靠外部關(guān)鍵字。,為了更好地了解函數(shù)依賴的概念,先看實(shí)例:學(xué)生關(guān)系Student的實(shí)例如下:SnoSNSDMNCNG99230賀小華計(jì)算機(jī)周光OS9699239金謙計(jì)算機(jī)周光OS9099239金謙計(jì)算機(jī)周光編譯9299851陳剛建筑王勇建筑89back,函數(shù)依賴,SnoSNSnoSDSDMNSnoCNG,設(shè)計(jì)關(guān)系數(shù)據(jù)庫模式時(shí),特別是從E/R設(shè)計(jì)直接向關(guān)系數(shù)據(jù)庫模式轉(zhuǎn)換時(shí),很容易出現(xiàn)的問題是冗余性,即一個(gè)事實(shí)在多個(gè)元組中重復(fù)。造成這種冗余的最常見的原因是,企圖把一個(gè)對(duì)象的單值和多值特性包含在一個(gè)關(guān)系中。,當(dāng)我們企圖把太多的信息存放在一個(gè)關(guān)系時(shí),就會(huì)出現(xiàn)數(shù)據(jù)冗余和更新異常等問題。主要表現(xiàn)如下:1數(shù)據(jù)冗余。2修改異常。3刪除異常。4插入異常。參看實(shí)例,問題的根源(1),關(guān)系的鍵碼函數(shù)決定該關(guān)系的所有其它屬性。由于鍵碼能唯一確定一個(gè)元組,所以,也可以說關(guān)系的鍵碼函數(shù)決定該關(guān)系的所有屬性。一個(gè)關(guān)系中的所有屬性都函數(shù)依賴于該關(guān)系的鍵碼。不同的屬性在關(guān)系模式中所處的地位和扮演的角色是不同的。把鍵碼所在的屬性稱為主屬性,而把鍵碼屬性以外的屬性稱為非主屬性。,問題的根源(2),不同的屬性對(duì)鍵碼函數(shù)依賴的性質(zhì)和程度是有差別的。有的屬于直接依賴,有的屬于間接依賴(通常稱為傳遞依賴)。當(dāng)鍵碼由多個(gè)屬性組成時(shí),有的屬性函數(shù)依賴于整個(gè)鍵碼屬性集,而有的屬性只函數(shù)依賴于鍵碼屬性集中的一部分屬性。,問題的根源(2),不同的屬性對(duì)鍵碼函數(shù)依賴的性質(zhì)和程度是有差別的。有的屬于直接依賴,有的屬于間接依賴(通常稱為傳遞依賴)。當(dāng)鍵碼由多個(gè)屬性組成時(shí),有的屬性函數(shù)依賴于整個(gè)鍵碼屬性集,而有的屬性只函數(shù)依賴于鍵碼屬性集中的一部分屬性。,完全依賴與部分依賴對(duì)于函數(shù)依賴WA,如果存在VW(V是W的真子集)而函數(shù)依賴VA成立,則稱A部分依賴于W;若不存在這種V,則稱A完全依賴于W。當(dāng)存在非主屬性對(duì)鍵碼部分依賴時(shí),就會(huì)產(chǎn)生數(shù)據(jù)冗余和更新異常。若非主屬性對(duì)鍵碼完全函數(shù)依賴,則不會(huì)出現(xiàn)類似問題。,傳遞依賴對(duì)于函數(shù)依賴XY,如果YX(X不函數(shù)依賴于Y)而函數(shù)依賴YZ成立,則稱Z對(duì)X傳遞依賴。如果XY,且YX,則X,Y相互依賴,這時(shí)Z與X之間就不是傳遞依賴,而是直接依賴了。我們以前所討論的函數(shù)依賴大多數(shù)是直接依賴。,解決的途徑,部分依賴和傳遞依賴有一個(gè)共同之處,這就是,二者都不是基本的函數(shù)依賴,而都是導(dǎo)出的函數(shù)依賴:部分依賴是以對(duì)鍵碼的某個(gè)真子集的依賴為基礎(chǔ)傳遞依賴的基礎(chǔ)則是通過中間屬性聯(lián)系在一起的兩個(gè)函數(shù)依賴。,導(dǎo)出的函數(shù)依賴在描述屬性之間的聯(lián)系方面并沒有比基本的函數(shù)依賴提供更多的信息。在一個(gè)函數(shù)依賴集中,導(dǎo)出的依賴相對(duì)于基本的依賴而言,雖然從形式上看多一種描述方式,但從本質(zhì)上看,則完全是冗余的。正是由于關(guān)系模式中存在對(duì)鍵碼的這種冗余的依賴導(dǎo)致數(shù)據(jù)庫中的數(shù)據(jù)冗余和更新異常。,解決的途徑消除關(guān)系模式中各屬性對(duì)鍵碼的冗余的依賴。由于冗余的依賴有部分依賴與傳遞依賴之分,而屬性又有主屬性與非主屬性之別,把解決的途徑分為幾個(gè)不同的級(jí)別,以屬于第幾范式來區(qū)別。,范式就是符合某一種級(jí)別的關(guān)系模式的集合。目前主要有六種范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。第一范式需滿足的要求最低,在第一范式基礎(chǔ)上滿足進(jìn)一步要求的為第二范式:1NF2NF3NFBCNF4NF5NF通過分解把屬于低級(jí)范式的關(guān)系模式轉(zhuǎn)換為幾個(gè)屬于高級(jí)范式的關(guān)系模式的集合,這一過程稱為規(guī)范化。,第一范式(1NF),如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則這個(gè)關(guān)系屬于第一范式。在任何一個(gè)關(guān)系數(shù)據(jù)庫系統(tǒng)中,第一范式是對(duì)關(guān)系模式的一個(gè)最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。,第二范式(2NF),若關(guān)系模式R屬于第一范式,且每個(gè)非主屬性都完全函數(shù)依賴于鍵碼,則R屬于第二范式。第二范式就是不允許關(guān)系模式中的非主屬性部分函數(shù)依賴于鍵碼。,學(xué)生關(guān)系模式Student(Sno,Sname,Sdept,Mname,Cname,Grade)。該關(guān)系模式存在如下部分依賴:Sno,CnameSname,Sdept,Mname顯然不滿足“每個(gè)非主屬性都完全函數(shù)依賴于鍵碼”的條件。所以學(xué)生關(guān)系模式不屬于第二范式。,關(guān)系分解的含義,關(guān)系R的分解包括兩個(gè)方面,一方面是把R的屬性分開,以構(gòu)成兩個(gè)新的關(guān)系模式:另一方面是通過對(duì)R的元組進(jìn)行投影而產(chǎn)生兩個(gè)新的關(guān)系。,分解的過程,給定一個(gè)模式為A1,A2,An的關(guān)系R,我們可以把R分解為兩個(gè)關(guān)系S和T,模式分別為B1,B2,Bm和C1,C2,Ck,使得:1A1,An=B1,BmC1,Ck,2關(guān)系S中的元組是R的所有元組在B1,Bm上的投影。對(duì)于R的當(dāng)前實(shí)例的每個(gè)元組t,取t在屬性B1,B2,Bm上的分量。這些分量構(gòu)成一個(gè)元組,它屬于S的當(dāng)前實(shí)例。3類似地,關(guān)系T中的元組是R的當(dāng)前實(shí)例中的元組在屬性集C1,C2,Ck上的投影。,第三范式(3NF),若關(guān)系模式R屬于第一范式,且每個(gè)非主屬性都不傳遞依賴于鍵碼,則R屬于第三范式。這里應(yīng)說明一點(diǎn):屬于第三范式的關(guān)系模式必然屬于第二范式。因?yàn)榭梢宰C明部分依賴蘊(yùn)含著傳遞依賴。,關(guān)系模式S1(Sno,Sname,Sdept,Mname)由于存在傳遞依賴而不屬第三范式.S1分解成兩個(gè)關(guān)系模式S11(Sno,Sname,Sdept)S12(Sdept,Mname),關(guān)系的規(guī)范化過程,按照范式理論,在lNF的基礎(chǔ)上,消除了屬性對(duì)關(guān)鍵字的不完全函數(shù)依賴關(guān)系,即可得到第二范式(2NF),在2NF的基礎(chǔ)上,消除了屬性對(duì)關(guān)鍵字的傳遞函數(shù)依賴關(guān)系,即可得到第三范式(3NF)。,第一范式(一張表),成績管理(學(xué)號(hào),姓名,生日,性別,所在城市,長途區(qū)號(hào),課程,學(xué)期,學(xué)分,成績)1.使字段成
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦山機(jī)電入井培訓(xùn)課件
- 業(yè)務(wù)能力提升培訓(xùn)
- vloo kup函數(shù)教學(xué)課件
- 中國公民健康素養(yǎng)
- 員工維護(hù)保養(yǎng)培訓(xùn)
- 關(guān)于中藥的培訓(xùn)
- 住院醫(yī)師規(guī)范化培訓(xùn)年度總結(jié)
- 闌尾炎的護(hù)理查房
- 中班健康活動(dòng):走丟了怎么辦
- 小學(xué)課堂禮儀培訓(xùn)
- 百度公司環(huán)境管理制度
- 特殊工時(shí)制管理制度
- 2024-2025學(xué)年廣東人教版高一英語第二學(xué)期期末練習(xí)卷(含答案)
- 統(tǒng)編版三年級(jí)語文下冊(cè)同步高效課堂系列第一單元復(fù)習(xí)課件
- DB15-T 4061-2025 沙化土地防護(hù)灌木林(沙柳、梭梭、檸條)碳匯儲(chǔ)量監(jiān)督抽查技術(shù)規(guī)范
- 智能門鎖項(xiàng)目可行性分析報(bào)告
- 鄰里糾紛及其合法合理處理課件
- 河南省鄭州市第八中學(xué)2025年七下英語期末經(jīng)典試題含答案
- 中醫(yī)八段錦課件
- 口腔科清洗間管理制度
- 拌合站會(huì)議管理制度
評(píng)論
0/150
提交評(píng)論