《數(shù)據(jù)庫原理與技術(shù)(第二版)》課件第1章_第1頁
《數(shù)據(jù)庫原理與技術(shù)(第二版)》課件第1章_第2頁
《數(shù)據(jù)庫原理與技術(shù)(第二版)》課件第1章_第3頁
《數(shù)據(jù)庫原理與技術(shù)(第二版)》課件第1章_第4頁
《數(shù)據(jù)庫原理與技術(shù)(第二版)》課件第1章_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章數(shù)據(jù)庫基礎(chǔ)知識信息:是以數(shù)據(jù)為載體的客觀世界實(shí)際存在的事物、事件或概念在人們頭腦中的反映。數(shù)據(jù):是用來表示信息的一組符號。信息系統(tǒng):是以計(jì)算機(jī)為核心,以數(shù)據(jù)庫為基礎(chǔ),對信息進(jìn)行收集、組織、存儲、加工、傳播、管理和使用的系統(tǒng)。第一章數(shù)據(jù)庫基礎(chǔ)知識 數(shù)據(jù)管理是指:數(shù)據(jù)的收集、整理、組織、存儲、查詢、維護(hù)和傳送等各種操作,是數(shù)據(jù)處理的基本環(huán)節(jié),是任何數(shù)據(jù)處理任務(wù)必有的共性部分。數(shù)據(jù)庫技術(shù)所研究的問題就是如何科學(xué)地組織和存儲數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù)。第一章數(shù)據(jù)庫基礎(chǔ)知識 數(shù)據(jù)處理數(shù)據(jù)庫技術(shù)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)與存貯結(jié)構(gòu)索引文件組織退出本章要點(diǎn)數(shù)據(jù)管理的發(fā)展階段人工管理階段(50年代中期以前)文件系統(tǒng)階段(50年代后期---60年代中期)數(shù)據(jù)庫系統(tǒng)階段(60年代后期開始)數(shù)據(jù)處理 數(shù)據(jù)管理的發(fā)展階段____1、人工管理階段計(jì)算機(jī)主要用于科學(xué)計(jì)算軟件采用機(jī)器語言編寫數(shù)據(jù)量小數(shù)據(jù)不需要共享有了磁盤、磁鼓等直接存取設(shè)備出現(xiàn)了操作系統(tǒng)及高級語言出現(xiàn)了文件系統(tǒng)計(jì)算機(jī)應(yīng)用也從單純科學(xué)計(jì)算、控制,擴(kuò)大到電子數(shù)據(jù)處理系統(tǒng)人們利用文件系統(tǒng)將數(shù)據(jù)從程序中分離出來形成專門的數(shù)據(jù)文件數(shù)據(jù)管理的發(fā)展階段____2、文件系統(tǒng)階段R#include“stdio.h”main(){FILE*fp;fp=fopen(“Commodity.c”,”w”);fputs(“Silverware”,fp);fputs(“Wwmottle”,fp);putw(40,fp);fputs(“11111111”,fp);fputs(“Chinaware”,fp);fputs(“Popularware”,fp);putw(100,fp);fputs(“222222222222”,fp);fclose(fp);}【例1.1】C語言中將Commodity的有關(guān)數(shù)據(jù):WareName、Specification、Unitprice、Illuminate等數(shù)據(jù)輸入到一個(gè)文件中的程序:數(shù)據(jù)管理的發(fā)展階段____2、文件系統(tǒng)階段#include“stdio.h”#defineSIZE2structCommodity_type{charWareName[12];charSpecification[16];intUnitprice;charIlluminate[20];}stud[SIZE];【例1.2】顯示文件Commodity.c中的數(shù)據(jù):數(shù)據(jù)管理的發(fā)展階段____2、文件系統(tǒng)階段main(){inti;FILE*fp;fp=fopen(“Commodity.c”,”r”);

for(i=0;i<SIZE;i++)

{fread(&stud[i],sizeof(structCommodity_type),1,fp);printf(“%28s%20s%8d%200s%\n”,stud[i].WareName,stud[i].Specification,stud[i].Unitprice,stud[i].Illuminate);}}數(shù)據(jù)管理的發(fā)展階段____2、文件系統(tǒng)階段輸入數(shù)據(jù)程序輸出數(shù)據(jù)輸入文件輸出文件數(shù)據(jù)處理全過程如下圖:數(shù)據(jù)管理的發(fā)展階段____2、文件系統(tǒng)階段數(shù)據(jù)文件的優(yōu)點(diǎn)是實(shí)現(xiàn)了數(shù)據(jù)的物理獨(dú)立即數(shù)據(jù)與程序分離,分別采用兩個(gè)文件各自存放數(shù)據(jù)與程序。這就使程序設(shè)計(jì)變得簡單,而且可對數(shù)據(jù)文件進(jìn)行管理,單獨(dú)對數(shù)據(jù)進(jìn)行使用或維護(hù)。

