數(shù)據(jù)庫(kù)系統(tǒng)2018版自考_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)2018版自考_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)2018版自考_第3頁(yè)
已閱讀5頁(yè),還剩13頁(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)介

1、數(shù)據(jù)庫(kù)系統(tǒng)2018版自考數(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ǔ)數(shù)據(jù)的倉(cāng)庫(kù)。3)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBM)是專門用于建立和管理數(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ù)一致性、

2、數(shù)據(jù)獨(dú)立性高P32三、數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu):是指數(shù)據(jù)庫(kù)系統(tǒng)是由模式、外模式和內(nèi)模式 三級(jí)構(gòu)成(P34)模式:也稱為概念模式或邏輯模式,它是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征 的描述,是所有用戶的公共數(shù)據(jù)視圖;外模式:也成為子模式或用戶模式,它是數(shù)據(jù)庫(kù)用戶能夠看見和使用的局部數(shù) 據(jù)的邏輯結(jié)構(gòu)和特征的描述,是與某一應(yīng)用有關(guān)的邏輯表示;內(nèi)模式:也稱儲(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)模式

3、變化影響,正是這兩層映像保證了數(shù)據(jù)庫(kù)系統(tǒng)中 數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性,使得數(shù)據(jù)的定義和描述可以從 應(yīng)用程序中分離出去,從而簡(jiǎn)化了數(shù)據(jù)庫(kù)應(yīng)用程序的開發(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ù)模型分類:第一類: 概念層數(shù)據(jù)模型,第二類:邏輯層數(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)系;概

4、念模型表示方法:實(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)系、列、屬性、行、 元組、分量、碼或鍵、超碼和超鍵、候選碼和候選鍵、主碼和主鍵

5、、全碼和全 鍵、主屬性、外碼或外鍵、參照關(guān)系和被參照關(guān)系、域、數(shù)據(jù)類型、關(guān)系模式、 關(guān)系數(shù)據(jù)庫(kù)。(P44)四、關(guān)系操作集合:常用操作包括查詢操作和插入、刪除、修改操作兩大部分。關(guān)系數(shù)據(jù)語(yǔ)言的分類:關(guān)系代數(shù)語(yǔ)言、關(guān)系演算語(yǔ)言、以及兼兩種特點(diǎn)的結(jié)構(gòu)化查詢語(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 看書理解)B:專門的關(guān)系運(yùn)算:不僅涉及行,還涉及列,它可分為一元專

6、門關(guān)系操作 和二元專門關(guān)系操作;其中,一元專門關(guān)系操作包括對(duì)單個(gè)關(guān)系進(jìn)行垂直分解 的投影運(yùn)算和進(jìn)行水平分解選擇運(yùn)算;二元專門關(guān)系操作則是對(duì)兩個(gè)關(guān)系進(jìn)行操作,包括連接運(yùn)算和除運(yùn)算專門的關(guān)系運(yùn)算有:選擇、投影、連接、除;六、關(guān)系的完整性約束:有三類完整性約束,實(shí)體完整性約束、參照完整性約 束、用戶定義完整性約束。關(guān)系模型完整性約束的檢驗(yàn):為了維護(hù)關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)的完整性,在對(duì) 關(guān)系數(shù)據(jù)庫(kù)執(zhí)行插入、刪除和更新操作時(shí),需要檢驗(yàn)是否滿足上述三類完整性 約束。(P56,看書進(jìn)行補(bǔ)充)七、關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論:關(guān)系模型中可能存在的冗余和異常問題:數(shù)據(jù)冗余、更新異常、插入異常、刪除異常;現(xiàn)在人們提出許多種

7、類型的數(shù)據(jù)依賴,其中最重要的是函數(shù)依賴FD,多值依賴MVD八、函數(shù)依賴和關(guān)鍵字:(P57)函數(shù)依賴:是指關(guān)系中屬性間的對(duì)應(yīng)關(guān)系。根據(jù)不同性質(zhì)可分完全函數(shù)依賴、 部分函數(shù)依賴、傳遞函數(shù)依賴;關(guān)鍵字:設(shè)R為任意給定關(guān)系,U為其所含的全部屬性集合,X為U的子集, 若有完全函數(shù)依賴 XU,則X為R的一個(gè)候選關(guān)鍵字。九、范式與關(guān)系規(guī)范化過程:關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系需要滿足一定的要求,不同 程度的要求稱為不同的范式(NF)。滿足最低要求的稱為第一范式(1NF),這是最 基本的范式;在第一范式的基礎(chǔ)上進(jìn)一步滿足一些新要求的稱為第二范式(2NF);以此類推,再進(jìn)一步的范式成為第三范式(3NF)。第一范式:設(shè)定R為

