數(shù)據(jù)庫基礎(chǔ)教程(第3版)PPT完整全套教學(xué)課件_第1頁
數(shù)據(jù)庫基礎(chǔ)教程(第3版)PPT完整全套教學(xué)課件_第2頁
數(shù)據(jù)庫基礎(chǔ)教程(第3版)PPT完整全套教學(xué)課件_第3頁
數(shù)據(jù)庫基礎(chǔ)教程(第3版)PPT完整全套教學(xué)課件_第4頁
數(shù)據(jù)庫基礎(chǔ)教程(第3版)PPT完整全套教學(xué)課件_第5頁
已閱讀5頁,還剩879頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章數(shù)據(jù)庫概覽—示例、概念與認(rèn)識(shí)

全套可編輯PPT課件學(xué)習(xí)目標(biāo)

1.了解數(shù)據(jù)管理和數(shù)據(jù)庫技術(shù)的發(fā)展歷程、數(shù)據(jù)庫特點(diǎn);2.理解數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等基本概念;3.掌握數(shù)據(jù)庫系統(tǒng)三級(jí)模式、二級(jí)映像體系結(jié)構(gòu);4.掌握數(shù)據(jù)庫系統(tǒng)的組成及各部分基本功能;5.掌握數(shù)據(jù)模型內(nèi)涵,概念模型、關(guān)系模型及其要素;6.了解數(shù)據(jù)庫的主要研究領(lǐng)域。

目錄

1.1數(shù)據(jù)管理技術(shù)的進(jìn)展

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

1.3數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)

1.4數(shù)據(jù)模型

1.1數(shù)據(jù)管理技術(shù)的進(jìn)展

1.1.1數(shù)據(jù)、數(shù)據(jù)處理和數(shù)據(jù)管理

1.1.2人工管理階段

1.1.3文件系統(tǒng)階段

1.1.4數(shù)據(jù)庫系統(tǒng)階段1.1.1數(shù)據(jù)、數(shù)據(jù)處理和數(shù)據(jù)管理數(shù)據(jù)(data)是描述客觀事物的符號(hào)。例如:(100001,張小林,1982-2-1,男,江蘇南京,02581334567True,銀牌客戶)數(shù)據(jù)上述符號(hào)表示了客戶特征,稱之為客戶數(shù)據(jù)。1.1.1數(shù)據(jù)、數(shù)據(jù)處理和數(shù)據(jù)管理計(jì)算機(jī)數(shù)據(jù)處理是對(duì)數(shù)據(jù)進(jìn)行收集、存儲(chǔ)、加工、傳播等一系列活動(dòng)的總和,其目的是從大量從復(fù)雜的甚至難以理解的數(shù)據(jù)中抽取有價(jià)值、有意義的數(shù)據(jù),作為決策的依據(jù)。數(shù)據(jù)處理數(shù)據(jù)管理是指對(duì)數(shù)據(jù)進(jìn)行收集、整理、組織、存儲(chǔ)、檢索和維護(hù)等操作,其目的在于科學(xué)有效的保存和管理大量復(fù)雜的數(shù)據(jù),充分有效地發(fā)揮數(shù)據(jù)的作用。數(shù)據(jù)管理數(shù)據(jù)管理是數(shù)據(jù)處理的核心1.1.2人工管理階段

特點(diǎn):(1)數(shù)據(jù)不能長期保存在計(jì)算機(jī)中。(2)應(yīng)用程序管理數(shù)據(jù),數(shù)據(jù)與程序結(jié)合在一起;若數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化,則必須對(duì)程序進(jìn)行修改;這種特性稱為數(shù)據(jù)與程序不具有獨(dú)立性。(3)數(shù)據(jù)是面向應(yīng)用的,一組數(shù)據(jù)對(duì)應(yīng)一個(gè)程序,數(shù)據(jù)不共享。當(dāng)多個(gè)應(yīng)用程序涉及相同數(shù)據(jù)時(shí),必須各自定義。

1.1.3文件系統(tǒng)階段

優(yōu)點(diǎn):(1)數(shù)據(jù)能夠長期保存,可以反復(fù)對(duì)其進(jìn)行查詢、修改等操作。(2)由專門軟件對(duì)數(shù)據(jù)進(jìn)行管理,應(yīng)用程序與數(shù)據(jù)之間由文件系統(tǒng)所提供的存取方法進(jìn)行轉(zhuǎn)換,程序與數(shù)據(jù)之間有了一定的獨(dú)立性。缺點(diǎn):(1)數(shù)據(jù)共享性差,冗余度大。(2)數(shù)據(jù)獨(dú)立性差。1.1.4數(shù)據(jù)庫系統(tǒng)階段

特點(diǎn):(1)數(shù)據(jù)結(jié)構(gòu)化(2)數(shù)據(jù)共享性高、冗余度低、易于擴(kuò)充(3)數(shù)據(jù)獨(dú)立性高(4)數(shù)據(jù)統(tǒng)一管理與控制第一代數(shù)據(jù)庫系統(tǒng)20世紀(jì)70年代,層次和網(wǎng)狀數(shù)據(jù)庫系統(tǒng)代表:層次模型數(shù)據(jù)庫系統(tǒng)的典型代表是IBM公司的IMS;網(wǎng)狀模型的規(guī)范是DBTG,實(shí)際系統(tǒng)有:HP公司的IMAGE、Honeywell公司的IDS/2等第二代數(shù)據(jù)庫系統(tǒng)20世紀(jì)70年代后期以后,關(guān)系數(shù)據(jù)庫系統(tǒng)代表:Oracle、SQLServer、Sybase、DB2、Informix等第三代數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)模型不斷發(fā)展,面向?qū)ο竽P?、半結(jié)構(gòu)化模型、非關(guān)系模型先后被提出數(shù)據(jù)庫技術(shù)和其他學(xué)科內(nèi)容相結(jié)合(分布式數(shù)據(jù)庫、工程數(shù)據(jù)庫、空間數(shù)據(jù)庫等)1.1.4數(shù)據(jù)庫系統(tǒng)階段

數(shù)據(jù)庫系統(tǒng)的發(fā)展1.2理解數(shù)據(jù)庫系統(tǒng)

1.2.1示例—商品訂購管理系統(tǒng)

1.2.2什么是數(shù)據(jù)庫系統(tǒng)

1.2.3數(shù)據(jù)庫系統(tǒng)的組成1.2.1示例—

商品訂購管理系統(tǒng)本書設(shè)計(jì)了一個(gè)簡化的“商品訂購管理系統(tǒng)”作為全書的主線示例。左圖為系統(tǒng)的主界面,包含了系統(tǒng)功能的導(dǎo)航菜單。設(shè)計(jì)數(shù)據(jù)庫:本示例創(chuàng)建了一個(gè)商品訂購數(shù)據(jù)庫,其中包括客戶、商品和訂單的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)值。設(shè)計(jì)應(yīng)用系統(tǒng):主要功能包括客戶數(shù)據(jù)維護(hù)(包括增、刪、改)、商品數(shù)據(jù)維護(hù)(包括增、刪、改)、訂單數(shù)據(jù)錄入、訂單數(shù)據(jù)修改與刪除、訂單數(shù)據(jù)查詢。1.2.1示例—

商品訂購管理系統(tǒng)單擊“訂單數(shù)據(jù)”→“訂單數(shù)據(jù)查詢”菜單命令,則應(yīng)用程序向數(shù)據(jù)庫管理系統(tǒng)發(fā)出數(shù)據(jù)查詢請(qǐng)求,由數(shù)據(jù)庫管理系統(tǒng)從商品訂購數(shù)據(jù)庫中檢索出符合條件的數(shù)據(jù),并返回給應(yīng)用程序,應(yīng)用程序再以特定的形式顯示給用戶,如上圖所示。1.2.1示例—

商品訂購管理系統(tǒng)上圖為客戶數(shù)據(jù)維護(hù)界面。可實(shí)現(xiàn)客戶數(shù)據(jù)的增加、修改和刪除。

1.2.1示例—

