數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用 課件全套 郭勝 第1-8章 數(shù)據(jù)庫系統(tǒng)概論-數(shù)據(jù)庫系統(tǒng)的應(yīng)用與開發(fā)_第1頁
數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用 課件全套 郭勝 第1-8章 數(shù)據(jù)庫系統(tǒng)概論-數(shù)據(jù)庫系統(tǒng)的應(yīng)用與開發(fā)_第2頁
數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用 課件全套 郭勝 第1-8章 數(shù)據(jù)庫系統(tǒng)概論-數(shù)據(jù)庫系統(tǒng)的應(yīng)用與開發(fā)_第3頁
數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用 課件全套 郭勝 第1-8章 數(shù)據(jù)庫系統(tǒng)概論-數(shù)據(jù)庫系統(tǒng)的應(yīng)用與開發(fā)_第4頁
數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用 課件全套 郭勝 第1-8章 數(shù)據(jù)庫系統(tǒng)概論-數(shù)據(jù)庫系統(tǒng)的應(yīng)用與開發(fā)_第5頁
已閱讀5頁,還剩388頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用

第3版第1章數(shù)據(jù)庫系統(tǒng)概論本課程解決的問題:

如何有效的組織、管理計(jì)算機(jī)系統(tǒng)中的大量的數(shù)據(jù)?

主要內(nèi)容

●數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段

●數(shù)據(jù)描述及數(shù)據(jù)模型

●數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)

●數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)重點(diǎn):●數(shù)據(jù)模型

●數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)

1.1數(shù)據(jù)管理技術(shù)1.1.1數(shù)據(jù)管理技術(shù)發(fā)展經(jīng)歷的三個(gè)階段:

人工管理階段(20世紀(jì)50年代中期以前)

文件系統(tǒng)管理階段(20世紀(jì)50年代后期至 60年代中期)

數(shù)據(jù)庫管理階段(20世紀(jì)60年代末開始)一.人工管理階段存儲介質(zhì):磁帶、卡片、紙帶(無磁盤)。應(yīng)用:主要用于科學(xué)計(jì)算。特點(diǎn):數(shù)據(jù)量小、計(jì)算復(fù)雜。數(shù)據(jù)管理的特點(diǎn):

(1)數(shù)據(jù)不保存在計(jì)算機(jī)中。(2)只有程序的概念,無文件的概念。(3)沒有專用的軟件對數(shù)據(jù)進(jìn)行管理。(4)數(shù)據(jù)面向應(yīng)用,程序與數(shù)據(jù)不具有獨(dú)立性。二文件系統(tǒng)管理階段存儲介質(zhì):出現(xiàn)了磁盤和磁鼓。應(yīng)用:由科學(xué)計(jì)算轉(zhuǎn)向于信息管理。特點(diǎn):計(jì)算簡單,數(shù)據(jù)量大。數(shù)據(jù)管理的特點(diǎn):(1)數(shù)據(jù)要求長期保存在磁盤上。(2)數(shù)據(jù)不再屬于某個(gè)特定的程序,可重復(fù)使用。(3)數(shù)據(jù)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)有區(qū)別;程序與數(shù)據(jù)之間具 有“設(shè)備獨(dú)立”。(4)文件組織呈現(xiàn)多樣化:索引文件,鏈接文件和散列文 件等。

·文件系統(tǒng)管理數(shù)據(jù)的缺點(diǎn):

(1)數(shù)據(jù)冗余大。(2)數(shù)據(jù)操作具有不一致性。

(3)數(shù)據(jù)缺乏獨(dú)立性。(4)數(shù)據(jù)之間聯(lián)系弱。(5)數(shù)據(jù)管理無法實(shí)施統(tǒng)一的標(biāo)準(zhǔn)。三.數(shù)據(jù)庫管理階段1、特點(diǎn):(1)采用了復(fù)雜的數(shù)據(jù)模型表示數(shù)據(jù)結(jié)構(gòu)。(2)有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)的邏輯獨(dú)立:當(dāng)數(shù)據(jù)整體邏輯結(jié)構(gòu)改變時(shí),盡量不影響用戶的邏輯結(jié)構(gòu)和應(yīng)用程序。數(shù)據(jù)的物理獨(dú)立:當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)改變時(shí),不影響整體的邏輯結(jié)構(gòu)以及應(yīng)用程序。(3)減少了數(shù)據(jù)的無控冗余。(4)數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口來使用數(shù)據(jù)庫。(5)數(shù)據(jù)操作的基本單位是數(shù)據(jù)項(xiàng)而不是記錄,增強(qiáng)了系統(tǒng)的靈活性。(6)系統(tǒng)提供了4個(gè)方面的數(shù)據(jù)控制功能:數(shù)據(jù)庫的恢復(fù)、并發(fā)控制、數(shù)據(jù)完整性和數(shù)據(jù)的安全性。2、4個(gè)重要的概念(1)數(shù)據(jù)庫(Database---DB):能為多個(gè)用戶所共享,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高數(shù)據(jù)獨(dú)立性的數(shù)據(jù)存儲庫。(2)數(shù)據(jù)庫管理系統(tǒng)(DBMS):位于用戶與OS之間的一層數(shù)據(jù)管理軟件,它能為用戶或應(yīng)用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數(shù)據(jù)控制。(3)數(shù)據(jù)庫系統(tǒng)(DBS):實(shí)現(xiàn)有組織地,動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問計(jì)算機(jī)軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng).(4)數(shù)據(jù)庫技術(shù):是一門研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲、管理和使用的軟件科學(xué)。數(shù)據(jù)描述及聯(lián)系一.三個(gè)領(lǐng)域的數(shù)據(jù)描述從事物的特性到計(jì)算機(jī)中的數(shù)據(jù)表示要經(jīng)歷三個(gè)領(lǐng)域:現(xiàn)實(shí)世界、信息世界和計(jì)算機(jī)世界。1.現(xiàn)實(shí)世界:人們頭腦之外的客觀世界。用文字和符號記載客觀世界中的各事物的特性的數(shù)據(jù)。2.信息世界:通過歸納、整理、分類等,用表格、報(bào)表、圖表

等格式,記錄實(shí)現(xiàn)世界中相關(guān)數(shù)據(jù)。常用術(shù)語:

實(shí)體(entity):客觀存在并可相互區(qū)別的事物稱為實(shí)體。

實(shí)體集:同類、性質(zhì)相同的實(shí)體的集合。

屬性(attribute):實(shí)體的某種特性。

實(shí)體標(biāo)識符:能唯一標(biāo)識每一個(gè)實(shí)體的屬性或?qū)傩约?.計(jì)算機(jī)世界:信息世界的信息在機(jī)內(nèi)的數(shù)據(jù)存放形式。常用術(shù)語:字段(field):標(biāo)記實(shí)體屬性的命名單位。記錄(record):字段的有序集合。文件(file):同類記錄的匯集。關(guān)鍵字(key):能唯一標(biāo)識文件中每個(gè)記錄的字段或字段集。

信息世界與計(jì)算機(jī)世界的術(shù)語對應(yīng)關(guān)系信息世界計(jì)算機(jī)世界實(shí)體記錄實(shí)體集文件屬性字段實(shí)體標(biāo)識符關(guān)鍵字現(xiàn)實(shí)世界的數(shù)據(jù)整理、歸納分類計(jì)算機(jī)世界的數(shù)據(jù)信息世界的數(shù)據(jù)編碼、輸入存儲三個(gè)世界中的數(shù)據(jù)之間的關(guān)系:

二.數(shù)據(jù)聯(lián)系的描述

數(shù)據(jù)聯(lián)系的表現(xiàn)形式:

實(shí)體(集)間的聯(lián)系:指記錄(元組)之間的聯(lián)系。

實(shí)體內(nèi)部的聯(lián)系:記錄(元組)內(nèi)部字段(屬性)間的聯(lián)系。

數(shù)據(jù)聯(lián)系的類型:

1對1的聯(lián)系。

三類:

1對多的聯(lián)系。

多對多的聯(lián)系。數(shù)據(jù)聯(lián)系的類型是用來表達(dá)數(shù)據(jù)之間的語義關(guān)系。1、1對1聯(lián)系

如果實(shí)體集E1中每個(gè)實(shí)體至多與實(shí)體集E2中一個(gè)實(shí)體有聯(lián)系,反之亦然,則E1對E2稱為“1對1”的聯(lián)系,記為:1:1。E1E2圖形表示為:E1E2E1E2或11例如:夫妻之間的生活關(guān)系;汽車與駕駛員的駕駛關(guān)系等都是1:1聯(lián)系的實(shí)例。2、1對多的聯(lián)系