8、任一給定關(guān)系,如果R中每個(gè)列與行的交點(diǎn)處的取值 都是不可再分的基本元素,則 R為第一范式。第二范式:設(shè)定R為任一給定關(guān)系,若R為1NF,且其所有非主屬性都完全 函數(shù)依賴于候選關(guān)鍵字,則 R為第二范式。第三范式:設(shè)定R為任一給定關(guān)系,若R為2NF,且其每一個(gè)非主屬性都不 傳遞函數(shù)依賴于候選關(guān)鍵字,則 R為第三范式。BCNF為了解決3NF有時(shí)會(huì)出現(xiàn)的插入及刪除操作異常等問題,和提出了第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

9、)數(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)作,它們通常是通過應(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年由提出 基于第三范式的 設(shè)計(jì)方法二、數(shù)據(jù)庫(kù)設(shè)計(jì)的過程:將數(shù)據(jù)庫(kù)設(shè)計(jì)分為這樣幾個(gè)階段:需求分析階段;結(jié)

10、構(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)用過程、收集與分析數(shù)據(jù)、編寫需求分析報(bào)告;編寫需求分析報(bào)告:1)數(shù)據(jù)庫(kù)的應(yīng)用功能目標(biāo)2)標(biāo)明不同用戶視圖范圍3)應(yīng)用處理過程需求說(shuō)明i :數(shù)據(jù)流程圖,其主要反映應(yīng)用部門原始業(yè)務(wù)處理的工作流程ii :任務(wù)分類表,其標(biāo)明不同任務(wù)的功能及使用情況iii:數(shù)據(jù)操作特征表,標(biāo)明任務(wù)和數(shù)據(jù)間的聯(lián)系及不

11、同數(shù)據(jù)的不同操作 特征與執(zhí)行頻率iv:操作過程說(shuō)明書,其根據(jù)數(shù)據(jù)流程圖、任務(wù)分類表和各類原始資料4)數(shù)據(jù)字典(DD,是數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)三級(jí)結(jié)構(gòu)定義的數(shù)據(jù)庫(kù),通常指 的是數(shù)據(jù)庫(kù)系統(tǒng)中各類數(shù)據(jù)詳細(xì)描述的集合。5)數(shù)據(jù)量:根據(jù)數(shù)據(jù)分類表中的靜態(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)通常稱為概念模型。五、邏輯結(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)(1)邏輯結(jié)構(gòu)

12、設(shè)計(jì)的輸入與輸出信息(2)邏輯結(jié)構(gòu)設(shè)計(jì)的步驟六、物理設(shè)計(jì)是指對(duì)于一個(gè)給定的數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),研究并構(gòu)造物理結(jié)構(gòu)的過程,其具體任務(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),只是利用DBMS1供的設(shè)施調(diào)整數(shù)據(jù)庫(kù)中的數(shù)據(jù)的存儲(chǔ)位置。重構(gòu)是指部分修改數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)。第三節(jié)

13、關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)方法一、關(guān)系數(shù)據(jù)庫(kù):是一類采用關(guān)系模型作為邏輯數(shù)據(jù)模型的數(shù)據(jù)庫(kù)系統(tǒng),它的 設(shè)計(jì)過程遵從數(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ì)過程與各級(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í)模式如圖:wi rwi rwi rw應(yīng)尉 應(yīng)臚應(yīng)胎應(yīng)用4

