數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型_第1頁
數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型_第2頁
數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型_第3頁
數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型_第4頁
數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型第一頁,共六十七頁,2022年,8月28日

本章主要內(nèi)容本章將著重介紹一下概念模型、層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P偷葦?shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型的基本概念和設(shè)計(jì)方法,為后面的數(shù)據(jù)庫設(shè)計(jì)打下基礎(chǔ)。(1)數(shù)據(jù)描述

概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)等各階段中數(shù)據(jù)描述的術(shù)語,概念設(shè)計(jì)中實(shí)體間二元聯(lián)系的描述(1:1,1:N,M:N)。(2)數(shù)據(jù)模型

數(shù)據(jù)模型的定義,兩類數(shù)據(jù)模型,邏輯模型的形式定義,ER模型,層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P偷臄?shù)據(jù)結(jié)構(gòu)以及聯(lián)系的實(shí)現(xiàn)方式。第二頁,共六十七頁,2022年,8月28日數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型1.1數(shù)據(jù)模型概述1.2概念模型1.3層次數(shù)據(jù)模型1.4網(wǎng)狀數(shù)據(jù)模型1.5關(guān)系數(shù)據(jù)模型1.6面向?qū)ο髷?shù)據(jù)模型本章小結(jié)第三頁,共六十七頁,2022年,8月28日1.1數(shù)據(jù)模型概述數(shù)據(jù)模型(DataModel)是對現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,是用來描述數(shù)據(jù)的一組概念和定義。現(xiàn)實(shí)世界中的客觀對象抽象為概念模型;然后把概念模型轉(zhuǎn)換為DBMS支持的數(shù)據(jù)模型。其轉(zhuǎn)換過程如右圖。數(shù)據(jù)模型的分類:

概念數(shù)據(jù)模型(又稱概念模型)邏輯數(shù)據(jù)模型(又稱數(shù)據(jù)模型)現(xiàn)實(shí)世界概念數(shù)據(jù)模型:信息世界邏輯數(shù)據(jù)模型:DBMS支持的數(shù)據(jù)模型認(rèn)識抽象轉(zhuǎn)換第四頁,共六十七頁,2022年,8月28日1.2概念模型

1.2.1基本概念1.2.2E-R圖1.2.3擴(kuò)充E-R數(shù)據(jù)模型第五頁,共六十七頁,2022年,8月28日1.2.1基本概念

E-R數(shù)據(jù)模型(即Entity-Relationshipdatamodel,實(shí)體-聯(lián)系數(shù)據(jù)模型)是P.Chen(PeterPin-Shan

Chen)于1976年提出的一種語義數(shù)據(jù)模型。E-R數(shù)據(jù)模型不同于傳統(tǒng)數(shù)據(jù)模型,它不是面向?qū)崿F(xiàn),而是面向現(xiàn)實(shí)世界。1)實(shí)體(Entity)實(shí)體是客觀存在的且可以區(qū)別的事物。

2)聯(lián)系(Relationship)實(shí)體與實(shí)體間的關(guān)系抽象為聯(lián)系。

(1)二元聯(lián)系

只有兩個實(shí)體參與的聯(lián)系稱為二元聯(lián)系。

在二元聯(lián)系中,E-R數(shù)據(jù)模型又把聯(lián)系區(qū)分為一對一(1:1)、一對多(1:n)、和多對多(m:n)三種。第六頁,共六十七頁,2022年,8月28日數(shù)據(jù)聯(lián)系的描述(1:1)聯(lián)系實(shí)體集E1實(shí)體集E2座位E1乘客E2實(shí)體集E1實(shí)體集E2E1E2車間工人實(shí)體集E1實(shí)體集E2E1E2學(xué)生課程(1:n)聯(lián)系(m:n)聯(lián)系第七頁,共六十七頁,2022年,8月28日多元聯(lián)系與自反聯(lián)系(2)多元聯(lián)系

在E-R數(shù)據(jù)模型中,二元聯(lián)系這種表示方法還可推廣到多元聯(lián)系,即參與聯(lián)系的實(shí)體個數(shù)n≥3。例如,三元聯(lián)系也可區(qū)分1:1:1、1:1:p、1:n:p、m:n:p等聯(lián)系。(3)自反聯(lián)系

表示同一個實(shí)體集兩部分實(shí)體之間的聯(lián)系,是一種特殊的二元聯(lián)系。這兩部分實(shí)體之間的聯(lián)系也可以區(qū)分為1:1、1:n和m:n三種。

例如,在“人”這個實(shí)體集中存在夫妻之間的1:1聯(lián)系;教師實(shí)體集中為了描述領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)關(guān)系,可用1:n聯(lián)系描述;在課程實(shí)體集中存在一門課程與另外一門或幾門課程之間的預(yù)選課聯(lián)系。

第八頁,共六十七頁,2022年,8月28日3)屬性實(shí)體或聯(lián)系所具有的特征稱為屬性。實(shí)體是由特征來表征和區(qū)分的,通常一個實(shí)體可以由多個屬性來描述。例如,學(xué)生具有姓名、學(xué)號等屬性。一個實(shí)體可以有若干個屬性,但在數(shù)據(jù)庫設(shè)計(jì)中通常只選擇部分?jǐn)?shù)據(jù)管理需要的屬性。屬性往往是不可再細(xì)分的原子屬性,如姓名、性別等。屬性有型和值的區(qū)別。例如,學(xué)生實(shí)體中的學(xué)號、姓名等屬性名是屬性型,而“021231142”、“李定”等具體數(shù)據(jù)稱為屬性值。每個屬性值都有一定的變化范圍,通常稱屬性取值的變化范圍為屬性值的域。例如,性別屬性域是{男、女},年齡屬性域是1~200。能唯一標(biāo)識實(shí)體集中某一實(shí)體的屬性或?qū)傩越M稱為實(shí)體集的標(biāo)識關(guān)鍵字或稱關(guān)鍵字。第九頁,共六十七頁,2022年,8月28日1.2.2E-R圖

