access第一章數(shù)據(jù)庫基礎(chǔ)知識(shí)課件_第1頁
access第一章數(shù)據(jù)庫基礎(chǔ)知識(shí)課件_第2頁
access第一章數(shù)據(jù)庫基礎(chǔ)知識(shí)課件_第3頁
access第一章數(shù)據(jù)庫基礎(chǔ)知識(shí)課件_第4頁
access第一章數(shù)據(jù)庫基礎(chǔ)知識(shí)課件_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

大家好1Access基礎(chǔ)教程(第四版)21.1數(shù)據(jù)庫系統(tǒng)的基本概念1.2數(shù)據(jù)模型1.3關(guān)系數(shù)據(jù)庫系統(tǒng)1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)第1章數(shù)據(jù)庫基礎(chǔ)知識(shí)3數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)領(lǐng)域的一個(gè)重要分支。在計(jì)算機(jī)應(yīng)用的三大領(lǐng)域(科學(xué)計(jì)算、數(shù)據(jù)處理和過程控制)中,數(shù)據(jù)處理約占其中的70%,而數(shù)據(jù)庫技術(shù)就是作為一門數(shù)據(jù)處理技術(shù)發(fā)展起來的。隨著計(jì)算機(jī)應(yīng)用的普及和深入,數(shù)據(jù)庫技術(shù)更是不斷發(fā)展,應(yīng)用范圍不斷擴(kuò)大,如多媒體系統(tǒng)、企業(yè)管理、工程、統(tǒng)計(jì)、汽車工業(yè)等領(lǐng)域都在利用數(shù)據(jù)庫技術(shù)。第1章數(shù)據(jù)庫基礎(chǔ)知識(shí)41.1.1數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)1.?dāng)?shù)據(jù)(Data)數(shù)據(jù)是數(shù)據(jù)庫系統(tǒng)研究和處理的對(duì)象,本質(zhì)上講是描述事物的符號(hào)記錄。數(shù)據(jù)有多種表現(xiàn)形式,都是經(jīng)過數(shù)字化處理后存入計(jì)算機(jī)的,能夠反映或描述事物的特性。2.?dāng)?shù)據(jù)庫(DataBase,簡稱DB)數(shù)據(jù)庫是數(shù)據(jù)的集合,它具有一定的組織形式并儲(chǔ)存于計(jì)算機(jī)存儲(chǔ)器上,具有多種表現(xiàn)形式并可被各種用戶所共享。