缺點(diǎn)是如果要使用和維護(hù)數(shù)據(jù),必須知道數(shù)據(jù)存放的格式,即要知道數(shù)據(jù)存取的邏輯結(jié)構(gòu)。數(shù)據(jù)和程序之間缺少邏輯獨(dú)立性。數(shù)據(jù)管理的發(fā)展階段____2、文件系統(tǒng)階段同一數(shù)據(jù)在多個(gè)地方同時(shí)存放,那么同一數(shù)據(jù)在不同存放地的值可能不相同,稱為數(shù)據(jù)不一致,這將會降低信息價(jià)值,甚至造成重大損失。數(shù)據(jù)共享是指同一數(shù)據(jù)能為同一用戶或不同用戶的相同或不同程序所使用。數(shù)據(jù)管理的發(fā)展階段____2、文件系統(tǒng)階段數(shù)據(jù)管理的發(fā)展階段____3、數(shù)據(jù)庫系統(tǒng)階段計(jì)算機(jī)管理的數(shù)據(jù)量大,關(guān)系復(fù)雜,共享性要求強(qiáng)(多種應(yīng)用、不同語言共享數(shù)據(jù))外存有了大容量磁盤,光盤軟件價(jià)格上升,硬件價(jià)格下降,編制和維護(hù)軟件及應(yīng)用程序成本相對增加,其中維護(hù)的成本更高,力求降低開始提出和考慮分布處理為解決多用戶、多應(yīng)用共享數(shù)據(jù)的需求,使數(shù)據(jù)為盡可能多的應(yīng)用服務(wù),就出現(xiàn)了數(shù)據(jù)庫技術(shù)出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng):DBMS數(shù)據(jù)管理的發(fā)展階段____3、數(shù)據(jù)庫系統(tǒng)階段當(dāng)前關(guān)系數(shù)據(jù)庫管理系統(tǒng)的產(chǎn)品主要有Oracle、DB2、Informix、SybaseASE、SQLServer、MYSQL、達(dá)夢、Access、VisualFoxPro等,Oracle是大型數(shù)據(jù)庫,SQLServer是可以應(yīng)用于網(wǎng)絡(luò)上的小型數(shù)據(jù)庫,Access、VisualFoxPro是桌面式數(shù)據(jù)庫,達(dá)夢是我國自行開發(fā)的國產(chǎn)數(shù)據(jù)庫管理系統(tǒng)等。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)如果在SQLServer中要完成前述任務(wù),首先要建立數(shù)據(jù)存儲結(jié)構(gòu)??上冉?shù)據(jù)庫,例如建立名為Waremanage的數(shù)據(jù)庫,當(dāng)打開該數(shù)據(jù)庫后,可使用下述命令建立空表結(jié)構(gòu):CREATETABLECommodity(WareNamechar(12),Secfcatonchar(16),Unitpriceint,Illuminatetext);從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)如要存入兩件商品數(shù)據(jù),可使用下述命令:INSERTINTOCommodityVALUES(“Silverware”,“Wwmottle”,40,“11111111111111”);INSERTINTOCommodityVALUES(“Chinaware”,“Popularware”,100,“22222222222222222222”);從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)與C語言程序不同,在輸入商品名稱、規(guī)格、說明等數(shù)據(jù)時(shí),數(shù)據(jù)值的寬度不到預(yù)定的字符寬度時(shí),無須加填空格;在數(shù)據(jù)維護(hù)過程中對數(shù)據(jù)格式要求已經(jīng)不是那么嚴(yán)格了。例如要顯示表Commodity中的內(nèi)容,可使用下述命令:SELECT*FROMCommodity從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)如要求按一定條件顯示某一定范圍內(nèi)的內(nèi)容,例如只顯示單價(jià)為40的商品的名稱、規(guī)格與單價(jià),可使用下述命令:SELECTWareName,Secfcaton,UnitpriceFROMCommodityWHEREUnitprice=40從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)數(shù)據(jù)庫系統(tǒng)管理軟件有以下優(yōu)點(diǎn):(1)程序極為簡單(2)程序中不需要了解數(shù)據(jù)的數(shù)量和順序(3)可直接對數(shù)據(jù)的某一部分分量進(jìn)行操作,而無須知道全面的數(shù)據(jù)結(jié)構(gòu)及其他分量的個(gè)數(shù)、名字和數(shù)據(jù)類型。(4)只要初始定義的數(shù)據(jù)結(jié)構(gòu)中你所需的那一部分分量的名字和數(shù)據(jù)類型不發(fā)生變化,程序?qū)o須隨數(shù)據(jù)結(jié)構(gòu)改變而修改。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)在SQLServer2000中利用SQLServer管理工具中企業(yè)管理器建立數(shù)據(jù)庫waremanage之后會產(chǎn)生:主數(shù)據(jù)文件waremanage_Data.MDF日志文件waremanage_Data.LDF兩個(gè)文件如果在其中用上述CREATE建立數(shù)據(jù)表“Commodity”之后,我們查看waremanage_Data.MDF中的內(nèi)容,可以看到,其中包含了如下內(nèi)容(如圖1.2所示)從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)圖1.2數(shù)據(jù)表文件MDF中關(guān)于表結(jié)構(gòu)定義的內(nèi)容的示意在存放數(shù)據(jù)時(shí),數(shù)據(jù)庫將數(shù)據(jù)分為不同類型,不同類型的數(shù)據(jù)存放格式不同、將來允許進(jìn)行的處理不相同。數(shù)據(jù)在計(jì)算機(jī)內(nèi)存放有二進(jìn)制與ASCII碼二種形式。SQLServer2000數(shù)據(jù)庫中數(shù)據(jù)類型及意義如表1.1所示。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)數(shù)據(jù)庫中一般數(shù)據(jù)按記錄以等長形式順序存放,各數(shù)據(jù)項(xiàng)在各記錄中占據(jù)寬度相同,這樣一種結(jié)構(gòu)可形象看作一個(gè)由行和列構(gòu)成的二維表格,每一數(shù)據(jù)項(xiàng)為一列,稱為字段,每一行稱為一條記錄,包括一件事物的有關(guān)數(shù)據(jù),以這種形式組織數(shù)據(jù)的數(shù)據(jù)庫,我們稱為關(guān)系數(shù)據(jù)庫。例如一個(gè)關(guān)于商品的關(guān)系數(shù)據(jù)庫數(shù)據(jù)表的結(jié)構(gòu)與內(nèi)容如表1.2所示。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)通過前述定義表與存入數(shù)據(jù)后,如果查看waremanage_Data.MDF中的內(nèi)容,可以看到,文件中包含了上述表中數(shù)據(jù),如圖1.3所示。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)