商品訂購管理系統(tǒng)用戶對(duì)數(shù)據(jù)庫中數(shù)據(jù)的訪問路徑為:用戶操作命令→應(yīng)用程序→DBMS→數(shù)據(jù)庫1.2.2什么是數(shù)據(jù)庫系統(tǒng)在計(jì)算機(jī)系統(tǒng)上引入數(shù)據(jù)庫技術(shù)就構(gòu)成一個(gè)數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)。數(shù)據(jù)庫系統(tǒng)是指帶有數(shù)據(jù)庫并利用數(shù)據(jù)庫技術(shù)進(jìn)行數(shù)據(jù)管理的計(jì)算機(jī)系統(tǒng)。DBS有兩個(gè)基本要素:一是DBS首先是一個(gè)計(jì)算機(jī)系統(tǒng);二是該系統(tǒng)的目標(biāo)是存儲(chǔ)數(shù)據(jù)并支持用戶查詢和更新所需要的數(shù)據(jù)。

1.2.3數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫軟件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)操作系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)人員數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計(jì)人員應(yīng)用程序員最終用戶1.3數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)

1.3.1數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)

1.3.2數(shù)據(jù)庫系統(tǒng)的二級(jí)映像

1.3.3數(shù)據(jù)庫管理系統(tǒng)1.3.1數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內(nèi)模式三級(jí)構(gòu)成。1.3.1數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)模式也稱邏輯模式或概念模式,它是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。一個(gè)數(shù)據(jù)庫只有一個(gè)模式,它既不涉及物理存儲(chǔ)細(xì)節(jié)、也不涉及應(yīng)用程序和程序設(shè)計(jì)語言。定義模式時(shí),不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),而且要定義數(shù)據(jù)之間的聯(lián)系,以及與數(shù)據(jù)有關(guān)的安全性、完整性要求。模式1.3.1數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)外模式也稱子模式或用戶模式,它是模式的子集。外模式是具體面向應(yīng)用的,是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)所能使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。由于不同的應(yīng)用有不同的外模式,因此一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式。

外模式1.3.1數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)內(nèi)模式也稱存儲(chǔ)模式,它是數(shù)據(jù)庫的物理結(jié)構(gòu),是數(shù)據(jù)庫在存儲(chǔ)介質(zhì)上的存儲(chǔ)結(jié)構(gòu)。內(nèi)模式主要描述數(shù)據(jù)的物理結(jié)構(gòu)和存儲(chǔ)方式,例如,記錄是按B樹結(jié)構(gòu)還是按Hash方式存儲(chǔ),索引如何組織、數(shù)據(jù)是否加密等。一個(gè)數(shù)據(jù)庫只有一個(gè)內(nèi)模式。內(nèi)模式1.3.2數(shù)據(jù)庫系統(tǒng)的二級(jí)映像數(shù)據(jù)庫系統(tǒng)的二級(jí)映像(mapping)是指外模式與模式之間、模式與內(nèi)模式之間的映像關(guān)系。1.3.2數(shù)據(jù)庫系統(tǒng)的二級(jí)映像外模式/模式映像對(duì)于每一個(gè)外模式,數(shù)據(jù)庫系統(tǒng)都有一個(gè)外模式/模式映像,它定義了該外模式與模式的對(duì)應(yīng)關(guān)系。外模式/模式映像保證了數(shù)據(jù)的邏輯獨(dú)立性。當(dāng)模式發(fā)生改變時(shí)(如增加新的數(shù)據(jù)類型或數(shù)據(jù)項(xiàng)),只要對(duì)各外模式/模式映像作相應(yīng)修改,就可以使外模式保持不變,從而不必修改應(yīng)用程序。1.3.2數(shù)據(jù)庫系統(tǒng)的二級(jí)映像模式/內(nèi)模式映像數(shù)據(jù)庫系統(tǒng)的模式/內(nèi)模式映像是唯一的,它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系,其描述通常包含在模式定義中。模式/內(nèi)模式映像保證了數(shù)據(jù)庫的物理獨(dú)立性。當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)發(fā)生改變時(shí),對(duì)模式/內(nèi)模式映像作相應(yīng)的修改,就可以使模式保持不變,從而應(yīng)用程序也不必修改。①保證數(shù)據(jù)獨(dú)立性。將外模式與模式分開,保證了數(shù)據(jù)的邏輯獨(dú)立性;將內(nèi)模式與模式分開,保證了數(shù)據(jù)的物理獨(dú)立性。②有利于數(shù)據(jù)共享,減少數(shù)據(jù)冗余。③有利于數(shù)據(jù)的安全性。不同的用戶在各自的外模式下根據(jù)要求操作數(shù)據(jù),只能對(duì)限定的數(shù)據(jù)進(jìn)行操作。④簡化了用戶接口。用戶按照外模式編寫應(yīng)用程序或輸入命令,而無須了解數(shù)據(jù)庫全局邏輯結(jié)構(gòu)和內(nèi)部存儲(chǔ)結(jié)構(gòu),方便用戶使用。數(shù)據(jù)庫系統(tǒng)的三級(jí)模式與二級(jí)映像具有以下優(yōu)點(diǎn)1.3.3數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)是對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一管理與控制的專門系統(tǒng)軟件。

①有效地組織、存取和維護(hù)數(shù)據(jù)。②數(shù)據(jù)定義功能。DBMS通過數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL)定義數(shù)據(jù)庫的各類數(shù)據(jù)對(duì)象,包括數(shù)據(jù)的結(jié)構(gòu)、數(shù)據(jù)約束條件等。③數(shù)據(jù)操縱功能。DBMS提供數(shù)據(jù)操縱語言(DataManipulationLanguage,DML),用戶使用DML實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢、增加、刪除和修改等操作。④數(shù)據(jù)庫的事務(wù)管理和運(yùn)行管理。DBMS提供數(shù)據(jù)控制語言(DataControlLanguage,DCL),數(shù)據(jù)庫管理員使用DCL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的安全性保護(hù)、完整性檢查、并發(fā)控制、數(shù)據(jù)庫恢復(fù)等數(shù)據(jù)庫控制功能。⑤數(shù)據(jù)庫的建立和維護(hù)功能。⑥其他功能。包括:數(shù)據(jù)庫初始數(shù)據(jù)輸入與轉(zhuǎn)換、數(shù)據(jù)庫轉(zhuǎn)儲(chǔ)、數(shù)據(jù)庫重組、數(shù)據(jù)庫性能監(jiān)視與分析、數(shù)據(jù)通信等,這些功能通常由DBMS提供的實(shí)用程序或管理工具完成。

1.3.3數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)的功能1.4數(shù)據(jù)模型

1.4.1數(shù)據(jù)模型的概念

1.4.2概念數(shù)據(jù)模型