14、應(yīng)肌應(yīng)阻朗3戶UWT :朗斗/Hwy 二、概念結(jié)構(gòu)設(shè)計(jì)方法:通常采用自頂向下法,通過兩個(gè)步驟完成概念設(shè)計(jì), 即首先建立局部信息結(jié)構(gòu),然后將局部信息結(jié)構(gòu)合成為全局信息結(jié)構(gòu)并優(yōu)化。1、E-R圖的表示方法i )實(shí)體性,用矩形表示;ii )屬性,用橢圓形表 示;iii )聯(lián)系,用菱形表示。2、兩個(gè)實(shí)體型之間的聯(lián)系:一對(duì)一聯(lián)系(1:1);一對(duì)多聯(lián)系(1: N)多對(duì)多聯(lián)系(M:N)3、 兩個(gè)以上的實(shí)體型之間的聯(lián)系:(P75)也存在一對(duì)一;一對(duì)多;多對(duì)多;4、單個(gè)實(shí)體型內(nèi)的聯(lián)系:同一個(gè)實(shí)體集內(nèi)各實(shí)體之間也可以存在一對(duì)一, 一對(duì)多,多對(duì)多的聯(lián)系。5、局部信息結(jié)構(gòu)設(shè)計(jì):根據(jù)需求分析報(bào)告中標(biāo)明的不同用戶視圖范圍所

15、建立的滿足該范圍內(nèi)用戶需求的信息結(jié)構(gòu)稱為局部信息結(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)。合并過程是一個(gè)不斷發(fā)現(xiàn)和解決沖突的過程,通常,各局部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

16、 )同一個(gè)實(shí)體在不同的E-R圖中屬性個(gè)數(shù)和類型不同iii )實(shí)體之間的聯(lián)系在不同的 E-R圖中是不同的類型三、邏輯結(jié)構(gòu)設(shè)計(jì)方法邏輯結(jié)構(gòu)設(shè)計(jì)任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)產(chǎn)生的概念模型轉(zhuǎn)換為具體的DBM新支持的邏輯數(shù)據(jù)模型,也就是導(dǎo)出特定的DBM測(cè)以處理的數(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í)例講解)

17、物理設(shè)計(jì)的主要任務(wù)是通過對(duì)關(guān)系建立索引和聚集來(lái)實(shí)現(xiàn)與應(yīng)用相關(guān)數(shù)據(jù)的 邏輯連接和物理聚集,以改善對(duì)數(shù)據(jù)庫(kù)的存取效率。1. 建立索引(通常有動(dòng)態(tài)和靜態(tài)兩種)2. 建立聚集(聚集是將相關(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ù)查詢、 視圖使用。一、SQL概述:SQL是 1974 年由 Boyce 和 Chamberlin 提出;SQL的特點(diǎn):1)SQL不是某個(gè)特定的數(shù)據(jù)庫(kù)供應(yīng)商專有的語(yǔ)言。幾乎所有

18、重要 的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持 SQL所以掌握SQL可以幫助用戶與幾乎所有的關(guān) 系數(shù)據(jù)庫(kù)進(jìn)行交互。2)SQL簡(jiǎn)單易學(xué)。它的語(yǔ)句全都是由具有很強(qiáng)的描述性的英語(yǔ)單詞所組成,而 且這些單詞的數(shù)目不多。3)SQL盡管看上去很簡(jiǎn)單,但它實(shí)際上是一種強(qiáng)有力的語(yǔ)言,靈活使用其語(yǔ)言 元素,可以進(jìn)行非常復(fù)雜和高級(jí)的數(shù)據(jù)庫(kù)操作。SQL的組成:SQL是集數(shù)據(jù)查詢、數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制四大功能為 一體。核心包括以下幾個(gè)部分:1. 數(shù)據(jù)定義語(yǔ)言(DDL :數(shù)據(jù)定義語(yǔ)言包括主要 SQL語(yǔ)句有以下三個(gè):1)CREATES于創(chuàng)建數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象2) ALTER用于對(duì)數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象進(jìn)行修改3) DROP用于刪除

