《數(shù)據(jù)庫(kù)原理》ppt.ppt
《《數(shù)據(jù)庫(kù)原理》ppt.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫(kù)原理》ppt.ppt(67頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1 數(shù)據(jù)庫(kù)系統(tǒng)原理 主講人 彭一明教材 數(shù)據(jù)庫(kù)系統(tǒng)原理教程 王珊等 清華大學(xué)出版社 2 前言 1 學(xué)習(xí)該課程的目的2 學(xué)習(xí)內(nèi)容3 學(xué)習(xí)方法與要求4 參考書 3 1 學(xué)習(xí)該課程的目的 數(shù)據(jù)庫(kù)技術(shù)是數(shù)據(jù)管理的最新技術(shù) 20世紀(jì)60年代中期 它的出現(xiàn)極大地促進(jìn)了計(jì)算機(jī)應(yīng)用向各行各業(yè)滲透 目前基于數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)應(yīng)用已成為計(jì)算機(jī)應(yīng)用的主流 占60 電子政務(wù)與管理信息系統(tǒng) MIS 政府 企業(yè) 銀行 飯店 旅游 醫(yī)療 遠(yuǎn)程教育 網(wǎng)絡(luò)應(yīng)用 計(jì)費(fèi)系統(tǒng) 目錄服務(wù) 人工智能系統(tǒng) 專家系統(tǒng) 地理信息系統(tǒng) 工程 科學(xué)統(tǒng)計(jì)以及圖形 圖象 CAD 多媒體等領(lǐng)域有廣泛的應(yīng)用 其數(shù)據(jù)庫(kù)技術(shù)起著關(guān)鍵作用 數(shù)據(jù)庫(kù)系統(tǒng)原理是從事數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā) 維護(hù)和數(shù)據(jù)庫(kù)管理系統(tǒng)的建立及相關(guān)理論研究必備的基礎(chǔ)知識(shí) 4 2 學(xué)習(xí)內(nèi)容 本課以關(guān)系數(shù)據(jù)庫(kù)為重點(diǎn)比較全面講解數(shù)據(jù)庫(kù)的基本概念和基本技術(shù) 第一章緒論概述數(shù)據(jù)管理的進(jìn)展 數(shù)據(jù)模型 數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)系統(tǒng) 數(shù)據(jù)庫(kù)管理系統(tǒng) 數(shù)據(jù)庫(kù)工程的基本概念 第二章 第四章講解關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)模型 數(shù)據(jù)語(yǔ)言 關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言SQL 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論第五章數(shù)據(jù)庫(kù)保護(hù)安全性 完整性 并發(fā)控制 恢復(fù)第六章數(shù)據(jù)庫(kù)設(shè)計(jì)第七章關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品實(shí)例第八章數(shù)據(jù)庫(kù)技術(shù)新進(jìn)展 5 3 學(xué)習(xí)方法與要求 該課的特點(diǎn) 以學(xué)習(xí)數(shù)據(jù)庫(kù)的基本概念 基本技術(shù)和數(shù)據(jù)庫(kù)設(shè)計(jì)為主 不象學(xué)習(xí)sqlserver oracle 學(xué)習(xí)語(yǔ)言 編程為主 有些概念和語(yǔ)句的語(yǔ)法不僅要熟記 還要了解用在何處 作用是什么 怎么使用 認(rèn)真看書 聽講 復(fù)習(xí) 思考 討論先修課有操作系統(tǒng) 離散數(shù)學(xué) 數(shù)據(jù)結(jié)構(gòu)認(rèn)真完成作業(yè)及每章同步練習(xí)題上機(jī) 通過(guò)MSSqlSerevr2000學(xué)習(xí)sql語(yǔ)言 6 兩次面授課程兩次語(yǔ)音答疑期末復(fù)習(xí)串講課程論壇 7 4 參考書 1 薩師煊 王珊 數(shù)據(jù)庫(kù)系統(tǒng)概論 第四版 高等教育出版社 2 徐潔磐 王銀銀 數(shù)據(jù)庫(kù)系統(tǒng)引論 1996南京大學(xué)出版社 3 王能斌 數(shù)據(jù)庫(kù)系統(tǒng) 1995電子工業(yè)出版社 4 李昭原主編 羅曉沛主審 數(shù)據(jù)庫(kù)技術(shù)新進(jìn)展 1997清華大學(xué)出版社 5 余晨 李文炬編著 SQLServer2000培訓(xùn)教程 2001年7月第1版2003年9月第7次印刷 清華大學(xué)出版社 6 上機(jī)內(nèi)容 sql概要語(yǔ)法 隨課件光盤一起發(fā)布 8 第一章緒論 理解數(shù)據(jù) 數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)管理系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)的概念 掌握數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn) 數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu) 數(shù)據(jù)庫(kù)系統(tǒng)的組成 掌握數(shù)據(jù)模型的相關(guān)概念 熟練掌握E R模型的表示方法 9 1 數(shù)據(jù) 實(shí)際上是描述事物的符號(hào)記錄 2 數(shù)據(jù)管理是指對(duì)數(shù)據(jù)的分類 組織 編碼 儲(chǔ)存 檢索和維護(hù) 經(jīng)歷了三個(gè)階段 1 人工管理階段 2 文件系統(tǒng)階段 3 數(shù)據(jù)庫(kù)系統(tǒng)階段3 數(shù)據(jù)庫(kù) database 簡(jiǎn)稱DB 數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi) 有組織的 可共享的數(shù)據(jù)集合 4 數(shù)據(jù)庫(kù)管理系統(tǒng) 簡(jiǎn)稱DBMS 是數(shù)據(jù)管理軟件 功能 數(shù)據(jù)庫(kù)在建立 運(yùn)用和維護(hù)時(shí)由數(shù)據(jù)庫(kù)管理系統(tǒng)統(tǒng)一管理 統(tǒng)一控制 5 數(shù)據(jù)庫(kù)系統(tǒng) 簡(jiǎn)稱DBS 指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成 一般由數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)管理系統(tǒng) 及其開發(fā)工具 應(yīng)用系統(tǒng) 數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成 10 數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn) 4頁(yè) 5點(diǎn) 1 數(shù)據(jù)的結(jié)構(gòu)化 面向全組織復(fù)雜的數(shù)據(jù)結(jié)構(gòu) 2 數(shù)據(jù)的共享性好 冗余度小 3 具有較高的數(shù)據(jù)與程序獨(dú)立性 4 數(shù)據(jù)由DBMS統(tǒng)一管理和控制 安全性控制 完整性控制 并發(fā)控制 數(shù)據(jù)庫(kù)恢復(fù) 5 數(shù)據(jù)的最小存取單位是數(shù)據(jù)項(xiàng) 7 數(shù)據(jù)的邏輯獨(dú)立性當(dāng)數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時(shí) 通過(guò)數(shù)據(jù)的總體邏輯結(jié)構(gòu)與某類應(yīng)用所涉及的局部邏輯結(jié)構(gòu)之間的映象或轉(zhuǎn)換功能保持?jǐn)?shù)據(jù)的局部邏輯結(jié)構(gòu)不變 由于應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的 所以應(yīng)用程序不必修改 這就是數(shù)據(jù)與程序的邏輯獨(dú)立性 簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性 11 8 數(shù)據(jù)的物理獨(dú)立性當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 或物理結(jié)構(gòu) 改變時(shí) 通過(guò)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與邏輯結(jié)構(gòu)之間的映象或轉(zhuǎn)換功能保持?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)不變 從而應(yīng)用程序也不必改變 這就是數(shù)據(jù)與程序的物理獨(dú)立性 簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性 9 數(shù)據(jù)模型的重要性及組成數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)的核心與基礎(chǔ) 各種機(jī)器上實(shí)現(xiàn)的DBMS軟件都基于某種數(shù)據(jù)模型 數(shù)據(jù)庫(kù)發(fā)展階段的劃分也是以數(shù)據(jù)模型的發(fā)展作為主要的依據(jù)和標(biāo)志 10 數(shù)據(jù)模型由三部分組成 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)操作 完整性約束 12 數(shù)據(jù)模型概述 在數(shù)據(jù)庫(kù)中用數(shù)據(jù)模型這個(gè)工具來(lái)抽象 表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息 數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬 數(shù)據(jù)模型應(yīng)滿足三方面要求 一是能比較真實(shí)地模擬觀實(shí)世界 二是容易為人所理解 三是便于在計(jì)算機(jī)上實(shí)現(xiàn) 模型劃分為兩類 它們分屬于兩個(gè)不同的層次 第一類模型是概念模型 也稱信息模型 它是按用戶的觀點(diǎn)對(duì)數(shù)據(jù)和信息建模 另一類模型是數(shù)據(jù)模型 它是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模 主要包括網(wǎng)狀模型 層次模型 關(guān)系模型等 13 數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)的核心和基礎(chǔ) 各種機(jī)器上實(shí)現(xiàn)的DBMS軟件都是基于某種數(shù)據(jù)模型的 為了把現(xiàn)實(shí)世界中的具體事物抽象 組織為某一DBMS支持的數(shù)據(jù)模型 通常分二步 首先把現(xiàn)實(shí)世界中的客觀對(duì)象抽象為某一種信息結(jié)構(gòu) 這種信息結(jié)構(gòu)并不依賴于具體的計(jì)算機(jī)系統(tǒng) 不是某個(gè)DBMS支持的數(shù)據(jù)模型 而是概念級(jí)的模型 概念模型 然后再把概念模型轉(zhuǎn)換為計(jì)算機(jī)上某一DBMS支持的數(shù)據(jù)模型 概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次 用于信息世界的建模 是現(xiàn)實(shí)世界到信息世界的第一層抽象 是用戶與數(shù)據(jù)庫(kù)設(shè)計(jì)人員之間進(jìn)行交流的語(yǔ)言 概念模型 14 圖1 10對(duì)象的抽象模型 15 1 信息世界的基本概念 信息世界 概念模型 涉及的概念主要有 1 實(shí)體 entity 客觀存在并可相互區(qū)別的事物稱為實(shí)體 實(shí)體可以是具體的人 事 物 也可以是抽象的概念或聯(lián)系 例如 一個(gè)職工 一個(gè)學(xué)生 一個(gè)部門 一門課 學(xué)生的一次選課 部門的一次訂貨 老師與系的工作關(guān)系 即某位老師在某系工作 等 2 屬性 attribute 實(shí)體所具有的某一特性稱為屬性 一個(gè)實(shí)體可以由若干個(gè)屬性來(lái)刻畫 例如 學(xué)生實(shí)體可以由學(xué)號(hào) 姓名 性別 出生年份 系 入學(xué)時(shí)間等屬性組成 94002268 張山 男 1976 計(jì)算機(jī)系 1994 這些屬性組合起來(lái)表征了一個(gè)學(xué)生 16 3 碼 key 唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼 例如 學(xué)號(hào)是學(xué)生實(shí)體的碼 4 域 domain 屬性的取值范圍稱為該屬性的域 例如 學(xué)號(hào)的域?yàn)?位整數(shù) 姓名的域?yàn)樽址?年齡的域?yàn)樾∮?5的整數(shù) 性別的域?yàn)?男 女 5 實(shí)體型 entitytype 用實(shí)體名及其屬性名集合來(lái)抽象和刻畫同類實(shí)體 稱為實(shí)體型 例如 學(xué)生 學(xué)號(hào) 姓名 性別 出生年份 系 入學(xué)時(shí)間 就是一個(gè)實(shí)體型 6 實(shí)體集 entityset 同型實(shí)體的集合稱為實(shí)體集 例如 全體學(xué)生就是一個(gè)實(shí)體集 17 7 聯(lián)系 relationship 在現(xiàn)實(shí)世界中 事務(wù)內(nèi)部以及事務(wù)之間是有聯(lián)系的 在信息世界中 這些聯(lián)系反映為實(shí)體內(nèi)部的聯(lián)系和實(shí)體之間的聯(lián)系 實(shí)體內(nèi)部的聯(lián)系通常是指組成實(shí)體的各屬性之間的聯(lián)系 兩個(gè)實(shí)體型之間的聯(lián)系可以分為三類 一對(duì)一聯(lián)系 1 1 如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體 實(shí)體集B中至多有一個(gè)實(shí)體與之聯(lián)系 反之亦然 稱實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)系 記為1 1 例如 班級(jí)與班長(zhǎng) 18 一對(duì)多聯(lián)系 1 n 如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體 實(shí)體集B中有n個(gè)實(shí)體 n 0 與之聯(lián)系 反之對(duì)于實(shí)體集B中的每一個(gè)實(shí)體 實(shí)體集A中至多只有一個(gè)實(shí)體與之聯(lián)系 稱實(shí)體集A與實(shí)體集B具有一對(duì)多聯(lián)系 記為1 n 例如 班級(jí)與學(xué)生 19 多對(duì)多聯(lián)系 m n 如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體 實(shí)體集B中有n個(gè)實(shí)體 n 0 與之聯(lián)系 反之對(duì)于實(shí)體集B中的每一個(gè)實(shí)體 實(shí)體集A中有m個(gè)實(shí)體 m 0 與之聯(lián)系 稱實(shí)體集A與實(shí)體集B具有多對(duì)多聯(lián)系 記為m n 例如 課程與學(xué)生 20 概念模型應(yīng)該能夠方便 準(zhǔn)確地表示出信息世界中的常用概念 表示方法很多 其中最為常用的是P P S Chen于1976年提出的實(shí)體 聯(lián)系方法 entity relationshipapproach 該方法用E R圖來(lái)描述現(xiàn)實(shí)世界的概念 E R圖提供了表示實(shí)體型 屬性和聯(lián)系的方法是 實(shí)體型 用矩形表示 矩形框內(nèi)寫明實(shí)體名 屬性 用橢圓形表示 并用無(wú)向邊將其與相應(yīng)的實(shí)體連接 聯(lián)系 用菱形表示 菱形框內(nèi)寫明聯(lián)系名 并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái) 同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型 1 1 1 n或m n 概念模型的表示方法 21 11 概念模型常用表示方法 實(shí)體 聯(lián)系法 E R圖描述 E R圖成分 實(shí)體 屬性 聯(lián)系 會(huì)畫E R圖 22 完整的E R圖有屬性實(shí)體的屬性表示 23 E R圖實(shí)例 選修與組成的屬性標(biāo)在聯(lián)系中 24 25 數(shù)據(jù)模型 在機(jī)器世界中不同的數(shù)據(jù)模型具有不同的數(shù)據(jù)結(jié)構(gòu)形式 目前最常用的數(shù)據(jù)模型有層次模型 hierarchicalmodel 網(wǎng)狀模型 networkmodel 關(guān)系模型 relationalmodel 面向?qū)ο蟮哪P?其中層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型 非關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)在20世紀(jì)70年代與80年代初非常流行 關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)80年代初到現(xiàn)在非常流行 面向?qū)ο竽P褪窃?0世紀(jì)80年代以來(lái) 面向?qū)ο蟮姆椒ê图夹g(shù)在計(jì)算機(jī)各個(gè)領(lǐng)域的應(yīng)用發(fā)展起來(lái)的 26 關(guān)系模型是目前最重要的一種模型 美國(guó)IBM公司的研究員E F codd于1970年發(fā)表題為 大型共享系統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)的關(guān)系模型 的論文 文中首次提出了數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系模型 20世紀(jì)80年代以來(lái) 計(jì)算機(jī)廠商新推出的數(shù)據(jù)庫(kù)管理系統(tǒng) DBMS 幾乎都支持關(guān)系模型 數(shù)據(jù)庫(kù)領(lǐng)域當(dāng)前的研究工作都是以關(guān)系方法為基礎(chǔ) 1 關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)在用戶看來(lái) 一個(gè)關(guān)系模型的邏輯結(jié)構(gòu)是一張二維表 它由行和列組成 例如 圖l 23中的學(xué)生人事記錄就是一個(gè)關(guān)系模型 它涉及下列概念 關(guān)系數(shù)據(jù)模型 27 12 關(guān)系模型中幾個(gè)主要術(shù)語(yǔ)關(guān)系 元組 屬性 域 分量 碼 關(guān)系模式 關(guān)系 定義2 3D1 D2 Dn的子集叫作在域D1 D2 Dn上的關(guān)系 用R D1 D2 Dn 表示 關(guān)系是笛卡爾積的子集 所以關(guān)系也是一個(gè)二維表 元組 表的每行為一個(gè)元組 屬性 對(duì)每列起一個(gè)名字 稱為屬性 表中的一列即為一個(gè)屬性 域 domain 屬性的取值范圍 分量 元組中的一個(gè)屬性值 碼 候選碼 若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組 而其真子集不行 則稱該屬性組為候選碼 主碼 若一個(gè)關(guān)系有多個(gè)候選碼 則選定其中一個(gè)為主碼關(guān)系模式 對(duì)關(guān)系的描述 一般表示為 R U 關(guān)系名 屬性1 屬性2 屬性n 三元組表示法 R U F 28 29 關(guān)系模式 對(duì)關(guān)系的描述 一般表示為 關(guān)系名 屬性1 屬性2 屬性n 例如 學(xué)生 學(xué)號(hào) 姓名 性別 系別 年齡 籍貫 課程 課程號(hào) 課程名 學(xué)分 在關(guān)系模型中 實(shí)體以及實(shí)體間的聯(lián)系都是用關(guān)系來(lái)表示 例如學(xué)生與課程之間的多對(duì)多聯(lián)系 選修 在關(guān)系模型中可以表示如下 選修 學(xué)號(hào) 課程號(hào) 成績(jī) 30 關(guān)系數(shù)據(jù)模型的操縱主要包括查詢 插入 刪除和更新數(shù)據(jù) 這些操作必須滿足關(guān)系的完整性約束條件 關(guān)系的完整性約束條件包括三大類 實(shí)體完整性 參照完整性和用戶定義的完整性 其具體含義將在后面介紹 關(guān)系模型中的數(shù)據(jù)操作是集合操作 操作對(duì)象和操作結(jié)果都是關(guān)系 即若干元組的集合 而不像非關(guān)系模型中那樣是單記錄的操作方式 另一方面 關(guān)系模型把存取路徑向用戶隱蔽起來(lái) 用戶只要指出 干什么 或 找什么 不必詳細(xì)說(shuō)明 怎么干 或 怎么找 從而大大地提高了數(shù)據(jù)的獨(dú)立性 提高了用戶的生產(chǎn)率 Select fromstudent 2 關(guān)系數(shù)據(jù)模型的操縱與完整性約束 31 13 集中式數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)及二級(jí)映象 數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫(kù)系統(tǒng)是由外模式 模式和內(nèi)模式三級(jí)構(gòu)成 兩級(jí)映象功能是 外模式 模式映象 模式 內(nèi)模式映象 32 掌握關(guān)系模型 關(guān)系 關(guān)系模式 關(guān)系數(shù)據(jù)庫(kù) 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)和關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的概念 正確理解關(guān)系的碼 外碼理解關(guān)系的完整性內(nèi)容及規(guī)則會(huì)用關(guān)系代數(shù)表示查詢 一 基本概念 1 關(guān)系模型 由關(guān)系數(shù)據(jù)結(jié)構(gòu) 關(guān)系操作集合和完整性約束三部分組成 關(guān)系的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常單一 是一張扁平的二維表 現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系都用關(guān)系二維表表示 關(guān)系操作特點(diǎn) 采用集合操作方式 即操作的對(duì)象和結(jié)果都是集合 完整性約束實(shí)體完整性 參照完整性和用戶定義的完整性 第二章關(guān)系數(shù)據(jù)庫(kù) 33 2 關(guān)系模式 41頁(yè) 定義2 4 關(guān)系的描述稱為關(guān)系模式 形式化表示R U D DOM F R為關(guān)系名 U為組成關(guān)系的諸屬性名 D為屬性的域 DOM表示屬性向域的映象 F是屬性間的數(shù)據(jù)依賴關(guān)系 通常簡(jiǎn)記為R U 或記為R A1 A2 An 3 關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)的型與值 42頁(yè) 關(guān)系模式是型 關(guān)系是值 關(guān)系數(shù)據(jù)庫(kù)模式與關(guān)系數(shù)據(jù)庫(kù)通常統(tǒng)稱為關(guān)系數(shù)據(jù)庫(kù)4 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng) 支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng) 5 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)簡(jiǎn)稱為關(guān)系系統(tǒng) 34 二 關(guān)系模型三類完整性 42 實(shí)體完整性 參照完整性 用戶定義完整性實(shí)體完整性規(guī)則 參照完整性規(guī)則 主 外碼概念及用途 候選碼 若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組 而其真子集不行 則稱該屬性組為候選碼 candidatekey 主碼 若一個(gè)關(guān)系有多個(gè)候選碼 則選定其中一個(gè)為主碼 primarykey 主屬性 候選碼中的屬性稱主屬性 非主屬性 不包含在任何候選碼中的屬性稱為非碼屬性也稱為非主屬性 規(guī)則2 1實(shí)體完整性規(guī)則 若屬性A是基本關(guān)系R的主屬性 則屬性A不能取空值 35 外碼 定義2 5設(shè)F是基本關(guān)系R的一個(gè)或一組屬性 但不是關(guān)系R的碼 如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng) 則稱F是基本關(guān)系R的外碼 foreignkey 并稱基本關(guān)系R為參照關(guān)系 referencingrelation 基本關(guān)系S為被參照關(guān)系 referencedrelation 或目標(biāo)關(guān)系 targetrelatton 關(guān)系R和S不一定是不同的關(guān)系 規(guī)則2 2參照完整性規(guī)則 若屬性 或?qū)傩越M F是基本關(guān)系R的外碼 它與基本關(guān)系S的主碼Ks相對(duì)應(yīng) 基本關(guān)系R和S不一定是不同的關(guān)系 則對(duì)于R中每個(gè)元組在F上的值必須為 或者取空值 F的每個(gè)屬性值均為空值 或者等于S中某個(gè)元組的主碼值 36 選擇又稱為限制 restriction 它是在關(guān)系R中選擇滿足給定條件的諸元組 記作 其中F表示選擇條件 1 選擇 selection 三 關(guān)系操作1 關(guān)系模型的操作 8種 傳統(tǒng)的集合運(yùn)算4種 并 交 差 廣義笛卡爾積 專門的關(guān)系運(yùn)算4種 選擇 投影 連接 除 操作方式的特點(diǎn) 集合操作2 用關(guān)系代數(shù)表示關(guān)系運(yùn)算選擇 投影 連接 除 37 關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系 A R t A t R 其中A為R中的屬性列 投影操作是從列的角度進(jìn)行的運(yùn)算 連接 join 它是從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組 記作 2 投影 projection 自然連接 兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組 取值相同 并且要在結(jié)果中把重復(fù)的屬性去掉 即若R和S具有相同的屬性組B 則自然連接可記作 38 例1查詢信息系 IS系 全體學(xué)生Sdept IS Student 或 5 IS Student 例2查詢學(xué)生關(guān)系student在學(xué)生姓名和所在系兩個(gè)屬性上的投影 Sname Sdept student 或 student 例3查詢至少選修了一門其直接先行課為6號(hào)課程的學(xué)生姓名 52頁(yè) Sname Cpno 6 Course SC Student 關(guān)系代數(shù)例題 例4檢索信息系 IS系 學(xué)生的姓名 Sname Sdept IS Student SelectSnamefromstudentwhereSdept IS 39 1 SQL語(yǔ)言SQL的數(shù)據(jù)定義功能 SQL的數(shù)據(jù)操縱功能SQL的數(shù)據(jù)查詢功能 SQL的數(shù)據(jù)控制功能2 嵌入式SQL語(yǔ)句與主語(yǔ)言之間的通信 第三章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言 SQL 40 SQL語(yǔ)言支持關(guān)系數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu) 如圖3 1所示 其中外模式對(duì)應(yīng)于視圖 view 和部分基本表 basetable 模式對(duì)應(yīng)于基本表 內(nèi)模式對(duì)應(yīng)于存儲(chǔ)文件 SQL語(yǔ)言支持三級(jí)模式結(jié)構(gòu) 41 基本表是本身獨(dú)立存在的表 在SQL中一個(gè)關(guān)系對(duì)應(yīng)一個(gè)表 一些基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件 一個(gè)表可以帶若干索引 索引存放在存儲(chǔ)文件中 存儲(chǔ)文件的邏輯結(jié)構(gòu)組成了關(guān)系數(shù)據(jù)庫(kù)的內(nèi)模式 存儲(chǔ)文件的物理文件結(jié)構(gòu)是任意的 視圖是從基本表或其他視圖中導(dǎo)出的表 它本身不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫(kù)中 數(shù)據(jù)庫(kù)中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù) 這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中 因此視圖是一個(gè)虛表 用戶可以用SQL語(yǔ)言對(duì)視圖和基本表進(jìn)行查詢 在用戶眼中 視圖和基本表都是關(guān)系 而存儲(chǔ)文件對(duì)用戶是透明的 基本表 存儲(chǔ)文件與視圖 42 修改視圖和索引怎么辦 數(shù)據(jù)定義 43 CREATETABLE 表名 列名 數(shù)據(jù)類型 列級(jí)完整件約束條件 列名 數(shù)據(jù)類型 列級(jí)完整性約束條件 表級(jí)完整性約束條件 其中 表名 是基本表的名字 它由一個(gè)或多個(gè)屬性 列 組成 屬性要說(shuō)明類型與長(zhǎng)度 建表的同時(shí)還可定義與該表有關(guān)的完整性約束條件 如果完整性約束條件涉及到該表的多個(gè)屬性列 則必須定義在表級(jí)上 1 定義基本表SQL語(yǔ)言使用CREATETABLE語(yǔ)句定義基本表 其一般格式如下 44 例1建立一個(gè) 學(xué)生 表Student 它由學(xué)號(hào)sno 姓名Sname 性別Ssex 年齡Sage 所在系Sdept5個(gè)屬性組成 其中學(xué)號(hào)屬性不能為空 并且其值是唯一的 CREATETABLEStudent SnoCHAR 5 NOTNULLUNIQUE SnameCHAR 20 Ssexchar 2 Sageint SdeptCHAR 15 系統(tǒng)執(zhí)行上面的語(yǔ)句后 就在數(shù)據(jù)庫(kù)中建立一個(gè)新的空的 學(xué)生 表 并將有關(guān) 學(xué)生 表的定義及有關(guān)約束條件存放在數(shù)據(jù)字典中 45 2 刪除基本表 DROPTABLE 表名 例5刪除Student表DROPTABLEStudent 46 3 建立與刪除索引 通過(guò)索引可以大大加快表的查詢 在基本表上建立一個(gè)或多個(gè)索引 系統(tǒng)在存取數(shù)據(jù)時(shí)會(huì)自動(dòng)選擇合適的索引作為存取路徑 用戶不必也不能選擇索引 1 建立索引建立索引使用CREATEINDEX語(yǔ)句 其一般格式為 CREATE UNIQUE CLUSTER INDEXON 其中 表名 指定要建索引的基本表的名字 索引可以建在該表的一列或多列上 各列名之間用逗號(hào)分隔 每個(gè) 列名 后面還可以用 次序 指定索引值的排列次序 包括ASC和DESC 47 例6為學(xué)生 課程數(shù)據(jù)庫(kù)中的Student Course SC3個(gè)表建立索引 其中Student表按學(xué)號(hào)升序建立唯一索引 course表按課程號(hào)升序建立唯一索引 sc表按學(xué)號(hào)升序和課程號(hào)降序建唯一索引 CREATEUNIQUEINDEXStusnoONStudent Sno CREATEUNIQUEINDEXCoucnoONCourse Cno CREATEUNIQUEINDEXSCnoONSC SnoASC CnoDESC 2 刪除索引刪除索引使用DROPINDEX語(yǔ)句 其一般格式為DROPINDEX 索引名 例7刪除Student表的Stusname索引 stusno DROPINDEXStusname DROPINDEXStusno 48 CREATEVIEW 視圖名 列名 列名 AS 子查詢 WITHCHECKOPTION 其中子查詢可以是任意復(fù)雜的SELECT語(yǔ)句 但通常不允許含有ORDERBY子句和DISTINCT短語(yǔ) WITHCHECKOPTION表示對(duì)視圖進(jìn)行UPDATE INSERT和DELETE操作時(shí)要保證更新 插入或刪除的行滿足視圖定義中的謂詞條件 即子查詢中的條件表達(dá)式 如果CREATEVIEW語(yǔ)句僅指定了視圖名 省略了組成視圖的各個(gè)屬性列名 則隱含該視圖由子查詢中SELECT子句目標(biāo)列中的諸字段組成 4 建立與刪除視圖1 建立視圖 49 視圖建好后 若導(dǎo)出此視圖的基本表被刪除了 該視圖將失效 但一般不會(huì)被自動(dòng)刪除 DROPVIEW 刪除視圖 50 數(shù)據(jù)操縱 51 SQL中數(shù)據(jù)更新包括插入數(shù)據(jù) 修改數(shù)據(jù)和刪除數(shù)據(jù) 3 4 1插入數(shù)據(jù) SQL的數(shù)據(jù)插入語(yǔ)句INSERT通常有兩種形式 1 插入單個(gè)元組 52 例1將一個(gè)新學(xué)生記錄 學(xué)號(hào) 95020 姓名 陳冬 性別 男 所在系 IS 年齡 18歲 插入Student表中 例2插入一條選課記錄 95020 1 3 4 2修改數(shù)據(jù) 修改操作又稱為更新操作 其語(yǔ)句的一般格式為 新插入的記錄grade列上取空值 a b 53 其功能是修改指定表中滿足WHERE子句條件的元組 其中SET子句用于指定修改方法 即用 表達(dá)式 的值取代相應(yīng)的屬性列值 如果省略WHERE子句 則表示要修改表中的所有元組 1 修改某一個(gè)元組的值例4將學(xué)生95001的年齡改為22歲 2 修改多個(gè)元組的值例5將所有學(xué)生的年齡增加1歲 UPDATE 表名 SET 列名 表達(dá)式 列名 表達(dá)式 WHERE 條件 54 DELETEFROM 表名 WHERE 條件 DELETE語(yǔ)句的功能是從指定表中刪除滿足WHERE子句條件的所有元組 如果省略WHERE子句 表示刪除表中全部元組 但表的定義仍在字典中 也就是說(shuō) DELETE語(yǔ)句刪除的是表中的數(shù)據(jù) 而不是關(guān)于表的定義 刪除某一個(gè) 或某些 元組的值例7刪除學(xué)號(hào)為95019的學(xué)生記錄 DELETEFROMStudentWHERESno 95019 3 4 3刪除數(shù)據(jù) 55 2 刪除多個(gè)元組的值 例8刪除所有學(xué)生的選課記錄 DELETEFROMSC 56 整個(gè)SELECT語(yǔ)句的含義是 根據(jù)WHERE子句的條件表達(dá)式 從FROM子句指定的基本表或視圖中找出滿足條件的元組 再按SELECT子句中的目標(biāo)列表達(dá)式 選出元組中的屬性值形成結(jié)果表 如果有GROUP子句 則將結(jié)果按 列名1 的值進(jìn)行分組統(tǒng)計(jì) 如果GROUP子句帶HAVING短語(yǔ) 則只有滿足指定條件的組才予輸出 如果有ORDER子句 則結(jié)果表還要按 列名2 的值的升序或降序排序 SELECT語(yǔ)句既可以完成簡(jiǎn)單的單表查詢 也可以完成復(fù)雜的連接查詢和嵌套查詢 最基本的用法是 select列1 列2 列3 from表名 where條件 57 1 目標(biāo)列表達(dá)式有以下可選格式 數(shù)據(jù)查詢 58 其中 屬性列名表達(dá)式 可以是由屬性列 作用于屬性列的聚集函數(shù)和常量的任意算術(shù)運(yùn)算 十 一 組成的運(yùn)算公式 集函數(shù)的一般格式為 59 WHERE子句的條件表達(dá)式有以下可選格式 60 數(shù)據(jù)查詢 61 2 連接查詢 自然連接 自身連接 例34查詢每一門課的間接先修課 外連接 例33 Student表為主體列出每個(gè)學(xué)生的基本情況及其選課情況 SELECTStudent Sno Sname Ssex Sage Sdept Cno GradeFROMStudentLEFTOUTERJOINSCONStudent Sno SC Sno 62 3 嵌套查詢 where語(yǔ)句中可包含另個(gè)查詢塊 嵌套查詢分為不相關(guān)子查詢 in 比較運(yùn)算符 any all謂詞 和相關(guān)子查詢 exists 兩類 不相關(guān)子查詢是指子查詢的查詢條件不依賴于父查詢 它的求解方法是由里向外處理 相關(guān)子查詢是指子查詢的查詢條件依賴于外層父查詢的某個(gè)屬性值 它的求解方法是由外向里處理 IN ANY ALL 構(gòu)造的子查詢 Where數(shù)據(jù)項(xiàng)IN 子查詢 子查詢輸出中有相應(yīng)數(shù)據(jù)項(xiàng)相關(guān)子查詢 Whereexists 子查詢 子查詢的where條件中依賴于外層父查詢的某個(gè)屬性值用IN構(gòu)造的相關(guān)子查詢 Where數(shù)據(jù)項(xiàng)IN 子查詢 子查詢輸出中有相應(yīng)數(shù)據(jù)項(xiàng)且條件中依賴于外層父查詢的某個(gè)屬性值 63 選修了2號(hào)課程的學(xué)生姓名 解一 解二 解三 64 4 使用集函數(shù) GROUPBY子句可以將查詢結(jié)果表的各行按一列或多列取值相等的原則進(jìn)行分組 與集函數(shù)一起使用 即每一組都有一個(gè)函數(shù)值 例30查詢各個(gè)課程號(hào)與相應(yīng)的選課人數(shù) SELECTCno COUNT Sno FROMSCGROUPBYCno 查詢平均分 80分的課程號(hào) SelectcnofromscgroupbycnoHavingavg grade 80 5 對(duì)查詢結(jié)果分組 SELECTCOUNT FROMStudent 65 6 匹配符檢索 7 空值檢索 謂詞ISNULL和ISNOTNULL可用來(lái)查詢空值和非空值 SELECTSno CnoFROMSCWHEREGradeISNUIL 8 對(duì)查詢結(jié)果排序 ORDERBY子句指定按照一個(gè)或多個(gè)屬性列的為升序 ASC 或降序 DESC 重新排列查詢結(jié)果 其中升序ASC為缺省值 SELECT FROMStudentORDERBYSdept SageDESC 66 六 數(shù)據(jù)控制語(yǔ)言 GRANT語(yǔ)句的一般格式為 GRANT 權(quán)限 權(quán)限 ON 對(duì)象類型 對(duì)象名 TO 用戶 用戶 WITHGRANTOPTION REVOKE 權(quán)限 權(quán)限 ON 對(duì)象類型 對(duì)象名 FROM 用戶 用戶 67 2嵌入式SQL語(yǔ)句與主語(yǔ)言之間的通信數(shù)據(jù)庫(kù)工作單元與源程序工作單元之間通信主要包括 向主語(yǔ)言傳遞SQL語(yǔ)句的執(zhí)行狀態(tài)信息 使主語(yǔ)言能夠據(jù)此控制程序流程 通過(guò)SQL通訊區(qū) SQLCA 解決 主語(yǔ)言向SQL語(yǔ)句提供參數(shù) 通過(guò)主變量解決 將SQL語(yǔ)句查詢數(shù)據(jù)庫(kù)的結(jié)果交主語(yǔ)言進(jìn)一步處理 通過(guò)主變量和游標(biāo) CURSOR 實(shí)現(xiàn) 數(shù)據(jù)控制- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)庫(kù)原理 數(shù)據(jù)庫(kù) 原理 ppt
鏈接地址:http://m.zhongcaozhi.com.cn/p-6577189.html