如果實(shí)體集E1中每個(gè)實(shí)體與實(shí)體集E2中任意個(gè)(零個(gè)或多個(gè))實(shí)體有聯(lián)系,而E2中每個(gè)實(shí)體至多和E1中一個(gè)實(shí)體有聯(lián)系,則稱E1與E2的聯(lián)系為“1對多”聯(lián)系,記為:1:n。E1E2圖形表示為:E1E1E2E2或1n例如:校長與師生管理的關(guān)系;部門與職工的聘用關(guān)系等都是1:n聯(lián)系的實(shí)例。3、多對多的聯(lián)系如果實(shí)體集E1中每個(gè)實(shí)體與實(shí)體集E2中任意個(gè)(零個(gè)或多個(gè))實(shí)體有聯(lián)系,反之亦然,則稱E1與E2的聯(lián)系是“多對多”的聯(lián)系,記為n:m。E1E2圖形表示為:E1E2E2E1或n例如:課程與學(xué)生的選課關(guān)系;教師與學(xué)生授課的關(guān)系等都是n:m聯(lián)系的實(shí)例。m

注:三種聯(lián)系的關(guān)系:②根據(jù)與之相聯(lián)系的實(shí)體集的個(gè)數(shù),將聯(lián)系分為:一元聯(lián)系、二元聯(lián)系(如前面例子)和三元聯(lián)系等。

實(shí)體集之間的復(fù)雜聯(lián)系(三元聯(lián)系):1:11:nn:m一元聯(lián)系:一個(gè)零件由若干個(gè)子零件組成,而一個(gè)零件又是其他零件的子零件。供應(yīng)者工程零件Mmnk零件組裝mn1.2數(shù)據(jù)模型

表示實(shí)體類型及實(shí)體間聯(lián)系的模型。注:數(shù)據(jù)庫結(jié)構(gòu)是以數(shù)據(jù)模型為基礎(chǔ)構(gòu)建的。一、數(shù)據(jù)模型的分類(1)概念模型(語義模型):獨(dú)立于計(jì)算機(jī),用來描述特定組織關(guān)心的信息結(jié)構(gòu),著重信息之間的語義表達(dá),如:實(shí)體聯(lián)系模型(ER模型)。(2)結(jié)構(gòu)模型:面向DB邏輯結(jié)構(gòu)的模型,如:層次、網(wǎng)狀、關(guān)系和面向?qū)ο竽P?。兩大類:結(jié)構(gòu)模型的組成(模型3要素)數(shù)據(jù)結(jié)構(gòu):實(shí)體類型和聯(lián)系表達(dá)與實(shí)現(xiàn);數(shù)據(jù)操作:檢索與更新操作;數(shù)據(jù)完整性約束:數(shù)據(jù)及聯(lián)系應(yīng)具有的約束和依賴規(guī)則。應(yīng)用需求1應(yīng)用需求2應(yīng)用需求n概念模型邏輯模型層次模型網(wǎng)狀模型關(guān)系模型內(nèi)部模型外部模型1外部模型2外部模型nDBMSDBDB應(yīng)用程序員現(xiàn)實(shí)世界要求完成應(yīng)用需求綜合與抽象構(gòu)造轉(zhuǎn)換映像映像·········支持支持支持支持1.概念模型與結(jié)構(gòu)模型的關(guān)系:2.模型的特點(diǎn)(1)概念模型特點(diǎn):

表達(dá)了系統(tǒng)用戶對應(yīng)用項(xiàng)目所涉及數(shù)據(jù)的整體邏輯結(jié)構(gòu);

●概念模型是從用戶需求的觀點(diǎn)出發(fā),對數(shù)據(jù)的建模;

●概念模型獨(dú)立于計(jì)算機(jī)硬件和軟件;

●概念模型是DB設(shè)計(jì)人員與用戶進(jìn)行交流的工具。(2)邏輯模型特點(diǎn):

●邏輯模型表達(dá)了DB整體邏輯結(jié)構(gòu);

●邏輯模型是從數(shù)據(jù)庫實(shí)現(xiàn)的觀點(diǎn)出發(fā),對數(shù)據(jù)的建模;

邏輯模型獨(dú)立于計(jì)算機(jī)硬件,依賴于軟件;

邏輯模型是DB設(shè)計(jì)人員與應(yīng)用程序員進(jìn)行交流的工具。邏輯模型主要有三種:網(wǎng)狀、層次、關(guān)系。

(3)外部模型特點(diǎn):

●外部模型是邏輯模型的邏輯子集;

●獨(dú)立于計(jì)算機(jī)硬件,依賴于軟件;

●表達(dá)單個(gè)用戶使用數(shù)據(jù)庫的觀點(diǎn)。

劃分外部模型的優(yōu)點(diǎn):

●簡化了用戶的觀點(diǎn);

●有助于DB的安全和保護(hù);

●外部模型是對概念模型的支持。(4)內(nèi)部模型特點(diǎn):

●內(nèi)部模型(物理模型)是DB最低層的抽象。描述數(shù)據(jù)在磁盤或磁帶上的存儲方式。包括:存儲設(shè)備。存取方法的細(xì)節(jié);

●內(nèi)部模型依賴于軟件和硬件;注意:●對于層次和網(wǎng)狀DB,需要精心設(shè)計(jì)內(nèi)部模型。對于關(guān)系DB不必考慮內(nèi)部模型的設(shè)計(jì)細(xì)節(jié),由DBMS自動完成。

物理DB是DB唯一的物理實(shí)體。二、E-R模型E-R模型:E-R圖表示現(xiàn)實(shí)世界中實(shí)體及實(shí)體間聯(lián)系的模型。用途:用于DB概念設(shè)計(jì)階段,描述DB概念模型。構(gòu)成:矩形框:其內(nèi)寫上實(shí)體名,表示實(shí)體類型;菱形框:其內(nèi)寫上聯(lián)系名,表示聯(lián)系類型;橢圓框:其內(nèi)寫上屬性名,表示實(shí)體或聯(lián)系的屬性;直線:連接實(shí)體,聯(lián)系及屬性框,旁邊可標(biāo)注聯(lián)系的聯(lián)系(1:1,1:n或n:m)。例:有語義:“一個(gè)部門擁有多個(gè)倉庫,倉庫中存放了多種零件,多種零件存放在不同的倉庫中?!碑嫵鲈撜Z義的E-R圖。部門號部門名電話號倉庫名地址電話號碼零件號零件名數(shù)量型號部門擁有儲存?zhèn)}庫零件1nnm注意:實(shí)體間聯(lián)系表達(dá)了實(shí)體間的語義關(guān)系,是ER模型的重要部分。例:某學(xué)生宿舍管理系統(tǒng),涉及的部分信息如下:學(xué)生:學(xué)號,姓名,性別,專業(yè),班級。寢室:寢室號,房間電話。管理員:員工號,姓名,聯(lián)系電話。其中:每個(gè)寢室可同時(shí)住宿多名學(xué)生,每名學(xué)生只分配一個(gè)寢室;每個(gè)寢室指定其中一名學(xué)生擔(dān)當(dāng)寢室長;每個(gè)管理員同時(shí)管理多個(gè)寢室,但每個(gè)寢室只有一名管理員。建立一個(gè)反映上述局部應(yīng)用的E-R模型。解:

E-R模型如下:學(xué)生寢室管理員聯(lián)系電話姓名員工號管理居住負(fù)責(zé)寢室號房間電話學(xué)號姓名性別專業(yè)班級1n111n語義(概念)模型描述的優(yōu)點(diǎn):在高層上直接表達(dá)實(shí)體間聯(lián)系的語義,容易理解;易于與用戶交流。不涉及數(shù)據(jù)組織的具體結(jié)構(gòu),與計(jì)算機(jī)無關(guān)。三、結(jié)構(gòu)模型層次模型傳統(tǒng)的結(jié)構(gòu)模型:網(wǎng)狀模型關(guān)系模型用樹型結(jié)構(gòu)或森林表表示實(shí)體及實(shí)體聯(lián)系的模型。層次模型樹型結(jié)構(gòu):樹的結(jié)點(diǎn)是記錄類型,有且僅有一個(gè)無父的結(jié)點(diǎn)(樹根),其它結(jié)點(diǎn)僅有一個(gè)父結(jié)點(diǎn);父子結(jié)點(diǎn)之間只能是1對多或則1對1的聯(lián)系,不能是多對多。1、層次模型系號系名電話…課號課名學(xué)時(shí)…室號室名…姓名性別職稱…A系B教研室C教員D課程模型樹1.表示實(shí)體集之間的聯(lián)系2.表示實(shí)體集的定義01計(jì)算機(jī)7541…02自控…2應(yīng)用…1軟件…張三男教授…李四女副教授…1DB50…2OS48…3C60…a1Bb1b2Cc1c2Dd1d2d3a2值集樹相當(dāng)于模型樹的各結(jié)點(diǎn)的具體值組成例:層次模型樹結(jié)構(gòu)典型的層次DB系統(tǒng):IMS。特點(diǎn):