1.4.3邏輯數(shù)據(jù)模型1.4.1數(shù)據(jù)模型的概念通俗地講數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬。例如:地圖、航模飛機(jī)。在數(shù)據(jù)庫中用數(shù)據(jù)模型這個(gè)工具來抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。數(shù)據(jù)模型應(yīng)滿足三方面要求能比較真實(shí)地模擬現(xiàn)實(shí)世界容易為人所理解便于在計(jì)算機(jī)上實(shí)現(xiàn)1.4.1數(shù)據(jù)模型的概念數(shù)據(jù)抽象過程客觀對(duì)象的抽象過程––兩步抽象現(xiàn)實(shí)世界中的客觀對(duì)象抽象為概念模型;把概念模型轉(zhuǎn)換為某個(gè)DBMS支持的數(shù)據(jù)模型。1.4.1數(shù)據(jù)模型的概念數(shù)據(jù)模型的層次(1)概念數(shù)據(jù)模型(ConceptualDataModel),也稱概念模型或信息模型。它是面向用戶的模型,是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。其基本特征是按用戶觀點(diǎn)對(duì)信息進(jìn)行建模,與具體DBMS無關(guān)。(2)邏輯數(shù)據(jù)模型(LogicalDataModel),也稱結(jié)構(gòu)數(shù)據(jù)模型,其特征是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,服務(wù)于DBMS的應(yīng)用實(shí)現(xiàn)。結(jié)構(gòu)化數(shù)據(jù)模型包括:層次模型、網(wǎng)狀模型、關(guān)系模型等。(3)物理數(shù)據(jù)模型(PhysicalDataModel),用于描述數(shù)據(jù)在存儲(chǔ)介質(zhì)上的組織結(jié)構(gòu),它與具體DBMS有關(guān),也與操作系統(tǒng)和硬件有關(guān),是物理層次上的數(shù)據(jù)模型。1.4.2概念數(shù)據(jù)模型概念模型的用途概念模型用于信息世界的建模是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次是數(shù)據(jù)庫設(shè)計(jì)的有力工具數(shù)據(jù)庫設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言對(duì)概念模型的基本要求較強(qiáng)的語義表達(dá)能力,能夠方便、直接地表達(dá)應(yīng)用中的各種語義知識(shí)簡單、清晰、易于用戶理解1.4.2概念數(shù)據(jù)模型概念模型的表示方法實(shí)體-聯(lián)系方法(E-R方法)用E-R圖來描述現(xiàn)實(shí)世界的概念模型E-R方法也稱為E-R模型UML(統(tǒng)一建模語言)1.4.2概念數(shù)據(jù)模型E-R模型三要素(1)實(shí)體(Entity)。實(shí)體是指客觀存在并可相互區(qū)別的事物。實(shí)體可以是人、事或物,也可以是抽象的概念。如一件商品、一個(gè)客戶、一份訂單等都是實(shí)體。(2)屬性(Attribute)。實(shí)體通常有若干特征,每個(gè)特征稱為實(shí)體的一個(gè)屬性。屬性刻畫了實(shí)體在某方面的特性。例如,商品實(shí)體的屬性可以有商品編號(hào)、商品類別、商品名稱、生產(chǎn)商等。(3)聯(lián)系(Relationship)?,F(xiàn)實(shí)世界中事物之間的聯(lián)系反映在E-R模型中就是實(shí)體間的聯(lián)系。例如,訂單就是客戶和商品之間的聯(lián)系。1.4.2概念數(shù)據(jù)模型實(shí)體型和實(shí)體值實(shí)體型(EntityType)是指對(duì)某一類數(shù)據(jù)結(jié)構(gòu)和特征的描述。通常實(shí)體型由實(shí)體名和屬性名的集合來抽象和刻畫同類實(shí)體。例如,商品(商品編號(hào),商品類別,商品名稱,生產(chǎn)商,品牌,單價(jià),庫存量,保質(zhì)期)是一個(gè)實(shí)體型。實(shí)體值(EntityValue)是實(shí)體型的內(nèi)容,由描述實(shí)體的各個(gè)屬性值組成。例如,(50020003,體育用品,足球,美好,65,美好體育用品公司,20,2000-1-1)是實(shí)體值。1.4.2概念數(shù)據(jù)模型聯(lián)系的分類實(shí)體型1聯(lián)系名實(shí)體型2111:1聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型2mnm:n聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型21n1:n聯(lián)系1.4.2概念數(shù)據(jù)模型E-R模型的表示—E-R圖實(shí)體型的表示用矩形表示,矩形框內(nèi)寫明實(shí)體名屬性用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來聯(lián)系聯(lián)系本身:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)聯(lián)系的屬性:聯(lián)系本身也是一種實(shí)體型,也可以有屬性。如果一個(gè)聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來1.4.2概念數(shù)據(jù)模型E-R圖示例:

商品實(shí)體具有商品編號(hào)、商品類別、商品名稱、生產(chǎn)商、單價(jià)、庫存量、保質(zhì)期等屬性,用E-R圖表示。1.4.2概念數(shù)據(jù)模型E-R圖示例:客戶訂購某類商品均有數(shù)量,則實(shí)體型“客戶”與實(shí)體型“商品”之間的聯(lián)系就具有屬性“數(shù)量”,其E-R圖表示如下。1.4.3邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型是嚴(yán)格定義的一組概念的集合三要素:數(shù)據(jù)結(jié)構(gòu)

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

數(shù)據(jù)完整性約束邏輯模型三要素1.4.3邏輯數(shù)據(jù)模型邏輯模型三要素:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是對(duì)系統(tǒng)靜態(tài)特性的描述,主要描述數(shù)據(jù)庫組成對(duì)象以及對(duì)象之間的聯(lián)系。數(shù)據(jù)結(jié)構(gòu)是刻畫數(shù)據(jù)模型最重要的方面。因此在數(shù)據(jù)庫系統(tǒng)中,通常按照其數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型。主要的數(shù)據(jù)模型有:層次模型網(wǎng)狀模型關(guān)系模型1.4.3邏輯數(shù)據(jù)模型邏輯模型三要素:數(shù)據(jù)操作數(shù)據(jù)操作指對(duì)數(shù)據(jù)庫中各種對(duì)象(型)的實(shí)例(值)允許執(zhí)行的操作及有關(guān)的操作規(guī)則,它是對(duì)數(shù)據(jù)庫動(dòng)態(tài)特性的描述。數(shù)據(jù)庫中的數(shù)據(jù)操作主要分為查詢、更新兩大類,其中數(shù)據(jù)更新主要是指對(duì)數(shù)據(jù)記錄的增、刪、改。數(shù)據(jù)模型需要定義這些操作的語義、操作符號(hào)、操作規(guī)則及實(shí)現(xiàn)操作的相關(guān)語句。

1.4.3邏輯數(shù)據(jù)模型邏輯模型三要素:數(shù)據(jù)完整性約束完整性約束是數(shù)據(jù)的一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和存儲(chǔ)規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,保證數(shù)據(jù)的正確、有效、相容。

1.4.3邏輯數(shù)據(jù)模型關(guān)系模型三要素(1)數(shù)據(jù)結(jié)構(gòu)。關(guān)系模型中基本的數(shù)據(jù)結(jié)構(gòu)是表格,關(guān)系模型使用二維表來表示實(shí)體及其聯(lián)系。(2)數(shù)據(jù)操作。關(guān)系模型的數(shù)據(jù)操作主要包括查詢和更新。關(guān)系數(shù)據(jù)操作具有兩個(gè)顯著特點(diǎn):一是關(guān)系操作是集合操作,即操作的對(duì)象和結(jié)果均為集合;二是關(guān)系模型將操作中的存取路徑向用戶屏蔽起來,用戶只要說明做什么,而不必指出怎樣做。(3)數(shù)據(jù)完整性約束。對(duì)關(guān)系模型中的數(shù)據(jù)操作必須滿足關(guān)系完整性約束規(guī)則。關(guān)系完整性約束規(guī)則包括三類:實(shí)體完整性、參照完整性和用戶定義完整性。

數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫的基本概念數(shù)據(jù)、數(shù)據(jù)處理、數(shù)據(jù)管理、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、

數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)管理的發(fā)展過程人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)的特點(diǎn)結(jié)構(gòu)化、共享性、獨(dú)立型、統(tǒng)一管理與控制數(shù)據(jù)模型數(shù)據(jù)模型的概念:對(duì)數(shù)據(jù)特征的抽象描述概念模型,E-R模型(三種實(shí)體型聯(lián)系,ER圖)邏輯數(shù)據(jù)模型層次模型、網(wǎng)狀模型、關(guān)系模型本章小結(jié)數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)三級(jí)模式結(jié)構(gòu)模式、外模式、內(nèi)模式數(shù)據(jù)庫系統(tǒng)的二級(jí)映像模式/外模式映像、模式/內(nèi)模式映像數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用開發(fā)工具、數(shù)據(jù)庫管理員DBA、數(shù)據(jù)庫應(yīng)用系統(tǒng)、用戶本章小結(jié)第2章關(guān)系數(shù)據(jù)模型—關(guān)系數(shù)據(jù)庫基礎(chǔ)

學(xué)習(xí)目標(biāo)

1.理解關(guān)系模型的性質(zhì)、特點(diǎn)及其三要素;2.掌握關(guān)系數(shù)據(jù)結(jié)構(gòu)及其形式化定義;3.掌握關(guān)系代數(shù)的8種運(yùn)算符及其運(yùn)算規(guī)則,能熟練表達(dá)查詢要求;4.理解元組關(guān)系演算和域關(guān)系演算的特點(diǎn)和查詢表達(dá)方式;5.掌握關(guān)系的完整性規(guī)則及其在數(shù)據(jù)庫系統(tǒng)中的作用。

目錄

2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)2.2關(guān)系操作

2.3關(guān)系完整性

(1)關(guān)系模型建立在嚴(yán)格的數(shù)學(xué)理論基礎(chǔ)之上。(2)數(shù)據(jù)結(jié)構(gòu)簡單清晰,用戶易懂易用。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)雖然簡單,但卻能表達(dá)豐富的語義,能夠較好地描述現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系。(3)數(shù)據(jù)物理存取路徑對(duì)用戶是透明的,有更高的數(shù)據(jù)獨(dú)立性、更好的數(shù)據(jù)安全性。關(guān)系模型的特點(diǎn)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)

2.1.1二維表與關(guān)系數(shù)據(jù)結(jié)構(gòu)

