課件-第03章關系數(shù)據(jù)庫_第1頁
課件-第03章關系數(shù)據(jù)庫_第2頁
課件-第03章關系數(shù)據(jù)庫_第3頁
課件-第03章關系數(shù)據(jù)庫_第4頁
課件-第03章關系數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章

關系數(shù)據(jù)庫

關系數(shù)據(jù)庫系統(tǒng)概述關系數(shù)據(jù)模型關系模型的完整性約束關系代數(shù)關系數(shù)據(jù)庫系統(tǒng)的三層模式結(jié)構(gòu)本演示文稿可能包含觀眾討論和即席反應。使用PowerPoint可以跟蹤演示時的即席反應,在幻燈片放映中,右鍵單擊鼠標請選擇“會議記錄”選擇“即席反應”選項卡必要時輸入即席反應單擊“確定”撤消此框此動作將自動在演示文稿末尾創(chuàng)建一張即席反應幻燈片,包括您的觀點。

關系數(shù)據(jù)庫系統(tǒng)概述關系數(shù)據(jù)庫的發(fā)展CODASYL于1962年發(fā)表的“信息代數(shù)”一文

E.F.Codd從1970年起發(fā)表了一系列的論文20世紀70年代末的實驗系統(tǒng)SystemR和Ingres從20世紀80年代逐步走向成熟關系數(shù)據(jù)模型概述關系數(shù)據(jù)結(jié)構(gòu)關系操作集合關系完整性約束關系數(shù)據(jù)結(jié)構(gòu)

關系數(shù)據(jù)結(jié)構(gòu)非常簡單,在關系數(shù)據(jù)模型中,現(xiàn)實世界中的實體及實體與實體之間的聯(lián)系均用關系來表示。從邏輯或用戶的觀點來看,關系就是二維表。

關系操作集合傳統(tǒng)的集合運算

并(Union)交(Intersection)差(Difference)廣義笛卡爾積(ExtendedCartesianProduct)

專門的關系運算選擇(Select)投影(Project)連接(Join)除(Divide)有關的數(shù)據(jù)操作查詢(Query)插入(Insert)刪除(Delete)修改(Update)

關系是以集合的方式操作的,即操作的對象是元組的集合,操作的結(jié)果也是元組的集合。這和非關系模型的操作結(jié)果是一條記錄有著重要區(qū)別。關系的操作能力可以用代數(shù)方式和邏輯方式來表示:代數(shù)方式是通過關系代數(shù)對關系的運算來表達查詢要求的方式。邏輯方式是通過關系演算、用謂詞表達對關系的查詢要求的方式?,F(xiàn)在關系數(shù)據(jù)庫已經(jīng)有了標準語言——SQL(StructuredQueryLanguage),它是一種介于關系代數(shù)和關系演算的語言。

綜上所述,又可以把關系數(shù)據(jù)語言分為三類:關系代數(shù)語言、關系演算語言以及具有關系代數(shù)和關系演算雙重特點的SQL語言。

關系完整性約束

在數(shù)據(jù)庫中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性。它包括兩方面的內(nèi)容:

與現(xiàn)實世界中應用需求的數(shù)據(jù)的相容性和正確性;數(shù)據(jù)庫內(nèi)數(shù)據(jù)之間的相容性和正確性。

在關系數(shù)據(jù)模型中一般將數(shù)據(jù)完整性分為三類

實體完整性參照完整性用戶定義完整性

關系數(shù)據(jù)模型關系模型的數(shù)據(jù)結(jié)構(gòu)和基本術語

關系的形式定義

對關系的限定(關系的性質(zhì))

關系模型的基本術語

參照關系和被參照關系:在關系數(shù)據(jù)庫中可以通過外部關鍵字使兩個關系關聯(lián),這種聯(lián)系通常是一對多(1:n)的,其中主(父)關系(1方)稱為被參照關系,從(子)關系(n方)被稱為參照關系。