層次性:實(shí)體之間的聯(lián)系是單向的,樹任一結(jié)點(diǎn)只有唯一一條自根到達(dá)它的路徑;

有序性:從左到右的順序規(guī)則了任一結(jié)點(diǎn)所有子樹的先后次序;

原子性:結(jié)點(diǎn)中記錄的任何屬性均不可再分的簡單類型數(shù)據(jù);

父子結(jié)點(diǎn)之間至多是1對多(或1對1)的聯(lián)系。優(yōu)點(diǎn):層次模型的DB中,結(jié)點(diǎn)記錄之間是通過指針聯(lián)系,查詢效率高。缺點(diǎn):①結(jié)點(diǎn)之間的聯(lián)系只能是1對多,因此,對于多對多聯(lián)系需要轉(zhuǎn)換,且轉(zhuǎn)換較為復(fù)雜。②由于樹的層次性和順序性的要求,引起數(shù)據(jù)查詢和更新操作較為復(fù)雜。2、網(wǎng)狀模型網(wǎng)狀模型DB的結(jié)構(gòu)(DBTG報(bào)告中的網(wǎng)狀模型,簡單模型)用記錄類型為結(jié)點(diǎn)的網(wǎng)狀來表示實(shí)體與實(shí)體間1對多聯(lián)系的模型。例:有多個(gè)無父結(jié)點(diǎn)。一個(gè)結(jié)點(diǎn)可能有多個(gè)父結(jié)點(diǎn)父子結(jié)點(diǎn)之間至多是1:m的聯(lián)系,不能直接表達(dá)n:m聯(lián)系。所以,層次DB模型是DBTG中網(wǎng)狀模型的特殊形式。職稱性別姓名分?jǐn)?shù)課號學(xué)號出生年月姓名學(xué)號學(xué)時(shí)課名課號1M1M1M教學(xué)管理系統(tǒng)優(yōu)點(diǎn):記錄之間用指針連接,查詢效率高.缺點(diǎn):編寫應(yīng)用程序復(fù)雜,程序員必須熟知DB的邏輯結(jié)構(gòu)。典型網(wǎng)狀DBS:TOTALDMS1100IDMSIDS/Ⅱ3、關(guān)系模型用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,用外關(guān)鍵字表示實(shí)體間聯(lián)系的模型。關(guān)系模型:關(guān)系模式組成的集合。1、關(guān)系模型的物理概念關(guān)系就是俗稱的二維表:學(xué)號姓名性別系名專業(yè)名2001120012..王一張三

..男女

..計(jì)算機(jī)物理

..軟件地球物理

..學(xué)生登記表屬性(字段)元組(記錄值)屬性值集表頭:稱為關(guān)系的框架,即為屬性集。構(gòu)成模式:學(xué)生(學(xué)號,姓名,性別,系名,專業(yè)名)關(guān)系模型的數(shù)學(xué)概念:笛卡爾積中有意義的子集稱為關(guān)系。必須滿足下列條件的二維表:表中的每一列是不可再分的基本數(shù)據(jù)項(xiàng)(初等項(xiàng))。每列指定一個(gè)相異的名稱,類型相同。各行相異不允許重復(fù)(無重復(fù)的元組)。列行次序無關(guān)緊要。主要的關(guān)系DBMS產(chǎn)品:Oracle、DB2、Sybase、SQLServer、MySQL等。…………女82.1李芳0008男82.10王立0001性別出生年月姓名學(xué)號學(xué)生關(guān)系課程關(guān)系………40OS250DB1學(xué)時(shí)數(shù)課名課號學(xué)習(xí)關(guān)系………851000880200019010001分?jǐn)?shù)課號學(xué)號直接表達(dá)n:m聯(lián)系:通過關(guān)系或外關(guān)鍵字聯(lián)系。關(guān)系之間的聯(lián)系2、關(guān)系模型與層次模型,網(wǎng)狀模型的差別:用關(guān)鍵字而不是用指針導(dǎo)航數(shù)據(jù)(建立聯(lián)系);關(guān)系模型具有嚴(yán)密的數(shù)學(xué)基礎(chǔ)和操作的代數(shù)性質(zhì),網(wǎng)狀、層次無;簡單靈活地表達(dá)實(shí)體間的復(fù)雜關(guān)系;表格簡單、易懂,編程方便,不涉及到存儲結(jié)構(gòu)和訪問的細(xì)節(jié)。四.E-R模型與結(jié)構(gòu)模型的轉(zhuǎn)換關(guān)系E-R模型屬于語義模型,獨(dú)立于機(jī)器,用于信息世界描述實(shí)體及實(shí)體之間的聯(lián)系。E-R模型很方便地轉(zhuǎn)換成結(jié)構(gòu)模型中之一個(gè)模型:關(guān)系模型E-R模型:E1E2R層次模型網(wǎng)狀模型面向?qū)ο竽P娃D(zhuǎn)換規(guī)則1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)一.數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)最終用戶所看到的數(shù)據(jù)庫系統(tǒng)使用方式下的結(jié)構(gòu)形式,可分為:

集中式、分布式、客戶機(jī)∕服務(wù)器等。集中式數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)集中式數(shù)據(jù)庫系統(tǒng)可分為:單用戶和多用戶系統(tǒng)。(1)單用戶數(shù)據(jù)庫系統(tǒng)在單用戶系統(tǒng)中,數(shù)據(jù)庫、DBMS和應(yīng)用程序都裝在一臺計(jì)算機(jī)上,由一個(gè)用戶獨(dú)占,并且系統(tǒng)一次只能處理一個(gè)用戶的請求。(2)多用戶數(shù)據(jù)庫系統(tǒng)多用戶數(shù)據(jù)庫系統(tǒng)指在一個(gè)主機(jī)中集中存放數(shù)據(jù)庫、DBMS和應(yīng)用程序,供多個(gè)與之相聯(lián)系的終端用戶并發(fā)地共同使用數(shù)據(jù)庫,由一個(gè)處理機(jī)同時(shí)處理多個(gè)用戶事務(wù)的活動。DBMSOSDB主機(jī)●●●終端1終端n

集中式的數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)2.分布式數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)指數(shù)據(jù)庫被劃分邏輯關(guān)聯(lián)而物理分布在計(jì)算機(jī)網(wǎng)絡(luò)不同場地(又稱結(jié)點(diǎn))的計(jì)算機(jī)中,并具有整體操作與分布控制數(shù)據(jù)能力的數(shù)據(jù)庫系統(tǒng)。︰場地1通信網(wǎng)絡(luò)●●●

︰場地2︰場地3分布式數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)在分布式數(shù)據(jù)庫系統(tǒng)中,一般每個(gè)場地是一個(gè)集中式數(shù)據(jù)庫系統(tǒng),它們都有獨(dú)立處理能力并能完成局部應(yīng)用;而每一個(gè)場地的系統(tǒng)也參與全局應(yīng)用程序的執(zhí)行,全局應(yīng)用程序可通過網(wǎng)絡(luò)訪問系統(tǒng)中多個(gè)場地的數(shù)據(jù)。分布式數(shù)據(jù)庫系統(tǒng)的特點(diǎn):·分布性:數(shù)據(jù)庫中的數(shù)據(jù)分布地存儲在不同的場地。(有別于集中式數(shù)據(jù)庫)·自治性:每個(gè)場地是一個(gè)自主獨(dú)立的數(shù)據(jù)庫系統(tǒng),即為集中式數(shù)據(jù)庫系統(tǒng)。(有別于分散式數(shù)據(jù)庫)·全局性:各自治站點(diǎn)協(xié)同工作使數(shù)據(jù)庫邏輯上成為一個(gè)整體,以支持各用戶的全局應(yīng)用。(有別于網(wǎng)絡(luò)的分散式數(shù)據(jù)庫)客戶機(jī)∕服務(wù)器數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)客戶機(jī)∕服務(wù)器(client∕Server,簡稱C∕S)數(shù)據(jù)庫系統(tǒng)將DBMS功能管理程序單獨(dú)存放到網(wǎng)絡(luò)中某個(gè)或某些場地的計(jì)算機(jī)中,而將用戶應(yīng)用程序安裝到其余場地的計(jì)算機(jī)中。安裝DBMS功能管理程序系統(tǒng)的計(jì)算機(jī)稱為數(shù)據(jù)庫服務(wù)器,簡稱服務(wù)器;存儲用戶應(yīng)用程序的計(jì)算機(jī)稱為客戶機(jī)。在客戶機(jī)∕服務(wù)器數(shù)據(jù)庫系統(tǒng)中,客戶機(jī)通過計(jì)算機(jī)網(wǎng)絡(luò)向服務(wù)器提出計(jì)算請求,服務(wù)器經(jīng)過計(jì)算,將結(jié)果返回客戶機(jī),減少了網(wǎng)上數(shù)據(jù)的傳輸量,提高了系統(tǒng)的性能、吞吐量和負(fù)載能力。