2.1.2關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義

2.1.3關(guān)系的性質(zhì)

2.1.4關(guān)系模式

2.1.5關(guān)系數(shù)據(jù)庫

2.1.6碼2.1.1二維表與關(guān)系數(shù)據(jù)結(jié)構(gòu)表名表頭數(shù)據(jù)商品信息表商

號(hào)商

別商

稱單

價(jià)生

產(chǎn)

商保

質(zhì)

期庫

量10010001食品咖啡50.00宇一飲料公司2013-12-3110010010002食品蘋果汁5.20宇一飲料公司2013-06-082020180001服裝休閑服120.00天天服飾公司2000-01-01530010001文具簽字筆3.50新新文化用品制造廠2000-01-011002.1.1二維表與關(guān)系數(shù)據(jù)結(jié)構(gòu)二維表的特點(diǎn)(1)每個(gè)表具有表名(2)表由表頭和若干行數(shù)據(jù)兩部分構(gòu)成(3)表有若干列,每列都有列名(4)同一列的值必須取自同一個(gè)域(5)每一行的數(shù)據(jù)代表一個(gè)實(shí)體的信息2.1.1二維表與關(guān)系數(shù)據(jù)結(jié)構(gòu)

一個(gè)關(guān)系就是一個(gè)規(guī)范化的二維表。

“規(guī)范化”的含義是:表中每列都是原子項(xiàng),即沒有“表中表”。

一個(gè)關(guān)系由關(guān)系名、關(guān)系模式和關(guān)系實(shí)例組成。通常,它們分別對(duì)應(yīng)于二維表的表名、表頭和數(shù)據(jù)。例如,“商品信息表”表示成關(guān)系:

2.1.1二維表與關(guān)系數(shù)據(jù)結(jié)構(gòu)(1)關(guān)系:一個(gè)關(guān)系(Relation)指一張二維表。(2)元組:一個(gè)元組(Tuple)指二維表中的一行。(3)屬性:一個(gè)屬性(Attribute)指二維表中的一列,表中每列均有名稱,即屬性名。(4)碼(key):也稱鍵、關(guān)鍵字、關(guān)鍵碼,指表中可唯一確定元組的屬性或?qū)傩越M合。(5)域(Domain):指屬性的取值范圍。(6)分量:指元組中的一個(gè)屬性值。(7)關(guān)系模式:是對(duì)關(guān)系“型”的描述,通常表示為:關(guān)系名(屬性1,屬性2,…,屬性n)術(shù)語2.1.1二維表與關(guān)系數(shù)據(jù)結(jié)構(gòu)術(shù)語對(duì)照表關(guān)

術(shù)

語現(xiàn)實(shí)世界術(shù)語關(guān)系名表名關(guān)系模式表頭關(guān)系二維表元組記錄屬性列屬性名列名屬性值列值2.1.2關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義域是一組具有相同數(shù)據(jù)類型的值的集合。例:

整數(shù)實(shí)數(shù)介于某個(gè)取值范圍的整數(shù)指定長度的字符串集合

{‘男’,‘女’}

介于某個(gè)取值范圍的日期域(Domain)2.1.2關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義(1)笛卡兒積給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡兒積為:D1×D2×…×Dn={(d1,d2,…,dn)|di

Di,i=1,2,…,n}所有域的所有取值的一個(gè)組合不能重復(fù)笛卡兒積(CartesianProduct)(2)

元組(Tuple)笛卡爾積中每一個(gè)元素(d1,d2,…,dn)稱為一個(gè)n元組(n-tuple)或簡稱元組。

(3)

分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個(gè)值di稱為一個(gè)分量。

2.1.2關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義笛卡兒積(CartesianProduct)2.1.2關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義笛卡兒積(CartesianProduct)(4)基數(shù)(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:在上例中,基數(shù):2×2×3=12,即D1×D2×D3共有2×2×3=12個(gè)元組2.1.2關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義笛卡兒積(CartesianProduct)(5)笛卡爾積的表示方法笛卡爾積可表示為一個(gè)二維表。表中的每行對(duì)應(yīng)一個(gè)元組,表中的每列對(duì)應(yīng)一個(gè)域。例如:D1D2D1D210010001食品20180001食品10010001服裝20180001服裝10010001文具20180001文具10010002食品30010001食品10010002服裝30010001服裝10010002文具30010001文具2.1.2關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系(Relation)定義:D1×D2×…×Dn的子集稱為在域D1,D2,…,Dn上的關(guān)系,表示為:R(D1,D2,…,Dn)

R:關(guān)系名

n:關(guān)系的目或度(Degree)說明:關(guān)系是笛卡爾積的有意義的、有限子集。關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示。單元關(guān)系與二元關(guān)系當(dāng)n=1時(shí),稱該關(guān)系為單元關(guān)系(Unaryrelation)。當(dāng)n=2時(shí),稱該關(guān)系為二元關(guān)系(Binaryrelation)。(1)列是同質(zhì)的(Homogeneous),即每列中的分量必須是同一類型的數(shù)據(jù)。(2)不同的列可以出自同一個(gè)域,但不同的屬性必須賦予不同的屬性名。(3)列的順序可以任意交換。交換時(shí),應(yīng)連同屬性名一起交換。(4)任意兩個(gè)元組不能完全相同。(5)關(guān)系中元組的順序可任意,即可任意交換兩行的次序。(6)分量必須取原子值,即要求每個(gè)分量都是不可再分的數(shù)據(jù)項(xiàng)。2.1.3關(guān)系的性質(zhì)2.1.4關(guān)系模式關(guān)系模式(RelationSchema)是型關(guān)系是值關(guān)系模式是對(duì)關(guān)系的描述元組集合的結(jié)構(gòu)元組語義以及完整性約束條件屬性間的數(shù)據(jù)依賴關(guān)系集合

2.1.4關(guān)系模式定義關(guān)系模式關(guān)系模式可形式化地表示為:

R(U,D,dom,F(xiàn))

R關(guān)系名

U

組成該關(guān)系的屬性名集合

D

屬性組U中屬性所來自的域

dom

屬性向域的映象集合

F

屬性間的數(shù)據(jù)依賴關(guān)系集合關(guān)系模式通??珊営洖?/p>

R(U)

或R(A1,A2,…,An)

R關(guān)系名A1,A2,…,An屬性名注:域名及屬性向域的映象常常直接說明為屬性的類型、長度2.1.4關(guān)系模式定義關(guān)系模式在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫。例如,在研究商品訂購管理的問題域中,商品(GoodsInfo)、客戶(CustomerInfo)、商品訂購(OrderList)這三個(gè)關(guān)系的集合就構(gòu)成商品訂購數(shù)據(jù)庫。

2.1.5關(guān)系數(shù)據(jù)庫定義關(guān)系數(shù)據(jù)庫也有型和值之分關(guān)系數(shù)據(jù)庫的型稱為關(guān)系數(shù)據(jù)庫模式,是對(duì)關(guān)系數(shù)據(jù)庫的描述.關(guān)系數(shù)據(jù)庫的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常簡稱為關(guān)系數(shù)據(jù)庫.2.1.5關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫的型和值2.1.5關(guān)系數(shù)據(jù)庫空值在關(guān)系元組中允許出現(xiàn)空值。空值表示信息的空缺??罩当硎疚粗闹祷虿淮嬖谥?。例如,GoodsOrder關(guān)系中,某個(gè)商品沒有備注信息,則該商品元組的“備注”分量值即為空值。空值一般用關(guān)鍵詞NULL表示。

2.1.6碼設(shè)關(guān)系R(A1,A2,…,An),其屬性為A1,A2,…,An,屬性集K為R的子集,K=(Ai,Aj,…,Ak),1≤i,j,…,k≤n。當(dāng)且僅當(dāng)滿足下列兩個(gè)條件時(shí),K被稱為候選碼:(1)唯一性。對(duì)關(guān)系R的任兩個(gè)元組,其在屬性集K上的值是不同的。(2)最小性。屬性集K=(Ai,Aj,…,Ak)是最小集,即若刪除K中的任一屬性,K都不滿足最小性。

候選碼(Candidatekey)2.1.6碼若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primarykey)包含于候選碼的屬性稱為主屬性(Primeattribute)。不包含在任何侯選碼中的屬性稱為非主屬性(Non-keyattribute)主碼、主屬性、非主屬性2.1.6碼如果關(guān)系R1的屬性或?qū)傩越MK不是R1的主碼,而是另一關(guān)系R2的主碼,則稱K為關(guān)系R1的外碼(ForeignKey).并稱關(guān)系R1為參照關(guān)系(ReferencingRelation)關(guān)系R2為被參照關(guān)系(ReferencedRelation)外碼2.2關(guān)系操作