E-R圖是E-R數(shù)據(jù)模型的圖形表示法,是一種直觀表示現(xiàn)實(shí)世界的有力工具,目前E-R圖已用于數(shù)據(jù)庫的概念設(shè)計(jì)。E-R圖的表示方法實(shí)體集名聯(lián)系屬性上述提到的幾種聯(lián)系的E-R簡圖如下:

系部聘任教師1n教師教學(xué)學(xué)生mn教師領(lǐng)導(dǎo)1n課程預(yù)選mn校長負(fù)責(zé)學(xué)校11二元聯(lián)系E-R簡圖人夫妻11自反聯(lián)系E-R簡圖第十頁,共六十七頁,2022年,8月28日(2)畫出實(shí)體集及聯(lián)系的屬性

用無向邊把屬性框連向與其相關(guān)的實(shí)體集或聯(lián)系。例如學(xué)校和教師實(shí)體集間存在聘任聯(lián)系,聯(lián)系有“聘任日期”屬性,則一個描述學(xué)校和教師實(shí)體集及其聯(lián)系的E-R圖如下圖所示。學(xué)校聘任學(xué)校代碼學(xué)校名稱地址聘任日期教師教師代碼教師姓名性別職稱1n第十一頁,共六十七頁,2022年,8月28日

擴(kuò)充E-R數(shù)據(jù)模型1)依賴聯(lián)系和弱實(shí)體集

在現(xiàn)實(shí)世界中,某些實(shí)體集間還存在一種特殊的聯(lián)系――依賴聯(lián)系。

例如,在人事管理數(shù)據(jù)庫中存放的職工實(shí)體集及其家庭成員實(shí)體集,前者以后者的存在為前提,家庭成員實(shí)體集依賴于職工實(shí)體集。這種依賴另一個實(shí)體集的存在而存在的實(shí)體集稱為弱實(shí)體集,它們與其他實(shí)體集間的聯(lián)系稱為依賴聯(lián)系,如右圖所示。

職工成員家庭情況1n第十二頁,共六十七頁,2022年,8月28日2)子類和超類

為了進(jìn)一步描述一個實(shí)體集中某些實(shí)體的不同特征,從該實(shí)體集中取出一部分實(shí)體構(gòu)成一個(或多個)新的實(shí)體集,稱這個新實(shí)體集是原實(shí)體集的子類,而原實(shí)體集是新實(shí)體集的超類。例如,一個系部的職工實(shí)體集,為區(qū)分他們不同的工作特點(diǎn),可分為教師、教輔人員及管理人員三個子類實(shí)體集。其EER數(shù)據(jù)模型實(shí)例如下圖所示。職工職工代碼職工姓名性別教師學(xué)校團(tuán)體行政級別年齡教輔人員管理人員第十三頁,共六十七頁,2022年,8月28日3)聚集

在EER數(shù)據(jù)模型中,將聯(lián)系視為參與聯(lián)系的實(shí)體集組合而成新實(shí)體集,其屬性為參與聯(lián)系的實(shí)體的屬性和聯(lián)系的屬性的并。這種新實(shí)體集稱為聚集。這樣聯(lián)系也能以聚集的形式參與聯(lián)系。下圖是應(yīng)用聚集的例子。

科研項(xiàng)目單位編碼教師代碼系名教師合同號聘任日期姓名系部聘任承擔(dān)聚集第十四頁,共六十七頁,2022年,8月28日4)范疇

在描述現(xiàn)實(shí)世界時,有時要用到不同類型的實(shí)體組成的實(shí)體集,引入了范疇這一抽象概念。設(shè)E1、E2、…En是n個不同類型的實(shí)體集,則范疇T可定義為:

其中:E1、E2、…En稱為T的超實(shí)體集。例如,“銀行賬戶”這個實(shí)體集的成員可能是單位,也可能是個人。單位名姓名法人代表個人身份證號單位∪地點(diǎn)地址ψ銀行賬號開戶賬戶mn第十五頁,共六十七頁,2022年,8月28日幾個E-R事例部門E-R

第十六頁,共六十七頁,2022年,8月28日醫(yī)院病房管理E-R

第十七頁,共六十七頁,2022年,8月28日圖1學(xué)生選課的局部E-R圖圖2教師任課的局部E-R圖系系第十八頁,共六十七頁,2022年,8月28日教師屬于講授1mnm圖3合并的全局E-R圖系學(xué)生課程開課選修擁有1mmn1m第十九頁,共六十七頁,2022年,8月28日1.3

層次數(shù)據(jù)模型層次模型是按照層次結(jié)構(gòu)的形式組織數(shù)據(jù)庫數(shù)據(jù)的數(shù)據(jù)模型,即用樹型結(jié)構(gòu)表示實(shí)體集與實(shí)體集之間的聯(lián)系。其中用結(jié)點(diǎn)表示實(shí)體集,結(jié)點(diǎn)之間聯(lián)系的基本方式是1:n。

1)記錄和字段