SQLServer數(shù)據(jù)庫對某一個(gè)數(shù)據(jù)表而言,數(shù)據(jù)庫文件分成多個(gè)相關(guān)部分,其中有一部分存放數(shù)據(jù)結(jié)構(gòu)的描述,再有一部分按順序存放數(shù)據(jù),還有一部分以鏈表結(jié)構(gòu)形式存放文本類型等數(shù)據(jù)。

為了不同的處理需要(例如索引、視圖、日志等),SQLServer中同一數(shù)據(jù)與關(guān)于數(shù)據(jù)結(jié)構(gòu)的描述往往多處出現(xiàn),如圖所示只是在數(shù)據(jù)庫主文件waremanage_Data.MDF內(nèi)存放情況之一,另外,在日志文件waremanage_Data.LDF中還有類似的存放。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)

Access是微軟公司Office產(chǎn)品套件中的產(chǎn)品,能適應(yīng)Web環(huán)境,適用于微型機(jī)環(huán)境,其數(shù)據(jù)存儲方式與SQLServer類似,數(shù)據(jù)以數(shù)據(jù)庫為單位形成文件存放。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)在我國曾廣泛使用過的一種單機(jī)上的數(shù)據(jù)庫VisualFoxPro(簡稱VFP),是一種不完全的關(guān)系數(shù)據(jù)庫,其數(shù)據(jù)存儲方式有所不同,數(shù)據(jù)以表為單位形成一個(gè)文件存放,包括對數(shù)據(jù)結(jié)構(gòu)的定義與等長記錄的數(shù)據(jù);如果有文本或圖形類字段,還將另外建立一個(gè)文件鏈表結(jié)構(gòu)的文件。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)圖1.4描述了VFP中一個(gè)學(xué)生表結(jié)構(gòu)定義及數(shù)據(jù)存儲情況:其字段包括姓名:NAME,字符類型,寬度為8,以ASCII碼形式存放;學(xué)號:NUM,整數(shù)類型,以二進(jìn)制形式存放;年齡:AGE,整數(shù)類型,以二進(jìn)制形式存放。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)Oracle是一種大型數(shù)據(jù)庫產(chǎn)品,其較新版本是Oracle10g,除具有關(guān)系數(shù)據(jù)庫功能外,還有較強(qiáng)的數(shù)據(jù)倉庫功能,適應(yīng)性很廣。它的數(shù)據(jù)存儲容量可達(dá)8TB,從目前情況看,實(shí)際數(shù)據(jù)容量只受操作系統(tǒng)限制。其數(shù)據(jù)存儲方式與SQLServer不同,數(shù)據(jù)庫下設(shè)表空間(一種邏輯結(jié)構(gòu)),表空間內(nèi)包括多個(gè)文件,表、索引、數(shù)據(jù)字典分布在這些文件中。數(shù)據(jù)字典存放關(guān)于數(shù)據(jù)邏輯結(jié)構(gòu)的定義。從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)數(shù)據(jù)庫都要求預(yù)先定義數(shù)據(jù)邏輯結(jié)構(gòu),并用專門文件或指定文件的一部分存儲關(guān)于結(jié)構(gòu)的描述,程序員編寫程序時(shí)就無須了解數(shù)據(jù)的全局結(jié)構(gòu),而只需關(guān)心他所涉及的那部分?jǐn)?shù)據(jù)項(xiàng),其他事可利用數(shù)據(jù)庫管理系統(tǒng)軟件(DBMS)來幫助完成。