客戶機(jī)表格處理圖形接口報(bào)告生成應(yīng)用工具接口通信網(wǎng)絡(luò)查詢處理事務(wù)處理存儲管理DB服務(wù)器客戶機(jī)∕服務(wù)器數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)三級模式和兩級變換結(jié)構(gòu)模式是由結(jié)構(gòu)模型用語句定義而來:外模式、模式和內(nèi)模式。兩級變換:外模式/模式、模式/內(nèi)模式?!ぁ?、、、………………外模式1外模式2外模式n模式內(nèi)模式DBMSOSDB外模式/模式映象1外模式/模式映象2外模式/模式映象n模式/內(nèi)模式映象…………I/O視圖DBA建立和維護(hù)DB系統(tǒng)結(jié)構(gòu)二.數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1、三級模式結(jié)構(gòu)外模式(子模式,用戶模式):由外部模型定義而來。概念模式(模式):由邏輯模型定義而來。內(nèi)模式(物理模式,存儲模式):由內(nèi)部模型定義而來。外模式(externalschema)外模式:是用戶與DBS的接口,是單個(gè)用戶所使用的那一部分?jǐn)?shù)據(jù)視圖的描述?!绦騿T表現(xiàn)形式:DB局部數(shù)據(jù)的邏輯結(jié)構(gòu),由若干外部記錄類型組成。(I/O與視圖區(qū)別:數(shù)據(jù),命名,組合,次序,種類等不同)外模式通過“外模式DDL”定義,并通過數(shù)據(jù)庫操縱語言DML操縱。一個(gè)DB由若干個(gè)子模式,為多個(gè)應(yīng)用程序共享。概念模式(conceptualschema)概念模式(conceptualschema):DB中全部的整體數(shù)據(jù)邏輯視圖的描述?!璂BA表現(xiàn)形式:DB全局?jǐn)?shù)據(jù)邏輯描述:數(shù)據(jù)名、類型、記錄間的聯(lián)系,操作,完整性,安全性要求。概念模式通過“模式DDL”定義:子模式是模式的邏輯子集;DBS中只有一個(gè)模式它是子模式的合成。均不涉及存儲結(jié)構(gòu)及訪問技術(shù)等細(xì)節(jié)。子模式與模式可能有若干差別:數(shù)據(jù)名,次序,數(shù)據(jù)的類型等。模式/子模式之間映象由DBMS完成。內(nèi)模式(internalschema)內(nèi)模式:DB在物理存儲方面的描述,是物理存儲數(shù)據(jù)視圖的描述。表現(xiàn)形式:DB內(nèi)部記錄類型,索引和文件組織方式及控制的的描述細(xì)節(jié)。內(nèi)模式通過“內(nèi)模式DDL”定義。內(nèi)模式只有一個(gè),內(nèi)模式/模式映象由DBMS完成。2、兩級變換外模式/模式映象:DBMS定義外模式與概念模式間的對應(yīng)性(內(nèi)部記錄與外部記錄的對應(yīng)性)

模式/內(nèi)模式映象:定義模式與內(nèi)模式之間的對應(yīng)性。由于數(shù)據(jù)中記錄類型,字段類型,命名組成可能不一樣,需要說明概念記錄和內(nèi)部記錄的對應(yīng)關(guān)系。

三級模式和兩級變換結(jié)構(gòu)的主要優(yōu)點(diǎn):提供了數(shù)據(jù)獨(dú)立性。二、數(shù)據(jù)兩級獨(dú)立性

數(shù)據(jù)的物理獨(dú)立性

數(shù)據(jù)的邏輯獨(dú)立性分為:1、數(shù)據(jù)的物理獨(dú)立性DBS中對DB的內(nèi)模式的修改盡量不影響概念模式的修改,稱數(shù)據(jù)具有物理獨(dú)立性。如:DB的存儲設(shè)備和存取方法有所變化,使模式/內(nèi)模式映象進(jìn)行相應(yīng)修改,但概念模式盡可能保持不變。2、數(shù)據(jù)的邏輯獨(dú)立性對DB的概念模式的修改,盡量不影響外模式和應(yīng)用程序的變化,稱數(shù)據(jù)具有邏輯獨(dú)立性。概念模式修改如增加記錄類型或數(shù)據(jù)項(xiàng),外模式/概念模式映象隨之相應(yīng)修改,但使外模式盡可能保持不變。三、用戶界面I/O視圖是用戶的界面,通過數(shù)據(jù)操縱語言(DML)編寫的程序而完成的圖表等數(shù)據(jù)顯示或打印形式。自含型DML:編程語言本身含有DML語句,DML兩種方式:如:FoxPro。宿主型DML:DML嵌入到高級語言(如C等)中使用,如:SQL語言。一、DBS的組成數(shù)據(jù)庫(DB):存放在磁盤中的物理數(shù)據(jù)庫。硬件:DBS的物理支持。

DBMS:DBS管理功能的體現(xiàn)其它軟件(OS等):DBS的軟件支持終端用戶:使用程序的非計(jì)算機(jī)人員。人員:專業(yè)人員:數(shù)據(jù)庫設(shè)計(jì)的上層人員如系統(tǒng)分析員程序員:編寫應(yīng)用程序的人員。數(shù)據(jù)庫管理員(DBA:databaseadministrator):DBS責(zé)任的承擔(dān)者。

軟件:DBS的組成:1.5數(shù)據(jù)庫系統(tǒng)的組成1、DB一個(gè)組織中,與各項(xiàng)應(yīng)用有關(guān)的全部數(shù)據(jù)集合。應(yīng)用數(shù)據(jù)的集合,稱為物理庫。各項(xiàng)數(shù)據(jù)結(jié)構(gòu)的描述,稱為描述庫,由DD系統(tǒng)管理。磁盤中存儲的數(shù)據(jù)結(jié)構(gòu):5種:

數(shù)據(jù)文件:應(yīng)用數(shù)據(jù)的DB文件。

數(shù)據(jù)字典:存儲DB三級模式及數(shù)據(jù)完整性約束。

索引:優(yōu)化查詢提高速度而設(shè)置的排序文件。

統(tǒng)計(jì)數(shù)據(jù):存儲DBS運(yùn)行時(shí)統(tǒng)計(jì)分析的數(shù)據(jù)。供查詢分析器有效處理查詢。

日志:存儲DBS運(yùn)行時(shí)對DB的操作情況。供查詢DB使用情況和數(shù)據(jù)恢復(fù)。組成:2、硬件包括:CPU、內(nèi)存、外存、I/O設(shè)備、數(shù)據(jù)通訊設(shè)備等。DBS關(guān)注的是:內(nèi)存、外存、I/O存取速度,可支持終端數(shù)和性能穩(wěn)定 性等指標(biāo)。3、軟件OS:支持DBMS存取數(shù)據(jù)。宿主語言及對應(yīng)的編譯系統(tǒng)。數(shù)據(jù)通訊軟件。用戶開發(fā)的應(yīng)用程序。集成的DB管理軟件:報(bào)表生成器,DB輔助設(shè)計(jì)工具軟件,數(shù)據(jù)庫測試工具,圖形系統(tǒng),I/O交換設(shè)施等。