記錄是用來描述某個事物或事物間關(guān)系的命名的數(shù)據(jù)單位,也是存儲的數(shù)據(jù)單位。它包含若干字段。每個字段也是命名的,字段只能是簡單的數(shù)據(jù)類型,例如整數(shù)、實(shí)數(shù)、字符串等。計(jì)算機(jī)系9李遠(yuǎn)科技大樓系系名系號系主任名地點(diǎn)圖(a)記錄的型圖(b)記錄的一個實(shí)例例如:圖(a)是一個名為系的記錄。圖(b)是其一個實(shí)例。第二十頁,共六十七頁,2022年,8月28日2)雙親子女關(guān)系(簡稱PCR)這是層次數(shù)據(jù)模型中最基本的數(shù)據(jù)關(guān)系。它代表了兩個記錄型之間一對多關(guān)系(1:n)。例如,一個系有多個班,就構(gòu)成了如圖(a)所示的雙親子女關(guān)系(即PCR型),在“1”方的記錄型稱為雙親記錄,在“n”方的記錄型稱為子女記錄。圖(b)是其一個實(shí)例。計(jì)算機(jī)系計(jì)科0201班計(jì)科0202班計(jì)教0201班系班1n(a)PCR型

(b)一個PCR實(shí)例第二十一頁,共六十七頁,2022年,8月28日3)層次數(shù)據(jù)模式

利用PCR可以構(gòu)成層次數(shù)據(jù)模式。右圖是一個層次數(shù)據(jù)模式的例子。下圖是層次數(shù)據(jù)模式的一個實(shí)例。

系班教研室學(xué)生教師

計(jì)算機(jī)系計(jì)科0201班計(jì)科0202班張三李四…王五李定…計(jì)教0201班趙山周英…硬件教研室孫立錢敏…軟件教研室胡恒丁偉…層次數(shù)據(jù)模式是一棵樹,其數(shù)據(jù)結(jié)構(gòu)特點(diǎn)為:在每棵樹僅有根結(jié)點(diǎn)無雙親。除根結(jié)點(diǎn)外的任何結(jié)點(diǎn)有且有一個雙親結(jié)點(diǎn),但可以有任意個子女結(jié)點(diǎn)。樹中無子女的結(jié)點(diǎn)稱為葉結(jié)點(diǎn)。第二十二頁,共六十七頁,2022年,8月28日4)層次序列和層次路徑

(1)層次序列由于存儲器是線性的,層次數(shù)據(jù)模型采用樹的先序遍歷的次序(即從上向下、自左到右)作為存儲次序。這樣所生成的序列稱為層次序列。上例中的層次數(shù)據(jù)模式的實(shí)例的層次序列如下圖所示。計(jì)算機(jī)系計(jì)科0201班張三…李四計(jì)科0202班王五…計(jì)教0201班…周英硬件教研室孫立…錢敏軟件教研室胡恒…丁偉(2)層次路徑層次路徑是用來指明從層次數(shù)據(jù)模式的根結(jié)點(diǎn)到目標(biāo)結(jié)點(diǎn)的一條查詢路徑,通常用從根結(jié)點(diǎn)到目標(biāo)結(jié)點(diǎn)路徑上每個記錄值的排序關(guān)鍵字表示。計(jì)算機(jī)系計(jì)科0201班計(jì)科0202班張三李四…王五李定…計(jì)教0201班趙山周英…硬件教研室孫立錢敏…軟件教研室胡恒丁偉…第二十三頁,共六十七頁,2022年,8月28日1.4

網(wǎng)狀數(shù)據(jù)模型為了克服層次模型結(jié)構(gòu)描述非層次型事物的局限,20世紀(jì)60年代末美國CODASYL委員會提出了網(wǎng)狀數(shù)據(jù)模型。1)記錄與數(shù)據(jù)項(xiàng)(DataItems)

與層次數(shù)據(jù)模型類似,在網(wǎng)狀數(shù)據(jù)模型中,也是以記錄為數(shù)據(jù)的存儲單位。記錄包含若干數(shù)據(jù)項(xiàng),數(shù)據(jù)項(xiàng)相當(dāng)于字段。但與層次數(shù)據(jù)模型中的字段不同,網(wǎng)狀數(shù)據(jù)模型中的數(shù)據(jù)項(xiàng)不一定是簡單的數(shù)據(jù)類型,也可以是多值的和復(fù)合的數(shù)據(jù)。2)系(Set)在網(wǎng)狀數(shù)據(jù)模型中,數(shù)據(jù)間的聯(lián)系用系表示。系代表了兩記錄之間的1:n聯(lián)系,系用一條弧表示,箭頭指向“n”方?!?”方的記錄稱首記錄,“n”方的記錄稱屬記錄。右圖是簡單網(wǎng)狀結(jié)構(gòu)的例子。簡單的網(wǎng)狀結(jié)構(gòu)班級學(xué)生1社團(tuán)nS11S2n第二十四頁,共六十七頁,2022年,8月28日3)系型(1)單屬系型由主記錄型和單一的屬記錄組成。例如班級記錄型和學(xué)生記錄型組成的班級-學(xué)生系是單屬系型。班級學(xué)生計(jì)科0201班張三李四王杰例如,在學(xué)校中有教師和職工,他們有不同的記錄結(jié)構(gòu)可形成兩個記錄類型。當(dāng)建立一個學(xué)校――教職工系型時,可將教師記錄型和職工記錄型作為學(xué)校的兩個屬記錄型。如右圖。多屬系型教師學(xué)校職工(2)多屬系型該系型中包含三個以上記錄型,其中一個為首記錄型,其余為屬記錄型。(3)奇異系型這是一種只有屬記錄型而無首記錄型的一種特殊系型。一個單位的所有部門可以組成一個無首記錄型的奇異系型。部門第二十五頁,共六十七頁,2022年,8月28日4)聯(lián)系記錄但對于二元m:n聯(lián)系、和多元m:n:p聯(lián)系也不能直接用系來表示,而是采用聯(lián)系記錄這個輔助數(shù)據(jù)結(jié)構(gòu),來將實(shí)體集間的m:n聯(lián)系轉(zhuǎn)換成兩個1:n聯(lián)系。例如學(xué)生記錄與課程記錄之間的m:n聯(lián)系可通過引入聯(lián)系記錄――學(xué)生選課記錄,將其轉(zhuǎn)換為兩個1:n聯(lián)系。如下圖所示。學(xué)生課程1m學(xué)生選課SL1nCL張三李四C語言網(wǎng)絡(luò)安全選課1選課2選課3選課4SL數(shù)據(jù)庫SLCLCLCL學(xué)生課程mnm:n聯(lián)系