關系屬性值域元組關系模式候選關鍵字主關鍵字主屬性非主屬性外部關鍵字基本概念(1)關系(Relation):關系就是二維表,一個關系對應一張二維表。(2)元組(Tuple):二維表中的行。(3)屬性(Attribute):二維表中的列。相當于記錄中的一個字段。每一個屬性對應一個名稱稱為屬性名。二維表中列的個數(shù)稱為稱為關系的元數(shù),一個二維表如果有n列,則稱為n元關系。(4)關鍵字(Key):可唯一標識元組的屬性或?qū)傩约?,也稱為關系鍵或主碼。(5)域(Domain):屬性的取值范圍,如年齡的域是(14~40),性別的域是(男,女)。(6)分量:每一行對應的列的屬性值,即元組中的一個屬性值也稱數(shù)據(jù)項。元組的每一個屬性值稱為元組的一個分量,n元關系的每一個元組有n個分量。(7)關系模式:二維表的結(jié)構(gòu)稱為關系模式。是對關系的描述,一般表示為:關系名(屬性1,屬性2,……屬性n),如:學生(學號,姓名,性別,年齡,系別)。(8)外部關鍵字(外碼):如果一個屬性集不是所在關系的關鍵字,但是是其他關系的關鍵字,則該屬性集稱為外部關鍵字,也稱外鍵。(9)主屬性:包含在任一候選關鍵字中的屬性稱為主屬性。超鍵、候選鍵、主鍵關系模型是怎么實現(xiàn)關系之間的聯(lián)系的?約定:(1)在關系模式的主鍵屬性下面畫一條直線,表示主鍵。(2)在關系模式的外鍵屬性下面畫一條波浪線,表示外鍵。關系的形式定義笛卡兒積定義:設D1,D2,…,Dn為任意集合,定義D1,D2,…,Dn的笛卡兒積為:其中每一個元素(d1,d2,…,dn)叫作一個n元組,簡稱元組,元組中每一個di叫作元組的一個分量。關系的形式定義:笛卡兒積D1×D2…×Dn的任意一個子集稱為D1,D2,…,Dn上的一個n元關系。例子:1301130313071311學生×籃球排球足球=項目學生項目1301籃球1301排球1301足球1303籃球1303排球1303足球1307籃球1307排球1307足球1311籃球1311排球1311足球需要說明兩點關系是元組的集合,集合(關系)中的元素(元組)是無序的;而元組不是分量di的集合,元組中的分量是有序的。例如,在關系中(a,b)≠(b,a),但在集合中{a,b}={b,a}。若一個關系的元組個數(shù)是無限的,則該關系稱為無限關系,否則稱為有限關系;在數(shù)據(jù)庫中只考慮有限關系。關系的性質(zhì)每一分量必須是不可分的最小數(shù)據(jù)項,即每個屬性都是不可再分解的,這是關系數(shù)據(jù)庫對關系的最基本的限定。列的個數(shù)和每列的數(shù)據(jù)類型是固定的,即每一列中的分量是同類型的數(shù)據(jù),來自同一個值域。不同的列可以出自同一個值域,每一列稱為屬性,每個屬性要給予不同的屬性名。列的順序是無關緊要的,即列的次序可以任意交換,但一定是整體交換,屬性名和屬性值必須作為整列同時交換。行的順序是無關緊要的,即行的次序可以任意交換。元組不可以重復,即在一個關系中任意兩個元組不能完全一樣。

關系模型的完整性約束

實體完整性規(guī)則參照完整性規(guī)則用戶定義完整性完整性約束的作用

實體完整性規(guī)則實體完整性是要保證關系中的每個元組都是可識別和唯一的。實體完整性規(guī)則的具體內(nèi)容是:關系中的主關鍵字的值不能為空或部分為空。即主關鍵字不能取空值。實體完整性是關系模型必須滿足的完整性約束條件,也稱作是關系的不變性。關系數(shù)據(jù)庫管理系統(tǒng)可以用主關鍵字實現(xiàn)實體完整性,這是由關系系統(tǒng)自動支持的。對實體完整性規(guī)則的幾點說明實體完整性規(guī)則是針對關系而言的,而關系則對應一個現(xiàn)實世界中的實體集。例如,倉庫關系對應現(xiàn)實世界中的倉庫實體集?,F(xiàn)實世界中的實體是可區(qū)分的,它們具有某種標識特征;相應地,關系中的元組也是可區(qū)分的,在關系中用主關鍵字做唯一性標識。主關鍵字中取空值,則意味著關系中的某個元組是不可標識的,即存在不可區(qū)分的實體,這與實體的定義也是矛盾的。參照完整性規(guī)則現(xiàn)實世界中的實體間存在著某種聯(lián)系,而在關系模型中實體是用關系描述的、實體之間的聯(lián)系也是用關系描述的,這樣就自然存在著關系和關系之間的參照或引用。參照完整性也是關系模型必須滿足的完整性約束條件,是關系的另一個不變性。通過一個例子來說明什么是參照完整性