DBMS系統(tǒng)(下面介紹)包括:關(guān)系:DB及硬件OSDBMS/編譯系統(tǒng)集成的DB管理軟件應(yīng)用程序4、人員(1)DBA承擔(dān)創(chuàng)建,監(jiān)控和維護(hù)整個(gè)DB結(jié)構(gòu)的責(zé)任:模式定義內(nèi)模式定義修改DB的模式和內(nèi)模式對DB訪問的授權(quán)完整性約束的說明通過一系列使用程序完成:DBMS裝載、重組、日志、恢復(fù)、統(tǒng)計(jì)分析。通過DD系統(tǒng),掌握系統(tǒng)的工作情況。

DBA與DBMS的界面是數(shù)據(jù)庫模式。DBA:(2)專業(yè)用戶:使用專用的DB查詢語言操作數(shù)據(jù)。

專業(yè)用戶與DBMS的界面是數(shù)據(jù)庫查詢工具。(3)應(yīng)用程序員:使用DML編寫應(yīng)用程序。應(yīng)用程序語言:C,C++,JAVA等。或者軟件開發(fā)工具:Delphi、PowerBuilder(PB)、VisualBasic(VB)或VC、·NET等。

應(yīng)用程序員與DBMS的界面是應(yīng)用程序。(4)終端用戶:使用程序人員。

終端用戶與DBMS的界面是應(yīng)用程序運(yùn)行后的I/O界面。

二、DBMS1、DBMS的主要功能DBMS是DBS中重要的核心軟件。DBMS的主要功能:(1)DB的定義功能DBMS提供的數(shù)據(jù)定義語言(DDL):

●定義DB的三級模式:外模式,概念模式,內(nèi)模式及相互之間的映像。

●定義數(shù)據(jù)完整性、安全性約束。

●定義索引文件。

(2)DB的操縱功能

DBMS提供數(shù)據(jù)操作語言DML,實(shí)現(xiàn)對DB中的數(shù)據(jù)操縱。(需要DML編譯程序或解釋程序)

查詢更新(插入,刪除,修改)過程性DML(指出“做什么”和“如何做”):層次和網(wǎng)狀DB中用。非過程性DML(只指出“做什么”):關(guān)系DB中采用。DML的使用方式分為:自含型和宿主型(嵌入型)(3)DB的保護(hù)功能DB的恢復(fù):DB被破壞,則利用DBMS提供的恢復(fù)子系統(tǒng),將DB恢復(fù)到正確狀態(tài)。DB的并發(fā)控制:解決多個(gè)用戶對DB中數(shù)據(jù)操作的共享問題。DB的完整性控制:保證DB中數(shù)據(jù)及語義的正確性和有效性。DB的安全性控制:防止未授權(quán)的用戶竊取數(shù)據(jù)。基本操作分為:DML分為:(4)DB的存取管理把各種DML語句轉(zhuǎn)換成低層的文件系統(tǒng)命令,交OS存取磁盤中DB的數(shù)據(jù)。(5)DB的維護(hù)和通信功能數(shù)據(jù)的裝載數(shù)據(jù)的備份文件重組性能的監(jiān)控通信功能:實(shí)現(xiàn)用戶程序與DBMS之間的通信,與OS協(xié)調(diào)完成。維護(hù)功能:2、DBMS組成

DBMS由一些功能程序組成。

查詢處理器

存儲管理器DBMS分為兩大部分:(1)查詢處理器組成

DDL翻譯程序:把源模式翻譯成目標(biāo)模式:即編譯或解釋DDL語句,并把它們登錄到數(shù)據(jù)字典中。

DML處理程序:

DML預(yù)編譯程序。查詢運(yùn)行的核心程序:執(zhí)行由DML編譯器產(chǎn)生的低層指令。把程序中的DML語句翻譯成可執(zhí)行程序。(2)存儲管理器的組成

授權(quán)和完整性管理器:測試訪問是否滿足完整性約束,檢查用戶訪問數(shù)據(jù)是否合法。

事務(wù)管理器:負(fù)責(zé)并發(fā)事務(wù)的正確執(zhí)行,保證DB一致性。

文件管理器:負(fù)責(zé)磁盤空間的分配,管理物理文件的存儲結(jié)構(gòu)和存取方法。

緩沖區(qū)管理器:為應(yīng)用程序開辟DB的系統(tǒng)緩沖區(qū),負(fù)責(zé)從磁盤讀取數(shù)據(jù)通過緩沖區(qū)進(jìn)入內(nèi)存。3、用戶訪問數(shù)據(jù)的過程例如:應(yīng)用程序從DB中讀取一個(gè)記錄的過程。應(yīng)用程序A狀態(tài)字工作區(qū)系統(tǒng)緩沖區(qū)應(yīng)用程序A子模式模式內(nèi)模式DBMSOSDB運(yùn)行日志數(shù)據(jù)字典系統(tǒng)12345678910步驟:應(yīng)用程序A向DBMS發(fā)出一個(gè)讀記錄命令(通過DML語句)。DBMS分析程序A中的操作命令:按子模式名從DD中調(diào)出對應(yīng)的子模式,并檢查A的存取權(quán)限,決定是否執(zhí)行A的命令。DBMS通過子模式調(diào)出相應(yīng)的模式描述,并將子模式記錄格式映象模式中的對應(yīng)邏輯記錄格式,確定在概念模式中應(yīng)該讀取哪些記錄。DBMS調(diào)出內(nèi)模式描述,并將模式的內(nèi)部記錄映象成內(nèi)模式記錄,從而決定所讀取的記錄及相應(yīng)地址。DBMS向OS發(fā)出讀取記錄值的命令。OS執(zhí)行讀命令,并把數(shù)據(jù)外存送到內(nèi)存的系統(tǒng)緩沖區(qū)中。7.DBMS將讀入到系統(tǒng)緩沖區(qū)的記錄轉(zhuǎn)換成概念記錄,外部記錄。8.DBMS將導(dǎo)出的外部記錄從DB緩沖區(qū)送到程序A的工作區(qū)。9.DBMS向運(yùn)行日志DB寫入讀一條記錄的信息,以備今后查詢,如:取數(shù)據(jù),日期,記錄個(gè)數(shù)等。10.DBMS將讀記錄是否成功信息返回程序A。11.程序A根據(jù)返回的狀態(tài)信息,決定是否使用工作區(qū)的變量值。4、數(shù)據(jù)字典(DD)數(shù)據(jù)庫系統(tǒng)中存放DB的三級結(jié)構(gòu)定義的數(shù)據(jù)庫稱為DD。(1)DD的主要內(nèi)容子模式,模式,內(nèi)模式定義的結(jié)構(gòu)。數(shù)據(jù)項(xiàng)名,長度,類型,數(shù)據(jù)之間的聯(lián)系。用戶的標(biāo)識符,口令,密碼,安全性和完整性的約束等信息。DB運(yùn)行時(shí)的統(tǒng)計(jì)信息,如:訪問的記錄個(gè)數(shù)和次數(shù)等。

●DD系統(tǒng):管理DD的實(shí)用程序,稱為DD系統(tǒng)。(2)DD的作用供DBMS快速查詢有關(guān)對象的信息;

DBA用DD可以了解和掌握DB的運(yùn)行情況;支持DB的設(shè)計(jì)與系統(tǒng)分析。第1章課外習(xí)題一.選擇題1.在數(shù)據(jù)庫管理技術(shù)的發(fā)展過程中,數(shù)據(jù)獨(dú)立性最高的是()階段。

A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理 2.三大經(jīng)典的數(shù)據(jù)結(jié)構(gòu)模型是()。

A.層次、網(wǎng)狀和實(shí)體聯(lián)系模型

B.關(guān)系、層次和E-R模型C.關(guān)系、層次和網(wǎng)狀模型3.單個(gè)用戶使用的數(shù)據(jù)視圖的描述,稱為(),它是用戶與DBS的接口。

A.模式B.外模式C.概念模式4.DB中,數(shù)據(jù)的邏輯獨(dú)立性是指()。

A.概念模式改變,外模式與應(yīng)用程序不變

B.模式改變,概念模式不變

C.概念模式改變,內(nèi)模式不變5.通過指針鏈接來表示實(shí)體間聯(lián)系的模型是()。

A.關(guān)系模型B.E-R模型C.網(wǎng)狀和層次模型二.填空題1.DB的系統(tǒng)結(jié)構(gòu)分成三層,分別是____、_____和_____。2.DBMS的主要功能有_____、_____、數(shù)據(jù)庫的運(yùn)行管理,DB維護(hù)和組織存儲管理及數(shù)據(jù)通信接口等。3.組成數(shù)據(jù)模型的三大要素是_____、_____和_______。4.DBMS包括的主要程序_____、_____、_____和_____。