數(shù)據(jù)庫中的數(shù)據(jù)具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和擴(kuò)展性。1.1數(shù)據(jù)庫系統(tǒng)的基本概念53.?dāng)?shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,屬于系統(tǒng)軟件。它是數(shù)據(jù)庫系統(tǒng)的一個(gè)重要組成部分,是使數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)共享、并發(fā)訪問、數(shù)據(jù)獨(dú)立等特性的根本保證,主要提供以下功能:數(shù)據(jù)定義功能。數(shù)據(jù)操縱及查詢優(yōu)化。數(shù)據(jù)庫的運(yùn)行管理。數(shù)據(jù)庫的建立和維護(hù)。1.1數(shù)據(jù)庫系統(tǒng)的基本概念64.?dāng)?shù)據(jù)庫管理員(DataBaseAdministrator,簡稱DBA)由于數(shù)據(jù)庫的共享性,因此對(duì)數(shù)據(jù)庫的規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等需要有專人管理,從事這方面工作的人員稱為數(shù)據(jù)庫管理員。其主要工作如下:數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫維護(hù)改善系統(tǒng)性能,提高系統(tǒng)效率5.?dāng)?shù)據(jù)庫系統(tǒng)(DataBaseSystem,簡稱DBS)數(shù)據(jù)庫系統(tǒng)通常是指帶有數(shù)據(jù)庫的計(jì)算機(jī)應(yīng)用系統(tǒng)。它一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、硬件系統(tǒng)、數(shù)據(jù)庫管理員和用戶組成。1.1數(shù)據(jù)庫系統(tǒng)的基本概念76.?dāng)?shù)據(jù)庫應(yīng)用系統(tǒng)(DataBaseApplicationSystem,簡稱DBAS)利用數(shù)據(jù)庫系統(tǒng)進(jìn)行應(yīng)用開發(fā)可構(gòu)成一個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng),數(shù)據(jù)庫應(yīng)用系統(tǒng)是數(shù)據(jù)庫系統(tǒng)再加上應(yīng)用軟件和應(yīng)用界面組成,具體包括:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺(tái)、軟件平臺(tái)、應(yīng)用軟件、應(yīng)用界面,其結(jié)構(gòu)如圖所示。1.1數(shù)據(jù)庫系統(tǒng)的基本概念81.1.2數(shù)據(jù)庫技術(shù)的發(fā)展數(shù)據(jù)庫技術(shù)產(chǎn)生于20世紀(jì)60年代后期,是隨著數(shù)據(jù)管理的需要而產(chǎn)生的。在此之前,數(shù)據(jù)管理經(jīng)歷了人工管理階段和文件系統(tǒng)階段。20世紀(jì)60年代,計(jì)算機(jī)技術(shù)迅速發(fā)展,其主要應(yīng)用領(lǐng)域從科學(xué)計(jì)算轉(zhuǎn)移到數(shù)據(jù)事務(wù)處理,從而出現(xiàn)了數(shù)據(jù)庫技術(shù),它是數(shù)據(jù)管理的最新技術(shù),是計(jì)算機(jī)科學(xué)中發(fā)展最快、應(yīng)用最廣泛的重要分支之一。在短短的三十幾年里,數(shù)據(jù)庫技術(shù)的發(fā)展經(jīng)歷了三代:第一代層次、網(wǎng)狀數(shù)據(jù)庫系統(tǒng),第二代關(guān)系數(shù)據(jù)庫系統(tǒng)和第三代以面向?qū)ο竽P蜑橹饕卣鞯臄?shù)據(jù)庫系統(tǒng)。目前,數(shù)據(jù)庫技術(shù)與網(wǎng)絡(luò)通信技術(shù)、人工智能技術(shù)、面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)、并行計(jì)算機(jī)技術(shù)等相互滲透,成為數(shù)據(jù)庫技術(shù)發(fā)展的主要特征。1.1數(shù)據(jù)庫系統(tǒng)的基本概念91.第一代數(shù)據(jù)庫系統(tǒng)——層次、網(wǎng)狀數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫發(fā)展階段的劃分是以數(shù)據(jù)模型的發(fā)展為主要依據(jù)的。數(shù)據(jù)模型的發(fā)展經(jīng)歷了格式化數(shù)據(jù)模型(包括層次數(shù)據(jù)模型和網(wǎng)狀數(shù)據(jù)模型)、關(guān)系數(shù)據(jù)模型兩個(gè)階段,正向面向?qū)ο蟮臄?shù)據(jù)模型等非傳統(tǒng)數(shù)據(jù)模型階段發(fā)展。其特點(diǎn)如下:(1)支持三級(jí)模式的體系結(jié)構(gòu)。(2)用存取路徑來表示數(shù)據(jù)之間的聯(lián)系。(3)獨(dú)立的數(shù)據(jù)定義語言。(4)導(dǎo)航的數(shù)據(jù)操縱語言。1.1數(shù)據(jù)庫系統(tǒng)的基本概念102.第二代數(shù)據(jù)庫系統(tǒng)——關(guān)系數(shù)據(jù)庫系統(tǒng)1970年美國IBM公司SanJose研究室的高級(jí)研究員埃德加?考特(E.F.Codd)發(fā)表了論文《大型共享數(shù)據(jù)庫數(shù)據(jù)的關(guān)系模型》,提出了數(shù)據(jù)庫的關(guān)系模型,開創(chuàng)了數(shù)據(jù)庫關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究,為關(guān)系數(shù)據(jù)庫技術(shù)奠定了理論基礎(chǔ),為數(shù)據(jù)庫技術(shù)開辟了一個(gè)新時(shí)代。關(guān)系數(shù)據(jù)庫是以關(guān)系模型為基礎(chǔ)的,具有以下特點(diǎn):1.1數(shù)據(jù)庫系統(tǒng)的基本概念11(1)關(guān)系數(shù)據(jù)庫對(duì)實(shí)體及實(shí)體之間的聯(lián)系均采用關(guān)系來描述。(2)關(guān)系數(shù)據(jù)庫語言具有非過程化特性,將用戶從編程數(shù)

據(jù)庫記錄的導(dǎo)航式檢索中解脫出來。(3)數(shù)據(jù)獨(dú)立性強(qiáng)。(4)以關(guān)系代數(shù)為基礎(chǔ),數(shù)據(jù)庫的研究更加科學(xué)化。

