




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
數(shù)據(jù)庫原理及應用1第1章數(shù)據(jù)庫概論本章要點:了解數(shù)據(jù)庫技術的發(fā)展簡史掌握數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)一些概念掌握概念模型和數(shù)據(jù)模型的基本概念掌握關系模型的基本概念2一、數(shù)據(jù)庫發(fā)展簡史1.數(shù)據(jù)管理的誕生數(shù)據(jù)庫系統(tǒng)的萌芽出現(xiàn)于60年代。當時計算機開始廣泛地應用于數(shù)據(jù)管理,對數(shù)據(jù)的共享提出了越來越高的要求。傳統(tǒng)的文件系統(tǒng)已經(jīng)不能滿足人們的需求了,能夠統(tǒng)一管理和共享數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)應運而生。1961年網(wǎng)狀數(shù)據(jù)庫1968年層次數(shù)據(jù)庫1970年關系數(shù)據(jù)庫32.關系數(shù)據(jù)庫的由來41970年E.F.Codd發(fā)明了關系數(shù)據(jù)庫。關系模型有嚴格的數(shù)學基礎,抽象級別較高,而且簡單清晰,便于理解和使用。1976年霍尼韋爾公司(Honeywell)開發(fā)了第一個商用關系數(shù)據(jù)庫系統(tǒng)——MulticsRelationalDataStore。關系型數(shù)據(jù)庫系統(tǒng)以關系代數(shù)為堅實的理論基礎,經(jīng)過幾十年的發(fā)展和實際應用,技術越來越成熟和完善。其代表產(chǎn)品有Oracle、IBM公司的DB2、微軟公司的MSSQLServer、MySQL以及國產(chǎn)數(shù)據(jù)庫GaussDB和達夢數(shù)據(jù)庫等。3.結(jié)構(gòu)化查詢語言SQL語言的功能包括查詢、操縱、定義和控制,是一個綜合的、通用的關系數(shù)據(jù)庫語言,同時又是一種高度非過程化的語言,只要求用戶指出做什么而不需要指出怎么做。SQL集成實現(xiàn)了數(shù)據(jù)庫生命周期中的全部操作。SQL提供了與關系數(shù)據(jù)庫進行交互的方法,它可以與標準的編程語言一起工作。54.面向?qū)ο髷?shù)據(jù)庫關系型數(shù)據(jù)庫系統(tǒng)雖然技術很成熟,但其局限性也是顯而易見的:它能很好地處理“表格型數(shù)據(jù)”,卻對技術界出現(xiàn)的越來越多的復雜類型的數(shù)據(jù)無能為力。6然而,數(shù)年的發(fā)展表明,面向?qū)ο蟮年P系型數(shù)據(jù)庫系統(tǒng)產(chǎn)品的市場發(fā)展的情況并不理想。理論上的完美性并沒有帶來市場的熱烈反應。二、數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)系統(tǒng)的基本概念數(shù)據(jù)庫管理的基本對象是數(shù)據(jù)。數(shù)據(jù)是信息的具體表現(xiàn)形式,可以采用任何能被人們認知的符號,可以是數(shù)字(如:76、2010,¥100),也可以是文本,圖形,圖像,視頻等。7(1)數(shù)據(jù)庫(DB)數(shù)據(jù)庫是存儲在某種存儲介質(zhì)上的相關數(shù)據(jù)有組織的集合。在這個定義中特別要注意“相關”和“有組織”這些描述,就是說,數(shù)據(jù)庫不是簡單地將一些數(shù)據(jù)堆集在一起,而是把一些相互間有一定關系的數(shù)據(jù),按一定的結(jié)構(gòu)組織起來的數(shù)據(jù)集合。8玩具ID玩具名稱價格(¥)重量(克)品牌最低年齡最高年齡照片000001遙控汽車38300好孩子36略000002芭比娃娃168180芭比29略000003遙控機器人1582000羅本410略關系型數(shù)據(jù)庫按二維表格方式將數(shù)據(jù)組織起來。表中的每一行就是一個完整的數(shù)據(jù),其語義就是由表頭的列名來定義的,就是列名給表中的數(shù)據(jù)以一定的解釋。有這樣的多張表(記錄不同的信息)就可以構(gòu)成一個數(shù)據(jù)庫。(2)數(shù)據(jù)庫管理系統(tǒng)(DBMS)
數(shù)據(jù)庫管理系統(tǒng)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于建立、使用和維護數(shù)據(jù)庫。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過DBMS進行數(shù)據(jù)庫的維護工作。9主要功能包括:數(shù)據(jù)定義功能。數(shù)據(jù)存取功能。數(shù)據(jù)庫運行管理功能。數(shù)據(jù)庫的建立和維護功能。數(shù)據(jù)庫的傳輸。(3)數(shù)據(jù)庫系統(tǒng)(DBS)數(shù)據(jù)庫系統(tǒng),是由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng)。它是為適應數(shù)據(jù)處理的需要而發(fā)展起來的一種較為理想的數(shù)據(jù)處理的核心機構(gòu)。它是一個實際可運行的存儲、維護和應用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng),是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體。
10數(shù)據(jù)庫(Database)應用程序Application數(shù)據(jù)庫管理系統(tǒng)(DBMS)用戶(user)數(shù)據(jù)庫管理員(DBA)用戶(user)圖1-1數(shù)據(jù)庫系統(tǒng)組成DB:是集成的、結(jié)構(gòu)化的Data的集合,是DBMS的管理對象DBMS:是DBS的核心軟件,負責對DB的使用、控制和管理USER:管理和使用DB的人員DBA:設計、管理和使用DB的人員Application:是應用DB中的Data的一些軟件數(shù)據(jù)庫系統(tǒng)軟硬件層次硬件操作系統(tǒng)DBMS,編譯系統(tǒng)應用開發(fā)工具軟件應用系統(tǒng).net,Java,PHP,微信小程序,Python,GoSQLServer,MySQLOracle數(shù)據(jù)庫系統(tǒng)軟硬件層次112、數(shù)據(jù)管理技術的發(fā)展數(shù)據(jù)管理技術的發(fā)展可以大體歸為三個階段:人工管理文件系統(tǒng)數(shù)據(jù)庫系統(tǒng)。12(1)人工管理階段
本階段特點:數(shù)據(jù)不保存;沒有軟件系統(tǒng)對數(shù)據(jù)進行管理;這一時期沒有文件的概念,數(shù)據(jù)的組織必需由程序員自行設計;一組數(shù)據(jù)對應一個程序,不同程序之間不能相互利用數(shù)據(jù)。
13一組數(shù)據(jù)程序(2)文件管理系統(tǒng)
前提:
OS具有了文件管理功能。
本階段特點:數(shù)據(jù)與程序文件脫離,數(shù)據(jù)作為獨立的文件,可供多個程序使用,但多個文件之間缺乏聯(lián)系,從而造成數(shù)據(jù)冗余,占用存貯空間大。
14程序1程序2程序3文件3文件2文件1文件管理系統(tǒng)例如:
文件管理系統(tǒng)圖1-1文件管理系統(tǒng)示例玩具基本信息管理應用程序App1購物者購買玩具管理應用程序App2玩具信息文件File1購物者信息文件File2訂單信息文件File3購物者購買玩具,先查找文件File2,判斷此用戶是否合法;如果合法則訪問File1,判斷有無此玩具;如果有,則將訂單信息寫到文件File3中15優(yōu)點:1、數(shù)據(jù)能夠長期保存在磁盤上。2、有了提供文件與程序之間進行存取方法轉(zhuǎn)換的軟件。程序員不必關心數(shù)據(jù)的物理位置,可以集中精力考慮算法,并且節(jié)省了維護程序的工作量。3、文件形式的多樣化。由于有了直接存取設備,也就有了索引文件、鏈接文件、直接存取文件。4、數(shù)據(jù)存取以記錄為單位。16缺點:1、編寫應用程序不方便。2、應用程序的依賴性。3、不支持應用程序并發(fā)訪問。4、數(shù)據(jù)間耦合度差。5、數(shù)據(jù)表示單一。6、無安全控制功能。17(3)數(shù)據(jù)庫系統(tǒng)階段
數(shù)據(jù)庫管理技術實質(zhì)上是一個存儲在計算機內(nèi)的所有相關數(shù)據(jù)構(gòu)成的集合(對所有數(shù)據(jù)實行統(tǒng)一的、集中的、獨立的管理,數(shù)據(jù)獨立于程序而存在,并可供給不同的用戶而實現(xiàn)共享)。
18應用1應用2應用n…數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫(DB)數(shù)據(jù)庫系統(tǒng)有如下優(yōu)點:將相互關聯(lián)的數(shù)據(jù)集成在一起。在數(shù)據(jù)庫系統(tǒng)中,所有的數(shù)據(jù)都存儲在數(shù)據(jù)庫中,應用程序可通過DBMS訪問數(shù)據(jù)庫中的所有數(shù)據(jù)。較少的數(shù)據(jù)冗余。由于數(shù)據(jù)是統(tǒng)一管理的,因此可以從全局著眼,合理地組織數(shù)據(jù)。數(shù)據(jù)可以共享并能保證數(shù)據(jù)的一致性。數(shù)據(jù)庫中的數(shù)據(jù)可以被多個用戶共享,共享是指允許多個用戶同時操作相同的數(shù)據(jù)。程序與數(shù)據(jù)相互獨立。保證數(shù)據(jù)的安全可靠。19三、數(shù)據(jù)模型201、數(shù)據(jù)模型的分類(1)概念模型:也稱為信息模型,它是從數(shù)據(jù)的應用語義視角來抽取模型并按用戶的觀點來對數(shù)據(jù)和信息進行建模。這類模型主要用在數(shù)據(jù)庫的設計階段,它與具體的數(shù)據(jù)庫管理系統(tǒng)無關。常用的概念模型是實體-關系(Entity-Relationship,簡稱E-R)模型。(2)邏輯數(shù)據(jù)模型:按計算機系統(tǒng)的觀點對數(shù)據(jù)建模。是數(shù)據(jù)庫系統(tǒng)的核心和基礎。分為以下幾個模型:層次模型(用樹型結(jié)構(gòu)組織數(shù)據(jù))。網(wǎng)狀模型(用圖形結(jié)構(gòu)組織數(shù)據(jù))。關系模型(用簡單二維表結(jié)構(gòu)組織數(shù)據(jù))。對象關系模型(用復雜的表格以及其他結(jié)構(gòu)組織數(shù)據(jù))。
現(xiàn)實世界中的客觀事物的抽象過程現(xiàn)實世界概念模型DBMS支持的數(shù)據(jù)模型現(xiàn)實世界信息世界計算機世界認識抽象轉(zhuǎn)換21為了把現(xiàn)實世界中的具體事物抽象,最終獲得某一具體DBMS支持的數(shù)據(jù)模型,人們通常首先將現(xiàn)實世界抽象為信息世界,然后再將信息世界轉(zhuǎn)換為計算機世界。即首先把現(xiàn)實世界中的客觀對象抽象為某一種信息結(jié)構(gòu),這種信息結(jié)構(gòu)并不依賴于具體的計算機系統(tǒng),也不依賴于具體的DBMS,而是概念模型;然后再把概念模型轉(zhuǎn)換為計算機上的DBMS支持的數(shù)據(jù)模型,也就是邏輯模型。2、概念模型常用的概念模型是實體——關系(Entity-Relationship,簡稱E-R)模型。其三個要素是:實體、屬性、關系。(1)實體(Entity)實體是具有相同性質(zhì)并且彼此之間可以相互區(qū)分的現(xiàn)實世界對象的集合。在關系數(shù)據(jù)庫中,一般一個實體被映射成一個關系表,表中的一行對應一個可區(qū)分的現(xiàn)實世界對象(這些對象組成了實體),稱為實體實例(entityinstance)。在E-R圖中用矩形框表示具體的實體,把實體名寫在框內(nèi)。
22教學教師學生姓名工號姓名學號1N2、概念模型(2)屬性(Attribute)實體所具有的特征稱為它的屬性。是描述實體或者關系的性質(zhì)的數(shù)據(jù)項。每個實體都有一個標識符(或叫實體的鍵),標識符是實體中的一個屬性或者幾個屬性的組合,每個實體實例在標識符上具有不同的值。在E-R圖中用橢圓表示屬性,橢圓內(nèi)寫上屬性名。23教學教師學生姓名工號姓名學號1N(3)關系(Relationship)關系是數(shù)據(jù)之間的關聯(lián)集合,是客觀存在的應用語義鏈。關系用菱形框表示,框內(nèi)寫上關系名,并用連線將有關的實體連接起來。教學教師學生姓名工號姓名學號1N2、概念模型242、概念模型關系可以在實體內(nèi)部,也可以在兩個實體之間,也可以在多個實體之間。實體內(nèi)部的關系組成實體的各屬性之間的關系。如“職工”實體中,假設有“職工號”和“部門經(jīng)理號”。部門經(jīng)理也是職工,也有職工號。25領導職工1n2、概念模型不同實體之間的關系有三種類型:一對一(1:1)一對多(1:n)
多對多(m:n)
1nn1m管理玩具1部門玩具有購買(a)(b)(c)經(jīng)理商標購物者26連線上標明聯(lián)系的類型,即1:1,
1:N或N:M2、概念模型27多個實體之間的關系2、概念模型學生課程學習MN成績學號姓名性別系入學時間課程號課程名稱28關系也可以有屬性29邏輯模型的三大要素數(shù)據(jù)結(jié)構(gòu):與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關的對象;與數(shù)據(jù)之間關系有關的對象,它從邏輯模型層面表達數(shù)據(jù)記錄與字段的結(jié)構(gòu)。數(shù)據(jù)操作:數(shù)據(jù)操作是指對數(shù)據(jù)庫中的各種對象(型)的實例(值)允許執(zhí)行操作的集合,包括操作及有關的操作規(guī)則。數(shù)據(jù)完整性約束:是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其關系所具有的制約和依存規(guī)則,用以保證數(shù)據(jù)的正確、有效和相容,使數(shù)據(jù)庫中的數(shù)據(jù)值與現(xiàn)實情況相符。3、邏輯數(shù)據(jù)模型3、邏輯數(shù)據(jù)模型層次模型(hierarchicalmodel)網(wǎng)狀模型(networkmodel)關系模型(relationalmodel)面向?qū)ο髷?shù)據(jù)模型(objectoridenteddatamodel)對象關系數(shù)據(jù)模型(objectrelationaldatamodel)半結(jié)構(gòu)化數(shù)據(jù)模型(semistructuredatamodel)30按數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型,分為以下幾種:大學院系教研室班級教輔3、邏輯數(shù)據(jù)模型科室醫(yī)生病房病人層次模型網(wǎng)狀模型31關系數(shù)據(jù)模型源于數(shù)學,它把數(shù)據(jù)看成是二維表中的元素,而這個二維表就是關系。4、關系模型32關系系統(tǒng)要求讓用戶所感覺的數(shù)據(jù)庫是一張張二維表的集合。在關系系統(tǒng)中,表是邏輯結(jié)構(gòu)而不是物理結(jié)構(gòu)。實際上,系統(tǒng)在物理層可以使用任何有效的存儲結(jié)構(gòu)來存儲數(shù)據(jù),比如,有序文件、索引、哈希表、指針等。因此,表是對物理存儲數(shù)據(jù)的一種抽象表示,是對很多存儲細節(jié)的抽象,如存儲記錄的位置、記錄的順序、數(shù)據(jù)值的表示等以及記錄的訪問結(jié)構(gòu),如索引等,對用戶來說都是不可見的。商標ID商標名稱001樂高002匯樂003貝恩施玩具ID名稱單價產(chǎn)地重量商標ID000001玩具熊49.99四川成都348001000002巴比娃娃98.88北京128002000003遙控汽車86.68浙江溫州87000233商標信息商標ID商標名稱001樂高002匯樂003貝恩施玩具基本信息玩具ID名稱單價產(chǎn)地重量商標ID000001玩具熊49.99四川成都348001000002巴比娃娃98.88北京128002000003遙控汽車86.68浙江溫州870002字段、列、屬性記錄、行、元組4、關系模型
》關系模型中的基本術語1.關系(表)關系就是二維表,每一列不可再分,屬性不能重名,可交換列的前后順序。2.元組(行,記錄)表中的每一行數(shù)據(jù)稱作是一個元組3.屬性(列,字段)表中的每一列是一個屬性值集,列可以命名,稱為屬性名。超鍵:在一個關系中,能唯一標識元組的屬性或?qū)傩约Q為關系的超鍵。例如:學生表的屬性有:學號、姓名、身份證號。
344、關系模型
》關系模型中的基本術語學號姓名身份證號2025001001李四5101042005020100072025001002張三5101122006081143812025001003王果姓名可以重復,能夠唯一標識元組的屬性或?qū)傩约校海▽W號)(學號,姓名)(學號,身份證號)(身份證號)(姓名,身份證號)以上這些屬性集都稱為超鍵。候選鍵(候選碼):如果一個屬性集能唯一標識元組,且又不含有多余的屬性,那么這個屬性集稱為關系的候選鍵。在學生表中,學號能唯一標識元組且沒有多余的屬性,所以是候選鍵,身份證號能唯一標識元組且沒有多余的屬性,所以是候選鍵。(學號,姓名)雖然能唯一標識一個元組,但姓名是多余的屬性,所以它不是候選鍵。學號姓名身份證號2025001001李四5101042005020100072025001002張三5101122006081143812025001003王紅5101142005092154034、關系模型
》關系模型中的基本術語3536主鍵(主碼、主關鍵字):主鍵(PrimaryKey)是表中的一個屬性或幾個屬性的組合,用于唯一的確定表中的一個元組,主鍵是一個候選鍵。在學生表中,候選鍵有“學號”和“身份證號”,可以選擇其中之一作為主鍵,按習慣和用戶業(yè)務要求,一般選擇“學號”作為主鍵。主鍵可以由一個屬性組成,也可以由多個屬性共同組成。表1-4購物車信息表購物車ID玩具ID數(shù)量0000010000011000001000008200000200000124、關系模型
》關系模型中的基本術語主鍵由購物車ID和玩具ID共同組成。因為一個購物車中可以包含多種玩具,而一種玩具也可以包含在多個購物車中,因此,只有將購物車ID和玩具ID組合起來才能共同確定一行記錄。商標商標ID商標名稱001樂高002匯樂003貝恩施外鍵(FK,外碼,外關鍵字):是表中的一個或多個屬性。兩個表可以通過共同的屬性相關聯(lián)。當一個表的某些屬性的取值受其它表的主鍵值約束時,這些屬性就稱為外鍵。玩具基本信息玩具ID名稱單價產(chǎn)地重量商標ID000001玩具熊49.99四川成都348001000002巴比娃娃98.88北京128002000003遙控汽車86.68浙江溫州870002玩具基本信息表中,商標ID是外鍵,由它和商標表發(fā)生關系,它的取值要么為空,要么為商標表中商標ID的值,玩具信息表是參照關系,商標表是被參照關系。4、關系模型
》關系模型中的基本術語37域:屬性的取值范圍就稱為域。主屬性和非主屬性:關系中包含在主鍵中的屬性稱為主屬性,不包含在主鍵中的屬性稱為非主屬性。4、關系模型
》關系模型中的基本術語38關系模型的操作對象是集合,而不是行,也就是操作的對象以及操作的結(jié)果都是完整的表(行的集合,而不只是單行,當然,只包含一行數(shù)據(jù)的表是合法的,空表或不包含任何數(shù)據(jù)行的表也是合法的)。而非關系型數(shù)據(jù)庫系統(tǒng)中典型的操作是一次一行或一次一個記錄。394、關系模型
》關系模型的數(shù)據(jù)操作數(shù)據(jù)完整性是指數(shù)據(jù)庫中存儲的數(shù)據(jù)是有意義的或正確的。關系模型中的數(shù)據(jù)完整性規(guī)則是對關系的某種約束條件。它的數(shù)據(jù)完整性約束主要包括四大類:實體完整性參照完整性域完整性用戶自定義完整性404、關系模型
》關系模型的數(shù)據(jù)完整性約束實體完整性實體完整性指的是關系數(shù)據(jù)庫中所有的表都必須有主鍵,而且表中不允許存在如下的記錄。無主鍵值的記錄主鍵值相同的記錄因為若記錄沒有主鍵值,則此記錄在表中一定是無意義的。41參照完整性參照完整性有時也稱為引用完整性?,F(xiàn)實世界中的實體之間往往存在著某種聯(lián)系,在關系模型中,實體以及實體之間的聯(lián)系在關系數(shù)據(jù)庫中都用關系來表示,這樣就自然存在著實體與實體之間的引用關系。參照完整性就是用來確保實體之間關系完整的。42【例1-1】“職工”表和“部門”表所包含的屬性如下,其中主鍵用下劃線標識。職工(職工號,姓名,性別,部門號,上司,工資,傭金)部門(部門號,名稱,地點)其中職工號是“職工”關系的主鍵,部門號是外鍵,而“部門”關系中部門號是主鍵,則職工關系中的每個元組的部門號屬性只能取下面兩類值:第1類:空值,表示尚未給該職工分配部門;第2類:非空值,但該值必須是部門關系中某個元組的部門號值,表示該職工不可能分配到一個不存在的部門中,即被參照關系“部門”中一定存在一個元組,它的主鍵值等于該參照關系“職工”中的外鍵值。43域完整性域完整性或語義完整性。確保了只有在某一合法范圍內(nèi)的值才能存儲到一列中??梢酝ㄟ^限制數(shù)據(jù)類型、值的范圍和數(shù)據(jù)格式來實施域完整性。例如,人的年齡的取值范圍為0~150。44用戶自定義完整性
任何關系數(shù)據(jù)庫系統(tǒng)都應該支持實體完整性、引用完整性和域完整性。除此之外,不同的數(shù)據(jù)庫應用系統(tǒng)根據(jù)其應用環(huán)境的不同,往往還需要一些特殊的約束條件,用戶自定義完整性就是針對某一具體應用領域定義的數(shù)據(jù)約束條件,它反映某一具體應用所涉及的數(shù)據(jù)必須要滿足應用語義的要求。45例:產(chǎn)品表(產(chǎn)品編號,產(chǎn)品名稱,進貨價格)銷售表(銷售編號,產(chǎn)品編號,銷售時間,銷售價格,銷售數(shù)量)在向銷售表中輸入數(shù)據(jù)時,要求銷售價格大于等于進貨價格。464、關系模型
》網(wǎng)上玩具商店ToyUniverse關系模型列(屬性)名中文名稱類
型寬度說
明cCategoryId種類IDCHAR3主鍵cCategory種類CHAR20NOTNULLvDescription描述VARCHAR100列(屬性)名中文名稱類
型寬度說
明cBrandId商標IDCHAR3主鍵cBrandName商標名稱CHAR20NOTNULL列(屬性)名中文名稱類
型寬度說
明cToyId玩具IDCHAR6主鍵vToyName玩具名稱VARCHAR20NOTNULLvToyDescription玩具描述VARCHAR250
cCategoryId種類IDCHAR3外鍵
NOTNULLmToyRate玩具價格DECIMAL(10,2)NOTNULLcBrandId商標IDCHAR3外鍵
NOTNULLvPhotoPath照片路徑VARCHAR1000
siToyQoh數(shù)量SMALLINT
NOTNULLsiLowerAge最低年齡SMALLINT
NOTNULLsiUpperAge最大年齡SMALLINT
NOTNULLsiToyWeight玩具重量SMALLINT
NOTNULLvToyImgPath玩具圖像路徑VARCHAR50Category(種類)Toys(玩具)ToyBrand(商標)4、關系模型
》網(wǎng)上玩具商店ToyUniverse關系模型列(屬性)名中文名稱類型寬度說明cCountryId國家IDCHAR3主鍵vCountry國家VARCHAR100NOTNULL列(屬性)名中文名稱類型寬度說明cShopperId購物者IDCHAR6主鍵vUserName用戶名VARCHAR100NOTNULLvPassword密碼VARCHAR200NOTNULLvShoperName姓名VARCHAR100NOTNULLvEmailId郵件地址VARCHAR40
vAddress地址VARCHAR200NOTNULLvCity城市VARCHAR50
vProvince省VARCHAR50
cCountryId國家IDCHAR3外鍵cZipCode郵政編碼CHAR10
CPhone電話CHAR15NOTNULLcCreditCardNo信用卡編號CHAR16NOTNULLvCreditCardType信用卡類型VARCHAR15NOTNULLdExpiryDate截止日期DATETIME
列(屬性)名中文名稱類型寬度說明cOrderNo訂單編號CHAR12主鍵vRecipientName姓名VARCHAR100NOTNULLvEmail電子郵件地址VARCHAR40
vAddress地址VARCHAR200NOTNULLvCity城市VARCHAR50
vProvince省VARCHAR50
cCountryId國家IDCHAR3外鍵NOTNULLcZipCode郵政編碼CHAR10
cPhone電話CHAR15NOTNULLShopper(購物者)Country(國家)Recipient(接收者)474、關系模型
》網(wǎng)上玩具商店ToyUniverse關系模型列(屬性)名中文名稱類
型寬度說
明cModeId模式IDCHAR2主鍵vMode模式VARCHAR25NOTNULLiMaxDelDays最多需要天數(shù)INT
NULL列(屬性)名中文名稱類型寬度說明cOrderNo訂單編號CHAR12主鍵dOrderDate訂單日期DATETIME
NOTNULLcShopperId購物者IDCHAR6外鍵cShippingModeId運貨方式IDCHAR2外鍵mShippingCharges運貨費用DECIMAL(10,2)
mGiftWrapCharges禮品包裝費用DECIMAL(10,2)
COrderProcessed訂單處理狀態(tài)CHAR10:未審核1:已審核2:已出貨mToyTotalCost玩具總價DECIMAL(10,2)訂單細節(jié)表中玩具總價之和mTotalCost訂單總價DECIMAL(10,2)運貨費用+禮品包裝費用+玩具總價dExpDelDate運到日期DATETIME
列(屬性)名中文名稱類
型寬度說
明cOrderNo訂單編號CHAR12主鍵
外鍵cToyId玩具IDCHAR6主鍵
外鍵mToyRate玩具單價DECIMAL(10,2)NOTNULLsiQty數(shù)量SMALLINT
NOTNULLcGiftWrap是否要禮品包裝CHAR1“Y”和“N”cWrapperId包裝IDCHAR3外鍵vMessage留言信息VARCHAR256
mToyCost玩具總價DECIMAL(10,2)玩具單價×數(shù)量Orders(訂單)ShippingMode(投遞模式)OrderDetail(訂單細節(jié))484、關系模型
》網(wǎng)上玩具商店ToyUniverse關系模型ShoppingCart(購物車)列(屬性)名中文名稱類型寬度是否允許為空cShopperId購物者IDCHAR6主鍵外鍵cToyId玩具IDCHAR6主鍵外鍵siQty數(shù)量SMALLINT
NOTNULLdDate購物時間DATETIME
Wrapper(包裝)列(屬性)名中文名稱類型寬度說明cWrapperId包裝IDCHAR3主鍵vDescription描述VARCHAR20NULLmWrapperRate包裝費用DECIMAL(12,2)NOTNULLvPhotoPath照片VARCHAR1000NULLvWrapperImgPath包裝圖像路徑VARCHAR50NULLShippingRate(運輸費用)列(屬性)名中文名稱類型寬度說明cCountryID國家IDCHAR3主鍵外鍵cModeId模式IDCHAR2主鍵外鍵mRatePerPound每磅的費用DECIMAL(10,2)NOTNULLShipment(出貨)列(屬性)名中文名稱類型寬度說明cOrderNo訂單編號CHAR12主鍵dShipmentDate出貨日期DATETIME
NULLcDeliveryStatus投遞狀態(tài)CHAR1NULLdActualDeliveryDate實際投遞日期DATETIME
NULL494、關系模型
》網(wǎng)上玩具商店ToyUniverse關系模型RecipientList(常用接收者)列(屬性)名中文名稱類型寬度說明RecipientID接收者IDUNIQUEIDENTIFIER
主鍵vRecipientName姓名VARCHAR100NOTNULLvEmail電子郵件地址VARCHAR40
vAddress地址VARCHAR200
CCity城市VARCHAR50
vProvince省VARCHAR50
CCountryId國家IDCHAR3外鍵NOTNULLCZipCode郵政編碼CHAR10
CPhone電話CHAR15NOTNULLcShopperID購物者IDCHAR6外鍵NOTNULLPickOfMonth(月銷售量)列(屬性)名中文名稱類型寬度說明cToyId玩具IDCHAR6主鍵外鍵siMonth月SMALLINT
主鍵iYear年INT
主鍵iTotalSold總銷售數(shù)量INT
mTotalMoney總銷售金額DECIMAL(10,2)504、關系模型
》學生成績管理系統(tǒng)關系模型dept(學院)列(屬性)名中文名稱類型寬度說明deptno學院編號CHAR4主鍵deptname學院名稱VARCHAR100student(學生)列(屬性)名中文名稱類型寬度說明sno學號CHAR10主鍵sname姓名VARCHAR50
sex性別CHAR2
birthday出生日期DATE
deptno學院編號CHAR4外鍵
course(課程)列(屬性)名中文名稱類型寬度說明cno課程號CHAR6主鍵cname課程名VARCHAR50
credit學分FLOAT
sc(選課)列(屬性)名中文名稱類型寬度說明sno學號CHAR10主鍵外鍵cno課號CHAR6主鍵外鍵score成績INT
51本章小節(jié)本章主要介紹了數(shù)據(jù)庫系統(tǒng)的相關概念,包括數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)。概念模型是各種數(shù)據(jù)模型的共同基礎,它和數(shù)據(jù)庫管理系統(tǒng)無關,主要用來按用戶的觀點對現(xiàn)實世界進行抽象和建模,常用E-R模型。邏輯模型是從數(shù)據(jù)的組織方式的角度來描述信息的,重點講述了關系模型。關系是一張不可再分的二維表,關系中需要掌握的概念有主鍵(主碼)、屬性、外鍵、實體完整性、參照完整性、用戶自定義完整性等。最后給出了兩個關系模型實例。學習本章時應該把注意力放在對基本概念的理解上,以便為后面的學習打下良好的基礎。52第2章關系數(shù)據(jù)庫理論
本章要點:掌握關系代數(shù)運算。掌握關系規(guī)范化理論。2025/6/616:1353一、關系運算ABCa1b1c1a1b2c2a2b2c1a1b3c2ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a2b2c1RSR∪
S∪并運算結(jié)果是兩張表中的所有行,重復的行要去除。一、關系運算
》集合運算》并運算ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a2b2c1RSR∩S∩交運算結(jié)果包括兩張表中共有的行。一、關系運算
》集合運算》交運算ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a2b2c1RSR-S-差運算結(jié)果包括第一張表中出現(xiàn)但第二張表中不出現(xiàn)的那些行。一、關系運算
》集合運算》差運算ABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a2b2c1RSR×
S×兩個分別為n目和m目的關系R和S的笛卡爾積是一個(n?+?m)列的元組的集合。元組的前n列是關系R的一個元組,后m列是關系S的一個元組。若R有k1個元組,S有k2個元組,則關系R和關系S的笛卡爾積有k1*k2個元組。簡要說:笛卡爾積是是一張表的每一行與另一張表的每一行進行組合。一、關系運算
》集合運算》乘積運算(笛卡爾積)選擇運算根據(jù)一個或多個條件從一張數(shù)據(jù)表中選擇符合條件的行。【例2-1】查詢信息系全體學生一、關系運算
》專門關系運算》選擇運算【例2-2】從關系Student中選取所有年齡小于20的學生,其關系運算表達式為:一、關系運算
》專門關系運算》選擇運算投影運算也是一個單目運算,它是從一個關系R中選取所需要的列組成一個新關系。一、關系運算
》專門關系運算》投影運算【例2-3】查詢學生關系中有哪些系,其運算關系表達式為:【例2-4】查詢學生的姓名和所在系一、關系運算
》專門關系運算》投影運算一、關系運算
》專門關系運算》連接運算連接運算是一個二目運算,它是從兩個關系的笛卡爾積中選取滿足一定連接條件的元組。連接運算從R和S的笛卡爾積R?×?S中選取R關系在A屬性組上的值與S關系在B屬性組上值滿足比較關系θ的元組。一、關系運算
》專門關系運算》連接運算【例2-5】RB?=?SB連接結(jié)果自然連接結(jié)果自然連接需要取消重復列
【例2-7】查詢選修了1號課程的學生學號。
Sno(
Cno=‘1’(SC))【例2-8】查詢選修了1號課程或3號課程的學生學號。
Sno(
Cno=‘1’vCno=‘3’(SC))或
Sno(
Cno=‘1’(SC))U
Sno(
Cno=‘3’(SC))【例2-9】查詢至少選修了一門其先行課為5號課程的學生姓名。
Sname(
Cpno=‘5’(Course)?SC?
Sno,Sname(Student))一、關系運算
》關系運算實例二、規(guī)范化理論數(shù)據(jù)庫設計的一個最基本的問題是怎樣建立一個合理的數(shù)據(jù)庫模式,使數(shù)據(jù)庫系統(tǒng)無論是在數(shù)據(jù)存儲方面,還是在數(shù)據(jù)操作方面都具有較好的性能。為使數(shù)據(jù)庫設計合理可靠、簡單實用,長期以來形成了關系數(shù)據(jù)庫設計理論,即規(guī)范化理論。它是根據(jù)現(xiàn)實世界存在的數(shù)據(jù)依賴而進行的關系模式的規(guī)范化處理,從而得到一個合理的數(shù)據(jù)庫設計效果。SnoSnameSsexDnameCnameTnameGrade0450301張三愷男計算機系高等數(shù)學李剛830450301張三愷男計算機系英語林弗然710450301張三愷男計算機系數(shù)字電路周斌920450301張三愷男計算機系數(shù)據(jù)結(jié)構(gòu)陳長樹860450302王薇薇女計算機系高等數(shù)學李剛790450302王薇薇女計算機系英語林弗然940450302王薇薇女計算機系數(shù)字電路周斌740450302王薇薇女計算機系數(shù)據(jù)結(jié)構(gòu)陳長樹68…………………0420131陳杰西男園林系高等數(shù)學吳相輿970420131陳杰西男園林系英語林弗然790420131陳杰西男園林系植物分類學花裴基930420131陳杰西男園林系素描豐茹88下表會出現(xiàn)哪些問題?二、規(guī)范化理論1.數(shù)據(jù)冗余(DataRedundancy)(1)學生信息存儲了多次。(2)課程信息存儲了多次。(3)教師授課信息存儲了多次。2.更新異常(UpdateAnomalies)(1)插入異常(InsertAnomalies):沒有學生信息時,無法插入系別、課程、教師信息。(2)修改異常(ModificationAnomalies):如果更改一門課程的任課教師或?qū)W生的所在系別,則需要修改多個元組,可能造成數(shù)據(jù)的不一致性。(3)刪除異常(DeletionAnomalies):刪除學生,把課程信息也刪除了。SnoSnameSsexDname0450301張三愷男計算機系0450302王薇薇女計算機系…………0420131陳杰西男園林系CnoCnameTnameGS01101高等數(shù)學李剛YY01305英語林弗然SD05103數(shù)字電路周斌SJ05306數(shù)據(jù)結(jié)構(gòu)陳長樹……GS01102高等數(shù)學吳相輿ZF02101植物分類學花裴基SM02204素描豐茹SnoCnoGrade0450301GS01101830450301YY01305710450301SD05103920450301SJ05306860450302GS01101790450302YY01305940450302SD05103740450302SJ0530668………0420131GS01102970420131YY01305790420131ZF02101930420131SM0220488應將上表分解成以下三個表:改進后的優(yōu)點:1、數(shù)據(jù)存儲量減少。2、更新方便、之前的各種異常基本被消除。定義2.1設R(U)是一個關系模式,U是R的屬性集合,X和Y是U的子集。對于R(U)的任意一個可能的關系r,如果r中不存在兩個元組,它們在X上的屬性值相同,而在Y上的屬性值不同,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作X→Y。例:學號→姓名例:定單號→訂單日期例:姓名→年齡這個函數(shù)依賴只有在沒有同名人的條件下成立。二、規(guī)范化理論
》函數(shù)依賴范式是符合某一種級別的關系模式的集合,是衡量關系模式規(guī)范化程度的標準,達到范式要求的關系才是規(guī)范化的。關系模式的規(guī)范化主要解決的問題是關系中數(shù)據(jù)冗余及由此產(chǎn)生的操作異常。而從函數(shù)依賴的觀點來看,即是消除關系模式中產(chǎn)生數(shù)據(jù)冗余的函數(shù)依賴。各范式之間的關系非規(guī)范化關系1NF2NF3NFBCNF……二、規(guī)范化理論
》范式有6種范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。其關系是:1NF?2NF?3NF?BCNF?4NF?5NF1.第一范式(1NF)定義2.8當一個關系中的所有分量都是不可分的數(shù)據(jù)項時,就稱該關系是規(guī)范化的,這個表叫做第一范式(1NF)。職工號姓
名工
資基本工資職務工資工齡工資
職工號姓名職稱系名學歷畢業(yè)年份05103周斌教授計算機大學研究生1983199205306陳長樹講師計算機大學1995職工號姓名基本工資職務工資工齡工資
職工號姓名職稱系名學歷畢業(yè)年份05103周斌教授計算機大學198305103周斌教授計算機研究生199205306陳長樹講師計算機大學1995第一范式非規(guī)范化關系非規(guī)范化關系第一范式關系模式如下:SLC(SNO,DEPT,SLOC,CNO,GRADE)字段的含義分別為:學號、系別、住處,課號、成績。此關系模式為第一范式,但存在如下問題:(1)插入異常問題。假若要插入一個SNO?=?'95102',DEPT?=?'IS',SLOC?=?'N',但還未選課的學生,即這個學生無CNO,這樣的元組不能插入SLC中。(2)刪除異常問題。假定某個學生只選修了一門課,且這門課程只有這一個學生選。刪除選課記錄后,學生的基本信息丟失了,課程信息的信息也丟失了。(3)數(shù)據(jù)冗余度大的問題。如果一個學生選修了10門課程,那么他的DEPT和SLOC值就要重復存儲10次。2025/6/616:131.第一范式(1NF)2.第二范式(2NF)定義2.10:如果一個關系模式R∈1NF,且它的所有非主屬性都完全函數(shù)依賴于R的任一候選碼,則R∈2NF。定義2.3在關系模式R(U)中,如果X→Y,并且對于X的任何一個真子集X′,都有X'?Y,則稱Y完全函數(shù)依賴(FullFunctionalDependency)于X,記作X→Y。若X→Y,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴(PartialFunctionalDependency)于X,記作X→Y。第二范式例子:成績表(學號,課程號,成績)(學號,課程號)→成績學生(學號,姓名,性別)學號→姓名,學號→性別FPFSLC(SNO,DEPT,SLOC,CNO,GRADE)2025/6/616:132.第二范式(2NF)候選碼是:sno、cno有如下函數(shù)依賴:存在部分依賴,所以不是第二范式。將SLC分解為以下兩個關系模式:SC(SNO,CNO,GRADE)SL(SNO,DEPT,SLOC)其中,SC的碼為(SNO,CNO);SL的碼為SNO。2025/6/616:132.第二范式(2NF)(SNO,CNO)→GRADESNO→DEPTDEPT→SLOCSNO→SLOC所有非主屬性都完全函數(shù)依賴于碼,所以兩個關系模式都是第二范式。減輕了數(shù)據(jù)冗余和更新異常問題,但“DEPT→SLOC”仍會造成數(shù)據(jù)冗余和更新異常。有如下函數(shù)依賴:F定義2.4在關系模式R(U)中,如果X→Y,Y→Z,且Y?X,則稱Z傳遞函數(shù)依賴于X,記作Z→X。定義2.11如果一個關系模式R∈2NF,且所有非主屬性都不傳遞函數(shù)依賴于任何候選碼,則R∈3NF。第三范式例子:成績表(學號,課程號,成績)(學號,課程號)→成績
學生(學號,姓名,性別)學號→姓名,學號→性別,姓名?性別2025/6/616:133.第三范式(3NF)傳遞函數(shù)依賴例子:學生(學號,姓名,學院,院長)
因為“學號→學院,學院→院長,學院?學號”,所以“學號→院長”TT非主屬性之間有函數(shù)依賴把SL(SNO,DEPT,SLOC)分解為兩個關系模式:SD(SNO,DEPT)DL(DEPT,SLOC)其中,SD的碼為SNO;DL的碼為DEPT。關系模式中既沒有非主屬性對碼的部分函數(shù)依賴,也沒有非主屬性對碼的傳遞函數(shù)依賴,基本上解決了上述問題:(1)當沒有學生信息時,在DL關系中可以插入系別和住處信息。(2)某個系的學生全部畢業(yè)了,只是刪除SD關系中的相應元組,DL關系中關于該系的信息仍然存在。(3)關于系的住處的信息只在DL關系中存儲一次。(4)當學校調(diào)整某個系的學生住處時,只需修改DL關系中一個相應元組的SLOC屬性值。2025/6/616:133.第三范式(3NF)在信息系統(tǒng)的設計中,普遍采用的是“基于3NF的系統(tǒng)設計”方法,就是由于3NF是無條件可以達到的,并且基本解決了“異?!钡膯栴},因此這種方法目前在信息系統(tǒng)的設計中仍然被廣泛地應用。2025/6/616:133.第三范式(3NF)二、規(guī)范化理論
》關系模式規(guī)范化的實例EcodeProjCodeDeptHoursE101P27Systems90E305P27Finance10E508P51AdminNULLE101P51Systems101E101P20Systems60E508P27Admin72【例2-15】考查下表,主鍵是(ecodeprojcode)Dept依賴于Ecode,所以dept不完全依賴于碼(Ecodeprojcode)。不屬于第二范式。把有部分依賴的放入另一張表,這樣就成了第二范式。將表轉(zhuǎn)換成2NF的步驟如下:(1)找出并移去函數(shù)依賴于部分關鍵字而不是整個關鍵字的屬性,將它們放到另一張表中;(2)將剩余的屬性分組。EmployeeDeptECodeDeptE101SystemsE305FinanceE508AdminProjectECodeProjCodeHoursE101P2790E101P51101E101P2060E305P2710E508P51NULLE508P2772EcodeDeptDeptHeadE101SystemsE901E305FinanceE909E402SalesE906E508AdminE908E607FinanceE909E608FinanceE909【例2-16】
考查下表,主關鍵字是:(ecode)Dept,depthead都完全依賴于主關鍵字ecode。所以是第二范式。但是depthead也依賴于非主屬性dept,所以不是第三范式。將一個表轉(zhuǎn)換為3NF的步驟如下:(1)找出并移去函數(shù)依賴于非主關鍵字屬性的非關鍵字屬性,將它們放入另一個表中;(2)將其余的屬性分組。二、規(guī)范化理論
》關系模式規(guī)范化的實例
EmployeeECodeDeptE101SystemsE305FinanceE402SalesE508AdminE607FinanceE608FinanceDepartmentDeptDeptHeadSystemsE901SalesE906AdminE908FinanceE909本章小結(jié)在關系代數(shù)中分為集合運算和專門的關系代數(shù)運算,包括并、交、差、笛卡爾積,選擇、投影、連接、除。消除冗余的基本做法是把不適合規(guī)范的關系模式分解成若干個比較小的關系模式。而這種分解的過程,是逐步將數(shù)據(jù)依賴化解的過程,并使之達到一定的范式。對于函數(shù)依賴,考慮2NF、3NF。2025/6/616:13第三章SQLServer2022的使用本章要點:◆SQLServer2022的安裝?!鬝QLServer2022常用工具?!魯?shù)據(jù)庫的創(chuàng)建?!魯?shù)據(jù)表的創(chuàng)建。2025/6/616:1382一、SQLServer2022簡介SQLServer是由美國微軟公司(Microsoft)開發(fā)和推廣的關系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,并于1988年推出了第一個OS/2版本。SQLServer經(jīng)過多年的發(fā)展,到2022年推出了SQLServer2022。這是迄今為止最支持Azure的SQLServer版本,在性能、安全性和可用性方面進一步創(chuàng)新,標志著SQLServer30多年歷史的最新里程碑。2025/6/616:13832025/6/616:1384一、SQLServer2022簡介SQLServer版本定義Enterprise(64位和32位)作為高級產(chǎn)品/服務,SQLServerEnterpriseEdition提供了全面的高端數(shù)據(jù)中心功能,具有極高的性能和無限虛擬化,還具有端到端商業(yè)智能,可為任務關鍵工作負載和最終用戶訪問數(shù)據(jù)見解提供高服務級別。
企業(yè)版可用于評估。評估部署的有效期為180天。有關詳細信息,請參閱SQLServer許可資源和文檔。Standard(64位和32位)SQLServerStandard版提供了基本數(shù)據(jù)管理和商業(yè)智能數(shù)據(jù)庫,使部門和小型組織能夠順利運行其應用程序并支持將常用開發(fā)工具用于內(nèi)部部署和云部署,有助于以最少的IT資源獲得高效的數(shù)據(jù)庫管理。Web(64位和32位)對于Web主機托管服務提供商(包括在Azure上的IaaS上選擇Web版)和WebVAP而言,SQLServerWeb版本是一項總擁有成本較低的選擇,可針對從小規(guī)模到大規(guī)模Web資產(chǎn)等內(nèi)容提供可伸縮性、經(jīng)濟性和可管理性能力。Developer(64位和32位)SQLServerDeveloper版支持開發(fā)人員基于SQLServer構(gòu)建任意類型的應用程序。它包括Enterprise版的所有功能,但有許可限制,只能用作開發(fā)和測試系統(tǒng),而不能用作生產(chǎn)服務器。SQLServerDeveloper是構(gòu)建和測試應用程序的人員的理想之選。Express版(64位和32位)SQLServerExpressEdition是入門級的免費數(shù)據(jù)庫,是學習和構(gòu)建桌面及小型服務器數(shù)據(jù)驅(qū)動應用程序的理想選擇。它是獨立軟件供應商、開發(fā)人員和熱衷于構(gòu)建客戶端應用程序的人員的最佳選擇。如果您需要使用更高級的數(shù)據(jù)庫功能,則可以將SQLServerExpress無縫升級到其他更高端的SQLServer版本。SQLServerExpressLocalDB是Express版本的一種輕型版本,該版本具備所有可編程性功能,在用戶模式下運行,并且具有快速零配置安裝和必備組件要求較少的特點。二、SQLServer2022安裝可以選擇使用通過輸入產(chǎn)品密鑰購買的SQLServer許可證,也可以通過MicrosoftAzure選擇即用即付計費。你也可以指定SQLServer的免費版本:Developer、Evaluation或Express。如SQLServer聯(lián)機叢書中所述,Evaluation版包含最大的SQLServer功能集,不但已激活,還具有180天的有效期。Developer版永不過期,并且包含與Evaluation版相同的功能集,但僅許可進行非生產(chǎn)數(shù)據(jù)庫應用程序開發(fā)。2025/6/616:1385SQLServer2022系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫1.系統(tǒng)數(shù)據(jù)庫Master、Model、MSDB和TempDB。2.用戶數(shù)據(jù)庫2025/6/616:1386二、SQLServer2022安裝1)?Master數(shù)據(jù)庫Master數(shù)據(jù)庫是SQLServer的核心,如果該數(shù)據(jù)庫被損壞,SQLServer將無法正常工作。Master數(shù)據(jù)庫中包含所有的登錄名或用戶ID所屬的角色、
所有的系統(tǒng)配置設置、
服務器中的數(shù)據(jù)庫名稱及相關信息、
數(shù)據(jù)庫的位置、系統(tǒng)錯誤和警告等重要信息。2)?Model數(shù)據(jù)庫Model數(shù)據(jù)庫是個比較特殊的系統(tǒng)數(shù)據(jù)庫,用作在SQLServer實例上創(chuàng)建所有數(shù)據(jù)庫的模板。當發(fā)出CREATEDATABASE(創(chuàng)建數(shù)據(jù)庫)語句時,將通過復制Model數(shù)據(jù)庫中的內(nèi)容來創(chuàng)建數(shù)據(jù)庫的第一部分,剩余部分由空頁填充。如果修改Model數(shù)據(jù)庫,之后創(chuàng)建的數(shù)據(jù)庫都將繼承這些修改。3)?MSDB數(shù)據(jù)庫MSDB數(shù)據(jù)庫是SQLServer代理服務使用的數(shù)據(jù)庫,為代理程序的報警、任務調(diào)度和記錄操作員的操作提供存儲空間。4)?TempDB數(shù)據(jù)庫TempDB數(shù)據(jù)庫是一個臨時性的數(shù)據(jù)庫,它為所有的臨時表、臨時存儲過程及其他臨時操作提供存儲空間。TempDB數(shù)據(jù)庫由整個系統(tǒng)的所有數(shù)據(jù)庫使用,不管用戶使用哪個數(shù)據(jù)庫,所建立的臨時表和臨時存儲過程都存儲在TempDB上。SQLServer每次啟動時,TempDB數(shù)據(jù)庫都會被重新建立。當用戶與SQLServer斷開連接時,其臨時表和存儲過程將自動被刪除。2025/6/616:1387SQLServer2022系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫二、SQLServer2022安裝三、SQLServer2022常用管理工具1SQLServer配置管理器啟動數(shù)據(jù)庫服務可使用SQLServer配置管理器,登錄到數(shù)據(jù)庫服務器可使用SQLServerManagementStudio。SQLServer配置管理器是一種工具,用于管理與SQLServer相關聯(lián)的服務、配置SQLServer使用的網(wǎng)絡協(xié)議以及從SQLServer客戶端計算機管理網(wǎng)絡連接配置。2025/6/616:13882SQLServer管理平臺
SQLServerManagementStudio是一種集成環(huán)境,用于訪問、配置、控制、管理和開發(fā)SQLServer的所有組件。SQLServerManagementStudio將一組多樣化的圖形工具與多種功能齊全的腳本編輯器組合在一起,可為各種技術級別的開發(fā)人員和管理員提供對SQLServer的訪問。2025/6/616:1389三、SQLServer2022常用管理工具四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)對于數(shù)據(jù)庫,包括兩方面含義:一方面,描述信息的數(shù)據(jù)存在數(shù)據(jù)庫中并由DBMS統(tǒng)一管理,這種組織形式是數(shù)據(jù)庫的邏輯結(jié)構(gòu);另一方面,描述信息的數(shù)據(jù)又是以文件的形式存儲在物理磁盤上,由操作系統(tǒng)進行統(tǒng)一管理,這種組織形式是數(shù)據(jù)庫的物理結(jié)構(gòu)。2025/6/616:13901、數(shù)據(jù)庫的邏輯結(jié)構(gòu)2025/6/616:1391四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)數(shù)據(jù)庫的邏輯結(jié)構(gòu)主要應用于面向用戶的數(shù)據(jù)組織和管理,從邏輯的角度,數(shù)據(jù)庫由若干個用戶可視的對象構(gòu)成,如表、視圖、索引等,由于這些對象是存在數(shù)據(jù)庫中,因此也叫數(shù)據(jù)庫對象。2、數(shù)據(jù)庫的物理結(jié)構(gòu)2025/6/616:1392數(shù)據(jù)庫的物理結(jié)構(gòu)主要是面向計算機的操作系統(tǒng)的數(shù)據(jù)組織和管理,如數(shù)據(jù)文件,表和視圖的數(shù)據(jù)組織方式、磁盤空間的利用和回收、文本和圖形數(shù)據(jù)的有效存儲等。它的表現(xiàn)形式是操作系統(tǒng)的物理文件,一個數(shù)據(jù)庫由一個或多個磁盤上的文件組成。對用戶是透明的。數(shù)據(jù)庫物理文件名是操作系統(tǒng)使用的。四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)SQLServer數(shù)據(jù)庫的組成數(shù)據(jù)庫文件(DatabaseFile)事務日志文件(TransactionLogFile)2025/6/616:1393四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)一個數(shù)據(jù)庫至少應包含一個數(shù)據(jù)庫文件和一個事務日志文件。2、數(shù)據(jù)庫的物理結(jié)構(gòu)數(shù)據(jù)庫文件數(shù)據(jù)庫文件是存放數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)庫對象的文件。一個數(shù)據(jù)庫可以有一個或多個數(shù)據(jù)庫文件,一個數(shù)據(jù)庫文件只屬于一個數(shù)據(jù)庫。有一個文件被定義為主數(shù)據(jù)庫文件。擴展名為.mdf。只能有一個主數(shù)據(jù)庫文件。次數(shù)據(jù)庫文件,擴展名為.ndf2025/6/616:1394四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)2、數(shù)據(jù)庫的物理結(jié)構(gòu)采用多個數(shù)據(jù)庫文件來存儲數(shù)據(jù)的優(yōu)點:數(shù)據(jù)庫文件可以不斷擴充,而不受操作系統(tǒng)文件大小的限制;可以將數(shù)據(jù)庫文件存儲在不同的硬盤中,這樣可以同時對幾個硬盤做數(shù)據(jù)存取,提高了數(shù)據(jù)處理的效率。對于服務器型的計算機尤為有用。2025/6/616:1395四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)2、數(shù)據(jù)庫的物理結(jié)構(gòu)事務日志文件事務日志文件是用來記錄數(shù)據(jù)庫更新情況的文件,擴展名為.ldf。例如使用INSERT、UPDATE、DELETE、等對數(shù)據(jù)庫進行更的操作都會記錄在此文件中而如SELECT等對數(shù)據(jù)庫內(nèi)容不會有影響的操作則不會記錄在案。一個數(shù)據(jù)庫可以有一個或多個事務日志文件。2025/6/616:1396四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)2、數(shù)據(jù)庫的物理結(jié)構(gòu)SQLServer中采用“Write-Ahead(提前寫)”方式的事務,即對數(shù)據(jù)庫的修改先寫入事務日志中,再寫入數(shù)據(jù)庫。其具體操作是,系統(tǒng)先將更改操作寫入事務日志中,再更改存儲在計算機緩存中的數(shù)據(jù),為了提高執(zhí)行效率,此更改不會立即寫到硬盤中的數(shù)據(jù)庫,而是由系統(tǒng)以固定的時間間隔執(zhí)行CHECKPOINT命令,將更改過的數(shù)據(jù)批量寫入硬盤。SQLServer有個特點,它在執(zhí)行數(shù)據(jù)更改時會設置一個開始點和一個結(jié)束點,如果尚未到達結(jié)束點就因某種原因使操作中斷,則在SQLServer重新啟動時會自動恢復已修改的數(shù)據(jù),使其返回未被修改的狀態(tài)。當數(shù)據(jù)庫破壞時,可以用事務日志恢復數(shù)據(jù)庫內(nèi)容。2025/6/616:1397四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)2、數(shù)據(jù)庫的物理結(jié)構(gòu)文件組(FileGroup)文件組是將多個數(shù)據(jù)庫文件集合起來形成的一個整體。每個文件組有一個組名。文件組分為主文件組(PrimaryFileGroup)和次文件組(SecondaryFileGroup)一個文件只能存在于一個文件組中,一個文件組也只能被一個數(shù)據(jù)庫使用。主文件組中包含了所有的系統(tǒng)表。當建立數(shù)據(jù)庫時,主文件組包括主數(shù)據(jù)庫文件和未指定組的其它文件。在次文件組中可以指定一個缺省文件組,那么在創(chuàng)建數(shù)據(jù)庫對象時如果沒有指定將其放在哪一個文件組中,就會將它放在缺省文件組中。如果沒有指定缺省文件組則主文件組,為缺省文件組。注意:事務日志文件不屬于任何文件組,日志文件最小為512KB,但最好不要小于1MB。四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)2、數(shù)據(jù)庫的物理結(jié)構(gòu)在考慮數(shù)據(jù)庫的空間分配時,需要了解如下規(guī)則:所有數(shù)據(jù)庫都包含一個主數(shù)據(jù)庫文件與一個或多個事務日志文件,此外,還可以包含零個或多個輔助數(shù)據(jù)庫文件。實際的文件都有兩個名稱:操作系統(tǒng)管理的物理文件名和數(shù)據(jù)庫管理系統(tǒng)管理的邏輯文件名。數(shù)據(jù)庫文件和事務日志文件的默認存放位置為:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data文件夾。在創(chuàng)建用戶數(shù)據(jù)庫時,包含系統(tǒng)表的model數(shù)據(jù)庫自動被復制到新建數(shù)據(jù)庫中。在SQLServer中,數(shù)據(jù)的存儲單位是頁(Page)。一頁是一塊8KB的連續(xù)磁盤空間,頁是存儲數(shù)據(jù)的最小單位。頁的大小決定了數(shù)據(jù)庫表的一行數(shù)據(jù)的最大大小。在SQLServer中,不允許表中的一行數(shù)據(jù)存儲在不同頁上,即行不能跨頁存儲。在SQLServer中,一行數(shù)據(jù)的大?。锤髁兴伎臻g的和)不能超過8060字節(jié)。四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)2、數(shù)據(jù)庫的物理結(jié)構(gòu)根據(jù)數(shù)據(jù)頁的大小和行不能跨頁存儲的規(guī)則,就可以估算出一個數(shù)據(jù)表所需要的大致空間。例如:假設一個數(shù)據(jù)庫表有10000行數(shù)據(jù),每行3000字節(jié)。則每個數(shù)據(jù)頁可以存放兩行數(shù)據(jù),此表需要的空間就為:(10000/2)×8KB=40MB。四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)2、數(shù)據(jù)庫的物理結(jié)構(gòu)2010年10月第101頁3、數(shù)據(jù)庫的其他屬性文件名及其位置 每個數(shù)據(jù)庫的數(shù)據(jù)庫文件和事務日志文件都具有一個邏輯文件名和物理的存放位置(包括物理文件名)。有多個數(shù)據(jù)庫文件的話,為了獲得更好性能,建議分散存儲在多個磁盤上,來提高數(shù)據(jù)存取的并發(fā)性。初始大小 可以指定每個數(shù)據(jù)庫文件和事務日志文件的初始大小,它們的最小大小都是512KB。在指定主數(shù)據(jù)庫文件的初始大小時,其大小不能小于model數(shù)據(jù)庫主文件的大小,因為系統(tǒng)是將model數(shù)據(jù)庫主數(shù)據(jù)庫文件的內(nèi)容拷貝到用戶數(shù)據(jù)庫的主數(shù)據(jù)庫文件上。增長方式 如果需要的話,可以指定文件是否自動增長。該選項的默認配置為自動增長,即當數(shù)據(jù)庫的初始空間用完后,系統(tǒng)自動地擴大數(shù)據(jù)庫空間,目的是為了防止由于數(shù)據(jù)庫空間用完而造成的不能插入新數(shù)據(jù)或不能進行數(shù)據(jù)操作的錯誤。最大大小 文件的最大大小指的是文件增長的最大空間限制。默認情況是無限制。建議用戶設定允許文件增長的最大空間大小,則文件將會無限制增長直到磁盤空間用完為止。在定義數(shù)據(jù)庫時,除了要指定數(shù)據(jù)庫的名字之外,還要定義數(shù)據(jù)庫的數(shù)據(jù)庫文件和事務日志文件的如下屬性:四、SQLServer數(shù)據(jù)庫結(jié)構(gòu)五、創(chuàng)建數(shù)據(jù)庫
在SQLServer中,所有類型的數(shù)據(jù)庫管理操作都可以有兩種方法:一種是使用SQLServerManagementStudio的對象資源管理器,以圖形化的方式完成對于數(shù)據(jù)庫管理;另一種方法是使用T-SQL語句或系統(tǒng)的存儲過程,以命令方式完成對數(shù)據(jù)庫的管理。1、使用對象資源管理器創(chuàng)建用戶數(shù)據(jù)庫
五、創(chuàng)建數(shù)據(jù)庫2、使用T-SQL語句創(chuàng)建用戶數(shù)據(jù)庫
在SQLServerManagementStudio中,單擊標準工具欄的“新建查詢”按鈕,啟動SQL編輯器窗口,如圖4-1所示,在光標處輸入創(chuàng)建數(shù)據(jù)庫的T-SQL語句,單擊“執(zhí)行”按鈕。SQL編輯器就提交用戶輸入的T-SQL語句,發(fā)送到服務器端,先查錯,后編譯執(zhí)行,并返回執(zhí)行結(jié)果。六、創(chuàng)建數(shù)據(jù)庫用CREATEDATABASE語句創(chuàng)建一個數(shù)據(jù)庫,數(shù)據(jù)庫名為mytest,其他項均采用默認方式。
CREATEDATABASEmytest六、創(chuàng)建數(shù)據(jù)庫【例3-2】
用CREATEDATABASE語句創(chuàng)建一個數(shù)據(jù)庫,數(shù)據(jù)庫名為ToyUniverse,此數(shù)據(jù)庫包含一個數(shù)據(jù)庫文件和一個事務日志文件。具體參數(shù)如表3-2所示。六、創(chuàng)建數(shù)據(jù)庫選
項參
數(shù)數(shù)據(jù)庫名稱ToyUniverse數(shù)據(jù)文件邏輯文件名ToyUniverse_Data物理文件名D:\SQL2022\DataBase\ToyUniverse_Data.MDF初始大小10?MB最大容量不受限制增長量5?MB日志文件邏輯文件名ToyUniverse_Log物理文件名D:\SQL2022\DataBase\ToyUniverse_Log.LDF初始大小10?MB最大容量2000?MB增長量10%CREATEDATABASEToyUniverseONPRIMARY(
NAME=ToyUniverse_Data,
FILENAME='D:\SQL2022\DataBase\ToyUniverse_Data.MDF',
SIZE=10,
MAXSIZE=UNLIMITED,
FILEGROWTH=5)LOGON(
NAME=ToyUniverse_Log,
F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三國演義課件作品簡介
- 2025-2030中國底妝產(chǎn)品行業(yè)營銷策略與消費趨勢預測報告
- 2025-2030中國小型環(huán)衛(wèi)設備行業(yè)需求規(guī)模及運行態(tài)勢格局規(guī)劃報告
- 精神分裂癥護理查房
- 小兒高熱驚厥護理課件
- 社工面試必 備題庫精 編
- AI求職者必 備:快消AI行業(yè)面試問題及答案
- 期貨從業(yè)資格之期貨投資分析強化訓練高能及答案詳解一套
- 考點解析-四川綿陽南山中學雙語學校7年級數(shù)學下冊第五章生活中的軸對稱專項訓練練習題(含答案詳解)
- 初中書面表達主題分類訓練10篇-情感與情緒
- 工作總結(jié)及工作思路(輸電運維班)
- 氣管及支氣管內(nèi)插管
- 2025年高處吊籃安裝拆卸工(建筑特殊工種)證考試題庫
- 2025年新云南會計靈活用工協(xié)議書
- 2024年揚州市輔警真題
- 超聲醫(yī)學心包填塞診斷與應用
- 2025年初中音樂教師招聘考試試卷含答案(三套)
- (高清版)DB34∕T 5243-2025 預制艙式磷酸鐵鋰電池儲能電站防火規(guī)范
- 經(jīng)尿道膀胱腫瘤電切術護理
- 神經(jīng)內(nèi)科常規(guī)用藥指南
- 礦業(yè)公司采礦管理制度
評論
0/150
提交評論