19、數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象2. 數(shù)據(jù)操縱語(yǔ)言(DML:主要用于操縱數(shù)據(jù)庫(kù)中各種對(duì)象,特別是檢索和修 數(shù)據(jù)。主要包括語(yǔ)句如下:1) SELECT用于從表或視圖中檢索數(shù)據(jù),其是數(shù)據(jù)庫(kù)中使用最為頻繁的 SQL語(yǔ)句之一o2) INSERT用于將數(shù)據(jù)插入到表或視圖中。3) UPDATE用于修改表或視圖中的數(shù)據(jù),其即可修改表或視圖中一行 數(shù)據(jù),也可同時(shí)修改多行或全部數(shù)據(jù)。4) DELETE用于從表和視圖中刪除數(shù)據(jù),其中可根據(jù)條件刪除指定的 數(shù)據(jù)。3. 數(shù)據(jù)控制語(yǔ)言(DCL :主要用于安全管理,例如確定哪些用戶可以查看或修 改數(shù)據(jù)庫(kù)中的數(shù)據(jù),主要包括以下 SQL語(yǔ)句:1) GRANT用于授予權(quán)限,可把語(yǔ)句許可或?qū)ο?/p>

20、許可的權(quán)限授予其他用戶和 角色。2) REVOKE用于收回權(quán)限,其功能與 GRAN相反,但不影響該用戶或角色 從其他角色中作為成員繼承許可權(quán)限。4. 嵌入式和動(dòng)態(tài)SQL規(guī)則:規(guī)則規(guī)定了 SQL語(yǔ)句在高級(jí)程序設(shè)計(jì)語(yǔ)言中使用的 規(guī)范方法,以便適應(yīng)較為復(fù)雜的應(yīng)用。5. SQL調(diào)用和會(huì)話規(guī)則:SQL調(diào)用包括SQL例程和調(diào)用規(guī)則,以便提高 SQL的 靈活性、有效性、共享性以及使用 SQL具有更多的高級(jí)語(yǔ)言的特征。SQL會(huì)話 規(guī)則則可使應(yīng)用程序連接到多個(gè) SQLK務(wù)器中的某個(gè),并與之交互。二、MySQ預(yù)備知識(shí)目前,使用MySQ數(shù)據(jù)庫(kù)管理系統(tǒng)構(gòu)建各種信息管理系統(tǒng)或互聯(lián)網(wǎng)網(wǎng)站的應(yīng)用 環(huán)境主要有如下構(gòu)架方式:1

21、) LAMP Linux作為操作系統(tǒng),Apache作為WebK務(wù)器,MySQ作為數(shù)據(jù)庫(kù) 管理系統(tǒng),PHR Perl或Python語(yǔ)言作為服務(wù)器端腳本解釋器。2) WAMJPWindows作為操作系統(tǒng),Apache作為 Web服務(wù)器,MySQL乍為數(shù)據(jù) 庫(kù)管理系統(tǒng),PHP Perl或Python語(yǔ)言作為服務(wù)器端腳本解釋器。、MySQ中的 SQL( P87)MySQ作為一種關(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)。如圖SQLMySQL在 SQL標(biāo)準(zhǔn)的基礎(chǔ)上增加了部分?jǐn)U展語(yǔ)言要素: 包括常量、變

22、量、運(yùn)算符、 表達(dá)式、函數(shù)、流程控制語(yǔ)句和注釋。1)常量:是指在程序運(yùn)行過程中值不變的量,也稱為字面值或標(biāo)量值。常量的 使用格式取決于值的數(shù)據(jù)類型,可分為字符串常量、數(shù)值常量、十六進(jìn)制常量、 時(shí)間日期常量、位字段值、布爾值和 NULL值。2)變量:用于臨時(shí)存儲(chǔ)數(shù)據(jù),變量有名字和數(shù)據(jù)類型兩個(gè)屬性。其中變量的名字用于標(biāo)識(shí)變量,變量的數(shù)據(jù)類型用于確定變量中存儲(chǔ)數(shù)值的格式和可執(zhí)行的 運(yùn)算。在MySQ中,變量分為用戶變量和系統(tǒng)變量,在使用時(shí),用戶變量前常添一個(gè)符號(hào)“ ,用于將其和列名區(qū)分開;而大多數(shù)系統(tǒng)變量應(yīng)用于其他 SQL語(yǔ)句時(shí),必須在系統(tǒng)變量名前加兩個(gè)“ 3)運(yùn)算符(P88)4)表達(dá)式:表達(dá)式是常量

23、、變量、列名、復(fù)雜計(jì)算、運(yùn)算符、函數(shù)的集合5)內(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ù)類型轉(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)

