數(shù)據(jù)庫SQL ServeSQLite教程 課件全套 夏位前 第1-11章 概論、關(guān)系數(shù)據(jù)模型與關(guān)系運算- SQLite數(shù)據(jù)庫操作_第1頁
數(shù)據(jù)庫SQL ServeSQLite教程 課件全套 夏位前 第1-11章 概論、關(guān)系數(shù)據(jù)模型與關(guān)系運算- SQLite數(shù)據(jù)庫操作_第2頁
數(shù)據(jù)庫SQL ServeSQLite教程 課件全套 夏位前 第1-11章 概論、關(guān)系數(shù)據(jù)模型與關(guān)系運算- SQLite數(shù)據(jù)庫操作_第3頁
數(shù)據(jù)庫SQL ServeSQLite教程 課件全套 夏位前 第1-11章 概論、關(guān)系數(shù)據(jù)模型與關(guān)系運算- SQLite數(shù)據(jù)庫操作_第4頁
數(shù)據(jù)庫SQL ServeSQLite教程 課件全套 夏位前 第1-11章 概論、關(guān)系數(shù)據(jù)模型與關(guān)系運算- SQLite數(shù)據(jù)庫操作_第5頁
已閱讀5頁,還剩863頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫SQLServer/SQlite教程授課教師:第1章概論數(shù)據(jù)庫技術(shù)是信息系統(tǒng)的一個核心技術(shù),研究和解決計算機信息處理過程中數(shù)據(jù)的組織和存儲問題,數(shù)據(jù)庫技術(shù)在商業(yè)上的巨大成功促進了各個領(lǐng)域?qū)?shù)據(jù)庫技術(shù)需求的增長,也推動了數(shù)據(jù)庫技術(shù)的發(fā)展。本章從數(shù)據(jù)庫技術(shù)的發(fā)展歷史、基本概念、數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)、分類、數(shù)據(jù)庫技術(shù)的研究領(lǐng)域等內(nèi)容入手了解數(shù)據(jù)庫技術(shù),為后續(xù)章節(jié)的學(xué)習(xí)奠定基礎(chǔ)。第1章

概論1.1數(shù)據(jù)庫技術(shù)的發(fā)展歷史目錄1.2數(shù)據(jù)庫技術(shù)的基本概念1.3數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)1.4DBMS的功能1.1數(shù)據(jù)庫技術(shù)的發(fā)展歷史數(shù)據(jù)庫系統(tǒng)的研究和開發(fā)從20世紀(jì)60年代中期開始到現(xiàn)在,取得了十分輝煌的成就,造就了C.W.Bachman(巴克曼)、E.F.Codd(考特)和J.Gray(格雷)三位圖靈獎得主,發(fā)展了以數(shù)據(jù)建模和數(shù)據(jù)庫管理系統(tǒng)(DBMS)為核心技術(shù)且內(nèi)容豐富的一門學(xué)科,帶動了一個巨大的數(shù)百億美元的軟件產(chǎn)業(yè)。在數(shù)據(jù)庫技術(shù)出現(xiàn)之前,人們普遍采用文件系統(tǒng)來管理數(shù)據(jù),隨著數(shù)據(jù)規(guī)模的不斷增長以及數(shù)據(jù)共享需求的提出,文件系統(tǒng)方式越來越難以適應(yīng)數(shù)據(jù)管理的要求。數(shù)據(jù)庫技術(shù)自誕生以來,形成了堅實的理論基礎(chǔ)、成熟的商業(yè)產(chǎn)品和廣泛的應(yīng)用領(lǐng)域,經(jīng)歷了網(wǎng)狀數(shù)據(jù)庫、層次數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫、對象關(guān)系數(shù)據(jù)庫等發(fā)展階段,而且即使到了今天,DDBS、XML數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫、NewSQL數(shù)據(jù)庫等,在不斷發(fā)展之中。1.1

數(shù)據(jù)庫技術(shù)的發(fā)展歷史20世紀(jì)60年代,計算機開始廣泛地應(yīng)用于數(shù)據(jù)管理,對數(shù)據(jù)的共享提出了越來越高的要求,傳統(tǒng)的文件系統(tǒng)已經(jīng)不能滿足人們的需要,能夠統(tǒng)一管理和共享數(shù)據(jù)的數(shù)據(jù)庫管理技術(shù)得到了用戶的認可。了解數(shù)據(jù)庫技術(shù)的發(fā)展歷程,首先應(yīng)對整個數(shù)據(jù)管理技術(shù)的發(fā)展歷程有所認識。1.1.1

數(shù)據(jù)管理技術(shù)的發(fā)展歷程1.2.3.1.人工管理階段2.文件系統(tǒng)階段3.數(shù)據(jù)庫管理階段人工管理階段主要集中在20世紀(jì)50年代以前。當(dāng)時計算機剛剛面世不久,人們把計算機當(dāng)作一種工具,用于科學(xué)計算,將程序和相關(guān)數(shù)據(jù)輸入計算機,經(jīng)處理后輸出結(jié)果。人工管理階段的數(shù)據(jù)管理如圖1-1所示。1.1.1

數(shù)據(jù)管理技術(shù)的發(fā)展歷程1.人工管理階段圖1-1人工管理階段的數(shù)據(jù)管理特點人工管理階段的數(shù)據(jù)管理具有以下幾個特點:(1)數(shù)據(jù)并不保存在計算機中。此時還沒有出現(xiàn)二級存儲概念,如磁盤,數(shù)據(jù)都是純二進制數(shù)據(jù),并且以打孔紙帶的形式表示。(2)應(yīng)用程序自己管理數(shù)據(jù)。應(yīng)用程序根據(jù)自己的要求準(zhǔn)備打孔紙帶形式的數(shù)據(jù),這些數(shù)據(jù)只能被自己使用。不同的應(yīng)用程序根據(jù)求解問題準(zhǔn)備各自需要的數(shù)據(jù)。(3)數(shù)據(jù)無法共享。數(shù)據(jù)由程序自行攜帶,一組數(shù)據(jù)對應(yīng)一個程序。(4)數(shù)據(jù)與應(yīng)用程序之間不具有獨立性。如果應(yīng)用程序發(fā)生修改,原先的數(shù)據(jù)一般不能繼續(xù)使用,需要重新準(zhǔn)備打孔紙帶。同理,如果數(shù)據(jù)修改了,應(yīng)用程序也同樣無法處理。(5)只有程序的概念,沒有文件的概念。此時還沒有文件存儲的概念。1.1.1

數(shù)據(jù)管理技術(shù)的發(fā)展歷程1.人工管理階段1.1.1

數(shù)據(jù)管理技術(shù)的發(fā)展歷程2.文件系統(tǒng)階段在20世紀(jì)50年代中期到60年代中期,出現(xiàn)了文件系統(tǒng)形式的數(shù)據(jù)管理技術(shù)。它主要是隨著磁盤、磁鼓等存儲設(shè)備的出現(xiàn),操作系統(tǒng)技術(shù)的發(fā)展而提出的。文件系統(tǒng)階段的數(shù)據(jù)管理,主要是數(shù)據(jù)以文件形式保存和管理,如圖1-2所示。圖1-2文件系統(tǒng)階段的數(shù)據(jù)管理特點文件系統(tǒng)數(shù)據(jù)管理的主要特點可歸納為以下幾點:(1)數(shù)據(jù)以文件形式存在,由文件系統(tǒng)管理。(2)數(shù)據(jù)可以較長時期的保存在磁盤上。(3)數(shù)據(jù)共享性差,冗余大。必須建立不同的文件以滿足不同的應(yīng)用。例如,在一個教學(xué)信息管理系統(tǒng)中,教師數(shù)據(jù)同時被教學(xué)、財務(wù)、人事管理等應(yīng)用模塊使用,在文件系統(tǒng)階段只能將教師數(shù)據(jù)文件復(fù)制到這些不同的應(yīng)用中。這樣,一方面帶來了數(shù)據(jù)的冗余存儲,另一方面如果某些教師數(shù)據(jù)發(fā)生了修改,則很容易出現(xiàn)數(shù)據(jù)的不一致。(4)數(shù)據(jù)與應(yīng)用程序之間具有一定的獨立性,但非常有限。應(yīng)用程序通過文件名即可訪問數(shù)據(jù)、按記錄進行存取,但文件結(jié)構(gòu)改變時必須修改程序。1.1.1

數(shù)據(jù)管理技術(shù)的發(fā)展歷程2.文件系統(tǒng)階段1.1.1

數(shù)據(jù)管理技術(shù)的發(fā)展歷程3.數(shù)據(jù)庫管理階段20世紀(jì)60年代末開始,數(shù)據(jù)管理進入數(shù)據(jù)庫管理階段。這一階段引入DBMS實現(xiàn)了數(shù)據(jù)管理,如圖1-3所示。圖1-3數(shù)據(jù)庫管理階段的數(shù)據(jù)管理特點數(shù)據(jù)庫管理階段的主要特點如下:(1)數(shù)據(jù)結(jié)構(gòu)化。DBMS采用了數(shù)據(jù)模型來組織數(shù)據(jù),不僅可以表示數(shù)據(jù),還可以表示數(shù)據(jù)間的聯(lián)系。(2)高共享,低冗余,且易于擴充。數(shù)據(jù)不僅可以被多個應(yīng)用程序高度共享,并且可以保證數(shù)據(jù)之間的最小冗余。(3)數(shù)據(jù)獨立性高。數(shù)據(jù)不僅具有物理獨立性和邏輯獨立性,對它的修改不會影響到應(yīng)用程序的運行。(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制,應(yīng)用系統(tǒng)中所有的數(shù)據(jù)都由DBMS負責(zé)存取。1.1.1

數(shù)據(jù)管理技術(shù)的發(fā)展歷程3.數(shù)據(jù)庫管理階段數(shù)據(jù)庫技術(shù)從20世紀(jì)60年代末開始發(fā)展,在計算機應(yīng)用領(lǐng)域中,數(shù)據(jù)處理越來越占據(jù)主導(dǎo)地位,應(yīng)用也越來越廣泛。重大的數(shù)據(jù)庫技術(shù)及其發(fā)展里程碑事件如下:1961年,通用電器(GE)的C.W.Bachman(巴克曼)設(shè)計了歷史上第一個DBMS——網(wǎng)狀數(shù)據(jù)庫系統(tǒng)集成數(shù)據(jù)存儲(IntegratedDataStore,IDS)。Bachman是一名工業(yè)界的研究人員,為了解決項目中的復(fù)雜數(shù)據(jù)管理問題而設(shè)計了IDS,開創(chuàng)了數(shù)據(jù)庫這一新的研究領(lǐng)域。Bachman本人也因為在網(wǎng)狀數(shù)據(jù)庫方面的貢獻于1973年獲得了計算機領(lǐng)域的最高獎項——圖靈獎。這是第一個獲得圖靈獎的數(shù)據(jù)庫研究人員。1.1.2

數(shù)據(jù)庫技術(shù)的發(fā)展歷程1968年,IBM設(shè)計了層次數(shù)據(jù)庫系統(tǒng)IMS(InfomationManagementSysytem)。1969年,CODASYL的DBTG(DataBaseTaskGroup)發(fā)表了網(wǎng)狀數(shù)據(jù)模型報告,奠定了網(wǎng)狀數(shù)據(jù)庫技術(shù)。層次數(shù)據(jù)庫技術(shù)和網(wǎng)狀數(shù)據(jù)庫技術(shù)一般被合稱為第一代數(shù)據(jù)庫技術(shù)。1970年,IBM的E.F.Codd(考特)在CommunicationofACM上發(fā)表了論文ARelationalModelofDataforLargeSharedDataBanks,提出了關(guān)系數(shù)據(jù)模型,奠定了關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)。關(guān)系數(shù)據(jù)模型采用了一種簡單、高效的二維表形式組織數(shù)據(jù),從而開創(chuàng)了數(shù)據(jù)庫技術(shù)的新紀(jì)元。E.F.Codd本人也因為在關(guān)系數(shù)據(jù)模型方面的貢獻于1981年獲得了圖靈獎。關(guān)系數(shù)據(jù)庫技術(shù)也被稱為第二代數(shù)據(jù)庫技術(shù)。1.1.2