值第二十六頁,共六十七頁,2022年,8月28日由于網(wǎng)狀數(shù)據(jù)模型中規(guī)定,一個記錄型不能在一個系中既作為系的首記錄又作為系的屬記錄,即系不能直接用來表示一個記錄型的自身聯(lián)系。我們通??刹捎迷黾勇?lián)系記錄的方法來解決。

例如,職工間的領(lǐng)導(dǎo)關(guān)系可以表示成一個環(huán),如圖(a)所示,增加一個聯(lián)系記錄型――領(lǐng)導(dǎo)記錄,該記錄存放領(lǐng)導(dǎo)職務(wù)等信息,從而形成兩個系類型S1、S2,如圖(b)所示。(a)(b)環(huán)結(jié)構(gòu)的表示職工1:n領(lǐng)導(dǎo)1:1職工領(lǐng)導(dǎo)1:nS1S2第二十七頁,共六十七頁,2022年,8月28日1.5

關(guān)系數(shù)據(jù)模型

1.5.1基本概念1.5.2關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)1.5.3數(shù)據(jù)操作1.5.4數(shù)據(jù)約束1.5.5關(guān)系數(shù)據(jù)模型的優(yōu)缺點(diǎn)第二十八頁,共六十七頁,2022年,8月28日

基本概念

1)屬性和域

在現(xiàn)實(shí)世界中,要描述一個事物,常常取其若干特征來表示。這些特征稱為屬性。例如,大學(xué)生可用姓名、學(xué)號、性別、系別等屬性來描述。

每個屬性對應(yīng)一個值的集合,作為其可以取值的范圍,稱為屬性的域。例如姓名的域是所有合法姓名的集合;性別的域是{男,女}等。

2)關(guān)系和元組

一個對象可以用一個或多個關(guān)系來表示。關(guān)系就是定義在它的所有屬性域上的多元關(guān)系。設(shè)為R,它有屬性A1、A2、…、An,其對應(yīng)的域分別為D1、D2、…、Dn,則關(guān)系R可表示為:

R=(A1/D1,A2/D2,…,An/Dn)或R=(A1,A2,…,An)

元組是關(guān)系中各個屬性的一個取值的集合。

3)鍵

關(guān)系中的某一屬性或?qū)傩越M的值唯一地決定其他所有屬性的值,也就是唯一決定一個元組,而其任何真子集無此性質(zhì),則稱這個屬性或?qū)傩越M為該關(guān)系的候選鍵,簡稱鍵。第二十九頁,共六十七頁,2022年,8月28日

關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)

1)關(guān)系數(shù)據(jù)模型的描述功能(1)用二維表格表示實(shí)體集及其屬性

設(shè)實(shí)體集R有屬性A1、A2、…、An,實(shí)體集的型可用一個二維表的框架表示。見表(a)。表中每一元組表示實(shí)體集的值,見表(b)A1A2A3…Ana11…am1a12…am2a13…am3………a1n…amnA1A2A3…An

(a)關(guān)系R的型(b)關(guān)系R的值學(xué)號姓名年齡性別系部號S1程宏19男9S2王盟20女9S3劉莎莎18女10學(xué)生情況表第三十頁,共六十七頁,2022年,8月28日(2)用二維表描述實(shí)體集間的聯(lián)系關(guān)系模型不僅可用二維表表示實(shí)體集,而且可用二維表描述實(shí)體集間的聯(lián)系。例如,在圖書管理中經(jīng)常用“借書人統(tǒng)計(jì)表”和“圖書登記表”如下表所示。姓名借書證號單位張三10001計(jì)算機(jī)系劉一10002自動化系…

總編號分類號書名作者200001TP101數(shù)據(jù)庫導(dǎo)論C.J.DATE400002TP102自動化系周明德…

借書證號總編號借閱日期100012000012003.9.1100014000022003.9.1100024000022003.10.9

…由于借書人與圖書之間是m:n聯(lián)系,在前面用層次模型或網(wǎng)狀模型將是一項(xiàng)復(fù)雜的事情。在這里用二維表――“借書登記表”來表示借書人和圖書兩個實(shí)體集之間的聯(lián)系則十分簡便,如下表所示。

第三十一頁,共六十七頁,2022年,8月28日

2)關(guān)系的性質(zhì)關(guān)系是一個二維表,表中的每一行對應(yīng)一個元組,表中的每一列有一個屬性名且對應(yīng)一個域。列是同質(zhì)的,即每一列的值來自同一域。關(guān)系中的每一個屬性是不可再分解,即所有域都應(yīng)是原子數(shù)據(jù)的集合。關(guān)系中任意兩個元組不能完全相同。關(guān)系中行的排列順序、列的排列順序是無關(guān)緊要的。每個關(guān)系都有關(guān)鍵字的屬性集唯一標(biāo)識各個元組。學(xué)號姓名年齡性別系部號S1程宏19男9S2王盟20女9S4李剛