在關(guān)系操作的完備性、規(guī)范化及查詢優(yōu)化等方面,為數(shù)據(jù)庫技術(shù)的成熟奠定了很好的基礎(chǔ)。1.1數(shù)據(jù)庫系統(tǒng)的基本概念123.第三代數(shù)據(jù)庫系統(tǒng)1990年高級(jí)DBMS功能委員會(huì)發(fā)表了《第三代數(shù)據(jù)庫系統(tǒng)宣言》的文章,提出了第三代數(shù)據(jù)庫應(yīng)具有的三個(gè)基本特征。1.1數(shù)據(jù)庫系統(tǒng)的基本概念(1)第三代數(shù)據(jù)庫系統(tǒng)應(yīng)支持?jǐn)?shù)據(jù)管理、對(duì)象管理和知識(shí)管理。以支持面向?qū)ο髷?shù)據(jù)模型為主要特征,并集數(shù)據(jù)管理、對(duì)象管理和知識(shí)管理為一體。(2)第三代數(shù)據(jù)庫系統(tǒng)必須保持或繼承第二代數(shù)據(jù)庫系統(tǒng)的技術(shù),如非過程化特性、數(shù)據(jù)獨(dú)立性等。(3)第三代數(shù)據(jù)庫系統(tǒng)必須對(duì)其他系統(tǒng)開放,如支持?jǐn)?shù)據(jù)庫語言標(biāo)準(zhǔn)、在網(wǎng)絡(luò)上支持標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議等。134.數(shù)據(jù)庫技術(shù)的新進(jìn)展20世紀(jì)80年代以來,數(shù)據(jù)庫技術(shù)經(jīng)歷了從簡單應(yīng)用到復(fù)雜應(yīng)用的巨大變化,在新技術(shù)內(nèi)容、應(yīng)用領(lǐng)域和數(shù)據(jù)模型三個(gè)方面都取得了很大進(jìn)展。常見新型數(shù)據(jù)庫包括:分布式數(shù)據(jù)庫。并行數(shù)據(jù)庫。知識(shí)庫和主動(dòng)數(shù)據(jù)庫。多媒體數(shù)據(jù)庫。模糊數(shù)據(jù)庫。數(shù)據(jù)庫技術(shù)應(yīng)用到其他領(lǐng)域中,出現(xiàn)了數(shù)據(jù)倉庫、工程數(shù)據(jù)庫、統(tǒng)計(jì)數(shù)據(jù)庫、空間數(shù)據(jù)庫及科學(xué)數(shù)據(jù)庫等多種數(shù)據(jù)庫技術(shù)。1.1數(shù)據(jù)庫系統(tǒng)的基本概念141.1.3數(shù)據(jù)庫系統(tǒng)的特點(diǎn)數(shù)據(jù)庫技術(shù)是在文件系統(tǒng)的基礎(chǔ)上發(fā)展產(chǎn)生的,以數(shù)據(jù)文件的組織數(shù)據(jù),并在文件系統(tǒng)之上加入了DBMS對(duì)數(shù)據(jù)進(jìn)行管理,其特點(diǎn)如下:1.數(shù)據(jù)的集成性2.數(shù)據(jù)的高共享性與低冗余性3.數(shù)據(jù)獨(dú)立性1.1數(shù)據(jù)庫系統(tǒng)的基本概念151.1.4數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)包括三級(jí)模式和兩級(jí)映射,三級(jí)模式分別為外模式、概念模式和內(nèi)模式;兩級(jí)映射分別為外模式與概念模式間的映射以及概念模式與內(nèi)模式間的映射。1.1數(shù)據(jù)庫系統(tǒng)的基本概念161.數(shù)據(jù)庫系統(tǒng)的三級(jí)模式數(shù)據(jù)模式是數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)結(jié)構(gòu)的一種表示形式,它具有不同的層次與結(jié)構(gòu)方式。

外模式(ExternalSchema)

概念模式(ConceptualSchema)

內(nèi)模式(InternalSchema)2.數(shù)據(jù)庫系統(tǒng)的兩級(jí)映射為實(shí)現(xiàn)三個(gè)模式的抽象層次見的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫系統(tǒng)在三個(gè)模式之間提供兩級(jí)映射。

外模式與概念模式間的映射。

概念模式與內(nèi)模式間的映射。1.1數(shù)據(jù)庫系統(tǒng)的基本概念17數(shù)據(jù)模型有三個(gè)基本組成要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束。

數(shù)據(jù)結(jié)構(gòu)。

數(shù)據(jù)操作。

完整性約束。1.2數(shù)據(jù)模型18數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型:概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。概念數(shù)據(jù)模型:簡稱概念模型,是整個(gè)數(shù)據(jù)模型的基礎(chǔ),設(shè)計(jì)概念模型常用的方法是ER方法,也就是E-R模型(實(shí)體-聯(lián)系模型)。物理數(shù)據(jù)模型:又稱為物理模型,它是一種面向計(jì)算機(jī)物理表示的模型,此模型給出了數(shù)據(jù)模型在計(jì)算機(jī)上物理結(jié)構(gòu)的表示。邏輯數(shù)據(jù)模型:又稱為數(shù)據(jù)模型,它是一種面向數(shù)據(jù)庫系統(tǒng)的模型,包含層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P汀?.2數(shù)據(jù)模型191.2.1E-R模型1.2數(shù)據(jù)模型1、E-R模型中的基本概念實(shí)體:客存在并可以相互區(qū)分的事物。屬性:實(shí)體的特性。聯(lián)系:兩個(gè)或兩個(gè)以上的實(shí)體間的關(guān)聯(lián)關(guān)系的描述。

