《SQL Server數(shù)據(jù)庫(kù)應(yīng)用案例教程2019》全套教學(xué)課件_第1頁(yè)
《SQL Server數(shù)據(jù)庫(kù)應(yīng)用案例教程2019》全套教學(xué)課件_第2頁(yè)
《SQL Server數(shù)據(jù)庫(kù)應(yīng)用案例教程2019》全套教學(xué)課件_第3頁(yè)
《SQL Server數(shù)據(jù)庫(kù)應(yīng)用案例教程2019》全套教學(xué)課件_第4頁(yè)
《SQL Server數(shù)據(jù)庫(kù)應(yīng)用案例教程2019》全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩516頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

SQLServer數(shù)據(jù)庫(kù)應(yīng)用案例教程全套可編輯PPT課件全課導(dǎo)航01數(shù)據(jù)庫(kù)基礎(chǔ)02SQLServer基礎(chǔ)知識(shí)03Transact-SQL語(yǔ)言04數(shù)據(jù)庫(kù)與數(shù)據(jù)表及其基本操作05數(shù)據(jù)更新與查詢06視圖與索引07存儲(chǔ)過(guò)程、觸發(fā)器與游標(biāo)08事務(wù)與鎖09數(shù)據(jù)庫(kù)安全性管理10新聞發(fā)布系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)1數(shù)據(jù)庫(kù)基礎(chǔ)第章本章導(dǎo)讀隨著信息技術(shù)的飛速發(fā)展,信息已成為當(dāng)今社會(huì)各種活動(dòng)的核心資源。通過(guò)對(duì)信息資源的開發(fā)利用,可以創(chuàng)造更大的信息價(jià)值。而對(duì)信息資源的開發(fā)利用離不開數(shù)據(jù)庫(kù)技術(shù)的支持。本章將介紹數(shù)據(jù)庫(kù)的相關(guān)知識(shí),包括數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)的基本概念,數(shù)據(jù)模型,數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu),數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)和數(shù)據(jù)庫(kù)領(lǐng)域的新技術(shù)等內(nèi)容。知識(shí)目標(biāo)掌握數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)。掌握數(shù)據(jù)模型的基礎(chǔ)知識(shí)。理解數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)與二級(jí)映像等概念。了解數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)的基本流程。了解數(shù)據(jù)庫(kù)領(lǐng)域的新技術(shù)。能力目標(biāo)能夠使用E-R圖表示實(shí)體、屬性、聯(lián)系之間的關(guān)系。素質(zhì)目標(biāo)培養(yǎng)認(rèn)真、規(guī)范的工作態(tài)度。了解行業(yè)相關(guān)法律法規(guī),培養(yǎng)嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)。項(xiàng)目導(dǎo)航初識(shí)數(shù)據(jù)庫(kù)1關(guān)系數(shù)據(jù)庫(kù)2數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)3數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)4數(shù)據(jù)庫(kù)領(lǐng)域的性技術(shù)501初識(shí)數(shù)據(jù)庫(kù)1.1.1數(shù)據(jù)與數(shù)據(jù)處理1.?dāng)?shù)據(jù)與信息數(shù)據(jù)是對(duì)客觀事物、事件的記錄與描述,也是對(duì)客觀事物的邏輯歸納。這種記錄或描述可以是音頻、圖像,也可以是符號(hào)、文字等。數(shù)據(jù)與它的語(yǔ)義是密不可分的,語(yǔ)義指的是數(shù)據(jù)的含義。信息是對(duì)數(shù)據(jù)的解釋,即“信息=數(shù)據(jù)+語(yǔ)義”。

例如,有一條學(xué)生成績(jī)信息為,信息學(xué)院計(jì)算機(jī)一班的張三同學(xué)在數(shù)據(jù)庫(kù)原理及應(yīng)用科目的考試中取得了95分的成績(jī)。將這條信息轉(zhuǎn)換成計(jì)算機(jī)中的數(shù)據(jù),可以描述為(張三,信息學(xué)院,計(jì)算機(jī)一班,數(shù)據(jù)庫(kù)原理及應(yīng)用,95)。—8——9—數(shù)據(jù)處理是將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程,包括數(shù)據(jù)采集、管理、加工、變換和傳輸?shù)纫幌盗谢顒?dòng)。數(shù)據(jù)管理是數(shù)據(jù)處理的核心,其過(guò)程較為復(fù)雜,主要包括數(shù)據(jù)的分類、組織、編碼、存儲(chǔ)、維護(hù)、檢索等操作。數(shù)據(jù)處理的目的:其一是從大量的原始數(shù)據(jù)中抽取和推導(dǎo)出有價(jià)值的信息,作為決策的依據(jù);其二是借助計(jì)算機(jī)科學(xué)地保存和管理大量復(fù)雜的數(shù)據(jù),便于人們充分地利用這些信息資源。1.1.1數(shù)據(jù)與數(shù)據(jù)處理2.