第2章關(guān)系型數(shù)據(jù)庫

主要內(nèi)容:

●關(guān)系數(shù)據(jù)庫概述。

●關(guān)系模型的物理與數(shù)學(xué)定義。

●關(guān)系代數(shù)運(yùn)算。

●關(guān)系演算:元組演算與域演算。重點(diǎn):關(guān)系代數(shù)運(yùn)算2.1關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng)。關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作關(guān)系完整性約束關(guān)系模型由三部分組成:1、關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系模型中的數(shù)據(jù)結(jié)構(gòu)是二維表格。關(guān)系模型數(shù)學(xué)定義為笛卡爾集中的有意義的子集。2、關(guān)系操作查詢操作更新(增、刪、改)操作其中,查詢是更新的基礎(chǔ),它是關(guān)系最重要和最基本的操作。關(guān)系的操作:關(guān)系操作的結(jié)果:關(guān)系(集合)。關(guān)系代數(shù):選擇、投影、連接、除、并、交、差等。關(guān)系元組演算關(guān)系域演算關(guān)系演算:關(guān)系操作的數(shù)學(xué)表達(dá):常用的關(guān)系操作的語言:SQL關(guān)系操作語言的特點(diǎn):具有完備的表達(dá)能力。非過程化的集合操作語言。語句即可交互使用又可嵌套到高級語言中使用。3、關(guān)系完整性約束關(guān)系的完整性:指關(guān)系中數(shù)據(jù)的相容性和正確性。實(shí)體完整性參照完整性用戶定義完整性

關(guān)系三類完整性:關(guān)系模型物理表示:二維表格。數(shù)學(xué)表示:笛卡爾積上有意義的子集。關(guān)系模型:直觀地說就是用二維表格表示實(shí)體集,外鍵表示實(shí)體間聯(lián)系的數(shù)據(jù)模型。關(guān)系模型表示:一、關(guān)系模型的物理表示二維表格表示,如:一張學(xué)生注冊表學(xué)號姓名性別出生年月99019902

…張一王三…男女…80.179.12…行關(guān)系模式R(表頭)元組1元組2……實(shí)體集(文件)r:元組集合(關(guān)系)值域(列)

關(guān)系模型=關(guān)系模式+關(guān)系關(guān)系模式:它是靜態(tài)的(不隨時(shí)間變化),穩(wěn)定的,它由屬性名組成.關(guān)系是由元組組成的值集.它是隨操作而變化.1、關(guān)系模式(relationschema)

組成:取自二維表的表頭中的數(shù)據(jù).一般組成:關(guān)系模式是一個(gè)五元組:R(U,D,DOM,F)

其中:R為關(guān)系模式名:可取自二維表的表名;不同的關(guān)系模式其名不同.U為屬性名表:上例:學(xué)號,姓名,出生年月,性別;屬性名各異.D為屬性的域名,指屬性取值的類型;如:學(xué)號的類型為字符串.DOM為屬性的取值的寬度(長度);如:學(xué)號取值8個(gè)字符(最大).F為屬性間依賴關(guān)系的集合,表明屬性間的語義;如:學(xué)號姓名.

關(guān)系模式通常簡記為:

R(A1,A2,….,An);其中:A1,A2,….,An為屬性名。

如:上例:student(sno,name,sex,date)2、關(guān)系關(guān)系(表體中的數(shù)據(jù)):元組的集合。每一個(gè)元組描述一個(gè)實(shí)體,關(guān)系對應(yīng)實(shí)體集。

基本表:實(shí)際存在的表,實(shí)際存儲數(shù)據(jù)的邏輯表示。

查詢表:對DB操作后的結(jié)果表(結(jié)果關(guān)系)。

視圖(虛表):由基本表或其他視圖導(dǎo)出的表,不對應(yīng)實(shí)際存儲數(shù)據(jù)。注:在實(shí)際中,常把關(guān)系和關(guān)系模式系統(tǒng)稱為關(guān)系,可根據(jù)上下文區(qū)分。關(guān)系的三種類型:3、基本關(guān)系的性質(zhì)(對關(guān)系的限定)關(guān)系中每一列(屬性)必須是不可再分的基本數(shù)據(jù)項(xiàng),且具有同一類型,列名各異,列的排列次序無關(guān)緊要。關(guān)系中不允許出現(xiàn)相同的元組,元組之間的次序任意。4、關(guān)鍵字(Key)超鍵:唯一標(biāo)識元組的屬性集。如(sno,name)侯選鍵:不含多余屬性的超鍵。如sno或name(無同名同姓時(shí))。主鍵:被選用的侯選鍵。如:sno或可選name(無同名同姓時(shí))。外鍵:用來聯(lián)系關(guān)系的鍵。如:stu(sno,name,sex,date,dno)dno是外鍵;dept(dno,dname,addr)5、名詞對照表人工管理信息世界關(guān)系領(lǐng)域?qū)哟巍⒕W(wǎng)狀領(lǐng)域計(jì)算機(jī)表頭表框架關(guān)系模式記錄型記錄型表體實(shí)體集關(guān)系(元組集)記錄值集文件行實(shí)體元組記錄值記錄值列(欄目)屬性屬性數(shù)據(jù)項(xiàng)字段列值屬性值集屬性值集域值字段值識別項(xiàng)實(shí)體標(biāo)識符關(guān)鍵字(鍵)碼(鍵)碼二、關(guān)系模型的數(shù)學(xué)定義關(guān)系模型是建立在集合代數(shù)的基礎(chǔ)之上。關(guān)系用笛卡爾積來定義的。

笛卡爾積定義:給定一組域D1,D2,……Dn,這些域可以完全相同或不同或部分相同,則n個(gè)集合的笛卡爾積:

D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}

其中每一個(gè)元素(d1,d2,…,dn)稱為一個(gè)元組;元素中每一個(gè)分 量值di稱為元組的一個(gè)分量。笛卡爾積是一個(gè)以元組為元素的集合,且笛卡爾積可以表示一個(gè)二維表。例:給定D1={0,1},D2={a,b,c},則:

