計算機導(dǎo)論 第7章 數(shù)據(jù)庫技術(shù)_第1頁
計算機導(dǎo)論 第7章 數(shù)據(jù)庫技術(shù)_第2頁
計算機導(dǎo)論 第7章 數(shù)據(jù)庫技術(shù)_第3頁
計算機導(dǎo)論 第7章 數(shù)據(jù)庫技術(shù)_第4頁
計算機導(dǎo)論 第7章 數(shù)據(jù)庫技術(shù)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機導(dǎo)論教師:第7章數(shù)據(jù)庫技術(shù)07目錄CONTENTS1數(shù)據(jù)庫概述2數(shù)據(jù)模型3關(guān)系數(shù)據(jù)庫4結(jié)構(gòu)化查詢語言5數(shù)據(jù)庫設(shè)計6常用數(shù)據(jù)庫管理系統(tǒng)7數(shù)據(jù)庫技術(shù)發(fā)展本章學(xué)習(xí)目標(biāo)掌握數(shù)據(jù)庫的基本概念和數(shù)據(jù)模型的構(gòu)成掌握關(guān)系數(shù)據(jù)庫的重要概念掌握結(jié)構(gòu)化查詢語言的基本語句了解數(shù)據(jù)庫設(shè)計的步驟了解數(shù)據(jù)庫技術(shù)的發(fā)展趨勢本章學(xué)習(xí)目標(biāo)數(shù)據(jù)庫概述1.?dāng)?shù)據(jù)數(shù)據(jù)(Data)是數(shù)據(jù)庫中存儲的基本對象,是描述事務(wù)的符號記錄。在日常生活中,數(shù)據(jù)有多種表現(xiàn)形式,如數(shù)字、文字、圖像、記錄等。2.?dāng)?shù)據(jù)庫數(shù)據(jù)庫(DataBase,DB)是長期存儲在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,具有冗余度小、數(shù)據(jù)獨立性高、易擴展和可共享的特點。3.?dāng)?shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是位于用戶和操作系統(tǒng)之間的數(shù)據(jù)管理軟件,用戶和應(yīng)用程序需要通過數(shù)據(jù)庫管理系統(tǒng)來訪問數(shù)據(jù)庫中的數(shù)據(jù)。4.?dāng)?shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)是由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用系統(tǒng)和數(shù)據(jù)庫管理員組成的存儲、管理和維護(hù)數(shù)據(jù)的系統(tǒng)。數(shù)據(jù)庫概述數(shù)據(jù)定義功能數(shù)據(jù)庫管理系統(tǒng)能提供數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL),用戶通過它可以方便地對數(shù)據(jù)庫對象進(jìn)行定義,如表的創(chuàng)建、修改和刪除等。數(shù)據(jù)操縱功能數(shù)據(jù)庫管理系統(tǒng)能提供數(shù)據(jù)操縱語言(DataManipulationLanguage,DML),用戶通過它對數(shù)據(jù)進(jìn)行基本操作,如數(shù)據(jù)的插入、刪除、修改和查詢等。數(shù)據(jù)庫管理功能數(shù)據(jù)庫在創(chuàng)建、運行和維護(hù)時由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和控制,以保證數(shù)據(jù)庫的正確運行,保證數(shù)據(jù)庫的安全性、完整性,多用戶對數(shù)據(jù)的并發(fā)操作及發(fā)生故障后的系統(tǒng)恢復(fù)。數(shù)據(jù)庫建立和維護(hù)功能數(shù)據(jù)庫建立和維護(hù)功能包括數(shù)據(jù)庫初始化數(shù)據(jù)、轉(zhuǎn)換功能,以及數(shù)據(jù)庫的轉(zhuǎn)儲、恢復(fù)功能,數(shù)據(jù)庫的重組織、重構(gòu)功能和性能監(jiān)視、分析功能等。數(shù)據(jù)庫管理系統(tǒng)都能提供以下功能。數(shù)據(jù)模型數(shù)據(jù)庫技術(shù)的發(fā)展是以數(shù)據(jù)模型的發(fā)展為基礎(chǔ)的。數(shù)據(jù)模型是對現(xiàn)實世界數(shù)據(jù)特征的抽象和模擬,即用來描述數(shù)據(jù)、組織數(shù)據(jù)和操作數(shù)據(jù)。由于計算機不能直接處理現(xiàn)實世界中的事物,人們需要將事物數(shù)字化,并將具體的事物轉(zhuǎn)換成計算機能夠處理的數(shù)據(jù),因而數(shù)據(jù)從現(xiàn)實世界到計算機數(shù)據(jù)庫的抽象表示經(jīng)歷了3個階段,即現(xiàn)實世界、信息世界和機器世界。概念模型概念模型,即信息模型,是按用戶的觀點對數(shù)據(jù)和信息建模的,用于數(shù)據(jù)庫的設(shè)計,這就要求概念模型具有較強的語義表達(dá)能力,易于表示和理解。對現(xiàn)實世界進(jìn)行抽象表示時,需要對事物及事物之間的聯(lián)系進(jìn)行抽象表示。概念模型基本術(shù)語實體客觀存在并可相互區(qū)別的事物稱為實體。實體可以是具體的人、事、物或抽象的概念、聯(lián)系,如一個學(xué)院、一名學(xué)生、一個玩具、學(xué)生的一次選課等都是實體。屬性實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來描述,如圖書實體可以由圖書編號、書名、作者、出版社、出版日期、價格等屬性組成。碼能唯一標(biāo)識實體的屬性集稱為碼,如圖書編號是圖書實體的碼。實體型用實體名及其屬性名集合來抽象和描述的同類實體稱為實體型,如圖書(圖書編號、書名、作者、出版社、出版日期、價格)就是一個實體型。實體集同一類型實體的集合稱為實體集,如圖書館的全部圖書就是一個實體集。聯(lián)系現(xiàn)實世界中事物內(nèi)部及事物之間的聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系。實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系。實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。概念模型基本術(shù)語兩個實體型之間的聯(lián)系一對一聯(lián)系(1∶1)一對多聯(lián)系(1∶n)多對多聯(lián)系(m∶n)概念模型的表示方法概念模型是對信息世界建模,與具體的數(shù)據(jù)庫管理系統(tǒng)無關(guān)。概念模型的表示方法很多,其中E-R圖(Entity-RelationshipDiagram,實體-聯(lián)系圖)是最為常用的方法之一。構(gòu)成E-R圖的基本要素是實體型、屬性和聯(lián)系。(1)實體型。用矩形表示,矩形框內(nèi)要寫明實體名。(2)屬性。用橢圓形表示,并用直線與相應(yīng)實體連接起來。(3)聯(lián)系。用菱形表示,菱形框內(nèi)要寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標(biāo)上聯(lián)系的類型(1∶1、1∶n或m∶n),聯(lián)系也可以具有屬性。常見的邏輯模型數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。各種數(shù)據(jù)庫管理系統(tǒng)軟件都是基于某種邏輯模型的。常用的邏輯模型有層次模型、網(wǎng)狀模型及關(guān)系模型。其中,層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型,非關(guān)系模型的數(shù)據(jù)庫系統(tǒng)在20世紀(jì)70年代非常流行,而到20世紀(jì)80年代,關(guān)系模型的數(shù)據(jù)庫系統(tǒng)以其獨特的優(yōu)勢成為主流數(shù)據(jù)庫產(chǎn)品。關(guān)系模型關(guān)系模型是用一組二維表來表示實體及實體間的聯(lián)系的。其理論基礎(chǔ)是1970年IBM研究人員E.F.Codd提出的數(shù)據(jù)庫系統(tǒng)的關(guān)系模型,他開創(chuàng)了對數(shù)據(jù)庫關(guān)系理論和關(guān)系方法的研究,為數(shù)據(jù)庫技術(shù)奠定了理論基礎(chǔ)。關(guān)系模型的優(yōu)點是結(jié)構(gòu)簡單,一個關(guān)系對應(yīng)一張二維表,易于用戶掌握,通過簡單的查詢語句就能對數(shù)據(jù)庫進(jìn)行各種操作,而層次模型和網(wǎng)狀模型設(shè)計的數(shù)據(jù)庫系統(tǒng)需要通過指針鏈查找數(shù)據(jù),這是它們之間的根本區(qū)別。目前,關(guān)系模型是最廣泛使用的模型之一,計算機廠商推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關(guān)系模型。關(guān)系數(shù)據(jù)庫的基本概念學(xué)號姓名性別專業(yè)班級出生日期2017021001董林女計算機171班1999-06-052017021002李明男計算機172班1998-12-032017021013張佳女電氣工程173班1997-10-252016025111李婷女自動化161班1996-04-282018031012佟宇男自動化181班2000-03-06(1)關(guān)系:一個關(guān)系對應(yīng)一張二維表。例如,圖7.3所示的關(guān)系模型中的三張表對應(yīng)三個關(guān)系。關(guān)系數(shù)據(jù)庫的基本概念(2)關(guān)系模式:關(guān)系模式是對關(guān)系的描述,一般形式如下。關(guān)系名(屬性1,屬性2,…,屬性n)例如,關(guān)系student和關(guān)系course的關(guān)系模式如下。student(學(xué)號,姓名,性別,專業(yè),班級,出生日期)course(課程號,課程名,學(xué)分)(3)記錄:表中的一行稱為一條記錄,也稱為元組。例如,課程信息表[見圖7.3(b)]中有5行數(shù)據(jù),其中一行為一條記錄,對應(yīng)5條記錄。(4)屬性:表中的一列稱為一個屬性,屬性也稱字段。每個屬性都有一個名稱,稱為屬性名。例如,學(xué)生信息表[見圖7.3(a)]中有6個屬性,屬性名分別為學(xué)號、姓名、性別、專業(yè)、班級和出生日期。關(guān)系模型的完整性例7-1職工關(guān)系和部門關(guān)系如下。職工(職工編號,姓名,部門編號,性別,聯(lián)系電話)部門(部門編號,部門名)在這兩個關(guān)系中,部門關(guān)系的“部門編號”是主碼,職工關(guān)系的“部門編號”取值必須是已存在的部門編號,即參照部門關(guān)系的主碼“部門編號”取值,因而職工關(guān)系的“部門編號”是外碼。關(guān)系數(shù)據(jù)庫的基本概念(5)候選碼:表中能唯一確定一條記錄的某個屬性組,稱為候選碼,也稱候選關(guān)鍵字或碼。例如,學(xué)生信息表[見圖7.3(a)]中的學(xué)號可以唯一確定一條學(xué)生記錄,因此學(xué)號是一個候選碼。而姓名可能會出現(xiàn)重名的情況,不能唯一標(biāo)識一條學(xué)生記錄,因而姓名不適合作為候選碼。(6)主鍵(PrimaryKey):一個表中可能有多個候選碼,在實際應(yīng)用中通常選擇一個候選碼作為主鍵,主鍵也稱主碼、主關(guān)鍵字。主鍵值不能為空。例如,若在學(xué)生信息表[見圖7.3(a)]中增加一個字段為身份證號,則學(xué)號和身份證號都可作為候選碼,但在實際應(yīng)用中,選用一個作為主鍵即可。(7)主屬性:關(guān)鍵字中的諸屬性稱為主屬性,不包含在任何關(guān)鍵字中的屬性稱為非主屬性或非碼屬性。例如,學(xué)生信息表[見圖7.3(a)]中的學(xué)號就是主屬性,姓名是非主屬性。(8)值域:屬性的取值范圍。值域可以是數(shù)值、文本、日期、字符串等,如成績的值域為0~100,性別的值域為{男,女}。(9)外鍵(ForeignKey):設(shè)F是基本關(guān)系R的一個屬性組,但不是R的碼,Ks是基本關(guān)系S的主碼,如果F與Ks相對應(yīng),則稱F是R的外鍵,也稱外碼。關(guān)系數(shù)據(jù)庫的基本概念關(guān)系模型提供了三類完整性約束規(guī)則:實體完整性、參照完整性和用戶定義完整性。其中實體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱為關(guān)系的兩個不變性,用戶定義完整性是面向應(yīng)用領(lǐng)域所需遵循的約束條件,體現(xiàn)具體語義的約束。(1)實體完整性規(guī)則。規(guī)定關(guān)系中主屬性值不能為空。例如,學(xué)生(學(xué)號,姓名,性別,專業(yè),班級,出生日期)關(guān)系中,學(xué)號是主屬性,不能取空值。圖7.3(c)學(xué)生選課關(guān)系中,學(xué)號和課程號聯(lián)合作為主鍵,因而學(xué)號和課程號都是主屬性,都不能取空值。(2)參照完整性規(guī)則。若屬性集F是關(guān)系R的外碼,它與關(guān)系S的主碼Ks相對應(yīng)(關(guān)系R和S不一定是不同的關(guān)系),則R中每個元組在F上的值等于S中某個元組的主碼值或者取空值(F的每個屬性值均為空值),這條規(guī)則的實質(zhì)是“不允許引用不存在的實體”,實際上也提供了實現(xiàn)兩個關(guān)系相聯(lián)系的方法。如例7-1中,職工關(guān)系中的“部門編號”是外碼,其取值必須是已存在的部門編號,即參照部門關(guān)系中的主碼“部門編號”取值,不能把職工分配到一個不存在的部門中去,職工的部門編號也可能取空值,表示該職工尚未分配到任何一個部門。(3)用戶定義完整性規(guī)則。用戶定義完整性規(guī)則是針對某一具體數(shù)據(jù)庫的約束條件,它反映了某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求,如屬性的取值范圍、是否能取空值等。關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化就是把一個存在數(shù)據(jù)冗余、插入異常、更新異常和刪除異常等情況的關(guān)系模式通過模式分解,轉(zhuǎn)換為符合設(shè)計要求的關(guān)系模式集合。關(guān)系數(shù)據(jù)庫的設(shè)計,主要是關(guān)系模式的設(shè)計,而關(guān)系模式設(shè)計的關(guān)鍵在于關(guān)系模式的規(guī)范化。關(guān)系模式的規(guī)范化過程是通過對關(guān)系模式的分解來實現(xiàn)的,即把低一級的關(guān)系模式分解為若干個高一級的關(guān)系模式。范式是關(guān)系模式滿足不同程度的規(guī)范化要求的標(biāo)準(zhǔn)。滿足最低程度要求的范式屬于第一范式,簡稱1NF,是指關(guān)系中的每一個屬性都是不可分割的基本數(shù)據(jù)項。在任何一個關(guān)系數(shù)據(jù)庫中,1NF是對關(guān)系模式的基本要求,不滿足1NF的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。結(jié)構(gòu)化查詢語言結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,SQL)是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。SQL標(biāo)準(zhǔn)主要包括四部分內(nèi)容。(1)數(shù)據(jù)定義語言(DDL),用于定義數(shù)據(jù)庫的模式、基本表、視圖、索引等結(jié)構(gòu)。(2)數(shù)據(jù)操縱語言(DML),分為數(shù)據(jù)更新和數(shù)據(jù)查詢。其中數(shù)據(jù)更新包括插入、刪除和修改3種操作。(3)數(shù)據(jù)控制語言(DCL),包括對基本表或視圖的授權(quán)、完整性規(guī)則、事務(wù)控制等。(4)嵌入式SQL,包括SQL語句嵌入在宿主語言程序中的規(guī)則。結(jié)構(gòu)化查詢語言當(dāng)前絕大多數(shù)流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),如Oracle、SQLServer、MySQL等都采用了SQL標(biāo)準(zhǔn),并對其進(jìn)行了一定程度的擴展。(1)PL/SQL(ProceduralLanguage/SQL,過程化/SQL語言)是Oracle數(shù)據(jù)庫對SQL語句的擴展。PL/SQL將數(shù)據(jù)庫技術(shù)和過程化程序設(shè)計語言聯(lián)系起來,它在普通SQL語句的使用上增加了編程語言的特點,把數(shù)據(jù)操作和查詢語句組織在PL/SQL代碼的過程性單元中,通過邏輯判斷、循環(huán)等操作來實現(xiàn)復(fù)雜的功能。(2)T-SQL(Transact-SQL)是Microsoft在SQLServer數(shù)據(jù)庫中使用的SQL標(biāo)準(zhǔn)的實現(xiàn),是Microsoft對SQL的擴展。它具有SQL的主要特點,同時增加了變量、運算符、函數(shù)、流程控制和注釋等語言元素,使其功能更加強大。在SQLServer中使用圖形界面能夠完成的所有功能,都可以利用T-SQL來實現(xiàn)。使用T-SQL操作時,與SQLServer通信的所有應(yīng)用程序都要通過向服務(wù)器發(fā)送T-SQL語句來進(jìn)行,而與應(yīng)用程序的界面無關(guān)。數(shù)據(jù)定義1.創(chuàng)建數(shù)據(jù)庫語句格式:CREATEDATABASE<數(shù)據(jù)庫名>例7-2寫出創(chuàng)建一個名為db_Student的數(shù)據(jù)庫的SQL語句。CREATEDATABASEdb_Student;2.創(chuàng)建基本表語句格式:CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[<列級完整性約束條件>][,<列名><數(shù)據(jù)類型>[<列級完整性約束條件>]]…[,<表級完整性約束條件>]);數(shù)據(jù)定義3.修改基本表語句格式:ALTERTABLE<表名>[ADDCOLUMN<列名><數(shù)據(jù)類型>[完整性約束][FIRST|AFTER已存在的字段名]][CHANGECOLUMN<舊列名><新列名><數(shù)據(jù)類型>][ALTERCOLUMN<列名>{SETDEFAULT<默認(rèn)值>|DROPDEFAULT}[MODIFYCOLUMN<列名><數(shù)據(jù)類型>][DROPCOLUMN<列名>][RENAMETO<新表名>];例7-4在student表中增加“入學(xué)時間”列。ALTERTABLEstudentADDCOLUMNentimeDATEAFTERstu_name;4.刪除基本表語句格式:DROPTABLE<表名>例7-5刪除表course。DROPTABLEcourse;

數(shù)據(jù)更新1.?dāng)?shù)據(jù)插入數(shù)據(jù)插入是指把新的記錄插入到表中。語句格式:INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]VALUES(<常量1>[,<常量2>]…);例7-6將學(xué)生記錄插入到學(xué)生表中。INSERTINTOstudent(stu_id,stu_name,major,class)VALUES(‘2018021010’,‘李明’,‘計算機’,‘181’);2.?dāng)?shù)據(jù)刪除數(shù)據(jù)刪除即刪除表中滿足條件的記錄或刪除全部記錄。語句格式:DELETEFROM<表名>[WHERE<條件>];