20男10關(guān)系是一個簡單的二維表,其主要性質(zhì)為:第三十二頁,共六十七頁,2022年,8月28日3)關(guān)系模式關(guān)系模式是關(guān)系中信息內(nèi)容結(jié)構(gòu)的描述。它包括關(guān)系名、屬性名、每個屬性列的取值集合、數(shù)據(jù)完整性約束條件以及各屬性間固有的數(shù)據(jù)依賴關(guān)系等。可以表示為:

R(U,D,DOM,I,∑)其中:R為關(guān)系名;U為組成關(guān)系的全部屬性的集合;D是U中屬性取值的值域;DOM是屬性列到域的映射,即DOM:U→D;I是一組完整性約束條件;∑是屬性集間的一組數(shù)據(jù)依賴。通常,可用R(U)來簡化地表示關(guān)系模式。例如,描述大學(xué)生的關(guān)系模式表示為:

STUDENT(學(xué)號,姓名,性別,年齡,所在系,籍貫,入學(xué)年份)第三十三頁,共六十七頁,2022年,8月28日1.5.3數(shù)據(jù)操作1)關(guān)系代數(shù)關(guān)系代數(shù)是由一組以關(guān)系作為運(yùn)算對象的特定的關(guān)系運(yùn)算所組成,用戶通過這組運(yùn)算對一個或多個關(guān)系進(jìn)行“組合”與“分割”,從而得到所需要的新關(guān)系。

關(guān)系代數(shù)又分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算。(1)傳統(tǒng)的集合運(yùn)算主要包括并運(yùn)算、差運(yùn)算、交運(yùn)算和笛卡兒乘積運(yùn)算等。(2)專門的關(guān)系運(yùn)算包括選擇運(yùn)算、投影運(yùn)算、連接運(yùn)算、自然連接運(yùn)算、半連接運(yùn)算、自然半連接運(yùn)算和除運(yùn)算等。

其中:{σ,Π,∪,-,×}五種運(yùn)算為關(guān)系代數(shù)的基本運(yùn)算,組成了一個完備的操作集,任何其他關(guān)系代數(shù)操作都可以用這五種操作來表示。2)關(guān)系演算除了用關(guān)系代數(shù)表示關(guān)系操作外,還可以用謂詞演算來表達(dá)關(guān)系的操作,稱為關(guān)系演算。關(guān)系演算又可分為元組關(guān)系演算和域關(guān)系演算。第三十四頁,共六十七頁,2022年,8月28日

關(guān)系代數(shù)的基本操作關(guān)系代數(shù)操作集{∪,-,×,σ,Π}是個完備的操作集,任何其他關(guān)系代數(shù)操作都可以用這五種操作來表示。商品編號品名數(shù)量2008230冰箱192008234彩電502007156空調(diào)20(a)庫存關(guān)系R設(shè)關(guān)系R和S具有相同結(jié)構(gòu)的關(guān)系模式,R和S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,記為R∪S。形式定義如下:R∪S≡{t|t∈R∨t∈S},t是元組變量,R和S的元數(shù)相同。例如:有庫存和進(jìn)貨兩個表(見下表),要將兩個表合并為一個表,可利用并運(yùn)算來實(shí)現(xiàn)。商品編號品名數(shù)量2008214電熨斗302008310微波爐18(b)進(jìn)貨關(guān)系S商品編號品名數(shù)量2008230冰箱192008234彩電502007156空調(diào)202008214電熨斗302008310微波爐18(c)并運(yùn)算R∪S結(jié)果1)并(Union)第三十五頁,共六十七頁,2022年,8月28日2)差(Difference)設(shè)關(guān)系R和S具有相同結(jié)構(gòu)的關(guān)系模式,R和S的差是由屬于R但不屬于S的元組構(gòu)成的集合,記為R-S。形式定義如下:

R-S≡{t|t∈R∧t?S},R和S的元數(shù)相同??忌?001321120011231200171562001812420013610(a)成績合格考生號R例如:有考生成績合格者名單和身體不合格名單兩個關(guān)系,按錄取條件將成績合格且身體健康的考生中產(chǎn)生錄取名單關(guān)系??忌?00132112001715620013610(b)身體不合格考生號S考生號2001123120018124(c)差運(yùn)算R-S結(jié)果第三十六頁,共六十七頁,2022年,8月28日例1-2