數(shù)據(jù)庫技術(shù)的發(fā)展歷程1973—1976年,E.F.Codd牽頭設(shè)計了SystemR。SystemR是數(shù)據(jù)庫歷史上第一個關(guān)系數(shù)據(jù)庫原型系統(tǒng),其字母R是Relation的首字母。之所以稱為原型系統(tǒng)而不是產(chǎn)品,是因為SystemR開發(fā)完成后并沒有及時商業(yè)化,從而導(dǎo)致Oracle后來居上。在這期間,加利福尼亞大學(xué)伯克利分校的M.Stonebraker設(shè)計了Ingres。Ingres是目前開源DBMSPostgreSQL的前身。在20世紀(jì)70年代,Ingres是少數(shù)幾個能和IBM系統(tǒng)競爭的產(chǎn)品。1.1.2

數(shù)據(jù)庫技術(shù)的發(fā)展歷程1974年,IBM的Boyce和Chamberlin設(shè)計了SQL。SQL最早是作為SystemR的數(shù)據(jù)庫語言而設(shè)計的。經(jīng)過Boyce和Chamberlin的不斷修改和完善,最終形成了現(xiàn)在流行的SQL。目前,SQL已經(jīng)成為ISO國際標(biāo)準(zhǔn)。前面提到的Ingres就是因為沒有在其系統(tǒng)中支持SQL而導(dǎo)致了最終的沒落。1976年,IBM的JimGray(格雷)提出了一致性、鎖粒度等設(shè)計,奠定了事務(wù)處理的基礎(chǔ)。JimGray本人也因為在事務(wù)處理方面的貢獻獲得了1998年的圖靈獎。這是第三位獲得該獎項的數(shù)據(jù)庫研究人員,也是到目前為止最后一位。1.1.2

數(shù)據(jù)庫技術(shù)的發(fā)展歷程1977年,LarryEllison創(chuàng)建了Oracle公司,1979年發(fā)布Oracle2.0,1986年Oracle上市。LarryEllison早期在為執(zhí)行美國國防部的一個項目時遇到了數(shù)據(jù)管理方面的問題,后來他看到了E.F.Codd發(fā)表的關(guān)于SystemR的論文,于是基于SystemR的思想很快開發(fā)了一個數(shù)據(jù)管理系統(tǒng),并且將其商業(yè)化。在其后的發(fā)展中,Oracle很果斷地采取了兼容SQL的做法,使其逐步占據(jù)了數(shù)據(jù)庫領(lǐng)域的龍頭地位。Oracle的發(fā)展對于數(shù)據(jù)庫技術(shù)的商業(yè)化起到了十分重要的地位。后來LarryEllison曾說IBM歷史上最大的兩個失誤就是培育出了Microsoft和Oracle。1983年,IBM發(fā)布DB2。由于Oracle在商業(yè)領(lǐng)域的成功,使IBM意識到了數(shù)據(jù)庫技術(shù)的發(fā)展前景。由于其技術(shù)實力雄厚,因此馬上推出了商業(yè)化的DBMSDB2。這一產(chǎn)品至今仍在市場上占據(jù)重要地位。1.1.2

數(shù)據(jù)庫技術(shù)的發(fā)展歷程1996年,Microsoft發(fā)布MicrosoftSQLServer6.5。MicrosoftSQLServer是一個很特殊的產(chǎn)品,其版本號直接從6.5開始。因為Microsoft和Sybase合作破裂后雙方都擁有了SybaseSQLServer的源碼,但SQLServer這一名稱從此開始屬于微軟,而Sybase則啟用了ASE產(chǎn)品名稱。1.1.2

數(shù)據(jù)庫技術(shù)的發(fā)展歷程1996年,開源的MySQL正式發(fā)布。1998年,提出了半結(jié)構(gòu)化數(shù)據(jù)模型(XML1.0)。由于網(wǎng)絡(luò)數(shù)據(jù)管理需求的不斷增長,XML數(shù)據(jù)管理技術(shù)在近些年受到了重視,至今仍是數(shù)據(jù)庫領(lǐng)域的一個研究熱點。曾經(jīng)有人將XML數(shù)據(jù)庫技術(shù)命名為第四代數(shù)據(jù)庫技術(shù),但沒有得到認可。2005年,M.Stonebraker等開發(fā)完成C-store。C-store是列存儲的DBMS(Column-basedDBMS),它完全拋棄了傳統(tǒng)基于行記錄的數(shù)據(jù)庫存儲方式,從而開創(chuàng)了一個新的研究方向。1.1.2

數(shù)據(jù)庫技術(shù)的發(fā)展歷程2007年,NoSQL(非關(guān)系型數(shù)據(jù)庫)在互聯(lián)網(wǎng)Web2.0領(lǐng)域大行其道。傳統(tǒng)的SQL數(shù)據(jù)庫技術(shù)經(jīng)過了幾十年的發(fā)展和應(yīng)用,在新的領(lǐng)域,如Web、云計算等,面臨著一些數(shù)據(jù)表示、查詢處理方面的新問題。因此,NoSQL數(shù)據(jù)庫技術(shù)開始提出并且馬上得到了多個互聯(lián)網(wǎng)企業(yè)的支持,包括Amazon(SimpleDB/Dynamo)、Google(BigTable)、Facebook(Cassandra)、Yahoo(PNUTS)等。NoSQL不僅僅是NoSQL,還是NotonlySQL,在今后的幾年里,NoSQL數(shù)據(jù)庫能否開創(chuàng)數(shù)據(jù)庫技術(shù)的新時代還有待進一步驗證。1.1.2

數(shù)據(jù)庫技術(shù)的發(fā)展歷程1.2數(shù)據(jù)庫技術(shù)的基本概念應(yīng)用了數(shù)據(jù)庫技術(shù)的計算機系統(tǒng),稱為數(shù)據(jù)庫系統(tǒng)(DBS),其中涉及一些基本的概念,這些概念在現(xiàn)實應(yīng)用中很容易混淆,也是學(xué)習(xí)數(shù)據(jù)庫技術(shù)必須首先了解和區(qū)分的對象。1.2

數(shù)據(jù)庫技術(shù)的基本概念數(shù)據(jù)是數(shù)據(jù)庫中存儲和管理的基本對象。數(shù)據(jù)是事實或觀察的結(jié)果,是對客觀事物的邏輯歸納,是用于表示客觀事物的未經(jīng)加工的原始素材,可以是字符、文字、聲音、圖像、視頻等,但是,什么是數(shù)據(jù)呢?通常的定義是:數(shù)據(jù)(Data)是人們用來反映客觀世界而記錄下來的可以鑒別的物理符號。這個定義的含義是數(shù)據(jù)是“客觀的”也是“可鑒別的”。此外,數(shù)據(jù)是符號,數(shù)據(jù)庫系統(tǒng)除了存儲和管理數(shù)據(jù)之外,還管理一些其他內(nèi)容,如后面介紹的模式等。1.2.1

數(shù)據(jù)由于現(xiàn)實世界中存在著不同類型的符號,因此數(shù)據(jù)可以分為數(shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù)兩種基本類型。數(shù)值數(shù)據(jù)記錄了由數(shù)字所構(gòu)成的數(shù)值,例如,職工張三的年齡是一個數(shù)值數(shù)據(jù),學(xué)生李四的英語成績也是數(shù)值數(shù)據(jù)等。非數(shù)值數(shù)據(jù)則包括了字符、文字、圖像、圖形、聲音等特殊格式的數(shù)據(jù)。在現(xiàn)實世界中,非數(shù)值數(shù)據(jù)越來越多樣,如人的姓名(字符)、照片(圖像)等?,F(xiàn)有的數(shù)據(jù)庫技術(shù)都支持?jǐn)?shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù)的存儲和管理。1.2.1

數(shù)據(jù)在實際應(yīng)用中,如果僅存儲數(shù)據(jù),一般來說是沒有意義的。這是因為數(shù)據(jù)本身只是符號而已,而同樣的符號在不同的應(yīng)用環(huán)境中可能會出現(xiàn)完全不同的解釋。例如,60這一數(shù)據(jù)在教學(xué)管理系統(tǒng)中表示為某個學(xué)生某門課程的成績,在職工管理系統(tǒng)中可表示為某個職工的體重,而在學(xué)生管理系統(tǒng)中還可表示為班級的學(xué)生人數(shù)。因此,數(shù)據(jù)與其代表的語義是分不開的,在存儲數(shù)據(jù)的同時必須知道數(shù)據(jù)所代表的語義。1.2.1

數(shù)據(jù)除了“60”這類表示單一值的簡單數(shù)據(jù)外,現(xiàn)實生活中還存在著復(fù)合數(shù)據(jù)。復(fù)合數(shù)據(jù)是由若干簡單數(shù)據(jù)組合而成的。例如,學(xué)生記錄“(李明,199801,中國人民大學(xué),2018)”就是由簡單數(shù)據(jù)“李明”“199801”“中國人民大學(xué)”“2018”構(gòu)成的一個復(fù)合數(shù)據(jù)。復(fù)合數(shù)據(jù)同樣也是與其語義不可分的。像上面的學(xué)生記錄,其語義在不同應(yīng)用環(huán)境下可能完全不同。例如,在高校畢業(yè)生管理系統(tǒng)中可表示“學(xué)生姓名、出生年月、所在學(xué)校、畢業(yè)年份”這樣的語義,而在另一個系統(tǒng)中則可表示“學(xué)生姓名、出生年月、錄取大學(xué)、入學(xué)時間”的另一種語義。1.2.1