數(shù)據(jù)處理與數(shù)據(jù)管理—10—1.1.2數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)1數(shù)據(jù)庫(kù)(database,DB)是存儲(chǔ)在計(jì)算機(jī)內(nèi),有組織的、可共享的相關(guān)數(shù)據(jù)的集合,這種集合按一定的數(shù)據(jù)模型組織、描述并長(zhǎng)期存儲(chǔ),同時(shí)能夠以安全可靠的方法對(duì)數(shù)據(jù)進(jìn)行檢索。數(shù)據(jù)庫(kù)數(shù)據(jù)具有冗余度小、獨(dú)立性高、延展性強(qiáng)、共享性好,以及結(jié)構(gòu)化和永久性等特點(diǎn)。數(shù)據(jù)庫(kù)管理系統(tǒng)2數(shù)據(jù)庫(kù)管理系統(tǒng)(databasemanagementsystem,DBMS)是指能夠創(chuàng)建、運(yùn)用、管理和維護(hù)數(shù)據(jù)庫(kù),并且能夠?qū)?shù)據(jù)庫(kù)進(jìn)行統(tǒng)一控制的系統(tǒng)軟件。目前,常見的數(shù)據(jù)庫(kù)管理系統(tǒng)有SQLServer、Oracle、MySQL與Access等?!?1—1.1.2數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)3數(shù)據(jù)庫(kù)系統(tǒng)(database

system,DBS)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)。它主要由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)用戶、計(jì)算機(jī)硬件系統(tǒng)和計(jì)算機(jī)軟件系統(tǒng)等幾部分組成,如圖1-1所示。圖1-1數(shù)據(jù)庫(kù)系統(tǒng)的組成—12—1.1.3數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展1.人工管理階段在20世紀(jì)50年代中期以前,計(jì)算機(jī)主要用于科學(xué)計(jì)算。當(dāng)時(shí)的計(jì)算機(jī)硬件和軟件都不完善,因此只能采用人工方式對(duì)數(shù)據(jù)進(jìn)行管理。圖1-2人工管理階段應(yīng)用程序與數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系人工管理階段特點(diǎn):人工管理階段的數(shù)據(jù)無(wú)法保存。該階段的數(shù)據(jù)無(wú)法共享,數(shù)據(jù)是面向應(yīng)用程序的,一組數(shù)據(jù)只對(duì)應(yīng)一個(gè)應(yīng)用程序,如圖1-2所示?!?3—在20世紀(jì)50年代后期至60年代中期,計(jì)算機(jī)硬件和軟件技術(shù)都得到了極大發(fā)展,計(jì)算機(jī)開始用于數(shù)據(jù)管理。文件系統(tǒng)優(yōu)點(diǎn):數(shù)據(jù)能夠以文件的形式長(zhǎng)期存儲(chǔ);文件系統(tǒng)提供的文件管理功能及存取方法,使得應(yīng)用程序與數(shù)據(jù)具有了一定的獨(dú)立性;文件形式多樣化,數(shù)據(jù)間具有一定的共享性等。文件系統(tǒng)缺點(diǎn):(1)數(shù)據(jù)共享性差,冗余度較大。(2)數(shù)據(jù)不一致性。(3)數(shù)據(jù)獨(dú)立性差。(4)數(shù)據(jù)間聯(lián)系弱。1.1.3數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展2.文件系統(tǒng)階段—14—1.1.3數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展3.?dāng)?shù)據(jù)庫(kù)系統(tǒng)階段到了20世紀(jì)60年代后期,文件系統(tǒng)的數(shù)據(jù)管理方法無(wú)法適應(yīng)各種應(yīng)用程序的需要,于是數(shù)據(jù)庫(kù)技術(shù)應(yīng)運(yùn)而生,人們轉(zhuǎn)向使用數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一管理。與文件系統(tǒng)相比,數(shù)據(jù)庫(kù)系統(tǒng)階段特點(diǎn):(1)數(shù)據(jù)結(jié)構(gòu)化。(2)數(shù)據(jù)共享性高、冗余度小。(3)數(shù)據(jù)獨(dú)立性高。(4)有統(tǒng)一的數(shù)據(jù)管理和控制功能。圖1-4數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)共享機(jī)制—15—1.1.4數(shù)據(jù)模型數(shù)據(jù)模型是對(duì)現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象描述。現(xiàn)實(shí)世界中的數(shù)據(jù)要轉(zhuǎn)換為抽象的數(shù)據(jù)庫(kù)數(shù)據(jù),需要經(jīng)過(guò)現(xiàn)實(shí)世界、信息世界、計(jì)算機(jī)世界3個(gè)階段,因此可以說(shuō)數(shù)據(jù)模型是現(xiàn)實(shí)世界兩級(jí)抽象的結(jié)果。數(shù)據(jù)模型按應(yīng)用層次可分為概念模型、邏輯模型和物理模型。(1)概念模型也稱為信息模型,是屬于信息世界中的模型。它按照用戶的目標(biāo)對(duì)數(shù)據(jù)信息建模,是對(duì)現(xiàn)實(shí)世界的事物及其聯(lián)系的第一級(jí)抽象。(2)邏輯模型屬于計(jì)算機(jī)世界中的模型,它從計(jì)算機(jī)的角度對(duì)數(shù)據(jù)進(jìn)行建模,是對(duì)現(xiàn)實(shí)世界的第二級(jí)抽象。(3)物理模型是對(duì)數(shù)據(jù)最底層的抽象,是面向計(jì)算機(jī)系統(tǒng)的模型,它描述數(shù)據(jù)在磁盤或磁帶上的存儲(chǔ)方式和存取方法。數(shù)據(jù)模型—16—1.1.4數(shù)據(jù)模型1.概念模型(1)實(shí)體(entity)??陀^存在并且可以相互區(qū)別的事物稱為實(shí)體。實(shí)體可以是具體的人、事或物,如一名學(xué)生、一本書或一所學(xué)校等;也可以是抽象的事件,如學(xué)生選課等。(2)屬性(attribute)。實(shí)體所具有的某一特性稱為屬性。一個(gè)實(shí)體可以由多個(gè)屬性刻畫。例如,學(xué)生實(shí)體由學(xué)號(hào)、姓名、性別、年齡和系別等屬性組成,它們共同構(gòu)成了學(xué)生實(shí)體的特征。(3)實(shí)體型(entity

type)。一般用實(shí)體名及其屬性名集合來(lái)抽象描述同類實(shí)體,這種描述稱為實(shí)體型。例如,學(xué)生(學(xué)號(hào),姓名,性別,年齡,系別)就是一個(gè)實(shí)體型,它描述的是學(xué)生這一類實(shí)體。(4)實(shí)體集(entityset)。同一類型實(shí)體的集合稱為實(shí)體集。例如,所有學(xué)生就是一個(gè)實(shí)體集。(5)碼(key)或稱鍵、關(guān)鍵字、關(guān)鍵碼等。在實(shí)體型中,能夠唯一標(biāo)識(shí)一個(gè)實(shí)體的屬性或?qū)傩约Q為實(shí)體的碼。例如,學(xué)生的學(xué)號(hào)就是學(xué)生實(shí)體的碼?!?7—(6)域(domain)。某一屬性的取值范圍稱為該屬性的域。例如,學(xué)號(hào)的域?yàn)?位整數(shù),性別的域?yàn)椤澳小焙汀芭钡?。?)聯(lián)系(relationship)。在現(xiàn)實(shí)世界中,事物內(nèi)部及事物之間是有聯(lián)系的,這些聯(lián)系同樣也要反映到信息世界中來(lái)。例如,學(xué)生的學(xué)號(hào)與姓名之間的聯(lián)系,學(xué)生與課程之間的聯(lián)系等。實(shí)體型之間的聯(lián)系按照聯(lián)系中實(shí)體的個(gè)數(shù)可分為3種情況:①一對(duì)一聯(lián)系(1∶1)。如圖1-5所示。②一對(duì)多聯(lián)系(1∶n)。如圖1-6所示。③多對(duì)多聯(lián)系(m∶n)。如圖1-7所示。圖1-5一對(duì)一聯(lián)系圖1-6一對(duì)多聯(lián)系圖1-7多對(duì)多聯(lián)系1.1.4數(shù)據(jù)模型1.概念模型—18—(8)E-R圖。E-R圖是陳品山于1976年提出的概念模型表示方法,也稱實(shí)體-聯(lián)系方法(entity-relationship

approach),是目前最著名的概念模型表示方法。圖1-8E-R圖表示實(shí)體與屬性之間的關(guān)系E-R圖能夠清晰地表現(xiàn)出實(shí)體、屬性和聯(lián)系之間的關(guān)系。圖1-9E-R圖表示兩個(gè)實(shí)體集之間的3種聯(lián)系1.1.4數(shù)據(jù)模型1.概念模型—19—圖1-10多個(gè)或單個(gè)實(shí)體集之間的聯(lián)系1.1.4數(shù)據(jù)模型1.概念模型—20—1.1.4數(shù)據(jù)模型2.邏輯模型層次模型1用樹形結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次模型。如圖1-11所示。結(jié)構(gòu)特點(diǎn):①一個(gè)模型中有且只有一個(gè)節(jié)點(diǎn)沒有父節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)稱為根節(jié)點(diǎn);②根節(jié)點(diǎn)以外的其他節(jié)點(diǎn)有且只有一個(gè)父節(jié)點(diǎn);③父子節(jié)點(diǎn)之間的聯(lián)系是一對(duì)多聯(lián)系(1∶n)。圖1-11層次模型圖例優(yōu)點(diǎn):①數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單清晰,提供了良好的完整性支持;②結(jié)構(gòu)間聯(lián)系簡(jiǎn)單;③數(shù)據(jù)查詢效率高。缺點(diǎn):①不能直接表示兩個(gè)以上實(shí)體集間的復(fù)雜聯(lián)系;②不能表示實(shí)體集間的多對(duì)多聯(lián)系;③不能用于表示非層次性的聯(lián)系?!?1—網(wǎng)狀模型2網(wǎng)狀模型在層次模型的基礎(chǔ)上去掉了兩個(gè)限制,可以更直接地描述現(xiàn)實(shí)世界中的信息,如圖1-12所示。結(jié)構(gòu)特點(diǎn):①允許一個(gè)以上的節(jié)點(diǎn)沒有父節(jié)點(diǎn);②允許一個(gè)節(jié)點(diǎn)有多個(gè)父節(jié)點(diǎn);③允許兩個(gè)節(jié)點(diǎn)之間有多種聯(lián)系。優(yōu)點(diǎn):比層次模型更好的性能和更高效的存儲(chǔ)方式。缺點(diǎn):數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,數(shù)據(jù)模式和系統(tǒng)實(shí)現(xiàn)均不夠理想。圖1-12網(wǎng)狀模型圖例1.1.4數(shù)據(jù)模型2.邏輯模型—22—關(guān)系模型3在關(guān)系模型中,數(shù)據(jù)結(jié)構(gòu)是一張規(guī)范化的二維表,每個(gè)二維表都可以稱為關(guān)系,實(shí)體與實(shí)體之間的聯(lián)系也用關(guān)系表示。不同于前兩種模型,關(guān)系模型具有嚴(yán)格的數(shù)學(xué)理論依據(jù),結(jié)構(gòu)簡(jiǎn)單易懂,存取路徑對(duì)用戶透明,具有更高的數(shù)據(jù)獨(dú)立性和安全保密性。面向?qū)ο竽P?以面向?qū)ο蟮挠^點(diǎn)描述實(shí)體的邏輯組織、對(duì)象間限制與聯(lián)系的模型是面向?qū)ο竽P?。這類模型具有抽象性、封裝性、繼承性和多態(tài)性等特性,是面向?qū)ο蟮乃枷肱c數(shù)據(jù)庫(kù)技術(shù)相結(jié)合的產(chǎn)物,它能更完整地描述現(xiàn)實(shí)世界的數(shù)據(jù)結(jié)構(gòu),具有豐富的表達(dá)能力。但這類模型相對(duì)復(fù)雜,涉及知識(shí)比較多,目前普及程度不如關(guān)系模型。1.1.4數(shù)據(jù)模型2.邏輯模型—23—課堂小結(jié)①數(shù)據(jù)與數(shù)據(jù)處理②數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)③數(shù)據(jù)管理技術(shù)的發(fā)展④數(shù)據(jù)模型02關(guān)系數(shù)據(jù)庫(kù)—25—1.2.1關(guān)系模型1.

關(guān)系模型的相關(guān)概念關(guān)系1通俗地講,關(guān)系(relation)就是由行和列組成的二維表,二維表的名字就是關(guān)系的名字。例如,表1-1所示關(guān)系的名字就是teacher。tno

(教師編號(hào))tn

(姓名)sex

(性別)prof

(職稱)dept

(系別)sal

(工資)01001趙乾女講師計(jì)算機(jī)600001002錢坤男講師自動(dòng)化600001003孫震女副教授自動(dòng)化700002011李離女教授通信800002013周巽男教授計(jì)算機(jī)8000表1-1teacher(教師)—26—屬性2二維表中的列稱為屬性(attribute),列名稱為屬性名,列中的值稱為屬性值。二維表中列的個(gè)數(shù)稱為關(guān)系的元數(shù)。如果一個(gè)二維表有n列,則稱其為n元關(guān)系。例如,表1-1所示關(guān)系teacher有tno,tn,sex,prof,dept,sal共6個(gè)屬性,所以它是一個(gè)6元關(guān)系。域3域(domain)是一組具有相同數(shù)據(jù)類型的值的集合,又稱值域(用D表示)。在關(guān)系中用域來(lái)表示屬性的取值范圍,域中所包含的值的個(gè)數(shù)稱為域的基數(shù)(用m表示)。例如,表1-1中屬性sex的域可表示為D={男,女},m=2。1.2.1關(guān)系模型1.

關(guān)系模型的相關(guān)概念—27—元組4二維表中的行稱為元組(tuple)。例如,表1-1中的(01001,趙乾,女,講師,計(jì)算機(jī),6000)就是一個(gè)元組。分量5一個(gè)元組中的每一個(gè)屬性值,稱為一個(gè)分量(component),n元關(guān)系的每個(gè)元組有n個(gè)分量。例如,元組(01001,趙乾,女,講師,計(jì)算機(jī),6000)中的“01001”為一個(gè)分量,此元組共有6個(gè)分量。1.2.1關(guān)系模型1.

關(guān)系模型的相關(guān)概念—28—關(guān)系模式6二維表的結(jié)構(gòu)稱為關(guān)系模式(relationschema),或者說(shuō),關(guān)系模式就是二維表的框架(表頭結(jié)構(gòu))。設(shè)關(guān)系名為R,其屬性名分別為A1,A2,…,An,則關(guān)系模式可用如下公式表示:

R(A1,A2,…,An)例如,表1-1的關(guān)系模式為teacher(tno,tn,sex,prof,dept,sal)。關(guān)系數(shù)據(jù)庫(kù)7在一個(gè)給定的應(yīng)用領(lǐng)域,所有實(shí)體及實(shí)體之間聯(lián)系所對(duì)應(yīng)的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)(relationdatabase)。在關(guān)系數(shù)據(jù)庫(kù)中,關(guān)系模式是型,關(guān)系是它的值。1.2.1關(guān)系模型1.

關(guān)系模型的相關(guān)概念—29—1.2.1關(guān)系模型2.關(guān)系的性質(zhì)列是同質(zhì)的,即每一列中的分量必須來(lái)自同一個(gè)域且必須是同一類型的數(shù)據(jù)。1不同的屬性可來(lái)自同一個(gè)域,但不同的屬性有不同的名字。2列的順序可以任意變換,但變換時(shí)應(yīng)連同屬性名一起交換,否則將得到不同的關(guān)系。3元組的順序可任意變換。4關(guān)系中不允許出現(xiàn)相同的元組。5關(guān)系中的每一個(gè)分量必須是不可再分的數(shù)據(jù)項(xiàng)。6—30—1.2.1關(guān)系模型3.關(guān)系的碼候選碼。如果一個(gè)關(guān)系中的某屬性或?qū)傩约闹悼梢晕ㄒ淮_定一個(gè)元組,則稱該屬性或?qū)傩约癁楹蜻x碼。候選碼具有唯一性、最小性的特點(diǎn)。1例如,有一個(gè)學(xué)生關(guān)系(學(xué)號(hào),姓名,性別,系別)與選課關(guān)系(學(xué)號(hào),姓名,課程編號(hào),成績(jī))。其中,學(xué)號(hào)能夠唯一標(biāo)識(shí)一個(gè)學(xué)生,則屬性“學(xué)號(hào)”是學(xué)生關(guān)系的候選碼,每一個(gè)學(xué)生的學(xué)號(hào)都是唯一的,這體現(xiàn)了候選碼的唯一性;在選課關(guān)系中,只有屬性集(學(xué)號(hào),課程編號(hào))才能唯一標(biāo)識(shí)一條選課信息,則屬性集(學(xué)號(hào),課程編號(hào))為選課關(guān)系的候選碼,從中去掉任一屬性都無(wú)法唯一標(biāo)識(shí)一個(gè)選課元組,這體現(xiàn)了候選碼的最小性?!?1—主碼。如果一個(gè)關(guān)系中有多個(gè)候選碼,可以從中選定一個(gè)作為元組標(biāo)識(shí),稱為主碼或主鍵。2