表1-5(a)WORKER(職工)E#NAMESALARYAGEDEPT#123張國華1800251462李明2500311263劉英明2100302068王飛2700452表1-5(b)MANAGER(經(jīng)理)E#NAMESALARYAGEDEPT#068王飛2700452059曾富3200511表1-5(c)WORKER∪MANAGERE#NAMESALARYAGEDEPT#123張國華1800251462李明2500311263劉英明2100302068王飛2700452059曾富3200511表1-5(d)WORKER-MANAGERE#NAMESALARYAGEDEPT#123張國華1800251462李明2500311263劉英明2100302第三十七頁,共六十七頁,2022年,8月28日表1-7MANAGER×DEPTINFOE#NAMESALARYAGEM.DEPT#D.DEPT#DNAMEDTASK068王飛27004521技術(shù)部產(chǎn)品設(shè)計(jì)068王飛27004522市場部產(chǎn)品銷售059曾富32005111技術(shù)部產(chǎn)品設(shè)計(jì)059曾富32005112市場部產(chǎn)品銷售3)笛卡兒積(CartesianProduct)表1-6DEPTINFO(部門信息)DEPT#DNAMEDTASK1技術(shù)部產(chǎn)品設(shè)計(jì)2市場部產(chǎn)品銷售表1-5(b)MANAGER(經(jīng)理)E#NAMESALARYAGEDEPT#068王飛2700452059曾富3200511[例1-3]:假定部門信息存放在表DEPTINFO中(見表1-6),則表MANAGER與表DEPTINFO的笛卡兒積如表1-7所示。第三十八頁,共六十七頁,2022年,8月28日笛卡兒積定義設(shè)有關(guān)系R和S,它們分別是n目和m目關(guān)系(即它們的屬性個數(shù)分別為n和m),分別有p和q個元組。則關(guān)系R,S經(jīng)笛卡兒積運(yùn)算的結(jié)果T是一個n+m目關(guān)系,共有p×q個元組,這些元組是由R與S的元組組合而成的。關(guān)系R與S的笛卡兒積記為R×S,形式定義如下:第三十九頁,共六十七頁,2022年,8月28日4)選擇運(yùn)算(Selection)

這個操作是根據(jù)某些條件對關(guān)系做水平分割,即在一個關(guān)系內(nèi)選擇符合條件的元組稱為選擇運(yùn)算。選擇運(yùn)算可表示為:

σC(R)={t|t∈R∧C[t]=True}C表示邏輯條件表達(dá)式。這個表達(dá)式按以下規(guī)則組成:①αθβ,其中α、β是屬性名或常量,但α、β不能同為常量。θ是比較運(yùn)算符,它可以是<、≤、>、≥、=或≠。稱αθβ為基本邏輯條件。②由若干基本邏輯條件經(jīng)過邏輯運(yùn)算∧(與)、∨(或)、-(非)構(gòu)成復(fù)合邏輯條件。第四十頁,共六十七頁,2022年,8月28日選擇運(yùn)算事例表1-5(a)WORKER(職工)E#NAMESALARYAGEDEPT#123張國華1800251462李明2500311263劉英明2100302068王飛2700452

表1-8E#NAMESALARYAGEDEPT#462李明2500311對表WORKER執(zhí)行下列選擇運(yùn)算:第四十一頁,共六十七頁,2022年,8月28日5)投影(Project)這個操作是對一個關(guān)系進(jìn)行垂直分割,即對一個關(guān)系內(nèi)屬性的指定稱為投影運(yùn)算。設(shè)關(guān)系R有n個屬性:A1,A2,…,An,則對R上屬性Ai1,i2,…,Aim(Aij∈{A1,A2,…,An}投影的結(jié)果記為:對例1-2中的表WORKER執(zhí)行下列投影運(yùn)算:∏NAME,AGE(WORKER)、∏DEPT#(WORKER)其結(jié)果如表所示。第四十二頁,共六十七頁,2022年,8月28日投影運(yùn)算事例表1-5(a)WORKER(職工)E#NAMESALARYAGEDEPT#123張國華1800251462李明2500311263劉英明2100302068王飛2700452

表1-9∏NAME,AGE(WORKER)NAMEAGE張國華25李明31劉英明30王飛45表1-9∏DEPT#(WORKER)DEPT#12第四十三頁,共六十七頁,2022年,8月28日1.5.3.2

關(guān)系代數(shù)的組合操作1)交(intersection)設(shè)關(guān)系R和S具有相同的元數(shù)n,相應(yīng)的屬性取自同一個域,則關(guān)系R和S的交記為R∩S,由既屬于R又屬于S的元組組成,其結(jié)果仍然一個n元關(guān)系。形式定義如下:

R∩S={t|t∈R∧t∈S},t是元組變量。

關(guān)系的交可以由關(guān)系的差來表示,即:

R∩S=R-(R-S)或R∩S=S-(S-R)例如:以上例中的WORKER和MANAGER為例,其交運(yùn)算WORKER∩MANAGER的結(jié)果表1-5(E)所示??梢云浒床钸\(yùn)算WORKER-(WORKER-MANAGER)來計(jì)算,其結(jié)果分別如表1-5(E1)、表1-5(E2)所示。第四十四頁,共六十七頁,2022年,8月28日交操作事例表1-5(a)WORKER(職工)E#NAMESALARYAGEDEPT#123張國華1800251462李明2500311263劉英明2100302068王飛2700452表1-5(b)MANAGER(經(jīng)理)E#NAMESALARYAGEDEPT#068王飛2700452059曾富3200511表1(E)WORKER∩MANAGER

E#NAMESALARYAGEDEPT#068王飛2700452E#NAMESALARYAGEDEPT#123張國華1800251462李明2500311263劉英明2100302表1(E1)WORKER-MANAGER

E#NAMESALARYAGEDEPT#068王飛2700452表1(E2)WORKER-(WORKER-MANAGER)

第四十五頁,共六十七頁,2022年,8月28日2)連接(Join)運(yùn)算就是說,連接操作是笛卡兒積和選擇操作的組合。

(1)條件連接條件連接運(yùn)算又可稱θ-連接,這是一個二目運(yùn)算,通過它將兩個關(guān)系合并成一個關(guān)系。設(shè)有關(guān)系S和n目關(guān)系R以及比較表達(dá)式iθj,其中i是R中的屬性,j是S的屬性,θ含義同前(比較運(yùn)算符)。形式定義如下:【例1-8】設(shè)關(guān)系EMP表1-12表示職工的年齡和工齡情況,關(guān)系ELIT表1-13表示一個職工工作年限和可以享受的福利級別。使用下列θ連接:第四十六頁,共六十七頁,2022年,8月28日連接運(yùn)算事例表1-12關(guān)系EMPNAMEAGEYEARS李亞當(dāng)262王明303趙亮349陳賓4318表1-13關(guān)系ELITYEARSLEVEL1A3B5C10D