24、建、選擇、修改、刪除、查看等操作。1. 創(chuàng)建數(shù)據(jù)庫(kù),可以使用 CREATE DATABASECREATE SCHEMA2. 選擇數(shù)據(jù)庫(kù),使用USE語(yǔ)句,指定某個(gè)數(shù)據(jù)庫(kù)為當(dāng)前數(shù)據(jù)庫(kù)之后, 才能對(duì)該數(shù)據(jù)庫(kù)及其存儲(chǔ)的數(shù)據(jù)對(duì)象進(jìn)行各種操作。3. 修改數(shù)據(jù)庫(kù),可以使用 ALTER DATABASES ALTER SCHEM來(lái)修改已 被創(chuàng)建的數(shù)據(jù)庫(kù)的相關(guān)參數(shù)。4. 刪除數(shù)據(jù)庫(kù),可以使用 DROP DATABASEDROP SCHEMA5. 查看數(shù)據(jù)庫(kù),可以使用SHOVDATABAS或SHOWCHEMM選項(xiàng)“LIKE” 關(guān)鍵字用于匹配指定的數(shù)據(jù)庫(kù)名稱,可選項(xiàng)“ WHERE從句用于指定數(shù)據(jù)庫(kù)名稱 查詢范圍的條

25、件。表定義:只有成功創(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ǔ)的基本單位。1. 創(chuàng)建表,MySQI使用CREATTABLE語(yǔ)句創(chuàng)建表。該語(yǔ)法主要由表的創(chuàng)建定義、表選項(xiàng)、和分區(qū)選項(xiàng)等內(nèi)容構(gòu)成。1) 臨時(shí)表與持久表,帶 TEMPORARY臨時(shí)表,不帶為持久表2) 數(shù)據(jù)類型,主要有數(shù)值類型、布爾型、日期和時(shí)間類型、字符串類型、空 間數(shù)據(jù)類型等。3) 關(guān)鍵字 AUTO_INCREMENT4) 指定默認(rèn)值5) NULL值,指沒有值或缺值。6) 主鍵,通過PRIMARYKEY關(guān)鍵字來(lái)指定,主鍵值必須唯一,且一定要為NOT NULL2. 更新表,

26、為了實(shí)現(xiàn)數(shù)據(jù)庫(kù)表的規(guī)范化設(shè)計(jì)的目的,可以使用ALTER TABLE句來(lái)更改原有表的結(jié)構(gòu),有以下幾個(gè)子句:1) ADDCOLUM子句,增加新列,也可增加多個(gè)列。也可在 ALTER TABLET ADDPRIMARY KEYXDD INDE帶口 ADDFOREIGN KEY原表添加一個(gè)主鍵、索引和 外鍵。2) CHANGECOLUM子句,修改制定列的名稱和數(shù)據(jù)類型,且在 ALTER TABLE 下同時(shí)放入多個(gè)CHANGECOLUI子句。3) ALTERCOLUM子句,修改或刪除指定列的默認(rèn)值。4) MODIFYCOLUM子句,與ALTERCOLUM不同的是,只是修改列的數(shù)據(jù)類型, 不會(huì)干涉列名。5

27、) DROPCOLUM子句,用于卸除多余的列,一旦卸除列,原本存儲(chǔ)在該列的 一切內(nèi)容都會(huì)跟著被卸除。6) RENAMECOLUM子句,為表重新賦予一個(gè)表名。3. 重命名表, 除了前面 ALTER TABLE語(yǔ)句,也可以直接用 RENAME TAB進(jìn) 行更改表的名字。4. 刪除表,通過DROP TABLE句實(shí)現(xiàn),但操作者必須有該命令權(quán)限,刪除表 時(shí),數(shù)據(jù)和分區(qū)信息均會(huì)被刪除,但權(quán)限不會(huì)刪除。5. 查看表,1)顯示表的名稱,使用 SHOW TABLES句;2)顯示表的結(jié)構(gòu),使用 SHOW COLUM語(yǔ)句。五、索引定義索引,就是DBMS艮據(jù)表中的一列或若干列按照一定順序建立的列值與記錄行 之間的對(duì)應(yīng)