2.2.1基本關(guān)系操作

2.2.2關(guān)系數(shù)據(jù)語言分類

2.2.3關(guān)系代數(shù)*2.2.4關(guān)系演算2.2.1基本關(guān)系操作(1)查詢:數(shù)據(jù)查詢操作用于對(duì)關(guān)系數(shù)據(jù)進(jìn)行各種檢索。它是一個(gè)數(shù)據(jù)庫最基本的功能,通過查詢,用戶可以訪問關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。查詢可以在一個(gè)關(guān)系內(nèi)或多個(gè)關(guān)系間進(jìn)行。關(guān)系查詢的基本單位是元組分量,查詢即定位符合條件的元組。(2)更新:數(shù)據(jù)更新操作包括插入、刪除和修改三種。數(shù)據(jù)刪除的基本單位為元組,其功能是將指定關(guān)系內(nèi)的指定元組刪除。數(shù)據(jù)插入的功能是在指定關(guān)系中插入一個(gè)或多個(gè)元組。數(shù)據(jù)修改是在一個(gè)關(guān)系中修改指定的元組屬性值。

2.2.1基本關(guān)系操作關(guān)系運(yùn)算2.2.2關(guān)系數(shù)據(jù)語言分類2.2.3關(guān)系代數(shù)

概述

傳統(tǒng)的集合運(yùn)算專門的關(guān)系運(yùn)算2.2.3關(guān)系代數(shù)概述關(guān)系代數(shù)

一種抽象的查詢語言。用對(duì)關(guān)系的運(yùn)算來表達(dá)查詢。關(guān)系代數(shù)表達(dá)式的三個(gè)要素運(yùn)算對(duì)象:關(guān)系運(yùn)算結(jié)果:關(guān)系運(yùn)算符:(集合、專門關(guān)系代數(shù)、比較、邏輯)2.2.3關(guān)系代數(shù)運(yùn)算符類別記

號(hào)含

義集合運(yùn)算符∪并—差∩交×笛卡兒積專門的關(guān)系運(yùn)算符σ選擇Π投影?連接÷除法比較運(yùn)算符<

小于≤小于等于>

大于≥大于等于=等于<>

不等于邏輯運(yùn)算符┐非∧與∨或2.2.3關(guān)系代數(shù)傳統(tǒng)的集合運(yùn)算并差交廣義笛卡兒積2.2.3關(guān)系代數(shù)對(duì)R和S的要求:具有相同的目數(shù)n相應(yīng)的屬性取自同一個(gè)域R∪S仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成

R∪S={t|t

R∨t

S}傳統(tǒng)的集合運(yùn)算–并(Union)2.2.3關(guān)系代數(shù)傳統(tǒng)的集合運(yùn)算–差(Difference)對(duì)R和S的要求:具有相同的目數(shù)n相應(yīng)的屬性取自同一個(gè)域R-S仍為n目關(guān)系,由屬于R但不屬于S的元組組成

R-S={t|t

R∧t

S}2.2.3關(guān)系代數(shù)傳統(tǒng)的集合運(yùn)算–交(Intersection)對(duì)R和S的要求:具有相同的目數(shù)n相應(yīng)的屬性取自同一個(gè)域R∩S仍為n目關(guān)系,由既屬于R又屬于S的元組組成

R∩

S={t|t

R∧t

S}

R∩S=R–(R-S)2.2.3關(guān)系代數(shù)傳統(tǒng)的集合運(yùn)算–廣義笛卡兒積

(ExtendedCartesianProduct)Rn目關(guān)系,k1個(gè)元組Sm目關(guān)系,k2個(gè)元組R×S

列:(n+m)列的元組的集合元組的前n列是關(guān)系R的一個(gè)元組后m列是關(guān)系S的一個(gè)元組行:k1×k2個(gè)元組R×S={tr

ts|tr

R∧ts

S}2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算選擇投影連接除法2.2.3關(guān)系代數(shù)表示記號(hào)(1)R,t

R,t[Ai]

設(shè)關(guān)系模式為R(A1,A2,…,An),它的一個(gè)關(guān)系設(shè)為R。t

R表示t是R的一個(gè)元組;t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個(gè)分量。(2)A,t[A],A若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。(3)tr

tsR為n目關(guān)系,S為m目關(guān)系。tr

R,ts

S,tr

ts稱為元組的連接。它的前n個(gè)分量為R中的一個(gè)n元組,后m個(gè)分量為S中的一個(gè)m元組。2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–選擇(Selection)選擇又稱為限制(Restriction)選擇運(yùn)算符的含義在關(guān)系R中選擇滿足給定條件的諸元組

σF(R)={t|t

R∧F(t)='真'}F:選擇條件,是一個(gè)邏輯表達(dá)式,基本形式為:

[(]

X1θY1[)][φ[(]X2θY2[)]]…θ:比較運(yùn)算符(>,≥,<,≤,=或<>)Xi,Yi等:屬性名、常量、簡單函數(shù);屬性名也可以用它的序號(hào)來代替;φ:邏輯運(yùn)算符(∧或∨)[]:表示任選項(xiàng)…:表示格式可以重復(fù)下去2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–選擇(Selection)選擇運(yùn)算是從行的角度進(jìn)行的運(yùn)算σ2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–投影(Projection)投影運(yùn)算符的含義從R中選擇出若干屬性列組成新的關(guān)系

πA(R)={t[A]|t

R};其中A為R中的屬性列投影操作主要是從列的角度進(jìn)行運(yùn)算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)π2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–連接(join

)連接也稱為θ連接連接運(yùn)算的含義從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組

RS={|tr

R∧ts

S∧tr[A]θts[B]}A和B:分別為R和S上度數(shù)相等且可比的屬性組θ:比較運(yùn)算符

連接運(yùn)算從R和S的廣義笛卡爾積R×S中選?。≧關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系的元組。

AθBtrts2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–連接(join

)兩類常用連接運(yùn)算等值連接(equijoin)

什么是等值連接θ為“=”的連接運(yùn)算稱為等值連接等值連接的含義從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:

RS={|tr

R∧ts

S∧tr[A]=ts[B]}A=Btrts2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–連接(join

)自然連接(Naturaljoin)

什么是自然連接自然連接是一種特殊的等值連接兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組在結(jié)果中把重復(fù)的屬性列去掉自然連接的含義

R和S具有相同的屬性組B

R

S={|tr

R∧ts

S∧tr[B]=ts[B]}trts2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–連接(join

)一般的連接操作是從行的角度進(jìn)行運(yùn)算自然連接還需要取消重復(fù)列,所以是同時(shí)從行和列的角度進(jìn)行運(yùn)算。

AθBRS2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–除法(Division

)象集(ImagesSet)的定義:

給定一個(gè)關(guān)系R(X,Z),X和Z為屬性組。當(dāng)t[X]=x時(shí),x在R中的象集(ImagesSet)為:

Zx={t[Z]|t

R,t[X]=x}

它表示R中屬性組X上值為x的諸元組在Z上分量的集合。

2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–除法(Division

給定關(guān)系R(X,Y)

和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。

R÷S={tr[X]|tr

R∧πY

(S)

Yx} Yx:x在R中的象集,x=tr[X]2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–除法(Division

)除法是同時(shí)從行和列角度進(jìn)行運(yùn)算

÷RS2.2.3關(guān)系代數(shù)專門的關(guān)系運(yùn)算–除法(Division

)關(guān)系代數(shù)運(yùn)算

關(guān)系代數(shù)運(yùn)算

并、差、交、笛卡爾積、投影、選擇、連接、除

基本運(yùn)算

并、差、笛卡爾積、投影、選擇 交、連接、除

可以用5種基本運(yùn)算來表達(dá)引進(jìn)它們并不增加語言的能力,但可以簡化表達(dá)2.2.3關(guān)系代數(shù)關(guān)系代數(shù)小結(jié)*2.2.4關(guān)系演算元組關(guān)系演算域關(guān)系演算*2.2.4關(guān)系演算元組關(guān)系演算元組演算以元組為變量,即謂詞中的變量為關(guān)系中的元組,變?cè)淖兓秶钦麄€(gè)關(guān)系。元組演算表達(dá)式一般表示的是使謂詞公式為真的所有元組的集合。*2.2.4關(guān)系演算元組關(guān)系演算