表1-13每個職工享有的全部福利(例1-8結(jié)果)NAMEAGEEMP.YEARSELIT.YEARSLEVEL李亞當(dāng)2621A王明3031A王明3033B趙亮3491A趙亮3493B趙亮3495C陳賓43181A陳賓43183B陳賓43185C陳賓431810D

第四十七頁,共六十七頁,2022年,8月28日EMP×ELIT

表1-13(E)EMP×

ELITNAMEAGEEMP.YEARSELIT.YEARSLEVEL李亞當(dāng)2621A李亞當(dāng)2623B李亞當(dāng)2625C李亞當(dāng)26210D王明3031A王明3033B王明3035C王明30310D趙亮3491A趙亮3493B趙亮3495C趙亮34910D陳賓43181A陳賓43183B陳賓43185C陳賓431810D第四十八頁,共六十七頁,2022年,8月28日(2)自然連接(NaturalJoin)R?S最常用的是θ-連接的一種特例,可以定義為:R?SR?S計(jì)算的具體過程為:計(jì)算R×S;設(shè)R和S的公共屬性是B1,

B2,

…,Bn,挑選R×S中滿足

R.B1=S.B1,…,R.Bn=S.Bn的那些元組;去掉S.B1,…,S.Bn這些列(保留R.B1,…,R.Bn)?!纠?-9】查詢各部門經(jīng)理及他們所在部門的信息。該查詢可用一個自然連接運(yùn)算實(shí)現(xiàn):

MANAGER?DEPTINFO,其查詢結(jié)果如表所示。第四十九頁,共六十七頁,2022年,8月28日自然連接事例表1-7MANAGER×DEPTINFOE#NAMESALARYAGEM.DEPT#D.DEPT#DNAMEDTASK068王飛27004521技術(shù)部產(chǎn)品設(shè)計(jì)068王飛27004522市場部產(chǎn)品銷售059曾富32005111技術(shù)部產(chǎn)品設(shè)計(jì)059曾富32005112市場部產(chǎn)品銷售表1-6DEPTINFO(部門信息)DEPT#DNAMEDTASK1技術(shù)部產(chǎn)品設(shè)計(jì)2市場部產(chǎn)品銷售表1-5(b)MANAGER(經(jīng)理)E#NAMESALARYAGEDEPT#068王飛2700452059曾富3200511表1-15MANAGER?DEPTINFOE#NAMESALARYAGEDEPT#DNAMEDTASK068王飛2700452市場部產(chǎn)品銷售059曾富3200511技術(shù)部產(chǎn)品設(shè)計(jì)第五十頁,共六十七頁,2022年,8月28日(3)半連接(SemiJoin)兩個關(guān)系R和S的半連接運(yùn)算定義為:表1-12關(guān)系EMPNAMEAGEYEARS李亞當(dāng)262王明303趙亮349陳賓4318表1-13關(guān)系ELITYEARSLEVEL1A3B5C10D表1-16NAMEAGEYEARS王明303第五十一頁,共六十七頁,2022年,8月28日3)除法運(yùn)算(Division)有關(guān)系R和S,R能被S除的條件有兩個:一是R中的屬性包含S中的屬性;二是R中的有些屬性不出現(xiàn)在S中。

R除以S表示為R/S或R÷S。

R÷S是由R中那些不出現(xiàn)在S中的屬性組成,其元組則是S中所有元組在R中對應(yīng)值相同的那些元組值。

表1-17SCS#C#S1C1S1C2S2C1S2C2S2C3S3C2表1-18CC#C1C2C3表1-19SC÷CS#S2第五十二頁,共六十七頁,2022年,8月28日除法運(yùn)算計(jì)算過程設(shè)有關(guān)系R和S的元數(shù)分別為r和s,則R÷S是一個(r-s)元的元組集合,其計(jì)算過程如下:(a)T=∏1,2,…,r-s(R)(b)W=(T×S)-R

(c)V=∏1,2,…,r-s(W)(d)R÷S=T-V

即R÷S=∏1,2,…,r-s(R)-∏1,2,…,r-s((T×S)-R)除法運(yùn)算不是基本運(yùn)算,它可由其他基本運(yùn)算推出。第五十三頁,共六十七頁,2022年,8月28日除法運(yùn)算計(jì)算事例(SC÷C)(a)T=∏1,2,…,r-s(SC)S#S1S2S3(T×C)S#C#S1C1S1C2S1C3S2C1S2C2S2C3S3C1S3C2S3C3

SCS#C#S1C1S1C2S2C1S2C2S2C3S3C2(b)W=(T×C)-SCS#C#S1C3S3C1S3C3(c)V=∏1,2,…,r-s(W)S#S1S3(d)R÷S=T-V

S#S2表1-17SCS#C#S1C1S1C2S2C1S2C2S2C3S3C2表1-18CC#C1C2C3第五十四頁,共六十七頁,2022年,8月28日1.5.4數(shù)據(jù)約束1)域完整性約束域完整性約束限定了屬性值的取值范圍,并由語義決定一個屬性值是否允許為空值NULL。學(xué)號姓名年齡性別系部號S1程宏19男9S2王盟20女9S4李剛

