




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1.1 數(shù)據(jù)庫及其系統(tǒng)概念了解數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等基本概念理解數(shù)據(jù)模型與數(shù)據(jù)庫類型關(guān)系 熟悉數(shù)據(jù)庫系統(tǒng)組成及其各部分作用【本節(jié)學(xué)習(xí)目標(biāo)】一、什么是數(shù)據(jù)庫?數(shù)據(jù)庫是一種依照特定數(shù)據(jù)模型組織、存儲和管理數(shù)據(jù)的文件集合。這些文件一般存放在外部存儲器中,以便長久保存數(shù)據(jù),并可快速訪問。 容器文本圖表音視頻其它數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)庫與普通數(shù)據(jù)文件的主要區(qū)別: 數(shù)據(jù)庫可以支持不同應(yīng)用對數(shù)據(jù)共享訪問,普通數(shù)據(jù)文件難以支持。 數(shù)據(jù)庫可實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)管理,普通數(shù)據(jù)文件難以實(shí)現(xiàn)。 數(shù)據(jù)庫可獨(dú)立應(yīng)用程序,普通數(shù)據(jù)文件與應(yīng)用程序緊耦合。 數(shù)據(jù)庫的操作訪問與控制管理由數(shù)據(jù)庫管理系統(tǒng)軟件實(shí)現(xiàn);普通數(shù)據(jù)文件的操作
2、訪問與控制管理,都必須由應(yīng)用程序?qū)崿F(xiàn)。xxx數(shù)據(jù)庫xxx.mdfxxx.ldf數(shù)據(jù)文件日志文件例 某軟件廠商的數(shù)據(jù)庫文件組成如下圖所示二、什么是數(shù)據(jù)模型?1)數(shù)據(jù)結(jié)構(gòu): 用于描述事物對象的靜態(tài)特征,包括事物對象的數(shù)據(jù)組成、數(shù)據(jù)類型、數(shù)據(jù)性質(zhì)等。2)數(shù)據(jù)操作:用于描述事物對象的動態(tài)特征,包括數(shù)據(jù)的插入、修改、刪除和查詢等訪問操作。3)數(shù)據(jù)約束:用于描述數(shù)據(jù)結(jié)構(gòu)中數(shù)據(jù)之間的語義聯(lián)系、數(shù)據(jù)之間的制約和依存關(guān)系,以及數(shù)據(jù)動態(tài)變化的規(guī)則等。數(shù)據(jù)模型數(shù)據(jù)約束數(shù)據(jù)操作數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)模型是指描述事物對象的數(shù)據(jù)結(jié)構(gòu)組成、數(shù)據(jù)語義聯(lián)系、數(shù)據(jù)約束的抽象結(jié)構(gòu)及其說明。三、數(shù)據(jù)庫使用的數(shù)據(jù)模型 層次數(shù)據(jù)模型 網(wǎng)狀數(shù)據(jù)模型
3、 關(guān)系數(shù)據(jù)模型 其它數(shù)據(jù)模型(如對象數(shù)據(jù)模型、鍵值對數(shù)據(jù)模型、列式數(shù)據(jù)模型、文檔數(shù)據(jù)模型、圖形數(shù)據(jù)模型等)1. 層次數(shù)據(jù)模型層次數(shù)據(jù)模型思想:采用“樹”結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)?!案咝=虅?wù)系統(tǒng)”層次數(shù)據(jù)模型2. 網(wǎng)狀數(shù)據(jù)模型網(wǎng)狀數(shù)據(jù)模型思想:采用“網(wǎng)狀圖”結(jié)構(gòu)組織、存儲和管理數(shù)據(jù)?!案咝=虅?wù)系統(tǒng)”網(wǎng)狀數(shù)據(jù)模型3. 關(guān)系數(shù)據(jù)模型關(guān)系數(shù)據(jù)模型思想:采用“二維表”結(jié)構(gòu)組織、存儲和管理數(shù)據(jù),并以關(guān)聯(lián)列實(shí)現(xiàn)表之間的聯(lián)系。“課程目錄系統(tǒng)”關(guān)系數(shù)據(jù)模型4. 關(guān)系數(shù)據(jù)模型優(yōu)點(diǎn)與局限關(guān)系數(shù)據(jù)模型局限: 只用于結(jié)構(gòu)化數(shù)據(jù)的組織與存儲管理 支持的數(shù)據(jù)類型較簡單 難以支持互聯(lián)網(wǎng)廣泛應(yīng)用的非結(jié)構(gòu)化數(shù)據(jù)和復(fù)雜數(shù)據(jù)管理關(guān)
4、系數(shù)據(jù)模型優(yōu)點(diǎn): 數(shù)據(jù)結(jié)構(gòu)簡單、操作靈活 支持關(guān)系與集合運(yùn)算操作 支持廣泛使用的SQL數(shù)據(jù)庫操作語言標(biāo)準(zhǔn) 擁有眾多的軟件廠商產(chǎn)品與用戶四、數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)由用戶、數(shù)據(jù)庫應(yīng)用程序、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫四個部分組成。數(shù)據(jù)庫系統(tǒng)(Database Systems)是一類基于數(shù)據(jù)庫進(jìn)行數(shù)據(jù)管理與信息服務(wù)的軟件系統(tǒng)。1.數(shù)據(jù)庫用戶數(shù)據(jù)庫用戶(Users)是指數(shù)據(jù)庫系統(tǒng)的使用人員。典型的數(shù)據(jù)庫用戶2.數(shù)據(jù)庫應(yīng)用程序數(shù)據(jù)庫應(yīng)用程序是一種在DBMS支持下對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行訪問處理的應(yīng)用程序。數(shù)據(jù)庫應(yīng)用程序基本功能: 通過窗口輸入框采集用戶輸入數(shù)據(jù) 通過接口連接訪問數(shù)據(jù)庫 執(zhí)行用戶數(shù)據(jù)查詢 通過表單列表輸
5、出結(jié)果數(shù)據(jù) 。 數(shù)據(jù)庫管理系統(tǒng)(Database Manage System,DBMS )是一種專門用來創(chuàng)建數(shù)據(jù)庫、管理數(shù)據(jù)庫、維護(hù)數(shù)據(jù)庫,并提供外部對數(shù)據(jù)庫進(jìn)行訪問的系統(tǒng)軟件。3.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)一般具有如下基本功能: 創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)庫表以及其它對象 讀寫、修改、刪除數(shù)據(jù)庫表中數(shù)據(jù) 維護(hù)數(shù)據(jù)庫結(jié)構(gòu) 執(zhí)行數(shù)據(jù)訪問規(guī)則 提供數(shù)據(jù)庫并發(fā)訪問控制和安全控制 執(zhí)行數(shù)據(jù)庫備份和恢復(fù) 。 4.數(shù)據(jù)庫數(shù)據(jù)庫(Database)是一種依照特定數(shù)據(jù)模型組織、存儲和管理數(shù)據(jù)的文件集合。系號系名電話學(xué)號姓名性別所屬系課號課名關(guān)系數(shù)據(jù)庫表表表關(guān)聯(lián)用戶數(shù)據(jù)(用戶表)元數(shù)據(jù)(系統(tǒng)表) 索引數(shù)據(jù)(系統(tǒng)表)其它
6、數(shù)據(jù)(系統(tǒng)表)關(guān)系數(shù)據(jù)庫的數(shù)據(jù)內(nèi)容在關(guān)系數(shù)據(jù)庫中,除了存儲和管理應(yīng)用的用戶數(shù)據(jù)外,還需要存儲與管理數(shù)據(jù)庫本身的元數(shù)據(jù)、索引數(shù)據(jù)、運(yùn)行數(shù)據(jù)等系統(tǒng)數(shù)據(jù)。 五、關(guān)系數(shù)據(jù)庫中數(shù)據(jù)內(nèi)容關(guān)系數(shù)據(jù)庫用戶表:存儲用戶的應(yīng)用數(shù)據(jù)系統(tǒng)表:存儲數(shù)據(jù)庫系統(tǒng)自身數(shù)據(jù)視圖:通過虛擬表實(shí)現(xiàn)數(shù)據(jù)查詢處理索引:通過目錄數(shù)據(jù)結(jié)構(gòu)支持快速的數(shù)據(jù)查詢約束:對關(guān)系表及其數(shù)據(jù)施加規(guī)則存儲過程:在數(shù)據(jù)庫內(nèi)部實(shí)現(xiàn)特定功能程序的數(shù)據(jù)處理觸發(fā)器:在數(shù)據(jù)庫內(nèi)部實(shí)現(xiàn)數(shù)據(jù)操作事件觸發(fā)自動執(zhí)行的過程程序六、關(guān)系數(shù)據(jù)庫的對象組織某廠商關(guān)系數(shù)據(jù)庫的對象組織本節(jié)學(xué)習(xí)結(jié)束!1.2 數(shù)據(jù)庫技術(shù)發(fā)展了解數(shù)據(jù)庫技術(shù)發(fā)展階段了解數(shù)據(jù)庫領(lǐng)域技術(shù)了解數(shù)據(jù)庫技術(shù)發(fā)展趨勢【本
7、節(jié)學(xué)習(xí)目標(biāo)】一、數(shù)據(jù)管理技術(shù)發(fā)展階段1.人工管理階段(20世紀(jì)40年代中期-50年代中期) 應(yīng)用需求: 科學(xué)計(jì)算 硬件背景: 紙帶打孔輸入/輸出 軟件背景: 沒有操作系統(tǒng) 數(shù)據(jù)管理: 人工管理人工數(shù)據(jù)管理特點(diǎn): 程序員組織與管理數(shù)據(jù) 應(yīng)用程序依賴數(shù)據(jù)集 應(yīng)用之間無數(shù)據(jù)共享、數(shù)據(jù)冗余度大 數(shù)據(jù)集無結(jié)構(gòu)2.文件系統(tǒng)管理階段(20世紀(jì)50年代末-60年代中) 應(yīng)用需求:科學(xué)計(jì)算、信息管理 硬件背景:磁鼓、磁帶、磁盤 軟件背景:操作系統(tǒng)、文件系統(tǒng) 數(shù)據(jù)管理: 文件方式組織數(shù)據(jù)文件系統(tǒng)數(shù)據(jù)管理特點(diǎn): 由文件組織與存儲數(shù)據(jù)數(shù)據(jù)文件的數(shù)據(jù)記錄具有簡單的字段結(jié)構(gòu),但文件整體無結(jié)構(gòu)應(yīng)用程序依賴于數(shù)據(jù)文件,需自己
8、維護(hù)數(shù)據(jù)文件數(shù)據(jù)獨(dú)立性差,難以實(shí)現(xiàn)應(yīng)用程序之間的數(shù)據(jù)共享訪問3.數(shù)據(jù)庫系統(tǒng)管理階段(20世紀(jì)60年代末-現(xiàn)在) 應(yīng)用背景:大規(guī)模信息管理 硬件背景:大容量磁盤、磁盤陣列 軟件背景:數(shù)據(jù)庫管理系統(tǒng)(DBMS) 數(shù)據(jù)管理: 數(shù)據(jù)庫管理系統(tǒng)組織、存儲及訪問數(shù)據(jù)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)管理特點(diǎn):數(shù)據(jù)集結(jié)構(gòu)化,易于查詢與統(tǒng)計(jì)處理不同應(yīng)用程序可以實(shí)現(xiàn)數(shù)據(jù)共享訪問數(shù)據(jù)獨(dú)立性高,應(yīng)用可擴(kuò)展數(shù)據(jù)由DBMS統(tǒng)一管理和操作訪問二、數(shù)據(jù)庫技術(shù)發(fā)展經(jīng)歷時代1.第一代數(shù)據(jù)庫技術(shù)20世紀(jì)60年代末出現(xiàn)的層次模型數(shù)據(jù)庫技術(shù)和網(wǎng)狀模型數(shù)據(jù)庫技術(shù)。2.第二代數(shù)據(jù)庫技術(shù)20世紀(jì)70年代出現(xiàn)的關(guān)系模型數(shù)據(jù)庫技術(shù)。3.第三代數(shù)據(jù)庫技術(shù)20世紀(jì)9
9、0年代出現(xiàn)的面向?qū)ο髷?shù)據(jù)庫技術(shù)和對象-關(guān)系數(shù)據(jù)模型數(shù)據(jù)庫技術(shù)。4.第四代數(shù)據(jù)庫技術(shù)本世紀(jì)初期出現(xiàn)的半結(jié)構(gòu)化數(shù)據(jù)庫技術(shù),以及當(dāng)今面向互聯(lián)網(wǎng)應(yīng)用的非結(jié)構(gòu)化數(shù)據(jù)庫技術(shù)、大規(guī)模分布式數(shù)據(jù)庫技術(shù)。三、數(shù)據(jù)庫技術(shù)領(lǐng)域四、數(shù)據(jù)庫技術(shù)發(fā)展趨勢 數(shù)據(jù)庫規(guī)模朝兩級發(fā)展,大型數(shù)據(jù)庫系統(tǒng)越來越大,小型數(shù)據(jù)庫系統(tǒng)越來越小。 從數(shù)據(jù)庫行數(shù)據(jù)訪問模式,到列數(shù)據(jù)訪問模式。 從結(jié)構(gòu)化數(shù)據(jù)庫,到半結(jié)構(gòu)化XML數(shù)據(jù)庫、非結(jié)構(gòu)化數(shù)據(jù)庫。 從操作型數(shù)據(jù)庫系統(tǒng),到數(shù)據(jù)倉庫、商業(yè)智能數(shù)據(jù)分析、大數(shù)據(jù)處理。 從通用數(shù)據(jù)庫,到實(shí)時數(shù)據(jù)庫、多媒體數(shù)據(jù)庫、空間數(shù)據(jù)庫、分布式數(shù)據(jù)庫、并行數(shù)據(jù)庫等專業(yè)領(lǐng)域數(shù)據(jù)庫。本節(jié)學(xué)習(xí)結(jié)束!1.3 數(shù)據(jù)庫應(yīng)用系統(tǒng)了
10、解數(shù)據(jù)庫應(yīng)用系統(tǒng)類型理解數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)理解數(shù)據(jù)庫應(yīng)用系統(tǒng)生命周期【本節(jié)學(xué)習(xí)目標(biāo)】一、數(shù)據(jù)庫應(yīng)用系統(tǒng)類型1. 業(yè)務(wù)處理系統(tǒng)業(yè)務(wù)處理系統(tǒng)(Transaction Process System, TPS)是運(yùn)用數(shù)據(jù)庫應(yīng)用程序?qū)C(jī)構(gòu)業(yè)務(wù)活動(如訂購、銷售、支付、出貨、核算等)信息進(jìn)行記錄、計(jì)算、檢索、匯總、統(tǒng)計(jì)等數(shù)據(jù)處理,為機(jī)構(gòu)操作層面提供基本業(yè)務(wù)服務(wù),提高業(yè)務(wù)處理效率的信息系統(tǒng)。商業(yè)終端銷售系統(tǒng)航空機(jī)票訂票系統(tǒng)酒店系統(tǒng)2.管理信息系統(tǒng)管理信息系統(tǒng)(Manage Information System,MIS)是一種以機(jī)構(gòu)職能管理為主導(dǎo),利用計(jì)算機(jī)軟硬件、網(wǎng)絡(luò)通信、數(shù)據(jù)庫等IT技術(shù),實(shí)現(xiàn)機(jī)構(gòu)職能整體
11、信息化管理,以達(dá)到規(guī)范化管理和提高機(jī)構(gòu)工作效率,并支持機(jī)構(gòu)職能服務(wù)的信息系統(tǒng)。 人力資源管理信息系統(tǒng) 辦公管理信息系統(tǒng) CRM管理信息系統(tǒng) ERP管理信息系統(tǒng)3.決策支持系統(tǒng)決策支持系統(tǒng)(Decision Support System)是以管理科學(xué)、運(yùn)籌學(xué)、控制論和行為科學(xué)為基礎(chǔ),以計(jì)算機(jī)技術(shù)、數(shù)據(jù)庫技術(shù)、人工智能技術(shù)為手段,針對特定領(lǐng)域問題解決,為管理者提供輔助決策服務(wù)與方案的信息系統(tǒng)。 電信營銷大數(shù)據(jù)決策支持系統(tǒng) 證券分析與輔助決策信息系統(tǒng) 法定傳染病疫情預(yù)測系統(tǒng) 基于大數(shù)據(jù)的地震救災(zāi)決策支持系統(tǒng)二、數(shù)據(jù)庫系統(tǒng)應(yīng)用結(jié)構(gòu)1.單機(jī)用戶結(jié)構(gòu)特點(diǎn): 在單機(jī)用戶結(jié)構(gòu)系統(tǒng)中,整個數(shù)據(jù)庫應(yīng)用系統(tǒng)都裝在一
12、臺計(jì)算機(jī)上,由一個用戶進(jìn)行訪問操作,數(shù)據(jù)不能共享,數(shù)據(jù)冗余度大。 2. 集中式結(jié)構(gòu) 特點(diǎn): 數(shù)據(jù)庫系統(tǒng)的應(yīng)用程序、DBMS、數(shù)據(jù),都部署在同一服務(wù)器上運(yùn)行,多個用戶使用自己的計(jì)算機(jī)終端網(wǎng)絡(luò)連接服務(wù)器,并可實(shí)現(xiàn)共享訪問數(shù)據(jù)庫。優(yōu)缺點(diǎn): 結(jié)構(gòu)簡單,易于維護(hù),但是當(dāng)終端用戶增加到一定數(shù)量后,服務(wù)器及網(wǎng)絡(luò)將成為數(shù)據(jù)存取訪問的瓶頸,使系統(tǒng)的性能大大地降低。3. 客戶/服務(wù)器結(jié)構(gòu) 特點(diǎn):數(shù)據(jù)庫應(yīng)用系統(tǒng)的數(shù)據(jù)集中在數(shù)據(jù)庫服務(wù)器管理、應(yīng)用分布客戶機(jī)處理??蛻舳藨?yīng)用程序通過網(wǎng)絡(luò)并發(fā)訪問數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)庫。優(yōu)缺點(diǎn):在客戶/服務(wù)器結(jié)構(gòu)系統(tǒng)中,客戶機(jī)程序與數(shù)據(jù)庫服務(wù)器分工進(jìn)行數(shù)據(jù)處理,提高了系統(tǒng)的負(fù)載分擔(dān)能力,但
13、仍會因大量客戶端并發(fā)訪問數(shù)據(jù)庫服務(wù)器,導(dǎo)致系統(tǒng)性能瓶頸。4. 分布式結(jié)構(gòu) 特點(diǎn):分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)既實(shí)現(xiàn)數(shù)據(jù)分布,又實(shí)現(xiàn)處理分布。分布式數(shù)據(jù)庫系統(tǒng)的各服務(wù)器結(jié)點(diǎn)數(shù)據(jù)庫在邏輯上是一個整體,但物理分布在計(jì)算機(jī)網(wǎng)絡(luò)的不同服務(wù)器結(jié)點(diǎn)上運(yùn)行。每個數(shù)據(jù)庫服務(wù)器可通過網(wǎng)絡(luò)既支持多個本地客戶機(jī)訪問,也支持遠(yuǎn)程客戶機(jī)訪問。網(wǎng)絡(luò)中的每一個數(shù)據(jù)庫服務(wù)器都可以獨(dú)立地存取與處理數(shù)據(jù),并執(zhí)行全局應(yīng)用。 優(yōu)缺點(diǎn):分布式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)適合跨地區(qū)的大型機(jī)構(gòu)及企業(yè)等組織對數(shù)據(jù)庫應(yīng)用的需求,其處理性能強(qiáng),但數(shù)據(jù)庫的分布處理與維護(hù)有一定的開銷與技術(shù)難度。三、數(shù)據(jù)庫應(yīng)用系統(tǒng)生命周期1. 需求分析系統(tǒng)分析人員與用戶交流,利用軟件工程
14、方法獲取系統(tǒng)數(shù)據(jù)需求信息,并采用需求模型定義系統(tǒng)數(shù)據(jù)組成,及其數(shù)據(jù)字典。2. 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)人員根據(jù)系統(tǒng)功能和性能需求,對系統(tǒng)數(shù)據(jù)庫進(jìn)行設(shè)計(jì),包括系統(tǒng)概念數(shù)據(jù)模型、系統(tǒng)邏輯數(shù)據(jù)模型和系統(tǒng)物理數(shù)據(jù)模型設(shè)計(jì)。3. 系統(tǒng)實(shí)現(xiàn)按照系統(tǒng)設(shè)計(jì)方案進(jìn)行數(shù)據(jù)庫創(chuàng)建與應(yīng)用編程實(shí)現(xiàn),主要包括DBMS安裝部署、數(shù)據(jù)庫創(chuàng)建、數(shù)據(jù)對象創(chuàng)建、應(yīng)用編程實(shí)現(xiàn)等方面的工作。4. 系統(tǒng)測試系統(tǒng)測試人員將測試數(shù)據(jù)上載到數(shù)據(jù)庫中,對數(shù)據(jù)庫對象進(jìn)行測試操作訪問,實(shí)現(xiàn)數(shù)據(jù)庫功能和性能測試。5. 系統(tǒng)運(yùn)行與維護(hù)系統(tǒng)運(yùn)維人員在信息系統(tǒng)投入運(yùn)行過程中,對數(shù)據(jù)庫系統(tǒng)進(jìn)行定期維護(hù)和優(yōu)化,以保證數(shù)據(jù)庫系統(tǒng)正常地、高效地運(yùn)行。本節(jié)學(xué)習(xí)結(jié)束!1.4
15、典型數(shù)據(jù)庫管理系統(tǒng)了解數(shù)據(jù)庫管理系統(tǒng)類型了解典型數(shù)據(jù)庫管理系統(tǒng)基本特性【本節(jié)學(xué)習(xí)目標(biāo)】 集中式DBMS數(shù)據(jù)庫集中部署在單一物理機(jī)器中,如Access 分布式DBMS數(shù)據(jù)庫可分布在不同位置物理機(jī)器,如Oracle Database3.按系統(tǒng)部署分類 單用戶DBMS僅支持單用戶訪問,如miniSQL 多用戶DBMS可支持多用戶并行訪問,如MySQL2.按用戶數(shù)分類 通用DBMS支持公共領(lǐng)域數(shù)據(jù)庫應(yīng)用,如SQL Server 專用領(lǐng)域DBMS支持專用領(lǐng)域數(shù)據(jù)庫應(yīng)用,如嵌入式領(lǐng)域的SQLite1.按用途分類一、數(shù)據(jù)庫管理系統(tǒng)類型 桌面級DBMS適用于微小型的信息服務(wù)應(yīng)用,如Access、SQLite等
16、 企業(yè)級DBMS適用于中大型的企業(yè)級應(yīng)用,如DB2、ORACLE Database、Sybase ASE等4.按使用場景分類 產(chǎn)品DBMS數(shù)據(jù)庫廠商擁有版權(quán)的數(shù)據(jù)庫軟件,如SQL Server、Oracle Database等 開源DBMS開源組織提供的數(shù)據(jù)庫軟件,如MySQL、PostgreSQL等5.按軟件版權(quán)分類1.桌面數(shù)據(jù)庫DBMS系統(tǒng)桌面數(shù)據(jù)庫DBMS系統(tǒng)主要應(yīng)用在小規(guī)模數(shù)據(jù)處理、單用戶使用的場景。該類DBMS系統(tǒng)軟件功能簡單、軟件體量小、處理能力弱。通常僅支持單一語言的應(yīng)用程序開發(fā)。二、桌面DBMS系統(tǒng)與企業(yè)級DBMS系統(tǒng)應(yīng)用比較2.企業(yè)級數(shù)據(jù)庫DBMS系統(tǒng)企業(yè)級數(shù)據(jù)庫DBMS系統(tǒng)
17、主要運(yùn)用在大規(guī)模數(shù)據(jù)處理、多用戶使用的場景;該類DBMS系統(tǒng)軟件功能完善、軟件體量大、處理能力強(qiáng);支持多種不同語言的應(yīng)用程序開發(fā)。數(shù)百個數(shù)據(jù)庫表上百萬行數(shù)據(jù)/表數(shù)千計(jì)并發(fā)用戶 ACCESS微軟公司推出的桌面數(shù)據(jù)庫管理系統(tǒng) SQL SERVER微軟公司推出的商用數(shù)據(jù)庫管理系統(tǒng) Oracle Database甲骨文公司推出的企業(yè)級數(shù)據(jù)庫管理系統(tǒng) IBM DB2IBM公司推出的企業(yè)級數(shù)據(jù)庫管理系統(tǒng) Sybase ASESybase公司推出的企業(yè)級數(shù)據(jù)庫管理系統(tǒng) MySql應(yīng)用廣泛的開源關(guān)系數(shù)據(jù)庫管理系統(tǒng) PostgreSQL技術(shù)領(lǐng)先的開源對象-關(guān)系數(shù)據(jù)庫管理系統(tǒng) Sybase SQL Anywher
18、eSybase推出的移動計(jì)算數(shù)據(jù)庫管理系統(tǒng) SQLite開源的輕量級嵌入式數(shù)據(jù)庫管理系統(tǒng)。三、典型數(shù)據(jù)庫管理系統(tǒng)本節(jié)學(xué)習(xí)結(jié)束!1.5 PostgreSQL對象-關(guān)系數(shù)據(jù)庫系統(tǒng)軟件了解PostgreSQL數(shù)據(jù)庫軟件基本特性了解PostgreSQL數(shù)據(jù)庫軟件程序組成了解PostgreSQL數(shù)據(jù)庫開發(fā)工具了解PostgreSQL數(shù)據(jù)庫對象【本節(jié)學(xué)習(xí)目標(biāo)】一、從哪里可以獲得PostgreSQL軟件安裝包?通常從PostgreSQL官方網(wǎng)站(/download/)下載軟件安裝包。二、PostgreSQL數(shù)據(jù)庫系統(tǒng)軟件程序組成PostgreSQL數(shù)據(jù)庫管理系統(tǒng)軟件由客戶端功能程序和服務(wù)器端功能程序組成。它
19、們采用客戶/服務(wù)器架構(gòu)方式進(jìn)行通信。三、PostgreSQL數(shù)據(jù)庫軟件客戶端程序clusterdb - 建立PostgreSQL數(shù)據(jù)庫集群createdb - 創(chuàng)建一個新 PostgreSQL 數(shù)據(jù)庫createlang - 安裝一個PostgreSQL過程語言createuser - 創(chuàng)建一個新的PostgreSQL用戶帳戶dropdb - 刪除一個 PostgreSQL 數(shù)據(jù)庫droplang - 刪除一個PostgreSQL過程語言dropuser - 刪除一個PostgreSQL用戶賬戶ecpg - 嵌入的 SQL C 預(yù)處理器pg_basebackup - 做一個PostgreSQL
20、 集群的基礎(chǔ)備份pg_config - 檢索已安裝的PostgreSQL版本信息pg_dump - 將一個PostgreSQL數(shù)據(jù)庫轉(zhuǎn)儲到一個腳本文件或者其它歸檔文件中pg_dumpall - 將一個PostgreSQL數(shù)據(jù)庫集群轉(zhuǎn)儲到一個腳本文件中.四、PostgreSQL數(shù)據(jù)庫軟件的服務(wù)器程序initdb 初始化PostgreSQL數(shù)據(jù)庫pg_controldata - 顯示一個PostgreSQL數(shù)據(jù)庫集群的控制信息pg_ctl - 啟動、停止或者控制PostgreSQL服務(wù)器pg_resetxlog - 重置一個數(shù)據(jù)庫集群的預(yù)寫日志以及其它控制內(nèi)容postgres - PostgreS
21、QL 數(shù)據(jù)庫服務(wù)器進(jìn)程postmaster - PostgreSQL 守護(hù)進(jìn)程.五、PostgreSQL數(shù)據(jù)庫的常用管理工具1.psql命令行管理工具pgAdmin 4管理工具2.pgAdmin圖形界面管理工具六、PostgreSQL數(shù)據(jù)庫主要對象 模式(schema)對象 表(table)對象 視圖(view)對象 序列(sequence)對象 函數(shù)(function)對象 觸發(fā)器(trigger)對象 。本章學(xué)習(xí)結(jié)束!2.1 關(guān)系及其相關(guān)概念關(guān)系、實(shí)體了解關(guān)系模型提出理解“實(shí)體”與“關(guān)系”概念理解關(guān)系特征理解“關(guān)系”的數(shù)學(xué)定義【本節(jié)學(xué)習(xí)目標(biāo)】 1970年,IBM的研究員E.F.Codd博士
22、在刊物Communication of the ACM上發(fā)表了一篇關(guān)于數(shù)據(jù)庫模型的學(xué)術(shù)論文(篇名為“A Relational Model of Data for Large Shared Data Banks”),首次提出了關(guān)系模型概念及其原理方法。 后來Codd又陸續(xù)發(fā)表多篇文章,論述了范式理論和衡量關(guān)系模型的12條標(biāo)準(zhǔn),進(jìn)一步奠定了關(guān)系數(shù)據(jù)庫的數(shù)學(xué)理論基礎(chǔ)。 一、關(guān)系模型提出關(guān)系模型以關(guān)系代數(shù)理論為數(shù)學(xué)基礎(chǔ),將數(shù)據(jù)操作抽象為關(guān)系處理,其關(guān)系表結(jié)構(gòu)簡單,便于理解和訪問。關(guān)系模型在當(dāng)今幾乎所有商業(yè)數(shù)據(jù)庫中得到廣泛應(yīng)用。實(shí)體(entity)是指包含有數(shù)據(jù)特征的事物對象在概念模型世界中的抽象名稱。
23、實(shí)體名稱實(shí)體屬性“雇員”實(shí)體例 在企業(yè)信息系統(tǒng)中,人員信息可以使用“雇員(EMPLOYEE)”實(shí)體名稱表示,并用實(shí)體模型符號可視化表示如下。二、實(shí)體、關(guān)系的概念1. 實(shí)體在關(guān)系模型中,使用“關(guān)系”來存儲“實(shí)體”中的數(shù)據(jù)。關(guān)系(relation)是指具有關(guān)系特征、用于存放實(shí)體數(shù)據(jù)的二維表。關(guān)系也常被稱為關(guān)系表?!癊MPLOYEE”關(guān)系表2. 關(guān)系3. 關(guān)系特征 表中每行存儲實(shí)體的一個實(shí)例數(shù)據(jù) 表中每列包含實(shí)體的一項(xiàng)屬性數(shù)據(jù) 表中單元格只能存儲單個值 不允許有重復(fù)的行 不允許有重復(fù)的列 列順序可任意 行順序可任意行或元組列或?qū)傩员韱卧卸鄠€條目值問題:下面包含數(shù)據(jù)的二維表是關(guān)系表嗎?非關(guān)系表Ema
24、il列中的條目類型不一致問題:下面包含數(shù)據(jù)的二維表是關(guān)系表嗎?非關(guān)系表問題:下面包含數(shù)據(jù)的3個二維表是關(guān)系表嗎?關(guān)系表三、關(guān)系的數(shù)學(xué)定義定義: 關(guān)系是指在集合域 D1、Dn 上運(yùn)算笛卡兒積的有意義子集,其數(shù)學(xué)描述為 R D1 Dn。說明:關(guān)系R只是該笛卡兒積的有意義子集,即關(guān)系R的元組數(shù)=笛卡兒積的元組數(shù)。例 若一個“學(xué)生”實(shí)體有(學(xué)號,姓名,性別)三個屬性。我們可以使用D1、D2、D3域來定義它們,并假定它們的域值范圍如下:D1=2017010001,2017010002,2017010003D2=劉京,夏岷,周小亮D3=男,女在本例中,D1,D2,D3的笛卡兒積為:D1D2D3=(2017
25、010001,劉京,男),(2017010001,劉京,女),(2017010001,夏岷,男),(2017010001,夏岷,女), ,(2017010003,周小亮,女)。共計(jì)18個元組。在上面描述“學(xué)生”實(shí)體的笛卡爾積元組集合中,只有如下元組構(gòu)成的子集,才能成為“學(xué)生”關(guān)系的數(shù)據(jù),如下表所示?!皩W(xué)生”關(guān)系本節(jié)學(xué)習(xí)結(jié)束!2.1-2 關(guān)系及其相關(guān)概念關(guān)系鍵、關(guān)系模式理解“鍵”、“復(fù)合鍵”、“候選鍵”概念理解“主鍵”、“代理鍵”、“外鍵”概念掌握關(guān)系模式語句表示方法【本節(jié)學(xué)習(xí)目標(biāo)】一、關(guān)系的鍵定義在關(guān)系中,可以用來唯一標(biāo)識元組的屬性列,稱為鍵(Key),其它屬性列都為非鍵列。鍵非鍵1.復(fù)合鍵復(fù)
26、合鍵(Compound Key)是指關(guān)系中用來唯一標(biāo)識元組的多列作為鍵。(學(xué)號,課程編號)復(fù)合鍵學(xué)號課程編號成績20100201001902010020300188201002060019020100209001872010020100290201002030028020100201003942.候選鍵候選鍵(Candidate Key)關(guān)系中可能有多個列均適合作為鍵,將其中每個都稱為候選鍵。候選鍵候選鍵主鍵(Primary key)是關(guān)系表中最有代表性的一個候選鍵,每個關(guān)系表中只能定義一個主鍵。3.主鍵主鍵主鍵作用: 唯一標(biāo)識關(guān)系表的每行(元組) 與關(guān)聯(lián)表的外鍵建立聯(lián)系,實(shí)現(xiàn)關(guān)系表之間連接
27、數(shù)據(jù)庫文件使用主鍵值來組織關(guān)系表的數(shù)據(jù)存儲 數(shù)據(jù)庫使用主鍵索引快速檢索數(shù)據(jù)主鍵定義操作實(shí)例:在PostgreSQL 數(shù)據(jù)庫中定義Employee關(guān)系表主鍵設(shè)置主鍵設(shè)置非空4.代理鍵代理鍵采用DBMS自動生成的數(shù)字序列作為關(guān)系表的主鍵。代理鍵有什么用途?由DBMS自動生成的數(shù)字序列作為主鍵,可替代復(fù)合主鍵,以便獲得更高性能的數(shù)據(jù)訪問操作處理。 實(shí)例:在房產(chǎn)信息Property 關(guān)系表中定義代理鍵代理鍵二、關(guān)系模式語句表示RELATION_NAME (Colunm01, Colunm02, ,LastColunm) 關(guān)系名稱屬性名關(guān)系模式語句中主鍵表示方法:關(guān)系名(主鍵屬性,屬性2,屬性x)EMP
28、LOYEE (EmployeeNumber,FirstNmae,LastName,Department,Email,Phone) 該關(guān)系模式的語句表示為:EMPLOYEE關(guān)系例:EMPLOYEE關(guān)系表的關(guān)系模式語句表示本節(jié)學(xué)習(xí)結(jié)束!2.2 關(guān)系模型原理數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作理解關(guān)系模型組成原理掌握關(guān)系模型的數(shù)據(jù)操作方法【本節(jié)學(xué)習(xí)目標(biāo)】一、關(guān)系模型及其組成關(guān)系模型(Relation Model)是一種基于二維表結(jié)構(gòu)存儲數(shù)據(jù)實(shí)體及實(shí)體間聯(lián)系的數(shù)據(jù)模型。1. 數(shù)據(jù)結(jié)構(gòu)集合運(yùn)算操作包括選擇(select)、投影(project)、連接(join)、交(intersection)、并(union)、差(di
29、fference)等。2. 數(shù)據(jù)操作專門針對元組的關(guān)系操作包括數(shù)據(jù)行插入(Insert)、 修改(Update)、刪除(Delete)操作。關(guān)系數(shù)據(jù)模型集合運(yùn)算操作專門關(guān)系操作在關(guān)系模型中,數(shù)據(jù)關(guān)系約束是指關(guān)系表中實(shí)體數(shù)據(jù)完整性、關(guān)聯(lián)表之間數(shù)據(jù)一致性等要求,一般由業(yè)務(wù)需求來確定。3. 數(shù)據(jù)關(guān)系約束在關(guān)系模型中,可定義關(guān)系表的數(shù)據(jù)約束如下: 屬性列取值類型 屬性列取值范圍 屬性列取值是否唯一 屬性列是否允許空值 關(guān)聯(lián)表的參照完整性約束關(guān)系數(shù)據(jù)模型二、關(guān)系模型數(shù)據(jù)操作R關(guān)系、S關(guān)系的數(shù)據(jù)關(guān)系模型數(shù)據(jù)操作采用基于關(guān)系代數(shù)的數(shù)據(jù)操作,包括傳統(tǒng)的集合運(yùn)算操作和專門的關(guān)系運(yùn)算操作。1.關(guān)系“并運(yùn)算”操作R
30、S=t|tRtS關(guān)系并運(yùn)算的結(jié)果集是由屬于R或?qū)儆赟的所有元組組成。關(guān)系并運(yùn)算的前提:關(guān)系R與關(guān)系S需有相同屬性組成。2.關(guān)系“差運(yùn)算-”操作RS=t|tRtS關(guān)系差運(yùn)算-的結(jié)果集是由屬于R,而不屬于S的所有元組組成。關(guān)系差運(yùn)算的前提:關(guān)系R與關(guān)系S需有相同屬性組成。3.關(guān)系“交運(yùn)算”操作RS=t|tRtS關(guān)系交運(yùn)算的結(jié)果集是由既屬于R又屬于S的所有元組組成。關(guān)系差運(yùn)算的前提:關(guān)系R與關(guān)系S需有相同屬性組成。4.關(guān)系“笛卡爾積x”操作RS=(d1,d2)|d1 R, d2 S笛卡兒積運(yùn)算的結(jié)果集是由所有屬于R的元組與所有屬于S的元組進(jìn)行組合而成。練習(xí):關(guān)系R與關(guān)系S的數(shù)據(jù)見下表所示,請分別給出
31、RS、RS、RS運(yùn)算的結(jié)果數(shù)據(jù)RS運(yùn)算RS運(yùn)算RS運(yùn)算本節(jié)學(xué)習(xí)結(jié)束!2.2 關(guān)系模型原理完整性約束理解關(guān)系模型完整性約束理解實(shí)體完整性理解參照完整性理解用戶自定義完整性【本節(jié)學(xué)習(xí)目標(biāo)】一、關(guān)系模型完整性關(guān)系模型完整性是指在關(guān)系數(shù)據(jù)模型中對關(guān)系實(shí)施的完整性約束。完整性約束作用: 消除關(guān)系表的元組重復(fù)存儲 保持關(guān)聯(lián)表的數(shù)據(jù)一致性 實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)規(guī)則關(guān)系模型完整性約束組成: 實(shí)體完整性約束 參照完整性約束 用戶自定義完整性約束二、實(shí)體完整性實(shí)體完整性是指在關(guān)系表中實(shí)施的主鍵取值約束,以保證關(guān)系表中的每個元組可以被唯一標(biāo)識。實(shí)體完整性約束規(guī)則:每個關(guān)系表中的主鍵屬性列都不允許為空值(NULL),否則就不
32、可能標(biāo)識實(shí)體?,F(xiàn)實(shí)世界中的實(shí)體是靠主鍵來標(biāo)識,主鍵取值應(yīng)該唯一,并區(qū)分關(guān)系表中的每個元組。例 選課注冊關(guān)系表(Register)的實(shí)體完整性定義Teacher關(guān)系表的實(shí)體完整性約束定義設(shè)置主鍵設(shè)置非空練習(xí):在表2-7、表2-8、表2-9所示的成績關(guān)系表中,請判斷哪些表符合實(shí)體完整性約束、哪些表不符合實(shí)體完整性約束?參照完整性是指關(guān)系表之間需要遵守的數(shù)據(jù)約束,以保證關(guān)系之間關(guān)聯(lián)列的數(shù)據(jù)一致性。參照完整性約束規(guī)則:若關(guān)系R中的外鍵F與關(guān)系S中的主鍵K相關(guān)聯(lián),則R中外鍵F值必須與S中主鍵K值一致。外鍵(Foreign key)在關(guān)聯(lián)的兩個關(guān)系中,它們具有一個或多個相同屬性。若關(guān)聯(lián)列在第一個關(guān)系中作為
33、主鍵,則在第二個關(guān)系中作為外鍵。三、參照完整性主鍵外鍵參照完整性是指外鍵取值必須與現(xiàn)有主鍵值對應(yīng)。例 在下面的出版社、書名關(guān)系表中,它們都有相同的“出版社編號”屬性列。這兩個表之間的參照完整性約束是指“書名”關(guān)系表的“出版社編號”列值必須與“出版社”關(guān)系表中的“出版社編號”值匹配,即需要維持它們之間數(shù)據(jù)一致性。用戶自定義完整性是指用戶根據(jù)具體業(yè)務(wù)對數(shù)據(jù)處理規(guī)則要求所定義的數(shù)據(jù)約束。用戶可以定義如下類型的完整性約束:定義列的數(shù)據(jù)類型與取值范圍定義列的缺省值定義列是否允許取空值定義列取值唯一性定義列之間的數(shù)據(jù)依賴性四、用戶自定義完整性例 在下面表2-10所示的成績關(guān)系表中,業(yè)務(wù)要求分?jǐn)?shù)字段Scor
34、e的取值范圍為0-100或?yàn)榭罩?。本?jié)學(xué)習(xí)結(jié)束!2.3 PostgreSQL數(shù)據(jù)庫關(guān)系操作實(shí)踐掌握創(chuàng)建PostgreSQL關(guān)系數(shù)據(jù)庫方法掌握在PostgreSQL數(shù)據(jù)庫中創(chuàng)建關(guān)系表方法掌握在PostgreSQL數(shù)據(jù)庫中定義關(guān)系表的主鍵、代理鍵與外鍵方法掌握在PostgreSQL數(shù)據(jù)庫中定義關(guān)系表的實(shí)體完整性、參照完整性、用戶自定義完整性方法【本節(jié)學(xué)習(xí)目標(biāo)】本節(jié)將圍繞“選課管理系統(tǒng)”項(xiàng)目案例,在PostgreSQL數(shù)據(jù)庫中創(chuàng)建關(guān)系表及其完整性約束,并理解本章所學(xué)習(xí)的關(guān)系模型基本概念和關(guān)系操作原理。課程表(COURSE)教師表(TEACHER)開課計(jì)劃表(PLAN)學(xué)生表(STUDENT)選課注冊
35、表(REGISTER)學(xué)院信息表(COLLEGE)一、項(xiàng)目案例選課管理系統(tǒng)數(shù)據(jù)庫關(guān)系表實(shí)踐選課管理數(shù)據(jù)庫(CurriculaDB)課程表(COURSE)字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵課程編號CourseID文本4是主鍵課程名CourseName文本20是否課程類別CourseType文本10否否學(xué)分CourseCredit數(shù)字短整型否否學(xué)時CoursePeriod數(shù)字短整型否否考核方式TestMethod文本10否否教師表(TEACHER)字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵教師編號TeacherID文本4是主鍵姓名TeacherName文本10是否性別Teach
36、erGender文本2否否職稱TeacherTitle文本6否否所屬學(xué)院CollegeID文本3否外鍵聯(lián)系電話TeacherPhone文本11否否開課計(jì)劃表(PLAN)字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵開課編號CoursePlanID自動編號長整型是代理鍵課程編號CourseID文本4是外鍵教師編號TeacherID文本4是外鍵地點(diǎn)CourseRoom文本30否否時間CourseTime文本30否否備注Note文本50否否學(xué)生表(STUDENT)字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵學(xué)號StudentID文本13是主鍵姓名StudentName文本10是否性別Stude
37、ntGender文本2否否出生日期BirthDay日期短日期否否專業(yè)Major文本30否否手機(jī)號StudentPhone文本11否否選課注冊表(REGISTER)字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵注冊編號CourseRegID自動編號長整型是代理鍵開課編號CoursePlanID數(shù)字長整型是外鍵學(xué)號StudentID文本13是外鍵備注Note文本30否否學(xué)院信息表(COLLEGE)字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵學(xué)院編號CollegeID文本3是主鍵學(xué)院名稱CollegeName文本40是否學(xué)院介紹CollegeIntro文本200否否學(xué)院電話CollegeTel
38、文本30否否二、使用數(shù)據(jù)庫管理工具pgAdmin 4創(chuàng)建PostgreSQL數(shù)據(jù)庫CurriculaDB數(shù)據(jù)庫創(chuàng)建三、使用數(shù)據(jù)庫管理工具創(chuàng)建關(guān)系表COLLEGECollge表創(chuàng)建COLLEGE關(guān)系表創(chuàng)建四、使用數(shù)據(jù)庫管理工具創(chuàng)建的數(shù)據(jù)庫表對象選課管理數(shù)據(jù)庫(CurriculaDB)的表對象CurriculaDB數(shù)據(jù)庫的表對象五、使用數(shù)據(jù)庫管理工具定義關(guān)系表中的代理鍵選課管理數(shù)據(jù)庫(CurriculaDB)的表對象REGISTER關(guān)系表的代理鍵定義六、使用數(shù)據(jù)庫管理工具定義關(guān)系表的實(shí)體完整性學(xué)生表(CurriculaDB)的實(shí)體完整性定義COURSE關(guān)系表實(shí)體完整性定義七、使用數(shù)據(jù)庫管理工具定義
39、關(guān)系表的外鍵及其參照完整性教師表(Teacher)的外鍵參照學(xué)院表(College)的主鍵TEACHER關(guān)系表與COLLEGE關(guān)系表的參照完整性定義八、使用數(shù)據(jù)庫管理工具創(chuàng)建關(guān)系表的用戶自定義完整性約束自定義課程表(Teacher)的學(xué)分列(CourseCredit)取值范圍COURSE關(guān)系表自定義完整性約束創(chuàng)建本章學(xué)習(xí)結(jié)束!3.1 SQL語言概述了解SQL語言是什么了解SQL語言標(biāo)準(zhǔn)了解SQL語言的應(yīng)用及特點(diǎn)理解SQL語言對關(guān)系數(shù)據(jù)庫的操作原理了解SQL語言的語句類型了解SQL語言支持的數(shù)據(jù)類型【本節(jié)學(xué)習(xí)目標(biāo)】一、什么是SQL?SQL( Structured Query Language,結(jié)
40、構(gòu)化查詢語言 )是一種對關(guān)系數(shù)據(jù)庫進(jìn)行訪問的數(shù)據(jù)操作語言。二、SQL標(biāo)準(zhǔn)發(fā)展歷史20世紀(jì)70年代由IBM公司研制的SEQUEL語言演變出SQL語言1979年ORACLE公司首先推出商用SQL1986 美國國家標(biāo)準(zhǔn)局批準(zhǔn)了SQL作為關(guān)系型數(shù)據(jù)庫語言的ANSI標(biāo)準(zhǔn)。1987年國際標(biāo)準(zhǔn)化組織(ISO)將其采納為國際標(biāo)準(zhǔn)SQL86。ISO先后推出國際標(biāo)準(zhǔn)SQL-89、SQL-92、SQL:1999、SQL:2003、SQL:2006、SQL:2008、SQL:2011等目前最新版本為SQL:2016三、SQL應(yīng)用情況主流的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)均支持SQL標(biāo)準(zhǔn)語言實(shí)現(xiàn)數(shù)據(jù)庫操作OracleSybaseD
41、B2Microsoft SQL ServerMySql。 其中一些廠商數(shù)據(jù)庫管理系統(tǒng)對SQL語句進(jìn)行了功能擴(kuò)展,如SybaseASE、 Microsoft SQL Server將SQL操作語言擴(kuò)展為Transaction-SQL語言;Oracle Database將SQL操作語言擴(kuò)展為PL/SQL語言。四、SQL語言特點(diǎn)一體化使用方式靈活非過程化語言語句簡單五、SQL對關(guān)系數(shù)據(jù)庫的操作原理SQL主要操作功能:數(shù)據(jù)庫對象創(chuàng)建、修改、刪除數(shù)據(jù)庫表的數(shù)據(jù)插入、修改、刪除、查詢、統(tǒng)計(jì)存儲過程、觸發(fā)器、函數(shù)等程序執(zhí)行數(shù)據(jù)庫權(quán)限、角色、用戶等管理 數(shù)據(jù)庫DBMS(執(zhí)行SQL)數(shù)據(jù)庫應(yīng)用程序返回結(jié)果提交SQ
42、LI/O數(shù)據(jù)1. 數(shù)據(jù)定義語言數(shù)據(jù)定義語言(Data Definition Language,DDL)是SQL語言中用于創(chuàng)建、修改或刪除數(shù)據(jù)庫對象的語句。CREATE DATABASE - 創(chuàng)建新數(shù)據(jù)庫DROP DATABASE 刪除數(shù)據(jù)庫ALTER DATABASE - 修改數(shù)據(jù)庫屬性 CREATE TABLE - 創(chuàng)建新表 ALTER TABLE 修改數(shù)據(jù)庫表結(jié)構(gòu)DROP TABLE - 刪除表CREATE INDEX - 創(chuàng)建索引DROP INDEX - 刪除索引 六、SQL語言語句類型2. 數(shù)據(jù)操縱語言數(shù)據(jù)操縱語言(Data Manipulation Language,DML)是SQL
43、語言中用于增添、修改、刪除數(shù)據(jù)的語句。INSERT - 向數(shù)據(jù)庫表中插入數(shù)據(jù) UPDATE - 更新數(shù)據(jù)庫表中的數(shù)據(jù)DELETE - 從數(shù)據(jù)庫表中刪除數(shù)據(jù) 3. 數(shù)據(jù)查詢語言數(shù)據(jù)查詢語言(Data Query Language,DQL)是SQL語言中用于對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)查詢的語句。4. 數(shù)據(jù)控制語言數(shù)據(jù)控制語言(Data Control Language,DCL)是用于對數(shù)據(jù)庫對象訪問權(quán)進(jìn)行控制的SQL語句。GRANT 授予用戶對數(shù)據(jù)庫對象的權(quán)限D(zhuǎn)ENY 拒絕授予用戶對數(shù)據(jù)庫對象的權(quán)限REVOKE 撤消用戶對數(shù)據(jù)庫對象的權(quán)限5. 事務(wù)處理語言事務(wù)處理語言(Transaction Process
44、 Language,TPL)是SQL語言中用于數(shù)據(jù)庫內(nèi)部事務(wù)處理的語句。BEGIN TRANSACTION 開始事務(wù)COMMIT 提交事務(wù)ROLLBACK 回滾事務(wù)6. 游標(biāo)控制語言游標(biāo)控制語言(Cursor Control Language,CCL)是SQL語言中用于數(shù)據(jù)庫游標(biāo)操作的語句。DECLARE CURSOR 定義游標(biāo)FETCH INTO 提交游標(biāo)數(shù)據(jù)CLOSE CURSOR 關(guān)閉游標(biāo)七、SQL語言的數(shù)據(jù)類型1. SQL語言基本數(shù)據(jù)類型字符:CHAR、VARCHAR、TEXT整數(shù):SMALLINT、INTEGER浮點(diǎn)數(shù):NUMBER(n,d)、FLOAT(n,d)日期:DATE、DA
45、TETIME貨幣:MONEYPostgreSQL數(shù)據(jù)庫支持的部分?jǐn)?shù)據(jù)類型2. 不同數(shù)據(jù)庫所支持?jǐn)?shù)據(jù)類型SQL Server數(shù)據(jù)庫支持的部分?jǐn)?shù)據(jù)類型MySQL 數(shù)據(jù)庫支持的部分?jǐn)?shù)據(jù)類型本節(jié)學(xué)習(xí)結(jié)束!3.2-1 數(shù)據(jù)定義SQL語句 數(shù)據(jù)庫創(chuàng)建、修改、刪除掌握SQL語言的數(shù)據(jù)庫創(chuàng)建語句掌握SQL語言的數(shù)據(jù)庫修改語句掌握SQL語言的數(shù)據(jù)庫刪除語句【本節(jié)學(xué)習(xí)目標(biāo)】一、數(shù)據(jù)庫創(chuàng)建SQL語句1. 語句基本格式例 執(zhí)行SQL語句創(chuàng)建一個選課管理數(shù)據(jù)庫CourseDB。CREATE DATABASE CourseDB;CREATE DATABASE ;在PostgreSQL服務(wù)器中,執(zhí)行SQL語句創(chuàng)建數(shù)據(jù)庫Co
46、urseDB。運(yùn)行按鈕SQL語句結(jié)果消息數(shù)據(jù)庫2.語句執(zhí)行二、數(shù)據(jù)庫修改SQL語句1.語句基本格式例 將選課管理數(shù)據(jù)庫CourseDB名稱修改為 CourseManageDBALTER DATABASE CourseDB RENAME TO CourseManageDB;ALTER DATABASE ;在PostgreSQL服務(wù)器中,執(zhí)行SQL語句修改數(shù)據(jù)庫CourseDB名稱。運(yùn)行按鈕SQL語句結(jié)果消息數(shù)據(jù)庫2.語句執(zhí)行三、數(shù)據(jù)庫刪除SQL語句1. 語句基本格式例 刪除前面創(chuàng)建的選課管理數(shù)據(jù)庫CourseManageDBDROP DATABASE CourseManageDB;DROP DA
47、TABASE ;在PostgreSQL服務(wù)器中,執(zhí)行SQL語句刪除數(shù)據(jù)庫CourseManageDB。運(yùn)行按鈕SQL語句結(jié)果消息數(shù)據(jù)庫2.語句執(zhí)行本節(jié)學(xué)習(xí)結(jié)束!3.2-2 數(shù)據(jù)定義SQL語句 數(shù)據(jù)庫表創(chuàng)建、修改、刪除掌握SQL語言的數(shù)據(jù)庫表創(chuàng)建語句掌握SQL語言的數(shù)據(jù)庫表修改語句掌握SQL語言的數(shù)據(jù)庫表刪除語句【本節(jié)學(xué)習(xí)目標(biāo)】一、數(shù)據(jù)庫表創(chuàng)建SQL語句1.語句基本格式CREATE TABLE ( 列完整性約束, 列完整性約束, 列完整性約束, );2. 列完整性約束列完整性約束關(guān)鍵詞 PRIMARY KEY主鍵NOT NULL非空值NULL空值UNIQUE值唯一CHECK有效性檢查DEFAUL
48、T缺省值字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵學(xué)號StudentID文本13是主鍵姓名StudentName文本10是否性別StudentGender文本2否否出生日期BirthDay日期短日期否否專業(yè)Major文本30否否手機(jī)號StudentPhone文本11否否例 選課管理數(shù)據(jù)庫的學(xué)生表Student設(shè)計(jì)需求3. SQL語句應(yīng)用CREATE TABLE Student( StudentID char(13) PRIMARY KEY, StudentName varchar(10) NOT NULL, StudentGender char(2) NULL, BirthDay dat
49、e NULL, Major varchar(30) NULL, StudentPhone char(11) NULL );創(chuàng)建學(xué)生表Student的SQL語句在PostgreSQL服務(wù)器中,執(zhí)行SQL語句創(chuàng)建數(shù)據(jù)庫關(guān)系表Student。運(yùn)行按鈕SQL語句結(jié)果消息數(shù)據(jù)庫表4.SQL語句執(zhí)行在關(guān)系表創(chuàng)建SQL語句中,除了使用主鍵約束、是否空值約束外。有時還會使用如下約束。5.其它的列完整性約束應(yīng)用UNIQUE值唯一CHECK有效性檢查DEFAULT缺省值字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵備注課程編號CourseID文本4是主鍵課程名CourseName文本20是否取值唯一課程類別Co
50、urseType文本10否否“基礎(chǔ)課”、“專業(yè)課”、“選修課”學(xué)分CourseCredit數(shù)字短整型否否學(xué)時CoursePeriod數(shù)字短整型否否考核方式TestMethod文本10否否缺省值“閉卷考試”例 選課管理系統(tǒng)數(shù)據(jù)庫的課程信息表Course設(shè)計(jì)需求創(chuàng)建課程信息表Course的SQL語句CREATE TABLE Course( CourseID char(4) PRIMARY Key, CourseName varchar(20) NOT NULL UNIQUE, CourseType varchar(10) NULL CHECK(CourseType IN(基礎(chǔ)課,專業(yè)課,選修課),
51、 CourseCredit smallint NULL, CoursePeriod smallint NULL, TestMethod char(4) NOT NULL DEFAULT 閉卷考試);在PostgreSQL服務(wù)器中,執(zhí)行SQL語句創(chuàng)建數(shù)據(jù)庫關(guān)系表Course。運(yùn)行按鈕SQL語句結(jié)果消息數(shù)據(jù)庫表6.表約束定義主鍵使用列約束關(guān)鍵詞PRIMARY KEY定義表的主鍵列只能定義單列主鍵,若要定義由多個列構(gòu)成的復(fù)合主鍵,則需要使用表約束方式來定義。CREATE TABLE ( 列完整性約束, 列完整性約束, 列完整性約束, CONSTRAINT PRIMARY Key(主鍵列) );例 選
52、課管理系統(tǒng)數(shù)據(jù)庫的開課計(jì)劃表Plan設(shè)計(jì)需求字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵課程編號CourseID文本4是主鍵教師編號TeacherID文本4是主鍵地點(diǎn)CourseRoom文本30否否時間CourseTime文本30否否備注Note文本50否否CREATE TABLE Plan( CourseID char(4) NOT NULL, TeacherID char(4) NOT NULL, CourseRoom varchar(30), CourseTime varchar(30), Note varchar(50), CONSTRAINTCoursePlan_PKPRIMAR
53、Y Key(CourseID,TeacherID);創(chuàng)建開課計(jì)劃表Plan的SQL語句在PostgreSQL中,執(zhí)行SQL語句創(chuàng)建數(shù)據(jù)庫關(guān)系表Plan。運(yùn)行按鈕SQL語句結(jié)果消息數(shù)據(jù)庫表使用表約束定義主鍵的優(yōu)點(diǎn):便于定義復(fù)合主鍵可命名主鍵約束便于定義代理鍵7.表約束定義代理鍵在一些關(guān)系表中,為了方便數(shù)據(jù)處理,可以使用代理鍵去替代復(fù)合主鍵。在SQL語句中,關(guān)系表的代理鍵采用表約束方式來定義。CREATE TABLE ( NOT NULL, 列完整性約束, 列完整性約束, CONSTRAINT PRIMARY Key(代理鍵列名) );例 選課管理系統(tǒng)數(shù)據(jù)庫的開課計(jì)劃表Plan設(shè)計(jì)需求字段名稱字段
54、編碼數(shù)據(jù)類型字段大小必填字段是否為鍵開課編號CoursePlanID自動編號長整型是代理鍵課程編號CourseID文本4是否教師編號TeacherID文本4是否地點(diǎn)CourseRoom文本30否否時間CourseTime文本30否否備注Note文本50否否創(chuàng)建開課計(jì)劃表Plan的SQL語句CREATE TABLE Plan( CoursePlanIDserialNOT NULL, CourseID char(4) NOT NULL, TeacherID char(4) NOT NULL, CourseRoom varchar(30), CourseTime varchar(30), Note
55、varchar(50), CONSTRAINTCoursePlan_PKPRIMARY Key(CoursePlanID);在PostgreSQL中,執(zhí)行SQL語句創(chuàng)建數(shù)據(jù)庫關(guān)系表Plan。運(yùn)行按鈕SQL語句結(jié)果消息數(shù)據(jù)庫表8.表約束定義外鍵在數(shù)據(jù)庫中,一些關(guān)系表之間存在關(guān)聯(lián)。在一個表中作為主鍵的列,在另外的關(guān)聯(lián)表中則作為外鍵。CREATE TABLE ( 列完整性約束, 列完整性約束, 列完整性約束, CONSTRAINT FOREIGN Key(外鍵列) );例 選課管理系統(tǒng)數(shù)據(jù)庫的注冊表Register設(shè)計(jì)需求字段名稱字段編碼數(shù)據(jù)類型字段大小必填字段是否為鍵注冊編號CourseRegID
56、自動編號長整型是代理鍵開課編號CoursePlanID數(shù)字長整型是外鍵學(xué)號StudentID文本13是外鍵備注Note文本30否否創(chuàng)建注冊表Register的SQL語句CREATE TABLE Register( CourseRegID serialNOT NULL, CoursePlanID Int NOT NULL, StudentID char(13), Note varchar(30), CONSTRAINTCourseRegID_PKPRIMARY Key(CourseRegID), CONSTRAINTCoursePlanID_FKFOREIGN Key(CoursePlanID)
57、REFERENCES Plan(CoursePlanID) ON DELETE CASCADE, CONSTRAINTStudentID_FKFOREIGN KEY(StudentID)REFERENCES Student(StudentID) ON DELETE CASCADE);在PostgreSQL中,執(zhí)行SQL語句創(chuàng)建數(shù)據(jù)庫關(guān)系表Register。運(yùn)行按鈕SQL語句結(jié)果消息數(shù)據(jù)庫表ALTER TABLE ;二、修改表結(jié)構(gòu)SQL語句1.語句基本格式2.主要語句類型1)ADD修改方式,用于增加新列或列完整性約束ALTER TABLE ADD |完整性約束2)DROP修改方式,用于刪除指定列
58、或列的完整性約束條件3)RENAME修改方式,用于修改表名稱、列名稱ALTER TABLE DROP COLUMN ;ALTER TABLE DROP CONSTRAINT;ALTER TABLE RENAME TO ;ALTER TABLE RENAME TO ;4)ALTER修改方式,用于修改列的數(shù)據(jù)類型ALTER TABLE ALTER COLUMN TYPE;3.表修改舉例學(xué)生表Student原有結(jié)構(gòu)及數(shù)據(jù)例 在學(xué)生表Student中,新增一個“email”列運(yùn)行按鈕SQL語句結(jié)果消息新增列學(xué)生表Student修改后結(jié)構(gòu)及數(shù)據(jù)三、刪除表結(jié)構(gòu)SQL語句DROP TABLE ;注意: 該語
59、句將刪除該表的所有數(shù)據(jù)及其結(jié)構(gòu)1.語句基本格式2.表刪除舉例例 刪除注冊表Register表及其數(shù)據(jù),可以使用如下語句。DROP TABLE Register;運(yùn)行按鈕SQL語句結(jié)果消息例 執(zhí)行SQL語句刪除注冊表Register本節(jié)學(xué)習(xí)結(jié)束!3.2 數(shù)據(jù)定義SQL語句數(shù)據(jù)庫索引創(chuàng)建、修改、刪除掌握SQL語言的數(shù)據(jù)庫索引創(chuàng)建語句掌握SQL語言的數(shù)據(jù)庫索引修改語句掌握SQL語言的數(shù)據(jù)庫索引刪除語句【本節(jié)學(xué)習(xí)目標(biāo)】一、什么是索引索引(Index)是一種按照關(guān)系表中指定列的取值順序組織元組數(shù)據(jù)存儲的數(shù)據(jù)結(jié)構(gòu),使用它可以加快表中數(shù)據(jù)的查詢訪問。二、索引作用及特點(diǎn)索引作用:支持對數(shù)據(jù)庫表中數(shù)據(jù)快速查找,
60、其機(jī)理類似圖書目錄可以快速定位章節(jié)內(nèi)容。索引優(yōu)點(diǎn): 提高數(shù)據(jù)檢索速度 可快速連接關(guān)聯(lián)表 減少分組和排序時間索引開銷: 創(chuàng)建和維護(hù)索引都需要較大開銷 索引會占用額外存儲空間 數(shù)據(jù)操縱因維護(hù)索引帶來系統(tǒng)性能開銷三、索引創(chuàng)建SQL語句1.語句基本格式CREATE INDEX ON ;例 在學(xué)生信息表Student中,為出生日期Birthday列創(chuàng)建索引,以便支持按出生日期快速查詢學(xué)生信息。CREATE INDEX Birthday_Idx ON STUDENT (Birthday);2.索引創(chuàng)建實(shí)例3.索引創(chuàng)建SQL執(zhí)行運(yùn)行按鈕SQL語句結(jié)果消息新建索引四、索引修改SQL語句例如,索引名稱修改語句格
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廈門石雕石欄桿施工方案
- 紙質(zhì)航空航天材料開發(fā)與性能評價考核試卷
- 中國橋梁施工方案設(shè)計(jì)
- 農(nóng)業(yè)經(jīng)理人考試的必考知識模塊試題及答案
- 生物質(zhì)燃?xì)獾目尚行匝芯颗c市場潛力評估考核試卷
- 生物質(zhì)燃?xì)獾娘L(fēng)能利用技術(shù)考核試卷
- 電熱電蚊香液消耗速率考核試卷
- 礦山機(jī)械電子商城與網(wǎng)絡(luò)營銷考核試卷
- 2024年項(xiàng)目管理考試題型分析試題及答案
- 資格認(rèn)證考試實(shí)戰(zhàn)模擬的重要性試題及答案
- 焦化廠生產(chǎn)工序及工藝流程圖
- 特變電工-財(cái)務(wù)報(bào)表分析課件
- optimact540技術(shù)參考手冊
- 第一章電力系統(tǒng)仿真軟件介紹課件
- 產(chǎn)品QC工程圖 (質(zhì)量保證工程圖)Excel表格
- 人民醫(yī)院人才隊(duì)伍建設(shè)規(guī)劃人才隊(duì)伍建設(shè)五年規(guī)劃
- 電氣平行檢驗(yàn)用表
- GB∕T 14527-2021 復(fù)合阻尼隔振器和復(fù)合阻尼器
- 患者隨訪率低原因分析以及對策
- DB32∕T 2349-2013 楊樹一元立木材積表
- 首屆上海科技期刊編輯技能大賽試題
評論
0/150
提交評論