數(shù)據(jù)1.2.2

數(shù)據(jù)庫與數(shù)據(jù)庫模式1.數(shù)據(jù)庫的概念和特點簡單地講,數(shù)據(jù)庫是一個存儲數(shù)據(jù)的倉庫。但是,這種定義肯定不準(zhǔn)確,因為數(shù)據(jù)庫中的數(shù)據(jù)并不是隨意存放的,而是有一定的組織和類型特征。嚴(yán)格的數(shù)據(jù)庫定義為:數(shù)據(jù)庫(database,DB)是長期存儲在計算機內(nèi),有組織的、可共享的大量數(shù)據(jù)的集合。這個定義指出了數(shù)據(jù)庫的下述幾個特點:(1)數(shù)據(jù)庫是數(shù)據(jù)的集合,因此數(shù)據(jù)庫只是一個符號的集合,本身是沒有語義的。(2)數(shù)據(jù)庫中的數(shù)據(jù)不是雜亂無章的,而是有組織的。確切地說,是按一定的數(shù)據(jù)模型組織、描述和存儲的。(3)數(shù)據(jù)庫中存儲的數(shù)據(jù)量通常是海量的。如果是少量的數(shù)據(jù),通常不需要使用數(shù)據(jù)庫技術(shù)來管理,借助文件系統(tǒng)就可以實現(xiàn)。實際上,存儲的數(shù)據(jù)量越大,越能體現(xiàn)數(shù)據(jù)庫技術(shù)相對于文件系統(tǒng)的優(yōu)勢。1.2.2

數(shù)據(jù)庫與數(shù)據(jù)庫模式1.數(shù)據(jù)庫的概念和特點(4)數(shù)據(jù)庫通常是持久存儲的,即存儲在磁盤等持久存儲介質(zhì)上。(5)數(shù)據(jù)庫一般是被多用戶共享的。換句話說,最早期的數(shù)據(jù)庫一臺電腦一個用戶,數(shù)據(jù)集只為單用戶服務(wù)的,而在多用戶共享的環(huán)境中,數(shù)據(jù)庫技術(shù)的優(yōu)點得到充分發(fā)揮。目前,除了少數(shù)專用的數(shù)據(jù)庫產(chǎn)品外,絕大多數(shù)商用數(shù)據(jù)庫產(chǎn)品都是面向多用戶應(yīng)用的。(6)數(shù)據(jù)庫一般服務(wù)于某個特定的應(yīng)用,因此數(shù)據(jù)間聯(lián)系密切,具有最小冗余度和較高的獨立性。1.2.2

數(shù)據(jù)庫與數(shù)據(jù)庫模式1.數(shù)據(jù)庫的概念和特點現(xiàn)實世界中海關(guān)、銀行、航空、學(xué)校等數(shù)據(jù)庫,都是面向特定應(yīng)用的數(shù)據(jù)庫,不存在通用的數(shù)據(jù)庫。即便都是學(xué)校數(shù)據(jù)庫,不同的層次、類別等應(yīng)用環(huán)境對數(shù)據(jù)組織、數(shù)據(jù)存儲等也會有不同的要求。例如,某高等學(xué)校中的圖書數(shù)據(jù)庫中需要存儲每一種圖書的供應(yīng)商,而另一個中學(xué)學(xué)校則可能不需要保存。這些都會影響數(shù)據(jù)庫中數(shù)據(jù)的表示和組織方式。因此,數(shù)據(jù)庫一般都是專門針對某個特定應(yīng)用的。1.2.2

數(shù)據(jù)庫與數(shù)據(jù)庫模式1.數(shù)據(jù)庫的概念和特點1.2.2

數(shù)據(jù)庫與數(shù)據(jù)庫模式數(shù)據(jù)庫本身是沒有語義的,因此引入另一個概念,即數(shù)據(jù)庫模式(DatabaseSchema)來表達數(shù)據(jù)庫的語義。最常見的數(shù)據(jù)庫模式定義為:數(shù)據(jù)庫模式是數(shù)據(jù)庫語義的表達,它是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。2.數(shù)據(jù)庫模式1.2.2

數(shù)據(jù)庫與數(shù)據(jù)庫模式圖1-4所示是數(shù)據(jù)庫與數(shù)據(jù)庫模式的一個例子。2.數(shù)據(jù)庫模式圖1-4數(shù)據(jù)庫與數(shù)據(jù)庫模式示例1.2.2

數(shù)據(jù)庫與數(shù)據(jù)庫模式在這個例子中,假設(shè)數(shù)據(jù)庫中只存儲了學(xué)生數(shù)據(jù)。圖1-4的左邊顯示了使用關(guān)系數(shù)據(jù)模型表示的數(shù)據(jù)庫結(jié)構(gòu)與內(nèi)容,即數(shù)據(jù)庫中的數(shù)據(jù)一般都是按某種數(shù)據(jù)模型進行組織的;右邊則分別顯示了對應(yīng)的數(shù)據(jù)庫和數(shù)據(jù)庫模式。關(guān)系數(shù)據(jù)模型是目前最流行的數(shù)據(jù)模型,現(xiàn)有的數(shù)據(jù)庫產(chǎn)品大多是基于關(guān)系數(shù)據(jù)庫模型,其基本數(shù)據(jù)結(jié)構(gòu)就是圖1-4左邊顯示的二維表格。但是,二維表格本身包含了表頭和表體(即下面的數(shù)據(jù)行),從概念上講,二維表格的表頭表示了下方數(shù)據(jù)行的語義,所對應(yīng)的結(jié)構(gòu)就是此二維表格的模式,此模式就是一個數(shù)據(jù)庫模式),而表體(即下方的數(shù)據(jù)行集合)則構(gòu)成了數(shù)據(jù)庫,即一個數(shù)據(jù)的集合。2.數(shù)據(jù)庫模式1.2.3

數(shù)據(jù)庫管理系統(tǒng)隨著數(shù)據(jù)庫技術(shù)的豐富和發(fā)展,數(shù)據(jù)庫管理系統(tǒng)的概念應(yīng)運而生。其定義如下:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS),是一個計算機軟件,用于創(chuàng)建、管理和維護數(shù)據(jù)庫的大型軟件。數(shù)據(jù)庫管理系統(tǒng)從軟件的分類角度來說,屬于計算機系統(tǒng)軟件。系統(tǒng)軟件一般是管理計算機資源的軟件。通常情況下,數(shù)據(jù)庫管理系統(tǒng)運行在操作系統(tǒng)之上,用于管理計算機中的數(shù)據(jù)資源。也就是說,當(dāng)涉及底層的磁盤操作時,數(shù)據(jù)庫管理系統(tǒng)通常利用操作系統(tǒng)提供的磁盤存取服務(wù)來實現(xiàn)底層數(shù)據(jù)存取。用戶還可以在數(shù)據(jù)庫管理系統(tǒng)之上創(chuàng)建直接服務(wù)于應(yīng)用的數(shù)據(jù)庫應(yīng)用系統(tǒng)(即數(shù)據(jù)庫應(yīng)用軟件),從而構(gòu)建基于數(shù)據(jù)庫技術(shù)的應(yīng)用軟件,滿足實際應(yīng)用的需求。1.2.3

數(shù)據(jù)庫管理系統(tǒng)圖1-5顯示了用戶應(yīng)用、DBMS和操作系統(tǒng)之間的層次架構(gòu)。在實際應(yīng)用中常常見到的一些數(shù)據(jù)庫產(chǎn)品,如Oracle、MicrosoftSQLServer等,嚴(yán)格來講是指DBMS。但隨著計算機軟件技術(shù)和應(yīng)用的不斷發(fā)展,目前的Oracle、MicrosoftSQLServer等已經(jīng)不單純是DBMS,而是一套以DBMS為核心的套件。圖1-5用戶應(yīng)用、DBMS和操作系統(tǒng)之間的層次架構(gòu)1.2.4

數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)是一個更加寬廣的概念,類似于計算機系統(tǒng),其定義如下:數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)是指在計算機系統(tǒng)中引入了數(shù)據(jù)庫后的系統(tǒng),即采用了數(shù)據(jù)庫技術(shù)的計算機系統(tǒng)。數(shù)據(jù)庫系統(tǒng)作為一個計算機系統(tǒng),包含了軟件、硬件、數(shù)據(jù)庫、數(shù)據(jù)庫管理人員、終端用戶等要素,如電子政務(wù)系統(tǒng)、銀行信息系統(tǒng)等,都可以稱數(shù)據(jù)庫系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)中,用戶可分為數(shù)據(jù)庫管理員和終端用戶兩類,其中數(shù)據(jù)庫管理員直接與DBMS打交道,終端用戶直接與應(yīng)用程序交互。一個系統(tǒng),有時分為前臺和后臺,前臺是終端用戶、是應(yīng)用,后臺是管理、開發(fā)和維護。1.3數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)從軟件架構(gòu)上看,引入DBMS之后的系統(tǒng)中開始出現(xiàn)數(shù)據(jù)庫服務(wù)器。其數(shù)據(jù)庫體系結(jié)構(gòu)(或模式結(jié)構(gòu)),目前廣泛采用的是“ANSI/SPARC體系結(jié)構(gòu)”的架構(gòu)。ANSI/SPARC體系結(jié)構(gòu)是1975年由美國國家標(biāo)準(zhǔn)協(xié)會的計算機與信息處理委員會中的標(biāo)準(zhǔn)計劃與需求委員會提出的數(shù)據(jù)庫模式結(jié)構(gòu)。它不僅可以用來解釋已有的商用DBMS的數(shù)據(jù)庫模式結(jié)構(gòu),也可以作為研發(fā)新型DBMS時的數(shù)據(jù)庫模式組織標(biāo)準(zhǔn)。目前,Oracle、MicrosoftSQLServer等商用DBMS都遵循和支持ANSI/SPARC體系結(jié)構(gòu)。1.3.1

ANSI/SPARC體系結(jié)構(gòu)ANSI/SPARC體系結(jié)構(gòu)可以用一句話概括,即三級模式結(jié)構(gòu)+兩級映像。圖1-6顯示了ANSI/SPARC體系結(jié)構(gòu)。1.3.1

ANSI/SPARC體系結(jié)構(gòu)圖1-6ANSI/SPARC體系結(jié)構(gòu)ANSI/SPARC體系結(jié)構(gòu)的三級模式結(jié)構(gòu)為:1.3.1