20男11學(xué)生情況表系部號系名系主任地點(diǎn)9計(jì)算機(jī)系李遠(yuǎn)科技大樓10電子系張立電子大樓院系情況2)實(shí)體完整性約束每個關(guān)系應(yīng)有一個主鍵,每個元組的主鍵的值應(yīng)是唯一的。主鍵的值不能為NULL,否則無法區(qū)分和識別元組。3)參照完整性約束參照完整性約束是不同關(guān)系間的約束,當(dāng)存在關(guān)系間的引用時,要求不能引用不存在的元組。第五十五頁,共六十七頁,2022年,8月28日1.5.5關(guān)系數(shù)據(jù)模型的優(yōu)缺點(diǎn)1)關(guān)系數(shù)據(jù)模型的優(yōu)點(diǎn)

關(guān)系模型有堅(jiān)實(shí)的理論基礎(chǔ)。在關(guān)系模型中,二維表不僅能表示實(shí)體集,而且能方便地表示實(shí)體集間的聯(lián)系。關(guān)系數(shù)據(jù)模型中數(shù)據(jù)的表示方法統(tǒng)一、簡單,便于計(jì)算機(jī)實(shí)現(xiàn),使用用戶使用。數(shù)據(jù)獨(dú)立性高。2)關(guān)系數(shù)據(jù)模型的缺點(diǎn):

關(guān)系數(shù)據(jù)模型的主要缺點(diǎn)是查詢效率常常不如非關(guān)系數(shù)據(jù)模型。關(guān)系數(shù)據(jù)模型等傳統(tǒng)數(shù)據(jù)模型還存在不能以自然的方式表示實(shí)體集間的聯(lián)系、語義信息不足、數(shù)據(jù)類型過少等弱點(diǎn)。

因此自20世紀(jì)80年代后期以來,陸續(xù)出現(xiàn)了以面向?qū)ο髷?shù)據(jù)模型為代表的新的數(shù)據(jù)模型。第五十六頁,共六十七頁,2022年,8月28日1.6面向?qū)ο髷?shù)據(jù)模型

面向?qū)ο髷?shù)據(jù)模型(Object-OrientedDataModel,簡稱OO數(shù)據(jù)模型)是面向?qū)ο蟪绦蛟O(shè)計(jì)方法與數(shù)據(jù)庫技術(shù)相結(jié)合的產(chǎn)物,用以支持非傳統(tǒng)應(yīng)用領(lǐng)域?qū)?shù)據(jù)模型提出的新需求。

2.6.1對象和對象標(biāo)識符2.6.2屬性和方法2.6.3封裝和消息傳遞2.6.4類和實(shí)例2.6.5類層次結(jié)構(gòu)和繼承2.6.6持久性和版本2.6.7多態(tài)、重載、重定義與動態(tài)聯(lián)編2.6.8與關(guān)系數(shù)據(jù)模型的比較第五十七頁,共六十七頁,2022年,8月28日

對象和對象標(biāo)識符

1)對象在面向?qū)ο髷?shù)據(jù)模型中,所有現(xiàn)實(shí)世界中的實(shí)體都模擬為對象,小至一個整數(shù)、字符串,大至一個公司、一部電影,都可以看成對象。

2)對象標(biāo)識符在OO數(shù)據(jù)模型中,每個對象都有一個系統(tǒng)內(nèi)唯一不變的標(biāo)識符,稱為對象標(biāo)識符(OID)。

OID一般是由系統(tǒng)產(chǎn)生,用戶不得修改。OID是區(qū)別對象的唯一標(biāo)志,與對象的屬性值無關(guān)。如果兩對象的屬性值和方法一樣,但OID不同,則仍認(rèn)為是兩個“相等”而不同的對象。如果一個對象的屬性值修改了,只要其標(biāo)識符不變,則仍認(rèn)為是同一對象。因此,OID可看成是對象的替身,以構(gòu)造更復(fù)雜的對象。第五十八頁,共六十七頁,2022年,8月28日

屬性和方法

1)屬性每個對象包含若干屬性,用以描述對象的狀態(tài)、組成和特性。

2)方法除了屬性外,對象還包含若干方法,用以描述對象的行為特性。方法又稱為操作,它可以改變對象的狀態(tài),對對象進(jìn)行各種數(shù)據(jù)庫操作。方法的定義與表示包含兩個部分:

一是方法的接口,說明方法的名稱、參數(shù)和結(jié)果的類型;二是方法的實(shí)現(xiàn)部分,是用程序編寫的一個過程,以實(shí)現(xiàn)方法的功能。一個對象一般是由一組屬性、一組方法,再冠以一個OID組成。CPU主板計(jì)算機(jī)AA屬性也是對象,它又可能包含其他對象作為其屬性。這種遞歸引用對象的過程可以繼續(xù)下去,從而組成各種復(fù)雜的對象。右圖是一個事例:學(xué)生學(xué)號班級專業(yè)…選課第五十九頁,共六十七頁,2022年,8月28日

封裝和消息傳遞

1)封裝在OO數(shù)據(jù)模型中,系統(tǒng)把一個對象的屬性和方法封裝成一個整體。對象的封裝性體現(xiàn)在以下幾個方面:對象具有清晰的邊界;對象具有統(tǒng)一的外部接口;對象的內(nèi)部實(shí)現(xiàn)是不公開的。對象i屬性1…屬性n方法1…方法m對象j屬性1…屬性n方法1…方法m消息(調(diào)用)消息(結(jié)果)消息一般由操作者、接收者、操作參數(shù)三個部分組成。對象、消息之間的關(guān)系如右圖所示。2)消息傳遞

對象是

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論