初步實(shí)現(xiàn)數(shù)據(jù)與數(shù)據(jù)邏輯結(jié)構(gòu)描述(稱為模式)的分離。這是數(shù)據(jù)邏輯獨(dú)立的基礎(chǔ)。

從實(shí)例看數(shù)據(jù)庫的數(shù)據(jù)處理技術(shù)

DBMS可以分析數(shù)據(jù)全局與各數(shù)據(jù)項(xiàng)結(jié)構(gòu),分析一條記錄總長度,及每一個(gè)數(shù)據(jù)項(xiàng)的名字、類型、從第幾個(gè)字節(jié)開始及共占據(jù)多少寬度等等,之后就可自動(dòng)從數(shù)據(jù)區(qū)中根據(jù)需要提取數(shù)據(jù)。數(shù)據(jù)庫:有組織的、動(dòng)態(tài)地存儲的、結(jié)構(gòu)化的、相互關(guān)聯(lián)的數(shù)據(jù)的集合。是通過綜合多個(gè)用戶的文件中的數(shù)據(jù),除去不必要的冗余,使之相互聯(lián)系之后建立的數(shù)據(jù)存儲庫。集成、共享、存儲、信息是數(shù)據(jù)庫的要素,其重要特點(diǎn)是聯(lián)系。數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、支持?jǐn)?shù)據(jù)庫運(yùn)行的軟件與硬件、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。

數(shù)據(jù)庫技術(shù)設(shè)計(jì)一個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng),需要:了解系統(tǒng)對數(shù)據(jù)和功能的需求對全系統(tǒng)涉及的所有數(shù)據(jù)進(jìn)行分析和整理、分析數(shù)據(jù)之間的聯(lián)系,用一定的數(shù)據(jù)模型來表示;求得系統(tǒng)全局的數(shù)據(jù)結(jié)構(gòu),用一定語言加以表示及定義;考慮數(shù)據(jù)的存放位置、數(shù)據(jù)量大小、對安全保密性、數(shù)據(jù)正確性、防錯(cuò)糾錯(cuò)措施等方面的要求,設(shè)計(jì)并在計(jì)算機(jī)中建立數(shù)據(jù)庫結(jié)構(gòu)

數(shù)據(jù)庫系統(tǒng)要盡可能減少數(shù)據(jù)冗余。所謂數(shù)據(jù)冗余是指同一數(shù)據(jù)在多個(gè)不同的地方存放。另外,如果一組數(shù)據(jù)在一個(gè)表中多次重復(fù),也是冗余。數(shù)據(jù)冗余不僅導(dǎo)致數(shù)據(jù)量的增加,使系統(tǒng)處理速度變慢,效率降低,而且易發(fā)生錯(cuò)誤。在實(shí)際設(shè)計(jì)中,應(yīng)盡量減少數(shù)據(jù)冗余,控制冗余度。需要正確定義全局?jǐn)?shù)據(jù)結(jié)構(gòu)。

數(shù)據(jù)庫系統(tǒng)用某一種數(shù)據(jù)庫語言對全局?jǐn)?shù)據(jù)結(jié)構(gòu)的定義稱為這種數(shù)據(jù)庫的概念模式,簡稱模式。例如設(shè)計(jì)關(guān)于“學(xué)生”數(shù)據(jù),定義為二維結(jié)構(gòu)的表,表名為Student,包括name,num,age三個(gè)數(shù)據(jù)分量,數(shù)據(jù)類型分別為字符型、整型、整型,所占寬度分別為8、4、4個(gè)字節(jié)。這些內(nèi)容就是對關(guān)系數(shù)據(jù)庫“學(xué)生”的模式定義的主要內(nèi)容。