ANSI/SPARC體系結(jié)構(gòu)(2)外模式(1)概念模式(3)內(nèi)模式定義了邏輯層的模式結(jié)構(gòu),表示整個數(shù)據(jù)庫的邏輯結(jié)構(gòu)。例如,數(shù)據(jù)記錄,由哪些數(shù)據(jù)項構(gòu)成,數(shù)據(jù)項的名稱、類型、取值范圍,數(shù)據(jù)之間的聯(lián)系、數(shù)據(jù)的完整性等。一個數(shù)據(jù)庫只有一個概念模式。在ANSI/SPARC體系結(jié)構(gòu)中規(guī)定概念模式通過模式DDL(DataDefinitionLanguage)進行定義。DDL是數(shù)據(jù)庫語言的一種,主要功能是操縱數(shù)據(jù)庫模式。1.3.1

ANSI/SPARC體系結(jié)構(gòu)(1)概念模式也稱用戶模式(UserSchema)、子模式,它定義了視圖層(Viewlevel)的模式結(jié)構(gòu)。例如,在一個圖書館數(shù)據(jù)庫中,借書者眼里的數(shù)據(jù)庫內(nèi)容與圖書館工作人員眼里的數(shù)據(jù)庫內(nèi)容可能完全不同,借書者只看到圖書名稱、作者、出版社、ISBN等內(nèi)容,而圖書館工作人員看到的還有庫存數(shù)、購買價格、購買單位等信息。在ANSI/SPARC體系結(jié)構(gòu)中規(guī)定外模式通過外模式DDL進行定義。1.3.1

ANSI/SPARC體系結(jié)構(gòu)(2)外模式內(nèi)模式定義了物理層的模式結(jié)構(gòu),它描述了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存儲方式。與概念模式類似,一個數(shù)據(jù)庫只有一個內(nèi)模式。在ANSI/SPARC體系結(jié)構(gòu)中規(guī)定內(nèi)模式通過內(nèi)模式DDL進行定義。1.3.1

ANSI/SPARC體系結(jié)構(gòu)(3)內(nèi)模式從終端用戶的角度看,數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)也可以說是數(shù)據(jù)庫應(yīng)用系統(tǒng)的體系結(jié)構(gòu)。目前,最常見的是客戶機/服務(wù)器結(jié)構(gòu)和瀏覽器/服務(wù)器結(jié)構(gòu)。1.3.2

客戶機/服務(wù)器結(jié)構(gòu)和瀏覽器/服務(wù)器結(jié)構(gòu)12客戶機/服務(wù)器結(jié)構(gòu)瀏覽器/服務(wù)器結(jié)構(gòu)客戶機/服務(wù)器結(jié)構(gòu)(Client/ServerArchitecture,C/S結(jié)構(gòu))是20世紀(jì)90年代產(chǎn)生的一種數(shù)據(jù)庫應(yīng)用系統(tǒng)體系結(jié)構(gòu)。客戶機,主要運行應(yīng)用程序及一些前端的數(shù)據(jù)庫開發(fā)工具;服務(wù)器,主要提供DBMS的功能。在Web技術(shù)出現(xiàn)之前,客戶機/服務(wù)器結(jié)構(gòu)是最流行的架構(gòu)。進入21世紀(jì)后,隨著Web開發(fā)技術(shù)的發(fā)展,瀏覽器/服務(wù)器結(jié)構(gòu)開始流行,越來越多的Web開發(fā)平臺開始出現(xiàn)。1.3.2

客戶機/服務(wù)器結(jié)構(gòu)和瀏覽器/服務(wù)器結(jié)構(gòu)1.客戶機/服務(wù)器結(jié)構(gòu)瀏覽器/服務(wù)器結(jié)構(gòu)(Browser/ServerArchitecture,B/S結(jié)構(gòu))可以看成是Web時代的客戶機/服務(wù)器結(jié)構(gòu)。瀏覽器/服務(wù)器結(jié)構(gòu)的應(yīng)用系統(tǒng)通常運行在Internet之上,當(dāng)然也可以只運行在局域網(wǎng)內(nèi)使用,不過要求支持TCP/IP,即Intranet。如圖1-7所示。1.3.2

客戶機/服務(wù)器結(jié)構(gòu)和瀏覽器/服務(wù)器結(jié)構(gòu)2.瀏覽器/服務(wù)器結(jié)構(gòu)瀏覽器/服務(wù)器結(jié)構(gòu),與客戶機/服務(wù)器結(jié)構(gòu)比較,其主要優(yōu)點:(1)統(tǒng)一的客戶機界面,維護和升級相對簡單。在B/S結(jié)構(gòu)中,客戶機只要有瀏覽器即可,不需要另外安裝應(yīng)用程序。應(yīng)用程序升級時,也只需要在Web服務(wù)器升級即可,因此大大降低了系統(tǒng)維護的工作量。(2)基于Web技術(shù),支持互聯(lián)網(wǎng)應(yīng)用,服務(wù)器操作系統(tǒng)選擇更多。互聯(lián)網(wǎng)應(yīng)用的優(yōu)點是可以跨地域運行。傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用一般只能局限在局域網(wǎng)中。因此,像電子商務(wù)系統(tǒng)、網(wǎng)上銀行等應(yīng)用,B/S結(jié)構(gòu)具有明顯的優(yōu)勢。1.3.2

客戶機/服務(wù)器結(jié)構(gòu)和瀏覽器/服務(wù)器結(jié)構(gòu)2.瀏覽器/服務(wù)器結(jié)構(gòu)但是,B/S結(jié)構(gòu)也存在一些缺點:(1)安全性問題,用戶訪問無地域限制。相比之下,由于C/S結(jié)構(gòu)只運行在由局域網(wǎng)連接的系統(tǒng)內(nèi)部,通常是一個部門或一棟大樓,其用戶類型、訪問來源、訪問數(shù)量等都很容易控制,因此安全性要高很多。(2)開發(fā)工具的能力相對較弱,應(yīng)用服務(wù)器運行數(shù)據(jù)負荷較重,存儲服務(wù)更加重要。1.3.2

客戶機/服務(wù)器結(jié)構(gòu)和瀏覽器/服務(wù)器結(jié)構(gòu)2.瀏覽器/服務(wù)器結(jié)構(gòu)1.4DBMS的功能DBMS作為系統(tǒng)軟件,承擔(dān)了計算機系統(tǒng)中數(shù)據(jù)資源管理的任務(wù),其最基本的功能是創(chuàng)建、管理和維護數(shù)據(jù)庫,此外還提供其他一些功能。DBMS的功能,大致可歸納為以下幾點:1.4DBMS的功能4.數(shù)據(jù)庫的建立和維護2.數(shù)據(jù)庫操縱3.數(shù)據(jù)庫保護1.數(shù)據(jù)庫定義DBMS提供DDL翻譯處理程序、保密定義處理程序、完整性約束定義處理程序等,接收相應(yīng)的定義,進行語法、語義檢查,把它們翻譯為內(nèi)部格式。由于數(shù)據(jù)庫是由若干對象構(gòu)成的一個集合,因此DBMS需要提供對不同數(shù)據(jù)庫對象的創(chuàng)建、管理和維護能力,包括表、視圖、索引、約束、用戶等。1.4DBMS的功能1.數(shù)據(jù)庫定義2.數(shù)據(jù)庫操縱DBMS提供DML處理程序、終端查詢語言解釋程序、數(shù)據(jù)存取程序、數(shù)據(jù)更新程序等,對用戶數(shù)據(jù)操縱請求進行語法、語義檢查,有數(shù)據(jù)存取更新則執(zhí)行存取更新操作。數(shù)據(jù)庫為前端應(yīng)用程序服務(wù)提供數(shù)據(jù)庫存取能力,主要是對基本表的操縱,包括增、刪、改、查等。為了保證數(shù)據(jù)庫的安全,DBMS必須提供一定的數(shù)據(jù)庫保護功能。數(shù)據(jù)庫保護功能通常包括兩種方式:一是提供數(shù)據(jù)庫故障后的恢復(fù)功能,二是提供防止數(shù)據(jù)庫被破壞的技術(shù)。具體的數(shù)據(jù)庫保護功能包括數(shù)據(jù)庫恢復(fù)、并發(fā)控制、完整性控制、安全性控制等。1.4DBMS的功能3.數(shù)據(jù)庫保護DBMS提供文件讀寫與維護程序、存取路徑管理程序、緩沖區(qū)管理程序等,這些程序負責(zé)維護數(shù)據(jù)庫的數(shù)據(jù)和存取路徑。DBMS提供初始數(shù)據(jù)的轉(zhuǎn)換和裝入、數(shù)據(jù)備份、數(shù)據(jù)庫的重組織、性能監(jiān)控和分析等功能,這些功能對于保證DBMS的實用性是必不可少的。4.數(shù)據(jù)庫的建立和維護習(xí)題1.1961年,通用電器(GE)的C.W.Bachman設(shè)計了歷史上第一個DBMS—

數(shù)據(jù)庫系統(tǒng)集成數(shù)據(jù)存儲IDS。1968年,IBM設(shè)計了

數(shù)據(jù)庫系統(tǒng)IMS。2007年,

數(shù)據(jù)庫(NoSQL)技術(shù)開始提出并且馬上得到了Amazon、Google等多個互聯(lián)網(wǎng)企業(yè)的支持,能否開創(chuàng)數(shù)據(jù)庫技術(shù)的新時代還有待進一步驗證。2.從架構(gòu)的觀點看,數(shù)據(jù)庫模式結(jié)構(gòu)廣泛采用的是

