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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

數(shù)據(jù)1.2.2

數(shù)據(jù)庫與數(shù)據(jù)庫模式1.數(shù)據(jù)庫的概念和特點簡單地講,數(shù)據(jù)庫是一個存儲數(shù)據(jù)的倉庫。但是,這種定義肯定不準確,因為數(shù)據(jù)庫中的數(shù)據(jù)并不是隨意存放的,而是有一定的組織和類型特征。嚴格的數(shù)據(jù)庫定義為:數(shù)據(jù)庫(database,DB)是長期存儲在計算機內,有組織的、可共享的大量數(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ù)庫技術來管理,借助文件系統(tǒng)就可以實現(xiàn)。實際上,存儲的數(shù)據(jù)量越大,越能體現(xiàn)數(shù)據(jù)庫技術相對于文件系統(tǒng)的優(yōu)勢。1.2.2

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

數(shù)據(jù)庫與數(shù)據(jù)庫模式1.數(shù)據(jù)庫的概念和特點現(xiàn)實世界中海關、銀行、航空、學校等數(shù)據(jù)庫,都是面向特定應用的數(shù)據(jù)庫,不存在通用的數(shù)據(jù)庫。即便都是學校數(shù)據(jù)庫,不同的層次、類別等應用環(huán)境對數(shù)據(jù)組織、數(shù)據(jù)存儲等也會有不同的要求。例如,某高等學校中的圖書數(shù)據(jù)庫中需要存儲每一種圖書的供應商,而另一個中學學校則可能不需要保存。這些都會影響數(shù)據(jù)庫中數(shù)據(jù)的表示和組織方式。因此,數(shù)據(jù)庫一般都是專門針對某個特定應用的。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ù)的邏輯結構和特征的描述。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ù)據(jù)庫中只存儲了學生數(shù)據(jù)。圖1-4的左邊顯示了使用關系數(shù)據(jù)模型表示的數(shù)據(jù)庫結構與內容,即數(shù)據(jù)庫中的數(shù)據(jù)一般都是按某種數(shù)據(jù)模型進行組織的;右邊則分別顯示了對應的數(shù)據(jù)庫和數(shù)據(jù)庫模式。關系數(shù)據(jù)模型是目前最流行的數(shù)據(jù)模型,現(xiàn)有的數(shù)據(jù)庫產(chǎn)品大多是基于關系數(shù)據(jù)庫模型,其基本數(shù)據(jù)結構就是圖1-4左邊顯示的二維表格。但是,二維表格本身包含了表頭和表體(即下面的數(shù)據(jù)行),從概念上講,二維表格的表頭表示了下方數(shù)據(jù)行的語義,所對應的結構就是此二維表格的模式,此模式就是一個數(shù)據(jù)庫模式),而表體(即下方的數(shù)據(jù)行集合)則構成了數(shù)據(jù)庫,即一個數(shù)據(jù)的集合。2.數(shù)據(jù)庫模式1.2.3

數(shù)據(jù)庫管理系統(tǒng)隨著數(shù)據(jù)庫技術的豐富和發(fā)展,數(shù)據(jù)庫管理系統(tǒ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ù)資源。也就是說,當涉及底層的磁盤操作時,數(shù)據(jù)庫管理系統(tǒng)通常利用操作系統(tǒng)提供的磁盤存取服務來實現(xiàn)底層數(shù)據(jù)存取。用戶還可以在數(shù)據(jù)庫管理系統(tǒng)之上創(chuàng)建直接服務于應用的數(shù)據(jù)庫應用系統(tǒng)(即數(shù)據(jù)庫應用軟件),從而構建基于數(shù)據(jù)庫技術的應用軟件,滿足實際應用的需求。1.2.3