28、關(guān)系表,因而索引實(shí)質(zhì)上是一張描述索引列值與原表中記錄行之間 一一對(duì)應(yīng)關(guān)系的有序表。索引是提高數(shù)據(jù)文件訪問效率的有效方法,也存在弊端:1)索引是以文件的形式存儲(chǔ)的,DBM會(huì)將一個(gè)表的所有索引保存在同一個(gè)索 引文件中,索引文件需要占用磁盤空間;2)索引在提高查詢速度的同時(shí),會(huì)降低更新表的速度。索引在邏輯上通常包含以下幾類:1)普通索引(INDEX,通常使用關(guān)鍵字INDEX或KEY2)唯一性索引(UNIQUE ,索引列的所有值都只能出現(xiàn)一次3)主鍵(PRIMARY KEY,主鍵是一種唯一性索引,創(chuàng)建主鍵時(shí),必須指定關(guān) 鍵字PRIMARY KE,且不能有空值。實(shí)際使用中,索引通常索引通常被創(chuàng)建程單列索

29、引和組合索引。.1. 索引的創(chuàng)建1. 使用CREATE INDE語(yǔ)句創(chuàng)建索引,但該句不能創(chuàng)建主鍵。語(yǔ)法格式:CREATEUNIQUEINDEX in dex_nameON tbl_ name(in dex_col_ name.)關(guān)鍵字:ASC升序)和DESC降序),默認(rèn)時(shí)為ASC2. 使用CREATE TABL語(yǔ)句創(chuàng)建索弓I ,索引可以在創(chuàng)建表的同時(shí)被創(chuàng)建。3. 使用ALTERTABLE語(yǔ)句創(chuàng)建索弓I ,在使用ALTERTABLE語(yǔ)句修改表的同時(shí),可 以向已有的表中添加索引。(語(yǔ)法項(xiàng)P100)4. 索引的查看,可以使用 SHOW INDEM句5. 索引的刪除,可以使用 DROP INDEX或A

30、LTER INDEX®句來(lái)刪除。七、數(shù)據(jù)更新(P102)數(shù)據(jù)更新在SQL中三類相應(yīng)語(yǔ)句,插入數(shù)據(jù)(INSERT)修改數(shù)據(jù)(UPDATE、 刪除數(shù)據(jù)(DELETE插入數(shù)據(jù)_(詳細(xì)看書)1. 使用INSERT.VALUES語(yǔ)句插入單行或多行元組數(shù)據(jù)語(yǔ)法格式:INSERTINTOtbl_name(col_name,)VALUES | VALUE(expr | DEFAULT-),(),語(yǔ)法中:1) ” tbl_name ”指定欲被插入數(shù)據(jù)的表名2)” col_name”指定需要插入數(shù)據(jù)的列名列表3)通過關(guān)鍵字” VALUES或” VALUE引導(dǎo)的子句,其包含各列需要插 入的數(shù)據(jù)單I)” e

31、xpr ”表示常量、變量或一個(gè)表達(dá)式,也可以是空值NULL其值的數(shù)據(jù)類型要與列的數(shù)據(jù)類型一致。II)關(guān)鍵字“ default即用于指定此列值為該列的默認(rèn)值,前提是 該列之前已經(jīng)明確指定了默認(rèn)值,否則插入語(yǔ)句會(huì)出錯(cuò)。2. 使用INSERT.SET語(yǔ)句插入部分列值數(shù)據(jù)可以使用INSERT.SET語(yǔ)句直接給表中的某(些)列指定對(duì)應(yīng)的列值,既 要插入數(shù)據(jù)的列名在SET子句中指定,這種方式更靈活,語(yǔ)法格式如下:INSERTINTOtbl_nameSET col_name=expr | DEFAULT3. 使用INSERT.SELECT語(yǔ)句插入子查詢數(shù)據(jù)子查詢不僅可以嵌套在 SELECTS句中,用于構(gòu)造父

32、查詢的條件,也可以嵌套在 INSERT語(yǔ)句中,用于生成要批量插入的數(shù)據(jù)。語(yǔ)法格式:INSERTINTOtbl_name(col_name,)SELECT刪除數(shù)據(jù)在MySQ中,可以使用DELETES句刪除表中的一行或多行數(shù)據(jù),語(yǔ)法格式如下:DELETE FROM tbl_nameWHERE where_c on ditio nORDER BY LIMIT row_cou nt修改數(shù)據(jù)可以使用UPDATED句來(lái)修改更新一個(gè)表中的數(shù)據(jù),實(shí)現(xiàn)對(duì)表中行的列數(shù)據(jù)進(jìn)行 修改,語(yǔ)法格式如下:UPDATE tbl_nameSET col_name1=expr1 | DEFAULT,col_name2=expr2