提示主碼是關(guān)系模型中的一個(gè)重要概念,每個(gè)關(guān)系必須選擇一個(gè)主碼,選定之后不能隨意改變。例如,在沒有重名學(xué)生的情況下,學(xué)生關(guān)系中的屬性“學(xué)號(hào)”與“姓名”都是學(xué)生關(guān)系的候選碼。如果選定屬性“學(xué)號(hào)”作為數(shù)據(jù)操作的依據(jù),則屬性“學(xué)號(hào)”為主碼;如果選定屬性“姓名”作為數(shù)據(jù)操作的依據(jù),則屬性“姓名”為主碼。1.2.1關(guān)系模型3.關(guān)系的碼—32—主屬性與非主屬性。包含在任一候選碼中的屬性稱為主屬性,不包含在任一候選碼中的屬性稱為非主屬性。3例如,在沒有重名學(xué)生的情況下,學(xué)生關(guān)系的屬性“學(xué)號(hào)”與“姓名”都是學(xué)生關(guān)系的候選碼,則它們都是學(xué)生關(guān)系的主屬性。而屬性“性別”與“系別”不包含在任一候選碼中,則它們都是學(xué)生關(guān)系的非主屬性。在最簡(jiǎn)單的情況下,關(guān)系的候選碼只包含一個(gè)屬性;在最極端的情況下,關(guān)系的候選碼是所有屬性的組合,此時(shí)稱為全碼。1.2.1關(guān)系模型3.關(guān)系的碼—33—外碼。如果一個(gè)關(guān)系R1中的主碼所對(duì)應(yīng)的屬性或?qū)傩约疿還存在于另一個(gè)關(guān)系R2中,則稱這個(gè)屬性或?qū)傩约疿為R2的外碼,也稱外鍵。4

高手點(diǎn)撥在一個(gè)數(shù)據(jù)庫(kù)中,如果兩個(gè)實(shí)體的候選碼中有共同的屬性或?qū)傩约疿,為了避免系統(tǒng)錯(cuò)誤及數(shù)據(jù)冗余等問題,一般不將X同時(shí)選為這兩個(gè)實(shí)體的主碼。如果兩個(gè)實(shí)體的主碼相同,可將這兩個(gè)實(shí)體的關(guān)系合并為一個(gè)關(guān)系。1.2.1關(guān)系模型3.關(guān)系的碼—34—1.2.2關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論1.函數(shù)的依賴函數(shù)依賴是關(guān)系模式中屬性之間的依賴關(guān)系。例如,設(shè)有一個(gè)學(xué)生成績(jī)關(guān)系(學(xué)號(hào),姓名,性別,班級(jí)編號(hào),課程編號(hào),課程名稱,成績(jī))表示為sgrade(sno,sn,sex,classno,cno,cn,grade)。其中,屬性sno與sn、sex及classno之間存在著一種依賴關(guān)系,即當(dāng)sno的值確定之后,其余3個(gè)屬性的值也隨之唯一地確定。

設(shè)關(guān)系模式R(U),U是屬性集,X和Y是U的子集,如果對(duì)于R(U)的任一關(guān)系r,X的每一個(gè)具體值,Y都有唯一的具體值與之對(duì)應(yīng),則稱X函數(shù)確定Y,或Y函數(shù)依賴于X,記作X→Y。其中,X稱為決定因子,Y稱為依賴因子。當(dāng)Y不依賴于X時(shí),記作X?Y;當(dāng)X→Y且Y→X時(shí),則記作X?Y。函數(shù)依賴的定義—35—下面對(duì)上述定義進(jìn)行幾點(diǎn)說(shuō)明。(1)對(duì)于r的任意兩個(gè)元組t1和t2,只要t1[X]=t2[X],就有t1[Y]=t2[Y]。(2)函數(shù)依賴不是關(guān)系模式中某個(gè)或某些關(guān)系實(shí)例的約束條件,而是整個(gè)關(guān)系模式中所有關(guān)系實(shí)例都要滿足的約束條件。(3)函數(shù)依賴與屬性之間的聯(lián)系有關(guān),具體表現(xiàn)在如下幾個(gè)方面(以上述關(guān)系模式sgrade為例進(jìn)行說(shuō)明)。①當(dāng)屬性X與屬性Y具有1∶1聯(lián)系時(shí),存在函數(shù)依賴X→Y,Y→X,即X?Y。②當(dāng)屬性X與屬性Y具有n∶1聯(lián)系時(shí),存在函數(shù)依賴X→Y,且Y?X。③當(dāng)屬性X與屬性Y具有m∶n聯(lián)系時(shí),X與Y之間不存在任何函數(shù)依賴。(4)函數(shù)依賴是語(yǔ)義范疇的概念,必須根據(jù)語(yǔ)義定義屬性之間的函數(shù)依賴,而不能憑某一時(shí)刻的實(shí)際數(shù)值來(lái)判斷,關(guān)系中元組的更新或刪除都不應(yīng)該破壞這種函數(shù)依賴。1.2.2關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論1.函數(shù)的依賴—36—(5)函數(shù)依賴的類型。函數(shù)依賴的類型可分為完全函數(shù)依賴、部分函數(shù)依賴與傳遞函數(shù)依賴3種。①完全函數(shù)依賴。設(shè)在R(U)中,X→Y,且對(duì)于X的任何一個(gè)真子集X′

,都有X′?Y,則稱Y對(duì)X完全函數(shù)依賴(fullfunctionaldependency),記作X→Y。②部分函數(shù)依賴。設(shè)在R(U)中,X→Y,且對(duì)于X的某一個(gè)真子集X′

,有X′→Y,則稱Y對(duì)X部分函數(shù)依賴(partialfunctionaldependency),記作X→Y。③傳遞函數(shù)依賴。設(shè)在R(U)中,X→Y(X不包含Y),但Y?X,而Y→Z(Y不包含Z),則稱Z對(duì)X傳遞函數(shù)依賴(transitivefunctionaldependency),記作X→Z。fp1.2.2關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論1.函數(shù)的依賴—37—1.2.2關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論2.范式范式(normalforms,NF)是關(guān)系模式規(guī)范化的標(biāo)準(zhǔn),不同的范式設(shè)定了不同程度的規(guī)范化要求。在關(guān)系數(shù)據(jù)庫(kù)規(guī)范中形成了一系列不同的范式,它們之間的包含關(guān)系可以表示為:5NF?4NF?BCNF?3NF?2NF?1NF。第一范式。1如果關(guān)系模式R的所有屬性均是不可再分的單一項(xiàng),則稱R屬于第一范式,記作R∈1NF。第二范式。2如果關(guān)系模式R∈1NF,且每個(gè)非主屬性都完全依賴于R的主碼,則R屬于第二范式,記作R∈2NF?!?8—將1NF的關(guān)系模式規(guī)范化到2NF的具體步驟如下。①將主碼的所有子集分別作為主碼重新構(gòu)建關(guān)系模式。②將非主屬性依次放到相應(yīng)的關(guān)系模式中。③去掉僅由主屬性構(gòu)成的關(guān)系模式。1.2.2關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論2.范式—39—【例1-1】將關(guān)系模式選課(學(xué)號(hào),課程號(hào),姓名,成績(jī))規(guī)范化為2NF?!窘狻?/p>

①由語(yǔ)義可知主碼為(學(xué)號(hào),課程號(hào)),將這一屬性組合的子集作為主碼分別構(gòu)建關(guān)系模式:R1(學(xué)號(hào),…),R2(課程號(hào),…),R3(學(xué)號(hào),課程號(hào),…)。②將非主屬性依次放入相應(yīng)的關(guān)系模式中:

R1(學(xué)號(hào),姓名),R2(課程號(hào)),R3(學(xué)號(hào),課程號(hào),成績(jī))。③去掉僅由主屬性構(gòu)成的關(guān)系模式R2,所剩的R1和R3即屬于2NF的關(guān)系模式,將它們重新命名可得:學(xué)生(學(xué)號(hào),姓名),選課(學(xué)號(hào),課程號(hào),成績(jī))。1.2.2關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論2.范式—40—第三范式。3如果關(guān)系模式R∈2NF,且每個(gè)非主屬性都不傳遞依賴于R的主碼,則R屬于第三范式,記作R∈3NF。將2NF的關(guān)系模式規(guī)范化到3NF的具體步驟如下。①將關(guān)系模式中非主屬性的依賴因子刪除,即刪除依賴于非主屬性的屬性。②新建關(guān)系模式,放入刪除掉的依賴因子及其決定因子。1.2.2關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論2.范式—41—【例1-2】將關(guān)系模式學(xué)生(學(xué)號(hào),姓名,系別,系主任)規(guī)范化到3NF?!窘狻竣儆烧Z(yǔ)義可知,屬性“系主任”函數(shù)依賴于非主屬性“系別”,所以將屬性“系主任”從關(guān)系模式學(xué)生中刪除,得到學(xué)生(學(xué)號(hào),姓名,系別)。②新建一個(gè)關(guān)系模式系管理,放入上一步中刪除的依賴因子“系主任”及其決定因子“系別”,得到系管理(系別,系主任)。此時(shí),這兩個(gè)關(guān)系模式都屬于3NF。1.2.2關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論2.范式—42—課堂小結(jié)①關(guān)系模型②關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論03數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)—44—1.3.1數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)圖1-13三級(jí)模式結(jié)構(gòu)和二級(jí)映像功能數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)從邏輯上分為外模式、模式和內(nèi)模式三級(jí)抽象模式,并提供外模式/模式、模式/內(nèi)模式二級(jí)映像?!?5—1.3.1數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)外模式1外模式又稱子模式或用戶模式,它是三級(jí)結(jié)構(gòu)的最外層,是數(shù)據(jù)庫(kù)用戶能夠看到并允許使用的那部分?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖。外模式是模式的子集,一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式。用戶可以根據(jù)系統(tǒng)所給的外模式,用查詢語(yǔ)言或應(yīng)用程序去操作部分?jǐn)?shù)據(jù),數(shù)據(jù)庫(kù)中的其余數(shù)據(jù)對(duì)于用戶來(lái)說(shuō)是不可見的,所以外模式也是保證數(shù)據(jù)庫(kù)安全的一種有力措施。模式2模式也稱為概念模式或概念視圖,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,處于三級(jí)模式結(jié)構(gòu)的中間層,不涉及數(shù)據(jù)的物理存儲(chǔ)和硬件環(huán)境,同時(shí)與開發(fā)工具及程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式,模式是數(shù)據(jù)的邏輯表示,它描述了數(shù)據(jù)庫(kù)中存儲(chǔ)的具體數(shù)據(jù)及其之間存在的聯(lián)系。—46—1.3.1數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)內(nèi)模式3內(nèi)模式又稱存儲(chǔ)模式或物理模式,是三層結(jié)構(gòu)中的最內(nèi)層,也是最靠近物理存儲(chǔ)的一層。它是對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表達(dá)方式。