常見的實(shí)體聯(lián)系有三種:一對(duì)一聯(lián)系一對(duì)多聯(lián)系多對(duì)多聯(lián)系

202.E-R模型的表示方法E-R模型可以用一種非常直觀的圖來表示,稱為E-R圖。(1)實(shí)體(集)在E-R圖中,實(shí)體用矩形來表示。(2)屬性在E-R圖中,屬性用橢圓形來表示。(3)聯(lián)系在E-R圖中,聯(lián)系用菱形來表示。詳見教材第8頁學(xué)生選課E-R圖1.2數(shù)據(jù)模型211.2.2層次模型(HierarchicalModel)層次模型用樹形結(jié)構(gòu)來表示數(shù)據(jù)間的從屬關(guān)系結(jié)構(gòu)。特征是:僅有一個(gè)無雙親的結(jié)點(diǎn),這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn)。其他結(jié)點(diǎn)向上僅有一個(gè)雙親結(jié)點(diǎn),向下有若干子女結(jié)點(diǎn)。1.2數(shù)據(jù)模型學(xué)校學(xué)院科研項(xiàng)目固定資產(chǎn)學(xué)生職工車輛辦公用品實(shí)驗(yàn)儀器221.2.3網(wǎng)狀模型(NetworkModel)網(wǎng)狀模型是層次模型的擴(kuò)展,呈現(xiàn)一種交叉關(guān)系的網(wǎng)絡(luò)結(jié)構(gòu),可以表示較復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。特征是:可以有一個(gè)以上的結(jié)點(diǎn)無雙親結(jié)點(diǎn)。一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親結(jié)點(diǎn)。1.2數(shù)據(jù)模型出版社科研機(jī)構(gòu)作者圖書讀者231.2.4關(guān)系模型(RelationalModel)通過二維表結(jié)構(gòu)表示實(shí)體及其實(shí)體之間聯(lián)系的數(shù)據(jù)模型,用二維表來表示實(shí)體類型,數(shù)據(jù)描述一個(gè)實(shí)體。一張二維表——實(shí)體類型表中的一行——實(shí)體1.2數(shù)據(jù)模型24關(guān)系模型的基本術(shù)語如下。1.關(guān)系(Relation):二維表結(jié)構(gòu),如表1.1中的教師檔案表。2.屬性(Attribute):二維表中的列稱為屬性,Access中稱為字段(Field)。3.域(Domain):屬性的取值范圍稱為域。4.元組(Tuple):二維表中的行(記錄的值)稱為元組,Access中稱為記錄(Record)。5.主碼或主關(guān)鍵字(PrimaryKey):表中的某個(gè)屬性或?qū)傩越M,能夠惟一確定一個(gè)元組。Access中的主碼稱為主鍵。1.2數(shù)據(jù)模型256.關(guān)系模式:是對(duì)關(guān)系的描述。一般表示為:

關(guān)系名(屬性1,屬性2,…,屬性n)一個(gè)關(guān)系模式對(duì)應(yīng)一個(gè)關(guān)系的結(jié)構(gòu)。例如上面的關(guān)系可描述為:

教師檔案(教師編號(hào),教師姓名,所屬院系名稱,所屬專業(yè)名稱)1.2數(shù)據(jù)模型26關(guān)系模型的主要特點(diǎn):

關(guān)系中每一數(shù)據(jù)項(xiàng)不可再分,也就是說不允許表中還有表。

每一列中的各個(gè)數(shù)據(jù)項(xiàng)具有相同的屬性。

每一行中的記錄由一個(gè)事物的多種屬性項(xiàng)構(gòu)成。

每一行代表一個(gè)實(shí)體,不允許有相同的記錄行。