體系結(jié)構(gòu)的架構(gòu)。一、填空題習(xí)題1.在數(shù)據(jù)庫管理階段,數(shù)據(jù)的修改不會影響到應(yīng)用程序的運行,具有高度的數(shù)據(jù)獨立性。2.數(shù)據(jù)與其代表的語義是分不開的,在存儲數(shù)據(jù)的同時必須知道數(shù)據(jù)所代表的語義。3.數(shù)據(jù)庫管理系統(tǒng)從軟件的分類角度來說,屬于計算機系統(tǒng)軟件。二、判斷題(

)(

)(

)習(xí)題⒈數(shù)據(jù)庫系統(tǒng)的簡稱是()。A.DBB.DBAC.DBSD.DBMS⒉數(shù)據(jù)庫管理員的簡稱是()。A.DBB.DBAC.DBSD.DBMS三、單選題習(xí)題1.體現(xiàn)“數(shù)據(jù)庫”這個概念的意思表示有()。A.數(shù)據(jù)庫是數(shù)據(jù)的集合B.數(shù)據(jù)庫中的數(shù)據(jù)不是雜亂無章的,而是有組織的C.數(shù)據(jù)庫中存儲的數(shù)據(jù)量通常是海量的D.數(shù)據(jù)庫通常是持久存儲的2.瀏覽器/服務(wù)器結(jié)構(gòu),與客戶機/服務(wù)器結(jié)構(gòu)比較,其主要優(yōu)點有()。A.統(tǒng)一的客戶機界面,減少了應(yīng)用安裝和維護的工作量。B.基于Web技術(shù),支持互聯(lián)網(wǎng)應(yīng)用C.用戶訪問無地域限制,安全性高D.應(yīng)用系統(tǒng)通常運行在Internet之上,成本低廉。四、多選題習(xí)題1.數(shù)據(jù)庫技術(shù)發(fā)展到數(shù)據(jù)庫管理階段,呈現(xiàn)出哪些特點?2.DBMS的基本功能有哪些?五、簡答題在學(xué)校所在市區(qū)或戶籍所在地范圍內(nèi),聯(lián)系一家使用MicrosoftSQLServer數(shù)據(jù)庫或其他數(shù)據(jù)庫產(chǎn)品的科技類公司,完成認知學(xué)習(xí)。要求:(1)了解公司的崗位設(shè)置情況。(2)了解從事數(shù)據(jù)庫工作的人員情況。六、實踐題【謝謝觀看】謝謝觀看數(shù)據(jù)庫SQLServer/SQlite教程授課教師:第2章關(guān)系數(shù)據(jù)模型與關(guān)系運算數(shù)據(jù)模型是數(shù)據(jù)庫中數(shù)據(jù)的存儲方式,是數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ),它描述了數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作以及語義約束。一般分為概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型兩類,它們從不同的層次對現(xiàn)實世界中的數(shù)據(jù)特征進行抽象,從而可以將現(xiàn)實世界數(shù)據(jù)表達并存儲到數(shù)據(jù)庫系統(tǒng)中。數(shù)據(jù)庫歷史上迄今為止最流行的數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型,深入了解和理解關(guān)系數(shù)據(jù)模型是掌握數(shù)據(jù)庫技術(shù)的前提。第2章

關(guān)系數(shù)據(jù)模型與關(guān)系運算2.1數(shù)據(jù)模型概述目錄2.2關(guān)系數(shù)據(jù)模型2.3關(guān)系運算2.1數(shù)據(jù)模型概述模型(Model)是對現(xiàn)實世界特征的抽象。數(shù)據(jù)模型也是一種模型,只不過它關(guān)心的是現(xiàn)實世界的數(shù)據(jù)特征。2.1

數(shù)據(jù)模型概述數(shù)據(jù)模型(datamodel)是對現(xiàn)實世界數(shù)據(jù)特征的抽象,例如數(shù)據(jù)的組成、數(shù)據(jù)之間的聯(lián)系等。現(xiàn)實世界中的實體不僅具有數(shù)據(jù)特征,還具有其他特征,如行為特征等。但對于數(shù)據(jù)模型而言,它只關(guān)心實體的數(shù)據(jù)特征。例如,“商品”是現(xiàn)實世界中的一個實體,數(shù)據(jù)模型關(guān)心的是“商品”這個實體由哪些屬性來描述(如品名、規(guī)格、計量單位、價格、重量、產(chǎn)地等),它與其他實體之間有何聯(lián)系(如與“工廠”之間存在著制造關(guān)系等)等內(nèi)容。早期,一般把數(shù)據(jù)模型僅理解為數(shù)據(jù)結(jié)構(gòu),而現(xiàn)代則認為數(shù)據(jù)模型不僅提供數(shù)據(jù)表示的手段,還提供數(shù)據(jù)操作的類型和方法。綜上所述,數(shù)據(jù)模型是描述現(xiàn)實世界實體、實體之間的聯(lián)系以及語義約束的模型。2.1.1

數(shù)據(jù)模型的定義根據(jù)對現(xiàn)實世界數(shù)據(jù)抽象層次的不同,可分概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型兩種。兩種數(shù)據(jù)模型之間的關(guān)系如圖2-1所示。2.1.2

數(shù)據(jù)模型的分類圖2-1概念數(shù)據(jù)模型與結(jié)構(gòu)數(shù)據(jù)模型之間的關(guān)系概念數(shù)據(jù)模型,又稱語義數(shù)據(jù)模型,強調(diào)從用戶的角度來描述現(xiàn)實世界的數(shù)據(jù)特征,著重于對實際數(shù)據(jù)需求的獲取和表達。應(yīng)該簡單、清晰、易于用戶理解。結(jié)構(gòu)數(shù)據(jù)模型,又稱邏輯數(shù)據(jù)模型,是用戶從數(shù)據(jù)庫看到的模型,強調(diào)從數(shù)據(jù)庫的角度來進行數(shù)據(jù)建模,具體表現(xiàn)為網(wǎng)狀數(shù)據(jù)模型、層次數(shù)據(jù)模型等等。數(shù)據(jù)庫的邏輯結(jié)構(gòu),包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)約束等三個要素。結(jié)構(gòu)數(shù)據(jù)模型是DBMS的邏輯基礎(chǔ),任何一個DBMS都是基于某種特定的結(jié)構(gòu)數(shù)據(jù)模型的,既要面向用戶,又要面向系統(tǒng)。2.1.2

數(shù)據(jù)模型的分類當(dāng)今這個數(shù)據(jù)時代,數(shù)據(jù)來源繁多,增長速度快,經(jīng)常面臨數(shù)據(jù)需求的變化,如何高效快捷地從繁雜的數(shù)據(jù)中獲取信息,涉及數(shù)據(jù)建模的問題。在數(shù)據(jù)庫領(lǐng)域已經(jīng)提出了多種概念數(shù)據(jù)模型建模的方法,其中最著名和最流行的是E-R模型。E-R模型(Entity-RelationshipModel,實體-聯(lián)系模型)是由美國路易斯安那州立大學(xué)的華裔教授PeterP.Chen于1976年提出的。E-R模型提供不受任何DBMS約束的面向用戶的表達方法,建模思想簡單,語義表達能力強,一經(jīng)推出,立即受到了工業(yè)界的歡迎,在數(shù)據(jù)庫設(shè)計中被廣泛用作數(shù)據(jù)建模的工具。E-R模型的核心思想是將現(xiàn)實世界中的所有數(shù)據(jù)都表示為實體,然后在實體與實體之間建立相應(yīng)的聯(lián)系,并最終通過建立E-R圖來表示所有的數(shù)據(jù)語義。2.1.3

E-R模型E-R模型的構(gòu)成要素,首先是實體和聯(lián)系,其次是實體和聯(lián)系都有其相應(yīng)的屬性,因此E-R模型的組成包括三個要素:實體、聯(lián)系和屬性。2.1.3

E-R模型1.E-R模型的組成1)2)3)實體(Entity)聯(lián)系(Relationship)屬性(Attribute)1)實體(Entity)實體是現(xiàn)實世界中可標(biāo)識的對象,可以是物理實體,也可以是抽象實體。實體的一個重要特征是它在現(xiàn)實世界是可以唯一標(biāo)識的,如果不能唯一標(biāo)識,則必須進一步分解。此外,實體具有相應(yīng)的實體名。2.1.3

E-R模型1.E-R模型的組成2)聯(lián)系(Relationship)在E-R模型中,聯(lián)系是實體與實體之間的某種關(guān)聯(lián),通過連線表示出來。聯(lián)系也具有相應(yīng)的聯(lián)系名。在E-R模型中,實體之間的聯(lián)系分三種類型:(1)一對一聯(lián)系,是指一個實體A只能與一個實體B發(fā)生聯(lián)系,反之亦然。表示為1:1或1-1。(2)一對多聯(lián)系,是指實體A和實體B存在1:N聯(lián)系,指一個實體A可以與一個或多個實體B發(fā)生聯(lián)系,但一個實體B只能與一個實體A發(fā)生聯(lián)系。表示為1:N或1-N。(3)多對多聯(lián)系,是指實體A與實體B存在M:N聯(lián)系,指一個實體A可以與一個或多個實體B發(fā)生聯(lián)系,反之,一個實體B也可以與一個或多個實體A發(fā)生聯(lián)系。表示為M:N或M-N。2.1.3

E-R模型1.E-R模型的組成3)屬性(Attribute)實體內(nèi)部和實體之間的聯(lián)系都可以擁有一些描述自身特征的數(shù)據(jù)項,稱為屬性。實體內(nèi)部通常有多個屬性,構(gòu)成一個屬性集。在這些屬性中,可以唯一標(biāo)識實體屬性的就是實體的碼。實體之間的聯(lián)系本身也可以有描述屬性。屬性一般具有一個屬性名和一個域。域代表了屬性可以取值的一個范圍。2.1.3

E-R模型1.E-R模型的組成E-R模型通過建立由實體、聯(lián)系和屬性構(gòu)成的E-R圖來描述現(xiàn)實世界的數(shù)據(jù)需求,因此E-R模型也稱為E-R圖。E-R圖的基本符號,實體集用矩形框表示,實體的屬性用橢圓框表示,實體間的聯(lián)系用菱形框表示,并附上相應(yīng)的名稱。如圖2-2所示。2.1.3

E-R模型2.E-R模型的符號圖2-2E-R模型的基本符號例如,一個公司業(yè)務(wù)流程的E-R模型設(shè)計,如圖2-3所示。在該應(yīng)用中,有四個實體:供應(yīng)商、原材料、商品、客戶。原材料與供應(yīng)商是M:N的聯(lián)系,商品與客戶是1:N的聯(lián)系。2.1.3

E-R模型2.E-R模型的符號圖2-3某公司業(yè)務(wù)流程E-R圖示例完成了各個底層子系統(tǒng)的E-R模型之后,下一步將進行E-R模型的集成和優(yōu)化。方法是,首先找出公共實體,然后基于公共實體進行合并,最后消除合并過程中出現(xiàn)的各種沖突。E-R模型在集成的過程中,可能出現(xiàn)的沖突大致有:(1)屬性沖突。屬性沖突主要表現(xiàn)為屬性的類型沖突或值沖突。需要在集成時進一步統(tǒng)一化處理。(2)結(jié)構(gòu)沖突。結(jié)構(gòu)沖突有三種表現(xiàn)形式:實體屬性集不同、聯(lián)系類型集不同、同一對象在不同應(yīng)用中的抽象不同。需要仔細分析,要么合并,要么統(tǒng)一。(3)命名沖突。命名沖突包括同名異義和異名同義兩種情形。無論實體、聯(lián)系還是屬性都有可能出現(xiàn),需要通過認真核對,發(fā)現(xiàn)并解決。2.1.3