*2.2.4關(guān)系演算元組關(guān)系演算

*2.2.4關(guān)系演算域關(guān)系演算

2.3關(guān)系完整性

2.3.1實(shí)體完整性

2.3.2參照完整性

2.3.3用戶定義完整性2.3關(guān)系完整性關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件。關(guān)系模型中三類完整性約束:實(shí)體完整性參照完整性用戶定義的完整性實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作是關(guān)系的兩個(gè)不變性,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。2.3.1實(shí)體完整性實(shí)體完整性規(guī)則(EntityIntegrity)若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。根據(jù)實(shí)體完整性約束,一個(gè)關(guān)系中不允許存在兩類元組:無主碼值的元組主碼值相同的元組2.3.2參照完整性關(guān)系間的引用:在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的,因此可能存在著關(guān)系與關(guān)系間的引用。若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼KS相對(duì)應(yīng)。則對(duì)于R中每個(gè)元組在F上的值必須為:(1)或者取空值(F的每個(gè)屬性值均為空值)(2)或者等于S中某個(gè)元組的主碼值。2.3.3用戶定義完整性用戶定義的完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。關(guān)系模型應(yīng)提供定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能。本章小結(jié)1.關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的數(shù)學(xué)表達(dá)概念:表(關(guān)系);屬性(字段);元組(記錄);候選碼,主碼;外碼;域2.關(guān)系代數(shù)五種基本運(yùn)算;三種擴(kuò)展運(yùn)算掌握運(yùn)算的表達(dá)式;綜合運(yùn)用關(guān)系代數(shù)表達(dá)式表示查詢3.關(guān)系演算元組關(guān)系演算;域關(guān)系演算4.完整性約束實(shí)體完整性;參照性完整性;用戶自定義的完整性第3章關(guān)系數(shù)據(jù)庫語言SQL—數(shù)據(jù)庫應(yīng)用基礎(chǔ)

學(xué)習(xí)目標(biāo)1.了解SQL特點(diǎn),掌握基本表、視圖、存儲(chǔ)文件、索引等基本概念;2.理解SQL語言的組成:DDL、DML、DCL;3.掌握數(shù)據(jù)定義語句,能熟練運(yùn)用DDL進(jìn)行數(shù)據(jù)庫、表、索引的定義;4.掌握SELECT查詢結(jié)構(gòu)、各子句功能;能熟練運(yùn)用SELECT查詢結(jié)構(gòu),根據(jù)查詢要求,設(shè)計(jì)單表查詢、連接查詢和嵌套查詢SQL語句;能對(duì)查詢結(jié)果進(jìn)行分組、排序、篩選等進(jìn)一步處理;能針對(duì)復(fù)雜查詢要求設(shè)計(jì)高效SQL語句;5.掌握SQL數(shù)據(jù)操作語句,能熟練使用UPDATE和DELETE語句表示數(shù)據(jù)更新操作;6.掌握視圖概念,能熟練運(yùn)用SQL語句進(jìn)行視圖的定義、查詢與更新操作.目錄

3.1SQL概述3.2SQL語言的數(shù)據(jù)類型

3.3數(shù)據(jù)定義3.4數(shù)據(jù)查詢3.5數(shù)據(jù)更新3.6視圖

3.1SQL概述

3.1.1SQL的特點(diǎn)

3.1.2SQL基本概念

3.1.3SQL語言的組成

3.1.4SQL語句分類

3.1.1SQL的特點(diǎn)SQL的特點(diǎn)綜合統(tǒng)一高度非過程化面向集合的操作方式以同一種語法結(jié)構(gòu)提供兩種使用方法語言簡潔,易學(xué)易用3.1.2SQL基本概念SQL語言支持?jǐn)?shù)據(jù)庫的三級(jí)模式結(jié)構(gòu)3.1.2SQL基本概念

基本表是獨(dú)立存在于數(shù)據(jù)庫中的表,是“實(shí)表”。一個(gè)關(guān)系對(duì)應(yīng)一個(gè)基本表,一個(gè)或多個(gè)基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件。

基本表(BaseTable)3.1.2SQL基本概念視圖(View)視圖是從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的表,是“虛表”。它本身不獨(dú)立存在于數(shù)據(jù)庫中,數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。當(dāng)基本表中的數(shù)據(jù)發(fā)生變化時(shí),從視圖中查詢出來的數(shù)據(jù)也隨之改變。

3.1.2SQL基本概念存儲(chǔ)文件數(shù)據(jù)庫的所有信息都保存在存儲(chǔ)文件中。數(shù)據(jù)庫是邏輯的,存儲(chǔ)文件是物理的。用戶操作的數(shù)據(jù)庫,實(shí)際上最終都是操作存儲(chǔ)文件。一個(gè)基本表可以用一個(gè)或多個(gè)存儲(chǔ)文件存儲(chǔ),存儲(chǔ)文件的物理結(jié)構(gòu)對(duì)用戶是透明的。3.1.2SQL基本概念索引表中的記錄通常按其輸入的時(shí)間順序存放,這種順序稱為記錄的物理順序。為了實(shí)現(xiàn)對(duì)表記錄的快速查詢,可以對(duì)表文件中的記錄按某個(gè)和某些屬性進(jìn)行排序,這種順序稱為邏輯順序。索引即是根據(jù)索引表達(dá)式的值進(jìn)行邏輯排序的一組指針,它可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的快速訪問。索引是關(guān)系數(shù)據(jù)庫的內(nèi)部實(shí)現(xiàn)技術(shù),屬于內(nèi)模式,被存放在存儲(chǔ)文件中。3.1.3SQL語言的組成(1)數(shù)據(jù)定義語言DDL(DataDefinitionLanguage)

定義數(shù)據(jù)庫結(jié)構(gòu),包括定義表、視圖和索引等。(2)數(shù)據(jù)操縱語言DML(DataManipulationLanguage)

主要包括查詢、插入、刪除和修改數(shù)據(jù)庫中數(shù)據(jù)的操作。(3)數(shù)據(jù)控制語言DCL(DataControlLanguage)

包括對(duì)數(shù)據(jù)庫的安全性控制、完整性控制以及對(duì)事務(wù)的定義、并發(fā)控制和恢復(fù)等。

3.1.4SQL語句分類(1)數(shù)據(jù)定義。其功能是創(chuàng)建、更新和撤銷模式及其對(duì)象。包含的語句動(dòng)詞主要有:CREATE、DROP、ALERT。(2)數(shù)據(jù)查詢。其功能是進(jìn)行數(shù)據(jù)庫的數(shù)據(jù)查詢。包含的語句動(dòng)詞主要有:SELECT。(3)數(shù)據(jù)操縱。其功能是完成數(shù)據(jù)庫的數(shù)據(jù)更新。包含的語句動(dòng)詞主要有:INSERT、UPDATE、DELETE。(4)數(shù)據(jù)控制。其功能是進(jìn)行數(shù)據(jù)庫的授權(quán)、事務(wù)管理和控制。包含的語句動(dòng)詞主要有:GRANT、REVOKE、COMMIT、ROLLBACK等。3.2SQL語言數(shù)據(jù)類型SQL語言在定義表中各屬性時(shí),要求指明其數(shù)據(jù)類型和長度。SQL語言提供了一些基本數(shù)據(jù)類型,而不同RDBMS所支持的數(shù)據(jù)類型不完全相同,在使用時(shí)要注意具體的RDBMS規(guī)定。3.2SQL語言數(shù)據(jù)類型T-SQL數(shù)據(jù)類型T-SQL常用數(shù)據(jù)類型包括:數(shù)值型字符型

Unicode字符型文本型日期時(shí)間類型二進(jìn)制型3.2SQL語言數(shù)據(jù)類型T-SQL數(shù)據(jù)類型–數(shù)值型