高手點(diǎn)撥一個(gè)數(shù)據(jù)庫(kù)系統(tǒng),實(shí)際存在的只有物理級(jí)數(shù)據(jù)庫(kù),也就是內(nèi)模式,它是數(shù)據(jù)訪問的基礎(chǔ)。概念級(jí)數(shù)據(jù)庫(kù)是物理級(jí)數(shù)據(jù)庫(kù)的一種抽象描述,用戶級(jí)數(shù)據(jù)庫(kù)是用戶與數(shù)據(jù)庫(kù)的接口。用戶根據(jù)外模式進(jìn)行的操作,通過(guò)外模式到模式的映射與概念級(jí)數(shù)據(jù)庫(kù)聯(lián)系起來(lái),又通過(guò)模式到內(nèi)模式的映射與物理級(jí)數(shù)據(jù)庫(kù)聯(lián)系起來(lái)。實(shí)際上,DBMS的工作之一就是完成三級(jí)數(shù)據(jù)庫(kù)模式之間的轉(zhuǎn)換,把用戶對(duì)數(shù)據(jù)庫(kù)的操作轉(zhuǎn)化到物理層面去執(zhí)行。在數(shù)據(jù)庫(kù)系統(tǒng)中,外模式可以有多個(gè),但是模式與內(nèi)模式只能各有一個(gè)?!?7—1.3.2數(shù)據(jù)庫(kù)系統(tǒng)的二級(jí)映像外模式/模式映像1數(shù)據(jù)庫(kù)的模式可以對(duì)應(yīng)任意多個(gè)外模式,對(duì)于每一個(gè)外模式,都存在一個(gè)外模式/模式映像。當(dāng)一個(gè)關(guān)系的邏輯結(jié)構(gòu)(模式)發(fā)生變化時(shí),由數(shù)據(jù)庫(kù)管理員對(duì)外模式/模式映像做出相應(yīng)改變,就可以保證外模式不變。模式/內(nèi)模式映像2數(shù)據(jù)庫(kù)中只有一個(gè)模式和一個(gè)內(nèi)模式,所以模式/內(nèi)模式映像是唯一的。模式/內(nèi)模式映像定義了數(shù)據(jù)的全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),也就是模式與內(nèi)模式之間的關(guān)系。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)發(fā)生變化,只需數(shù)據(jù)庫(kù)管理員對(duì)模式/內(nèi)模式映像做出相應(yīng)的改變,就能使模式保持不變,從而使應(yīng)用程序也不用發(fā)生改變,確保了數(shù)據(jù)的物理獨(dú)立性?!?8—課堂小結(jié)①數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)②數(shù)據(jù)庫(kù)系統(tǒng)的二級(jí)映像04數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)—50—1.4數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)按照結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)的方法,將一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)從無(wú)到有地設(shè)計(jì)出來(lái)并投入使用,需要經(jīng)歷如下6個(gè)階段,如圖1-14所示。圖1-14數(shù)據(jù)庫(kù)設(shè)計(jì)步驟1.4數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)—51—需求分析階段1概念結(jié)構(gòu)設(shè)計(jì)階段2邏輯結(jié)構(gòu)設(shè)計(jì)階段3物理結(jié)構(gòu)設(shè)計(jì)階段4數(shù)據(jù)庫(kù)實(shí)施階段5數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)階段6需求分析的準(zhǔn)確性決定了構(gòu)建數(shù)據(jù)庫(kù)的速度與質(zhì)量。將概念模型轉(zhuǎn)換為具體某個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的邏輯數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化。根據(jù)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)建立數(shù)據(jù)庫(kù),編寫與調(diào)試應(yīng)用程序,把原始數(shù)據(jù)裝入數(shù)據(jù)庫(kù)并進(jìn)行試運(yùn)行。通過(guò)對(duì)用戶的需求進(jìn)行綜合歸納與抽象,形成一個(gè)獨(dú)立于具體數(shù)據(jù)庫(kù)管理系統(tǒng)之外的概念模型。為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用需求的物理結(jié)構(gòu),包括存儲(chǔ)結(jié)構(gòu)和存取方法等。在運(yùn)行過(guò)程中還需要不斷對(duì)其進(jìn)行評(píng)估、調(diào)整與修改,以保證數(shù)據(jù)庫(kù)系統(tǒng)的性能與安全。1.4.1需求分析階段—52—需求分析的方法1需求分析的步驟2常用的需求分析方法為自頂向下分析法,也稱結(jié)構(gòu)化分析方法(structuredanalysis,SA)。這是最簡(jiǎn)單實(shí)用的方法,即從最上層的系統(tǒng)結(jié)構(gòu)入手,逐層分析系統(tǒng)。(1)調(diào)查、分析所處理對(duì)象的現(xiàn)狀,包括了解組織的部門組成情況、各部門的職責(zé)等,為分析信息流程做好準(zhǔn)備。(2)調(diào)查各部門的業(yè)務(wù)活動(dòng)情況,包括了解各部門使用什么類型的數(shù)據(jù),如何加工處理這些數(shù)據(jù),輸出什么信息,輸出到什么部門,輸出結(jié)果的格式等信息。(3)在熟悉業(yè)務(wù)活動(dòng)的基礎(chǔ)上,協(xié)助用戶明確對(duì)系統(tǒng)的各種要求,包括信息要求、處理要求、安全性與完整性要求。(4)確定系統(tǒng)的邊界。對(duì)前面調(diào)查的結(jié)果進(jìn)行初步分析,確定應(yīng)該由計(jì)算機(jī)實(shí)現(xiàn)的功能。1.4.2概念結(jié)構(gòu)設(shè)計(jì)階段—53—概念結(jié)構(gòu)設(shè)計(jì)的方法1概念結(jié)構(gòu)設(shè)計(jì)的步驟2(1)自頂向下的設(shè)計(jì)方法。(2)自底向上的設(shè)計(jì)方法。(3)由里向外逐步擴(kuò)張的設(shè)計(jì)方法。(4)混合策略的設(shè)計(jì)方法。(1)進(jìn)行數(shù)據(jù)抽象,設(shè)計(jì)局部E-R模型。(2)集成各局部E-R模型,形成全局E-R模型。1.4.3邏輯結(jié)構(gòu)設(shè)計(jì)階段—54—邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是,把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的E-R圖轉(zhuǎn)換為所選用的數(shù)據(jù)庫(kù)管理系統(tǒng)支持的邏輯結(jié)構(gòu)。在邏輯結(jié)構(gòu)設(shè)計(jì)階段,首先需要將概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)的E-R圖轉(zhuǎn)換為一般的邏輯模型(層次、網(wǎng)狀、關(guān)系等),然后對(duì)其進(jìn)行優(yōu)化。E-R圖向關(guān)系模型轉(zhuǎn)換需要確定如何將實(shí)體、實(shí)體的屬性及實(shí)體之間的聯(lián)系轉(zhuǎn)換為關(guān)系。一般來(lái)說(shuō),轉(zhuǎn)換原則為,一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。得到初步的數(shù)據(jù)模型后,還需要以規(guī)范化理論為依據(jù)對(duì)其進(jìn)行調(diào)整、優(yōu)化,得到最終的邏輯模型。1.4.4物理結(jié)構(gòu)設(shè)計(jì)階段—55—物理結(jié)構(gòu)設(shè)計(jì)階段需要為設(shè)計(jì)好的邏輯模型選取一個(gè)最符合要求的物理結(jié)構(gòu),包括數(shù)據(jù)庫(kù)在物理設(shè)備上的存取方法和存儲(chǔ)結(jié)構(gòu)。在確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)之前,設(shè)計(jì)人員必須詳細(xì)了解選定數(shù)據(jù)庫(kù)管理系統(tǒng)的功能和特點(diǎn),熟悉應(yīng)用環(huán)境,了解應(yīng)用系統(tǒng)各部分的使用要求,并把它們作為平衡物理空間分配的依據(jù)。物理結(jié)構(gòu)設(shè)計(jì)過(guò)程中需要考慮許多因素,如時(shí)間和空間效率、維護(hù)代價(jià)與用戶要求等,對(duì)這些因素進(jìn)行權(quán)衡,可能會(huì)產(chǎn)生多種設(shè)計(jì)方案。此時(shí)就需要對(duì)設(shè)計(jì)方案進(jìn)行評(píng)價(jià),從中選出較優(yōu)的方案。1.4.5數(shù)據(jù)庫(kù)實(shí)施階段—56—建立數(shù)據(jù)庫(kù)結(jié)構(gòu)1裝入數(shù)據(jù)2建立數(shù)據(jù)庫(kù)結(jié)構(gòu)可以使用數(shù)據(jù)定義語(yǔ)言,也可以使用圖形化管理工具。裝入數(shù)據(jù)又稱為數(shù)據(jù)庫(kù)加載(loading),是數(shù)據(jù)庫(kù)實(shí)施階段的一項(xiàng)重要工作。對(duì)于一般的小型系統(tǒng),裝入的數(shù)據(jù)量較少,可以采用人工輸入的方式完成。對(duì)于規(guī)模較大的系統(tǒng),一般使用計(jì)算機(jī)來(lái)完成這項(xiàng)工作,常用的方法是設(shè)計(jì)一個(gè)數(shù)據(jù)輸入子系統(tǒng)。1.4.5數(shù)據(jù)庫(kù)實(shí)施階段—57—應(yīng)用程序的編碼與調(diào)試3裝入數(shù)據(jù)4應(yīng)用程序的設(shè)計(jì)應(yīng)該與數(shù)據(jù)庫(kù)設(shè)計(jì)同步進(jìn)行,也就是說(shuō),在數(shù)據(jù)入庫(kù)的過(guò)程中需要同時(shí)調(diào)試應(yīng)用程序。應(yīng)用程序編寫完成并輸入一部分?jǐn)?shù)據(jù)之后,就可以試運(yùn)行數(shù)據(jù)庫(kù)。這一階段需要完成功能和性能上的測(cè)試。有些系統(tǒng)設(shè)計(jì)的參數(shù)只有在試運(yùn)行之后才能得到,如果測(cè)試結(jié)果不符合設(shè)計(jì)目標(biāo),則應(yīng)該返回之前的設(shè)計(jì)步驟修改或調(diào)整結(jié)構(gòu)。整理文檔5在程序的編碼調(diào)試及數(shù)據(jù)庫(kù)試運(yùn)行過(guò)程中,應(yīng)該將發(fā)現(xiàn)的問題及解決方法整理成文檔資料,以供正式運(yùn)行或改進(jìn)時(shí)參考使用。1.4.6數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)階段—58—在試運(yùn)行結(jié)果符合設(shè)計(jì)目標(biāo)后,數(shù)據(jù)庫(kù)即投入正式運(yùn)行。進(jìn)入運(yùn)行階段,標(biāo)志著數(shù)據(jù)庫(kù)應(yīng)用開發(fā)的工作基本結(jié)束,但設(shè)計(jì)過(guò)程并未結(jié)束。隨著應(yīng)用環(huán)境的變化,用戶的需求及處理方法不斷發(fā)展,數(shù)據(jù)在運(yùn)行過(guò)程中的存儲(chǔ)結(jié)構(gòu)也會(huì)發(fā)生變化,所以需要繼續(xù)對(duì)應(yīng)用程序進(jìn)行修改擴(kuò)充,包括維護(hù)數(shù)據(jù)庫(kù)的安全性與完整性,檢測(cè)并改善數(shù)據(jù)庫(kù)性能等,在必要時(shí)還需要重新組織和構(gòu)造數(shù)據(jù)庫(kù)。