行與行、列與列的次序可以任意交換,不改變關(guān)系的實(shí)際意義。1.2數(shù)據(jù)模型271.2.5面向?qū)ο髷?shù)據(jù)模型(ObjectOrientedModel,簡稱OO模型)面向?qū)ο竽P褪墙鼛啄陙戆l(fā)展起來的一種新興的數(shù)據(jù)模型。該模型是在吸收了以前的各種數(shù)據(jù)模型優(yōu)點(diǎn)的基礎(chǔ)上,借鑒了面向?qū)ο蟪绦蛟O(shè)計(jì)方法而建立的一種模型。OO模型的基本概念如下:對(duì)象(Object)與對(duì)象標(biāo)識(shí)(OID)類(Class)事件1.2數(shù)據(jù)模型28關(guān)系數(shù)據(jù)庫系統(tǒng)(RelationDataBaseSystem,簡稱RDBMS)是采用關(guān)系模型作為數(shù)據(jù)的組織方式。Access就是基于關(guān)系模型的數(shù)據(jù)庫系統(tǒng)。1.3.1關(guān)系模型的組成關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和關(guān)系完整性約束三部分組成。1.3關(guān)系數(shù)據(jù)庫系統(tǒng)291.關(guān)系數(shù)據(jù)結(jié)構(gòu)。關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。2.關(guān)系操作,常用的關(guān)系操作包括:(1)查詢操作:選擇、投影、連接、除、并、交、差等。

(2)增加、刪除、修改等操作。3.關(guān)系完整性約束,指數(shù)據(jù)庫中數(shù)據(jù)的正確性和一致性,關(guān)系數(shù)據(jù)模型的操作必須滿足關(guān)系的完整性約束條件。1.3關(guān)系數(shù)據(jù)庫系統(tǒng)301.3.2關(guān)系運(yùn)算的基本概念關(guān)系的基本運(yùn)算有兩類,一類是傳統(tǒng)的集合運(yùn)算:并、差、交等,另一類是專門的關(guān)系運(yùn)算:選擇、投影、連接等。設(shè)有兩個(gè)關(guān)系R和S,它們具有相同的結(jié)構(gòu)。1.并(Union)。R和S的并是由屬于R或?qū)儆赟的元組組成的集合,運(yùn)算符為“∪”,記為R∪S。2.差(Difference)。R和S的差是由屬于R但不屬于S的元組組成的集合,運(yùn)算符為“-”,記為R-S。3.交(Intersection)。R和S的交是由既屬于R又屬于S的元組組成的集合,運(yùn)算符為“∩”,記為R∩S。1.3關(guān)系數(shù)據(jù)庫系統(tǒng)314.廣義笛卡兒積(Extendedcartesianproduct)。關(guān)系R(假設(shè)為n列)和關(guān)系S(假設(shè)為m列)的廣義笛卡兒積是一個(gè)(n+m)列元組的集合。每一個(gè)元組的前n列是來自關(guān)系R的一個(gè)元組,后m列是來自關(guān)系S的一個(gè)元組。若R有K1個(gè)元組,S有K2個(gè)元組,則關(guān)系R和關(guān)系S的廣義笛卡兒積有K1×K2個(gè)元組。運(yùn)算符為“×”,記為R×S。1.3關(guān)系數(shù)據(jù)庫系統(tǒng)325.選擇運(yùn)算。選擇運(yùn)算是在關(guān)系中選擇符合某些條件的元組。其中的條件是以邏輯表達(dá)式給出的,值為真的元組將被選取。6.投影運(yùn)算。投影運(yùn)算是在關(guān)系中選擇某些屬性列組成新的關(guān)系。這是從列的角度進(jìn)行的運(yùn)算,相當(dāng)于對(duì)關(guān)系進(jìn)行垂直分解。7.連接運(yùn)算。連接運(yùn)算需要兩個(gè)關(guān)系作為操作對(duì)象,是從兩個(gè)關(guān)系的笛卡兒積中選取屬性間滿足一定條件的元組。最常用的連接運(yùn)算有兩種:等值連接和自然連接。1.3關(guān)系數(shù)據(jù)庫系統(tǒng)33選擇操作34投影操作35連接操作361.3.3關(guān)系數(shù)據(jù)庫系統(tǒng)的功能

數(shù)據(jù)定義功能。

數(shù)據(jù)處理功能。

數(shù)據(jù)控制功能。

數(shù)據(jù)維護(hù)功能。1.3關(guān)系數(shù)據(jù)庫系統(tǒng)37SQL語言被美國國家標(biāo)準(zhǔn)局(AmericanNationalStandardInstitute,簡稱ANSI)和國際標(biāo)準(zhǔn)化組織(InternationalOrganizationforStandardization,簡稱ISO)批準(zhǔn)采納為關(guān)系數(shù)據(jù)庫系統(tǒng)標(biāo)準(zhǔn)語言。目前,各種關(guān)系數(shù)據(jù)庫管理系統(tǒng)均支持SQL。1.4.1SQL的特點(diǎn)SQL是一種功能齊全的數(shù)據(jù)庫語言SQL是高度非過程化的語言SQL語言簡潔,易學(xué)易用