倉庫號職工號工資

供應商號供應商名地址

職工供應商倉庫參照關系和被參照關系的定義

設F是關系R的一個屬性或?qū)傩越M,但不是關系R的關鍵字,另外有主關鍵字為K的關系S。如果關系R的屬性或?qū)傩越MF與關系S的主關鍵字K相對應,則稱F是關系R的外部關鍵字,并稱關系R是參照關系、S是被參照關系(或目標關系)。關系R和S可以是同一個關系。

例如:職員(職員號,工資,上級)參照完整性規(guī)則

如果屬性(或?qū)傩越M)F是關系R的外部關鍵字,它與關系S的主關鍵字K相對應,則對于關系R中每個元組在屬性(或?qū)傩越M)F上的值必須為:●或者取空值(F的每個屬性均為空值);●或者等于S中某個元組的主關鍵字的值。

不允許參照引用與當前關系相聯(lián)系的另一個關系中不存在的元組。

在關系系統(tǒng)中通過說明外部關鍵字來實現(xiàn)參照完整性,而說明外部關鍵字是通過說明引用的主關鍵字來實現(xiàn)的,也即通過說明外部關鍵字,關系系統(tǒng)則可以自動支持關系的參照完整性。

用戶定義完整性指用戶對某一具體數(shù)據(jù)制定的約束條件進行檢驗。一種與應用密切相關的數(shù)據(jù)完整性約束,如某個屬性的值必須唯一某個屬性的取值必須在某個范圍內(nèi)某些屬性值之間應該滿足一定的函數(shù)關系等類似以上的約束不是關系數(shù)據(jù)模型本身所要求的,而是為了滿足應用方面的語義要求而提出的在用戶定義完整性中最常見的是限定屬性的取值范圍,即對值域的約束,所以在用戶定義完整性中最常見的是域完整性約束。完整性約束的作用執(zhí)行插入操作時檢查完整性

執(zhí)行插入操作時需要分別檢查實體完整性規(guī)則、參照完整性規(guī)則和用戶定義完整性規(guī)則。

執(zhí)行刪除操作時檢查完整性

執(zhí)行刪除操作時一般只需要檢查參照完整性規(guī)則。

執(zhí)行更新操作時檢查完整性

執(zhí)行更新操作可以看作是先刪除舊的元組,然后再插入新的元組。所以執(zhí)行更新操作時的完整性檢查綜合了上述兩種情況。

從E-R模型到關系模型的轉(zhuǎn)換1、從E-R圖導出關系模型的基本原則:(1)E-R圖中每個實體類型都應轉(zhuǎn)換為一個關系模式,實體的屬性即關系模式的屬性。(2)E-R圖中聯(lián)系類型情況較復雜,需根據(jù)不同情況做不同的處理。下面著重討論聯(lián)系的轉(zhuǎn)換方法。兩實體集間1:n聯(lián)系

兩實體集間1:n聯(lián)系,可將“一方”實體的主關鍵字納入“n方”實體集對應的關系中作為“外部關鍵字”,同時把聯(lián)系的屬性也一并納入“n方”對應的關系中。

兩實體集間m:n聯(lián)系

對于兩實體集間m:n聯(lián)系,必須對“聯(lián)系”單獨建立一個關系,用來聯(lián)系雙方實體集。該關系的屬性中至少要包括被它所聯(lián)系的雙方實體集的“主關鍵字”,并且如果聯(lián)系有屬性,也要歸入這個關系中。兩實體集間的1:1的聯(lián)系

假設A實體集與B實體集是1:1的聯(lián)系,聯(lián)系的轉(zhuǎn)換有三種方法:①把A實體集的主關鍵字加入到B實體集對應的關系中,如果聯(lián)系有屬性也一并加入;②把B實體集的主關鍵字加入到A實體集對應的關系中,如果聯(lián)系有屬性也一并加入;③建立第三個關系,關系中包含兩個實體集的主關鍵字,如果聯(lián)系有屬性也一并加入。練習:關系模式的冗余和異常問題數(shù)據(jù)冗余:指同一數(shù)據(jù)在系統(tǒng)中多次重復出現(xiàn).