D1×D2={(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}(即每個(gè)元組的第一個(gè)分量取值為D1,第二個(gè)分量取值為D2,……)笛卡爾積的二維表示:D1D201abc×=D1D2000111abcabc基數(shù):2×3=6個(gè)元組關(guān)系模式的笛卡爾積定義:笛卡爾積D1×D2…×Dn的任一子集稱為定義在D1,D2,…,Dn上的一個(gè)n元關(guān)系模式,簡記為:

R(D1,D2,…,Dn)。

注:實(shí)際關(guān)系數(shù)據(jù)庫中的每一個(gè)關(guān)系都是一個(gè)笛卡爾積的有意義的子集,即其中的每個(gè)元組必須符合實(shí)際意義。例:設(shè)D1={張三,李四},D2={男,女}則有:D1×D2={(張三,男),(張三,女),(李四,男),(李四,女)}假定:張三本是男,李四本是女,顯然(張三,女)和(李四,男)是沒有意義的元組,應(yīng)該去掉。即有意義的子集:

D1×D2={(張三,男),(李四,女)}注意:關(guān)系的基數(shù):就是元組的個(gè)數(shù)。上例:關(guān)系的基數(shù)為6

關(guān)系的元數(shù)(度或目):屬性的個(gè)數(shù)。

上例:關(guān)系的元數(shù)為2。三、關(guān)系完整性為了保證關(guān)系模型中數(shù)據(jù)的正確性和一致性,必須對關(guān)系中數(shù)據(jù)作完整性的約束。三類完整性約束規(guī)則:實(shí)體完整性約束規(guī)則參照完整性約束規(guī)則用戶自定義約束規(guī)則:用戶定義,系統(tǒng)檢查。系統(tǒng)自動支持1、實(shí)體完整性規(guī)則關(guān)系中所有主屬性都不能取空值。而不是僅主關(guān)鍵字不能取空值。組成候選關(guān)鍵字的屬性稱為主屬性。如:選課(學(xué)號,課號,成績)中:主屬性學(xué)號和課號都應(yīng)有值,即不能為空值(無值)。2、參照完整性規(guī)則

不引用不存在的實(shí)體.例:有關(guān)系模式s(sno,name,sex,age)sc(sno,cno,grade)其中:sno是s的主關(guān)鍵字,也是sc中的外鍵,它聯(lián)系著s與sc,這時(shí)稱s為參照關(guān)系;sc為被參照關(guān)系(或稱依賴關(guān)系)。如果關(guān)系sc中有一個(gè)元組(s7,c4,80),此時(shí)學(xué)號s7在關(guān)系s中找不到,則認(rèn)為在sc中引用了一個(gè)不存在的學(xué)生實(shí)體,這就違反了參照完整性規(guī)則。3、用戶自定義完整性規(guī)則用戶自定義完整性規(guī)則反映某一具體應(yīng)用涉及的數(shù)據(jù)必須滿足的語義要求。如:學(xué)生的“年齡”定義兩位整數(shù),則值范圍太大;寫一條規(guī)則,把“年齡”屬性取值規(guī)定15~30之間。2.3關(guān)系代數(shù)

關(guān)系DB操作語言是以數(shù)學(xué)中的關(guān)系代數(shù)和謂詞演算為基礎(chǔ)研制的。關(guān)系查詢語言:關(guān)系代數(shù)語言:以集合代數(shù)操作為基礎(chǔ)運(yùn)算的DML(非過程性弱)關(guān)系演算語言:以謂詞演算為基礎(chǔ)的DML(非過程性強(qiáng))分為:元組關(guān)系演算語言域關(guān)系演算語言一、關(guān)系代數(shù)的5種基本操作關(guān)系代數(shù)的操作:傳統(tǒng)的集合運(yùn)算:∪,-,∩,×擴(kuò)充的關(guān)系運(yùn)算:π(投影)、σ(選擇)、(聯(lián)接)、÷(除)關(guān)系代數(shù)完備的且基本的操作集:∪,-,×,∏,σ五種。其它的運(yùn)算并非基本,都可由這5種操作導(dǎo)出。1、并(∪)設(shè)R和S是同類關(guān)系(模式相同:屬性相同,個(gè)數(shù)相等),R∪S結(jié)果為一同類關(guān)系,它由既屬于R又屬于S中的元組構(gòu)成的集合。用元組變量形式定義:R∪S≡{t|t∈R∨t∈S};t為元組變量。?ABCadcbabcfdABCbdgaaf例:ABCadcbbabgcfdaRSR∪S相同元組只選一個(gè)特征:∪為二目運(yùn)算從“行”上取值作用:在一個(gè)關(guān)系中插入一個(gè)數(shù)據(jù)集合,自動去掉相同元組。2、差(—)

設(shè)R與S為同類關(guān)系,則R和S的差是由屬于R而不屬于S的所有元組組成的集合。用元組變量形式定義:例:ABCacbbcd作用:從某關(guān)系中刪去另一關(guān)系R-S3、笛卡爾積(×)

設(shè)R為K1元關(guān)系,S為K2元關(guān)系,則R×S是一個(gè)(K1+K2)元數(shù)的集合,其中元組的前K1個(gè)分量是R的一個(gè)元組,后K2個(gè)分量是S的一個(gè)元組。共有n×m個(gè)元組(n為R元組數(shù),m為S元組數(shù))。用元組變量形式定義:R×S≡{t|t=<t,t>∧t∈R∧t∈S}k1k1k2k2例:ABC142536DEacbdABCDE114422553366acacbdbdRSR×Sk1=3k2=2k1+k2=3+2=5屬性n×m=2×2=4個(gè)元組特征:“列”合并,“行”組合作用:將兩個(gè)關(guān)系(同類或不同類)無條件地連成一個(gè)新關(guān)系。4、投影(л

在n元關(guān)系R(A1,A2,…An)中選取k(k≤n)列屬性,并去掉重復(fù)元組構(gòu)成的新關(guān)系:R1(A1,A2,…,Ak)。用元組變量定義лi1,i2,…,im(R)≡{t|t=<ti1,…,Tim>∧<t1,…tk>∈R}例:ABC147258369AC147369RЛA,C(R)=Л[1],[3](R)若有重復(fù)元組應(yīng)去掉。特征:運(yùn)算對象為單個(gè)關(guān)系,在“列”上縱向分割關(guān)系。作用:在關(guān)系中選取某些列組成一個(gè)新關(guān)系。5、選擇(σ)其中:F由下列成分組成:運(yùn)算對象:常數(shù)(用引號括起來),屬性名或?qū)傩缘牧刑枴?/p>

算術(shù)比較符:<,≤,>,≥,=,≠;

邏輯運(yùn)算符:¬,∧,∨用元組變量形式定義:

σF(R)≡{t|t∈R∧F(t)=true}從關(guān)系R中挑選滿足條件F為真的元組組成新關(guān)系,記為σF(R)例:ABCadcbcbcbdABCacbbcdRσB=‘b’(R)≡σ[2]=‘b’(R)特征:對一個(gè)關(guān)系進(jìn)行“行”運(yùn)算,即為橫向選擇。作用:在一個(gè)關(guān)系中,選擇滿足條件的元組構(gòu)成新關(guān)系(關(guān)系模式不變)運(yùn)算符:二、關(guān)系代數(shù)的4種組合運(yùn)算包括:交(∩),聯(lián)接(),自然聯(lián)接(

)和除法(÷)操作。1.交(∩

)求同類關(guān)系R和S中相同的元組的集合.用元組變量形式定義:R∩S≡{t|t∈R∧t∈S}θ例:ABCb2cABCab32bcABCabc124bcdSRR∩S注:R∩S=R-(R-S)用差運(yùn)算表示。特征:關(guān)系模式不變,從兩關(guān)系中取相同的元組。??

2.聯(lián)接(

)設(shè)R(A1,A2,…Ak1)和S(B1,B2,…,Bk2(1≤i≤k1,1≤j≤k2),i,j分別是R和S的第i個(gè)分量和第j個(gè)分量;θ聯(lián)接是笛卡爾積中的一個(gè)子集,其元組必須符合R的第i個(gè)分量值和S的第j個(gè)分量值之間的θ關(guān)系,記為R

S。用元組變量形式定義:R

S≡{t|=<t,t>∧t∈R∧t∈S∧tθt}

其中:t和t分別表示R中的第i個(gè)分量值,和S中第j個(gè)分量值,

tθt

表示這兩個(gè)分量值滿足θ操作。θ[i]θ[j]k1k1k1k2k2k2ij[i]θ[j]k1k2ijk2k1ji即:R

S≡σ

(R×S)[i]θ[j][i]θ[j]運(yùn)算步驟:(1)求R×S

=T(A1,A2,…,Ak1,B1,B2,…Bk2)

RS(2)在T中選擇[i]θ[j]成立的元組。????例:求R

S=σ[3]>[5](R×S)ABC147258369DEab78ABCDE778899ab78ABCDE114477225588336699ababab787878RS(1)求R×S(2)

σ[3]>[5](R×S)ABCDE789a7[3]>[2]注:當(dāng)θ為“=”時(shí),R

S稱為等值聯(lián)接。[i]=[j]求:R

S[1]=[2]特征:兩個(gè)關(guān)系不一定有公共屬性不去掉重復(fù)屬性。作用:將兩個(gè)關(guān)系按一定的條件聯(lián)接在一起。???3.自然聯(lián)接()自然聯(lián)接是

的特殊情況。設(shè)關(guān)系R和S有相同的屬性名Ai(i=1,2,…,k),則R

S是從R×S中挑選R·A1=S·A1∧R·A2=S·A2∧…∧R·Ak=S.Ak的所有元組,并去掉重復(fù)屬性的元組集合。元組變量形式表示:

{t|t=<t,t>∧(R(t)∧S(t))∧R·A1=S·A1∧R·A2=S·A2∧…∧R·Ai=S·Ai}運(yùn)算過程:計(jì)算R×S挑選R·Ai=S·Ai(即屬性名相同,值相等)的所有元組去掉重復(fù)屬性即:R

S≡лi1,i2,…,im(σ

R·A1=S·A1∧…

R·AK=S·AK(R×S))θ??R?s=

??例:BCD259368235ABC147258369ABCD14253623RS①R×S

③去掉重復(fù)屬性B,C:R?S

ABCS.BS.CD

1

2

3

2

3

2

1

2

3

56

3

1

2

3

9

8

5

4

5

6

2

3

2

4

5

6

5

6

3

4

5

6

9

8

5

7

8

9

2

3

2

7

8

9

5

6

3

7

8

9

9

8

5ABCS.BS.CD

1

2

3

2

3

2

4

5

6

5

6

3②σR.B=S.B∧R.C=S.C(R×S)注:(1)在無公共屬性時(shí),自然聯(lián)接變化為笛卡爾積。(2)等值聯(lián)接與自然聯(lián)接的區(qū)別:a.等值聯(lián)接要求相等的屬性不一定相同。自然聯(lián)接要求相等的屬性一定相同。b.等值聯(lián)接不要求去掉重復(fù)屬性。自然聯(lián)接要求去掉重復(fù)屬性。

(3)自然聯(lián)接是關(guān)系DB中最重要的操作之一。4.除法(÷)

設(shè)關(guān)系R和S分別為m元和n元關(guān)系,則R÷S結(jié)果為一個(gè)m-n元關(guān)系。其元組決定為:先將被除關(guān)系R中的m-n列按值分成若干組,每個(gè)組中參入分組的m-n列以外的那些列中是否包含除關(guān)系S的全部元組,包含則取該m-n列的值作為商關(guān)系的一個(gè)元組,否則不取。用元組變量形式表示:R÷S≡{t|t=<t,t…t>∧若t∈s,則<t,t>∈R}m1n2nnm-nn例:ABCDaaaeebbbddcedcedfedfCDcedfABaebdRSR÷S

三、關(guān)系代數(shù)表達(dá)式及應(yīng)用用關(guān)系代數(shù)對關(guān)系運(yùn)算,即寫出運(yùn)算表達(dá)方式。步驟:

①根據(jù)已知條件確定關(guān)系

②根據(jù)查詢結(jié)果確定關(guān)系

③根據(jù)運(yùn)算語義寫出查詢代數(shù)表達(dá)式。是否其條件屬性與結(jié)果屬性在同一關(guān)系中,若不在同一關(guān)系中,根據(jù)什么屬性聯(lián)系的。例:設(shè)DB中有三個(gè)關(guān)系模式:學(xué)生關(guān)系:s(s#,sname,age,sex)學(xué)習(xí)關(guān)系:sc(s#,c#,grade)課程關(guān)系:c(c#,cname,teacher)用關(guān)系代數(shù)表達(dá)式,表示下列各種查詢。1.查找學(xué)習(xí)課程號為C2的學(xué)生的學(xué)號與成績∏s#,grade(σc#=′c2′(sc))(學(xué)號、成績與課程號在同一關(guān)系sc中)2.查找選修課程號為C2或?yàn)镃4的學(xué)生的學(xué)號∏s#(σc#=′c2′∨c#=′c4′(sc)(學(xué)號與課程號在同一關(guān)系sc中)或:∏s#(σc#=‘c2’∨c#=‘c4’(лs#,c#(sc)))(說明表達(dá)式不唯一)3.查找至少學(xué)習(xí)C2和C4課程的學(xué)生的學(xué)號

[1](σ[1]=[4]∧[2]=‘c2’∧[5]=

‘c4’(sc×sc))s#[1]c#[2]grade[3]s#[4]c#[5]grade[6]sc×sc4.查找不學(xué)習(xí)C2課的學(xué)生的姓名與學(xué)號

∏sname,s#(s)-∏sname,s#(σc#=‘c2’(s

sc))

錯(cuò)誤寫法

:∏s#,sname(σc#≠‘c2’(s

sc))5.查找選修全部課程的學(xué)生姓名

