




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、9第1章 數(shù)據(jù)庫系統(tǒng)基礎(chǔ)知識(shí) 第1章 數(shù)據(jù)庫系統(tǒng)基礎(chǔ)知識(shí)1.1數(shù)據(jù)庫概述1.1.1 數(shù)據(jù)、信息和數(shù)據(jù)庫1. 數(shù)據(jù)數(shù)據(jù)(Data)在一般意義上被認(rèn)為是對(duì)客觀事物特征所進(jìn)行的一種抽象化、符號(hào)化表示。例如,另外,數(shù)據(jù)可以有不同的形式。例如,出生日期可以表示為“1988.6.28”、“06/28/88”等形式。需要明確的是我們這里所指數(shù)據(jù)的概念,比以往在科學(xué)計(jì)算領(lǐng)域中涉及的數(shù)據(jù)已大大地拓寬了。這里的數(shù)據(jù)不僅包括數(shù)字、字母、漢字及其他特殊字符組成的文本形式的數(shù)據(jù),而且還包括圖形、圖像、聲音等多媒體數(shù)據(jù)。總之,凡是能夠被計(jì)算機(jī)處理的對(duì)象都稱為數(shù)據(jù)。2. 信息信息(Information)通常被認(rèn)為是有一定
2、含義的、經(jīng)過加工處理的、對(duì)決策有價(jià)值的數(shù)據(jù)。通常情況下,數(shù)據(jù)與信息之間的關(guān)系可以表示為: 信息 數(shù)據(jù) 處理其中,處理是指將數(shù)據(jù)轉(zhuǎn)換成為信息的過程,包括數(shù)據(jù)的收集、存儲(chǔ)、加工、排序、檢索等一系列活動(dòng)。數(shù)據(jù)處理的目的是從大量的現(xiàn)有數(shù)據(jù)中,提取對(duì)人們有用的信息,作為決策的依據(jù)??梢?,信息與數(shù)據(jù)是密切相關(guān)的,我們可以總結(jié)為:l 數(shù)據(jù)是信息的載體,它表示了信息;l 信息是數(shù)據(jù)的內(nèi)涵,即數(shù)據(jù)的語義解釋。信息是有價(jià)值的,其價(jià)值取決于它的準(zhǔn)確性、及時(shí)性、完整性和可靠性。為了提高信息的價(jià)值,就必須用科學(xué)的方法來管理信息,這種方法就是數(shù)據(jù)庫技術(shù)。3. 數(shù)據(jù)庫數(shù)據(jù)庫(DataBase,簡(jiǎn)稱DB)是指存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)
3、設(shè)備上、結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合。請(qǐng)注意,這些數(shù)據(jù)是以二進(jìn)制形式存儲(chǔ)在磁盤、光盤等存儲(chǔ)介質(zhì)上的。那么,它們是如何存儲(chǔ)的呢?,為了便于檢索和使用數(shù)據(jù),數(shù)據(jù)庫中的大量數(shù)據(jù)也必須按照一定的規(guī)則(即數(shù)據(jù)模型)來存放,這就是所說的“結(jié)構(gòu)化”。此外,存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)彼此之間是有一定聯(lián)系的,而不是毫不相干的。可見,數(shù)據(jù)庫不僅包括描述事物的數(shù)據(jù),而且還要詳細(xì)準(zhǔn)確反映事物之間的聯(lián)系。1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展隨著計(jì)算機(jī)硬件和軟件技術(shù)的不斷發(fā)展,計(jì)算機(jī)數(shù)據(jù)管理技術(shù)也隨之不斷的更新,其發(fā)展歷程大致經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個(gè)發(fā)展階段。1. 人工管理階段20世紀(jì)50年代中期以前,計(jì)算機(jī)主要用于科學(xué)計(jì)
4、算,這個(gè)時(shí)期還沒有專門用于管理數(shù)據(jù)的軟件,數(shù)據(jù)與計(jì)算或處理它們的程序放在一起。也就是說,信息處理主要是面向科學(xué)計(jì)算,數(shù)據(jù)不需要長(zhǎng)期保存。當(dāng)人們需要使用計(jì)算機(jī)處理某一課題時(shí),就臨時(shí)將有關(guān)數(shù)據(jù)輸入內(nèi)存。待計(jì)算機(jī)處理完畢后直接輸出處理結(jié)果,并釋放相應(yīng)內(nèi)存空間,這是其特點(diǎn)一。特點(diǎn)二,數(shù)據(jù)處理過程中,信息系統(tǒng)處理的數(shù)據(jù)需要在編寫的程序中加以描述及定義。即程序中不僅要編寫對(duì)數(shù)據(jù)處理的具體要求,還要花費(fèi)大量篇幅對(duì)使用數(shù)據(jù)的結(jié)構(gòu)、存取方法和輸入輸出方式等進(jìn)行詳細(xì)敘述。因此,此時(shí)編寫應(yīng)用程序不僅要書寫操作指令,還要書寫大量的數(shù)據(jù)說明性信息。這樣一來,不僅使編寫應(yīng)用程序十分繁瑣,而且一旦信息系統(tǒng)中使用的數(shù)據(jù),其類
5、型、格式、數(shù)量或輸入輸出方式等改變了,程序也必須作相應(yīng)的修改。這種現(xiàn)象我們稱之為數(shù)據(jù)與程序不具有獨(dú)立性,這一特點(diǎn)的另一個(gè)后果直接導(dǎo)致了應(yīng)用程序不具有普遍性和通用性。特點(diǎn)三,數(shù)據(jù)是面向應(yīng)用的,不具有共享性。也就是說,每個(gè)應(yīng)用程序中都只能使用自己定義的數(shù)據(jù),即便是某些程序使用相同的數(shù)據(jù),也必須在各自的應(yīng)用程序中重新定義。因此,各程序之間存在著大量的重復(fù)數(shù)據(jù),稱之為數(shù)據(jù)冗余。總而言之,在人工管理階段,數(shù)據(jù)處理的特點(diǎn)歸納為:數(shù)據(jù)不保存、不能共享、冗余度極大;數(shù)據(jù)與程序捆綁在一起,數(shù)據(jù)不具有獨(dú)立性。這些特征可以通過下面的圖示和應(yīng)用實(shí)例加以說明。應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n圖1-1 應(yīng)
6、用程序與數(shù)據(jù)之間的關(guān)系【例1-1】 人2. 文件系統(tǒng)階段20世紀(jì)50年代后期至60年代,計(jì)算機(jī)開始大量地用于數(shù)據(jù)處理工作。在軟件方面,出現(xiàn)了高級(jí)語言和操作系統(tǒng)。操作系統(tǒng)中的文件系統(tǒng)是專門管理存放在外存中文件的軟件。此時(shí),程序和數(shù)據(jù)可以分別存儲(chǔ)為程序文件和數(shù)據(jù)文件,因而程序與數(shù)據(jù)有了一定的獨(dú)立性。常用的高級(jí)語言FORTRAN、BASIC、C等都支持使用數(shù)據(jù)文件。這個(gè)階段稱為文件系統(tǒng)階段。這一階段最主要的特點(diǎn)是,計(jì)算機(jī)不僅用于科學(xué)計(jì)算,也開始應(yīng)用到數(shù)據(jù)管理領(lǐng)域,并且,計(jì)算機(jī)的應(yīng)用迅速轉(zhuǎn)向信息管理。此時(shí)管理的數(shù)據(jù)以文件形式長(zhǎng)期保存在外存的數(shù)據(jù)文件中,并通過對(duì)數(shù)據(jù)文件的存取實(shí)現(xiàn)對(duì)信息的查詢、修改、插入
7、和刪除等常見的數(shù)據(jù)操作。雖然這個(gè)時(shí)期出現(xiàn)了操作系統(tǒng),而且操作系統(tǒng)中的文件系統(tǒng)有專門負(fù)責(zé)管理數(shù)據(jù)的軟件,并且可以提供有關(guān)數(shù)據(jù)的存取、查詢以及維護(hù)功能,但是,數(shù)據(jù)文件仍然是面向應(yīng)用的,文件之間缺乏聯(lián)系,共享性差。換句話說,雖然應(yīng)用程序中不用再編寫大量的數(shù)據(jù)結(jié)構(gòu)、存儲(chǔ)方式等相關(guān)內(nèi)容的說明,只要確定使用的是哪一個(gè)具體文件即可。但即使不同的應(yīng)用程序需要使用相同的數(shù)據(jù),這些數(shù)據(jù)也必須存放在各自的專用文件中,不能共享數(shù)據(jù)文件。這種處理方式可以用下面的圖來描述: 應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)文件1數(shù)據(jù)文件2數(shù)據(jù)文件n操作系統(tǒng)圖1-2 應(yīng)用程序與數(shù)據(jù)文件之間的關(guān)系文件系統(tǒng)階段的數(shù)據(jù)管理方式可以用圖1-5概
8、括總結(jié)。其特點(diǎn)歸納為:數(shù)據(jù)長(zhǎng)期保存到文件中;程序與數(shù)據(jù)分離,數(shù)據(jù)程序有一定的獨(dú)立性;實(shí)現(xiàn)了以文件為單位的數(shù)據(jù)共享、數(shù)據(jù)文件1、數(shù)據(jù)文件2、數(shù)據(jù)文件n中還會(huì)含有一定數(shù)量的重復(fù)數(shù)據(jù)。另外,也可以與后面的圖1-2(數(shù)據(jù)庫系統(tǒng)中應(yīng)用程序與數(shù)據(jù)間的關(guān)系)進(jìn)行對(duì)比,就會(huì)發(fā)現(xiàn)兩者之間存在很大差距。由此可見,文件系統(tǒng)階段對(duì)數(shù)據(jù)的管理雖然有了長(zhǎng)足的進(jìn)步,但是一些根本性問題并沒有得到解決。例如,數(shù)據(jù)冗余度大,同一數(shù)據(jù)項(xiàng)在多個(gè)文件中重復(fù)出現(xiàn);缺乏數(shù)據(jù)獨(dú)立性,數(shù)據(jù)文件只是為了滿足專門需要而設(shè)計(jì)的,只能供某一特定應(yīng)用程序使用,數(shù)據(jù)和程序相互依賴;數(shù)據(jù)無集中管理,各個(gè)文件沒有統(tǒng)一管理機(jī)制,無法相互聯(lián)系,其安全性與完整性得
9、不到保證。諸如此類的問題造成了文件系統(tǒng)管理的低效率、高成本,這就促使人們研究新的數(shù)據(jù)管理技術(shù)。圖1-3 傳統(tǒng)數(shù)據(jù)管理方式3. 數(shù)據(jù)庫系統(tǒng)階段從20世紀(jì)60年代后期開始,隨著信息量的迅速增長(zhǎng),需要計(jì)算機(jī)管理的數(shù)據(jù)量也在急劇增長(zhǎng),文件系統(tǒng)采用的一次存取一個(gè)記錄的訪問方式,以及不同文件之間缺乏相互聯(lián)系的存儲(chǔ)方式,越來越不能適應(yīng)管理大量數(shù)據(jù)的需要。同時(shí),人們對(duì)數(shù)據(jù)共享的需求日益增強(qiáng)。計(jì)算機(jī)技術(shù)的迅猛發(fā)展,特別是大容量磁盤開始使用,在這種社會(huì)需求和技術(shù)成熟的條件下,數(shù)據(jù)庫技術(shù)應(yīng)運(yùn)而生,使得數(shù)據(jù)管理技術(shù)進(jìn)入嶄新的數(shù)據(jù)庫系統(tǒng)階段。其管理方式如下所示:應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)庫管理系統(tǒng)DBMS數(shù)據(jù)庫
10、圖1-4 應(yīng)用程序與數(shù)據(jù)庫之間的關(guān)系數(shù)據(jù)庫系統(tǒng)克服了文件系統(tǒng)的種種弊端,它能夠有效地儲(chǔ)存和管理大量的數(shù)據(jù),使數(shù)據(jù)得到充分共享,數(shù)據(jù)冗余大大減少,數(shù)據(jù)與應(yīng)用程序彼此獨(dú)立,并提供數(shù)據(jù)的安全性和完整性統(tǒng)一機(jī)制。數(shù)據(jù)的安全性是指防止數(shù)據(jù)被竊取和失密,數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性和一致性。用戶可以以命令方式或程序方式對(duì)數(shù)據(jù)庫進(jìn)行操作,方便而高效。數(shù)據(jù)庫系統(tǒng)的優(yōu)越性使其得到迅速發(fā)展和廣泛應(yīng)用。從大型機(jī)到微型機(jī),從UNIX到Windows,推出了許多成熟的數(shù)據(jù)庫管理軟件,如ORACLE、SYBASE、Visual FoxPro和Access等等。當(dāng)今,數(shù)據(jù)庫系統(tǒng)已經(jīng)成為計(jì)算機(jī)數(shù)據(jù)管理的主流方式,而由文件系統(tǒng)
11、支持的數(shù)據(jù)文件,僅在數(shù)據(jù)量較小的場(chǎng)合下使用。數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)處理的特點(diǎn)歸納為:數(shù)據(jù)冗余度得到合理的控制;數(shù)據(jù)共享性高;數(shù)據(jù)具有很高的獨(dú)立性;數(shù)據(jù)經(jīng)過結(jié)構(gòu)化處理,具有完備的數(shù)據(jù)控制功能等。更詳細(xì)的內(nèi)容參見1.2.2。計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的迅速發(fā)展為數(shù)據(jù)庫提供了更好的運(yùn)行環(huán)境,使數(shù)據(jù)庫系統(tǒng)從集中式發(fā)展到分布式。所謂“集中”和“分布”是對(duì)數(shù)據(jù)存放地點(diǎn)而言的。分布式數(shù)據(jù)庫把數(shù)據(jù)分散存儲(chǔ)在網(wǎng)絡(luò)的多個(gè)結(jié)點(diǎn)上,各個(gè)結(jié)點(diǎn)上的計(jì)算機(jī)可以利用網(wǎng)絡(luò)通信功能訪問其他結(jié)點(diǎn)上的數(shù)據(jù)庫資源。值得一提的是,近年來,智能數(shù)據(jù)庫的研究取得了可喜的進(jìn)展。傳統(tǒng)數(shù)據(jù)庫存儲(chǔ)的數(shù)據(jù)都是已知的事實(shí),智能數(shù)據(jù)庫除了存儲(chǔ)已知的事實(shí)外,還能存儲(chǔ)用于邏
12、輯推理的規(guī)則,故又稱為“基于規(guī)則的數(shù)據(jù)庫”(rule-based database)。演繹數(shù)據(jù)庫、專家數(shù)據(jù)庫和知識(shí)庫系統(tǒng)等都屬于智能數(shù)據(jù)庫的范疇。1.2數(shù)據(jù)庫系統(tǒng)的組成及特點(diǎn)1.2.1數(shù)據(jù)庫系統(tǒng)的組成通常把引進(jìn)了數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)(DataBase System,簡(jiǎn)稱DBS)。數(shù)據(jù)庫系統(tǒng)主要由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、相應(yīng)的計(jì)算機(jī)軟硬件、數(shù)據(jù)庫管理員及其他人員幾部分組成。1. 計(jì)算機(jī)硬件系統(tǒng) 需要有容量足夠大的內(nèi)存和外存,用來運(yùn)行操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)核心模塊和應(yīng)用程序,以及存儲(chǔ)數(shù)據(jù)庫。2. 數(shù)據(jù)庫集合 數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)庫集合(DataBase,簡(jiǎn)稱DB)是存儲(chǔ)在計(jì)算機(jī)外存
13、上的若各個(gè)設(shè)計(jì)合理、滿足應(yīng)用需求的數(shù)據(jù)庫。3. 數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,簡(jiǎn)稱DBMS)這是運(yùn)行在操作系統(tǒng)之上的系統(tǒng)軟件,是數(shù)據(jù)庫系統(tǒng)的核心。它不僅可以幫助用戶創(chuàng)建、維護(hù)和使用數(shù)據(jù)庫,而且數(shù)據(jù)庫系統(tǒng)中的各種功能和特性都是由DBMS提供的。流行的DBMS有Sybase、Oracel、Informix、Visual FoxPro、Access等。前面使用的SELECT查詢語句就是在Access環(huán)境中實(shí)現(xiàn)的。4. 相關(guān)的軟件系統(tǒng)包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用開發(fā)工具軟件和計(jì)算機(jī)網(wǎng)絡(luò)軟件等。較大型的數(shù)據(jù)庫系統(tǒng),通常是建立在多用戶系統(tǒng)或網(wǎng)絡(luò)環(huán)境中的。5. 數(shù)據(jù)庫
14、管理員及其他人員 在大型數(shù)據(jù)庫系統(tǒng)中,需要有專人負(fù)責(zé)數(shù)據(jù)庫系統(tǒng)的建立、維護(hù)和管理工作,承擔(dān)該任務(wù)的人員稱為數(shù)據(jù)庫管理員。其他人員包括系統(tǒng)分析和設(shè)計(jì)人員、應(yīng)用程序員以及用戶。用戶又可分為兩類:專業(yè)用戶和最終用戶。專業(yè)用戶側(cè)重于設(shè)計(jì)數(shù)據(jù)庫、開發(fā)應(yīng)用系統(tǒng)程序,為最終用戶提供友好的用戶界面。最終用戶側(cè)重于對(duì)數(shù)據(jù)庫的使用。1.2.2 數(shù)據(jù)庫系統(tǒng)的特點(diǎn)數(shù)據(jù)庫技術(shù)是在文件系統(tǒng)的基礎(chǔ)上發(fā)展起來的技術(shù)。數(shù)據(jù)庫系統(tǒng)克服了文件系統(tǒng)的缺陷,它不僅可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的集中統(tǒng)一管理,而且還可以使數(shù)據(jù)的存儲(chǔ)和維護(hù)不受任何用戶的影響,為用戶提供了對(duì)數(shù)據(jù)更高級(jí)、更有效的管理手段。數(shù)據(jù)庫系統(tǒng)的主要特點(diǎn)是:數(shù)據(jù)結(jié)構(gòu)化、數(shù)據(jù)共享、數(shù)據(jù)獨(dú)
15、立性和統(tǒng)一的數(shù)據(jù)控制功能。1. 數(shù)據(jù)冗余度小、數(shù)據(jù)共享性高數(shù)據(jù)共享是指數(shù)據(jù)庫中的數(shù)據(jù)可以被多個(gè)用戶、多種應(yīng)用訪問,這是數(shù)據(jù)庫系統(tǒng)最重要的特點(diǎn)。由于數(shù)據(jù)庫中的數(shù)據(jù)被集中管理、統(tǒng)一組織、定義和存儲(chǔ),可以避免不必要的冗余,因而也避免了數(shù)據(jù)的不一致性。與此同時(shí),這種處理模式便于數(shù)據(jù)的靈活應(yīng)用,可以取整體數(shù)據(jù)的各種合理子集用于不同的應(yīng)用系統(tǒng)。2. 具有較高的數(shù)據(jù)獨(dú)立性在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)與應(yīng)用程序之間的相互依賴大大減小,數(shù)據(jù)的修改對(duì)程序不會(huì)產(chǎn)生大的影響或沒有影響,數(shù)據(jù)具有較高的獨(dú)立性。這一特點(diǎn)通過對(duì)圖1.3和圖1.5的對(duì)比,很清晰地表示出來。從圖1.5中可以看出,無論應(yīng)用程序要對(duì)數(shù)據(jù)(數(shù)據(jù)保存在數(shù)據(jù)庫D
16、B中)進(jìn)行何種操作,都是通過DBMS(數(shù)據(jù)庫管理系統(tǒng))來完成的。也就是說,由于DBMS提供了數(shù)據(jù)定義功能,以及數(shù)據(jù)管理功能,程序中所需要的數(shù)據(jù)定義、查詢、刪除、插入、修改等操作,都是由DBMS完成的,應(yīng)用程序中不用再包含這方面的內(nèi)容。因此,當(dāng)數(shù)據(jù)的結(jié)構(gòu)(無論是物理結(jié)構(gòu)即存儲(chǔ)方式,還是邏輯界結(jié)構(gòu)即數(shù)據(jù)項(xiàng)之間的關(guān)系)發(fā)生變化時(shí),應(yīng)用程序都是不變的。這樣一來,數(shù)據(jù)和程序相互之間的依賴性很低、獨(dú)立性很高,這種特性就是我們所說的數(shù)據(jù)獨(dú)立性高。數(shù)據(jù)獨(dú)立性高給應(yīng)用程序的開發(fā)、維護(hù)、擴(kuò)充帶來極大的方便,從而大大減輕了程序設(shè)計(jì)的負(fù)擔(dān)。3. 數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化,數(shù)據(jù)模型,規(guī)則 三個(gè)概念相輔相成數(shù)據(jù)庫中的數(shù)據(jù)是有
17、結(jié)構(gòu)的,這種是由什么表現(xiàn)出來的是由數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型表現(xiàn)出來的。數(shù)據(jù)庫系統(tǒng)不僅可以表示事物內(nèi)部各數(shù)據(jù)項(xiàng)之間的聯(lián)系,而且可以表示事物與事物之間的聯(lián)系。這一特點(diǎn)決定了利用數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)管理的設(shè)計(jì)方法,即系統(tǒng)設(shè)計(jì)時(shí)應(yīng)該先準(zhǔn)確地規(guī)劃出數(shù)據(jù)庫中數(shù)據(jù)的結(jié)構(gòu)(數(shù)據(jù)模型),然后再設(shè)計(jì)具體的處理功能程序。數(shù)據(jù)模型的相關(guān)內(nèi)容后面會(huì)更詳細(xì)介紹。1.4 基本數(shù)據(jù)模型1.4.1 基本數(shù)據(jù)模型記住這幾個(gè)名字! 在一個(gè)數(shù)據(jù)庫系統(tǒng)中,為了反映事物本身及事物之間的各種聯(lián)系,數(shù)據(jù)庫中的數(shù)據(jù)必須具有一定的結(jié)構(gòu),這種結(jié)構(gòu)用數(shù)據(jù)模型來表示。任何一個(gè)數(shù)據(jù)庫管理系統(tǒng)都是基于某種數(shù)據(jù)模型的。基本的數(shù)據(jù)模型有3種:層次模型、網(wǎng)狀模
18、型和關(guān)系模型。1. 層次模型 利用樹型結(jié)構(gòu)表示實(shí)體及其之間聯(lián)系的模型稱為層次模型。圖1-6就是一個(gè)層次模型的實(shí)例,它體現(xiàn)出實(shí)體之間一對(duì)多的聯(lián)系。2. 網(wǎng)狀模型 利用網(wǎng)狀結(jié)構(gòu)表示實(shí)體及實(shí)體之間聯(lián)系的模型稱為網(wǎng)狀模型。該模型體現(xiàn)多對(duì)多的聯(lián)系,具有很大的靈活性大學(xué)專業(yè)學(xué)院1專業(yè)學(xué)院2專業(yè)學(xué)院n系所1系所m圖1-5 層次結(jié)構(gòu)數(shù)據(jù)模型系所教師學(xué)生課程歸屬歸屬開設(shè)講授選修:師從圖1-6 網(wǎng)狀結(jié)構(gòu)數(shù)據(jù)模型在層次模型和網(wǎng)狀模型中,它的主要數(shù)據(jù)結(jié)構(gòu)是樹結(jié)構(gòu)和圖結(jié)構(gòu)再次印證數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)模型之間的關(guān)系。這些概念對(duì)于沒有受過計(jì)算機(jī)訓(xùn)練的人來說,理解起來要困難一些。即使對(duì)用戶進(jìn)行專門培訓(xùn),他們也很難掌握和運(yùn)用這兩種結(jié)
19、構(gòu),所以這些模型的軟件開發(fā)、生產(chǎn)率一直是偏低的?;谏鲜鲈?,才促使人們開始探討更加易于使用和操控的新數(shù)據(jù)模型。人們發(fā)現(xiàn),在現(xiàn)實(shí)生活中,表達(dá)數(shù)據(jù)之間關(guān)聯(lián)性的最常用、最直觀的方法莫過于制成各種各樣的表格,而且這種表格人們不需要專門訓(xùn)練就能看懂。關(guān)系模型就是在這樣的背景下提出來的。3. 關(guān)系模型(最好) 用二維表結(jié)構(gòu)表示實(shí)體以及實(shí)體之間聯(lián)系的模型稱為關(guān)系模型。關(guān)系模型把各種聯(lián)系都統(tǒng)一描述成一些二維表,即由若干行和若干列組成的表格。每一個(gè)這樣的二維表格就稱為一個(gè)關(guān)系。例如,我們前面使用過的5個(gè)表格,每一個(gè)都對(duì)應(yīng)一個(gè)關(guān)系。對(duì)我們來說,無論是瀏覽還是設(shè)計(jì)一張二維表格都沒有什么困難,可見,關(guān)系模型很容易被
20、用戶所接受。此外,關(guān)系模型有嚴(yán)格的理論基礎(chǔ)(關(guān)系數(shù)學(xué)理論),因此,基于關(guān)系模型的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)成為當(dāng)今最為流行的數(shù)據(jù)庫管理系統(tǒng)。經(jīng)過幾十年的發(fā)展,基于不同數(shù)據(jù)模型的數(shù)據(jù)庫系統(tǒng)經(jīng)歷了第一代層次模型和網(wǎng)狀模型、第二代關(guān)系模型,正在走向面向?qū)ο蟮臄?shù)據(jù)模型等非傳統(tǒng)數(shù)據(jù)模型的第三個(gè)階段。習(xí) 題 1 一、選擇題1. 一個(gè)或多個(gè)相關(guān)聯(lián)的關(guān)系的集合稱為( D )。A) 數(shù)據(jù)庫 B) 數(shù)據(jù)庫系統(tǒng)C) 數(shù)據(jù)庫管理系統(tǒng) D) 數(shù)據(jù)結(jié)構(gòu)2. 數(shù)據(jù)庫系統(tǒng)是由硬件系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、軟件系統(tǒng)、( A ) 、用戶等構(gòu)成的人-機(jī)系統(tǒng)。A) 數(shù)據(jù)庫管理員B) 程序員C) 高級(jí)程序員D) 軟件開發(fā)商 3. ( C
21、 )不是數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。A) 較高的數(shù)據(jù)獨(dú)立性B) 最低的數(shù)據(jù)冗余度C) 數(shù)據(jù)多樣性D) 較好的數(shù)據(jù)完整性 4. 數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有3 種,它們是( B )。A) 網(wǎng)狀、關(guān)系和語義 B) 層次、關(guān)系和網(wǎng)狀C) 環(huán)狀、層次和關(guān)系 D) 關(guān)系、面向?qū)ο蠛蛿?shù)據(jù)5. 數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS和數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是( B )。A) DBMS包括DB和DBSB) DBS包括DB和DBMSC) DB包括DBS和DBMSD) 并列關(guān)系6. 數(shù)據(jù)庫系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行管理的核心是( B )。A) DBB) DBMS C) OS D) DBS7. 數(shù)據(jù)庫系統(tǒng)的核心是( A )。A) 數(shù)據(jù)
22、模型 B) 數(shù)據(jù)庫管理員C) 數(shù)據(jù)庫 D) 數(shù)據(jù)庫管理系統(tǒng)8. 下列關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是( D )。A) 數(shù)據(jù)庫系統(tǒng)只是比文件系統(tǒng)管理的數(shù)據(jù)更多B) 數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的完整性是指數(shù)據(jù)類型完整C) 數(shù)據(jù)庫系統(tǒng)避免了一切數(shù)據(jù)冗余D) 數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余9. DBMS的功能包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)庫運(yùn)行控制和( )。A) 數(shù)據(jù)字典B) 數(shù)據(jù)處理C) 數(shù)據(jù)聯(lián)接D) 數(shù)據(jù)投影10. 負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是( )。A)數(shù)據(jù)定義語言 B) 數(shù)據(jù)管理語言C)數(shù)據(jù)操縱語言 D) 數(shù)據(jù)控制語言11. 數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的主要區(qū)別是( A )。A) 文件系統(tǒng)不能解決數(shù)據(jù)冗余和數(shù)據(jù)
23、獨(dú)立性問題,而數(shù)據(jù)庫系統(tǒng)可解決這些問題B) 文件系統(tǒng)只能管理少量數(shù)據(jù),而數(shù)據(jù)庫系統(tǒng)則能管理大量數(shù)據(jù)C) 文件系統(tǒng)只能管理程序文件,而數(shù)據(jù)庫系統(tǒng)則能管理各種類型的文件D) 文件系統(tǒng)簡(jiǎn)單,而數(shù)據(jù)庫系統(tǒng)復(fù)雜12. 按照數(shù)據(jù)模型分類,Access數(shù)據(jù)庫屬于( D )。A) 層次型 B) 網(wǎng)狀型 C) 關(guān)系型 D) 對(duì)象關(guān)系型 二、填空題1. 把數(shù)據(jù)分散存儲(chǔ)在網(wǎng)絡(luò)的多個(gè)結(jié)點(diǎn)上,各個(gè)結(jié)點(diǎn)上的計(jì)算機(jī)可以利用網(wǎng)絡(luò)通信功能訪問其他結(jié)點(diǎn)上的數(shù)據(jù)庫資源,這種數(shù)據(jù)庫屬于_分布式_數(shù)據(jù)庫。2. 數(shù)據(jù)庫中的數(shù)據(jù)是有結(jié)構(gòu)的,這種結(jié)構(gòu)是由數(shù)據(jù)庫管理系統(tǒng)所支持的_數(shù)據(jù)模型_表現(xiàn)出來的。3. 數(shù)據(jù)庫系統(tǒng)的核心是_數(shù)據(jù)模型_。4.
24、 微機(jī)上使用的數(shù)據(jù)庫管理系統(tǒng)基本上都是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它們提供的數(shù)據(jù)庫語言具有“一體化”的特點(diǎn),即集 、 和數(shù)據(jù)控制語言于一體。5. 數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)模型主要有層次模型、網(wǎng)狀模型和 關(guān)系模型 。 6. 數(shù)據(jù)庫管理系統(tǒng)的主要功能是 、 及控制和管理功能。 版權(quán)所有 - 南開大學(xué)計(jì)算機(jī)教學(xué)部27第5章 數(shù)據(jù)庫和表的創(chuàng)建與維護(hù)第2章 數(shù)據(jù)庫設(shè)計(jì)下面的兩種設(shè)計(jì)的名字注意現(xiàn)在學(xué)到的設(shè)計(jì)都和access無關(guān)2.2概念結(jié)構(gòu)設(shè)計(jì)為了將現(xiàn)實(shí)世界中具體的事物特性抽象、組織成為數(shù)據(jù)庫應(yīng)用系統(tǒng)能夠識(shí)別的數(shù)據(jù)模型,首先要將事物的特性信息結(jié)構(gòu)化,最終設(shè)計(jì)出描述現(xiàn)實(shí)世界的概念模型。歸納后的這種信息結(jié)構(gòu)并不依賴計(jì)算
25、機(jī)系統(tǒng),是事物特性理念上的一種數(shù)據(jù)規(guī)范表示。為了在概念結(jié)構(gòu)設(shè)計(jì)過程中最終產(chǎn)生概念模型,人們常使用的工具或稱方法是E-R方法,即描述概念模型的工具是實(shí)體-聯(lián)系模型(也稱為E-R模型、E-R方法)。2.2.1 實(shí)體 聯(lián)系模型實(shí)體-聯(lián)系模型(Entity Relationship Model)簡(jiǎn)稱為E-R模型,涉及到的基本概念有:1. 實(shí)體(Entity)實(shí)體是指客觀存在、可相互區(qū)分的事物。實(shí)體可以是一個(gè)具體的對(duì)象如人、事、物。例如:一個(gè)職工、一個(gè)學(xué)生、一輛汽車等具體事物都是實(shí)體。實(shí)體也可以是抽象的概念或行動(dòng),如一個(gè)部門、一門課、一個(gè)班級(jí)、老師與系的工作關(guān)系(即某位老師在某系工作)等概念實(shí)體;學(xué)生的
26、一次選課、部門的一次訂貨、一場(chǎng)比賽等也都是實(shí)體。2屬性(Attribute)每個(gè)實(shí)體都具有一組描述自己特征的的數(shù)據(jù)項(xiàng),每一個(gè)數(shù)據(jù)項(xiàng)都代表了實(shí)體一個(gè)特性,我們把實(shí)體所具有的某一特性稱為屬性。例如:3實(shí)體集(Entity Set)性質(zhì)相同的實(shí)體組成的集合稱為實(shí)體集。例如全體學(xué)生就是一個(gè)學(xué)生實(shí)體集,全部開設(shè)的課程可以構(gòu)成課程實(shí)體集,。具體示例如表2-2、表2-3。顯然表2-1、表2-2和表2-3分別表示了三個(gè)不同的實(shí)體集。我們也不難發(fā)現(xiàn)每個(gè)實(shí)體集都有自己特定的結(jié)構(gòu)和特性。需要說明的是,實(shí)體集并不是孤立存在的,實(shí)體集之間有著各種各樣的聯(lián)系,習(xí)4實(shí)體型(Entity Type)簡(jiǎn)單地講實(shí)體型是實(shí)體集的另
27、一種表示。具體來說就是用實(shí)體的名稱和實(shí)體的屬性名稱來表示同類型的實(shí)體,這一表示形式稱為實(shí)體型。具體的表示形式為:實(shí)體名(屬性名1,屬性名2,屬性名n)在數(shù)據(jù)庫系統(tǒng)中實(shí)體型重點(diǎn)表示實(shí)體的屬性特性即實(shí)體的結(jié)構(gòu)特性,實(shí)體集重點(diǎn)表示具體的對(duì)象值。它們都是用來表示具體實(shí)體的。5域(Field)每一個(gè)屬性都有一個(gè)值域,即屬性的取值范圍稱為該屬性的域。例如,學(xué)號(hào)的域?yàn)?位整數(shù),姓名的域?yàn)樽址?,性別的域?yàn)椋?,女)兩個(gè)漢字等等。6碼(Code)如果一個(gè)屬性或若干屬性(屬性組)的值能唯一地識(shí)別實(shí)體集中每個(gè)實(shí)體,就稱該屬性(或?qū)傩越M)為實(shí)體集的碼,也稱為鍵。這里還是要提醒大家,一個(gè)實(shí)體集的碼有可能由該實(shí)體中
28、的若干屬性組成。7聯(lián)系(Relation)。一句話,實(shí)體間的聯(lián)系就是實(shí)體集與實(shí)體集之間的聯(lián)系,這種聯(lián)系共有以下三種:一對(duì)一、一對(duì)多和多對(duì)多。表2-4 成績(jī)1. 一對(duì)一聯(lián)系(1:1)2. 一對(duì)多聯(lián)系(1:n)3. 多對(duì)多聯(lián)系(m:n)2.3關(guān)系模型前面我們講過規(guī)范化的數(shù)據(jù)庫設(shè)計(jì)分為:用戶需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)等階段。概念結(jié)構(gòu)設(shè)計(jì)的最終目標(biāo)是產(chǎn)生概念模型,為邏輯結(jié)構(gòu)設(shè)計(jì)打下良好的基礎(chǔ)。邏輯結(jié)構(gòu)的設(shè)計(jì)過程包括: 將概念模型轉(zhuǎn)換為關(guān)系模型 將得到的關(guān)系模型轉(zhuǎn)為具體數(shù)據(jù)庫管理系統(tǒng)(DBMS)支持的數(shù)據(jù)模型; 對(duì)所得到的數(shù)據(jù)模型進(jìn)行規(guī)范化及結(jié)構(gòu)優(yōu)化處理。由此我們可以看出在,討論
29、邏輯結(jié)構(gòu)設(shè)計(jì)的詳細(xì)過程之前,有必要先來介紹關(guān)系模型以及關(guān)系型數(shù)據(jù)庫的相關(guān)概念。目前,關(guān)系數(shù)據(jù)庫理論日趨成熟,并在微機(jī)數(shù)據(jù)庫系統(tǒng)中得到普遍應(yīng)用。2.3.1 基本概念所謂的關(guān)系模型就是用二維表形式來表示實(shí)體集中的數(shù)據(jù),簡(jiǎn)稱為關(guān)系(Relation)。二維表也是我們?nèi)粘L幚?、分析、統(tǒng)計(jì)數(shù)據(jù)時(shí)常用的手段或工具。在數(shù)據(jù)庫設(shè)計(jì)中一個(gè)二維表對(duì)應(yīng)一個(gè)關(guān)系。例如前面給出的表2-1:1. 元組二維表中的每一行稱為一個(gè)元組。它對(duì)應(yīng)具體的實(shí)體。元組是構(gòu)成關(guān)系的基本要素,即一個(gè)關(guān)系一個(gè)二維表是一個(gè)關(guān)系可不是一個(gè)聯(lián)系是有(什么構(gòu)成的)?若干相同結(jié)構(gòu)的元組組成。2. 屬性二維表中每一列稱為一個(gè)屬性。若干屬性的集合構(gòu)成關(guān)系中
30、的元組。例如在上表中,學(xué)號(hào)、姓名、性別、出生日期等都是屬性名(即二維表的欄目行)。屬性名是變量,它們有不同的類型和寬度,如姓名、性別等存放文字,習(xí)慣上類屬性的數(shù)據(jù)類型便定義為文字型;而年齡、成績(jī)、工資等用于算數(shù)運(yùn)算的屬性其數(shù)據(jù)類型習(xí)慣上定義為數(shù)值型。對(duì)于數(shù)值型屬性,還有小數(shù)位數(shù)等特殊要求的描述。屬性名、數(shù)據(jù)類型、數(shù)據(jù)寬度和小數(shù)位數(shù)等稱為屬性的定義。一條元組中各屬性的具體內(nèi)容稱為屬性值。這些相關(guān)的內(nèi)容請(qǐng)參閱本教材的創(chuàng)建數(shù)據(jù)庫章節(jié)。3. 值域 即屬性的取值范圍。例如,在表2-4(成績(jī)關(guān)系)中,“成績(jī)”屬性的域?yàn)?100。在表2-1(學(xué)生關(guān)系)中,“性別”屬性的域是“男”和“女”。合理的定義屬性的值
31、域,可以提高數(shù)據(jù)表操作的效率。4. 關(guān)鍵字(主碼) 這里的關(guān)鍵字對(duì)應(yīng)概念設(shè)計(jì)中碼的定義:在一個(gè)關(guān)系中有這樣一個(gè)或幾個(gè)字段,它(們)的值可以唯一地標(biāo)識(shí)一條記錄,這樣的字段或字段組稱之為關(guān)鍵字(Key),也稱為主關(guān)鍵字或主碼(Primary Key)。例如,在學(xué)生關(guān)系中,學(xué)號(hào)就是主關(guān)鍵字。除了主關(guān)鍵字或主碼以外,還可以有以下幾種關(guān)鍵字: 候選關(guān)鍵字或候選碼:當(dāng)一個(gè)關(guān)系中有多個(gè)屬性都能唯一表示一個(gè)元組時(shí),選其中的一個(gè)為主碼,其它屬性就可以作為候選碼(Candidate Key)。 外部關(guān)鍵字或外碼:某個(gè)屬性或一組屬性,不是當(dāng)前關(guān)系的主碼,而是另一個(gè)關(guān)系的主碼,那么,這樣的屬性在當(dāng)前關(guān)系中稱為外碼(F
32、oreign Key)。外部關(guān)鍵字在各個(gè)數(shù)據(jù)表即關(guān)系之間架起了一座橋梁,使數(shù)據(jù)庫中的表相互制約、相互依賴,形成一個(gè)整體。5. 關(guān)系模式對(duì)應(yīng)實(shí)體型 關(guān)系模式是對(duì)關(guān)系的一種抽象表示形式(類似實(shí)體型),其格式為: 關(guān)系名(屬性名1,屬性名2,屬性名n)2.3.2 關(guān)系的特點(diǎn) 在關(guān)系模型中,每一個(gè)關(guān)系模式都必須滿足一定的要求,即關(guān)系必須規(guī)范化。規(guī)范化后的關(guān)系應(yīng)具有以下特點(diǎn): 每一個(gè)屬性均不可再分,即表中不能再包含表。例如,手工制表時(shí)經(jīng)常會(huì)繪制復(fù)合表,如表2-8所示的職工工資表:表2-5 職工工資表 職工號(hào) 姓名 應(yīng)發(fā)部分 扣除部分 實(shí)發(fā)金額 工資 津貼 獎(jiǎng)金 水電費(fèi) 公積金 121 王芳 800 30
33、0 200 80 60 1160 122 李健民 900 400 200 90 100 1310 123 張大海 1000 500 400 100 200 1600 這種表格不是二維表,因而不能直接存放到數(shù)據(jù)庫中。如果刪除表中的“應(yīng)發(fā)部分”和“扣除部分”兩個(gè)單元格,變成表2-9的形式,則就成了二維表。表2-6 職工工資表 職工號(hào) 姓名 工資 津貼 獎(jiǎng)金 水電費(fèi) 公積金 實(shí)發(fā)金額 121 王芳 800 300 200 80 60 1160 122 李健民 900 400 200 90 100 1310 123 張大海 1000 500 400 100 200 1600 同一個(gè)關(guān)系中不能有相同的屬
34、性名。 同一個(gè)關(guān)系中不能有內(nèi)容完全一樣的元組。 任意兩行或任意兩列互換位置,不影響關(guān)系的實(shí)際含義。2.3.3 關(guān)系模型的完整性規(guī)則在開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)時(shí),人們非常關(guān)注的一個(gè)問題就是在對(duì)數(shù)據(jù)庫進(jìn)行各種更新操作時(shí),如何保證數(shù)據(jù)庫中的數(shù)據(jù)是有意義的、正確的數(shù)據(jù)。比如說,學(xué)生表中李曉明的學(xué)號(hào)修改為新的值。那么,成績(jī)表(注意觀察這里記載了多條記錄)中的相關(guān)記錄也應(yīng)該自動(dòng)進(jìn)行更新,以便保持?jǐn)?shù)據(jù)的一致性。類似的問題還很多。關(guān)系模型的完整性規(guī)則保證了關(guān)系數(shù)據(jù)庫系統(tǒng)能自動(dòng)控制數(shù)據(jù)的完整及其一致性。關(guān)系模型的完整性規(guī)則包括實(shí)體完整性、參照完整性以及用戶定義完整性。其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整
35、性約束條件,被稱作是關(guān)系的兩個(gè)不變性,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。1. 實(shí)體完整性規(guī)則實(shí)體完整性規(guī)則規(guī)定:一個(gè)關(guān)系中任何記錄的關(guān)鍵不能為空值,并且不能存在重復(fù)的值。還是以學(xué)生關(guān)系為例:需要注意的是,實(shí)體完整性規(guī)則中強(qiáng)調(diào)的關(guān)鍵字,準(zhǔn)確地說應(yīng)該是主屬性。主屬性是指關(guān)鍵字包含的屬性(這樣的屬性被稱為主屬性)。如果一個(gè)關(guān)系的關(guān)鍵字是由一個(gè)屬性來擔(dān)當(dāng),自然主屬性與關(guān)鍵字指的就是同一個(gè)屬性。例如上面的學(xué)生關(guān)系,關(guān)鍵字是學(xué)號(hào),同時(shí)學(xué)號(hào)也是主屬性。但是,如果一個(gè)關(guān)系的關(guān)鍵字是由多個(gè)屬性共同承擔(dān)的,例如成績(jī)表(學(xué)號(hào),課程號(hào),成績(jī)),此時(shí)這個(gè)關(guān)系的關(guān)鍵字是:(學(xué)號(hào),課程號(hào)),我們不妨這樣理解:將學(xué)號(hào)和課程兩列視為一個(gè)
36、字段即作為一個(gè)整體的字符串處理;而主屬性分別是學(xué)號(hào)和課程號(hào)。也就是說這兩個(gè)屬性都不能出現(xiàn)空值。2. 參照完整性規(guī)則參照完整性解決關(guān)系與關(guān)系間引用數(shù)據(jù)時(shí)的合理性。通過我們上面給出學(xué)生信息數(shù)據(jù)庫,不難發(fā)現(xiàn),數(shù)據(jù)庫中的表都是相關(guān)聯(lián)的表,即數(shù)據(jù)庫中的表之間都存在一定的聯(lián)系,具體地說就是存在著某種引用關(guān)系,而這種引用、制約關(guān)系是通過關(guān)鍵字與外部關(guān)鍵字來完成的。參照完整性規(guī)則就是定義外部關(guān)鍵字與關(guān)鍵字之間的引用規(guī)則。參照完整性的具體規(guī)則為:若屬性(或?qū)傩越M)F是關(guān)系R的外部關(guān)鍵字,它與關(guān)系S的關(guān)鍵字K相對(duì)應(yīng)(關(guān)系R和S不一定是不同的關(guān)系),則R中每個(gè)F的取值必須等于S中某個(gè)K的值。3. 用戶自定義完整性規(guī)
37、則前文我們介紹過任何關(guān)系數(shù)據(jù)庫系統(tǒng)都應(yīng)該支持實(shí)體完整性和參照完整性。除此之外,不同的關(guān)系數(shù)據(jù)庫系統(tǒng),根據(jù)具體的需求會(huì)制定具體的數(shù)據(jù)約束條件,這種約束條件就是用戶自定義的完整性,它反映某一具體應(yīng)用所涉及到數(shù)據(jù)必須滿足的語義要求。例如:在學(xué)生信息管理中,可以規(guī)定成績(jī)屬性的取值范圍在0100之間、學(xué)生的年齡在一個(gè)指定數(shù)據(jù)范圍之間、性別的值只有兩個(gè)值即男和女等等,這些都是根據(jù)具體的應(yīng)用需求而指定的用戶自定義完整性規(guī)則。第5章 數(shù)據(jù)庫和表的創(chuàng)建與維護(hù)5.3 創(chuàng)建數(shù)據(jù)表5.3.1 表的建立這里說的數(shù)據(jù)表指的是數(shù)據(jù)庫中的基本表,是數(shù)據(jù)庫中存儲(chǔ)數(shù)據(jù)的對(duì)象,也是所有查詢、窗體、報(bào)表最根本的數(shù)據(jù)源。關(guān)系型數(shù)據(jù)庫中
38、的表采用二維表的數(shù)據(jù)結(jié)構(gòu),表中的每個(gè)字段都存儲(chǔ)一定類型一定寬度的數(shù)據(jù),并滿足一定的數(shù)據(jù)有效性規(guī)則。創(chuàng)建基本表,實(shí)際上就是創(chuàng)建每個(gè)字段的信息,并為這些字段逐行添加數(shù)據(jù)的過程。在Access 2010中,有多種創(chuàng)建數(shù)據(jù)表的方法。(1) 用直接在表中輸入數(shù)據(jù)的方法創(chuàng)建新表,每個(gè)字段的屬性由Access 2010自動(dòng)識(shí)別,默認(rèn)定義。(2) 通過SharePoint網(wǎng)站來創(chuàng)建表,本地建立的新表通過網(wǎng)絡(luò)鏈接到SharePoint網(wǎng)站建立的列表中去。(3) 通過外部數(shù)據(jù)導(dǎo)入,將其他格式的外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫表中。(4) 通過表模板創(chuàng)建新表,用Access 2010的本地模板作為基礎(chǔ)創(chuàng)建。(5) 通過字段模板
39、創(chuàng)建新表,模板定義了各種字段的屬性,可以直接使用。(6) 通過表設(shè)計(jì)器從頭創(chuàng)建新表,在表設(shè)計(jì)視圖中創(chuàng)建表,所有的字段設(shè)置必須由用戶自己完成。下面詳細(xì)介紹后三種創(chuàng)建表的基本方法。1 使用表設(shè)計(jì)視圖創(chuàng)建表無論是表模板還是字段模板,樣式都非常有限,要滿足用戶多種多樣的數(shù)據(jù)格式要求,必須學(xué)會(huì)使用表設(shè)計(jì)視圖創(chuàng)建表。這種創(chuàng)建方式雖然比模板的方式要慢,但是,數(shù)據(jù)表的結(jié)構(gòu)可以由用戶自己設(shè)計(jì)定義,是最能體現(xiàn)用戶需求的表創(chuàng)建方式。使用表設(shè)計(jì)視圖創(chuàng)建表要分兩大模塊完成,其一是定義數(shù)據(jù)表結(jié)構(gòu),其二是輸入數(shù)據(jù)表的記錄值。相比較而言,最主要的任務(wù)還是設(shè)計(jì)數(shù)據(jù)表的結(jié)構(gòu),具體操作步驟見例5-5的第一至第六步。設(shè)計(jì)表結(jié)構(gòu)就是定
40、義表的名稱、確定各字段的參數(shù)(字段參數(shù)包括字段名、字段類型、字段的數(shù)據(jù)格式、)、定義主鍵、定義數(shù)據(jù)表的各種約束等。5.3.2 字段數(shù)據(jù)類型和數(shù)據(jù)格式這是兩回事!在創(chuàng)建數(shù)據(jù)表的時(shí)候,字段的數(shù)據(jù)類型非常重要,它直接決定將來表中可以存儲(chǔ)什么數(shù)據(jù)、可以存儲(chǔ)多大范圍的數(shù)據(jù)以及可以對(duì)表中數(shù)據(jù)做什么操作。因此,熟悉Access 2010數(shù)據(jù)表字段的類型就很有必要了。此外,Access 2010還在以往Access版本的基礎(chǔ)上,增加了新的數(shù)據(jù)類型,能夠完成更豐富的數(shù)據(jù)類型設(shè)計(jì)。Access 2010為數(shù)據(jù)表中的字段提供了12種基本數(shù)據(jù)類型,并且為其中“數(shù)字”、“日期/時(shí)間”和“是/否”三種數(shù)據(jù)類型準(zhǔn)備了更加詳
41、細(xì)的顯示格式設(shè)置顯示設(shè)置就是格式。1 基本數(shù)據(jù)類型在表設(shè)計(jì)視圖中定義字段類型的時(shí)候,下拉列表中的就是基本類型,包括文本、備注、是/否、數(shù)字、日期/時(shí)間、貨幣、自動(dòng)編號(hào)、OLE對(duì)象、超級(jí)鏈接、附件、計(jì)算和查閱向?qū)?2種類型。具體如表5-3所示。在為字段定義基本類型和字段寬度值域在access里叫字段寬度的時(shí)候必須注意幾點(diǎn):(1) 所有基本類型中,只有文本型的字段寬度和數(shù)字型的小數(shù)位數(shù)兩種情況可由用戶定義,例如姓名字段為文本型、定義字段寬度為10字符;入學(xué)成績(jī)字段為數(shù)字型中的單精度型、小數(shù)位數(shù)為1位。(2) 用戶定義的字段寬度屬性只是為了限定輸入數(shù)據(jù)大小的上限而已,并不是說該字段中存儲(chǔ)的數(shù)據(jù)一定要
42、等于定義的大小,例如姓名字段存儲(chǔ)的名字只要不超過10個(gè)字符即可;入學(xué)成績(jī)只要在-3.4*1038到+3.4*1038之間即可。(3) 日期/時(shí)間、貨幣、自動(dòng)編號(hào)、是/否四個(gè)數(shù)據(jù)類型的寬度是固定的,不允許用戶定義。因此,在表設(shè)計(jì)視圖中沒有這幾種數(shù)據(jù)類型的字段寬度屬性欄。例如出生日期字段只需設(shè)置數(shù)據(jù)類型為日期/時(shí)間,不需設(shè)置大小。(4) 其余6種類型字段寬度雖不固定,但都是由Access 2010動(dòng)態(tài)分配存儲(chǔ)空間或者由外部數(shù)據(jù)鏈接嵌入。因此,也不允許更不需要用戶來定義。例如照片字段為OLE型,只要圖片小于1G即可,具體大小由圖片本身決定。2 三種字段數(shù)據(jù)格式在選定了數(shù)據(jù)類型的前提下,Access
43、2010還允許幾種基本類型的數(shù)據(jù)選擇一種格式顯示輸出。注意,數(shù)據(jù)格式不同于數(shù)據(jù)類型,格式設(shè)置對(duì)存儲(chǔ)的數(shù)據(jù)本身沒有影響,只是改變數(shù)據(jù)在屏幕上輸出或是打印的樣式。選擇數(shù)據(jù)格式可以確保數(shù)據(jù)表示方式的一致性、統(tǒng)一輸出數(shù)據(jù)的樣式?;緮?shù)據(jù)類型中的“數(shù)字”、“是/否”和“日期/時(shí)間”三種基本數(shù)據(jù)類型都具備自己獨(dú)特的數(shù)據(jù)格式。表5-1 Access 2010基本數(shù)據(jù)類型數(shù)據(jù)類型用法寬度(表設(shè)計(jì)視圖中的字段大小)文本包括文本、數(shù)字、特殊符號(hào),例如姓名、地址。表示標(biāo)識(shí)符的字段即便全由數(shù)字組成也應(yīng)該定義為文本型,例如電話號(hào)碼、學(xué)號(hào)或身份證號(hào)等等由用戶定義。最多255個(gè)字符,只保存輸入的字符,不保存文本前后的空格備
44、注長(zhǎng)短不固定或長(zhǎng)度很長(zhǎng)的文本,例如備注或說明通過用戶界面輸入上限為65535字節(jié);以編程方式輸入數(shù)據(jù)時(shí)為2GB,不可定義數(shù)字可用于算術(shù)運(yùn)算的數(shù)字?jǐn)?shù)據(jù)。又細(xì)分為字節(jié)、整型、長(zhǎng)整型、單精度、雙精度、同步復(fù)制ID和小數(shù)幾種由用戶定義。不同分類的存儲(chǔ)上限分別是1、2、4、8、12或16個(gè)字節(jié)。日期/時(shí)間可分別表示日期或時(shí)間,可顯示為7種格式8個(gè)字節(jié),不可變貨幣用于貨幣計(jì)算,避免四舍五入。精確到小數(shù)點(diǎn)左方15位數(shù)及右方4位數(shù)8個(gè)字節(jié),不可變自動(dòng)編號(hào)在添加記錄時(shí)自動(dòng)插入的唯一順序號(hào)(每次遞增1)或隨機(jī)編號(hào),可用作缺省關(guān)鍵字4個(gè)字節(jié),不可變是/否字段只包含兩個(gè)值中的一個(gè),例如“是/否”、“真/假”、“開/關(guān)
45、”1位,不可變OLE對(duì)象對(duì)象的連接與嵌入,將其他格式的外部文件(二進(jìn)制數(shù)據(jù))對(duì)象鏈接或嵌入到表中。在窗體或報(bào)表中必須使用綁定對(duì)象框來顯示最大1GB,不可定義超級(jí)鏈接存儲(chǔ)超級(jí)鏈接的字段。超級(jí)鏈接可以是UNC路徑或URL地址最多64,000個(gè)字符,不可定義附件附件可以鏈接所有類型的文檔和二進(jìn)制文件,不會(huì)占用數(shù)據(jù)庫空間,Access 2010還會(huì)自動(dòng)壓縮附件取決于磁盤空間,不可定義計(jì)算顯示根據(jù)同一表中的其他數(shù)據(jù)計(jì)算而來的值。可以用表達(dá)式生成器來創(chuàng)建由參與計(jì)算的字段決定,不可定義查閱向?qū)г试S用戶使用組合框選擇來自其他表或來自值列表中的選項(xiàng)。在數(shù)據(jù)類型列表中選擇此選項(xiàng),將啟動(dòng)向?qū)нM(jìn)行定義與主鍵字段的長(zhǎng)度
46、相同,通常為4個(gè)字節(jié),不可定義(1) 數(shù)字型數(shù)據(jù)的輸出格式有以下幾個(gè)選擇:表5-2 數(shù)字類型數(shù)據(jù)格式格式顯示說明舉例常規(guī)存儲(chǔ)時(shí)沒有明確進(jìn)行其他格式設(shè)置的數(shù)字。3456.789貨幣一般貨幣值。¥3,456.79歐元存儲(chǔ)為歐元格式的一般貨幣值。3,456.79固定數(shù)字?jǐn)?shù)據(jù)。3456.79標(biāo)準(zhǔn)包含小數(shù)的數(shù)值數(shù)據(jù)。3,456.79百分比百分?jǐn)?shù)。123.00%科學(xué)計(jì)數(shù)計(jì)算值。3.46E+03(2) 是/否型數(shù)據(jù)的輸出格式有以下幾個(gè)選擇:表5-3 是/否類型數(shù)據(jù)格式數(shù)據(jù)類型顯示說明舉例復(fù)選框一個(gè)復(fù)選框。 / 是/否“是”或“否”選項(xiàng)。YES/NO真/假“真”或“假”選項(xiàng)。TRUE/FALSE開/關(guān)“開”或
47、“關(guān)”選項(xiàng)。ON/OFF(3) 日期和時(shí)間型數(shù)據(jù)的輸出格式有以下幾個(gè)選擇:表5-4 日期/時(shí)間類型數(shù)據(jù)格式格式顯示說明舉例常規(guī)日期沒有特殊設(shè)置的日期/時(shí)間格式2013-1-19 15:33:25長(zhǎng)日期顯示長(zhǎng)格式的日期。具體取決于您所在區(qū)域的日期和時(shí)間設(shè)置。2013年1月19日中日期顯示中等格式的日期。13-01-19短日期顯示短格式的日期。具體取決于您所在區(qū)域的日期和時(shí)間設(shè)置。2013-1-19長(zhǎng)時(shí)間24小時(shí)制顯示時(shí)間,該格式會(huì)隨著所在區(qū)域的日期和時(shí)間設(shè)置的變化而變化。15:33:25中時(shí)間12小時(shí)制顯示的時(shí)間,帶“上午”或“下午”字樣。下午3:335.3.3 字段屬性設(shè)置除了設(shè)置每個(gè)字段的名
48、稱、數(shù)據(jù)類型、數(shù)據(jù)寬度、數(shù)據(jù)格式以外,Access 2010還為字段提供了其他幾種重要的屬性設(shè)置,加強(qiáng)數(shù)據(jù)存儲(chǔ)的安全性、有效性定義,以及維護(hù)數(shù)據(jù)的完整性和一致性。設(shè)置字段屬性的目的是:l 控制字段中的數(shù)據(jù)外觀l 防止在字段中輸入不正確的數(shù)據(jù)l 為字段指定默認(rèn)值l 有助于加速對(duì)字段進(jìn)行的搜索和排序定義字段屬性實(shí)際上就是在為表格設(shè)置數(shù)據(jù)約束終于知道什么意思了。接下來介紹幾種主要的字段屬性設(shè)置。1 輸入掩碼掩碼是一種格式,由字面顯示字符(如括號(hào)、句號(hào)和連字符)和掩碼字符(用于指定可以輸入數(shù)據(jù)的位置以及數(shù)據(jù)種類、字符數(shù)量)組成。輸入掩碼的作用是表示這一字段輸入數(shù)據(jù)的具體要求。使用此屬性可以為即將在此字
49、段中輸入的所有數(shù)據(jù)指定模式,有助于確保正確輸入所有數(shù)據(jù),保證數(shù)據(jù)中包含所需數(shù)量的字符。在表設(shè)計(jì)視圖輸入掩碼文本框右側(cè)的按鈕上單擊,即可打開有關(guān)生成輸入掩碼的幫助。Access 2010的掩碼格式如下表所示。表5-5 掩碼字符含義多背幾遍吧。字符說明0代表一個(gè)數(shù)字,必選項(xiàng)9數(shù)字或空格,可選項(xiàng)#數(shù)字或空格,可選項(xiàng)L字母A到Z,必選項(xiàng)?字母A到Z,可選項(xiàng)A字母或數(shù)字,必選項(xiàng)a字母或數(shù)字,可選項(xiàng)&任一字符或空格,必選項(xiàng)C任一字符或空格,可選項(xiàng). : ; - /十進(jìn)制占位符和千位、日期和時(shí)間分隔符。使其后所有的字符轉(zhuǎn)換為大寫!輸入掩碼從右到左顯示使其后的字符顯示為原義字符密碼文本框中鍵入的任何字符都按原
50、字符保存,但顯示為星號(hào)(*)初學(xué)者面對(duì)如此復(fù)雜的掩碼字符可能會(huì)無所適從,但實(shí)際上,數(shù)據(jù)庫中對(duì)字段輸入數(shù)據(jù)的模式限制往往沒有那么嚴(yán)格,掌握好經(jīng)常使用的幾種掩碼字符就足夠應(yīng)對(duì)一般的任務(wù)了。例如在系號(hào)字段中,表示2個(gè)字符都得是數(shù)字而且不能缺少,可以用掩碼“00”;如果系號(hào)的兩個(gè)字符可以缺少的話,就能用掩碼“99”;姓名字段中最多10個(gè)字符可以缺少,可以用掩碼“CCCCCCCCCC”。定義了姓名字段的掩碼設(shè)置和輸入情況如下圖所示。 圖5-1 輸入掩碼2 有效性規(guī)則和有效性文本有效性規(guī)則設(shè)置屬于數(shù)據(jù)庫有效性約束的一部分功能。有效性規(guī)則欄中要求用戶輸入一個(gè)邏輯表達(dá)式;而有效性文本欄中要求輸入一段作為提示信
51、息的文本。錄入數(shù)據(jù)時(shí)Access 2010將字段的值代入該表達(dá)式進(jìn)行計(jì)算,如果計(jì)算結(jié)果為真值則允許該值存入該字段;如果為假則拒絕該值錄入該字段,并彈出對(duì)話框提示有效性文本欄中的提示信息。例如,在性別一欄中輸入有效性規(guī)則:“男” Or “女”,有效性文本為:“性別字段值應(yīng)為男或女!”。如果在性別字段中輸入“0”,則提示有效性文本。如下圖所示。 圖5-2 有效性規(guī)則設(shè)置在學(xué)生表的設(shè)計(jì)中還可以為入學(xué)成績(jī)字段設(shè)置有效性規(guī)則“=0 And =750”。來規(guī)定入學(xué)成績(jī)的輸入范圍。3 默認(rèn)值默認(rèn)值是數(shù)據(jù)表中增加記錄時(shí),自動(dòng)填入字段中的數(shù)據(jù)。例如,若圖5-23中的“默認(rèn)值”行定義為:男,則每向?qū)W生表添加一條記
52、錄,性別字段的值都自動(dòng)存入漢字“男”。4 設(shè)置索引如果經(jīng)常依據(jù)特定的字段搜索表或?qū)Ρ淼挠涗涍M(jìn)行排序,則可以通過創(chuàng)建該字段的索引來加快執(zhí)行這些操作的速度。在表中使用索引就如同在書中使用目錄一樣:要想查找某些特定的數(shù)據(jù),先在索引中查找數(shù)據(jù)的位置。為一個(gè)字段創(chuàng)建的索引會(huì)生成一個(gè)索引序列,這個(gè)序列存儲(chǔ)在數(shù)據(jù)庫的索引文件中。一個(gè)字段的索引序列在邏輯上可以表示為一個(gè)有兩列的表,分別存儲(chǔ)索引內(nèi)容和指針,如下圖所示:圖5-3 設(shè)置索引當(dāng)我們要檢索“01”號(hào)系的學(xué)生時(shí),或者要按照系號(hào)為學(xué)生表排序時(shí),不用直接去檢索學(xué)生表,只要找到系號(hào)字段的索引序列就行了。可以按照索引中“01”系號(hào)后面的指針,直接找到這個(gè)系的幾個(gè)
53、學(xué)生的記錄。要知道,一個(gè)真正運(yùn)行的商業(yè)數(shù)據(jù)庫往往存儲(chǔ)了海量的數(shù)據(jù),經(jīng)常整個(gè)內(nèi)存都放不下一張表,動(dòng)輒就對(duì)數(shù)據(jù)表檢索是非常浪費(fèi)時(shí)間和空間的,不亞于大海撈針,而索引文件往往都非常小,檢索起來很容易。在數(shù)據(jù)庫的實(shí)際應(yīng)用中,一般會(huì)對(duì)所有字段都建立索引。一般情況Access 2010會(huì)對(duì)主鍵字段自動(dòng)創(chuàng)建索引,其它情況需要用戶自己創(chuàng)建。Access 2010中的索引有兩種:有重復(fù)索引(普通索引)和無重復(fù)索引(唯一索引)。其中無重復(fù)索引要求本字段中的數(shù)據(jù)值不能有一樣的,例如為主鍵建立的索引就是無重復(fù)索引;而有重復(fù)索引則沒有這個(gè)限制。Access 2010表設(shè)計(jì)視圖中創(chuàng)建索引的下拉框中有三個(gè)選項(xiàng):l 無不在此字
54、段上創(chuàng)建索引(或刪除現(xiàn)有索引)l 有(有重復(fù))在此字段上創(chuàng)建普通索引l 有(無重復(fù))在此字段上創(chuàng)建唯一索引5.3.4 表中數(shù)據(jù)的輸入定義好數(shù)據(jù)表的字段名稱、類型、寬度、格式和其他屬性后,就可以向表中輸入數(shù)據(jù)了。輸入數(shù)據(jù)可以有幾種方式。一是用數(shù)據(jù)表視圖模式,手工單條錄入數(shù)據(jù),這種方式效率較低,不適于輸入成批記錄;另一種是用命令或屏幕操作的辦法成批導(dǎo)入數(shù)據(jù),這種方式效率高,適合一次輸入大量數(shù)據(jù)。但無論采用哪種方式,輸入的數(shù)據(jù)都必須滿足各種字段屬性的設(shè)置和數(shù)據(jù)約束。1 用數(shù)據(jù)表視圖輸入【例5-1】 用數(shù)據(jù)表視圖方式輸入學(xué)生表的數(shù)據(jù),步驟如下:(1) 打開教學(xué)管理數(shù)據(jù)庫,在左側(cè)導(dǎo)航區(qū)中雙擊學(xué)生表,直接打開數(shù)據(jù)表視圖。(2) 依次錄入合法的數(shù)據(jù)。輸
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年寧波市江東區(qū)人力社保局招考編外合同制人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年文旅小鎮(zhèn)項(xiàng)目建議書
- 2025年斯蒂酚酸項(xiàng)目可行性研究報(bào)告
- 2024重慶三峰環(huán)境集團(tuán)股份有限公司招聘15人筆試參考題庫附帶答案詳解
- 2025年攤鋪機(jī)數(shù)字控制系統(tǒng)項(xiàng)目可行性研究報(bào)告
- 鄂爾多斯專版2024年中考數(shù)學(xué)復(fù)習(xí)第一單元數(shù)與式課時(shí)訓(xùn)練01實(shí)數(shù)及其運(yùn)算
- 高中語文文摘異域河南小伙在非洲當(dāng)酋長(zhǎng)
- 魯京津瓊專用2025版高考數(shù)學(xué)大一輪復(fù)習(xí)第十二章概率隨機(jī)變量及其分布高考專題突破六高考中的概率與統(tǒng)計(jì)問題教案含解析
- 2024江西吉安市青原區(qū)贛悅產(chǎn)業(yè)園區(qū)運(yùn)營(yíng)管理有限公司招聘1人訂閱+閱讀模式筆試參考題庫附帶答案詳解
- 自動(dòng)化生產(chǎn)線的安裝與調(diào)試知到課后答案智慧樹章節(jié)測(cè)試答案2025年春內(nèi)江職業(yè)技術(shù)學(xué)院
- 2025年黑龍江商業(yè)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫帶答案
- 【地理】自然環(huán)境課件-2024-2025學(xué)年七年級(jí)地理下學(xué)期(人教版2024)
- 北京大興區(qū)公開招考社區(qū)服務(wù)站專職工作者高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年中國(guó)作家協(xié)會(huì)所屬單位招聘考試真題
- 2025年貴州貴陽市貴安新區(qū)產(chǎn)業(yè)發(fā)展控股集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 2025年房地產(chǎn)年度工作計(jì)劃
- 高血壓性視網(wǎng)膜病變
- 2025山東能源集團(tuán)中級(jí)人才庫選拔管理單位筆試遴選500模擬題附帶答案詳解
- 醫(yī)院后勤管理與服務(wù)提升方案
- DB21T 2760-2023 裝配式住宅建筑設(shè)計(jì)規(guī)程
- 2024年電力通信設(shè)備運(yùn)檢員(技師)職業(yè)鑒定考試題庫(濃縮400題)
評(píng)論
0/150
提交評(píng)論