數(shù)據(jù)庫系統(tǒng)關(guān)系數(shù)據(jù)庫的模式除包括數(shù)據(jù)庫名,數(shù)據(jù)結(jié)構(gòu)方式,記錄的構(gòu)成等內(nèi)容外,還包括記錄的標(biāo)識性數(shù)據(jù)分量、數(shù)據(jù)范圍及使用權(quán)限等內(nèi)容。在關(guān)系數(shù)據(jù)庫中標(biāo)識性數(shù)據(jù)分量指能唯一標(biāo)志一條記錄的數(shù)據(jù)分量。模式常常簡單地被表示為:模式名(數(shù)據(jù)項(xiàng)1,數(shù)據(jù)項(xiàng)2,……),例:Student(name,num,age)。上述數(shù)據(jù)分量我們稱之為字段,數(shù)據(jù)分量名稱為字段名,每條記錄該數(shù)據(jù)分量的值稱為字段值。標(biāo)識性數(shù)據(jù)分量稱關(guān)鍵字。

數(shù)據(jù)庫系統(tǒng)要增強(qiáng)數(shù)據(jù)的共享性、盡量減少數(shù)據(jù)冗余,還需要進(jìn)一步提高數(shù)據(jù)的邏輯獨(dú)立性,減少應(yīng)用程序?qū)θ中詳?shù)據(jù)結(jié)構(gòu)的依賴,讓應(yīng)用程序只和局部數(shù)據(jù)結(jié)構(gòu)相關(guān)。為此,可進(jìn)一步定義概念模式的邏輯子集,稱為子模式。

數(shù)據(jù)庫系統(tǒng)在數(shù)據(jù)庫系統(tǒng)管理軟件中,有專門定義數(shù)據(jù)模式的語句,例如,建立學(xué)生(學(xué)號,姓名,年齡)和成績(學(xué)號,課名,分?jǐn)?shù))兩個(gè)表(名字均改用英文單詞表示)的語句:CREATETABLEStudent(Numi,Namec(8),agei)CREATETABLEResult(Numi,LessonNamec(28),Fractioni)

數(shù)據(jù)庫系統(tǒng)在數(shù)據(jù)庫系統(tǒng)管理軟件中,還有建立視圖的語句。例如欲建立視圖SR,列舉所有不及格的學(xué)生,可以用一條語句實(shí)現(xiàn):CREATEVIEWSRASSELECTStudent.Name,Result.LessonName,Result.FractionFROMStudent,Result(WHEREStudent.Num=Result.NumANDResult.Fraction<60)

數(shù)據(jù)庫系統(tǒng)有了這個(gè)視圖之后,在關(guān)系數(shù)據(jù)庫系統(tǒng)中可將SR視同一般表,通過它對源表“Student”和“Result”進(jìn)行查詢操作。該視圖實(shí)現(xiàn)了兩個(gè)源表的聯(lián)系,相當(dāng)于源表模式的子集。它使用的字段名可以與源表不同,以后若源庫結(jié)構(gòu)發(fā)生變化,包括上述相應(yīng)字段名變化,我們可修改視圖定義來局部適應(yīng)這些變化,而不需要修改程序。視圖和表不同之處在于它并沒有真正地存儲數(shù)據(jù),它所存取的數(shù)據(jù)必須依附于所關(guān)聯(lián)的數(shù)據(jù)表,是一種虛的映射關(guān)系。

數(shù)據(jù)庫系統(tǒng)還有一些數(shù)據(jù)庫,在關(guān)于全局?jǐn)?shù)據(jù)結(jié)構(gòu)的子集定義中允許改變對應(yīng)的數(shù)據(jù)類型、寬度,還可加入關(guān)于權(quán)限控制方面的內(nèi)容,這種用一定數(shù)據(jù)庫語言對局部數(shù)據(jù)結(jié)構(gòu)的描述稱為子模式或外模式。子模式是對用戶所看到的數(shù)據(jù)結(jié)構(gòu)的描述,用戶看到的數(shù)據(jù)結(jié)構(gòu)稱為用戶視圖或外部視圖或稱I/O視圖。

數(shù)據(jù)庫系統(tǒng)在一些數(shù)據(jù)庫中,關(guān)于數(shù)據(jù)結(jié)構(gòu)的定義還需加入所存儲文件名及類型、數(shù)據(jù)存儲形式(順序文件或鏈表結(jié)構(gòu)文件)、采用的指針、索引文件的結(jié)構(gòu)乃至于存儲設(shè)備,物理塊大小等。這些有關(guān)存儲方式、物理結(jié)構(gòu)等的描述稱為存儲模式或內(nèi)模式,數(shù)據(jù)庫通過存儲模式再借助于操作系統(tǒng)實(shí)現(xiàn)對數(shù)據(jù)存儲文件的操作。

數(shù)據(jù)庫系統(tǒng)以上形式將數(shù)據(jù)庫分為不同層次,各個(gè)層次面對不同類型的人員。最終用戶面對的是應(yīng)用程序,程序員所見到的數(shù)據(jù)庫形式稱外部視圖或稱I/O視圖。數(shù)據(jù)庫管理員DBA面向數(shù)據(jù)全局結(jié)構(gòu),即概念模式和存儲模式,包括了所有部門、各類人員所有數(shù)據(jù)的按一定規(guī)則的集合。系統(tǒng)管理員關(guān)心的是各個(gè)數(shù)據(jù)庫及其他文件在系統(tǒng)中的存儲和管理,面對的是各個(gè)數(shù)據(jù)庫的存儲模式,他看到的部分稱為內(nèi)部視圖。