數(shù)據(jù)庫管理系統(tǒng)圖1-5顯示了用戶應用、DBMS和操作系統(tǒng)之間的層次架構。在實際應用中常常見到的一些數(shù)據(jù)庫產(chǎn)品,如Oracle、MicrosoftSQLServer等,嚴格來講是指DBMS。但隨著計算機軟件技術和應用的不斷發(fā)展,目前的Oracle、MicrosoftSQLServer等已經(jīng)不單純是DBMS,而是一套以DBMS為核心的套件。圖1-5用戶應用、DBMS和操作系統(tǒng)之間的層次架構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ù)庫技術的計算機系統(tǒng)。數(shù)據(jù)庫系統(tǒng)作為一個計算機系統(tǒng),包含了軟件、硬件、數(shù)據(jù)庫、數(shù)據(jù)庫管理人員、終端用戶等要素,如電子政務系統(tǒng)、銀行信息系統(tǒng)等,都可以稱數(shù)據(jù)庫系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)中,用戶可分為數(shù)據(jù)庫管理員和終端用戶兩類,其中數(shù)據(jù)庫管理員直接與DBMS打交道,終端用戶直接與應用程序交互。一個系統(tǒng),有時分為前臺和后臺,前臺是終端用戶、是應用,后臺是管理、開發(fā)和維護。1.3數(shù)據(jù)庫系統(tǒng)體系結構從軟件架構上看,引入DBMS之后的系統(tǒng)中開始出現(xiàn)數(shù)據(jù)庫服務器。其數(shù)據(jù)庫體系結構(或模式結構),目前廣泛采用的是“ANSI/SPARC體系結構”的架構。ANSI/SPARC體系結構是1975年由美國國家標準協(xié)會的計算機與信息處理委員會中的標準計劃與需求委員會提出的數(shù)據(jù)庫模式結構。它不僅可以用來解釋已有的商用DBMS的數(shù)據(jù)庫模式結構,也可以作為研發(fā)新型DBMS時的數(shù)據(jù)庫模式組織標準。目前,Oracle、MicrosoftSQLServer等商用DBMS都遵循和支持ANSI/SPARC體系結構。1.3.1

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

ANSI/SPARC體系結構圖1-6ANSI/SPARC體系結構ANSI/SPARC體系結構的三級模式結構為:1.3.1

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

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

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

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

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

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

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

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

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

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

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

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

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

)(

)(

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

關系數(shù)據(jù)模型與關系運算2.1數(shù)據(jù)模型概述目錄2.2關系數(shù)據(jù)模型2.3關系運算2.1數(shù)據(jù)模型概述模型(Model)是對現(xiàn)實世界特征的抽象。數(shù)據(jù)模型也是一種模型,只不過它關心的是現(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ù)模型而言,它只關心實體的數(shù)據(jù)特征。例如,“商品”是現(xiàn)實世界中的一個實體,數(shù)據(jù)模型關心的是“商品”這個實體由哪些屬性來描述(如品名、規(guī)格、計量單位、價格、重量、產(chǎn)地等),它與其他實體之間有何聯(lián)系(如與“工廠”之間存在著制造關系等)等內容。早期,一般把數(shù)據(jù)模型僅理解為數(shù)據(jù)結構,而現(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ù)模型和結構數(shù)據(jù)模型兩種。兩種數(shù)據(jù)模型之間的關系如圖2-1所示。2.1.2

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

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

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

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

E-R模型1.E-R模型的組成2)聯(lián)系(Relationship)在E-R模型中,聯(lián)系是實體與實體之間的某種關聯(lián),通過連線表示出來。聯(lián)系也具有相應的聯(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)實體內部和實體之間的聯(lián)系都可以擁有一些描述自身特征的數(shù)據(jù)項,稱為屬性。實體內部通常有多個屬性,構成一個屬性集。在這些屬性中,可以唯一標識實體屬性的就是實體的碼。實體之間的聯(lián)系本身也可以有描述屬性。屬性一般具有一個屬性名和一個域。域代表了屬性可以取值的一個范圍。2.1.3

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

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

E-R模型2.E-R模型的符號圖2-3某公司業(yè)務流程E-R圖示例完成了各個底層子系統(tǒng)的E-R模型之后,下一步將進行E-R模型的集成和優(yōu)化。方法是,首先找出公共實體,然后基于公共實體進行合并,最后消除合并過程中出現(xiàn)的各種沖突。E-R模型在集成的過程中,可能出現(xiàn)的沖突大致有:(1)屬性沖突。屬性沖突主要表現(xiàn)為屬性的類型沖突或值沖突。需要在集成時進一步統(tǒng)一化處理。(2)結構沖突。結構沖突有三種表現(xiàn)形式:實體屬性集不同、聯(lián)系類型集不同、同一對象在不同應用中的抽象不同。需要仔細分析,要么合并,要么統(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)的性能需求和設計需求之間如何折中取舍。(2)消除冗余屬性。底層子系統(tǒng)E-R圖中一般不存在冗余,但集成后可能產(chǎn)生冗余屬性。有兩種情況:同一非碼屬性出現(xiàn)在幾個實體中,一個屬性可從其他屬性值中導出。(3)消除冗余聯(lián)系。所謂冗余聯(lián)系,指的是兩個實體之間的聯(lián)系,可以通過其他的聯(lián)系推理得到。2.1.3

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

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

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

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

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

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

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

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

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

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

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

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

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