—59—課堂總結(jié)①需求分析階段②概念結(jié)構(gòu)設(shè)計(jì)階段③邏輯結(jié)構(gòu)設(shè)計(jì)階段④物理結(jié)構(gòu)設(shè)計(jì)階段⑤數(shù)據(jù)庫(kù)實(shí)施階段⑥數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)階段05數(shù)據(jù)庫(kù)領(lǐng)域的新技術(shù)—61—1.5.1云數(shù)據(jù)庫(kù)與分布式數(shù)據(jù)庫(kù)1.云數(shù)據(jù)庫(kù)云數(shù)據(jù)庫(kù)(clouddatabase)是指被優(yōu)化或部署到一個(gè)虛擬計(jì)算環(huán)境中的數(shù)據(jù)庫(kù)。具有按需付費(fèi)、按需擴(kuò)展、高可用性及方便存儲(chǔ)整合等優(yōu)勢(shì)。將一個(gè)現(xiàn)有的數(shù)據(jù)庫(kù)優(yōu)化到云環(huán)境,有如下幾點(diǎn)好處。(1)可以使用戶按照存儲(chǔ)容量和帶寬的需求付費(fèi)。(2)提高數(shù)據(jù)庫(kù)的可移植性。(3)可實(shí)現(xiàn)按需擴(kuò)展。(4)實(shí)現(xiàn)高可用性。—62—1.5.1云數(shù)據(jù)庫(kù)與分布式數(shù)據(jù)庫(kù)2.分布式數(shù)據(jù)庫(kù)分布式數(shù)據(jù)庫(kù)(distributeddatabase)是指數(shù)據(jù)分別存儲(chǔ)在計(jì)算機(jī)網(wǎng)絡(luò)中的各臺(tái)計(jì)算機(jī)上的數(shù)據(jù)庫(kù)。分布式數(shù)據(jù)庫(kù)相對(duì)傳統(tǒng)集中式數(shù)據(jù)庫(kù)具有更高的數(shù)據(jù)訪問速度、更強(qiáng)的可擴(kuò)展性和更高的并發(fā)訪問量等優(yōu)點(diǎn)。

拓展閱讀云數(shù)據(jù)庫(kù)與分布式數(shù)據(jù)庫(kù)具有相似之處,如都把數(shù)據(jù)存放在不同的節(jié)點(diǎn)上,但是分布式數(shù)據(jù)庫(kù)在可擴(kuò)展方面是無(wú)法與云數(shù)據(jù)庫(kù)相比的。分布式數(shù)據(jù)庫(kù)因?yàn)橐紤]數(shù)據(jù)同步和分區(qū)失敗等情況,節(jié)點(diǎn)的增加會(huì)導(dǎo)致性能快速下降,而云數(shù)據(jù)庫(kù)在設(shè)計(jì)時(shí)就考慮了會(huì)影響可擴(kuò)展性的因素,采取了許多措施,如使用更簡(jiǎn)單的數(shù)據(jù)模型,對(duì)元數(shù)據(jù)和應(yīng)用數(shù)據(jù)進(jìn)行分離等,使自身的可擴(kuò)展性不受影響?!?3—1.5.2大數(shù)據(jù)與主動(dòng)數(shù)據(jù)庫(kù)1.大數(shù)據(jù)大數(shù)據(jù)(bigdata)也稱海量數(shù)據(jù)或巨量數(shù)據(jù),是指數(shù)據(jù)量大到無(wú)法利用傳統(tǒng)數(shù)據(jù)處理技術(shù)在合理的時(shí)間內(nèi)獲取、存儲(chǔ)、管理和分析的數(shù)據(jù)集合。根據(jù)大數(shù)據(jù)的處理流程,可以將其關(guān)鍵技術(shù)分為大數(shù)據(jù)采集、大數(shù)據(jù)預(yù)處理、大數(shù)據(jù)存儲(chǔ)與管理、大數(shù)據(jù)分析與挖掘、大數(shù)據(jù)可視化展現(xiàn)等。大數(shù)據(jù)采集1將數(shù)據(jù)寫入數(shù)據(jù)倉(cāng)庫(kù),整合在一起,以便對(duì)它們進(jìn)行綜合分析。大數(shù)據(jù)預(yù)處理2將雜亂無(wú)章的數(shù)據(jù)轉(zhuǎn)化為相對(duì)單一且便于處理的數(shù)據(jù),或者去除沒有價(jià)值甚至可能對(duì)分析造成干擾的數(shù)據(jù)(數(shù)據(jù)清洗),從而為后期的數(shù)據(jù)分析奠定基礎(chǔ)?!?4—大數(shù)據(jù)存儲(chǔ)與管理3用存儲(chǔ)器把采集到的數(shù)據(jù)存儲(chǔ)起來(lái),并建立相應(yīng)的數(shù)據(jù)庫(kù),以便對(duì)數(shù)據(jù)進(jìn)行管理和調(diào)用。大數(shù)據(jù)分析與挖掘4通過(guò)各種算法從大量的數(shù)據(jù)中找出潛在的有用信息,并研究數(shù)據(jù)的內(nèi)在規(guī)律和相互間的關(guān)系。大數(shù)據(jù)可視化展現(xiàn)5利用可視化手段對(duì)數(shù)據(jù)進(jìn)行分析,并將分析結(jié)果用圖表或文字等形式展現(xiàn)出來(lái),從而使讀者對(duì)數(shù)據(jù)的分布、發(fā)展趨勢(shì)、相關(guān)性和統(tǒng)計(jì)信息等一目了然。1.5.2大數(shù)據(jù)與主動(dòng)數(shù)據(jù)庫(kù)1.大數(shù)據(jù)—65—