數(shù)值型包括整型(bigint、int、smallint、tinyint、bit)、定點(diǎn)實(shí)數(shù)(numericdecimal)、浮點(diǎn)數(shù)(float、real),各數(shù)值類型的取值范圍、存儲(chǔ)字節(jié)數(shù)都有差異(詳見教材列表)。注意,bit類型數(shù)據(jù)相當(dāng)于其他語言中的邏輯型數(shù)據(jù),它只存儲(chǔ)0和1。當(dāng)為bit類型數(shù)據(jù)賦值0時(shí),其值為0;而賦非0(如100)值時(shí),其值為1。3.2SQL語言數(shù)據(jù)類型T-SQL數(shù)據(jù)類型–字符型字符型數(shù)據(jù)用于存儲(chǔ)字符串。字符串中可包括字母、數(shù)字和其他特殊符號(hào)(如#、@、&等),也可包含漢字。字符串型包括兩類:定長字符串char和變長字符串varchar。Unicode是“統(tǒng)一字符編碼標(biāo)準(zhǔn)”,用于支持國際上非英語語種的字符數(shù)據(jù)的存儲(chǔ)和處理。SQLServer的Unicode字符型可以存儲(chǔ)Unicode標(biāo)準(zhǔn)字符集定義的各種字符。Unicode字符型包括nchar[(n)]和nvarchar[(n)]兩類。nchar是固定長度Unicode數(shù)據(jù)的數(shù)據(jù)類型,nvarchar是可變長度Unicode數(shù)據(jù)的數(shù)據(jù)類型,二者均使用UNICODEUCS-2字符集。nchar、nvarchar與char、varchar使用非常相似,只是字符集不同(前者使用Unicode字符集,后者使用ASCII字符集)。3.2SQL語言數(shù)據(jù)類型T-SQL數(shù)據(jù)類型–

Unicode字符型存儲(chǔ)大量的字符數(shù)據(jù),如較長的備注、日志信息文本型包括text和ntext兩類,分別對(duì)應(yīng)ASCII字符和Unicode字符3.2SQL語言數(shù)據(jù)類型T-SQL數(shù)據(jù)類型–文本型日期時(shí)間類型數(shù)據(jù)用于存儲(chǔ)日期和時(shí)間信息,包括datetime和smalldatetime兩類。日期部分常用的幾種格式如下:Oct102019 /*英文數(shù)字格式*/2019-10-10 /*數(shù)字加分隔符*/20191010 /*純數(shù)字格式*/時(shí)間部分可采用24小時(shí)格式或12小時(shí)格式。使用12小時(shí)制要加上AM或PM。在時(shí)與分之間用“:”分隔。例如:2019-10-108:18:18PM /*12小時(shí)格式*/2019-10-1020:18:18 /*24小時(shí)格式*/3.2SQL語言數(shù)據(jù)類型T-SQL數(shù)據(jù)類型–日期時(shí)間型二進(jìn)制數(shù)據(jù)類型表示位數(shù)據(jù)流,包括binary(固定長度)、varbinary(可變長度)和image三種。image:用于存儲(chǔ)大容量的、可變長度的二進(jìn)制數(shù)據(jù),介于0~231

1(2147483647)字節(jié)之間。常用于存儲(chǔ)圖像數(shù)據(jù)。3.2SQL語言數(shù)據(jù)類型T-SQL數(shù)據(jù)類型–二進(jìn)制型3.3數(shù)據(jù)定義

3.3.1模式定義 3.3.2基本表定義

3.3.3索引定義 3.3.1模式定義

模式定義即定義一個(gè)存儲(chǔ)空間。一個(gè)SQL模式由模式名、用戶名或賬號(hào)來確定。在這個(gè)空間中可以進(jìn)一步定義該模式包含的數(shù)據(jù)庫對(duì)象,如基本表、視圖、索引等。

SQL3標(biāo)準(zhǔn)的模式定義語句是CREATESCHEMA。但由于“模式”這個(gè)名稱較抽象,多數(shù)RDBMS不采用該名詞,而采用“數(shù)據(jù)庫”這一名稱。這個(gè)數(shù)據(jù)庫概念將數(shù)據(jù)庫視為許多對(duì)象的容器。在SQL標(biāo)準(zhǔn)中沒有CREATEDATABASE語句,但多數(shù)SQL產(chǎn)品都支持CREATEDATABASE創(chuàng)建數(shù)據(jù)庫的語句。3.3.1模式定義定義數(shù)據(jù)庫

T-SQL定義數(shù)據(jù)庫的基本格式為:

CREATEDATABASE<數(shù)據(jù)庫名>

說明:①T-SQL語句通常還包含各種子句,如CREATEDATABASE語句包含ON子句、LOGON子句等。②SQLServer的大多數(shù)數(shù)據(jù)庫操作都有兩種方式:一是命令方式,二是界面方式。例如,定義數(shù)據(jù)庫,既可采用這里介紹的CREATEDATABASE語句,也可通過SQLServerManagementStudio界面操作實(shí)現(xiàn)。3.3.1模式定義使用數(shù)據(jù)庫

語句格式為:

USE<數(shù)據(jù)庫名>

使用USE語句將<數(shù)據(jù)庫名>選擇為當(dāng)前操作的數(shù)據(jù)庫。一旦選定,若不對(duì)操作的數(shù)據(jù)庫對(duì)象加以限定,則其后命令均是針對(duì)當(dāng)前數(shù)據(jù)庫中的表或視圖進(jìn)行的。3.3.1模式定義修改數(shù)據(jù)庫

基本語句格式為:

ALTERDATABASE<數(shù)據(jù)庫名>

該語句可以對(duì)指定的數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件等進(jìn)行修改。3.3.1模式定義刪除數(shù)據(jù)庫

基本語句格式為:

DROPDATABASE<數(shù)據(jù)庫名>

刪除數(shù)據(jù)庫后,該數(shù)據(jù)庫的所有對(duì)象均被刪除,將不能再對(duì)該數(shù)據(jù)庫做任何操作。3.3.2基本表定義定義基本表的實(shí)質(zhì)就是定義表結(jié)構(gòu)及約束等。在T-SQL語句定義表之前,先要設(shè)計(jì)表結(jié)構(gòu),即確定表的名字、所包含的列名、列的數(shù)據(jù)類型、長度、是否可為空值、默認(rèn)值情況、是否要使用以及何時(shí)使用約束、默認(rèn)設(shè)置或規(guī)則以及所需索引的類型、哪里需要索引、哪些列是主碼、哪些列是外碼等。

3.3.2基本表定義數(shù)據(jù)庫名:GoodsOrder包括三個(gè)基本表:客戶信息表(表名:CustomerInfo)商品信息表(表名:GoodsInfo)商品訂購表(表名:OrderList)

“商品訂購數(shù)據(jù)庫”結(jié)構(gòu)3.3.2基本表定義客戶信息表(表名:CustomerInfo)列

名數(shù)

據(jù)

型是否可取空值含

義說

明客戶編號(hào)char(6)否客戶編號(hào)主碼客戶姓名char(20)否客戶姓名出生日期datetime可出生日期性別char(2)可客戶性別所在省市varchar(50)可所在地省市聯(lián)系電話varchar(12)可聯(lián)系電話微信號(hào)varchar(30)可客戶微信號(hào)VIPbit可是否VIP的標(biāo)識(shí)默認(rèn)值false(否)備注Text可有關(guān)客戶的說明3.3.2基本表定義商品信息表(表名:GoodsInfo)列名數(shù)據(jù)類型是否可取空值含義說明商品編號(hào)char(8)否商品編號(hào)主碼商品類別char(20)否商品類別商品名稱varchar(50)否商品名稱品牌varchar(30)可商品品牌單價(jià)float可該商品的單價(jià)生產(chǎn)商varchar(50)可商品生產(chǎn)商的名稱保質(zhì)期datetime可商品的保質(zhì)期默認(rèn)值為'2000-01-01',表示該商品無保質(zhì)期庫存量int可該商品的庫存量備注text可關(guān)于商品的說明3.3.2基本表定義商品訂購表(表名:OrderList)列名數(shù)據(jù)類型是否可取空值含義說明客戶編號(hào)char(8)否客戶編號(hào)外碼商品編號(hào)char(6)否商品編號(hào)外碼訂購時(shí)間datetime否客戶訂購商品的時(shí)間數(shù)量int可客戶訂購該商品的數(shù)量需要日期datetime可客戶指出的需要獲得該商品的日期付款方式varchar(40)可客戶的支付方式送貨方式varchar(50)可客戶獲取商品的方式*注:本關(guān)系的主碼是(客戶編號(hào),商品編號(hào),訂購時(shí)間)3.3.2基本表定義(1)定義基本表

定義基本表的的基本格式為:CREATETABLE<基本表名>( <列名><數(shù)據(jù)類型>[<列級(jí)完整性約束>] {,<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束>]} [,<表級(jí)完整性約束>])

