




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫原理與應(yīng)用 教材李卓玲 費(fèi)雅潔:數(shù)據(jù)庫實(shí)用技術(shù)教程(基于Oracle系統(tǒng)) 高等教育出版社,2007.12 學(xué)習(xí)方式 聽課 (啟發(fā)式、討論式) 讀書 (預(yù)習(xí)、復(fù)習(xí)) 實(shí)踐 (綜合練習(xí))3考試成績 平時(shí)成績 (書面作業(yè))實(shí)踐考試(上機(jī)練習(xí))期末考試4內(nèi)容安排(1) 原理基礎(chǔ)篇 -第1章 緒論 -第2章 關(guān)系數(shù)據(jù)庫的理論基礎(chǔ) -第3章 SQL基礎(chǔ) -第4章 數(shù)據(jù)庫設(shè)計(jì)5內(nèi)容安排(2) 應(yīng)用篇-第5章 Oracle數(shù)據(jù)庫和表空間-第6章 Oracle基本對(duì)象-第7章 PL/SQL編程語言-第8章 PL/SQL應(yīng)用-第9章 Oracle的安全性-第10章 Oracle綜合實(shí)例6數(shù)據(jù)庫原理與應(yīng)用
2、第1章 緒論7學(xué)習(xí)目標(biāo) 掌握數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)的概念,了解數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。了解數(shù)據(jù)模型三要素,掌握E-R圖的畫法。 掌握關(guān)系、元組、屬性、碼、關(guān)系模式、關(guān)系模型等基本概念。 了解數(shù)據(jù)庫系統(tǒng)的三級(jí)模式和二級(jí)映像結(jié)構(gòu)。 了解數(shù)據(jù)庫管理系統(tǒng)的組成和功能以及數(shù)據(jù)庫系統(tǒng)的組成。了解Oracle數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)。8數(shù)據(jù)庫的作用 數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)領(lǐng)域中最為活躍的技術(shù)之一,是計(jì)算機(jī)科學(xué)的重要分支,它的出現(xiàn)對(duì)于許多企事業(yè)單位提高科學(xué)管理水平都起到舉足輕重的作用。對(duì)于一個(gè)企事業(yè)單位來說,數(shù)據(jù)庫的建設(shè)規(guī)模、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量這個(gè)機(jī)構(gòu)信息化程度的重要標(biāo)志。911 數(shù)據(jù)庫
3、系統(tǒng)概述12 數(shù)據(jù)模型13 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)14 數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)第1章 緒論 15 數(shù)據(jù)庫系統(tǒng)的組成16 Oracle數(shù)據(jù)庫系統(tǒng)概述17 小結(jié)101.1 數(shù)據(jù)庫系統(tǒng)概述1.1.1 數(shù)據(jù)庫基本術(shù)語1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1.1.3 數(shù)據(jù)庫系統(tǒng)的特點(diǎn)111.1.1 數(shù)據(jù)庫基本術(shù)語數(shù)據(jù)(Data)數(shù)據(jù)庫(Database)數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫系統(tǒng)(DBS)12數(shù)據(jù)(data)定義 對(duì)事物進(jìn)行描述的符號(hào)集合。種類 數(shù)字、文字、圖形、圖像、聲音、記錄等。數(shù)據(jù)與語義不可分割13數(shù)據(jù)(data)例:有一條記錄如下 (張力,男,1955.12,1978) 問題:這條記錄中的1978表
4、示什么?是此職工的工資額還是他參加工作時(shí)間或入校時(shí)間?一種解釋是,張力是一位男同志,1955年12月出生,現(xiàn)在每月工資收入1978元。還可以有另外的解釋,此記錄的通用表示為: 姓名、性別、出生年月、工資14數(shù)據(jù)庫(dataBase ,DB)解釋:數(shù)據(jù)庫就是存放數(shù)據(jù)的倉庫特點(diǎn):所存放的所有數(shù)據(jù)是彼此聯(lián)系、并按照某種存儲(chǔ)模式進(jìn)行組織和管理的。定義:從嚴(yán)格意義上講,數(shù)據(jù)庫就是以一定的組織方式存儲(chǔ)在計(jì)算機(jī)中相互關(guān)聯(lián)的數(shù)據(jù)的集合。它能夠以最佳的方式、最少的重復(fù)和最大的獨(dú)立性為多種應(yīng)用提供共享服務(wù)。15數(shù)據(jù)庫管理系統(tǒng)定義數(shù)據(jù)庫管理系統(tǒng)(dataBase management system ,DBMS)是專
5、門用于建立和管理數(shù)據(jù)的軟件系統(tǒng),是位于用戶和操作系統(tǒng)之間的數(shù)據(jù)管理軟件。作用 在建立、運(yùn)用和維護(hù)數(shù)據(jù)庫時(shí),由數(shù)據(jù)庫管理系統(tǒng)對(duì)其統(tǒng)一管理、統(tǒng)一控制。數(shù)據(jù)庫管理系統(tǒng)使用戶方便地定義數(shù)據(jù)和操縱數(shù)據(jù),并能夠保證數(shù)據(jù)的安全性、完整性、并發(fā)性及發(fā)生故障后及時(shí)進(jìn)行系統(tǒng)恢復(fù)。16數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(database system,DBS)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫之后的系統(tǒng)構(gòu)成組成 通常由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)及其開發(fā)工具、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。DBA 數(shù)據(jù)庫的建立、使用和維護(hù)等工作僅依靠一個(gè)DBMS是遠(yuǎn)遠(yuǎn)不夠的,還要有專職人員來完成,這些人稱為數(shù)據(jù)庫管理員(database administ
6、rator ,DBA)。DBA的主要任務(wù) 決定數(shù)據(jù)庫所包含的信息內(nèi)容,充當(dāng)數(shù)據(jù)庫系統(tǒng)與用戶的聯(lián)絡(luò)員,決定數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和訪問策略,決定數(shù)據(jù)庫的保護(hù)策略,監(jiān)視數(shù)據(jù)庫系統(tǒng)的工作,響應(yīng)數(shù)據(jù)庫系統(tǒng)的某些變化,改善系統(tǒng)時(shí)效性,提高系統(tǒng)工作效率。 17數(shù)據(jù)庫系統(tǒng)的地位181.1 數(shù)據(jù)庫系統(tǒng)概述1.1.1 數(shù)據(jù)庫基本術(shù)語1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1.1.3 數(shù)據(jù)庫系統(tǒng)的特點(diǎn)191.1.2數(shù)據(jù)管理技術(shù)的發(fā)展程序管理階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段20程序管理階段特點(diǎn)(1)數(shù)據(jù)不保存(2)數(shù)據(jù)管理由程序完成。(3)數(shù)據(jù)不共享,即數(shù)據(jù)是面向應(yīng)用的。(4)數(shù)據(jù)不具有獨(dú)立性。21文件系統(tǒng)階段特點(diǎn)(1)數(shù)據(jù)可以長期保
7、存。(2) 由文件系統(tǒng)管理數(shù)據(jù)。(3)數(shù)據(jù)共享性差。(4)數(shù)據(jù)獨(dú)立性低。22數(shù)據(jù)庫系統(tǒng)階段時(shí)間: 從20世紀(jì)60年代后期開始面向:大規(guī)模數(shù)據(jù)量、廣泛的應(yīng)用、共享數(shù)據(jù)集合統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng)DBMS在計(jì)算機(jī)科學(xué)領(lǐng)域逐步形成數(shù)據(jù)庫技術(shù)這一獨(dú)立分支。231.1 數(shù)據(jù)庫系統(tǒng)概述1.1.1 數(shù)據(jù)庫基本術(shù)語1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1.1.3 數(shù)據(jù)庫系統(tǒng)的特點(diǎn)241.1.3 數(shù)據(jù)庫系統(tǒng)的特點(diǎn)數(shù)據(jù)結(jié)構(gòu)化 數(shù)據(jù)共享性好,冗余度低 數(shù)據(jù)獨(dú)立性高 數(shù)據(jù)由DBMS統(tǒng)一管理和控制 25數(shù)據(jù)結(jié)構(gòu)化在數(shù)據(jù)庫系統(tǒng)中,不僅要考慮針對(duì)某個(gè)應(yīng)用的數(shù)據(jù)結(jié)構(gòu),還要考慮整個(gè)組織(即多個(gè)應(yīng)用)的數(shù)據(jù)結(jié)構(gòu)。 26數(shù)據(jù)結(jié)構(gòu)化例如:
8、在一個(gè)學(xué)校的管理信息系統(tǒng)中,不僅要考慮學(xué)生的人事管理,還要考慮學(xué)籍管理、選課管理等,可以按照圖1.2的方式為該校的管理信息系統(tǒng)組織學(xué)生數(shù)據(jù)。 27數(shù)據(jù)結(jié)構(gòu)化學(xué)生選課記錄 學(xué)生獎(jiǎng)懲記錄 學(xué)生學(xué)籍記錄 學(xué)生基本記錄 課程記錄 授獎(jiǎng)單位記錄 學(xué)歷授予學(xué)校記錄 課程號(hào) 學(xué)號(hào) 學(xué)分學(xué)號(hào) 日期 學(xué)校代號(hào) 地點(diǎn) 學(xué)歷名 學(xué)號(hào) 日期 單位代號(hào) 獎(jiǎng)懲條目學(xué)校代號(hào) 學(xué)校名稱 地址 課程號(hào) 課程名 學(xué)號(hào) 姓名 性別 出生年月 入學(xué)成績 政治面貌 籍貫 家庭出身 單位代號(hào) 單位名稱圖1.2 適應(yīng)多種管理的學(xué)生數(shù)據(jù)記錄28數(shù)據(jù)結(jié)構(gòu)化體現(xiàn)特征(1)用數(shù)據(jù)模型描述數(shù)據(jù)結(jié)構(gòu),無需程序定義和解釋。(2)數(shù)據(jù)可以是變長的。(3)
9、數(shù)據(jù)的最小存取單位是數(shù)據(jù)項(xiàng)。29數(shù)據(jù)共享性好,冗余度低 數(shù)據(jù)的共享程度直接關(guān)系到數(shù)據(jù)的冗余度。從整體角度來看,數(shù)據(jù)庫系統(tǒng)描述數(shù)據(jù)時(shí)不再面向某個(gè)特定應(yīng)用而是面向整個(gè)系統(tǒng)。 例如:上述學(xué)生基本記錄就可以為多個(gè)應(yīng)用(例如,選課管理、獎(jiǎng)懲情況管理、學(xué)籍情況管理)所共享,這樣既可以大幅度降低數(shù)據(jù)冗余度,節(jié)約存儲(chǔ)空間,又能夠避免數(shù)據(jù)之間的不兼容性與不一致性。數(shù)據(jù)的不一致性:是指同一數(shù)據(jù)的不同副本的值不一樣。30數(shù)據(jù)獨(dú)立性高 數(shù)據(jù)的獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性。物理獨(dú)立性是指用戶的應(yīng)用程序與存儲(chǔ)在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨(dú)立的。當(dāng)數(shù)據(jù)的物理存儲(chǔ)發(fā)生改變時(shí),應(yīng)用程序無需改變。邏輯獨(dú)立性是指用戶的應(yīng)
10、用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的。數(shù)據(jù)的邏輯結(jié)構(gòu)發(fā)生改變時(shí),用戶程序可以不變。31數(shù)據(jù)由DBMS統(tǒng)一管理和控制 數(shù)據(jù)庫中數(shù)據(jù)的共享是并發(fā)的共享,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫中的數(shù)據(jù),甚至可以同時(shí)存取數(shù)據(jù)庫中同一個(gè)數(shù)據(jù),所以,數(shù)據(jù)庫中的數(shù)據(jù)是由DBMS統(tǒng)一管理和控制的。為了保證數(shù)據(jù)的正確性, DBMS必須提供數(shù)據(jù)的安全性保護(hù)、數(shù)據(jù)的完整性檢驗(yàn)、并發(fā)控制、數(shù)據(jù)庫恢復(fù)等功能。 3211 數(shù)據(jù)庫系統(tǒng)概述12 數(shù)據(jù)模型13 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)14 數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)第1章 緒論 15 數(shù)據(jù)庫系統(tǒng)的組成16 Oracle數(shù)據(jù)庫系統(tǒng)概述17 小結(jié)331.2 數(shù)據(jù)模型1.2.1 數(shù)據(jù)模型的概念1.2.2
11、 實(shí)體聯(lián)系模型1.2.3 關(guān)系數(shù)據(jù)模型1.2.4 關(guān)系數(shù)據(jù)庫概述341.2.1數(shù)據(jù)模型的概念數(shù)據(jù)結(jié)構(gòu)化是數(shù)據(jù)庫系統(tǒng)的主要特征之一,數(shù)據(jù)的結(jié)構(gòu)是通過數(shù)據(jù)模型來描述的。 數(shù)據(jù)模型的三要素: 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)操作 完整性約束35數(shù)據(jù)模型的三要素?cái)?shù)據(jù)結(jié)構(gòu): -描述系統(tǒng)的靜態(tài)特性,是所研究對(duì)象的類型集合。 -通常都按照數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型。 -傳統(tǒng)的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和關(guān)系模型,關(guān)系模型是目前廣泛采用的數(shù)據(jù)模型。近年出現(xiàn)了對(duì)象數(shù)據(jù)模型。數(shù)據(jù)操作: -描述系統(tǒng)的動(dòng)態(tài)特性,是對(duì)各種對(duì)象實(shí)例允許執(zhí)行的操作的集合。 -數(shù)據(jù)操作主要分為插入數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)這4類。完整性約束: 是
12、為保證數(shù)據(jù)的正確性、有效性和相容性而制定的一系列規(guī)約。361.2 數(shù)據(jù)模型1.2.1 數(shù)據(jù)模型的概念1.2.2 實(shí)體聯(lián)系模型1.2.3 關(guān)系數(shù)據(jù)模型1.2.4 關(guān)系數(shù)據(jù)庫概述371.2.2 實(shí)體聯(lián)系模型實(shí)體聯(lián)系模型(entity-relationship model) -是建立數(shù)據(jù)模型的一種直觀的圖形方法, -也可稱為E-R圖(Entity-Relationship Diagram)。 -它是目前建立數(shù)據(jù)模型所采用的最主要的方法。 38E-R圖的作用E-R圖用于信息世界的建模,是從現(xiàn)實(shí)世界到信息世界的第一層抽象,是用戶與數(shù)據(jù)庫設(shè)計(jì)人員之間交流的語言。它是概念級(jí)的模型,所以用E-R圖建立的模型也
13、稱為概念模型。從現(xiàn)實(shí)世界抽象出概念模型,然后把概念模型轉(zhuǎn)換為某個(gè)DBMS支持的數(shù)據(jù)結(jié)構(gòu),這需要一個(gè)過程,如圖1.3所示。概念模型實(shí)際上是現(xiàn)實(shí)世界到信息世界再到機(jī)器世界的一個(gè)中間環(huán)節(jié)。39E-R圖的作用 機(jī)器世界 信息世界 現(xiàn)實(shí)世界 現(xiàn)實(shí)世界 人的認(rèn) 識(shí)抽象 概念模型DBMS支持的數(shù)據(jù)結(jié)構(gòu)圖1.3 從現(xiàn)實(shí)世界到信息世界再到機(jī)器世界的過程40E-R圖中常用的基本術(shù)語 (1)實(shí)體實(shí)體(entity)是指客觀世界實(shí)際存在并可相互區(qū)別的事物。實(shí)體可以指人,也可指實(shí)際的東西(如椅子、汽車等),也可以指抽象的和概念性的東西(如一次借書,一種感情等)。實(shí)體可以分為單個(gè)實(shí)體和實(shí)體集。單個(gè)實(shí)體指單個(gè)的、能相互區(qū)別
14、的特定實(shí)體。若干類似實(shí)體可形成一個(gè)實(shí)體集。 例如:所有的學(xué)生組成一個(gè)實(shí)體集,而學(xué)生“趙明”則是單個(gè)實(shí)體;所有的大學(xué)形成一個(gè)實(shí)體集,而某所大學(xué)則是單個(gè)實(shí)體。41E-R圖中常用的基本術(shù)語 (2)屬性屬性(attribute)是指實(shí)體所具有的某種特性。 例如,一個(gè)人有其姓名、年齡、性別、籍貫、教育程度等,其中的每一項(xiàng)都稱為人的屬性。屬性是對(duì)實(shí)體特征的抽象描述,屬性的具體取值稱為屬性值。 例如,“李娜,25,女,山西,本科”這些值均為學(xué)生李娜的屬性值。同一實(shí)體集中各個(gè)實(shí)體同一屬性的取值范疇稱為這個(gè)屬性的值域。 例如,姓名的值域?yàn)樽址?,字符串的長度一般為8位,性別的值域是(男,女),年齡的值域是小
15、于35的正整數(shù)。碼:一個(gè)屬性值或一組屬性值如果能唯一標(biāo)識(shí)實(shí)體集中的各個(gè)實(shí)體,則稱此屬性或這一組屬性為此實(shí)體集的碼(也稱為鍵)。 例如,在一所學(xué)校里,學(xué)號(hào)是唯一能夠標(biāo)識(shí)學(xué)生的屬性,所以學(xué)號(hào)就是學(xué)生實(shí)體的碼。 42E-R圖中常用的基本術(shù)語 (3)聯(lián)系實(shí)體集之間的聯(lián)系可把實(shí)體集關(guān)聯(lián)起來,即表示現(xiàn)實(shí)世界中事物之間的語義關(guān)系。 例如,“學(xué)生”實(shí)體和“課程”實(shí)體之間存在著“選修”聯(lián)系,聯(lián)系也可以有屬性,如“選修”實(shí)體內(nèi)還可以有“成績”這一屬性。兩個(gè)實(shí)體集之間的聯(lián)系可以分為以下3類 一對(duì)一聯(lián)系 一對(duì)多聯(lián)系 多對(duì)多聯(lián)系 43一對(duì)一聯(lián)系 定義 對(duì)于任意兩個(gè)實(shí)體集A和B,如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中
16、至多有一個(gè)實(shí)體與之聯(lián)系,反之亦然,則稱實(shí)體集A與實(shí)體集B之間存在一對(duì)一聯(lián)系,記為1:1。例子: 班級(jí)和班長之間存在一對(duì)一聯(lián)系,因?yàn)橐粋€(gè)班級(jí)只能有一個(gè)班長,而班長只在一個(gè)班級(jí)中任職。44一對(duì)多聯(lián)系 定義 對(duì)于任意兩個(gè)實(shí)體集A和B,如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n1)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B之間存在一對(duì)多聯(lián)系,記為1:n。例子 班級(jí)和學(xué)生實(shí)體之間存在一對(duì)多聯(lián)系,因?yàn)橐粋€(gè)班級(jí)中含有若干名學(xué)生,而每名學(xué)生只從屬于一個(gè)班級(jí)。45多對(duì)多聯(lián)系 定義 對(duì)于任意兩個(gè)實(shí)體集A和B,如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,
17、實(shí)體集B中有n個(gè)實(shí)體(n1)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中也有m個(gè)實(shí)體(m1)與之聯(lián)系,則稱實(shí)體集A和實(shí)體集B之間存在多對(duì)多聯(lián)系,記為n:m。例子 課程與學(xué)生之間存在多對(duì)多聯(lián)系,因?yàn)橐婚T課程可以有若干名學(xué)生同時(shí)選修,而一名學(xué)生又可以同時(shí)選修多門課程。46三種聯(lián)系的關(guān)系 一對(duì)一聯(lián)系是一對(duì)多聯(lián)系的特例一對(duì)多聯(lián)系又是多對(duì)多聯(lián)系的特例。47E-R圖的表示方法E-R圖中的相關(guān)規(guī)定 -實(shí)體集:用矩形框表示,框內(nèi)寫明實(shí)體名。 -屬 性:用橢圓框表示,框內(nèi)寫明屬性名,由一條無向直線與所屬實(shí)體相連。 -聯(lián) 系:用菱形框表示,框內(nèi)寫明聯(lián)系名,并用無向直線分別與有關(guān)實(shí)體相連,同時(shí)在無向直線旁
18、邊標(biāo)明聯(lián)系的類型。 -圖1.4描述3種聯(lián)系類型的實(shí)例。48E-R圖的表示方法實(shí)例圖1.4 3種聯(lián)系類型實(shí)例49E-R圖的表示方法實(shí)例“領(lǐng)導(dǎo)”聯(lián)系:一個(gè)班級(jí)只有一名班長,一名班長只能領(lǐng)導(dǎo)一個(gè)班級(jí),所以班長與班級(jí)之間存在一對(duì)一聯(lián)系“領(lǐng)導(dǎo)”?!敖M成”聯(lián)系:一個(gè)班級(jí)由若干名學(xué)生組成,一名學(xué)生只能隸屬于一個(gè)班級(jí),所以班級(jí)與學(xué)生之間存在一對(duì)多聯(lián)系“組成”?!斑x修”聯(lián)系:一名學(xué)生可以選修多門課程,一門課程可以被多名學(xué)生選修,所以學(xué)生與課程之間存在多對(duì)多聯(lián)系“選修”。50E-R圖的表示方法建立E-R圖的步驟:1、應(yīng)根據(jù)實(shí)際應(yīng)用首先確定哪些是實(shí)體集,有多少個(gè)實(shí)體集;2、確定實(shí)體集的屬性;3、確定實(shí)體集之間存在怎
19、樣的聯(lián)系以及聯(lián)系的屬性。51學(xué)?!敖虒W(xué)管理”例子 假設(shè)教學(xué)過程中存在以下一些事實(shí)。事實(shí)一:一個(gè)班級(jí)由若干名學(xué)生組成,一名學(xué)生隸屬于一個(gè)班級(jí);事實(shí)二:一名學(xué)生可以選修多門課程,一門課程可以被多名學(xué)生選修,并且選修后會(huì)產(chǎn)生成績;事實(shí)三:一名教師可以講授多門課程,一門課程可以由多名教師講授。52學(xué)?!敖虒W(xué)管理”例子 實(shí)體: 學(xué)生、班級(jí)、課程、教師聯(lián)系: 由事實(shí)一可以得到一個(gè)一對(duì)多聯(lián)系,將其命名為“組成”。 由事實(shí)二可以得到一個(gè)多對(duì)多聯(lián)系,將其命名為“選修”,而且此聯(lián)系還有“成績”屬性。 由事實(shí)三可以得到一個(gè)多對(duì)多聯(lián)系,將其命名為“講授”。53學(xué)校“教學(xué)管理”例子 假設(shè)上述實(shí)體與聯(lián)系的相關(guān)屬性如下。學(xué)
20、生:學(xué)號(hào)、姓名、性別、出生年月、入學(xué)成績班級(jí):班級(jí)號(hào)、班級(jí)名稱、所屬專業(yè)、組成時(shí)間、系別課程:課程號(hào)、課程名稱、學(xué)分教師:職工號(hào)、姓名、性別、出生日期、職稱選修:成績54學(xué)校“教學(xué)管理”例子 圖1.5 教學(xué)管理E-R圖551.2 數(shù)據(jù)模型1.2.1 數(shù)據(jù)模型的概念1.2.2 實(shí)體聯(lián)系模型1.2.3 關(guān)系數(shù)據(jù)模型1.2.4 關(guān)系數(shù)據(jù)庫概述561.2.3 關(guān)系數(shù)據(jù)模型用E-R圖所表示的概念模型獨(dú)立于具體的DBMS所支持的數(shù)據(jù)模型,是進(jìn)入信息世界的具體體現(xiàn)。傳統(tǒng)的數(shù)據(jù)模型 層次數(shù)據(jù)模型(Hierachical Data Model)-層次DBMS 網(wǎng)狀數(shù)據(jù)模型(Network Data Model)
21、-網(wǎng)狀DBMS 關(guān)系數(shù)據(jù)模型(Relational Data Model)-關(guān)系DBMSE-R圖一旦設(shè)計(jì)完畢,并選擇好DBMS所支持的數(shù)據(jù)模型之后,就可以將E-R圖轉(zhuǎn)換為DBMS所支持的數(shù)據(jù)模型了,也就實(shí)現(xiàn)了從信息世界到機(jī)器世界的轉(zhuǎn)換。57關(guān)系的概念 關(guān)系是通常意義上的一張二維表,由行和列所組成,表的各列以屬性開始,是列的入口。例如,如表1.1所示的學(xué)生記錄表就是一個(gè)關(guān)系。 學(xué)號(hào)姓名性別出生年月入學(xué)成績附加分班級(jí)號(hào)010101趙明男1980-11-6560500101010201趙以男1978-8-24500400102010102馬水男1979-3-6520200101020101楊儀女19
22、80-4-24550300201020102王蕾女1980-11-6560500201020201??赡?981-6-6580500202020202馬力女1981-7-7510200202表1.1 學(xué)生記錄表58關(guān)系的概念 關(guān)系中所涉及的幾個(gè)術(shù)語如下。(1)元組:表中的一行數(shù)據(jù)是一個(gè)元組,也稱為一條記錄。 例:表1.1中有7行數(shù)據(jù),即有7個(gè)元組或稱7條記錄。(2)屬性:表中的一列是一個(gè)屬性,也稱為一個(gè)字段,由名稱、數(shù)據(jù)類型、長度構(gòu)成其特征。 例:表1.1中有7列,即有7個(gè)屬性或稱7個(gè)字段,分別是:學(xué)號(hào)、姓名、性別、出生年月、入學(xué)成績、附加分、班級(jí)號(hào)。(3)主碼:表中可以唯一地確定一個(gè)元組的某
23、個(gè)屬性組稱為主碼,也稱為主鍵,它可以由一個(gè)屬性或多個(gè)屬性構(gòu)成。 例:表1.1中的屬性“學(xué)號(hào)”唯一地確定一名學(xué)生,即成為“學(xué)生”關(guān)系的主碼。 (4)值域:屬性的取值范圍稱為值域。每個(gè)屬性均對(duì)應(yīng)一個(gè)值域,數(shù)據(jù)類型相同的屬性可對(duì)應(yīng)于同一值域,數(shù)據(jù)類型互異的屬性對(duì)應(yīng)于不同的值域。 例:表1.1中“性別”的值域是(男,女),而“附加分”的值域是050之間的整數(shù)。 (5)分量: 元組中的一個(gè)屬性值稱為分量。 例:表1.1中“楊儀”是“學(xué)生”關(guān)系中第4個(gè)元組的“姓名”分量。 59關(guān)系模式 關(guān)系模式是對(duì)關(guān)系的一種簡化描述,它的一般表示形式如下: 關(guān)系名(屬性名1,屬性名2,屬性名n)關(guān)系名就是二維表表名的簡稱
24、,關(guān)系中的主碼在關(guān)系模式中要用下劃線指明。 例如:表1.1中的“學(xué)生”關(guān)系可描述為學(xué)生( 學(xué)號(hào) ,姓名,性別,出生年月,入學(xué)成績,附加分,班級(jí)號(hào))關(guān)系模式是關(guān)系的基本數(shù)據(jù)結(jié)構(gòu),反映關(guān)系的靜態(tài)特性。60關(guān)系模型 數(shù)據(jù)以關(guān)系的形式表示,其數(shù)據(jù)模型就是關(guān)系模型。關(guān)系模型應(yīng)遵循以下幾個(gè)特點(diǎn)。(1)關(guān)系中的每一列都是不可再分的基本數(shù)據(jù)項(xiàng);(2)各列的屬性名稱不同,但其數(shù)據(jù)類型可以相同;(3)列與列的出現(xiàn)順序左右調(diào)換,不會(huì)影響所表示的信息;(4)行與行的出現(xiàn)順序前后調(diào)換,不會(huì)影響所表示的信息;(5)關(guān)系中不能存在屬性值完全相同的兩行。關(guān)系模式必須滿足一定的規(guī)范條件。這些規(guī)范條件中最基本的一條就是,關(guān)系的每
25、一個(gè)分量必須是不可再分的數(shù)據(jù)項(xiàng),即不允許表中還嵌有子表。61關(guān)系模型 表1.2 含有子表的二維表-不符合要求的表學(xué)號(hào)姓名性別出生年月班級(jí)號(hào) 成績數(shù)學(xué)英語電工德育010101趙明男1980-11-6010186908987010201趙以男1978-8-24010275807867表1.3 符合要求的關(guān)系的二維表學(xué)號(hào)姓名性別出生年月班級(jí)號(hào)數(shù)學(xué)英語電工德育010101趙明男1980-11-6010186908987010201趙以男1978-8-2401027580786762關(guān)系模型 關(guān)系模型的操作: 包括查詢、插入、刪除和更新數(shù)據(jù)。這些操作必須滿足關(guān)系的完整性約束條件。在關(guān)系模型中,任何實(shí)體以
26、及實(shí)體間的聯(lián)系都用關(guān)系表示,對(duì)數(shù)據(jù)進(jìn)行各種處理后得到的還是關(guān)系。因而關(guān)系模型數(shù)據(jù)結(jié)構(gòu)簡單、清晰,易懂易用,深受用戶喜愛。631.2 數(shù)據(jù)模型1.2.1 數(shù)據(jù)模型的概念1.2.2 實(shí)體聯(lián)系模型1.2.3 關(guān)系數(shù)據(jù)模型1.2.4 關(guān)系數(shù)據(jù)庫概述641.2.4 關(guān)系數(shù)據(jù)庫概述數(shù)據(jù)庫模型依賴于數(shù)據(jù)的存儲(chǔ)模式,即數(shù)據(jù)存儲(chǔ)模式不同,數(shù)據(jù)庫的性質(zhì)亦不同。以關(guān)系模型作為數(shù)據(jù)的組織和存儲(chǔ)方式的數(shù)據(jù)庫稱為關(guān)系數(shù)據(jù)庫。支持關(guān)系數(shù)據(jù)模型的數(shù)據(jù)庫管理系統(tǒng)稱為關(guān)系數(shù)據(jù)庫管理系統(tǒng)(relational database management system,RDBMS)。關(guān)系數(shù)據(jù)庫采用數(shù)學(xué)方法來處理數(shù)據(jù)庫中的數(shù)據(jù),便于理解和
27、使用。因此,關(guān)系數(shù)據(jù)庫系統(tǒng)一經(jīng)推出,迅速得到廣泛的應(yīng)用,目前已在數(shù)據(jù)庫領(lǐng)域中占據(jù)統(tǒng)治地位。當(dāng)今市場的主流關(guān)系數(shù)據(jù)庫產(chǎn)品有:微軟公司的MS SQL Server,Oracle公司的Oracle,IBM公司的DB2,Informix公司的IDS(Informix Dynamic Server),Sybase公司的ASE(Adaptive Server Enterprise),等等。 6511 數(shù)據(jù)庫系統(tǒng)概述12 數(shù)據(jù)模型13 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)14 數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)第1章 緒論 15 數(shù)據(jù)庫系統(tǒng)的組成16 Oracle數(shù)據(jù)庫系統(tǒng)概述17 小結(jié)661.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1.3.1 數(shù)據(jù)庫系統(tǒng)的三級(jí)
28、模式結(jié)構(gòu)1.3.2 數(shù)據(jù)庫的二級(jí)映像功能與數(shù)據(jù)獨(dú)立性 671.3.1 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)數(shù)據(jù)庫分為三級(jí):外模式、模式和內(nèi)模式,對(duì)于用戶而言,可以相應(yīng)地分為用戶級(jí)模式、概念級(jí)模式和物理級(jí)模式。三級(jí)模式的關(guān)系如圖1.6所示。681.3.1 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)圖1.6 數(shù)據(jù)庫系統(tǒng)的模式691.3.1 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)1. 外模式概念 外模式(external schema)也稱為子模式,它對(duì)應(yīng)于用戶級(jí)數(shù)據(jù)庫,是用戶能夠看到和使用的數(shù)據(jù)庫,因此也稱為用戶視圖。外模式就是用戶所看到并獲準(zhǔn)使用的那部分?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)。一個(gè)數(shù)據(jù)庫通常有多個(gè)外模式,當(dāng)不同的用戶在應(yīng)用需求、保密級(jí)別等方面存在
29、差異時(shí),其外模式描述會(huì)有所不同。一個(gè)應(yīng)用程序只能使用一個(gè)外模式,但一個(gè)外模式可為多個(gè)應(yīng)用程序所使用。外模式是保證數(shù)據(jù)庫安全性的一項(xiàng)有力措施。用戶只能看到和訪問所對(duì)應(yīng)的外模式的數(shù)據(jù),而數(shù)據(jù)庫中的其他數(shù)據(jù)對(duì)于用戶是不可見的。701.3.1 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)2. 模式概念 模式(schema)是對(duì)數(shù)據(jù)庫的整體邏輯描述,它對(duì)應(yīng)于概念級(jí)數(shù)據(jù)庫,是數(shù)據(jù)庫管理員所看到的數(shù)據(jù)庫,通常又稱DBA視圖。模式以某一種數(shù)據(jù)模型(例如,關(guān)系數(shù)據(jù)模型)為基礎(chǔ),綜合地考慮所有用戶的需求,并將這些需求有機(jī)地結(jié)合成一個(gè)邏輯整體。一個(gè)數(shù)據(jù)庫只有一個(gè)模式。模式不僅要描述數(shù)據(jù)的邏輯結(jié)構(gòu),例如數(shù)據(jù)記錄的組成、數(shù)據(jù)項(xiàng)的名稱、數(shù)據(jù)
30、類型、長度、取值范圍等,還要描述數(shù)據(jù)之間的聯(lián)系、數(shù)據(jù)的完整性、安全性要求。711.3.1 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)3. 內(nèi)模式概念 內(nèi)模式(internal schema)是對(duì)數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式,它對(duì)應(yīng)于物理級(jí)數(shù)據(jù)庫,又稱存儲(chǔ)模式。例如,記錄以何種存儲(chǔ)方式存儲(chǔ);索引按照哪種方式組織;數(shù)據(jù)是否壓縮存儲(chǔ)、是否加密,等等。這些任務(wù)都是系統(tǒng)程序員要做的,因此物理級(jí)數(shù)據(jù)庫也稱為系統(tǒng)程序員視圖。一個(gè)數(shù)據(jù)庫只有一個(gè)內(nèi)模式。在三級(jí)模式結(jié)構(gòu)中,數(shù)據(jù)庫模式是數(shù)據(jù)庫的核心和關(guān)鍵。對(duì)于一個(gè)數(shù)據(jù)庫系統(tǒng)來說,實(shí)際存在的只是物理級(jí)數(shù)據(jù)庫,它是數(shù)據(jù)訪問的基礎(chǔ)。概念級(jí)數(shù)據(jù)庫只不過是物理級(jí)
31、數(shù)據(jù)庫的一種抽象描述,用戶級(jí)數(shù)據(jù)庫是用戶與數(shù)據(jù)庫的接口。用戶根據(jù)外模式進(jìn)行操作,通過外模式到模式的映像與概念級(jí)數(shù)據(jù)庫聯(lián)系起來,又通過模式到內(nèi)模式的映像與物理級(jí)數(shù)據(jù)庫聯(lián)系起來。DBMS的工作側(cè)重點(diǎn)之一就是完成三級(jí)數(shù)據(jù)庫之間的轉(zhuǎn)換,把用戶對(duì)數(shù)據(jù)庫的操作轉(zhuǎn)化到物理級(jí)數(shù)據(jù)庫去執(zhí)行。 721.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1.3.1 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)1.3.2 數(shù)據(jù)庫的二級(jí)映像功能與數(shù)據(jù)獨(dú)立性 731.3.2 數(shù)據(jù)庫的二級(jí)映像功能與數(shù)據(jù)獨(dú)立性1. 外模式-模式映像外模式和模式之間是通過外模式-模式映像聯(lián)系起來的。由于一個(gè)模式對(duì)應(yīng)于多個(gè)外模式,因此,對(duì)于每個(gè)外模式,都有一個(gè)外模式-模式映像用于描述這個(gè)外模式與模
32、式之間的對(duì)應(yīng)關(guān)系。通常在外模式中描述外模式-模式映像。作用-保證數(shù)據(jù)的邏輯獨(dú)立性。 有了外模式-模式映像之后,當(dāng)模式發(fā)生改變時(shí),例如增加新的屬性、修改屬性的數(shù)據(jù)類型,只要對(duì)外模式-模式映像做相應(yīng)的改變,使外模式保持不變,則依賴于外模式的應(yīng)用程序就不會(huì)受影響,從而保證數(shù)據(jù)與應(yīng)用程序之間的邏輯獨(dú)立性,即保證數(shù)據(jù)的邏輯獨(dú)立性。741.3.2 數(shù)據(jù)庫的二級(jí)映像功能與數(shù)據(jù)獨(dú)立性2. 模式-內(nèi)模式映像模式與內(nèi)模式之間是通過模式-內(nèi)模式映像聯(lián)系起來的。由于數(shù)據(jù)庫中只有一個(gè)模式和一個(gè)內(nèi)模式,因此,模式-內(nèi)模式映像也只有一個(gè)。通常在內(nèi)模式中對(duì)其進(jìn)行描述。作用-保證數(shù)據(jù)的物理獨(dú)立性 有了模式-內(nèi)模式映像之后,當(dāng)內(nèi)
33、模式發(fā)生改變時(shí),例如存儲(chǔ)設(shè)備或存儲(chǔ)方式有所改變,只要針對(duì)模式-內(nèi)模式映像做相應(yīng)的改變,使模式保持不變,則應(yīng)用程序就不會(huì)受影響,從而保證數(shù)據(jù)與應(yīng)用程序之間的物理獨(dú)立性,即保證數(shù)據(jù)的物理獨(dú)立性。7511 數(shù)據(jù)庫系統(tǒng)概述12 數(shù)據(jù)模型13 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)14 數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)第1章 緒論 15 數(shù)據(jù)庫系統(tǒng)的組成16 Oracle數(shù)據(jù)庫系統(tǒng)概述17 小結(jié)761.4數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)1.4.1 數(shù)據(jù)庫管理系統(tǒng)的組成 1.4.2 數(shù)據(jù)庫管理系統(tǒng)的控制功能 1.4.3 客戶-服務(wù)器體系結(jié)構(gòu) 771.4.1 數(shù)據(jù)庫管理系統(tǒng)的組成一個(gè)完整的DBMS通常由以下4部分組成。1. DDL及其翻譯處理程序
34、 供用戶定義數(shù)據(jù)庫模式、存儲(chǔ)模式、外模式、各級(jí)模式間的映像、有關(guān)的約束條件等。2. DML及其編譯處理程序 實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的檢索、插入、修改等基本操作。3. 數(shù)據(jù)庫運(yùn)行控制程序 提供系統(tǒng)運(yùn)行控制程序負(fù)責(zé)數(shù)據(jù)庫運(yùn)行過程中的控制與管理。4. 實(shí)用程序 提供實(shí)用程序。數(shù)據(jù)庫用戶可以利用這些實(shí)用程序完成數(shù)據(jù)庫的建立與維護(hù)以及數(shù)據(jù)的格式轉(zhuǎn)換與通信。781.4數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)1.4.1 數(shù)據(jù)庫管理系統(tǒng)的組成 1.4.2 數(shù)據(jù)庫管理系統(tǒng)的控制功能 1.4.3 客戶-服務(wù)器體系結(jié)構(gòu) 791.4.2 數(shù)據(jù)庫管理系統(tǒng)的控制功能事務(wù)的基本概念事務(wù)是數(shù)據(jù)庫的邏輯單位,是用戶定義的一組操作序列。它應(yīng)該具有下面4個(gè)
35、特性:(1)原子性:一個(gè)事務(wù)是一個(gè)不可分割的單位,事務(wù)中包括的諸項(xiàng)操作要么都做,要么都不做。(2) 一致性:事務(wù)必須能使數(shù)據(jù)庫從某個(gè)一致性狀態(tài)變化到另一個(gè)一致性狀態(tài)。因此當(dāng)數(shù)據(jù)庫只包含成功事務(wù)提交的結(jié)果時(shí),數(shù)據(jù)庫處于一致性狀態(tài)。(3)隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及其使用的數(shù)據(jù)對(duì)于并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。(4)持久性:指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫中數(shù)據(jù)所做的更改就應(yīng)該是永久性的。801.4.2 數(shù)據(jù)庫管理系統(tǒng)的控制功能2. DBMS的控制功能 DBMS必須提供以下幾方面的數(shù)據(jù)控制功能。(1)保證數(shù)據(jù)的安全性數(shù)據(jù)的安全性(Se
36、curity)是指保護(hù)數(shù)據(jù),防止因用戶非法使用數(shù)據(jù)庫而造成數(shù)據(jù)的泄密、更改或破壞。通常用戶只能按規(guī)定對(duì)某些數(shù)據(jù)以某種方式進(jìn)行訪問和處理。 DBMS一般通過用戶標(biāo)識(shí)鑒定、存取控制、用戶視圖、密碼存儲(chǔ)等安全技術(shù)來保證數(shù)據(jù)的安全性。(2)保證數(shù)據(jù)的完整性 數(shù)據(jù)的完整性(Integrity)是指數(shù)據(jù)的正確性、有效性和兼容性,即將數(shù)據(jù)控制在有效的范圍之內(nèi),或要求數(shù)據(jù)之間滿足特定的關(guān)系。DBMS的完整性控制機(jī)制應(yīng)具備3個(gè)方面的功能。 定義完整性約束條件。 檢查用戶發(fā)出的操作請求是否違背了完整性約束條件。 如果發(fā)現(xiàn)用戶的操作請求會(huì)破壞數(shù)據(jù)的完整性約束條件,則采取一定的動(dòng)作來保證數(shù)據(jù)的完整性。 811.4.2
37、 數(shù)據(jù)庫管理系統(tǒng)的控制功能(3)實(shí)現(xiàn)并發(fā)控制數(shù)據(jù)庫是一個(gè)共享資源,可供多個(gè)用戶同時(shí)使用。當(dāng)多個(gè)用戶的并發(fā)進(jìn)程同時(shí)存取、修改數(shù)據(jù)庫中的數(shù)據(jù)時(shí),可能會(huì)引發(fā)相互干擾而得到錯(cuò)誤的結(jié)果,并使得數(shù)據(jù)庫的完整性遭到破壞,因此必須對(duì)多用戶的并發(fā)操作(Concurrency)加以控制和協(xié)調(diào)。事務(wù)是并發(fā)控制的基本單位,封鎖是實(shí)現(xiàn)并發(fā)控制的一項(xiàng)非常重要的技術(shù)。所謂封鎖就是事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象(例如表、記錄等)進(jìn)行操作之前,先向系統(tǒng)發(fā)出請求,對(duì)其加鎖。加鎖后,事務(wù)T 就對(duì)該數(shù)據(jù)對(duì)象有了獨(dú)占性的控制權(quán),在事務(wù)T釋放它的鎖之前,其他事務(wù)不能更新此數(shù)據(jù)對(duì)象。 821.4.2 數(shù)據(jù)庫管理系統(tǒng)的控制功能(4)恢復(fù)數(shù)據(jù)庫計(jì)算機(jī)
38、系統(tǒng)的硬件故障、軟件故障、操作員的失誤以及蓄意破壞都會(huì)影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫的部分或全部數(shù)據(jù)的丟失。DBMS必須具有將數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(也稱為完整狀態(tài)或一致狀態(tài))的功能,這就是數(shù)據(jù)庫的恢復(fù)功能(Recovery)。事務(wù)也是執(zhí)行恢復(fù)的基本單位,DBMS中有一類文件稱為日志文件,記錄每個(gè)事務(wù)的開始、每個(gè)事務(wù)所引發(fā)的數(shù)據(jù)庫的更新和每個(gè)事務(wù)的結(jié)束。一旦系統(tǒng)出現(xiàn)故障,可以通過日志文件中的內(nèi)容進(jìn)行數(shù)據(jù)庫恢復(fù)。事務(wù)通常以“試驗(yàn)”的方式完成,即在試驗(yàn)過程中,并不真正地更新數(shù)據(jù)庫中的數(shù)據(jù)。當(dāng)事務(wù)即將完成時(shí),也就是提交事務(wù)的時(shí)候,所更新的內(nèi)容首先被復(fù)制到日志文件中,然后再
39、把更新內(nèi)容寫入數(shù)據(jù)庫。這樣,即使在這兩個(gè)步驟之間系統(tǒng)出現(xiàn)故障,通過查看日志文件,就能夠知道在系統(tǒng)恢復(fù)之后需要執(zhí)行哪些更新操作。如果系統(tǒng)在這兩個(gè)步驟之前系統(tǒng)出現(xiàn)故障,可以重新執(zhí)行此事務(wù),確保不會(huì)發(fā)生錯(cuò)誤。831.4數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)1.4.1 數(shù)據(jù)庫管理系統(tǒng)的組成 1.4.2 數(shù)據(jù)庫管理系統(tǒng)的控制功能 1.4.3 客戶-服務(wù)器體系結(jié)構(gòu) 841.4.3 客戶-服務(wù)器體系結(jié)構(gòu)DBMS體系結(jié)構(gòu)發(fā)展 單用戶結(jié)構(gòu)主從式結(jié)構(gòu)分布式結(jié)構(gòu)客戶-服務(wù)器結(jié)構(gòu)??蛻?服務(wù)器概念 網(wǎng)絡(luò)中專門用于執(zhí)行DBMS功能的計(jì)算機(jī)稱為數(shù)據(jù)庫服務(wù)器,簡稱服務(wù)器(Server),其他安裝DBMS的外圍應(yīng)用開發(fā)工具且支持用戶應(yīng)用的
40、計(jì)算機(jī)稱為客戶機(jī)(Client)。形成了客戶-服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)。特點(diǎn) 客戶端的用戶請求被傳送至數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器對(duì)用戶強(qiáng)求進(jìn)行處理后,只將結(jié)果返回給用戶,從而顯著減少網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,提高了系統(tǒng)的性能、吞吐量和負(fù)載能力。 通常用SQL語言表達(dá)從客戶端程序到服務(wù)器端程序的各種請求,然后由服務(wù)器端的程序給出相應(yīng)的回答,用表的形式將結(jié)果傳給客戶端程序。 客戶與服務(wù)器通常都能在不同的硬件和軟件平臺(tái)上運(yùn)行,可以使用不同廠商提供的數(shù)據(jù)庫應(yīng)用開發(fā)工具,應(yīng)用程序具有更強(qiáng)的可移植性,同時(shí)也可以降低軟件維護(hù)工作的開銷。8511 數(shù)據(jù)庫系統(tǒng)概述12 數(shù)據(jù)模型13 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)14 數(shù)據(jù)庫管理系統(tǒng)的
41、體系結(jié)構(gòu)第1章 緒論 15 數(shù)據(jù)庫系統(tǒng)的組成16 Oracle數(shù)據(jù)庫系統(tǒng)概述17 小結(jié)861.5數(shù)據(jù)庫系統(tǒng)的組成1.5.1 硬件平臺(tái)及數(shù)據(jù)庫 1.5.2 軟件平臺(tái) 1.5.3 數(shù)據(jù)庫系統(tǒng)的相關(guān)人員 871.5.1 硬件平臺(tái)及數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng)對(duì)硬件資源的要求較高,以滿足功能豐富且規(guī)模很大的DBMS的需求,這樣才能滿足數(shù)據(jù)量大的應(yīng)用系統(tǒng)的需求。具體的要求如下。 (1)要具有足夠大的內(nèi)存空間,存放操作系統(tǒng)、DBMS核心模塊、數(shù)據(jù)緩沖區(qū)和應(yīng)用程序。 (2)要有大容量的存儲(chǔ)設(shè)備存放整個(gè)數(shù)據(jù)庫,有大容量的外存儲(chǔ)設(shè)備用于數(shù)據(jù)備份。881.5數(shù)據(jù)庫系統(tǒng)的組成1.5.1 硬件平臺(tái)及數(shù)據(jù)庫 1.5.2 軟件平臺(tái)
42、1.5.3 數(shù)據(jù)庫系統(tǒng)的相關(guān)人員 891.5.2 軟件平臺(tái)及數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng)的軟件主要包括以下要素。(1)DBMS 這是為數(shù)據(jù)庫的建立、使用和維護(hù)而配置的系統(tǒng)軟件。目前常用的DBMS有MS SQL Server 2000及以上版本,還有Oracle 9i及以上版本。(2)支持DBMS運(yùn)行的操作系統(tǒng)。 常用的操作系統(tǒng)有Windows操作系統(tǒng)、UNIX操作系統(tǒng)、Linux操作系統(tǒng)。(3)具有能夠與數(shù)據(jù)庫接口的高級(jí)語言及其編譯系統(tǒng),便于開發(fā)應(yīng)用程序。(4)以DBMS為核心的應(yīng)用開發(fā)工具。(5)為特定應(yīng)用環(huán)境開發(fā)的數(shù)據(jù)庫應(yīng)用系統(tǒng)。901.5數(shù)據(jù)庫系統(tǒng)的組成1.5.1 硬件平臺(tái)及數(shù)據(jù)庫 1.5.2 軟件
43、平臺(tái) 1.5.3 數(shù)據(jù)庫系統(tǒng)的相關(guān)人員 911.5.3 數(shù)據(jù)庫系統(tǒng)的相關(guān)人員數(shù)據(jù)庫系統(tǒng)的相關(guān)人員主要有數(shù)據(jù)庫管理員、系統(tǒng)分析員、數(shù)據(jù)庫設(shè)計(jì)人員、應(yīng)用程序開發(fā)人員和最終用戶。不同的人員完成不同的工作任務(wù),具有不同的視圖,如圖1.7所示。應(yīng)用系統(tǒng)DBMS操作系統(tǒng)模 式內(nèi)模式外模式數(shù)據(jù)庫客戶端用戶應(yīng)用程序開發(fā)人員數(shù)據(jù)庫管理員 系統(tǒng)分析員圖1.7 相關(guān)人員的數(shù)據(jù)視圖921.5.3 數(shù)據(jù)庫系統(tǒng)的相關(guān)人員1. 數(shù)據(jù)庫管理員 數(shù)據(jù)庫管理員(DataBase Administrator,DBA)負(fù)責(zé)全面管理和控制數(shù)據(jù)庫系統(tǒng)。 主要工作包括:決定數(shù)據(jù)庫中的信息內(nèi)容和結(jié)構(gòu),決定數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)和存儲(chǔ)策略,定義數(shù)據(jù)
44、的安全性要求和完整性約束條件,監(jiān)控?cái)?shù)據(jù)庫的運(yùn)行,負(fù)責(zé)數(shù)據(jù)庫的改進(jìn)和重組、重構(gòu),等等。931.5.3 數(shù)據(jù)庫系統(tǒng)的相關(guān)人員2. 系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計(jì)人員 系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,同用戶及數(shù)據(jù)庫管理員相結(jié)合,確定系統(tǒng)的硬件軟件配置,并參與數(shù)據(jù)庫系統(tǒng)的概要設(shè)計(jì)。 數(shù)據(jù)庫設(shè)計(jì)人員負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)的確定、數(shù)據(jù)庫各級(jí)模式的設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)人員必須參與用戶需求調(diào)查和系統(tǒng)分析,然后進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。941.5.3 數(shù)據(jù)庫系統(tǒng)的相關(guān)人員3. 應(yīng)用程序開發(fā)人員 應(yīng)用程序開發(fā)人員負(fù)責(zé)設(shè)計(jì)和編寫應(yīng)用系統(tǒng)的程序模塊,并對(duì)其進(jìn)行調(diào)試和安裝。4. 用戶 用戶是指最終用戶。最終用戶通過應(yīng)用系統(tǒng)的用戶接口來
45、使用數(shù)據(jù)庫。最終用戶可分為以下3類。 (1)偶然用戶 (2)簡單用戶 (3)復(fù)雜用戶9511 數(shù)據(jù)庫系統(tǒng)概述12 數(shù)據(jù)模型13 數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)14 數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)第1章 緒論 15 數(shù)據(jù)庫系統(tǒng)的組成16 Oracle數(shù)據(jù)庫系統(tǒng)概述17 小結(jié)961.6 Oracle數(shù)據(jù)庫系統(tǒng)概述1.6.1 Oracle數(shù)據(jù)庫系統(tǒng)簡介 1.6.2 Oracle體系結(jié)構(gòu) 971.6.1 Oracle數(shù)據(jù)庫系統(tǒng)簡介Oracle數(shù)據(jù)庫地位 Oracle公司又稱甲骨文公司,是全球最大的信息管理軟件與服務(wù)供應(yīng)商。Oracle數(shù)據(jù)庫系統(tǒng)是其推出的主要產(chǎn)品,是關(guān)系數(shù)據(jù)庫的倡導(dǎo)者和先驅(qū)。經(jīng)過近30年的發(fā)展,目前Orac
46、le產(chǎn)品覆蓋幾十種主流機(jī)型,其中Oracle 數(shù)據(jù)庫已經(jīng)成為世界上使用最廣泛的關(guān)系數(shù)據(jù)庫系統(tǒng)之一,是數(shù)據(jù)庫領(lǐng)域的領(lǐng)軍者和標(biāo)準(zhǔn)制定者。Oracle公司推出的Oracle數(shù)據(jù)庫系統(tǒng)在我國有較大的市場份額,始終占據(jù)著數(shù)據(jù)庫市場的龍頭地位。 981.6.1 Oracle數(shù)據(jù)庫系統(tǒng)簡介Oracle數(shù)據(jù)庫的發(fā)展Oracle數(shù)據(jù)庫系統(tǒng)最早于1979年推出,隨著其開發(fā)技術(shù)的進(jìn)步,版本得以不斷更新,功能不斷壯大。 2004年推出了最新的Oracle 10g版本991.6.1 Oracle數(shù)據(jù)庫系統(tǒng)簡介2. Oracle系統(tǒng)的特點(diǎn)Oracle具有完整的數(shù)據(jù)管理功能,這些功能包括存儲(chǔ)大量數(shù)據(jù)、定義和操縱數(shù)據(jù)、并發(fā)控
47、制、安全性控制、故障恢復(fù)、提供與高級(jí)語言接口等。因此,Oracle是一個(gè)通用的數(shù)據(jù)庫系統(tǒng)。Oracle支持各種分布式功能,尤其支持各種Internet處理。因此,Oracle是一個(gè)分布式數(shù)據(jù)庫系統(tǒng)。Oracle作為一個(gè)應(yīng)用開發(fā)環(huán)境,使用PL/SQL語言執(zhí)行各種操作,具有可開放性、可移植性、靈活性等特點(diǎn)。高版本的Oracle支持面向?qū)ο蟮墓δ埽С诸?、方法和屬性等概念?001.6 Oracle數(shù)據(jù)庫系統(tǒng)概述1.6.1 Oracle數(shù)據(jù)庫系統(tǒng)簡介 1.6.2 Oracle體系結(jié)構(gòu) 1011.6.2 Oracle體系結(jié)構(gòu)完整的Oracle應(yīng)用環(huán)境包括如下兩部分 數(shù)據(jù)庫管理系統(tǒng)結(jié)構(gòu) 數(shù)據(jù)庫結(jié)構(gòu)102
48、1.6.2 Oracle體系結(jié)構(gòu)1. 數(shù)據(jù)庫管理系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫管理系統(tǒng)由功能各異的管理程序組成,包括進(jìn)程管理和內(nèi)存管理等。(1)進(jìn)程結(jié)構(gòu) Oracle應(yīng)用環(huán)境中有兩類進(jìn)程:用戶進(jìn)程和服務(wù)器進(jìn)程。 用戶進(jìn)程是指在客戶機(jī)內(nèi)存上運(yùn)行的程序。 服務(wù)器進(jìn)程是指在服務(wù)器上運(yùn)行的程序,它接收用戶進(jìn)程發(fā)出的請求,根據(jù)用戶請求與數(shù)據(jù)庫進(jìn)行通信,完成與數(shù)據(jù)庫的連接操作和I/O訪問。特別重要的服務(wù)器進(jìn)程還負(fù)責(zé)完成數(shù)據(jù)庫的后臺(tái)管理工作,這些主要的進(jìn)程如表1.4所示。1031.6.2 Oracle體系結(jié)構(gòu)表1.4 主要的服務(wù)器進(jìn)程進(jìn)程名稱作用系統(tǒng)監(jiān)控進(jìn)程(SMON)是在數(shù)據(jù)庫系統(tǒng)啟動(dòng)時(shí)執(zhí)行恢復(fù)性工作的強(qiáng)制性進(jìn)程,對(duì)存在
49、故障的CPU或?qū)嵗M(jìn)行恢復(fù)進(jìn)程監(jiān)控進(jìn)程(PMON)是用于恢復(fù)失敗的數(shù)據(jù)庫用戶的強(qiáng)制性進(jìn)程,獲取失敗用戶的標(biāo)識(shí),釋放此用戶占用的所有數(shù)據(jù)庫資源,然后回滾中止的事務(wù)數(shù)據(jù)庫寫入進(jìn)程(DBWR)負(fù)責(zé)管理數(shù)據(jù)緩沖區(qū)和字典緩沖區(qū)的內(nèi)容,將修改后的數(shù)據(jù)塊分批寫回?cái)?shù)據(jù)庫文件。系統(tǒng)可以擁有多個(gè)這樣的進(jìn)程日志寫入進(jìn)程(LGWR)用于將內(nèi)存中的日志內(nèi)容寫入到日志文件中,是唯一能夠讀寫日志文件的進(jìn)程1041.6.2 Oracle體系結(jié)構(gòu)(2)內(nèi)存結(jié)構(gòu)操作系統(tǒng)為進(jìn)程所分配的內(nèi)存結(jié)構(gòu)有兩部分:系統(tǒng)全局區(qū)和程序全局區(qū)。一般地,客戶機(jī)上的用戶進(jìn)程和服務(wù)器上的服務(wù)器進(jìn)程是同時(shí)運(yùn)行的。系統(tǒng)全局區(qū)(System Global Ar
50、ea,SGA)是指操作系統(tǒng)為用戶進(jìn)程和服務(wù)器進(jìn)程分配的專用的共享內(nèi)存區(qū)域,用于二者之間的通信。 根據(jù)系統(tǒng)全局區(qū)功能的不同,可將其分成4個(gè)部分:數(shù)據(jù)緩沖區(qū)(Data Buffer Cache)、字典緩沖區(qū)(Dictionary Buffer Cache)、日志緩沖區(qū)(Redo Log Buffer Cache)和SQL共享池(Shared SQL Pool),其作用如表1.5所示。 1051.6.2 Oracle體系結(jié)構(gòu)表1.5 系統(tǒng)全局區(qū)的組成名稱作用數(shù)據(jù)緩沖區(qū)用于存儲(chǔ)最近從數(shù)據(jù)庫中讀取出來的數(shù)據(jù)字典緩沖區(qū)用于存儲(chǔ)從數(shù)據(jù)字典中讀取出來的信息日志緩沖區(qū)用于存儲(chǔ)任何事務(wù)過程,數(shù)據(jù)庫系統(tǒng)將定期將該緩
51、沖區(qū)的內(nèi)容寫入日志文件SQL共享池SQL共享池是程序的高速緩沖區(qū),存放的是所有通過SQL語法分析并準(zhǔn)備執(zhí)行的SQL語句1061.6.2 Oracle體系結(jié)構(gòu)程序全局區(qū)(Program Global Area, PGA)是存儲(chǔ)區(qū)中被單個(gè)用戶進(jìn)程所使用的內(nèi)存區(qū)域,為用戶進(jìn)程私有,不能共享。程序全局區(qū)主要存放單個(gè)進(jìn)程工作時(shí)所需要的數(shù)據(jù)和控制信息。 1071.6.2 Oracle體系結(jié)構(gòu)2.數(shù)據(jù)庫結(jié)構(gòu) 數(shù)據(jù)庫結(jié)構(gòu)可分為:邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。(1)邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)是指從數(shù)據(jù)庫使用者的角度來考察數(shù)據(jù)庫的組成。數(shù)據(jù)庫的邏輯結(jié)構(gòu)如圖1.8所示。1081.6.2 Oracle體系結(jié)構(gòu)Oracle數(shù)據(jù)庫表空間表空
52、間表空間表索引視圖數(shù)據(jù)段數(shù)據(jù)段索引段臨時(shí)段回滾段數(shù)據(jù)區(qū)間數(shù)據(jù)區(qū)間數(shù)據(jù)塊數(shù)據(jù)塊 數(shù)據(jù)庫- 表空間 - 。 邏輯對(duì)象 - 數(shù)據(jù)段- 。 數(shù)據(jù)區(qū)間-。 數(shù)據(jù)塊圖1.8 數(shù)據(jù)庫的邏輯結(jié)構(gòu)1091.6.2 Oracle體系結(jié)構(gòu)數(shù)據(jù)庫的邏輯結(jié)構(gòu)分為6層。 數(shù)據(jù)塊數(shù)據(jù)塊又稱邏輯塊,是Oracle數(shù)據(jù)庫輸入輸出的基本單位,其常見大小為2KB或4KB,通常是操作系統(tǒng)默認(rèn)數(shù)據(jù)塊大小的整數(shù)倍。 數(shù)據(jù)區(qū)間數(shù)據(jù)區(qū)間由若干數(shù)據(jù)塊組成,是數(shù)據(jù)庫存儲(chǔ)空間所分配的一個(gè)邏輯單位。 數(shù)據(jù)段數(shù)據(jù)段由若干數(shù)據(jù)區(qū)間組成。Oracle中有4種數(shù)據(jù)段。(a)數(shù)據(jù)段:用于存放數(shù)據(jù)。(b)索引段:用于存放索引數(shù)據(jù)。(c)臨時(shí)段:在執(zhí)行SQL語句
53、時(shí),用于存放中間結(jié)果和數(shù)據(jù)。一旦SQL語句執(zhí)行完畢,臨時(shí)段所占用的存儲(chǔ)空間將被釋放。(d)回滾段:用于存放要撤消的信息。1101.6.2 Oracle體系結(jié)構(gòu) 邏輯對(duì)象邏輯對(duì)象是指可由用戶操作的數(shù)據(jù)庫對(duì)象。Oracle系統(tǒng)中包括表、索引、視圖、簇、數(shù)據(jù)庫鏈接、同義詞、序列、觸發(fā)器、過程、函數(shù)等21種數(shù)據(jù)庫對(duì)象。 表空間表空間主要用于管理邏輯對(duì)象,可以將其理解為Oracle數(shù)據(jù)庫的文件夾。一個(gè)表空間可以存放若干邏輯對(duì)象。當(dāng)Oracle安裝完畢后,系統(tǒng)將自動(dòng)建立9個(gè)默認(rèn)的表空間,如表1.6所示。1111.6.2 Oracle體系結(jié)構(gòu)表1.6 系統(tǒng)默認(rèn)的表空間名稱作用CWMLITE用于聯(lián)機(jī)分析處理(
54、OLAP)DRSYS用于存放與工作空間設(shè)置有關(guān)的信息EXAMPLE實(shí)例表空間,用于存放實(shí)例信息INDEX索引表空間,用于存放數(shù)據(jù)庫索引信息SYSTEM系統(tǒng)表空間,用于存放表空間的名稱、所包含的數(shù)據(jù)文件等管理信息TEMP臨時(shí)表空間,用于存放臨時(shí)表TOOLS工具表空間,用于存放數(shù)據(jù)庫工具軟件所需的數(shù)據(jù)庫對(duì)象UNDOTBS回滾表空間,用于存放數(shù)據(jù)庫恢復(fù)信息USERS用戶表空間,用于存放用戶私有信息1121.6.2 Oracle體系結(jié)構(gòu) 數(shù)據(jù)庫數(shù)據(jù)庫由若干表空間組成。實(shí)際上,一個(gè)數(shù)據(jù)庫服務(wù)器上可以有多個(gè)數(shù)據(jù)庫,一個(gè)數(shù)據(jù)庫中可以有多個(gè)表空間,一個(gè)表空間中可以有多個(gè)表,一個(gè)表中可以有多個(gè)數(shù)據(jù)段,一個(gè)數(shù)據(jù)段中可以有多個(gè)數(shù)據(jù)區(qū)間,一個(gè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國硅膠及硅膠制品市場運(yùn)營狀況及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國真空保溫杯行業(yè)運(yùn)行現(xiàn)狀及投資發(fā)展前景預(yù)測報(bào)告
- 2025年安徽省建筑安全員-A證考試題庫附答案
- 泰山科技學(xué)院《VI設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2021情報(bào)學(xué)情報(bào)檢索學(xué)試題
- 吉林城市職業(yè)技術(shù)學(xué)院《納米材料制備技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年天津市濱海新區(qū)田家炳中學(xué)高一上學(xué)期12月月考?xì)v史試卷
- 汝州職業(yè)技術(shù)學(xué)院《通信原理與通信技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025青海省建筑安全員C證考試題庫
- 天津師范大學(xué)津沽學(xué)院《招聘與甄選》2023-2024學(xué)年第二學(xué)期期末試卷
- (新版)網(wǎng)絡(luò)攻防知識(shí)考試題庫(含答案)
- 建筑工程資料檔案盒側(cè)面標(biāo)簽
- 工程設(shè)計(jì)變更工程量計(jì)算表
- 廣東粵教版第3冊上信息技術(shù)課件第5課神奇的變化-制作形狀補(bǔ)間動(dòng)畫(課件)
- 動(dòng)力工程及工程熱物理專業(yè)英語課件
- 幼兒系列故事繪本課件達(dá)芬奇想飛-
- (中職)中職生禮儀實(shí)用教材完整版PPT最全教程課件整套教程電子講義(最新)
- 出納收入支出日記賬Excel模板
- 給水排水用格柵除污機(jī)通用技術(shù)條件
- 一年級(jí)下冊綜合實(shí)踐活動(dòng)課件-身邊的水果和蔬菜全國通用16張
- 市政工程主要施工機(jī)械設(shè)備
評(píng)論
0/150
提交評(píng)論