關系運算已知關系R和關系S如圖2-7所示,其4種集合操作如下:(1)并(Union)。R和S具有相同的結構,運算符∪,記為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的元組兩兩任意組合而得到的結果,運算符為×,記為T=R×S。上述四種運算結果如圖2-8所示。2.3

關系運算1.集合運算圖2-7關系R和S2.3

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

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

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

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

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

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

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

及它們之間的

、

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

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

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

結構表示實體,以

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

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

)(

)(

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

數(shù)據(jù)庫基礎目錄3.1SQLServer數(shù)據(jù)庫管理系統(tǒng)3.2SQLServerManagementStudio的使用3.3標識符概述3.4SQLServer內置系統(tǒng)數(shù)據(jù)庫3.5SQLServer系統(tǒng)內置函數(shù)3.1SQLServer數(shù)據(jù)庫管理系統(tǒng)SQLServer是一個關系數(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),它可以將結構化、半結構化和非結構化文檔的數(shù)據(jù)(如圖像和音樂)直接存儲到數(shù)據(jù)庫中,提供了豐富的集成服務,可以對數(shù)據(jù)進行查詢、搜索、同步、報告和分析之類的操作。數(shù)據(jù)可以存儲在各種設備上,從數(shù)據(jù)中心最大的服務器一直到桌面計算機和移動設備。3.1.1

SQLServer概述SQLServer2008R2提供一個可信的、高效率的智能數(shù)據(jù)平臺,允許您在使用Microsoft.NET和VisualStudio開發(fā)的自定義應用程序中使用數(shù)據(jù)。SQLServer2008R2提供的版本有企業(yè)版、標準版、開發(fā)版、學習版等版本。本書以學習版為例,學習版是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)內存:最小512MB,建議≥2GB。(3)硬盤:在安裝SQLServer2008R2時,需要系統(tǒng)驅動器提供至少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學習版安裝文件已經(jīng)下載到D盤的sq文件夾,其安裝過程如下:(1)展開D:\sq文件夾,雙擊“setup應用程序”安裝,出現(xiàn)如圖3-2所示。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-2啟動SQLServer2008R2安裝文件(2)如果出現(xiàn)Microsoft.NETFramework安裝對話框,則勾選接受許可并安裝。必備組件安裝完成后,安裝向導進入“SQLServer安裝中心”,如圖3-3所示。單擊“全新安裝或向現(xiàn)有安裝添加功能”選項,安裝向導進行“安裝程序支持規(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\,單擊“下一步”進入“服務器配置”界面。(6)在“服務器配置”界面,根據(jù)選擇的安裝功能指定SQLServer服務的登錄賬戶??梢詾樗蠸QLServer服務分配相同的登錄賬戶,也可以分別配置每個服務賬戶,還可以指定服務類型為自動、手動或禁用。如圖3-7所示。單擊“對所有SQLServer服務使用相同的賬戶(U)”彈出對話框,單擊“瀏覽...”選擇賬戶,設置密碼。單擊“下一步”進入“數(shù)據(jù)庫引擎配置”界面。3.1.2

SQLServer2008R2的安裝2.安裝步驟圖3-7服務器配置界面(7)在“數(shù)據(jù)庫引擎配置”界面,可以設置SQLServer實例的身份驗證模式為Windows身份驗證模式或混合模式。在“指定SQLServer管理員”欄,必須至少指定一個系統(tǒng)管理員,也可以添加或刪除賬戶。如圖3-8所示。單擊“下一步”進入“ReportingServices配置”界面??梢圆捎没旌夏J剑琒QLServer身份驗證和WINDOWS身份驗證兩種,為SQLServer系統(tǒng)管理員SA賬戶指定密碼。為后續(xù)的第9章的學習作好準備。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安裝過程,單擊“關閉”按鈕。如圖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)視和升級應用程序使用的數(shù)據(jù)層組件,以及生成查詢和腳本,為各種技術水平的開發(fā)人員和管理員通過易用的圖形工具和豐富的腳本編輯器使用和管理SQLServer。3.2

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

啟動SQLServer2008R2服務器

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

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

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

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

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

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

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

標識符概述3.4SQLServer內置系統(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代理程序調度警報、作業(yè)和記錄操作員時使用。(4)tempdb:保存所有的臨時表和臨時存儲過程。每次啟動時都重新創(chuàng)建tempdb,并根據(jù)需要自動增長。3.4

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

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

SQLServer系統(tǒng)內置函數(shù)系統(tǒng)函數(shù)用于獲取有關計算機系統(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.字符轉換函數(shù)3.5.2

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

溫馨提示

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

評論

0/150

提交評論