E-R模型3.E-R模型的集成與優(yōu)化E-R模型在優(yōu)化過程中,可能出現(xiàn)的情形大致有:(1)合并實體。合并實體的目的是減少實體的數(shù)量。能否合并,還要看系統(tǒng)的性能需求和設(shè)計需求之間如何折中取舍。(2)消除冗余屬性。底層子系統(tǒng)E-R圖中一般不存在冗余,但集成后可能產(chǎn)生冗余屬性。有兩種情況:同一非碼屬性出現(xiàn)在幾個實體中,一個屬性可從其他屬性值中導(dǎo)出。(3)消除冗余聯(lián)系。所謂冗余聯(lián)系,指的是兩個實體之間的聯(lián)系,可以通過其他的聯(lián)系推理得到。2.1.3

E-R模型3.E-R模型的集成與優(yōu)化2.2關(guān)系數(shù)據(jù)模型關(guān)系數(shù)據(jù)模型(RelationalDataModel,以下簡稱關(guān)系模型),于1970年由美國IBM公司的E.F.Codd(考特)提出,奠定了關(guān)系數(shù)據(jù)理論的基礎(chǔ)。2.2

關(guān)系數(shù)據(jù)模型關(guān)系模型是以規(guī)范化的二維表格結(jié)構(gòu)表示實體,以外碼表示實體間聯(lián)系,以三類完整性表示語義約束的數(shù)據(jù)模型。關(guān)系模型示例,如圖2-4所示,涉及一些術(shù)語,包括元組、屬性、關(guān)系等。2.2.1

關(guān)系模型的相關(guān)概念圖2-4關(guān)系模型的相關(guān)概念示例在關(guān)系模型中,所有實體都表示在一個二維表格結(jié)構(gòu)中,每一個實體表示為表格中的一行,稱為一個元組(Tuple)。元組的數(shù)目稱為關(guān)系的基數(shù)。元組本質(zhì)上是數(shù)據(jù),是一系列屬性值的集合。所有元組的集合構(gòu)成一個關(guān)系(Relation)。從形式上看,關(guān)系是二維表格中除表頭部分的數(shù)據(jù)行的集合,關(guān)系是關(guān)系模型中表示和組織數(shù)據(jù)的唯一形式。需要說明的是,面向?qū)ο髷?shù)據(jù)模型中的基本數(shù)據(jù)結(jié)構(gòu)——對象,與關(guān)系數(shù)據(jù)模型中的元組類似,但對象之間存在繼承、聚合、引用等復(fù)雜聯(lián)系,因此要比關(guān)系復(fù)雜許多。2.2.1

關(guān)系模型的相關(guān)概念表的表頭給出了所有元組的語義,代表整個關(guān)系的模式,稱為關(guān)系模式(RelationalSc-hema)。從形式上看,關(guān)系模式對應(yīng)二維表格的表頭,它描述了關(guān)系的邏輯結(jié)構(gòu)和特征;關(guān)系模式可以簡化表示,例如供應(yīng)商關(guān)系模式簡化表示為Supplier(gysnumber,gysname,telephone,address,materialnumber)。數(shù)據(jù)和語義是不可分的,脫離了語義的數(shù)據(jù)是沒有意義的。關(guān)系的語義通過關(guān)系模式來定義。表格的每一列稱為一個屬性(Attribute),屬性有一個屬性名及相應(yīng)的域。屬性的數(shù)目稱為關(guān)系模式的度(Degree),元組的每一個值稱為屬性值。2.2.1

關(guān)系模型的相關(guān)概念關(guān)系數(shù)據(jù)庫模式(RelationalDatabaseSchema)用于描述整個關(guān)系數(shù)據(jù)庫的邏輯結(jié)構(gòu)和特征。關(guān)系數(shù)據(jù)庫模式的一個實例稱為關(guān)系數(shù)據(jù)庫。在關(guān)系模型中涉及幾個碼的概念:超碼(SupperKey):關(guān)系模式中能夠唯一區(qū)分每個元組的屬性集合。候選碼(CandidateKey):不含多余屬性的超碼。它是唯一區(qū)分元組的最小屬性集。例如,職工關(guān)系模式中,職工號和身份證號都可以唯一區(qū)分職工,都是候選碼。主碼(PrimaryKey):用戶選定的作為元組標(biāo)識的候選碼,其他的候選碼稱為替換碼(AlternateKey)。主碼在E-R圖中以屬性名加下劃線表示。2.2.1

關(guān)系模型的相關(guān)概念關(guān)系模型是以二維表格形式的關(guān)系為基本數(shù)據(jù)結(jié)構(gòu),必須滿足一定的規(guī)范,因此關(guān)系是規(guī)范化的二維表格,表現(xiàn)為以下幾個性質(zhì):(1)屬性值不可分解:每個屬性值都是單一值,不能是一個值集。通俗地講,就是不允許關(guān)系表中表。(2)元組不可重復(fù):這是指任何關(guān)系中都不允許存在重復(fù)元組。(3)關(guān)系沒有行序:這是指任何關(guān)系的元組之間沒有順序。(4)關(guān)系沒有列序:這是指任何關(guān)系的屬性列之間沒有順序。2.2.2

關(guān)系的幾個性質(zhì)4.用戶自定義完整性2.參照完整性3.域完整性1.實體完整性關(guān)系模型通過三類完整性約束來表達數(shù)據(jù)的語義約束。完整性約束(IntegralConstrait)也稱完整性規(guī)則(IntegralRule),是關(guān)系模式必須滿足的一些謂詞條件,體現(xiàn)為具體領(lǐng)域中的語義約束。依據(jù)完整性約束,關(guān)系模型可以表達豐富的語義約束條件。2.2.3

關(guān)系模型的完整性約束實體完整性(EntityIntegrity)也稱行完整性,是指關(guān)系模式的任一關(guān)系的主屬性值(候選碼)不可為空。圖2-5給出了實體完整性的一個示例。1.實體完整性2.2.3

關(guān)系模型的完整性約束圖中顯示了一個采購關(guān)系,它的唯一候選碼,即主碼為{采購員編號,供應(yīng)商編號},因此主屬性是采購員編號和供應(yīng)商編號。所謂實體完整性,即要求關(guān)系的每一個元組的主屬性都不能為空。圖2-5實體完整性示例參照完整性(ReferentialIntegerity)也稱引用完整性,定義在兩個關(guān)系模式之上,涉及外碼概念,用于保證相關(guān)表中數(shù)據(jù)的一致性。關(guān)系模式R的外碼(ForeignKey)是指它的一個屬性集FK,滿足兩個條件:存在帶有候選碼CK的關(guān)系模式S;R的任一非空FK值都在S的CK中有一個相同的值。我們把S稱為被參照關(guān)系(ReferencedRelation),R稱為參照關(guān)系(ReferentialRelation)。圖2-6為一個外碼的示例。2.參照完整性2.2.3

關(guān)系模型的完整性約束圖2-6關(guān)系模式的外碼示例圖2-6中被參照關(guān)系是S(主表),采購員編號是主碼,參照關(guān)系R(子表),采購員編號是外碼。換句話說,R的外碼值(“采購員編號”)必須等于S中所參照的候選碼(“采購員編號”)的某個值,或者為空。為空的前提是外碼不是主屬性,因為主屬性不能為空。以圖2-6為例,如果在“采購”關(guān)系中插入一個新元組{d04,004,150},則違背了參照完整性,操作將被DBMS拒絕。原因是004這個“采購員編號”在S中不存在。參照完整性和實體完整性都是為了保證數(shù)據(jù)庫中的數(shù)據(jù)與現(xiàn)實世界的真實情況一致。2.參照完整性2.2.3

關(guān)系模型的完整性約束實體完整性和參照完整性給出了針對主碼和外碼的語義約束,但實際應(yīng)用還常常要求對一些非碼屬性添加完整性約束,因此,在關(guān)系模型中引入了第三類完整性約束。域完整性也稱列完整性,是指定列的輸入有效性,通過限制列的類型、格式、可能值的范圍等方法加以實現(xiàn)。通常以不等式、等式等給出,并且可以通過邏輯操作符連接多個謂詞條件。如,材料規(guī)格,只能是有限的幾個規(guī)格{111,121,211,333},除此之外,都是不被允許的,可以使用“規(guī)格in{111,121,211,333}”這樣的表達式來定義約束。3.域完整性2.2.3

關(guān)系模型的完整性約束這是用戶根據(jù)實際應(yīng)用的需要而自行定義的數(shù)據(jù)完整性。所有完整性類別都支持用戶定義完整性,包括CreateTable中所有列級約束和表級約束、存儲過程、觸發(fā)器。例如,在訂單表中,發(fā)貨日期不能早于訂貨日期,因此,在使用Update或Insert操作創(chuàng)建觸發(fā)器時,定義發(fā)貨日期>訂貨日期,否則出錯并回滾事務(wù)。4.用戶自定義完整性2.2.3

關(guān)系模型的完整性約束2.3關(guān)系運算關(guān)系運算是關(guān)系模型數(shù)據(jù)操作的主要實現(xiàn)方式,分為兩類:一類是傳統(tǒng)的集合運算(并、差、交、笛卡爾積),另一類是專門的關(guān)系運算(選擇、投影、連接等)。任何關(guān)系運算的結(jié)果仍然是一個關(guān)系,有些查詢需要幾個基本運算的組合,要經(jīng)過若干步驟才能完成。關(guān)系運算操作有兩種類型:一元操作和二元操作,一元操作是指只有一個運算對象的操作,二元操作是指有兩個運算對象的操作,如并、交、差等操作。用戶對關(guān)系運算的操作需求,表現(xiàn)為關(guān)系表達式。2.3

關(guān)系運算已知關(guān)系R和關(guān)系S如圖2-7所示,其4種集合操作如下:(1)并(Union)。R和S具有相同的結(jié)構(gòu),運算符∪,記為T=R∪S。(2)差(Difference)。R和S的差是由屬于R但不屬于S的元組組成的集合,運算符-,記為T=R-S。(3)交(Intersection)。R和S的交是由既屬于R又屬于S的元組組成的集合,運算符為∩,記為T=R∩S。(4)笛卡爾積。R和S的笛卡爾積是R和S的元組兩兩任意組合而得到的結(jié)果,運算符為×,記為T=R×S。上述四種運算結(jié)果如圖2-8所示。2.3

關(guān)系運算1.集合運算圖2-7關(guān)系R和S2.3

關(guān)系運算1.集合運算圖2-8關(guān)系R和S的四種集合運算結(jié)果專門的關(guān)系運算包括選擇、投影、連接和除法運算。假設(shè)關(guān)系R和S如圖2-9所示,下面討論專門的關(guān)系運算。2.3

關(guān)系運算2.專門的關(guān)系運算圖2-9關(guān)系R和S從關(guān)系中找出滿足給定條件的元組的操作(Where),其中條件是以邏輯表達式給出,值為真的元組將被選取。這種運算是從水平方向抽取元組。例如:select*fromRwhereBin(12,32)運算結(jié)果如圖2-10所示。2.3