sname(s(∏

s#,c#(sc)÷∏

c#(c)))(在三個(gè)關(guān)系中關(guān)聯(lián)查找)6.查找學(xué)習(xí)課程名為DB的學(xué)生姓名∏sname(s∏

s#(sc

c#(σcname=′DB′(c))))在三個(gè)關(guān)系中找,或

sname(∏

s#,sname(s)∏s#(лs#,c#(sc)

c#(σcname=‘DB’(C))))課號與姓名不在同一關(guān)系中,分別在sc

和s

,但s和sc

通過s#

聯(lián)系的???????2.3.3關(guān)系代數(shù)式的查詢優(yōu)化一.關(guān)系DB的查詢優(yōu)化概述

關(guān)系DB的查詢優(yōu)化分為:代數(shù)優(yōu)化和物理優(yōu)化。代數(shù)優(yōu)化:指關(guān)系代數(shù)表達(dá)式的優(yōu)化。(本節(jié)重點(diǎn))物理優(yōu)化:指存取路徑的選擇和低層操作算法的選擇。

1.關(guān)系DB的查詢處理過程查詢處理過程:查詢分析,查詢檢查,查詢優(yōu)化,查詢執(zhí)行。查詢分析:對查詢語句進(jìn)行掃描,詞法分析和語法分析。判斷查詢語句是否合法。查詢檢查:根據(jù)數(shù)據(jù)字典,檢查查詢語句的語義,用戶的存取權(quán)限和完整性的定義。檢查通過后,把SQL語句轉(zhuǎn)換成等價(jià)的關(guān)系代數(shù)表達(dá)式。一般用查詢樹(又稱:語法分析樹)表示關(guān)系代數(shù)表達(dá)式。查詢優(yōu)化:選擇高效執(zhí)行的查詢處理策略。

查詢執(zhí)行:由代碼生成器執(zhí)行根據(jù)查詢策略生成的查詢計(jì)劃的代碼。查詢優(yōu)化過程:查詢語句

詞法分析,語法分析,語義分析,符號名轉(zhuǎn)換安全性檢查,完整性檢查查詢樹代數(shù)優(yōu)化,物理優(yōu)化執(zhí)行策略描述代碼生成查詢計(jì)劃的執(zhí)行代碼數(shù)據(jù)庫數(shù)據(jù)字典查詢語句代數(shù)表達(dá)式的語法分析樹物理優(yōu)化策略查詢優(yōu)化代碼代碼生成器

2.關(guān)系代數(shù)運(yùn)算的優(yōu)化問題

問題:選擇怎樣的關(guān)系代數(shù)表達(dá)式表示查詢,省時(shí),省空間,速度快呢?

例:有三個(gè)等價(jià)的關(guān)系代數(shù)表達(dá)式E1,E2,E3:

E1=лA(σB=C∧D=’99’(R×S)),先做笛卡爾積,后做選擇和投影。

E2=лA(σB=C(R×σ

D=’99’(S))),先做選擇,后做笛卡爾積。

E3=л

A(R(σ

D=’99’(S)),先做選擇,后做聯(lián)接。注:E1:先做笛卡爾積,占大量的內(nèi)存空間。

E2和E3:先對S做選擇操作會減少大量的元組,再與R做聯(lián)接時(shí),內(nèi)存空間花費(fèi)小,存取的次數(shù)少,花費(fèi)CUP的時(shí)間少。

關(guān)系代數(shù)運(yùn)算的優(yōu)化原則:在保證語義正確的情況下,先安排選擇,投影運(yùn)算,然后進(jìn)行笛卡爾積,聯(lián)接運(yùn)算。

B=C?二.關(guān)系代數(shù)表達(dá)式的優(yōu)化算法利用等價(jià)變換規(guī)則(見p53)對關(guān)系代數(shù)表達(dá)式優(yōu)化的算法如下:算法:輸入:關(guān)系代數(shù)表達(dá)式的一棵語法樹。(樹中的葉子結(jié)點(diǎn)是關(guān)系,非葉子結(jié)點(diǎn)是操作符)輸出:計(jì)算該表達(dá)式的優(yōu)化程序。算法思想:

①.利用變換規(guī)則將表達(dá)式寫成只包含五種關(guān)系代數(shù)的基本運(yùn)算(∪,-,×,∏,σ),繪出表達(dá)式的語法樹;

②.將選擇操作盡量向葉子結(jié)點(diǎn)移動(即,先做選擇操作);然后,將投影操作盡量向葉子結(jié)點(diǎn)移動(即,后做投影操作)。最后得到一棵表達(dá)式的優(yōu)化的語法樹。

③.對優(yōu)化的語法樹,由下至上掃描,就是計(jì)算該表達(dá)式的優(yōu)化程序。例子:教學(xué)數(shù)據(jù)庫:S(SNO,SNAME,AGE,SEX);SC(SNO,CNO,GRADE);C(CNO,CNAME,TEACHER)。

有一查詢:查詢至少學(xué)習(xí)LI老師所授一門課的女學(xué)生的學(xué)號與姓名。關(guān)系代數(shù)表達(dá)式:

л

SNO,SNAME(σ

TEACHER=’LI’

∧SEX=‘

F’(SCCS))

(1)

建立語法樹將上式中的用л,σ,×操作表示:

л

SNO

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論