33、 | DEFAULTWHERE where_c on diti onORDER BY-LIMIT row_cou nt八、數(shù)據(jù)查詢(P105)數(shù)據(jù)查詢是SQL語(yǔ)言的核心功能,其用途是從數(shù)據(jù)庫(kù)的一張或多張表中檢索出 滿足條件的數(shù)據(jù)信息。SQL是提供SELECTS句進(jìn)行數(shù)據(jù)查詢,該功能強(qiáng)大、使用靈活,數(shù)學(xué)理論 基礎(chǔ)是關(guān)系數(shù)據(jù)模型中對(duì)表對(duì)象的一組關(guān)系運(yùn)算,既選擇、投影和連接SELECTS句使用SELECTS以在需要時(shí)從數(shù)據(jù)庫(kù)中快捷方便的檢索、統(tǒng)計(jì)或輸業(yè)據(jù)該語(yǔ)句的執(zhí)行過程是從數(shù)據(jù)庫(kù)中選取匹配的特定行和列,并將這些數(shù)據(jù)組織成 一個(gè)結(jié)果集,然后以一張臨時(shí)表的形式返回。SELECTS法格式如下:SELECT

34、ALL | DISTINCT) DISTINCTROWseiect_expr,select_exprFROM table_refere ncesWHERE where_c on diti onGROUP BYcol_name| expr | positionASC | DESC,WITH ROLLUPHAVING where_co nditio nORDER BYcol_name| expr | positionASC | DESC,LIMIToffset,row_cou nt | row_co unt OFFSET offset此語(yǔ)法結(jié)構(gòu)中,SELEC子句用于指定輸出字段;FROMF句用于指

35、定數(shù)據(jù)的來(lái)源; WHER子句用于指定數(shù)據(jù)的選擇條件; ORDER B子句用于對(duì)查詢的結(jié)果進(jìn)行排序。在這些子句中,SELECTF句和FROMF句是必需的,其他子句都是可選的, 并且在SELECTS句的使用中,所有被添加選用的子句必須依照SELECTS句的語(yǔ)法格式所羅列的順序來(lái)寫。此外,在SELECTS句的語(yǔ)法結(jié)構(gòu)中,三個(gè)關(guān)鍵字“ALL” “DISTINCT” “DISTINC TRO”為可選項(xiàng),用于指定是否應(yīng)返回結(jié)果集中的重復(fù)行。列的選擇與指定在SELECTS句中,語(yǔ)法項(xiàng)“ select_expr ”主要用于指定需要查詢的內(nèi)容, 其指定的方法有以下幾種:1)選擇指定的列(P107詳細(xì))選擇一個(gè)或

36、多個(gè)表中的某個(gè)或某些列作為 SELECTS句的查詢列。若查詢列 有多個(gè),則各列名之間需要用逗號(hào)進(jìn)行分隔,且查詢結(jié)果返回時(shí),結(jié)果集中各 列的次序是依照SELECTS句中指定列的次序給出的;若查詢一個(gè)表中所有列, 則可在SELECT語(yǔ)句指定列的位置上直接使用星號(hào)“ *”通配符,而不必逐個(gè)列 出所有列名,此時(shí)結(jié)果集中各列的次序一般是這些列在表定義中出現(xiàn)的次序。 另外,列名的指定可以采用直接給出該列的名稱的方式,也可以使用完全限定 的列名方式,既“ tbl_name.col_name ”2)定義并使用列的別名在系統(tǒng)輸出查詢結(jié)果集中某些列或所有列的名稱時(shí),若希望這些列的名稱 顯示為自定義的列名,而非原表中的列名,則可以在SELECT語(yǔ)句中添加AS子句到指定列名之后,以此來(lái)修改查詢結(jié)果集中列的別名。其具體使用方法是將 SELECTS句的語(yǔ)法項(xiàng)“ se

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論