一個關系模式設計的不好,會出現(xiàn)像文件系統(tǒng)一樣的數(shù)據(jù)冗余、異常和不一致等問題。例:設有一個關系模式R(學號,課程號,課程名,教師名)學號課程號課程名教師名S2C4高數(shù)張三S4C4高數(shù)張三S6C4高數(shù)張三S6C2英語李四S4C2英語李四S8C6VB王五下表表示該關系模式的若干實例數(shù)據(jù)冗余操作異常(1)修改異常(2)插入異常(3)刪除異常由此可見,上例中的關系模式的設計不是一個合適的設計?!胺纸狻笔墙鉀Q冗余的主要辦法,也是規(guī)范化的一條原則。用下面兩個關系模式R1和R2代替RR1(學號,課程號)R2(課程號,課程名,教師名)注意:R分解成R1和R2兩個模式是否最佳分解,也不是絕對的函數(shù)依賴概念:是指關系中屬性之間取值的依賴情況

假定關系R(A,B,C)中,當A有一取值時,便唯一對應一個B值和C值,則稱B和C依賴于A,或稱A決定了B或C,簡記為A->B,A->C。關系中可能存在的不同函數(shù)依賴(1)完全函數(shù)依賴(2)部分函數(shù)依賴(3)傳遞函數(shù)依賴實例分析有學生關系模式學生(學號,課程號,姓名,性別,班級,班主任,課程名,學時數(shù),成績)范式與規(guī)范化1、第一范式(1NF):如果關系模式R的每個屬性都是不可分的原子值,那么稱R是第一范式的模式。2、第二范式(2NF):對于滿足1NF的關系,通過消除非主屬性對主關鍵字的部分函數(shù)依賴,使之達到2NF。3、第三范式(3NF):如果一個關系滿足2NF,并且除了主鍵以外的其他列都不傳遞依賴于主鍵列,則滿足第三范式(3NF)。分解關系的基本原則:

關系規(guī)范化實際上是關系逐步逐步分解的過程,通過分解使關系逐步達到較高范式。但是分解方法往往不是唯一的,不同的分解可能導致關系數(shù)據(jù)庫的性能有很大差別。應遵循的原則:(1)分解必須是無損的,即分解后不應丟失信息;(2)分解后的關系要相互獨立,避免對一個關系的修改波及另一個關系;(3)遵從“一事一地”原則,即一個關系只表達一個主題,如果涉及多個主題,就應該繼續(xù)分解關系。關系代數(shù)基本概念和符號傳統(tǒng)的集合運算專門的關系運算基本運算及變換

關系代數(shù)的基本概念關系代數(shù)的運算對象是關系,關系代數(shù)的運算結(jié)果也是關系。與一般的運算一樣,運算對象、運算符和運算結(jié)果也是關系代數(shù)的三個要素。關系代數(shù)的運算可以分為兩大類傳統(tǒng)的集合運算

專門的關系運算

關系代數(shù)的運算符可以分為四類:集合運算符

專門的關系運算符比較運算符邏輯運算符幾個概念和專門的符號元組的分量元組的連串元組中屬性的映像集元組的分量設有關系模式R(A1,A2,…,An)r∈R表示r是R的一個元組r.Ai或r[Ai]表示r這個元組中相應于屬性Ai的一個分量例如,假設R是倉庫關系,r=("WH1","北京",370)是倉庫關系的一個元組,則r∈R

,r.倉庫號或r[倉庫號]為"WH1"。元組的連串設R為m元關系,S為n元關系,并且

r=(r1,r2,…,rm)∈Rs=(s1,s2,…,sn)∈S則稱為元組的連串。這是一個(m+n)元組,前m個分量為R中的一個m元組,后n個分量為S中的一個n元組。

元組中屬性的映像集設有關系模式R(X,Y),其中X、Y可以是單個屬性,也可以是屬性集,定義當X取值為x時,x在R中的映象集為:

設有如右上表所示的訂購單關系,把它命名為R,并且進一步設X為屬性職工號,Y為屬性集{供應商號,訂購單號,訂購日期},則當X取值為E3時