關(guān)系運算2.專門的關(guān)系運算圖2-10關(guān)系R和S的選擇運算結(jié)果1)選擇從關(guān)系模式中指定若干個屬性組成新的關(guān)系,這是從列的方向進行的運算。例如:selectA,BfromR運算結(jié)果如圖2-11所示。2.3

關(guān)系運算2.專門的關(guān)系運算圖2-11關(guān)系R和S的投影運算結(jié)果圖2-11關(guān)系R和S的投影運算結(jié)果2)投影將兩個關(guān)系模式拼接成一個更寬的關(guān)系模式,生成的新關(guān)系中包含滿足聯(lián)系條件的組合(InnerJoin)。運算過程是通過連接條件來控制的,連接條件中將出現(xiàn)兩個關(guān)系中的公共屬性名或具有相同語義、可比的屬性。2.3

關(guān)系運算2.專門的關(guān)系運算3)連接(1)自然連接。自然連接是去掉重復(fù)屬性的等值連接,是最常用的連接運算,在關(guān)系運算中起重要作用。(2)等值連接。在連接運算中,按照字段值對應(yīng)相等為條件進行的連接操作,稱為等值連接。例如:selectA,B,C,E,FfromR,SwhereR.A=S.A運算結(jié)果如圖2-12所示。2.3

關(guān)系運算2.專門的關(guān)系運算圖2-11關(guān)系R和S的投影運算結(jié)果3)連接選擇和投影運算都屬于一元操作,它們的操作對象只是一個關(guān)系。連接運算是二元操作,需要兩個關(guān)系作為操作對象。2.3

關(guān)系運算2.專門的關(guān)系運算3)連接習(xí)題1.數(shù)據(jù)模型是描述現(xiàn)實世界

及它們之間的

、

的模型。2.根據(jù)對現(xiàn)實世界數(shù)據(jù)

的不同,數(shù)據(jù)模型可分概念數(shù)據(jù)模型和

數(shù)據(jù)模型兩種。3.關(guān)系模型是以規(guī)范化的

結(jié)構(gòu)表示實體,以

表示實體間聯(lián)系,以

表示語義約束的數(shù)據(jù)模型。一、填空題習(xí)題1.概念數(shù)據(jù)模型,又稱語義數(shù)據(jù)模型,強調(diào)從用戶的角度來描述現(xiàn)實世界的數(shù)據(jù)特征。2.從形式上看,關(guān)系模式對應(yīng)二維表格的表頭,它描述了關(guān)系的邏輯結(jié)構(gòu)和特征。3.關(guān)系數(shù)據(jù)庫模式的一個實例稱為關(guān)系數(shù)據(jù)庫。二、判斷題(

)(

)(

)習(xí)題1.關(guān)系模式中能夠唯一區(qū)分每個元組的屬性集合是()。A.超碼B.候選碼C.主碼D.替換碼2.關(guān)系模式的任一關(guān)系的主屬性值(候選碼)不可為空,是()。A.實體完整性B.參照完整性C.自定義完整性D.域完整性三、單選題單選題剩余習(xí)題見教材24頁習(xí)題1.E-R模型的組成要素有()。A.實體B.聯(lián)系C.屬性D.符號2.在E-R模型中,實體之間的聯(lián)系的類型有()。A.1:1聯(lián)系B.1:N聯(lián)系C.M:M聯(lián)系D.M:N聯(lián)系3.E-R模型在集成過程中,可能出現(xiàn)的沖突大致有()。A.實體沖突B.屬性沖突C.結(jié)構(gòu)沖突D.命名沖突4.關(guān)系是規(guī)范化的二維表格,其性質(zhì)有()。A.屬性值不可分解B.元組不可重復(fù)C.關(guān)系沒有行序D.關(guān)系沒有列序四、多選題習(xí)題依據(jù)數(shù)據(jù)模型的基本理論,以某一科技類公司為例,了解并熟悉該公司的業(yè)務(wù)部門及其業(yè)務(wù)流程。要求:(1)設(shè)計出至少3個分E-R圖。(2)合并分E-R圖。五、實踐題【謝謝觀看】謝謝觀看數(shù)據(jù)庫SQLServer/SQlite教程授課教師:第3章數(shù)據(jù)庫基礎(chǔ)計算機信息管理技術(shù)和信息管理應(yīng)用系統(tǒng)的發(fā)展,為數(shù)據(jù)庫理論和數(shù)據(jù)庫應(yīng)用系統(tǒng)的發(fā)展提供了強大的推動力,無論是基于C/S模式還是基于B/S模式信息管理系統(tǒng)的開發(fā)都離不開數(shù)據(jù)庫系統(tǒng),不論是加入許多新特性的VisualFoxpro數(shù)據(jù)庫,還是SQLServer、Oracles、MySQL、Sybase等數(shù)據(jù)庫,在微型計算機上得到了推廣運用,服務(wù)于人們的學(xué)習(xí)和工作。第3章

數(shù)據(jù)庫基礎(chǔ)目錄3.1SQLServer數(shù)據(jù)庫管理系統(tǒng)3.2SQLServerManagementStudio的使用3.3標(biāo)識符概述3.4SQLServer內(nèi)置系統(tǒng)數(shù)據(jù)庫3.5SQLServer系統(tǒng)內(nèi)置函數(shù)3.1SQLServer數(shù)據(jù)庫管理系統(tǒng)SQLServer是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,于1988年推出了第一個OS/2版本,隨后推出了SQLServer7.0、SQLServer2000、SQLServer2008、SQLServer2015、SQLServer2019等版本。本書以SQLServer2008R2為例,介紹SQLServer。SQLServer2008R2是Microsoft公司2010年推出的SQLServer數(shù)據(jù)庫管理系統(tǒng),它可以將結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化文檔的數(shù)據(jù)(如圖像和音樂)直接存儲到數(shù)據(jù)庫中,提供了豐富的集成服務(wù),可以對數(shù)據(jù)進行查詢、搜索、同步、報告和分析之類的操作。數(shù)據(jù)可以存儲在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器一直到桌面計算機和移動設(shè)備。3.1.1

SQLServer概述SQLServer2008R2提供一個可信的、高效率的智能數(shù)據(jù)平臺,允許您在使用Microsoft.NET和VisualStudio開發(fā)的自定義應(yīng)用程序中使用數(shù)據(jù)。SQLServer2008R2提供的版本有企業(yè)版、標(biāo)準(zhǔn)版、開發(fā)版、學(xué)習(xí)版等版本。本書以學(xué)習(xí)版為例,學(xué)習(xí)版是SQLServer的一個免費版本。3.1.1

SQLServer概述SQLServer2008R2支持32位和64位操作系統(tǒng),這里主要介紹SQLServer2008R2

64位的安裝需求。3.1.2

SQLServer2008R2的安裝1.安裝需求2)軟件需求1)硬件需求安裝需求(1)處理器:PentiumⅢ兼容處理器或處理速度更快的處理器。CPU最低為1.0GHz,建議≥2.0GHz。(2)內(nèi)存:最小512MB,建議≥2GB。(3)硬盤:在安裝SQLServer2008R2時,需要系統(tǒng)驅(qū)動器提供至少2.0GB的可用磁盤空間用來存儲WindowsInstaller創(chuàng)建的安裝臨時文件。安全安裝SQLServer2008R2需要約2.0GB磁盤空間,以下是SQLServer2008R2各組件磁盤空間需求情況,如表3-1所示(表3-1見教材28頁)。(4)顯示器:VGA或更高分辨率,SQLServer圖形工具要求1024×768像素或更高分辨率。3.1.2

SQLServer2008R2的安裝1.安裝需求1)硬件需求(1)框架支持:安裝SQLServer2008R2所需的軟件組件有SQLServerNativeClient(SQLServer本地客戶端);.NETFramework3.5SP1(.NET框架);SQLServer2008R2安裝程序支持文件。(2)軟件:MicrosoftWindowsInstaller4.5或更高版本。Microsoft數(shù)據(jù)訪問組件(MDAC)2.8SP1或更高版本。(3)操作系統(tǒng):Windows10操作系統(tǒng)。3.1.2

SQLServer2008R2的安裝1.安裝需求2)軟件需求以Windows10為操作系統(tǒng)平臺,SQLServer2008R2學(xué)習(xí)版安裝文件已經(jīng)下載到D盤的sq文件夾,其安裝過程如下:(1)展開D:\sq文件夾,雙擊“setup應(yīng)用程序”安裝,出現(xiàn)如圖3-2所示。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-2啟動SQLServer2008R2安裝文件(2)如果出現(xiàn)Microsoft.NETFramework安裝對話框,則勾選接受許可并安裝。必備組件安裝完成后,安裝向?qū)нM入“SQLServer安裝中心”,如圖3-3所示。單擊“全新安裝或向現(xiàn)有安裝添加功能”選項,安裝向?qū)нM行“安裝程序支持規(guī)則”檢查。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-3SQLServer2008R2安裝中心界面(3)通過安裝程序支持規(guī)則檢查以后,進入“許可條款”操作界面,勾選“我接受許可條款”,如圖3-4所示。再次檢查安裝程序支持文件,如果通過則進入“功能選擇”界面。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-4許可條款界面(4)在如圖3-5所示的“功能選擇”界面,單擊“全選”按鈕,單擊“下一步”,進入“實例配置”界面。注意:“共享功能目錄”的文件夾不可以更改,否則安裝過程出錯。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-5功能選擇界面3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-6實例配置界面(5)在如圖3-6所示的“實例配置”界面,用戶可以使用默認實例名MSSQLSERVER,也可以選擇命名實例SQLExpress,實例根目錄為C:\ProgramFiles\MicrosoftSQLServer\,單擊“下一步”進入“服務(wù)器配置”界面。(6)在“服務(wù)器配置”界面,根據(jù)選擇的安裝功能指定SQLServer服務(wù)的登錄賬戶。可以為所有SQLServer服務(wù)分配相同的登錄賬戶,也可以分別配置每個服務(wù)賬戶,還可以指定服務(wù)類型為自動、手動或禁用。如圖3-7所示。單擊“對所有SQLServer服務(wù)使用相同的賬戶(U)”彈出對話框,單擊“瀏覽...”選擇賬戶,設(shè)置密碼。單擊“下一步”進入“數(shù)據(jù)庫引擎配置”界面。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-7服務(wù)器配置界面(7)在“數(shù)據(jù)庫引擎配置”界面,可以設(shè)置SQLServer實例的身份驗證模式為Windows身份驗證模式或混合模式。在“指定SQLServer管理員”欄,必須至少指定一個系統(tǒng)管理員,也可以添加或刪除賬戶。如圖3-8所示。單擊“下一步”進入“ReportingServices配置”界面。可以采用混合模式,SQLServer身份驗證和WINDOWS身份驗證兩種,為SQLServer系統(tǒng)管理員SA賬戶指定密碼。為后續(xù)的第9章的學(xué)習(xí)作好準(zhǔn)備。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-8數(shù)據(jù)庫引擎配置界面(8)“ReportingServices配置”界面,指定要創(chuàng)建的ReportingServices安裝的類型:安裝本機模式默認配置、安裝SharePoint集成模式默認配置、安裝但不配置ReportingServices,如圖3-8所示。單擊“下一步”進入“錯誤報告”界面,單擊“下一步”,進入“安裝規(guī)則”界面,然后進入“安裝進度”界面。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-9ReportingServices配置界面(9)在“安裝進度”界面,監(jiān)視安裝進度,如圖3-10所示。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-10安裝進度界面(10)安裝完成后,“完成”頁會提供指向安裝日志文件摘要以及其他重要說明的鏈接。提示已完成SQLServer安裝過程,單擊“關(guān)閉”按鈕。如圖3-11所示。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-11安裝完成界面3.2SQLServerManagementStudio的使用SQLServerManagementStudio(簡稱SSMS)是一個訪問、配置和管理所有SQLServer組件(數(shù)據(jù)庫引擎、AnalysisServices、IntegrationServices、ReportingServices和XQuery等)的集成環(huán)境,提供用于配置、監(jiān)視和管理SQL實例的工具,使用SSMS部署、監(jiān)視和升級應(yīng)用程序使用的數(shù)據(jù)層組件,以及生成查詢和腳本,為各種技術(shù)水平的開發(fā)人員和管理員通過易用的圖形工具和豐富的腳本編輯器使用和管理SQLServer。3.2