數(shù)據(jù)更新3.?dāng)?shù)據(jù)修改數(shù)據(jù)修改即對表中的一條或多條記錄中的某些列值進(jìn)行修改。語句格式:UPDATE<表名>SET<列名>=<表達(dá)式>[,<列名>=<表達(dá)式>]…[WHERE<條件>];如果省略WHERE子句,則要修改表中的所有記錄。例7-9修改課程號為‘02002003’的課程的學(xué)分為3學(xué)分。UPDATEcourseSETcredit=3WHEREc_id=‘02002003’;數(shù)據(jù)查詢SQL能提供SELECT語句,可以從數(shù)據(jù)庫表或視圖中查詢符合條件的記錄。語句格式:

SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]…FROM<表名或視圖名>[,<表名或視圖名>]…|(SELECT語句)[AS]<別名>[WHERE<條件表達(dá)式>] /*選擇滿足條件的記錄*/[GROUPBY<列名1>[HAVING<條件表達(dá)式>]] /*分組*/[ORDERBY<列名2>[ASC|DESC]]; /*排序*/1.單表查詢例7-10查詢所有學(xué)生的信息。

SELECT* /**號表示表中所有字段*/ FROMstudent;例7-11查詢所有計算機專業(yè)的學(xué)生的學(xué)號、姓名、專業(yè)、班級。SELECTstu_id,stu_name,major,class_no FROMstudentWHEREmajor=‘計算機’;數(shù)據(jù)控制1.授權(quán)授權(quán)是指將對指定操作對象的指定操作權(quán)限授予指定用戶。GRANT語句的一般格式:GRANT<權(quán)限>[,<權(quán)限>]...[ON<對象類型><對象名>]TO<用戶>[,<用戶>]...[WITHGRANTOPTION];例7-15把查詢Student表的權(quán)限授給用戶user1。GRANTSELECTONTABLEStudentTOuser1;數(shù)據(jù)控制2.回收回收是指授予的權(quán)限可以由數(shù)據(jù)庫管理員或其他授權(quán)者用REVOKE語句收回。REVOKE語句的一般格式:REVOKE<權(quán)限>[,<權(quán)限>]...[ON<對象類型><對象名>]FROM<用戶>[,<用戶>]...;例7-16收回用戶user1修改學(xué)生學(xué)號的權(quán)限。REVOKE

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論