{(S7,OR67,2002/06/23),(S4,OR79,2002/07/29),(S6,OR90,2002/07/13),(S3,OR91,2002/10/27)}Yx=?映像集的例子傳統(tǒng)的集合運算集合的并運算集合的交運算集合的差運算集合的廣義笛卡爾積運算集合的并、交、差運算示意集合的廣義笛卡爾積運算設R和S是兩個關系,如果R是m元關系、有k個元組,S是n元關系、有l(wèi)個元組,則廣義笛卡爾積R×S是一個m+n元關系、有k×l個元組。廣義笛卡兒積可以記作:專門的關系運算選擇運算(Select)投影運算(Project)連接運算(Join)除運算(Division)選擇運算

選擇運算是從指定的關系中選擇某些元組形成一個新的關系,被選擇的元組是用滿足某個邏輯條件來指定的。選擇運算表示為:

其中R是關系名,σ是選擇運算符,F(xiàn)是邏輯表達式。選擇運算舉例:σ職工號="E3"(訂購單)訂購單關系

從訂購單關系中選擇職工號為“E3”的元組構(gòu)成新的關系投影運算1)選擇指定的屬性,形成一個可能含有重復行的表格;2)刪除重復行,形成新的關系。

投影運算對指定的關系進行投影操作,根據(jù)該關系分兩步產(chǎn)生一個新關系:投影運算表示為

其中R是關系名,π是投影運算符,A是被投影的屬性或?qū)傩约M队斑\算舉例:訂購單關系

選取職工號和供應商號兩列構(gòu)成新的關系π職工號,供應商號(訂購單)選擇和投影運算舉例:

從訂購單關系中,選取出職工號為E3的所經(jīng)手的訂購單號和與之相關的供應商號。訂購單關系π供應商號,訂購單號(σ職工號="E3"(訂購單))連接運算

連接運算是兩個表之間的運算,這兩個表通常是具有一對多聯(lián)系的父子關系。所以連接過程一般是由參照關系的外部關鍵字和被參照關系的主關鍵字來控制的,這樣的屬性通常也稱為連接屬性。連接運算的概念連接運算是將滿足兩個表之間運算關系的記錄連接成一條記錄,所有這樣的記錄構(gòu)成新的表(連接運算的結(jié)果)。連接運算可以表示為:

這里Ai是R中的屬性,Bj是S中的屬性,θ是關系(比較)運算符,連接的結(jié)果是一個廣義笛卡兒乘積的子集,其中的元組滿足Ai和Bj間的θ關系。當θ為“=”時,稱為等值連接;θ為“<”時,稱為小于連接;θ為“>”時,稱為大于連接等等。自然連接在連接運算中最常用的連接是自然連接。自然連接運算一般表示為:

其中Ai和Bj要出自同一個值域,并且在實際應用中這兩個屬性往往具有相同的屬性名。自然連接做了三件事:計算廣義笛卡爾積R×S

;選擇滿足條件r[Ai]=s[Bj]的所有元組;去掉重復的屬性。自然連接的例子注意:為了使一個關系中的任一元組都參加自然連接,該元組的連接屬性(字段)值必須出現(xiàn)在另一個參加連接的關系中;連接陷阱問題;一般在實際應用中可以父無子,而不可以子無父,否則將破壞參照數(shù)據(jù)完整性。綜合運算實例

根據(jù)以上關系求出在上海工作的職工的工資值都有哪些?倉庫職工關系代數(shù)語句為:查詢過程示意選擇運算自然連接運算投影運算注意

自然連接和等值連接很相象,但它們不同,自然連接要去掉重復的屬性,而等值連接卻不需要去掉重復的屬性。除運算

設有關系R(X,Y)和S(Y),其中X、Y可以是單個屬性或?qū)傩约?,則除法運算定義為:如何理解除運算?理解除法運算R(X,Y)是被除關系S(Y)是除關系商關系由R中某些X屬性值構(gòu)成,其中的任一X值所對應的一組Y值都包含除關系S。除運算常用于至少…查詢或運算除運算的例子它的含義是:至少向WH1、WH3、WH5供貨的供應商號?;具\算及變換

在關系代數(shù)運算中集合的并運算、差運算、笛卡爾積運算以及選擇運算和投影運算是5種基本運算,另三種運算(集合的交運算以及連接運算和除運算)可以用5種基本運算來表達,引進它們并不增加語言的能力,但是可以簡化表達。兩個關系的交運算可以表示為R∩S=R-(R-S)兩個關系的自然連接運算可以表示為兩個關系的θ連接運算可以表示為兩個關系的除運算可以表示為關系數(shù)據(jù)庫系統(tǒng)的三層模式結(jié)構(gòu)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論