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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

(教師編號)tn

(姓名)sex

(性別)prof

(職稱)dept

(系別)sal

(工資)01001趙乾女講師計算機600001002錢坤男講師自動化600001003孫震女副教授自動化700002011李離女教授通信800002013周巽男教授計算機8000表1-1teacher(教師)—26—屬性2二維表中的列稱為屬性(attribute),列名稱為屬性名,列中的值稱為屬性值。二維表中列的個數(shù)稱為關(guān)系的元數(shù)。如果一個二維表有n列,則稱其為n元關(guān)系。例如,表1-1所示關(guān)系teacher有tno,tn,sex,prof,dept,sal共6個屬性,所以它是一個6元關(guān)系。域3域(domain)是一組具有相同數(shù)據(jù)類型的值的集合,又稱值域(用D表示)。在關(guān)系中用域來表示屬性的取值范圍,域中所包含的值的個數(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,趙乾,女,講師,計算機,6000)就是一個元組。分量5一個元組中的每一個屬性值,稱為一個分量(component),n元關(guān)系的每個元組有n個分量。例如,元組(01001,趙乾,女,講師,計算機,6000)中的“01001”為一個分量,此元組共有6個分量。1.2.1關(guān)系模型1.

關(guān)系模型的相關(guān)概念—28—關(guān)系模式6二維表的結(jié)構(gòu)稱為關(guān)系模式(relationschema),或者說,關(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ù)庫7在一個給定的應(yīng)用領(lǐng)域,所有實體及實體之間聯(lián)系所對應(yīng)的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫(relationdatabase)。在關(guān)系數(shù)據(jù)庫中,關(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ì)的,即每一列中的分量必須來自同一個域且必須是同一類型的數(shù)據(jù)。1不同的屬性可來自同一個域,但不同的屬性有不同的名字。2列的順序可以任意變換,但變換時應(yīng)連同屬性名一起交換,否則將得到不同的關(guān)系。3元組的順序可任意變換。4關(guān)系中不允許出現(xiàn)相同的元組。5關(guān)系中的每一個分量必須是不可再分的數(shù)據(jù)項。6—30—1.2.1關(guān)系模型3.關(guān)系的碼候選碼。如果一個關(guān)系中的某屬性或?qū)傩约闹悼梢晕ㄒ淮_定一個元組,則稱該屬性或?qū)傩约癁楹蜻x碼。候選碼具有唯一性、最小性的特點。1例如,有一個學(xué)生關(guān)系(學(xué)號,姓名,性別,系別)與選課關(guān)系(學(xué)號,姓名,課程編號,成績)。其中,學(xué)號能夠唯一標(biāo)識一個學(xué)生,則屬性“學(xué)號”是學(xué)生關(guān)系的候選碼,每一個學(xué)生的學(xué)號都是唯一的,這體現(xiàn)了候選碼的唯一性;在選課關(guān)系中,只有屬性集(學(xué)號,課程編號)才能唯一標(biāo)識一條選課信息,則屬性集(學(xué)號,課程編號)為選課關(guān)系的候選碼,從中去掉任一屬性都無法唯一標(biāo)識一個選課元組,這體現(xiàn)了候選碼的最小性。—31—主碼。如果一個關(guān)系中有多個候選碼,可以從中選定一個作為元組標(biāo)識,稱為主碼或主鍵。2

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

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

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

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

,有X′→Y,則稱Y對X部分函數(shù)依賴(partialfunctionaldependency),記作X→Y。③傳遞函數(shù)依賴。設(shè)在R(U)中,X→Y(X不包含Y),但Y?X,而Y→Z(Y不包含Z),則稱Z對X傳遞函數(shù)依賴(transitivefunctionaldependency),記作X→Z。fp1.2.2關(guān)系數(shù)據(jù)庫的規(guī)范化理論1.函數(shù)的依賴—37—1.2.2關(guān)系數(shù)據(jù)庫的規(guī)范化理論2.范式范式(normalforms,NF)是關(guān)系模式規(guī)范化的標(biāo)準,不同的范式設(shè)定了不同程度的規(guī)范化要求。在關(guān)系數(shù)據(jù)庫規(guī)范中形成了一系列不同的范式,它們之間的包含關(guān)系可以表示為:5NF?4NF?BCNF?3NF?2NF?1NF。第一范式。1如果關(guān)系模式R的所有屬性均是不可再分的單一項,則稱R屬于第一范式,記作R∈1NF。第二范式。2如果關(guān)系模式R∈1NF,且每個非主屬性都完全依賴于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ù)庫的規(guī)范化理論2.范式—39—【例1-1】將關(guān)系模式選課(學(xué)號,課程號,姓名,成績)規(guī)范化為2NF?!窘狻?/p>

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

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

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

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

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

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

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

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

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

此時安裝程序自動進行檢查,檢查后跳轉(zhuǎn)到“Microsoft更新”頁面,勾選“使用Microsoft更新檢查更新”復(fù)選框后Microsoft將持續(xù)提供更新程序,如果不希望獲得更新也可以不勾選,直接單擊“下一步”按鈕,如圖2-8所示。圖2-8選擇是否使用Microsoft更新檢查2.2下載并安裝SQLServer2019—92—步驟9打開“安裝規(guī)則”界面,該界面將檢查安裝環(huán)境是否符合規(guī)則,并將檢查狀態(tài)顯示在界面中。其中,“Windows防火墻”規(guī)則呈警告狀態(tài),可不予理會,直接單擊“下一步”按鈕,如圖2-9所示。圖2-9檢查安裝環(huán)境2.2下載并安裝SQLServer2019—93—步驟10打開“功能選擇”界面,在“功能”列表框中可以勾選想要安裝的功能復(fù)選框,此處單擊“全選”按鈕,然后單擊“下一步”按鈕,如圖2-10所示。圖2-10選擇安裝的功能2.2下載并安裝SQLServer2019—94—步驟11依次打開“實例配置”→“PolyBase配置”→“Java安裝位置”→“服務(wù)器配置”界面,均保持默認設(shè)置,并單擊“下一步”按鈕。步驟12打開“數(shù)據(jù)庫引擎配置”界面,選中“混合模式”單選鈕,在“輸入密碼”與“確認密碼”文本框中輸入相同的密碼;然后單擊下方的“添加當(dāng)前用戶”按鈕(此處自動添加當(dāng)前Windows賬戶為管理員);最后單擊“下一步”按鈕,如圖2-11所示。圖2-11配置數(shù)據(jù)庫引擎2.2下載并安裝SQLServer2019—95—步驟13打開“AnalysisServices配置”界面,單擊“添加當(dāng)前用戶”按鈕,然后單擊“下一步”按鈕,如圖2-12所示。圖2-12配置AnalysisServices2.2下載并安裝SQLServer2019—96—步驟14依次打開“IntegrationServicesScaleOut配置-主節(jié)點”→“IntegrationServicesScaleOut配置-輔助角色節(jié)點”界面,均保持默認設(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打開“準備安裝”界面,單擊“安裝”按鈕,如圖2-17所示。圖2-17驗證要安裝的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后,通常還需要安裝圖形化管理工具來對其進行管理操作。SQLServer2019的圖形化管理工具有很多,如NavicatforSQLServer,但是最常用的還是Microsoft為SQLServer2019提供的SSMS?!?05—步驟1

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論