在定義基本表的同時(shí)還可定義該表有關(guān)的完整性約束。其中列級(jí)完整性約束的作用范圍僅限于該列,而表級(jí)完整性約束的作用范圍是整個(gè)表。

3.3.2基本表定義巴科斯范式(Backus-NaurForm,BNF)主要記號(hào)含義:尖括號(hào)(<>),表示必選項(xiàng);中括號(hào)[],表示可出現(xiàn)一次或不出現(xiàn);花括號(hào){},表示可不出現(xiàn)或出現(xiàn)多次;豎號(hào)(

),表示在多個(gè)選項(xiàng)中選擇一個(gè);如:NOTNULL|NULL,表示在NOTNULL和NULL中任選一項(xiàng)。雙引號(hào)中的字符(“word”),表示字符本身;但為簡潔起見,在語法定義中,關(guān)鍵字和小括號(hào)不加雙引號(hào)。如

:“CREATETABLE”3.3.2基本表定義列級(jí)完整性約束①NOTNULL限制列取值不能為空。②DEFAULT指定列的默認(rèn)值。③UNIQUE限制列的取值不能重復(fù)。④CHECK限制列的取值范圍。⑤PRIMARYKEY指定本列為主碼。⑥FOREIGNKEY指定本列為引用其他表的外碼。格式為:[FOREIGNKEY(<外碼列名>)]REFERENCE<外表名>(<外表列名>)

列級(jí)完整性約束的作用范圍僅限于該列:3.3.2基本表定義表級(jí)完整性約束UNIQUE、CHECK、PRIMARYKEY、FOREIGNKEY可用于定義表級(jí)完整性約束(

NOTNULL、DEFAULT不可)。注意:如果表的主碼是由多個(gè)列組成的,則只能在表級(jí)完整性約束處定義。表級(jí)完整性約束的作用范圍是整個(gè)表:3.3.2基本表定義【例3.2】定義GoodsOrder數(shù)據(jù)庫的三個(gè)基本表。創(chuàng)建CustomerInfo的SQL語句:CREATETABLECustomerInfo(

客戶編號(hào)char(6)PRIMARYKEY,

客戶姓名char(20)NOTNULL,

出生日期datetime,

性別char(2),

所在省市varchar(50),

聯(lián)系電話varchar(12),

微信號(hào)

varchar(30),VIPbitDEFAULT'0',

備注text)3.3.2基本表定義【例3.2】定義GoodsOrder數(shù)據(jù)庫的三個(gè)基本表。創(chuàng)建GoodsInfo的SQL語句:CREATETABLEGoodsInfo(

商品編號(hào)char(8)PRIMARYKEY,

商品類別char(20)NOTNULL,

商品名稱varchar(50)NOTNULL,

品牌

varchar(30),

單價(jià)float,

生產(chǎn)商varchar(50),

保質(zhì)期datetimeDEFAULT'2000-1-1',

庫存量int,

備注text)3.3.2基本表定義【例3.2】定義GoodsOrder數(shù)據(jù)庫的三個(gè)基本表。創(chuàng)建OrderList的SQL語句:

客戶編號(hào)char(6)NOTNULL,

商品編號(hào)char(8)NOTNULL,

訂購時(shí)間datetimeNOTNULL,

數(shù)量int,

需要日期datetime,

付款方式varchar(40),

送貨方式varchar(50),PRIMARYKEY(客戶編號(hào),商品編號(hào),訂購時(shí)間),FOREIGNKEY(客戶編號(hào))REFERENCESCustomerInfo(客戶編號(hào)),FOREIGNKEY(商品編號(hào))REFERENCESGoodsInfo(商品編號(hào)))3.3.2基本表定義(2)修改基本表ALERTTABLE語句用于更改基本表結(jié)構(gòu),包括增加列、刪除列、修改已有列的定義等。該語句的基本格式為:ALTERTABLE<基本表名>ALTERCOLUMN<列名><新數(shù)據(jù)類型>[NULL|NOTNULL]--修改已有列定義

|ADD<列名><數(shù)據(jù)類型>[約束]--增加新列

|DROPCOLUMN<列名>--刪除列

|ADD[CONSTRAINT<約束名>]<約束定義>

--添加約束

|DROPCONSTRAINT<約束名>--刪除約束

3.3.2基本表定義【例3.3】在表GoodsInfo中增加1個(gè)新列—商品圖片。ALTERTABLEGoodsInfoADD商品圖片image【例3.4】將表GoodsInfo中“保質(zhì)期”列的數(shù)據(jù)類型改為smalldatetime。ALTERTABLEGoodsInfoALTERCOLUMN保質(zhì)期smalldatetime【例3.5】刪除表GoodsInfo中“商品圖片”列。ALTERTABLEGoodsInfoDROPCOLUMN商品圖片3.3.2基本表定義(3)刪除基本表DROPTABLE語句用于刪除基本表,其語法格式:DROPTABLE<基本表名>例如,刪除表GoodsInfo的SQL語句為:

DROPTABLEGoodsInfo刪除一個(gè)表時(shí),表的定義、表中的所有數(shù)據(jù)以及表的索引、觸發(fā)器、約束等均被刪除。注意:不能刪除系統(tǒng)表和有外碼約束所參照的表。

3.3.3索引定義在數(shù)據(jù)庫中建立索引是為了提高數(shù)據(jù)查詢速度。(1)索引的概念聚簇索引(ClusteredIndex)對(duì)表的物理數(shù)據(jù)頁中的數(shù)據(jù)按索引關(guān)鍵字進(jìn)行排序,然后重新存儲(chǔ)到磁盤上,即聚簇索引與數(shù)據(jù)是一體的。非聚簇索引(NonclusteredIndex)具有完全獨(dú)立于數(shù)據(jù)的索引結(jié)構(gòu),它不將物理數(shù)據(jù)頁中的數(shù)據(jù)按索引關(guān)鍵字排序。

3.3.3索引定義(2)聚簇索引和非聚簇索引建立索引使用語句CREATEINDEX,其基本格式為:

CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX<索引名>ON<基本表名>(<列名>[ASC|DESC][{,<列名>[ASC|DESC]}…])其中,<基本表名>是要建立索引的基本表的名稱。當(dāng)索引建立在多個(gè)列上時(shí),該索引稱為復(fù)合索引。復(fù)合索引各列之間要用逗號(hào)(,)分隔,每個(gè)列后面還可以用ASC或DESC表示按索引值按升序或降序排列。默認(rèn)排序方式為ASC(升序)。UNIQUE表示創(chuàng)建的是唯一索引。CLUSTERED用于指定創(chuàng)建聚簇索引,NONCLUSTERED用于指定創(chuàng)建非聚簇索引。默認(rèn)創(chuàng)建的是非聚簇索引。

3.3.3索引定義(3)建立索引3.3.3索引定義【例3.6】在CustomerInfo表的“客戶編號(hào)”列上建立一個(gè)非聚簇索引CustomerID_ind。CREATEINDEXCustomerID_ind

ONCustomerInfo(客戶編號(hào))【例3.7】在GoodsInfo表的“商品編號(hào)”列上建立一個(gè)唯一的聚簇索引GoodsID_ind。CREATEUNIQUECLUSTEREDINDEXGoodsID_ind

ONGoodsInfo(商品編號(hào))【例3.8】在OrderList表上按“客戶編號(hào)”升序、“商品編號(hào)”升序、“訂購時(shí)間”降序建立一個(gè)唯一的非聚簇索引OrderList_ind。CREATEUNIQUEINDEXOrderList_ind

ONOrderList(客戶編號(hào)ASC,商品編號(hào)ASC,訂購時(shí)間DESC)3.3.3索引定義(4)刪除索引索引一經(jīng)建立,就由DBMS自動(dòng)使用和維護(hù),無須用戶干預(yù)。當(dāng)不需要某個(gè)索引時(shí),可使用DROPINDEX語句將其刪除。DROPINDEX語句的格式為:

DROPINDEX<基本表名>.<索引名>【例3.9】刪除CustomerInfo表“客戶編號(hào)”列的索引CustomerID_ind。DROPINDEXCustomerInfo.CustomerID_ind

3.4.1SELECT語句結(jié)構(gòu)

3.4.2單表查詢

3.4.3連接查詢

3.4.4嵌套查詢

3.4.5集合查詢3.4數(shù)據(jù)查詢3.4.1SELECT語句結(jié)

溫馨提示

  • 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)論