數(shù)據(jù)庫(kù)系統(tǒng)2023版自考_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)2023版自考_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)2023版自考_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)2023版自考_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)2023版自考_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)系統(tǒng)原理(復(fù)習(xí)資料)第一章數(shù)據(jù)庫(kù)系統(tǒng)概述一、識(shí)記:1)數(shù)據(jù)(Data):是描述事物的符號(hào)記錄,是指用物理符號(hào)記錄下來(lái)的、可以鑒別的信息。(P27)2)數(shù)據(jù)庫(kù)(DataBase,DB):通俗的被稱(chēng)作存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)。3)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS):是專(zhuān)門(mén)用于建立和管理數(shù)據(jù)庫(kù)的一套軟件,介于應(yīng)用程序和操作系統(tǒng)之間。4)數(shù)據(jù)庫(kù)系統(tǒng)(DBS):是指在計(jì)算機(jī)中引入數(shù)據(jù)庫(kù)技術(shù)之后的系統(tǒng)。數(shù)據(jù)管理技術(shù)發(fā)展階段:1)人工管理階段、2)文件系統(tǒng)階段、3)數(shù)據(jù)庫(kù)系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)階段,與人工管理、文件系統(tǒng)管理相比有如下特點(diǎn):數(shù)據(jù)集成、數(shù)據(jù)共享性高、數(shù)據(jù)冗余度小、數(shù)據(jù)一致性、數(shù)據(jù)獨(dú)立性高P32數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu):是指數(shù)據(jù)庫(kù)系統(tǒng)是由模式、外模式和內(nèi)模式三級(jí)構(gòu)成(P34)模式:也稱(chēng)為概念模式或邏輯模式,它是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖;外模式:也成為子模式或用戶模式,它是數(shù)據(jù)庫(kù)用戶能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是與某一應(yīng)用有關(guān)的邏輯表示;內(nèi)模式:也稱(chēng)儲(chǔ)存模式,它是對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)物理結(jié)構(gòu)和儲(chǔ)存方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示形式;三級(jí)模式結(jié)構(gòu)的兩層映像與數(shù)據(jù)獨(dú)立性:(1)外模式/模式映像(2)模式/內(nèi)模式映像:定義了數(shù)據(jù)庫(kù)全局邏輯結(jié)構(gòu)與物理儲(chǔ)存之間的對(duì)應(yīng)關(guān)系(3)實(shí)現(xiàn)概念模式(模式)不受內(nèi)模式變化影響,正是這兩層映像保證了數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性,使得數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出去,從而簡(jiǎn)化了數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(fā)。(P36)四、數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行與應(yīng)用結(jié)構(gòu):目前兩種,客戶/服務(wù)器結(jié)構(gòu)、瀏覽器/服務(wù)器結(jié)構(gòu)五、數(shù)據(jù)模型:通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束三個(gè)要素組成;數(shù)據(jù)模型分類(lèi):第一類(lèi):概念層數(shù)據(jù)模型,第二類(lèi):邏輯層數(shù)據(jù)模型和物理層數(shù)據(jù)模型。概念層數(shù)據(jù)模型:是數(shù)據(jù)抽象級(jí)別的最高層,其目的是按用戶的觀點(diǎn)來(lái)對(duì)世界建模,通常用來(lái)抽象、表示現(xiàn)實(shí)世界的各種事物及其聯(lián)系;信息世界設(shè)計(jì)的基本概念如下:實(shí)體、屬性、碼或鍵、域、實(shí)體性、實(shí)體集、聯(lián)系;概念模型表示方法:實(shí)體性(矩形表示)、屬性(橢圓形表示)、聯(lián)系(菱形表示)邏輯層數(shù)據(jù)模型:邏輯層是數(shù)據(jù)抽象的中間層,描述數(shù)據(jù)整體的邏輯結(jié)構(gòu)。包括層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P?;這里給予關(guān)系模型的數(shù)據(jù)庫(kù)。(P41)物理層數(shù)據(jù)模型:其描述數(shù)據(jù)在儲(chǔ)存介質(zhì)上的組織結(jié)構(gòu),是邏輯模型的物理實(shí)現(xiàn)。第二章關(guān)系數(shù)據(jù)庫(kù)一、關(guān)系數(shù)據(jù)庫(kù)的基本特征是使用關(guān)系數(shù)據(jù)模型組織數(shù)據(jù),這種思想源于數(shù)學(xué)。二、關(guān)系數(shù)據(jù)模型:關(guān)系模型三個(gè)組成要素,關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束。以二維表格為例,介紹關(guān)系數(shù)據(jù)庫(kù)的基本術(shù)語(yǔ):表、關(guān)系、列、屬性、行、元組、分量、碼或鍵、超碼和超鍵、候選碼和候選鍵、主碼和主鍵、全碼和全鍵、主屬性、外碼或外鍵、參照關(guān)系和被參照關(guān)系、域、數(shù)據(jù)類(lèi)型、關(guān)系模式、關(guān)系數(shù)據(jù)庫(kù)。(P44)關(guān)系操作集合:常用操作包括查詢(xún)操作和插入、刪除、修改操作兩大部分。關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi):關(guān)系代數(shù)語(yǔ)言、關(guān)系演算語(yǔ)言、以及兼兩種特點(diǎn)的結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL(將在第四章詳細(xì)講解);關(guān)系代數(shù):是關(guān)系操作語(yǔ)言的一種傳統(tǒng)表示方式,它是集合代數(shù)為基礎(chǔ)發(fā)展起來(lái)的。操作包括三大要素:操作對(duì)象、操作符、操作結(jié)果;(IBM公司研制ISBL的純代數(shù)數(shù)據(jù)操作語(yǔ)言。)A:傳統(tǒng)的集合運(yùn)算:是二目運(yùn)算,具有并、差、交、笛卡爾積4種運(yùn)算(P51看書(shū)理解)B:專(zhuān)門(mén)的關(guān)系運(yùn)算:不僅涉及行,還涉及列,它可分為一元專(zhuān)門(mén)關(guān)系操作和二元專(zhuān)門(mén)關(guān)系操作;其中,一元專(zhuān)門(mén)關(guān)系操作包括對(duì)單個(gè)關(guān)系進(jìn)行垂直分解的投影運(yùn)算和進(jìn)行水平分解選擇運(yùn)算;二元專(zhuān)門(mén)關(guān)系操作則是對(duì)兩個(gè)關(guān)系進(jìn)行操作,包括連接運(yùn)算和除運(yùn)算。專(zhuān)門(mén)的關(guān)系運(yùn)算有:選擇、投影、連接、除;關(guān)系的完整性約束:有三類(lèi)完整性約束,實(shí)體完整性約束、參照完整性約束、用戶定義完整性約束。關(guān)系模型完整性約束的檢驗(yàn):為了維護(hù)關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)的完整性,在對(duì)關(guān)系數(shù)據(jù)庫(kù)執(zhí)行插入、刪除和更新操作時(shí),需要檢驗(yàn)是否滿足上述三類(lèi)完整性約束。(P56,看書(shū)進(jìn)行補(bǔ)充)關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論:關(guān)系模型中可能存在的冗余和異常問(wèn)題:數(shù)據(jù)冗余、更新異常、插入異常、刪除異常;現(xiàn)在人們提出許多種類(lèi)型的數(shù)據(jù)依賴(lài),其中最重要的是函數(shù)依賴(lài)FD,多值依賴(lài)MVD;函數(shù)依賴(lài)和關(guān)鍵字:(P57)函數(shù)依賴(lài):是指關(guān)系中屬性間的對(duì)應(yīng)關(guān)系。根據(jù)不同性質(zhì)可分完全函數(shù)依賴(lài)、部分函數(shù)依賴(lài)、傳遞函數(shù)依賴(lài);關(guān)鍵字:設(shè)R為任意給定關(guān)系,U為其所含的全部屬性集合,X為U的子集,若有完全函數(shù)依賴(lài)X→U,則X為R的一個(gè)候選關(guān)鍵字。九、范式與關(guān)系規(guī)范化過(guò)程:關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系需要滿足一定的要求,不同程度的要求稱(chēng)為不同的范式(NF)。滿足最低要求的稱(chēng)為第一范式(1NF),這是最基本的范式;在第一范式的基礎(chǔ)上進(jìn)一步滿足一些新要求的稱(chēng)為第二范式(2NF);以此類(lèi)推,再進(jìn)一步的范式成為第三范式(3NF)。第一范式:設(shè)定R為任一給定關(guān)系,如果R中每個(gè)列與行的交點(diǎn)處的取值都是不可再分的基本元素,則R為第一范式。第二范式:設(shè)定R為任一給定關(guān)系,若R為1NF,且其所有非主屬性都完全函數(shù)依賴(lài)于候選關(guān)鍵字,則R為第二范式。第三范式:設(shè)定R為任一給定關(guān)系,若R為2NF,且其每一個(gè)非主屬性都不傳遞函數(shù)依賴(lài)于候選關(guān)鍵字,則R為第三范式。BCNF:為了解決3NF有時(shí)會(huì)出現(xiàn)的插入及刪除操作異常等問(wèn)題,R.F.Boyce和E.F.Cold提出了第3范式的改進(jìn)形式BCNF。數(shù)據(jù)庫(kù)設(shè)計(jì)(P64)數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)生命周期:分兩個(gè)階段,數(shù)據(jù)庫(kù)分析與設(shè)計(jì)階段、數(shù)據(jù)庫(kù)實(shí)現(xiàn)與操作階段。數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo):滿足應(yīng)用功能需求和良好的數(shù)據(jù)庫(kù)性能。數(shù)據(jù)庫(kù)設(shè)計(jì)的內(nèi)容:1)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì):是針對(duì)給定的應(yīng)用環(huán)境進(jìn)行數(shù)據(jù)庫(kù)的模式或子模式設(shè)計(jì),包括數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)或物理結(jié)構(gòu)設(shè)計(jì)。模式定義并給出各應(yīng)用程序共享的結(jié)構(gòu),是靜態(tài)的。2)數(shù)據(jù)庫(kù)行為設(shè)計(jì):是確定數(shù)據(jù)庫(kù)用戶的行為和動(dòng)作,它們通常是通過(guò)應(yīng)用程序來(lái)實(shí)現(xiàn)的,由于用戶行為會(huì)是數(shù)據(jù)庫(kù)的內(nèi)容發(fā)生變化,所以行為設(shè)計(jì)是動(dòng)態(tài)的。數(shù)據(jù)庫(kù)設(shè)計(jì)的方法:(1)直觀設(shè)計(jì)法;(2)規(guī)范設(shè)計(jì)法:{新奧爾良設(shè)計(jì)方法,四個(gè)階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)}{基于E-R模型的數(shù)據(jù)庫(kù)設(shè)計(jì)方法:1976年由P.P.S.Chen提出}{基于第三范式的設(shè)計(jì)方法}二、數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程:將數(shù)據(jù)庫(kù)設(shè)計(jì)分為這樣幾個(gè)階段:需求分析階段;結(jié)構(gòu)設(shè)計(jì)階段、其中包括概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì);行為設(shè)計(jì)階段,其包括功能設(shè)計(jì)、事務(wù)設(shè)計(jì)和程序設(shè)計(jì);數(shù)據(jù)庫(kù)實(shí)施階段,其包括加載數(shù)據(jù)庫(kù)數(shù)據(jù)和調(diào)試運(yùn)行應(yīng)用程序;數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段。三、數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟:(P67)需求分析:是數(shù)據(jù)庫(kù)設(shè)計(jì)的起點(diǎn),一般分為四個(gè)步驟,確定數(shù)據(jù)庫(kù)范圍、分析數(shù)據(jù)應(yīng)用過(guò)程、收集與分析數(shù)據(jù)、編寫(xiě)需求分析報(bào)告;編寫(xiě)需求分析報(bào)告:1)數(shù)據(jù)庫(kù)的應(yīng)用功能目標(biāo)2)標(biāo)明不同用戶視圖范圍3)應(yīng)用處理過(guò)程需求說(shuō)明i:數(shù)據(jù)流程圖,其主要反映應(yīng)用部門(mén)原始業(yè)務(wù)處理的工作流程ii:任務(wù)分類(lèi)表,其標(biāo)明不同任務(wù)的功能及使用情況iii:數(shù)據(jù)操作特征表,標(biāo)明任務(wù)和數(shù)據(jù)間的聯(lián)系及不同數(shù)據(jù)的不同操作特征與執(zhí)行頻率iv:操作過(guò)程說(shuō)明書(shū),其根據(jù)數(shù)據(jù)流程圖、任務(wù)分類(lèi)表和各類(lèi)原始資料4)數(shù)據(jù)字典(DD),是數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)三級(jí)結(jié)構(gòu)定義的數(shù)據(jù)庫(kù),通常指的是數(shù)據(jù)庫(kù)系統(tǒng)中各類(lèi)數(shù)據(jù)詳細(xì)描述的集合。5)數(shù)據(jù)量:根據(jù)數(shù)據(jù)分類(lèi)表中的靜態(tài)數(shù)據(jù)量和操作特征表中的動(dòng)態(tài)數(shù)據(jù)量,進(jìn)行統(tǒng)計(jì)計(jì)算,求出數(shù)據(jù)總量。6)數(shù)據(jù)約束四、概念結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)任務(wù)是在需求分析報(bào)告的基礎(chǔ)上,按照特定的方法設(shè)計(jì)滿足應(yīng)用需求的用戶信息結(jié)構(gòu),該信息結(jié)構(gòu)通常稱(chēng)為概念模型。邏輯結(jié)構(gòu)設(shè)計(jì)的目標(biāo)是將概念模型轉(zhuǎn)換為等價(jià)的、并為特定DBMS所支持?jǐn)?shù)據(jù)模型的結(jié)構(gòu)。數(shù)據(jù)庫(kù)邏輯模型一般由層次、網(wǎng)狀、關(guān)系數(shù)據(jù)模型表示。(P71)邏輯結(jié)構(gòu)設(shè)計(jì)的輸入與輸出信息邏輯結(jié)構(gòu)設(shè)計(jì)的步驟六、物理設(shè)計(jì)是指對(duì)于一個(gè)給定的數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),研究并構(gòu)造物理結(jié)構(gòu)的過(guò)程,其具體任務(wù)主要是確定數(shù)據(jù)庫(kù)在存儲(chǔ)設(shè)備上的存儲(chǔ)結(jié)構(gòu)及存取方法,因DBMS的不同還可能包括建立索引和聚焦,以及物理塊大小、緩沖區(qū)個(gè)數(shù)和大小、數(shù)據(jù)壓縮的選擇等。數(shù)據(jù)庫(kù)實(shí)施實(shí)施階段主要包括:加載數(shù)據(jù)、應(yīng)用程序設(shè)計(jì)和數(shù)據(jù)庫(kù)試運(yùn)行。(P72)七、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)系統(tǒng)維護(hù)中最困難的工作是數(shù)據(jù)庫(kù)重組和重構(gòu)。重組適當(dāng)空間利用率和存取效率下降時(shí)進(jìn)行的,它并不改變數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),只是利用DBMS提供的設(shè)施調(diào)整數(shù)據(jù)庫(kù)中的數(shù)據(jù)的存儲(chǔ)位置。重構(gòu)是指部分修改數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)。第三節(jié)關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)方法一、關(guān)系數(shù)據(jù)庫(kù):是一類(lèi)采用關(guān)系模型作為邏輯數(shù)據(jù)模型的數(shù)據(jù)庫(kù)系統(tǒng),它的設(shè)計(jì)過(guò)程遵從數(shù)據(jù)庫(kù)設(shè)計(jì)基本步驟:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施、數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù)。二、關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程與各級(jí)模式:在邏輯設(shè)計(jì)階段采用E-R圖轉(zhuǎn)換成具體數(shù)據(jù)庫(kù)產(chǎn)品支持的關(guān)系數(shù)據(jù)模型,形成數(shù)據(jù)庫(kù)邏輯模式,然后根據(jù)用戶處理的要求、安全性的考慮,在基本表的基礎(chǔ)上再建立必要的視圖,形成數(shù)據(jù)的外模式;在物理結(jié)構(gòu)的設(shè)計(jì)階段,根據(jù)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排、建立索引,形成數(shù)據(jù)庫(kù)內(nèi)模式,關(guān)系數(shù)據(jù)庫(kù)各級(jí)模式如圖:概念結(jié)構(gòu)設(shè)計(jì)方法:通常采用自頂向下法,通過(guò)兩個(gè)步驟完成概念設(shè)計(jì),即首先建立局部信息結(jié)構(gòu),然后將局部信息結(jié)構(gòu)合成為全局信息結(jié)構(gòu)并優(yōu)化。E-R圖的表示方法i)實(shí)體性,用矩形表示;ii)屬性,用橢圓形表示;iii)聯(lián)系,用菱形表示。兩個(gè)實(shí)體型之間的聯(lián)系:①一對(duì)一聯(lián)系(1:1);②一對(duì)多聯(lián)系(1:N)③多對(duì)多聯(lián)系(M:N)兩個(gè)以上的實(shí)體型之間的聯(lián)系:(P75)也存在一對(duì)一;一對(duì)多;多對(duì)多;單個(gè)實(shí)體型內(nèi)的聯(lián)系:同一個(gè)實(shí)體集內(nèi)各實(shí)體之間也可以存在一對(duì)一,一對(duì)多,多對(duì)多的聯(lián)系。局部信息結(jié)構(gòu)設(shè)計(jì):根據(jù)需求分析報(bào)告中標(biāo)明的不同用戶視圖范圍所建立的滿足該范圍內(nèi)用戶需求的信息結(jié)構(gòu)稱(chēng)為局部信息結(jié)構(gòu)。局部信息結(jié)構(gòu)設(shè)計(jì)步驟如下:(P77看實(shí)例演示)(1)確定局部范圍(2)選擇實(shí)體(3)選擇實(shí)體的關(guān)鍵字屬性(4)確定實(shí)體間聯(lián)系(5)確定實(shí)體的屬性6、全局信息結(jié)構(gòu)設(shè)計(jì):是將上述產(chǎn)生的所有局部信息結(jié)構(gòu)合并成為一個(gè)全局信息結(jié)構(gòu)。合并過(guò)程是一個(gè)不斷發(fā)現(xiàn)和解決沖突的過(guò)程,通常,各局部E-R圖之間的沖突主要表現(xiàn)在三個(gè)方面:屬性沖突、命名沖突、結(jié)構(gòu)沖突。(P79看具體理解)(1)屬性沖突:屬性域沖突和屬性取值單位沖突;(2)命名沖突:同名異義和異名同義;(3)結(jié)構(gòu)沖突:i)同一對(duì)象在一個(gè)局部E-R圖中作為實(shí)體,而在另一個(gè)局部E-R圖中作為屬性ii)同一個(gè)實(shí)體在不同的E-R圖中屬性個(gè)數(shù)和類(lèi)型不同iii)實(shí)體之間的聯(lián)系在不同的E-R圖中是不同的類(lèi)型三、邏輯結(jié)構(gòu)設(shè)計(jì)方法邏輯結(jié)構(gòu)設(shè)計(jì)任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)產(chǎn)生的概念模型轉(zhuǎn)換為具體的DBMS所支持的邏輯數(shù)據(jù)模型,也就是導(dǎo)出特定的DBMS可以處理的數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)(數(shù)據(jù)庫(kù)的模式和外模式),這些模式在功能、性能、完整性和一致性約束方面滿足應(yīng)用要求。那么在關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)中,邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段已設(shè)計(jì)好的E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的關(guān)系模型,通常包括以下三項(xiàng)工作:1.E-R圖向關(guān)系模型的轉(zhuǎn)換2.數(shù)據(jù)模型的優(yōu)化3.設(shè)計(jì)用戶子模式四、物理設(shè)計(jì)方法(P81看實(shí)例講解)物理設(shè)計(jì)的主要任務(wù)是通過(guò)對(duì)關(guān)系建立索引和聚集來(lái)實(shí)現(xiàn)與應(yīng)用相關(guān)數(shù)據(jù)的邏輯連接和物理聚集,以改善對(duì)數(shù)據(jù)庫(kù)的存取效率。建立索引(通常有動(dòng)態(tài)和靜態(tài)兩種)建立聚集(聚集是將相關(guān)數(shù)據(jù)集中存放的物理存儲(chǔ)技術(shù),借以提高I/O的數(shù)據(jù)命中率而改善存取速度,其功能由具體的DBMS所提供)數(shù)據(jù)聚集結(jié)構(gòu)的一種有效方式--塊結(jié)構(gòu)方式。SQL與關(guān)系數(shù)據(jù)庫(kù)基本操作關(guān)系數(shù)據(jù)庫(kù)各種基本操作的SQL語(yǔ)句,包括數(shù)據(jù)定義、數(shù)據(jù)更新、數(shù)據(jù)查詢(xún)、視圖使用。SQL概述:SQL是1974年由Boyce和Chamberlin提出;SQL的特點(diǎn):1)SQL不是某個(gè)特定的數(shù)據(jù)庫(kù)供應(yīng)商專(zhuān)有的語(yǔ)言。幾乎所有重要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL,所以掌握SQL可以幫助用戶與幾乎所有的關(guān)系數(shù)據(jù)庫(kù)進(jìn)行交互。SQL簡(jiǎn)單易學(xué)。它的語(yǔ)句全都是由具有很強(qiáng)的描述性的英語(yǔ)單詞所組成,而且這些單詞的數(shù)目不多。SQL盡管看上去很簡(jiǎn)單,但它實(shí)際上是一種強(qiáng)有力的語(yǔ)言,靈活使用其語(yǔ)言元素,可以進(jìn)行非常復(fù)雜和高級(jí)的數(shù)據(jù)庫(kù)操作。SQL的組成:SQL是集數(shù)據(jù)查詢(xún)、數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制四大功能為一體。核心包括以下幾個(gè)部分:數(shù)據(jù)定義語(yǔ)言(DDL):數(shù)據(jù)定義語(yǔ)言包括主要SQL語(yǔ)句有以下三個(gè):CREATE:用于創(chuàng)建數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象ALTER:用于對(duì)數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象進(jìn)行修改DROP:用于刪除數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象數(shù)據(jù)操縱語(yǔ)言(DML):主要用于操縱數(shù)據(jù)庫(kù)中各種對(duì)象,特別是檢索和修改數(shù)據(jù)。主要包括語(yǔ)句如下:SELECT:用于從表或視圖中檢索數(shù)據(jù),其是數(shù)據(jù)庫(kù)中使用最為頻繁的SQL語(yǔ)句之一。INSERT:用于將數(shù)據(jù)插入到表或視圖中。UPDATE:用于修改表或視圖中的數(shù)據(jù),其即可修改表或視圖中一行數(shù)據(jù),也可同時(shí)修改多行或全部數(shù)據(jù)。DELETE:用于從表和視圖中刪除數(shù)據(jù),其中可根據(jù)條件刪除指定的數(shù)據(jù)。數(shù)據(jù)控制語(yǔ)言(DCL):主要用于安全管理,例如確定哪些用戶可以查看或修改數(shù)據(jù)庫(kù)中的數(shù)據(jù),主要包括以下SQL語(yǔ)句:GRANT:用于授予權(quán)限,可把語(yǔ)句許可或?qū)ο笤S可的權(quán)限授予其他用戶和角色。REVOKE:用于收回權(quán)限,其功能與GRANT相反,但不影響該用戶或角色從其他角色中作為成員繼承許可權(quán)限。嵌入式和動(dòng)態(tài)SQL規(guī)則:規(guī)則規(guī)定了SQL語(yǔ)句在高級(jí)程序設(shè)計(jì)語(yǔ)言中使用的規(guī)范方法,以便適應(yīng)較為復(fù)雜的應(yīng)用。SQL調(diào)用和會(huì)話規(guī)則:SQL調(diào)用包括SQL例程和調(diào)用規(guī)則,以便提高SQL的靈活性、有效性、共享性以及使用SQL具有更多的高級(jí)語(yǔ)言的特征。SQL會(huì)話規(guī)則則可使應(yīng)用程序連接到多個(gè)SQL服務(wù)器中的某個(gè),并與之交互。MySQL預(yù)備知識(shí)目前,使用MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)構(gòu)建各種信息管理系統(tǒng)或互聯(lián)網(wǎng)網(wǎng)站的應(yīng)用環(huán)境主要有如下構(gòu)架方式:LAMP,Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù)管理系統(tǒng),PHP、Perl或Python語(yǔ)言作為服務(wù)器端腳本解釋器。WAMP,Windows作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù)管理系統(tǒng),PHP、Perl或Python語(yǔ)言作為服務(wù)器端腳本解釋器。MySQL中的SQL(P87)MySQL作為一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),遵循SQL標(biāo)準(zhǔn),提供了對(duì)數(shù)據(jù)定義語(yǔ)言DDL,數(shù)據(jù)操縱語(yǔ)言DML、數(shù)據(jù)控制語(yǔ)言DCL、并且同樣支持關(guān)系數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)。如圖MySQL在SQL標(biāo)準(zhǔn)的基礎(chǔ)上增加了部分?jǐn)U展語(yǔ)言要素:包括常量、變量、運(yùn)算符、表達(dá)式、函數(shù)、流程控制語(yǔ)句和注釋。常量:是指在程序運(yùn)行過(guò)程中值不變的量,也稱(chēng)為字面值或標(biāo)量值。常量的使用格式取決于值的數(shù)據(jù)類(lèi)型,可分為字符串常量、數(shù)值常量、十六進(jìn)制常量、時(shí)間日期常量、位字段值、布爾值和NULL值。變量:用于臨時(shí)存儲(chǔ)數(shù)據(jù),變量有名字和數(shù)據(jù)類(lèi)型兩個(gè)屬性。其中變量的名字用于標(biāo)識(shí)變量,變量的數(shù)據(jù)類(lèi)型用于確定變量中存儲(chǔ)數(shù)值的格式和可執(zhí)行的運(yùn)算。在MySQL中,變量分為用戶變量和系統(tǒng)變量,在使用時(shí),用戶變量前常添一個(gè)符號(hào)“@”,用于將其和列名區(qū)分開(kāi);而大多數(shù)系統(tǒng)變量應(yīng)用于其他SQL語(yǔ)句時(shí),必須在系統(tǒng)變量名前加兩個(gè)“@”運(yùn)算符(P88)表達(dá)式:表達(dá)式是常量、變量、列名、復(fù)雜計(jì)算、運(yùn)算符、函數(shù)的集合。內(nèi)置函數(shù):●數(shù)學(xué)函數(shù),例如ABS()函數(shù)、SORT()函數(shù)●聚合函數(shù),例如COUNT()函數(shù)●字符串函數(shù),例如ASCII()函數(shù)、CHAR()函數(shù)●日期和時(shí)間函數(shù),例如NOW()函數(shù)、YEAR()函數(shù)●加密函數(shù),例如ENCODE()函數(shù)、ENCRYPT()函數(shù)●控制流程函數(shù),例如IF()函數(shù)、IFNULL函數(shù)●格式化函數(shù),例如FORMAT()函數(shù)●類(lèi)型轉(zhuǎn)換函數(shù),例如CAST()函數(shù)●系統(tǒng)信息函數(shù),例如USER()函數(shù)、VERSION()函數(shù)四、數(shù)據(jù)定義SQL的數(shù)據(jù)定義功能包括數(shù)據(jù)庫(kù)模式定義、表定義、索引定義和視圖定義。(P89)㈠數(shù)據(jù)庫(kù)模式定義:包含數(shù)據(jù)庫(kù)的創(chuàng)建、選擇、修改、刪除、查看等操作。創(chuàng)建數(shù)據(jù)庫(kù),可以使用CREATEDATABASE或CREATESCHEMA。選擇數(shù)據(jù)庫(kù),使用USE語(yǔ)句,指定某個(gè)數(shù)據(jù)庫(kù)為當(dāng)前數(shù)據(jù)庫(kù)之后,才能對(duì)該數(shù)據(jù)庫(kù)及其存儲(chǔ)的數(shù)據(jù)對(duì)象進(jìn)行各種操作。修改數(shù)據(jù)庫(kù),可以使用ALTERDATABASE或ALTERSCHEMA,來(lái)修改已被創(chuàng)建的數(shù)據(jù)庫(kù)的相關(guān)參數(shù)。刪除數(shù)據(jù)庫(kù),可以使用DROPDATABASE或DROPSCHEMA。查看數(shù)據(jù)庫(kù),可以使用SHOWDATABASE或SHOWSCHEMA??蛇x項(xiàng)“LIKE”關(guān)鍵字用于匹配指定的數(shù)據(jù)庫(kù)名稱(chēng),可選項(xiàng)“WHERE”從句用于指定數(shù)據(jù)庫(kù)名稱(chēng)查詢(xún)范圍的條件。㈡表定義:只有成功創(chuàng)建數(shù)據(jù)庫(kù)之后,才能在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表是關(guān)系數(shù)據(jù)庫(kù)中最重要、最基本的數(shù)據(jù)對(duì)象,也是數(shù)據(jù)庫(kù)存儲(chǔ)的基本單位。創(chuàng)建表,MySQL使用CREATETABLE語(yǔ)句創(chuàng)建表。該語(yǔ)法主要由表的創(chuàng)建定義、表選項(xiàng)、和分區(qū)選項(xiàng)等內(nèi)容構(gòu)成。臨時(shí)表與持久表,帶TEMPORARY為臨時(shí)表,不帶為持久表數(shù)據(jù)類(lèi)型,主要有數(shù)值類(lèi)型、布爾型、日期和時(shí)間類(lèi)型、字符串類(lèi)型、空間數(shù)據(jù)類(lèi)型等。關(guān)鍵字AUTO_INCREMENT指定默認(rèn)值NULL值,指沒(méi)有值或缺值。主鍵,通過(guò)PRIMARYKEY關(guān)鍵字來(lái)指定,主鍵值必須唯一,且一定要為NOTNULL。2.更新表,為了實(shí)現(xiàn)數(shù)據(jù)庫(kù)表的規(guī)范化設(shè)計(jì)的目的,可以使用ALTERTABLE語(yǔ)句來(lái)更改原有表的結(jié)構(gòu),有以下幾個(gè)子句:1)ADD[COLUMN]子句,增加新列,也可增加多個(gè)列。也可在ALTERTABLE下ADDPRIMARYKEY、ADDINDEX和ADDFOREIGNKEY為原表添加一個(gè)主鍵、索引和外鍵。2)CHANGE[COLUMN]子句,修改制定列的名稱(chēng)和數(shù)據(jù)類(lèi)型,且在ALTERTABLE下同時(shí)放入多個(gè)CHANGE[COLUMN]子句。3)ALTER[COLUMN]子句,修改或刪除指定列的默認(rèn)值。4)MODIFY[COLUMN]子句,與ALTER[COLUMN]不同的是,只是修改列的數(shù)據(jù)類(lèi)型,不會(huì)干涉列名。5)DROP[COLUMN]子句,用于卸除多余的列,一旦卸除列,原本存儲(chǔ)在該列的一切內(nèi)容都會(huì)跟著被卸除。6)RENAME[COLUMN]子句,為表重新賦予一個(gè)表名。3.重命名表,除了前面ALTERTABLE語(yǔ)句,也可以直接用RENAMETABLE進(jìn)行更改表的名字。4.刪除表,通過(guò)DROPTABLE語(yǔ)句實(shí)現(xiàn),但操作者必須有該命令權(quán)限,刪除表時(shí),數(shù)據(jù)和分區(qū)信息均會(huì)被刪除,但權(quán)限不會(huì)刪除。5.查看表,1)顯示表的名稱(chēng),使用SHOWTABLES語(yǔ)句;2)顯示表的結(jié)構(gòu),使用SHOWCOLUMNS語(yǔ)句。五、索引定義索引,就是DBMS根據(jù)表中的一列或若干列按照一定順序建立的列值與記錄行之間的對(duì)應(yīng)關(guān)系表,因而索引實(shí)質(zhì)上是一張描述索引列值與原表中記錄行之間一一對(duì)應(yīng)關(guān)系的有序表。索引是提高數(shù)據(jù)文件訪問(wèn)效率的有效方法,也存在弊端:1)索引是以文件的形式存儲(chǔ)的,DBMS會(huì)將一個(gè)表的所有索引保存在同一個(gè)索引文件中,索引文件需要占用磁盤(pán)空間;2)索引在提高查詢(xún)速度的同時(shí),會(huì)降低更新表的速度。索引在邏輯上通常包含以下幾類(lèi):普通索引(INDEX),通常使用關(guān)鍵字INDEX或KEY唯一性索引(UNIQUE),索引列的所有值都只能出現(xiàn)一次主鍵(PRIMARYKEY),主鍵是一種唯一性索引,創(chuàng)建主鍵時(shí),必須指定關(guān)鍵字PRIMARYKEY,且不能有空值。實(shí)際使用中,索引通常索引通常被創(chuàng)建程單列索引和組合索引。索引的創(chuàng)建1.使用CREATEINDEX語(yǔ)句創(chuàng)建索引,但該句不能創(chuàng)建主鍵。語(yǔ)法格式:CREATE[UNIQUE]INDEXindex_nameONtbl_name(index_col_name...)關(guān)鍵字:ASC(升序)和DESC(降序),默認(rèn)時(shí)為ASC使用CREATETABLE語(yǔ)句創(chuàng)建索引,索引可以在創(chuàng)建表的同時(shí)被創(chuàng)建。使用ALTERTABLE語(yǔ)句創(chuàng)建索引,在使用ALTERTABLE語(yǔ)句修改表的同時(shí),可以向已有的表中添加索引。(語(yǔ)法項(xiàng)P100)索引的查看,可以使用SHOWINDEX語(yǔ)句索引的刪除,可以使用DROPINDEX或ALTERINDEX語(yǔ)句來(lái)刪除。數(shù)據(jù)更新(P102)數(shù)據(jù)更新在SQL中三類(lèi)相應(yīng)語(yǔ)句,插入數(shù)據(jù)(INSERT)、修改數(shù)據(jù)(UPDATE)、刪除數(shù)據(jù)(DELETE)㈠插入數(shù)據(jù)_(詳細(xì)看書(shū))使用INSERT...VALUES語(yǔ)句插入單行或多行元組數(shù)據(jù)語(yǔ)法格式:INSERT[INTO]tbl_name[(col_name,…)]{VALUES|VALUE}({expr|DEFAULT},…),(…),…語(yǔ)法中:1)”tbl_name”指定欲被插入數(shù)據(jù)的表名”col_name”指定需要插入數(shù)據(jù)的列名列表通過(guò)關(guān)鍵字”VALUES”或”VALUE”引導(dǎo)的子句,其包含各列需要插入的數(shù)據(jù)單.”expr”表示常量、變量或一個(gè)表達(dá)式,也可以是空值NULL,其值的數(shù)據(jù)類(lèi)型要與列的數(shù)據(jù)類(lèi)型一致。關(guān)鍵字“DEFAULT”即用于指定此列值為該列的默認(rèn)值,前提是該列之前已經(jīng)明確指定了默認(rèn)值,否則插入語(yǔ)句會(huì)出錯(cuò)。使用INSERT...SET語(yǔ)句插入部分列值數(shù)據(jù)可以使用INSERT...SET語(yǔ)句直接給表中的某(些)列指定對(duì)應(yīng)的列值,既要插入數(shù)據(jù)的列名在SET子句中指定,這種方式更靈活,語(yǔ)法格式如下:INSERT[INTO]tbl_nameSETcol_name={expr|DEFAULT},…使用INSERT...SELECT語(yǔ)句插入子查詢(xún)數(shù)據(jù)子查詢(xún)不僅可以嵌套在SELECT語(yǔ)句中,用于構(gòu)造父查詢(xún)的條件,也可以嵌套在INSERT語(yǔ)句中,用于生成要批量插入的數(shù)據(jù)。語(yǔ)法格式:INSERT[INTO]tbl_name[(col_name,…)]SELECT…㈡刪除數(shù)據(jù)在MySQL中,可以使用DELETE語(yǔ)句刪除表中的一行或多行數(shù)據(jù),語(yǔ)法格式如下:DELETEFROMtbl_name[WHEREwhere_condition][ORDERBY…][LIMITrow_count]㈢修改數(shù)據(jù)可以使用UPDATE語(yǔ)句來(lái)修改更新一個(gè)表中的數(shù)據(jù),實(shí)現(xiàn)對(duì)表中行的列數(shù)據(jù)進(jìn)行修改,語(yǔ)法格式如下:UPDATEtbl_nameSETcol_name1={expr1|DEFAULT}[,col_name2={expr2|DEFAULT}]…[WHEREwhere_condition][ORDERBY…][LIMITrow_count]數(shù)據(jù)查詢(xún)(P105)數(shù)據(jù)查詢(xún)是SQL語(yǔ)言的核心功能,其用途是從數(shù)據(jù)庫(kù)的一張或多張表中檢索出滿足條件的數(shù)據(jù)信息。SQL是提供SELECT語(yǔ)句進(jìn)行數(shù)據(jù)查詢(xún),該功能強(qiáng)大、使用靈活,數(shù)學(xué)理論基礎(chǔ)是關(guān)系數(shù)據(jù)模型中對(duì)表對(duì)象的一組關(guān)系運(yùn)算,既選擇、投影和連接。㈠SELECT語(yǔ)句使用SELECT可以在需要時(shí)從數(shù)據(jù)庫(kù)中快捷方便的檢索、統(tǒng)計(jì)或輸出數(shù)據(jù)。該語(yǔ)句的執(zhí)行過(guò)程是從數(shù)據(jù)庫(kù)中選取匹配的特定行和列,并將這些數(shù)據(jù)組織成一個(gè)結(jié)果集,然后以一張臨時(shí)表的形式返回。SELECT語(yǔ)法格式如下:SELECT[ALL|DISTINCT|DISTINCTROW]seiect_expr[,select_expr…]FROMtable_references[WHEREwhere_condition][GROUPBY{col_name|expr|position}[ASC|DESC],…[WITHROLLUP]][HAVINGwhere_condition][ORDERBY{col_name|expr|position}[ASC|DESC],…][LIMIT{[offset,]row_count|row_countOFFSEToffset}]此語(yǔ)法結(jié)構(gòu)中,SELECT子句用于指定輸出字段;FROM子句用于指定數(shù)據(jù)的來(lái)源;WHERE子句用于指定數(shù)據(jù)的選擇條件;ORDERBY子句用于對(duì)查詢(xún)的結(jié)果進(jìn)行排序。在這些子句中,SELECT子句和FROM子句是必需的,其他子句都是可選的,并且在SELECT語(yǔ)句的使用中,所有被添加選用的子句必須依照SELECT語(yǔ)句的語(yǔ)法格式所羅列的順序來(lái)寫(xiě)。此外,在SELECT語(yǔ)句的語(yǔ)法結(jié)構(gòu)中,三個(gè)關(guān)鍵字“ALL”“DISTINCT”“DISTINCTROW”為可選項(xiàng),用于指定是否應(yīng)返回結(jié)果集中的重復(fù)行。㈡列的選擇與指定在SELECT語(yǔ)句中,語(yǔ)法項(xiàng)“select_expr”主要用于指定需要查詢(xún)的內(nèi)容,其指定的方法有以下幾種:選擇指定的列(P107詳細(xì))選擇一個(gè)或多個(gè)表中的某個(gè)或某些列作為SELECT語(yǔ)句的查詢(xún)列。若查詢(xún)列有多個(gè),則各列名之間需要用逗號(hào)進(jìn)行分隔,且查詢(xún)結(jié)果返回時(shí),結(jié)果集中各列的次序是依照SELECT語(yǔ)句中指定列的次序給出的;若查詢(xún)一個(gè)表中所有列,則可在SELECT語(yǔ)句指定列的位置上直接使用星號(hào)“*”通配符,而不必逐個(gè)列出所有列名,此時(shí)結(jié)果集中各列的次序一般是這些列在表定義中出現(xiàn)的次序。另外,列名的指定可以采用直接給出該列的名稱(chēng)的方式,也可以使用完全限定的列名方式,既“tbl_name.col_name”定義并使用列的別名在系統(tǒng)輸出查詢(xún)結(jié)果集中某些列或所有列的名稱(chēng)時(shí),若希望這些列的名稱(chēng)顯示為自定義的列名,而非原表中的列名,則可以在SELECT語(yǔ)句中添加AS子句到指定列名之后,以此來(lái)修改查詢(xún)結(jié)果集中列的別名。其具體使用

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論