數(shù)據(jù)庫系統(tǒng)美國ANSI/X3/SPARC(美國國家標(biāo)準(zhǔn)協(xié)會的計(jì)算機(jī)與信息處理委員會中的標(biāo)準(zhǔn)計(jì)劃與需求委員會)數(shù)據(jù)庫小組關(guān)于數(shù)據(jù)庫系統(tǒng)三層結(jié)構(gòu):外部級,概念級,內(nèi)部級劃分視圖層次的方案見圖1.5。

數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫的視圖層次程序A程序B程序C程序D子模式子模式子模式概念模式存貯模式

物理

數(shù)據(jù)

組織I/O視圖外部視圖概念視圖內(nèi)部視圖物理視圖

數(shù)據(jù)庫系統(tǒng)基于模式可以進(jìn)一步定義視圖,它相當(dāng)于面向應(yīng)用程序的子模式,使程序與數(shù)據(jù)進(jìn)一步分離。這樣的結(jié)構(gòu)要求應(yīng)用程序中使用的有關(guān)數(shù)據(jù)庫中數(shù)據(jù)的名字經(jīng)子模式翻譯解釋后與概念模式中的命名對應(yīng),稱為模式到程序的邏輯映像,模式定義的數(shù)據(jù)結(jié)構(gòu)通過存儲模式并經(jīng)操作系統(tǒng)解釋與實(shí)際操作數(shù)據(jù)的存儲相對應(yīng),稱為物理映像。

數(shù)據(jù)庫系統(tǒng)模式到程序的邏輯映像使程序與數(shù)據(jù)邏輯結(jié)構(gòu)定義以及數(shù)據(jù)盡可能分離,當(dāng)程序使用數(shù)據(jù)的要求發(fā)生變化時(shí)不一定要求改變數(shù)據(jù)的全局結(jié)構(gòu),反過來數(shù)據(jù)結(jié)構(gòu)在一定范圍內(nèi)變化時(shí),通過子模式調(diào)節(jié),不一定要求改變程序,稱之為數(shù)據(jù)的邏輯獨(dú)立性。

數(shù)據(jù)庫系統(tǒng)當(dāng)數(shù)據(jù)實(shí)際存儲位置等物理存儲結(jié)構(gòu)改變時(shí),可由存儲模式適應(yīng)這種變化,而不要求改變數(shù)據(jù)的全局結(jié)構(gòu),更不要求修改程序,稱之為數(shù)據(jù)的物理獨(dú)立。數(shù)據(jù)的邏輯獨(dú)立與數(shù)據(jù)的物理獨(dú)立合稱為數(shù)據(jù)獨(dú)立。數(shù)據(jù)獨(dú)立是數(shù)據(jù)共享的必備條件。而數(shù)據(jù)共享又為減少數(shù)據(jù)冗余、保證數(shù)據(jù)的一致性提供了條件。

數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)還應(yīng)有統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性控制和數(shù)據(jù)的完整性控制。數(shù)據(jù)的安全性指不同用戶各自在一定權(quán)限范圍內(nèi)控制使用數(shù)據(jù)。其目的是防止數(shù)據(jù)遭到人為破壞或泄密。數(shù)據(jù)的完整性指數(shù)據(jù)的正確性、有效性和相容性。數(shù)據(jù)的完整性控制指在數(shù)據(jù)庫的使用過程中,防止錯(cuò)誤或不恰當(dāng)?shù)臄?shù)據(jù)進(jìn)入數(shù)據(jù)庫。

數(shù)據(jù)庫系統(tǒng)有效性是指數(shù)據(jù)的合法性。數(shù)據(jù):現(xiàn)實(shí)世界中實(shí)際存在的客觀事物、概念或事件的反映和抽象。實(shí)體:現(xiàn)實(shí)世界中客觀存在的可標(biāo)識的事物、概念或事件。屬性:可以描述與標(biāo)識實(shí)體的不同的特性。屬性值:用具體的數(shù)據(jù)來描述屬性。記錄:對應(yīng)一個(gè)實(shí)體的所有屬性值的集合。

數(shù)據(jù)庫系統(tǒng)實(shí)體集:具有相同屬性描述的實(shí)體的集合。實(shí)體型:一個(gè)實(shí)體集的屬性名的集合。關(guān)鍵字(主碼):某一個(gè)或某幾個(gè)屬性可以唯一區(qū)別一個(gè)實(shí)體。實(shí)體完整性:是否存在關(guān)鍵字、關(guān)鍵字在所有數(shù)據(jù)中是否能唯一標(biāo)識一條記錄。常作為數(shù)據(jù)有效的標(biāo)準(zhǔn)之一。