拓展閱讀隨著網(wǎng)絡(luò)應(yīng)用的普及與大數(shù)據(jù)技術(shù)的發(fā)展,各種網(wǎng)站會(huì)將用戶不經(jīng)意間泄露的數(shù)據(jù)全部收集起來(lái),通過(guò)大數(shù)據(jù)技術(shù)整合之后,清晰地描繪出每個(gè)用戶的“人物畫像”,即用戶的購(gòu)買需求、消費(fèi)傾向及使用習(xí)慣等,然后利用這些信息對(duì)用戶進(jìn)行精準(zhǔn)營(yíng)銷,以獲取更多利益。為了保護(hù)容易泄露信息的新型勞動(dòng)者,多部委于2021年7月聯(lián)合簽署了《關(guān)于維護(hù)新就業(yè)形態(tài)勞動(dòng)者勞動(dòng)保障權(quán)益的指導(dǎo)意見》。隨后,為進(jìn)一步保護(hù)所有人的信息安全,2021年8月十三屆全國(guó)人民代表大會(huì)常務(wù)委員會(huì)第三十次會(huì)議通過(guò)了《中華人民共和國(guó)個(gè)人信息保護(hù)法》,主要針對(duì)信息騷擾、“大數(shù)據(jù)殺熟”等問題,全方位構(gòu)筑起個(gè)人信息保護(hù)的“金鐘罩”。1.5.2大數(shù)據(jù)與主動(dòng)數(shù)據(jù)庫(kù)1.大數(shù)據(jù)—66—1.5.2大數(shù)據(jù)與主動(dòng)數(shù)據(jù)庫(kù)2.主動(dòng)數(shù)據(jù)庫(kù)主動(dòng)數(shù)據(jù)庫(kù)(activedatabase)是指在沒有用戶干預(yù)的情況下,能夠主動(dòng)對(duì)系統(tǒng)內(nèi)部或外部所發(fā)生的事件做出反應(yīng)的數(shù)據(jù)庫(kù),是數(shù)據(jù)庫(kù)技術(shù)與人工智能技術(shù)相結(jié)合的產(chǎn)物。與傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)相比,主動(dòng)數(shù)據(jù)庫(kù)最大的特點(diǎn)就是讓數(shù)據(jù)庫(kù)系統(tǒng)具有主動(dòng)服務(wù)的功能,并以一種統(tǒng)一的機(jī)制來(lái)實(shí)現(xiàn)各種主動(dòng)服務(wù)需求。雖然主動(dòng)數(shù)據(jù)庫(kù)還有待發(fā)展,但其已經(jīng)在計(jì)算機(jī)集成制造、網(wǎng)絡(luò)管理和辦公自動(dòng)化等領(lǐng)域有了廣泛的應(yīng)用?!?7—1.5.3數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘1.?dāng)?shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)倉(cāng)庫(kù)(datawarehouse)是面向主題的、集成的、相對(duì)穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,通常用于輔助決策支持。(1)面向主題。(2)集成性。(3)相對(duì)穩(wěn)定。(4)反映歷史變化。數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)—68—1.5.3數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘2.?dāng)?shù)據(jù)挖掘數(shù)據(jù)挖掘(datamining)是從大量數(shù)據(jù)中獲取有效的、新穎的、有潛在價(jià)值的信息的非平凡過(guò)程,也稱為知識(shí)發(fā)現(xiàn)。簡(jiǎn)單來(lái)講,數(shù)據(jù)挖掘就是從大量數(shù)據(jù)中提取或“挖掘”知識(shí)。數(shù)據(jù)挖掘是交叉性學(xué)科,它是數(shù)據(jù)庫(kù)技術(shù)、機(jī)器學(xué)習(xí)、統(tǒng)計(jì)學(xué)、人工智能、可視化分析和模式識(shí)別等多門學(xué)科的融合。它把現(xiàn)代企業(yè)中的原始數(shù)據(jù)轉(zhuǎn)換為人工智能的來(lái)源,對(duì)數(shù)據(jù)進(jìn)行操縱,提供可靠的、可以用來(lái)決策的信息?!?9—實(shí)戰(zhàn)訓(xùn)練1.實(shí)戰(zhàn)要求(1)根據(jù)實(shí)際業(yè)務(wù)進(jìn)行需求分析。(2)根據(jù)需求分析進(jìn)行概念結(jié)構(gòu)設(shè)計(jì),畫出E-R圖。(3)根據(jù)概念結(jié)構(gòu)設(shè)計(jì)進(jìn)行邏輯結(jié)構(gòu)設(shè)計(jì),將E-R圖轉(zhuǎn)換為邏輯模型。2.實(shí)戰(zhàn)內(nèi)容設(shè)有一訂貨管理系統(tǒng),具有展示各類商品信息及訂購(gòu)商品的功能??蛻暨x擇商品并提交后生成訂單,完成訂貨的業(yè)務(wù)?,F(xiàn)根據(jù)這一系統(tǒng)要求完成下列實(shí)戰(zhàn)內(nèi)容。(1)需求分析。首先對(duì)業(yè)務(wù)流程進(jìn)行調(diào)查分析,根據(jù)業(yè)務(wù)需求繪制數(shù)據(jù)流圖。分析得出其業(yè)務(wù)流程為,登錄→瀏覽商品→添加商品→提交訂單→生成訂單?!?0—實(shí)戰(zhàn)訓(xùn)練(2)概念結(jié)構(gòu)設(shè)計(jì)。建立局部E-R圖,再通過(guò)合并優(yōu)化獲得全局E-R圖。建立局部E-R圖之前,需先分析實(shí)體間的語(yǔ)義約束,即一個(gè)客戶可以訂購(gòu)多個(gè)商品,一個(gè)商品可以被多個(gè)客戶訂購(gòu),因此,客戶和商品之間是多對(duì)多關(guān)系。將約束中提到的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為E-R圖中的實(shí)體及其屬性,聯(lián)系轉(zhuǎn)換為E-R圖中的聯(lián)系,并組合成全局E-R圖,如圖1-15所示。圖1-15全局E-R圖—71—實(shí)戰(zhàn)訓(xùn)練(3)轉(zhuǎn)換邏輯模型。根據(jù)E-R圖所示實(shí)體與聯(lián)系,列出如下3個(gè)關(guān)系模型。其中,訂購(gòu)聯(lián)系需結(jié)合實(shí)際添加自身相關(guān)屬性。商品(商品編號(hào),商品名稱,商品價(jià)格,庫(kù)存數(shù)量,生產(chǎn)日期)客戶(客戶編號(hào),客戶名稱,聯(lián)系電話,聯(lián)系地址)訂購(gòu)(訂單編號(hào),客戶編號(hào),商品編號(hào),訂購(gòu)數(shù)量,訂購(gòu)時(shí)間)—72—課堂總結(jié)①云數(shù)據(jù)庫(kù)與分布式數(shù)據(jù)庫(kù)②大數(shù)據(jù)與主動(dòng)數(shù)據(jù)庫(kù)③數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘感謝觀看SQLServer數(shù)據(jù)庫(kù)應(yīng)用案例教程2SQLServer基礎(chǔ)知識(shí)第章本章導(dǎo)讀SQLServer是一款應(yīng)用廣泛的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),SQLServer2019是其最新版本。SQLServer2019面向數(shù)據(jù)云服務(wù),支持企業(yè)更加深入地管理數(shù)據(jù),以及更廣泛地組織數(shù)據(jù),實(shí)現(xiàn)企業(yè)內(nèi)部與外部的數(shù)據(jù)集成,使企業(yè)的數(shù)據(jù)管理和應(yīng)用更加高效。本章將簡(jiǎn)單介紹SQLServer,并詳細(xì)講解SQLServer2019與SQLServer圖形化管理工具的下載與安裝。知識(shí)目標(biāo)了解SQLServer基礎(chǔ)知識(shí)。能力目標(biāo)能夠安裝SQLServer2019。能夠安裝SQLServer圖形化管理工具。素質(zhì)目標(biāo)培養(yǎng)按部就班、腳踏實(shí)地的工作習(xí)慣。項(xiàng)目導(dǎo)航SQLServer簡(jiǎn)介1下載并安裝SQLServer20192安裝和打開SQLServer圖形化管理工具301SQLServer簡(jiǎn)介2.1.1SQLServer的產(chǎn)生與發(fā)展—80—1988Microsoft、Sybase和Ashton-Tate三家公司共同推出了第一個(gè)版本SQLServer1.0forOS/2。1990Ashton-tate退出了SQLServer的開發(fā)Microsoft與Sybase合作推出了SQLServer4.2forWindowsNT。1993Microsoft發(fā)布了MicrosoftSQLServer6。1995Microsoft推出了MicrosoftSQLServer7。1998Microsoft推出了企業(yè)級(jí)的數(shù)據(jù)庫(kù)管理系統(tǒng)SQLServer2000。2000Microsoft推出了經(jīng)過(guò)重大改進(jìn)的MicrosoftSQLServer2005。20052008Microsoft推出了MicrosoftSQLServer2008。2012Microsoft推出了SQLServer2012。Microsoft推出了SQLServer2014。2014Microsoft推出了SQLServer2016版本2016Microsoft推出的SQLServer2017支持在Linux上完全運(yùn)行與安裝,還支持在MacOS的Docker容器上運(yùn)行。2017Microsoft推出了SQLServer2019。20192.1.2SQLServer2019的優(yōu)勢(shì)—81—安全性和可用性高。1超高性能。2企業(yè)安全性增強(qiáng)。3實(shí)現(xiàn)自助式報(bào)表服務(wù)。4方便易用。5高效的數(shù)據(jù)壓縮功能,便于數(shù)據(jù)集成操作。6數(shù)據(jù)虛擬化。7—82—課堂小結(jié)①SQLServer的產(chǎn)生與發(fā)展②SQLServer2019的優(yōu)勢(shì)02下載并安裝SQLServer2019—84—2.2下載并安裝SQLServer2019SQLServer2019需要安裝在Windows10及以上版本的操作系統(tǒng)中,具體軟硬件要求請(qǐng)參閱“安裝SQLServer2019的硬件和軟件要求”。在安裝與配置SQLServer2019之前,需要登錄官網(wǎng)下載安裝文件,具體步驟如下:步驟1打開瀏覽器,在搜索引擎中搜索“SQLServer2019下載”,在結(jié)果列表中選擇其官方網(wǎng)站的鏈接地址,打開網(wǎng)站,向下移動(dòng)滾動(dòng)條,在其中下載SQLServer2019安裝包,如圖2-2所示?!?5—圖2-2搜索并下載SQLServer20192.2下載并安裝SQLServer2019—86—步驟2在本地磁盤中找到下載的SQLServer2019安裝包,雙擊安裝包進(jìn)行安裝,打開“SQLServer2019”窗口,選擇“自定義”安裝類型,如圖2-3所示。圖2-3自定義安裝SQLServer20192.2下載并安裝SQLServer2019—87—步驟3

打開設(shè)置界面,在“選擇語(yǔ)言”下拉列表中選擇“中文(簡(jiǎn)體)”選項(xiàng),在“媒體位置”文本框中輸入地址或單擊“瀏覽”按鈕直接選擇地址,然后單擊“安裝”按鈕,如圖2-4所示。圖2-4設(shè)置安裝語(yǔ)言與位置2.2下載并安裝SQLServer2019—88—步驟4

安裝程序自動(dòng)下載程序包,等待片刻。步驟5下載完成后,打開“SQLServer安裝中心”窗口,在左側(cè)列表中選擇“安裝”選項(xiàng),在右側(cè)展開的設(shè)置區(qū)選擇“全新SQLServer獨(dú)立安裝或向現(xiàn)有安裝添加功能”選項(xiàng),如圖2-5所示。圖2-5選擇安裝選項(xiàng)2.2下載并安裝SQLServer2019—89—步驟6

打開“產(chǎn)品密鑰”界面,在該界面中可以輸入購(gòu)買軟件的密鑰,也可以在選中“指定可用版本”單選鈕后,在下方的下拉列表中選擇相應(yīng)的免費(fèi)版本,選擇后單擊“下一步”按鈕,如圖2-6所示。圖2-6選擇免費(fèi)版本2.2下載并安裝SQLServer2019—90—步驟7打開“許可條款”界面,勾選“我接受許可條款和隱私聲明”復(fù)選框,然后單擊“下一步”按鈕,如圖2-7所示。圖2-7接受許可條款2.2下載并安裝SQLServer2019—91—步驟8