SQLServerManagementStudio的使用在使用SQLServer2008R2數(shù)據(jù)庫管理系統(tǒng)之前,必須先啟動SQLServer服務(wù)。下面介紹兩種啟動SQLServer服務(wù)的方法。3.2.1

啟動SQLServer2008R2服務(wù)器

1.使用SQLServer配置管理器啟動服務(wù)2.使用Windows服務(wù)管理器啟動服務(wù)啟動SQLServer服務(wù)的方法SQLServer配置管理器是一種用于管理與SQLServer相關(guān)聯(lián)的服務(wù)、配置SQLServer使用的網(wǎng)絡(luò)協(xié)議以及從SQLServer客戶端計算機管理網(wǎng)絡(luò)連接配置的工具。打開SQLServer配置管理器:開始→所有程序→單擊“MicrosoftSQLServer2008R2”展開→單擊“配置工具”展開→SQLServer配置管理器,如圖3-12所示。在SQLServer配置管理器中單擊“SQLServer服務(wù)”,在詳細信息窗格中,右鍵單擊“SQLServer(SQLEXPRESS)”,彈出菜單,然后單擊“啟動”即可,反之則可停止。同理,可以啟動或停止其他SQLServer服務(wù)(如Analysis、Reporting)。3.2.1

啟動SQLServer2008R2服務(wù)器1.使用SQLServer配置管理器啟動服務(wù)圖3-12SQLServer配置管理器打開Windows服務(wù)管理:在桌面上選中“我的電腦”,右擊鼠標(biāo)彈出快捷菜單選擇“管理”打開“計算機管理”操作界面,單擊“服務(wù)和應(yīng)用程序”→雙擊“SQLServer配置管理器”→雙擊“SQLServer服務(wù)”展開→右擊“SQLServer(SQLEXPRESS)”→彈出快捷菜單,單擊“啟動”,即可啟動SQLServer服務(wù),如圖3-13所示。執(zhí)行類似的操作可以啟動其他的選項。3.2.1

啟動SQLServer2008R2服務(wù)器2.使用Windows服務(wù)管理器啟動服務(wù)圖3-13計算機管理啟動SQLServer服務(wù)單擊“開始”→“所有程序”→單擊展開“MicrosoftSQLServer2008R2”→單擊“SQL

ServerManagementStudio”,如圖3-14所示。3.2.2

啟動SQLServerManagementStudio圖3-14SQLServerManagementStudio登錄窗口在“連接到服務(wù)器”對話框中需要指定服務(wù)器類型、服務(wù)器名稱、身份驗證。其中,服務(wù)器類型有“數(shù)據(jù)庫引擎”“AnalysisServices”“ReportingServices”“IntegrationServices”等選項。服務(wù)器名稱:服務(wù)器名稱\實例名稱,如xwq123\SQLEXPRESS。身份驗證:可設(shè)置“Windows身份驗證”和“SQLServer身份驗證”兩種。SQLServerManagementStudio不僅可以連接本地數(shù)據(jù)庫服務(wù)器,還可以連接遠程數(shù)據(jù)庫服務(wù)器,并將其顯示在同一工作界面上。單擊圖3-14所示的“連接到服務(wù)器”界面中的“連接”按鈕,進入“MicrosoftSQLServerManagementStudio”工作界面。3.2.2

啟動SQLServerManagementStudioSSMS工作界面是一個標(biāo)準(zhǔn)的Windows界面,由標(biāo)題欄、菜單欄、工具條、屬性面板和樹窗口組成。單擊“新建查詢”,在工作窗口打開腳本文件*.sql文件,進入編輯界面,如圖3-15所示。3.2.2

啟動SQLServerManagementStudio圖3-15SQLServerManagementStudio工作界面3.3標(biāo)識符概述數(shù)據(jù)庫對象的名稱即為標(biāo)識符,SQLServer中的所有內(nèi)容都可以有標(biāo)識符。服務(wù)器、數(shù)據(jù)庫和數(shù)據(jù)庫對象(例如表、視圖、列、索引、存儲過程、觸發(fā)器、約束及規(guī)則等)也都可以有標(biāo)識符。使用標(biāo)識符要注意以下幾點:(1)標(biāo)識符必須是統(tǒng)一碼(Unicode2.0)標(biāo)準(zhǔn)中規(guī)定的字符以及其他一些語言字符(如漢字),如表3-2所示。(2)標(biāo)識符不能有空格或特殊字符_、#、@、$以外的字符。(3)標(biāo)識符不允許是Tansact-SQL的保留字。(4)標(biāo)識符長度不得超過128個字符。另外,在SQLServer中,還有許多具有特殊意義的標(biāo)識符,如表3-3所示。(表3-2、3-3見教材37頁)3.3

標(biāo)識符概述3.4SQLServer內(nèi)置系統(tǒng)數(shù)據(jù)庫啟動SQLServerManagementStudio連接數(shù)據(jù)庫引擎后,展開“數(shù)據(jù)庫”→“系統(tǒng)數(shù)據(jù)庫”文件夾,可以看到master、model、msdb和tempdb4個系統(tǒng)數(shù)據(jù)庫。具體如下:(1)master:記錄SQLServer系統(tǒng)的所有系統(tǒng)級別信息,包括登錄賬戶、系統(tǒng)配置和SQLServer初始化信息。(2)model:用于創(chuàng)建數(shù)據(jù)庫的模板。(3)msdb:供SQLServer代理程序調(diào)度警報、作業(yè)和記錄操作員時使用。(4)tempdb:保存所有的臨時表和臨時存儲過程。每次啟動時都重新創(chuàng)建tempdb,并根據(jù)需要自動增長。3.4

SQLServer內(nèi)置系統(tǒng)數(shù)據(jù)庫1.系統(tǒng)數(shù)據(jù)庫SQLServer中的服務(wù)器除了數(shù)據(jù)庫引擎外,還有AnalysisServices(分析服務(wù)器)、ReportingServices(報表服務(wù)器)等,其中報表服務(wù)器使用SQLServer數(shù)據(jù)庫引擎來存儲元數(shù)據(jù)和對象定義。為了將永久性數(shù)據(jù)存儲與臨時存儲要求分開,ReportingServices使用兩個SQLServer關(guān)系數(shù)據(jù)庫用作內(nèi)部存儲,在默認情況下,這兩個數(shù)據(jù)庫分別命名為Reportserver和ReportserverTempDB,隨報表服務(wù)器主數(shù)據(jù)庫一同創(chuàng)建,用于存儲臨時數(shù)據(jù)、會話信息和緩存的報表。根據(jù)本例的數(shù)據(jù)庫實例名SQLEXPRESS,這兩個報表數(shù)據(jù)庫名稱為“Reportserver$-SQ-LEXPRESS”和“Reportserver$SQLEXPRESSTempDB”。3.4

SQLServer內(nèi)置系統(tǒng)數(shù)據(jù)庫2.報表數(shù)據(jù)庫3.5SQLServer系統(tǒng)內(nèi)置函數(shù)為了讓用戶更方便地對數(shù)據(jù)庫進行操作,SQLServer在T-SQL中提供了許多內(nèi)置函數(shù),用戶可以通過調(diào)用內(nèi)置函數(shù)并為其提供所需要的參數(shù)來執(zhí)行一些特殊的運算或完成復(fù)雜的操作。函數(shù)其實就是一段程序代碼,T-SQL提供的函數(shù)有系統(tǒng)函數(shù)、字符串函數(shù)、日期和時間函數(shù)、數(shù)學(xué)函數(shù)、轉(zhuǎn)換函數(shù)等。3.5

SQLServer系統(tǒng)內(nèi)置函數(shù)系統(tǒng)函數(shù)用于獲取有關(guān)計算機系統(tǒng)、用戶、數(shù)據(jù)庫和數(shù)據(jù)庫對象的信息??梢栽诓恢苯釉L問系統(tǒng)表的情況下,獲取SQLServer系統(tǒng)表中的信息。用戶在得到信息后使用條件語句,根據(jù)返回的信息進行不同的操作。與其他函數(shù)一樣,可以在select語句的select和

where子句以及表達式中使用系統(tǒng)函數(shù)。系統(tǒng)函數(shù)的類型如表3-4所示(表3-4見教材38頁)。例3-1

返回圖書信息表books中bookid為1、書名title列的長度及其值的長度。代碼如下:selectcol_length('books','title')asname_col_length,datalength(title)astitle_data_lengthfrombookswherebookid=13.5.1

系統(tǒng)函數(shù)2.去空格函數(shù)4.字符串比較函數(shù)3.取子串函數(shù)1.字符轉(zhuǎn)換函數(shù)3.5.2

字符串函數(shù)字符串函數(shù)對二進制數(shù)據(jù)、字符串和表達式執(zhí)行不同的運算。此類型函數(shù)作用于char、varchar、binary和varbinary數(shù)據(jù)類型以及可以隱式轉(zhuǎn)換為char或varchar的數(shù)據(jù)類型??梢栽趕elect語句的select和where子句及表達式中使用字符串函數(shù)。字符串函數(shù)的類型如下。

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論