數(shù)據(jù)庫系統(tǒng)相容性是指表示同一個(gè)事實(shí)的兩個(gè)數(shù)據(jù)應(yīng)當(dāng)相同。在不同實(shí)體集之間有時(shí)有特定的聯(lián)系。在關(guān)系數(shù)據(jù)庫中,為了實(shí)現(xiàn)表與表之間的聯(lián)系,有時(shí)需將一個(gè)表的主碼作為數(shù)據(jù)之間聯(lián)系的紐帶放到另一個(gè)表中,這些在另外一個(gè)表中起聯(lián)系作用的屬性稱為外關(guān)鍵字(外碼)。通過外碼實(shí)現(xiàn)關(guān)系之間的約束稱為參照完整性。

數(shù)據(jù)庫系統(tǒng)正確性是指數(shù)據(jù)應(yīng)當(dāng)客觀真實(shí)地表現(xiàn)周圍事物。每個(gè)屬性的數(shù)據(jù)在實(shí)際生活中常具有一定范圍,屬性的取值范圍稱作域。數(shù)據(jù)應(yīng)當(dāng)滿足所規(guī)定的有效范圍。數(shù)據(jù)庫技術(shù)可識別一個(gè)數(shù)據(jù)是否在一定范圍內(nèi),在限定范圍內(nèi)的數(shù)據(jù)被認(rèn)為是正確的,不在限定范圍內(nèi)的數(shù)據(jù)輸入則是錯(cuò)誤的。R

數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫管理系統(tǒng)(DBMS)DataBaseManagementSystem:DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成部分。任何數(shù)據(jù)操作,包括數(shù)據(jù)庫定義、數(shù)據(jù)查詢、數(shù)據(jù)維護(hù)、數(shù)據(jù)庫運(yùn)行控制等都是在DBMS統(tǒng)一管理下進(jìn)行的。DBMS是用戶與數(shù)據(jù)庫的接口,應(yīng)用程序只有通過DBMS才能和數(shù)據(jù)庫打交道。

數(shù)據(jù)庫管理系統(tǒng)(DBMS)DBMS的功能主要包括:(1)數(shù)據(jù)定義和映射(2)數(shù)據(jù)操縱(3)數(shù)據(jù)庫運(yùn)行控制(4)數(shù)據(jù)庫的建立和維護(hù)(5)數(shù)據(jù)組織、存儲和管理(6)數(shù)據(jù)通信接口

數(shù)據(jù)庫管理系統(tǒng)(DBMS)DBMS由4部分組成:(1)數(shù)據(jù)定義語言及其翻譯處理程序(2)數(shù)據(jù)操縱語言,機(jī)器編譯(或解釋)程序(3)數(shù)據(jù)庫運(yùn)行控制程序

(4)實(shí)用程序傳統(tǒng)的數(shù)據(jù)庫有三類:層次數(shù)據(jù)庫、網(wǎng)狀數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫。它們分別采用樹、圖和線性表三種不同數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)及存儲結(jié)構(gòu)【例1.3】一個(gè)學(xué)校有許多系:電系、機(jī)系、化工系……,每個(gè)系通過系代碼,系名,系地址,系電話,系專業(yè)設(shè)置,……等數(shù)據(jù)來描述。每個(gè)系下轄多個(gè)教研室。例如電系下轄計(jì)算機(jī),電子信息,自動(dòng)控制等教研室;機(jī)系下轄機(jī)械制造,質(zhì)檢,制圖等教研室;化工系下轄化工材料,有機(jī)化工等教研室。每個(gè)教研室由室代碼,室名,室電話等數(shù)據(jù)描述。每個(gè)教研室負(fù)責(zé)管理老師,學(xué)生。鏈表式數(shù)據(jù)結(jié)構(gòu)可以使用鏈表將所有數(shù)據(jù)如圖1.6連接進(jìn)行存儲,其中每個(gè)框表示一個(gè)實(shí)體型,包括各有關(guān)數(shù)據(jù)項(xiàng)。圖1.6鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)鏈表式數(shù)據(jù)結(jié)構(gòu)這類結(jié)構(gòu)可以實(shí)現(xiàn)從頭開始循鏈表查詢以求解上述問題,層次數(shù)據(jù)庫就是如此組織數(shù)據(jù)的.

這種結(jié)構(gòu)形式,查詢只能從頭順著鏈向后走,因此要回答某老師是屬哪個(gè)系及哪個(gè)教研室這類問題比較困難,數(shù)據(jù)維護(hù)操作也比較麻煩。