此時(shí)安裝程序自動(dòng)進(jìn)行檢查,檢查后跳轉(zhuǎn)到“Microsoft更新”頁(yè)面,勾選“使用Microsoft更新檢查更新”復(fù)選框后Microsoft將持續(xù)提供更新程序,如果不希望獲得更新也可以不勾選,直接單擊“下一步”按鈕,如圖2-8所示。圖2-8選擇是否使用Microsoft更新檢查2.2下載并安裝SQLServer2019—92—步驟9打開“安裝規(guī)則”界面,該界面將檢查安裝環(huán)境是否符合規(guī)則,并將檢查狀態(tài)顯示在界面中。其中,“Windows防火墻”規(guī)則呈警告狀態(tài),可不予理會(huì),直接單擊“下一步”按鈕,如圖2-9所示。圖2-9檢查安裝環(huán)境2.2下載并安裝SQLServer2019—93—步驟10打開“功能選擇”界面,在“功能”列表框中可以勾選想要安裝的功能復(fù)選框,此處單擊“全選”按鈕,然后單擊“下一步”按鈕,如圖2-10所示。圖2-10選擇安裝的功能2.2下載并安裝SQLServer2019—94—步驟11依次打開“實(shí)例配置”→“PolyBase配置”→“Java安裝位置”→“服務(wù)器配置”界面,均保持默認(rèn)設(shè)置,并單擊“下一步”按鈕。步驟12打開“數(shù)據(jù)庫(kù)引擎配置”界面,選中“混合模式”單選鈕,在“輸入密碼”與“確認(rèn)密碼”文本框中輸入相同的密碼;然后單擊下方的“添加當(dāng)前用戶”按鈕(此處自動(dòng)添加當(dāng)前Windows賬戶為管理員);最后單擊“下一步”按鈕,如圖2-11所示。圖2-11配置數(shù)據(jù)庫(kù)引擎2.2下載并安裝SQLServer2019—95—步驟13打開“AnalysisServices配置”界面,單擊“添加當(dāng)前用戶”按鈕,然后單擊“下一步”按鈕,如圖2-12所示。圖2-12配置AnalysisServices2.2下載并安裝SQLServer2019—96—步驟14依次打開“IntegrationServicesScaleOut配置-主節(jié)點(diǎn)”→“IntegrationServicesScaleOut配置-輔助角色節(jié)點(diǎn)”界面,均保持默認(rèn)設(shè)置,并單擊“下一步”按鈕。步驟15打開“DistributedReplay控制器”界面,單擊“添加當(dāng)前用戶”按鈕,然后單擊“下一步”按鈕,如圖2-13所示。圖2-13設(shè)置DistributedReplay控制器服務(wù)的管理員2.2下載并安裝SQLServer2019—97—步驟16打開“DistributedReplay客戶端”界面,在“控制器名稱”文本框中輸入“控制器1”,然后單擊“下一步”按鈕,如圖2-14所示。圖2-14設(shè)置DistributedReplay客戶端控制器2.2下載并安裝SQLServer2019—98—步驟17打開“同意安裝MicrosoftROpen”界面,單擊“接受”按鈕,然后單擊“下一步”按鈕,如圖2-15所示。圖2-15同意安裝MicrosoftROpen組件2.2下載并安裝SQLServer2019—99—步驟18打開“同意安裝Python”界面,單擊“接受”按鈕,然后單擊“下一步”按鈕,如圖2-16所示。圖2-16同意安裝Python組件2.2下載并安裝SQLServer2019—100—步驟19打開“準(zhǔn)備安裝”界面,單擊“安裝”按鈕,如圖2-17所示。圖2-17驗(yàn)證要安裝的SQLServer2019功能2.2下載并安裝SQLServer2019—101—步驟20等待片刻,安裝完成后打開“完成”界面,單擊“關(guān)閉”按鈕即可,如圖2-18所示。圖2-18SQLServer2019安裝完成2.2下載并安裝SQLServer2019—102—課堂小結(jié)①下載并安裝SQLServer201903安裝和打開SQLServer圖形化管理工具—104—2.3安裝和打開SQLServer圖形化管理工具SSMS全稱SQLServerManagementStudio,是用于管理SQLServer基礎(chǔ)架構(gòu)的集成環(huán)境。使用SSMS可以訪問、配置、控制、管理與開發(fā)SQLServer的所有組件。安裝和打開SQLServer圖形化管理工具在安裝了SQLServer2019后,通常還需要安裝圖形化管理工具來(lái)對(duì)其進(jìn)行管理操作。SQLServer2019的圖形化管理工具有很多,如NavicatforSQLServer,但是最常用的還是Microsoft為SQLServer2019提供的SSMS?!?05—步驟1

在2.2節(jié)步驟5打開的“SQLServer安裝中心”對(duì)話框左側(cè)選擇“安裝”選項(xiàng),然后在右側(cè)的設(shè)置區(qū)選擇“安裝SQLServer管理工具”選項(xiàng),打開其官方網(wǎng)站,在頁(yè)面中單擊“SQLServerManagementStudio(SSMS)18.10的免費(fèi)下載”鏈接,下載SSMS,如圖2-19所示。圖2-19下載SSMS2.3安裝和打開SQLServer圖形化管理工具—106—步驟2

在本地磁盤中雙擊下載的安裝包,打開安裝界面,選擇合適的安裝位置(一般保持默認(rèn)),然后單擊“安裝”按鈕,如圖2-20所示。圖2-20選擇SSMS的安裝位置2.3安裝和打開SQLServer圖形化管理工具—107—步驟3

等待片刻,安裝完成后單擊“關(guān)閉”按鈕,關(guān)閉安裝界面。單擊“開始”按鈕,在開始菜單中選擇“MicrosoftSQLServerManagementStudio18”選項(xiàng),打開SSMS。步驟4

打開“連接到服務(wù)器”對(duì)話框,在“服務(wù)器類型”下拉列表中選擇“數(shù)據(jù)庫(kù)引擎”選項(xiàng),在“服務(wù)器名稱”下拉列表中選擇本機(jī)服務(wù)器名稱,在“身份驗(yàn)證”下拉列表中選擇“Windows身份驗(yàn)證”選項(xiàng),然后單擊“連接”按鈕,即可進(jìn)入SSMS界面,如圖2-21所示。圖2-21打開SSMS2.3安裝和打開SQLServer圖形化管理工具—108—課堂總結(jié)①安裝和打開SQLServer圖形化管理工具感謝觀看SQLServer數(shù)據(jù)庫(kù)應(yīng)用案例教程3Transact-SQL語(yǔ)言第章本章導(dǎo)讀Transact-SQL是SQLServer的核心查詢語(yǔ)言,使用它能夠?qū)崿F(xiàn)關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)定義、數(shù)據(jù)操作等功能。本章將介紹Transact-SQL語(yǔ)言的相關(guān)內(nèi)容,包括SQL與Transact-SQL的關(guān)系,Transact-SQL基本語(yǔ)法、數(shù)據(jù)類型、常量、變量、表達(dá)式、運(yùn)算符、常用函數(shù)及流程控制語(yǔ)句等。知識(shí)目標(biāo)了解SQL與Transact-SQL的關(guān)系。掌握Transact-SQL基本語(yǔ)法。掌握數(shù)據(jù)類型的基礎(chǔ)知識(shí)。了解常量、變量、表達(dá)式、運(yùn)算符、常用函數(shù)及流程控制語(yǔ)句的基礎(chǔ)知識(shí)。能力目標(biāo)能夠根據(jù)數(shù)據(jù)的特點(diǎn)選擇正確的數(shù)據(jù)類型。能夠編寫簡(jiǎn)單的Transact-SQL代碼。素質(zhì)目標(biāo)提升工作能力。了解北京冬奧會(huì)對(duì)我國(guó)的積極意義,增強(qiáng)民族自信心。項(xiàng)目導(dǎo)航認(rèn)識(shí)Transact-SQL1數(shù)據(jù)類型2常量與變量3表達(dá)式與運(yùn)算符4常用函數(shù)5流程控制語(yǔ)句601認(rèn)識(shí)Transact-SQL3.1.1SQL與Transact-SQL1.SQL結(jié)構(gòu)化查詢語(yǔ)言(structuredquerylanguage,SQL)是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)查詢語(yǔ)言,是集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義與數(shù)據(jù)控制于一體的綜合性語(yǔ)言。在關(guān)系數(shù)據(jù)庫(kù)中,使用它能夠完成數(shù)據(jù)庫(kù)內(nèi)的所有操作?!?16—此外,它還具有如下幾個(gè)特點(diǎn)。綜合能力強(qiáng)1SQL的語(yǔ)言風(fēng)格統(tǒng)一且集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義、數(shù)據(jù)控制等功能于一體,可以獨(dú)立完成數(shù)據(jù)庫(kù)活動(dòng)中的全部工作。非過(guò)程化2運(yùn)用SQL操縱數(shù)據(jù)時(shí),用戶不需要了解存取路徑,其實(shí)現(xiàn)過(guò)程與存取路徑的選擇都由系統(tǒng)自動(dòng)完成?!?17—面向集合3SQL采用的是面向集合的操作方式,其操作對(duì)象、查詢結(jié)果都是元組的集合。使用靈活4SQL既可以作為獨(dú)立語(yǔ)言使用又可以作為嵌入式語(yǔ)言使用。簡(jiǎn)單易用5SQL不僅功能強(qiáng)大而且簡(jiǎn)單易用,使用簡(jiǎn)單的動(dòng)詞命令就可以實(shí)現(xiàn)各種核心功能。功

能動(dòng)詞命令數(shù)據(jù)查詢SELECT(查詢)數(shù)據(jù)操縱INSERT(插入),UPDATE(更新),DELETE(刪除數(shù)據(jù))數(shù)據(jù)定義CREATE(創(chuàng)建),DROP(刪除結(jié)構(gòu)),ALTER(修改)數(shù)據(jù)控制GRANT(授權(quán)),REVOKE(收回授權(quán))表3-1SQL中的動(dòng)詞命令3.1.1SQL與Transact-SQL1.SQL3.1.1SQL與Transact-SQL2.Transact-SQL—118—Transact-SQL簡(jiǎn)稱T-SQL,是在SQL語(yǔ)言的基礎(chǔ)上進(jìn)行大幅擴(kuò)充而得到的專門用于SQLServer服務(wù)器技術(shù)的結(jié)構(gòu)化查詢語(yǔ)言。T-SQL不僅包含標(biāo)準(zhǔn)的SQL,還添加了變量、運(yùn)算符、函數(shù)、注釋和流程控制語(yǔ)句等,Transact-SQL基本語(yǔ)法提高了應(yīng)用程序和腳本的可移植性,為開發(fā)人員提供了更多便利。3.1.2Transact-SQL基本語(yǔ)法1.Transact-SQL語(yǔ)法格式的說(shuō)明—119—Transact-SQL基本語(yǔ)法使用T-SQL前,首先要了解其基本語(yǔ)法格式。下面以使用T-SQL創(chuàng)建數(shù)據(jù)表為例進(jìn)行說(shuō)明,其語(yǔ)法格式如下:CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[列約束][,…n][,表約束])為方便講解,接下來(lái)使用上述語(yǔ)法創(chuàng)建一個(gè)名為food的數(shù)據(jù)表,它包含兩個(gè)屬性(列),分別為foodnumber與foodname,其中foodnumbr是該數(shù)據(jù)表的碼,foodname不可為空。代碼如下:CREATETABLEfood(foodnumberintPRIMARYKEY,foodnamevarchar(10)NOTNULL)—120—語(yǔ)法約定說(shuō)明大寫T-SQL中的關(guān)鍵字大寫,如CREATE、TABLE、PRIMARYKEY、NOTNULL等斜體用戶提供的參數(shù)<>子句或用戶自定義的語(yǔ)法成分,如數(shù)據(jù)表名food{}必選語(yǔ)法項(xiàng),實(shí)際應(yīng)用時(shí)不輸入該符號(hào)[]可選語(yǔ)法項(xiàng),實(shí)際應(yīng)用時(shí)不輸入該符號(hào),如數(shù)據(jù)表的表約束為可選項(xiàng)|(豎線)分隔括號(hào)中的多個(gè)語(yǔ)法項(xiàng),表示在多項(xiàng)中只能選擇一項(xiàng)[,…n]表示前面的語(yǔ)法項(xiàng)可重復(fù)出現(xiàn)多次,相鄰兩項(xiàng)之間用逗號(hào)隔開,如數(shù)據(jù)表的列可設(shè)置多個(gè)且需用逗號(hào)隔開[…n]表示前面的語(yǔ)法項(xiàng)可重復(fù)出現(xiàn)多次,相鄰兩項(xiàng)之間用空格隔開;終止符表3-2T-SQL語(yǔ)法約定及說(shuō)明