語言共享1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL381.4.1SQL的特點(diǎn)SQL雖然被稱為結(jié)構(gòu)化查詢語言,但是它的功能不僅僅包括查詢。實(shí)際上SQL語言集數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢和數(shù)據(jù)控制功能于一體,充分體現(xiàn)了關(guān)系數(shù)據(jù)語言的優(yōu)點(diǎn),其特點(diǎn)如下:1.SQL是一種功能齊全的數(shù)據(jù)庫語言2.SQL是高度非過程化的語言3.SQL語言簡潔,易學(xué)易用4.語言共享1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL391.4.2SQL的數(shù)據(jù)查詢和數(shù)據(jù)操作功能Access關(guān)系數(shù)據(jù)庫管理系統(tǒng)把VBA作為宿主語言,同時(shí)全面支持SQL,并允許將SQL作為子語言嵌套在VBA中使用。SQL語言具有數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)查詢、數(shù)據(jù)控制等功能。在Access中,使用SQL主要體現(xiàn)在查詢對(duì)象的創(chuàng)建過程中。1.?dāng)?shù)據(jù)查詢SQL語言提供SELECT語句進(jìn)行數(shù)據(jù)庫的查詢,其主要功能是實(shí)現(xiàn)數(shù)據(jù)源數(shù)據(jù)的篩選、投影和連接操作,并能夠完成篩選字段重命名、多數(shù)據(jù)源數(shù)據(jù)組合、分類匯總等具體操作。在Access中,使用SQL創(chuàng)建的查詢有聯(lián)合查詢、傳遞查詢、數(shù)據(jù)定義查詢和子查詢。1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL40SELECT語句的一般格式:SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]...FROM<表名或視圖名>[,<表名或視圖名>]...[WHERE<條件表達(dá)式>][GROUPBY<列名1>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]];語句的功能是:根據(jù)WHERE子句中的條件表達(dá)式,從指定的基本表或視圖中找出滿足條件的記錄,按SELECT子句中的目標(biāo)列表達(dá)式選出記錄中的目標(biāo)列,形成結(jié)果表。如果有ORDERBY子句,則結(jié)果表要根據(jù)指定的<列名2>的值按升序或降序排序。如果有GROUPBY子句,則將結(jié)果表按<列名1>的值進(jìn)行分組,該屬性列值相等的記錄為一個(gè)組。如果GROUP子句帶HAVING短語,則只有滿足指定條件的記錄才會(huì)被輸出。1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL41例如:Access中有如下SQL查詢:SELECT課程設(shè)置表.課程代碼,課程設(shè)置表.課程名稱,課程設(shè)置表.學(xué)時(shí),課程設(shè)置表.學(xué)分FROM課程設(shè)置表WHERE(((課程設(shè)置表.學(xué)分)>4))ORDERBY課程設(shè)置表.學(xué)時(shí)DESC;其結(jié)果是從課程設(shè)置表中找出學(xué)分大于4的課程的課程代碼、課程名稱、學(xué)時(shí)、學(xué)分,并按照學(xué)時(shí)的降序輸出。1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL42SELECT語句既可以完成簡單的單表查詢,也可以完成復(fù)雜的連接查詢和嵌套查詢。Access中所有的查詢操作都可以采用SQL語句來完成。實(shí)際上在查詢?cè)O(shè)計(jì)視圖中建立一個(gè)查詢對(duì)象就是生成一條SQL語句,在查詢?cè)O(shè)計(jì)視圖中對(duì)查詢對(duì)象所做的任何修改都會(huì)導(dǎo)致對(duì)應(yīng)的SQL語句發(fā)生變化。1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL432.?dāng)?shù)據(jù)操作SQL的操作功能是指對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作功能,包括數(shù)據(jù)的插入、修改和刪除。(1)插入數(shù)據(jù)。SQL的插入語句是INSERT,一般有兩種格式。一種是插入一個(gè)元組,另一種是插入子查詢結(jié)果。插入一個(gè)元組的INSERT語句格式為:INSERTINTO<表名>[(<列名1>[,<列名2>…])]VALUES(<常量1>[,<常量2>…])其功能是將新元組插入指定表中。其中屬性列1的值為常量1,屬性列2的值為常量2,…。如果某些屬性列在INTO子句中沒有出現(xiàn),則新記錄在這些列上將取空值。1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL44例如將一個(gè)新學(xué)生記錄(學(xué)號(hào):0005;姓名:高林;院系:中文)插入到學(xué)生關(guān)系(學(xué)號(hào),姓名,院系)中。語句如下:INSERTINTO學(xué)生表VALUES(′0005′,′高林′,′中文′)插入子查詢結(jié)果語句的格式為:INSERTINTO<表名>[(<列名1>[,<列名2>…])]子查詢其功能是將子查詢的結(jié)果全部插入指定表中。1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL45(2)修改數(shù)據(jù)。SQL的修改數(shù)據(jù)語句是UPDATE,其格式為:UPDATE<表名>SET<列名>=<表達(dá)式>[,<列名>=<表達(dá)式>]…[WHERE<條件>];其功能是修改指定表中滿足WHERE子句條件的元組。其中SET子句用于指定修改方法,即用<表達(dá)式>的值取代相應(yīng)的屬性列值。如果省略WHERE子句,則表示要修改表中的所有元組。例如將表1.8所示的選課表中所有學(xué)生的成績減少10分,其命令為:UPDATE選課表SET成績=成績-101.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL46(3)刪除數(shù)據(jù)。SQL的刪除數(shù)據(jù)語句是DELETE,其格式為:DELETEFROM<表名>[WHERE<條件>];其功能是從指定表中刪除滿足WHERE子句條件的所有元組。如果省略WHERE子句,表示刪除表中的全部元組,但表的定義仍在字典中。即刪除的是表中的數(shù)據(jù),而不是表的定義。例如刪除學(xué)生表中所有記錄,其命令為:DELETEFROM學(xué)生表這條語句刪除了學(xué)生表的所有元組,將使其成為空表。1.4關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL47在關(guān)系數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)過程中,數(shù)據(jù)庫設(shè)計(jì)是核心和基礎(chǔ)。數(shù)據(jù)庫設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),有效存儲(chǔ)數(shù)據(jù),滿足用戶信息要求和處理要求。針對(duì)一個(gè)具體問題,應(yīng)該如何構(gòu)造一個(gè)符合實(shí)際的恰當(dāng)?shù)臄?shù)據(jù)模式,即應(yīng)該構(gòu)造幾個(gè)關(guān)系,每個(gè)關(guān)系應(yīng)該包括哪些屬性,各個(gè)元組的屬性值應(yīng)符合什么條件等,這些都是應(yīng)當(dāng)全面考慮的問題。在關(guān)系數(shù)據(jù)庫設(shè)計(jì)中要遵守一定的規(guī)則,下面討論數(shù)據(jù)庫關(guān)系完整性設(shè)計(jì)和數(shù)據(jù)庫規(guī)范化設(shè)計(jì)。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)481.5.1數(shù)據(jù)庫關(guān)系完整性設(shè)計(jì)關(guān)系數(shù)據(jù)庫設(shè)計(jì)是對(duì)數(shù)據(jù)進(jìn)行組織化和結(jié)構(gòu)化的過程,核心問題是關(guān)系模型的設(shè)計(jì)。關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件,是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和一致性?,F(xiàn)實(shí)世界的實(shí)際存在決定了關(guān)系必須滿足一定的完整性約束條件,這些約束表現(xiàn)在對(duì)屬性取值范圍的限制上。完整性規(guī)則就是防止用戶使用數(shù)據(jù)庫時(shí),向數(shù)據(jù)庫中加入不符合語義的數(shù)據(jù)。關(guān)系模型中有三類完整性約束:實(shí)體完整性、參照完整性和用戶定義的完整性。其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作關(guān)系的兩個(gè)不變性。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)491.實(shí)體完整性規(guī)則實(shí)體完整性是指基本關(guān)系的主屬性,即主碼的值都不能取空值。例如:教師檔案表中,“教師編號(hào)”屬性為主碼,則“教師編號(hào)”不能取空值。例如:學(xué)生選課表中,“學(xué)號(hào)”和“課程代碼”一起構(gòu)成主碼,則“學(xué)號(hào)”和“課程代碼”這兩個(gè)屬性的值均不能為空值,否則就違反了實(shí)體完整性規(guī)則。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)502.參照完整性規(guī)則現(xiàn)實(shí)世界中的實(shí)體之間往往存在某種聯(lián)系,在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的。這樣就存在著關(guān)系與關(guān)系間的引用。參照完整性規(guī)則的定義:設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的主碼,如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱F是基本關(guān)系R的外碼。對(duì)于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值);或者等于S中某個(gè)元組的主碼值。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)51例如:教師檔案關(guān)系和院系關(guān)系中主碼分別是教師編號(hào)、院系代碼,用下劃線標(biāo)識(shí)。教師檔案(教師編號(hào),教師姓名,院系代碼,專業(yè)名稱)院系(院系代碼,院系名稱)這兩個(gè)關(guān)系之間存在著屬性的引用,即教師關(guān)系引用了院系關(guān)系的主碼“院系代碼”。按照參照完整性規(guī)則,教師關(guān)系中每個(gè)元組的“院系代碼”屬性只能取下面兩類值:空值:表示這位教師還未分配到任何一個(gè)院系工作。非空值:此時(shí)取值必須和院系關(guān)系中某個(gè)元組的“院系代碼”值相同,表示這個(gè)教師分配到該院系工作。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)523.用戶定義的完整性用戶定義的完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。關(guān)系模型應(yīng)提供定義和檢驗(yàn)這類完整性規(guī)則的機(jī)制,其目的是用統(tǒng)一的方式由系統(tǒng)來處理它們,而不由應(yīng)用程序來完成這項(xiàng)工作。例如:在學(xué)生成績表中規(guī)定成績不能超過100;在教師檔案表(教師編號(hào),教師姓名,所屬院系名稱,所屬專業(yè)名稱)中,要求教師姓名的取值不能為空。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)531.5.2數(shù)據(jù)庫規(guī)范化設(shè)計(jì)關(guān)系數(shù)據(jù)庫中的關(guān)系要滿足一定要求,滿足不同程度要求的為不同范式。目前遵循的主要范式包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和第四范式(4NF)等。規(guī)范化設(shè)計(jì)的過程就是按不同的范式,將一個(gè)二維表不斷地分解成多個(gè)二維表并建立表之間的關(guān)聯(lián),最終達(dá)到一個(gè)表只描述一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系的目標(biāo)。其目的是減少冗余數(shù)據(jù),提供有效的數(shù)據(jù)檢索方法,避免不合理的插入、刪除、修改等操作,保持?jǐn)?shù)據(jù)一致性,增強(qiáng)數(shù)據(jù)庫的穩(wěn)定性、伸縮性和適應(yīng)性。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)541.第一范式關(guān)系中每一個(gè)數(shù)據(jù)項(xiàng)必須是不可再分的,滿足這個(gè)條件的關(guān)系模式就屬于第一范式。關(guān)系數(shù)據(jù)庫中的所有數(shù)據(jù)表都必然滿足第一范式。例如:將如表1.10所示的學(xué)生成績表規(guī)范為滿足第一范式的表。處理方法是處理表頭使其成為只具有一行表頭標(biāo)題的數(shù)據(jù)表,如表1.11所示。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)552.第二范式在一個(gè)滿足第一范式的關(guān)系中,如果所有非主屬性都完全依賴于主碼,則稱這個(gè)關(guān)系滿足第二范式。即對(duì)于滿足第二范式的關(guān)系,如果給定一個(gè)主碼,則可以在這個(gè)數(shù)據(jù)表中惟一確定一條記錄。一個(gè)關(guān)系模式如果不滿足第二范式,就會(huì)產(chǎn)生插入異常、刪除異常、修改復(fù)雜等問題。例如在學(xué)生選課系統(tǒng)中構(gòu)造如表1.12所示的數(shù)據(jù)表,表中沒有哪一個(gè)數(shù)據(jù)項(xiàng)能夠惟一標(biāo)識(shí)一條記錄,則不滿足第二范式。該數(shù)據(jù)表存在如下缺點(diǎn):(1)冗余度大。(2)插入異常。(3)刪除異常。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)56處理表1.12使之滿足第二范式的方法是將其分解成三個(gè)數(shù)據(jù)表,如表1.13、表1.14、表1.15所示。這三個(gè)表即為滿足第二范式的數(shù)據(jù)表。其中“學(xué)生選課表”的主碼為“學(xué)號(hào)、課程代碼”,“學(xué)生檔案表”的主碼為“學(xué)號(hào)”,“課程設(shè)置表”的主碼為“課程代碼”。1.5關(guān)系數(shù)據(jù)庫設(shè)計(jì)573.第三范式對(duì)于滿足第二范式的關(guān)系,如果每一個(gè)非主屬性都不傳遞依賴于主碼,則稱這個(gè)關(guān)系滿足第三范式。傳遞依賴就是某些數(shù)據(jù)項(xiàng)間接依賴于主碼。在如表1.15所示的表中,職稱屬于任課教師,主碼“課程代碼”不直接決定非主屬性“職稱”,“職稱”是通過“任課教師”傳遞依賴于“課程代碼”的,則此關(guān)系不滿足第三范式,在某些情況下,會(huì)存在插入異常、刪除異常和數(shù)據(jù)冗余等現(xiàn)象。為將此關(guān)系處理成滿足第三范式的數(shù)據(jù)表,可以將其分成“課程設(shè)置表”和“任課教師名單”

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論