在圖1.6中一個(gè)系連同其所有教研室、教師和學(xué)生等子孫成員數(shù)據(jù)稱一條記錄,這些記錄是不等長的,因而存儲處理也較困難。鏈表式數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)庫采用線性表形式組織數(shù)據(jù),如上述同樣問題,它采用系、教研室、教師、學(xué)生等四個(gè)線性表來組織有關(guān)數(shù)據(jù),如表1.3、表1.4、表1.5、表1.6所示。關(guān)系數(shù)據(jù)庫結(jié)構(gòu)關(guān)系數(shù)據(jù)庫結(jié)構(gòu)表1.3系部數(shù)據(jù)表

關(guān)系數(shù)據(jù)庫結(jié)構(gòu)表1.4教研室數(shù)據(jù)表

關(guān)系數(shù)據(jù)庫結(jié)構(gòu)表1.5老師數(shù)據(jù)表

關(guān)系數(shù)據(jù)庫結(jié)構(gòu)表1.6學(xué)生數(shù)據(jù)表

關(guān)系數(shù)據(jù)庫采用的每一表稱為一個(gè)關(guān)系表的每一行稱為一條記錄,代表一個(gè)實(shí)體

每一列稱為字段或數(shù)據(jù)項(xiàng),代表實(shí)體一個(gè)屬性。關(guān)系數(shù)據(jù)庫結(jié)構(gòu)在學(xué)生的學(xué)籍與成績管理系統(tǒng)中,涉及關(guān)于學(xué)生與課程關(guān)系的許多問題,如某個(gè)學(xué)生學(xué)習(xí)了哪些課程,各自成績等。學(xué)生到課程之間關(guān)聯(lián)關(guān)系如下圖所示:關(guān)系數(shù)據(jù)庫結(jié)構(gòu)如果進(jìn)一步要問某門課程有哪些學(xué)生學(xué)及其成績,就需建立反向的課程到學(xué)生之間關(guān)聯(lián)關(guān)系,如圖1.8所示。關(guān)系數(shù)據(jù)庫結(jié)構(gòu)采用線性表結(jié)構(gòu)解決上述問題,可在前面所舉各表基礎(chǔ)上增加課程表包括課程號,課程名,開課單位等。結(jié)構(gòu)如表1.7所示:關(guān)系數(shù)據(jù)庫結(jié)構(gòu)再設(shè)計(jì)一個(gè)聯(lián)系表,如表1.8所示的成績表:關(guān)系數(shù)據(jù)庫結(jié)構(gòu)如此,便可以回答許多關(guān)于學(xué)生與課程關(guān)系的問題,例如要查找學(xué)生A1學(xué)習(xí)了哪些課程及其成績:關(guān)系數(shù)據(jù)庫結(jié)構(gòu)對不同應(yīng)用問題可能需要采用不同的數(shù)據(jù)結(jié)構(gòu)和存儲結(jié)構(gòu)來組織數(shù)據(jù)。采用鏈表結(jié)構(gòu)優(yōu)點(diǎn)是效率高,缺點(diǎn)是結(jié)構(gòu)較復(fù)雜,維護(hù)不方便,操作缺少靈活性。采用線性表結(jié)構(gòu)并以順序文件形式存放,結(jié)構(gòu)較簡單,數(shù)據(jù)維護(hù)容易,容易實(shí)施,有很強(qiáng)的適應(yīng)性和靈活性,因而成為目前采用的主要形式。關(guān)系數(shù)據(jù)庫結(jié)構(gòu)數(shù)據(jù)庫采用索引文件組織,目的在于提高檢索效率。一、索引文件用戶檢索要求總是針對某一個(gè)屬性或某幾個(gè)屬性進(jìn)行。稱查找所針對的屬性或?qū)傩越M為查找字。索引文件由索引項(xiàng)構(gòu)成,具有唯一性的索引文件的索引項(xiàng)由關(guān)鍵字值和指針組成,結(jié)構(gòu)為:(關(guān)鍵字值,指針)。而不具有唯一性的索引文件的索引項(xiàng)由查找字值和指針組成,結(jié)構(gòu)為:(查找字值,指針)。索引文件組織由索引項(xiàng)構(gòu)成且按查找字排序的文件稱索引文件。對每條記錄生成一個(gè)索引項(xiàng)的索引文件又稱稠密索引。如果內(nèi)外存交換數(shù)據(jù)的單位為塊,又一個(gè)索引文件的大小大于塊的大小,不能一次將索引文件調(diào)入內(nèi)存,可再建立高一層索引:將原索引文件分段,取每段最末一個(gè)索引項(xiàng)的關(guān)鍵字值及其在索引文件中的地址指針構(gòu)成該級索引項(xiàng),這樣構(gòu)成的索引文件稱稀疏索引。索引文件二、非關(guān)鍵字索引文件對于查找的內(nèi)容會有許

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論