高手點(diǎn)撥T-SQL語(yǔ)句不區(qū)分大小寫,也就是說(shuō)CREATE與create的作用是相同的,但許多開發(fā)人員還是習(xí)慣將關(guān)鍵字用大寫字母表示,其他標(biāo)識(shí)符用小寫字母表示,這樣能夠更加方便地閱讀代碼,在出錯(cuò)時(shí)也更容易修正。大家也應(yīng)養(yǎng)成良好的編碼習(xí)慣,同一類型的語(yǔ)句盡量不要大小寫混用,提高代碼的可讀性與可維護(hù)性。3.1.2Transact-SQL基本語(yǔ)法1.Transact-SQL語(yǔ)法格式的說(shuō)明3.1.2Transact-SQL基本語(yǔ)法2.標(biāo)識(shí)符—121—標(biāo)識(shí)符用于標(biāo)識(shí)數(shù)據(jù)庫(kù)對(duì)象(服務(wù)器、數(shù)據(jù)庫(kù)、數(shù)據(jù)表、索引、觸發(fā)器等)的名稱,如上述數(shù)據(jù)表的表名food。標(biāo)識(shí)符的命名通常需要遵循一定的規(guī)則,具體有如下幾條。(1)標(biāo)識(shí)符首字母必須為26個(gè)英文字母的大小寫形式、其他語(yǔ)言字符或“_”“@”“#”。(2)標(biāo)識(shí)符不能與T-SQL中的關(guān)鍵字重名,如不能為table(表)、view(視圖)等。(3)標(biāo)識(shí)符中不能含有空格或其他特殊字符。(4)標(biāo)識(shí)符的長(zhǎng)度不可超過(guò)128個(gè)字符。3.1.2Transact-SQL基本語(yǔ)法3.續(xù)行—122—在T-SQL中,代碼語(yǔ)句一般都比較長(zhǎng),所以通常會(huì)將一條語(yǔ)句放在多行中編寫。T-SQL會(huì)自動(dòng)忽略空格與行尾的換行符號(hào),使開發(fā)人員能夠簡(jiǎn)單快捷地編寫較長(zhǎng)的代碼語(yǔ)句,有效提高了代碼可讀性。3.1.2Transact-SQL基本語(yǔ)法4.注釋—123—--從數(shù)據(jù)表student中查詢所有學(xué)生的學(xué)號(hào)、姓名和性別SELECTsno,sn,sexFROMstudent單行注釋語(yǔ)句1“--”用于創(chuàng)建單行文本注釋語(yǔ)句。例如,如下語(yǔ)句中的首行是注釋語(yǔ)句,不影響其他語(yǔ)句運(yùn)行。在T-SQL中,可以使用兩種方法表示注釋語(yǔ)句。注釋語(yǔ)句是對(duì)代碼的注釋,運(yùn)行時(shí)不會(huì)運(yùn)行注釋語(yǔ)句?!?24—SELECTsno,COUNT(*)ASnumFROMsgrade/*GROUPBYsnoHAVING(COUNT(*)>=2)*/塊注釋語(yǔ)句2“/*…*/”用于創(chuàng)建塊注釋語(yǔ)句,其中所有的字符(無(wú)論單行還是多行)都會(huì)被注釋。需要注意的是,“/*”與“*/”必須配套使用,并且“/”與“*”必須連在一起,中間不能有空格。例如,如下代碼后兩行被注釋,該查詢將忽略注釋中的查詢條件。3.1.2Transact-SQL基本語(yǔ)法4.注釋—125—課堂小結(jié)①SQL與Transact-SQL②Transact-SQL基本語(yǔ)法02數(shù)據(jù)類型—127—3.2.1整數(shù)型整數(shù)型是較常用的數(shù)據(jù)類型,按照取值范圍從大到小,包括bigint、int、smallint、tinyint和bit共5種類型,如表3-3所示。數(shù)據(jù)類型取值范圍占用字節(jié)bigint?263~263?1的整型數(shù)據(jù)8字節(jié)int?231~231?1的整型數(shù)據(jù)4字節(jié)smallint?215~215?1的整型數(shù)據(jù)2字節(jié)tinyint0~255的整型數(shù)據(jù)1字節(jié)bit0,1,NULL實(shí)際占用1bit,但存儲(chǔ)時(shí)會(huì)占用1字節(jié);一個(gè)數(shù)據(jù)中含有多個(gè)bit字段時(shí),可共用1字節(jié)表3-3整數(shù)型數(shù)據(jù)類型—128—3.2.2浮點(diǎn)型浮點(diǎn)型數(shù)據(jù)類型用于存儲(chǔ)十進(jìn)制小數(shù),包括精確數(shù)值型numeric和decimal,以及近似數(shù)值型float和real,如表3-4所示。表3-4浮點(diǎn)型數(shù)據(jù)類型數(shù)據(jù)類型取值范圍占用字節(jié)numeric[(p[,s])]?1038+1~1038?11~9位數(shù)占用5字節(jié),10~19位數(shù)占用9字節(jié),20~28位數(shù)占用13字節(jié),29~38位數(shù)占用17字節(jié)decimal[(p[,s])]?1038+1~1038?1與numeric類型相同float[(n)]?1.79E+308~1.79E+308當(dāng)n取1~24時(shí),占用4字節(jié);當(dāng)n取25~53時(shí),占用8字節(jié)real?3.40E+38~3.40E+384字節(jié)—129—3.2.3日期時(shí)間型SQLServer中常用的日期時(shí)間型數(shù)據(jù)類型包括datetime、smalldatetime、date和time等,如表3-5所示。表3-5日期時(shí)間型數(shù)據(jù)類型數(shù)據(jù)類型取值范圍占用字節(jié)datetime1753-1-100:00:00.000—9999-12-3123:59:59.997的日期和時(shí)間(精確值舍入到“.000”“.003”或“.007”秒3個(gè)增量)8字節(jié)smalldatetime1900-1-100:00—2079-6-623:59的日期和時(shí)間,時(shí)間精度為分鐘4字節(jié)date0001-1-1—9999-12-31的日期8字節(jié)time00:00:00.0000000—23:59:59.9999999的時(shí)間,(基于24小時(shí)制)定義一天中的某個(gè)時(shí)間4字節(jié)—130—3.2.4字符型字符型數(shù)據(jù)類型包括char、varchar、nchar與nvarchar等,用于存儲(chǔ)字母、數(shù)字或文字符號(hào)等,如表3-6所示。表3-6字符型數(shù)據(jù)類型數(shù)據(jù)類型占用字節(jié)與取值范圍char[(n)]1個(gè)字符占用1字節(jié),可存儲(chǔ)1~8000個(gè)字節(jié)的固定長(zhǎng)度的非Unicode字符varchar[(n|max)]1個(gè)字符占用1字節(jié),可存儲(chǔ)1~231?1個(gè)字節(jié)的非固定長(zhǎng)度的非Unicode字符nchar[(n)]1個(gè)字符占用2字節(jié),可存儲(chǔ)1~4000個(gè)字節(jié)的固定長(zhǎng)度的Unicode字符nvarchar[(n|max)]1個(gè)字符占用2字節(jié),可存儲(chǔ)1~231?1個(gè)字節(jié)的非固定長(zhǎng)度的Unicode字符

提示Unicode是國(guó)際標(biāo)準(zhǔn)組織發(fā)布的可以容納世界上所有文字和符號(hào)的字符編碼方案,使用兩個(gè)字節(jié)表示一個(gè)字符。當(dāng)數(shù)據(jù)中含有占用兩個(gè)字節(jié)的字符時(shí),如漢字等符號(hào),可以設(shè)置使用Unicode字符的數(shù)據(jù)類型,防止各類字符混用時(shí)可能造成的亂碼錯(cuò)誤等問題。數(shù)據(jù)類型分類數(shù)據(jù)類型數(shù)據(jù)內(nèi)容或取值范圍占用字節(jié)貨幣型money?922337203685477.5808~922337203685477.5807的貨幣數(shù)據(jù)8字節(jié)smallmoney?214748.3648~214748.3647的貨幣數(shù)據(jù)4字節(jié)二進(jìn)制型binary[(n)]1~8000位固定長(zhǎng)度的二進(jìn)制數(shù)據(jù)一位數(shù)據(jù)占用1字節(jié)varbinary[(n|max)]1~231?1位非固定長(zhǎng)度的二進(jìn)制數(shù)據(jù)一位數(shù)據(jù)占用1字節(jié),最大為231?1個(gè)字節(jié)特殊類型uniqueidentifier全球唯一標(biāo)識(shí)符16字節(jié)timestamp時(shí)間戳8字節(jié)—131—3.2.5其他類型除上述4種數(shù)據(jù)類型外,還有貨幣型、二進(jìn)制型及特殊類型數(shù)據(jù)等,如表3-7所示。表3-7其他數(shù)據(jù)類型03常量與變量—133—3.3.1常量常量是指其值不會(huì)改變的數(shù)據(jù),如數(shù)字常量、字符串常量等。常量是表示一個(gè)特定值的符號(hào),在程序運(yùn)行的整個(gè)過(guò)程中都不會(huì)發(fā)生改變。202114.131.114367E+10數(shù)字常量1數(shù)字常量可以是有符號(hào)或無(wú)符號(hào)的整數(shù),也可以是浮點(diǎn)小數(shù),在使用時(shí)直接引用即可,不需要雙引號(hào)引起來(lái),如下都是數(shù)字常量。

提示如果需要表示負(fù)數(shù),可在數(shù)字常量前添加“-”?!?34—3.3.1常量'Beijing2022''TheXXIVOlympicWinterGames'字符串常量2字符串常量需用單引號(hào)引起來(lái),其中包含字母與數(shù)字字符,以及部分特殊字符(!、@、#等),如下都是字符串常量。

知識(shí)庫(kù)字符串常量分為ASCII字符串常量與Unicode字符串常量?jī)深?,前者每個(gè)字符使用一個(gè)字節(jié)存儲(chǔ);后者每個(gè)字符使用兩個(gè)字節(jié)存儲(chǔ),且在字符串前必須添加一個(gè)前綴“N”。ASCII(americanstandardcodeforinformationinterchange)是美國(guó)信息交換標(biāo)準(zhǔn)代碼,它是基于拉丁字母的一套編碼系統(tǒng)。它為部分字符制定了對(duì)應(yīng)的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論