SQL Server 數(shù)據(jù)庫技術(shù)課件2_第1頁
SQL Server 數(shù)據(jù)庫技術(shù)課件2_第2頁
SQL Server 數(shù)據(jù)庫技術(shù)課件2_第3頁
SQL Server 數(shù)據(jù)庫技術(shù)課件2_第4頁
SQL Server 數(shù)據(jù)庫技術(shù)課件2_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2.2E-R模型到關(guān)系模型的轉(zhuǎn)換

2.3關(guān)系模型的三類完整性約束

2.4案例1:活期儲蓄管理系統(tǒng)數(shù)據(jù)庫設(shè)計1/12/20232.1關(guān)系數(shù)據(jù)模型2.1.1關(guān)系模型的結(jié)構(gòu)關(guān)系(relationship)

關(guān)系是滿足一定條件的二維表。表中的一行稱為關(guān)系的一個元組,用來存儲事物的一個實例;表中的一列稱為關(guān)系的一個屬性,用來描述實體的某一特征。表是由一組相關(guān)實體組成的集合。所以,表和實體集這兩個詞常??梢越惶媸褂谩?/p>

表2-1給出了實體集、關(guān)系、表等一系列術(shù)語之間的對照關(guān)系

概念模型中關(guān)系理論中關(guān)系數(shù)據(jù)庫中某些軟件中實體集(Entityset)關(guān)系(relation)表(Table)表(或數(shù)據(jù)庫文件)實體(Entity)元組(Tuple)行(Row)記錄(Recode)屬性(Attribute)屬性(Attribute)列(Col)字段(Field)主碼(Primarykey)主碼(Primarykey)關(guān)鍵字(Primarykey)關(guān)鍵字(Primarykey)1/12/2023

關(guān)系是一個行與列交叉的二維表,每一列(屬性)的所有數(shù)據(jù)都是同一種數(shù)據(jù)類型的,每一列都有惟一的列名,列在表中的順序無關(guān)緊要;表中的任意兩行(元組)不能相同,行在表中的順序也無關(guān)緊要。

表2-2以圖書借閱系統(tǒng)為例給出了一個表的實例編號書名作者出版社出版日期定價F12.245計算機文化基礎(chǔ)劉凌志青山2002.521.80F33.33數(shù)據(jù)結(jié)構(gòu)實用教程王云曉藍天2002.522.00G22.12VisualBasic實用教程梁曉峰碧水2003.1028.00G11.22Java程序設(shè)計實用教程張大海碧水2004.720.80F23.55數(shù)據(jù)結(jié)構(gòu)(C語言版)馬志剛青山2004.724.50G11.11C語言程序設(shè)計張大海藍天2004.826.30G12.08C語言程序設(shè)計梁曉峰青山2004.1022.00G12.09C語言程序設(shè)計梁曉峰青山2004.1022.001/12/2023

關(guān)系的特點:關(guān)系的每一行定義實體集的一個實體,每一列定義實體的一個屬性。每一行必須有一個主碼,主碼是一個屬性組(可以是一個屬性),它能惟一的標(biāo)識一個實體。每一列表示一個屬性,且列名不能重復(fù)。列的每個值必須與對應(yīng)屬性的類型相同。列有取值范圍,稱為域。列是不可分割的最小數(shù)據(jù)項。行、列的順序?qū)τ脩魺o關(guān)緊要。1/12/2023關(guān)系中的術(shù)語候選碼(CandidateKey)

若關(guān)系中的某一屬性組(或單個屬性)的值能惟一的標(biāo)識一個元組,則稱該屬性組(或?qū)傩裕楹蜻x碼。選擇一個候選碼作為關(guān)系的主碼。主屬性(PrimeAttribute)和非主屬性關(guān)系中包含在任何一個候選碼中的屬性稱為主屬性。不包含在任何一個候選碼中的屬性稱為非主屬性。1/12/20232.1.2關(guān)系代數(shù)

關(guān)系代數(shù)是一種抽象的查詢語言。從數(shù)學(xué)的角度來看,關(guān)系是一個集合,關(guān)系的元組是集合的元素。因此,關(guān)系代數(shù)包括集合運算:交、并、差、乘,還有關(guān)系專有的運算:選擇、投影、連接、除。并(union)

設(shè)R和S是兩個關(guān)系,它們的并運算是將兩個關(guān)系中的所有元組構(gòu)成一個新關(guān)系,即由屬于R或?qū)儆赟的元素組成,該關(guān)系用R∪S,也可以記做R+S。

1/12/2023

【例2-1】有在職職工和離退修職工兩個表,若需要所有職工的表,可以利用并運算實現(xiàn)。表2-3在職職工表R

工號姓名性別狀態(tài)106001張春來男1103026馬宏明男1105008王紅女1表2-4離退修職工表S

工號姓名性別狀態(tài)106008李建新男0104012王紅女01/12/2023工號姓名性別狀態(tài)106001張春來男1103026馬宏明男1105008王紅女1106008李建新男0104012王紅女0表2-4新關(guān)系R∪S1/12/2023差(difference)

設(shè)R和S是兩個關(guān)系,R和S的差運算是由屬于R而不屬于S的所有元組構(gòu)成新關(guān)系,也就是從關(guān)系R中減去關(guān)系S中的元組,該關(guān)系用R-S。差運算也要求兩個關(guān)系對應(yīng)屬性的性質(zhì)(屬性名、屬性的域等)必須一致。

【例2-2】某商店有本店商品表,接到不合格商品表后,需要將本店中的不合格商品去掉??梢岳貌钸\算實現(xiàn)。品牌名稱廠家106001奶粉天南103026奶粉地北205008白糖南山204045白糖北山302034食鹽西山表2-6本店商品表R

1/12/2023表2-7

不合格商品表S

品牌名稱廠家103026奶粉地北4023037

火腿

西山

204045白糖北山表2-8新關(guān)系R-S

品牌名稱廠家106001奶粉天南205008白糖南山302034食鹽西山1/12/2023交(intersection)

設(shè)R和S是兩個關(guān)系,R和S的交運算是由屬于R并且也屬于S的所有元組構(gòu)成的一個新關(guān)系,即由關(guān)系R和關(guān)系S中公共的元組構(gòu)成的新關(guān)系。該關(guān)系用R∩S。交運算也要求兩個關(guān)系對應(yīng)屬性的性質(zhì)(屬性名、屬性的域等)必須一致。

【例2-3】在【例2-2】中,找出本店內(nèi)不合格的商品,可以用交運算實現(xiàn)。品牌名稱廠家103026奶粉地北204045白糖北山表2-9新關(guān)系R∩S

1/12/2023

乘(product)

設(shè)R和S是兩個關(guān)系,R和S的乘運算是一個新關(guān)系(記為R×S)結(jié)果是兩個關(guān)系中所有元組按一定規(guī)則組合而成。關(guān)系R有m個屬性,關(guān)系S有n個屬性,則R×S由(m+n)個屬性;R有i個元組,S有j個元組,則R×S有(i×j)個元組;每個元組的前m個屬性是R的一個元組,后n個屬性是S的一個元組。

說明:兩個關(guān)系(集合)的乘運算,在集合論中也稱為廣義笛卡爾積。所以關(guān)系的乘運算也稱為廣義笛卡爾積。

【例2-4】現(xiàn)有學(xué)生表、必修課程表,每個學(xué)生必須學(xué)習(xí)所有必修課程,要求形成選課表??梢岳藐P(guān)系乘運算實現(xiàn)。

1/12/2023學(xué)號姓名0406001王曉立0406002張大衛(wèi)表2-10學(xué)生表R

表2-11

必修課程表S

課程號課程名學(xué)分C601數(shù)據(jù)庫3C602操作系統(tǒng)2C603數(shù)學(xué)51/12/2023表2-12新關(guān)系R×S

學(xué)號姓名課程號課程名學(xué)分0406001王曉立C601數(shù)據(jù)庫

30406001王曉立C602操作系統(tǒng)20406001王曉立C603

數(shù)學(xué)5

0406002張大衛(wèi)C601

數(shù)據(jù)庫

30406002張大衛(wèi)C602操作系統(tǒng)

20406002張大衛(wèi)C603

數(shù)學(xué)51/12/2023投影(projection)

關(guān)系R的投影運算是從R中選擇某些屬性的所有值組成的新關(guān)系。換言之,投影運算的結(jié)果是一個表的垂直方向的子集。關(guān)系R的投影運算記為:πA(R)。其中,A為R的一組屬性列。投影的結(jié)果將消除重復(fù)的元組。

【例2-5】在表2-5所示的關(guān)系R∪S中①列出所有職工的名單,可以通過投影運算實現(xiàn);

姓名張春來馬宏明王紅李建新π姓名(R∪S)

1/12/2023②列出職工姓名及其任職狀態(tài),可以通過投影運算實現(xiàn)。姓名狀態(tài)張春來1馬宏明1王紅1李建新0王紅0π姓名,狀態(tài)(R∪S)π姓名(R∪S)可記為π2(R∪S),π姓名,狀態(tài)(R∪S)可記為π2,4(R∪S)。注意:π姓名(R∪S)運算的結(jié)果將同名的兩個“王紅”去掉重復(fù),只保留一個。

1/12/2023選擇(selection)

關(guān)系R的選擇運算是從關(guān)系R中選擇滿足指定條件(用F表示)的元組構(gòu)成的新關(guān)系。換言之,選擇運算的結(jié)果是一個表的水平方向的子集。關(guān)系R的選擇運算記為:σF(R)。其中,F(xiàn)是包括屬性名的邏輯表達式,運算符有算術(shù)比較運算符:<,≤,>,≥,=,≠,和邏輯運算符:┐,∨,∧(非、或、與)。

【例2-6】

①在表2-11中求出學(xué)分大于等于3的課程信息。表2-13σ學(xué)分≥3(R∪S)課程號課程名學(xué)分C601數(shù)據(jù)庫3C603數(shù)學(xué)51/12/2023②在表2-4中求所有在職男職工名單。

σ性別=‘男’∧狀態(tài)=1(R∪S)工號姓名性別狀態(tài)106001張春來男1103026馬宏明男11/12/2023連接(join)

關(guān)系R與關(guān)系S的連接運算是從兩個關(guān)系的廣義笛卡爾積中選取屬性間滿足一定條件的元組形成一個新關(guān)系。記作:

其中:A為包含R中的屬性的表達式

B為包含S中屬性的表達式

θ通常為關(guān)系比較符。等值連接(equaljoin)θ為“=”的連接運算稱為等值連接。關(guān)系R和S的等值連接是從R和S的廣義笛卡爾積R×S中選取A與B等值的那些元組,形成的關(guān)系。S

RAθB1/12/2023自然連接(naturaljoin)

關(guān)系R和S的自然連接是一種特殊的等值連接,它要求關(guān)系R和S中進行比較的分量必須是相同的屬性組的一種連接,并且在結(jié)果中把重復(fù)的屬性列去掉(只保留一個)。自然連接記為:一般的連接運算是從行的角度進行的。但自然連接還需要取消重復(fù)列,所以自然連接是同時從行和列的角度進行運算。自然連接是構(gòu)造新關(guān)系的有效方法,是關(guān)系代數(shù)中常用的一種運算,在關(guān)系數(shù)據(jù)庫理論中起著重要作用。利用投影、選擇和自然連接運算可以任意地分解和構(gòu)造關(guān)系。一般地,自然連接使用在R和S有公共屬性的情況中。如果兩個關(guān)系沒有公共屬性,那么它們的自然連接就轉(zhuǎn)化為廣義笛卡爾積。S

R

1/12/2023

【例2-7】設(shè)圖書借閱信息如表2-15所示,圖書信息如表2-16所示,求各讀者借閱圖書的信息。

讀者編號圖書編號借期還期2004060002F12.2452004-6-292002060328F23.552004-5-262004-12-222004160426G11.112004-10-212002060328G12.082004-8-262002060328G11.222004-9-012004160426G12.102004-9-142004-11-08表2-15借閱信息表borrowinf1/12/2023編號書名作者出版社出版日期定價F12.245計算機文化基礎(chǔ)劉凌志青山2002.521.80F33.33數(shù)據(jù)結(jié)構(gòu)實用教程王云曉藍天2002.522.00G22.12VisualBasic實用教程梁曉峰碧水2003.1028.00G11.22Java程序設(shè)計實用教程張大海碧水2004.720.80F23.55數(shù)據(jù)結(jié)構(gòu)(C語言版)馬志剛青山2004.724.50G11.11C語言程序設(shè)計張大海藍天2004.826.30G12.08C語言程序設(shè)計梁曉峰青山2004.1022.00G12.10C語言程序設(shè)計梁曉峰青山2004.1022.00表2-16圖書信息表books1/12/2023求各讀者借閱圖書的信息,可通過等值連接實現(xiàn):

borrowinf

books

圖書編號=編號

結(jié)果為:讀者編號圖書編號借期還期書名作者出版社出版日期定價2004060002F12.2452004-6-29計算機文化基礎(chǔ)劉凌志青山2002.521.802002060328F23.552004-5-262004-12-22數(shù)據(jù)結(jié)構(gòu)(C語言版)馬志剛青山2004.728.002004160426G11.112004-10-21C語言程序設(shè)計張大海藍天2004.82002060328G12.082004-8-26C語言程序設(shè)計梁曉峰青山2004.102002060328G11.222004-9-01Java程序設(shè)計實用教程張大海碧水2004.720.802004160426G12.102004-9-142004-11-08C語言程序設(shè)計梁曉峰青山2004.1022.001/12/2023除(divide)

設(shè)關(guān)系R的屬性可以分成互不相交的兩組,用X、Y表示(X∩Y為空集,X∪Y為R的全部屬性),則關(guān)系R可以表示為:R(X,Y)。

設(shè)R(X,Y)和S(Y,Z)是兩個關(guān)系,其中R中的Y和S中的Y可以有不同的屬性名,但必須出自相同的域。R與S的除運算是一個新關(guān)系P(X)(記為R÷S),它的屬性為屬性組X,設(shè)S在Y上的投影πy(S)有j個元組,R÷S由所有滿足以下條件的元素構(gòu)成:(1)R中存在若干元組構(gòu)成的子集R’(也是關(guān)系),該關(guān)系在Y上的投影πy(R’)包含關(guān)系S在Y上的投影πy(S);(2)πx(R’)中(去掉重復(fù)后)只有一個元素x,則x是R÷S中的一個元素(元組)。1/12/2023

【例2-8】已知學(xué)生選課表R,要找出同時選修課號為C601、C605兩門課程的學(xué)生的學(xué)號。指定的課程號和對應(yīng)課程名構(gòu)成的關(guān)系記為S,則該問題可以用R÷S表示。學(xué)號課程號0406001C6010406001C6020406001C6050406002C6020406002C6050406002C6030406003C6050406003C601選課表

R課程號課程名C601數(shù)據(jù)庫C605軟件工程S學(xué)號

04060010406003R÷S1/12/20232.1.3關(guān)系代數(shù)與數(shù)據(jù)查詢

在關(guān)系代數(shù)中,關(guān)系代數(shù)運算經(jīng)過有限次復(fù)合而成的式子稱為關(guān)系代數(shù)表達式,它的運算結(jié)果仍然是一個關(guān)系??梢杂藐P(guān)系代數(shù)表達式表示對數(shù)據(jù)庫的查詢和更新操作。

【例2-9】以圖書借閱信息表(表2-15)、圖書信息表(表2-16)為例,完成下列任務(wù):(1)每本圖書的編號和書名;(2)每位讀者的編號和所借圖書的書名;(3)2004年8月以前的圖書未還情況讀者編號和所借圖書書名;(4)編號為:2002060328的讀者所借圖書信息。1/12/2023每本圖書的編號和書名;解:R1=π編號,書名(books)編號書名F12.245計算機文化基礎(chǔ)F33.33數(shù)據(jù)結(jié)構(gòu)實用教程G22.12VisualBasic實用教程G11.22Java程序設(shè)計實用教程F23.55數(shù)據(jù)結(jié)構(gòu)(C語言版)G11.11C語言程序設(shè)計G12.08C語言程序設(shè)計G12.10C語言程序設(shè)計R11/12/2023(2)每位讀者的編號和所借圖書的書名;解:R2=π讀者編號,書名(borrowinfbooks)

圖書編號=編號

讀者編號書名2004060002計算機文化基礎(chǔ)2002060328數(shù)據(jù)結(jié)構(gòu)(C語言版)2004160426C語言程序設(shè)計2002060328C語言程序設(shè)計2002060328Java程序設(shè)計實用教程2004160426C語言程序設(shè)計R21/12/2023(3)2004年8月以前的圖書未還情況讀者編號和所借圖書書名;解:

R3=π讀者編號,書名(σ借期≤’2004-08-01’∧還期=NULL(borrowinf)books)

圖書編號=編號讀者編號書名2004060002計算機文化基礎(chǔ)R31/12/2023(4)編號為2002060328的讀者所借圖書信息。解:R4=σ讀者編號=’2002060328’

(borrowinfbooks)

圖書編號=編號

讀者編號圖書編號借期還期書名作者出版社出版日期定價2002060328F23.552004-5-262004-12-22數(shù)據(jù)結(jié)構(gòu)(C語言版)馬志剛青山2004.728.002002060328G12.082004-8-26C語言程序設(shè)計梁曉峰青山2004.102002060328G11.222004-9-01Java程序設(shè)計實用教程張大海碧水2004.720.80R41/12/20232.2E-R模型到關(guān)系模型的轉(zhuǎn)換

E-R模型可以向現(xiàn)有的各種數(shù)據(jù)庫模型轉(zhuǎn)換,對不同的數(shù)據(jù)庫模型有不同的轉(zhuǎn)換規(guī)則。這里只討論E-R模型向關(guān)系模型的轉(zhuǎn)換方法。E-R模型向關(guān)系模型轉(zhuǎn)換的規(guī)則是:實體一個實體類型轉(zhuǎn)換成一個關(guān)系模式。實體的屬性就是關(guān)系的屬性,實體的碼就是關(guān)系的碼。

E-R模型向關(guān)系模型轉(zhuǎn)換時,除了將實體轉(zhuǎn)換為關(guān)系外,還要考慮如何將實體之間的聯(lián)系正確的轉(zhuǎn)換為關(guān)系。一對一聯(lián)系

(1:1)一般是將聯(lián)系與任意一端實體所對應(yīng)的關(guān)系模式合并,需要在該關(guān)系模式的屬性中加入另一個實體的碼和聯(lián)系本身的屬性。1/12/2023

【例2-10】實體部門(編號,名稱)與實體經(jīng)理(工號,姓名)之間的任職聯(lián)系是1:1聯(lián)系。E-R模型如圖2-1所示。將其轉(zhuǎn)換為關(guān)系模型。11部門經(jīng)理任職名稱工號編號任職日期姓名11部門(編號,名稱)經(jīng)理(工號,姓名,編號,任職日期)圖2-11/12/2023一對多(1:n)聯(lián)系一般是將該聯(lián)系與n端實體所對應(yīng)的關(guān)系模式合并。合并時需要在n端實體的關(guān)系模式的屬性中加入1端實體的碼和聯(lián)系本身的屬性。

【例2-11】

將授課系統(tǒng)中的E-R模型轉(zhuǎn)換為關(guān)系模型。教師課程參考書講授1n11/12/2023該E-R模型中有3個實體和1個多元聯(lián)系??梢杂脙煞N方法轉(zhuǎn)換為關(guān)系模型:1)

將聯(lián)系轉(zhuǎn)換為一個單獨的關(guān)系。則該E-R模型對應(yīng)的關(guān)系模型包含4個關(guān)系模式:

課程(課號,課名,學(xué)分)教師(工號,姓名,職稱)參考書(書號,書名)講授(工號,課號,書號)

2)由于該例中的聯(lián)系是一對多聯(lián)系,所以可以將聯(lián)系合并到實體對應(yīng)的關(guān)系中。課程(課號,課名,學(xué)分)教師(工號,姓名,職稱,課號)參考書(書號,書名,課號)1/12/2023多對多(m:n)聯(lián)系將聯(lián)系轉(zhuǎn)換成一個關(guān)系模式。與該聯(lián)系相連的各實體的碼及聯(lián)系本身的屬性轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實體碼的組合。

【例2-12】將學(xué)生選課系統(tǒng)的E-R模型轉(zhuǎn)換為關(guān)系模型。

課程號課程名學(xué)分課程學(xué)號所在系年齡姓名性別學(xué)生成績選課mn學(xué)生(學(xué)號,姓名,性別,年齡,所在系)選課(學(xué)號,課程號,成績)

課程(課程號,課程名,學(xué)分)1/12/2023【例2-13】將圖書借閱系統(tǒng)的E-R模型轉(zhuǎn)換為關(guān)系模型。

讀者編號姓名讀者類型已借數(shù)量圖書出版日期出版社編號書名定價借期還期借閱mn讀者(編號,姓名,讀者類型,已借數(shù)量)借閱(讀者編號,圖書編號,借期,還期)圖書(編號,書名,出版社,出版日期,定價)1/12/20232.3關(guān)系模型的三類完整性約束

2.3.1實體完整性

實體完整性規(guī)則:

若屬性A是關(guān)系R的主屬性,則A不能取空值。2.3.2參照完整性規(guī)則

外碼和參照關(guān)系設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的主碼(或候選碼)。如果F與基本關(guān)系S的主碼KS相對應(yīng),則稱F是基本關(guān)系R的外碼,并稱基本關(guān)系R為參照關(guān)系,稱基本關(guān)系S為被參照關(guān)系。例如:在授課系統(tǒng)的關(guān)系模型中:課程(課號,課名,學(xué)分)課號關(guān)系課程的主碼教師(工號,姓名,職稱,課號)課號是關(guān)系教師的外碼參考書(書號,書名,課號)關(guān)系教師是參照關(guān)系,關(guān)系課程是被參照關(guān)系。1/12/2023參照完整性規(guī)則

參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼KS相對應(yīng),則對于R中的每個元組在F上的值必須滿足:或者取空值(F的每個屬性均為空值),或者等于S中某個元組的主碼值。

例如,在授課系統(tǒng)的關(guān)系模型中,關(guān)系教師中的外碼“課號”只能是下面兩類值:(1)空值。表示還未給該教師安排課。(2)非空值,但此值必須為被參照關(guān)系課程中某一門課程的“課號”。

注意:在實際應(yīng)用中,外碼不一定與對應(yīng)的主碼同名。在關(guān)系數(shù)據(jù)庫中,表與表之間的聯(lián)系是通過公共屬性實現(xiàn)的。這個公共屬性往往是一個表的主碼,同時是另一個表的外碼。1/12/20232.3.3用戶定義的完整性用戶定義的完整性就是針對某一具體要求來定義的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如,某個屬性必須取惟一值;某些屬性之間應(yīng)滿足一定的函數(shù)關(guān)系;某個屬性的取值范圍在0—400之間等。關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,以便系統(tǒng)用統(tǒng)一的方法處理它們,而不需要由應(yīng)用程序來承擔(dān)這一功能。所以,用戶定義的完整性通常是定義屬性取值的約束,即對屬性的值域的約束。對屬性的值域的約束也稱為域完整性規(guī)則是指對關(guān)系中屬性取值的正確性限制。包括數(shù)據(jù)類型、精度、取值范圍、是否允許空值等。1/12/20232.3.4完整性規(guī)則檢查為了維護數(shù)據(jù)庫中數(shù)據(jù)的完整性,在對關(guān)系數(shù)據(jù)庫執(zhí)行插入、刪除和修改操作時,就要檢查是否滿足以上三類完整性規(guī)則。當(dāng)執(zhí)行插入操作時

首先檢查實體完整性規(guī)則,插入行的主碼屬性上的值,是否已經(jīng)存在。若不存在,可以執(zhí)行插入操作;否則不可以執(zhí)行插入操作。

再檢查參照完整性規(guī)則,如果是向被參照關(guān)系插入,不需要考慮參照完整性規(guī)則;如果是向參照關(guān)系插入,插入行在外碼屬性上的值是否已經(jīng)在相應(yīng)被參照關(guān)系的主碼屬性值中存在。若存在,可以執(zhí)行插入操作;否則不可以執(zhí)行插入操作,或?qū)⒉迦胄性谕獯a屬性上的值改為空值后再執(zhí)行插入操作(假定該外碼允許取空值)。

最后檢查用戶定義完整性規(guī)則,檢查被插入的關(guān)系中是否定義了用戶定義完整性規(guī)則,如果定義了,檢查插入行在相應(yīng)屬性上的值是否符合用戶定義完整性規(guī)則。若符合,可以執(zhí)行插入操作;否則不可以執(zhí)行插入操作。1/12/2023當(dāng)執(zhí)行刪除操作時

一般只需要檢查參照完整性規(guī)則。如果是刪除被參照關(guān)系中的行,則應(yīng)檢查被刪除行在主碼屬性上的值是否正在被相應(yīng)的參照關(guān)系的外碼引用,若沒被引用,可以執(zhí)行刪除操作,若正在被引用,有三種可能的做法:不可以執(zhí)行刪除操作(拒絕刪除),或?qū)⒄贞P(guān)系中相應(yīng)行在外碼屬性上的值改為空值后再執(zhí)行刪除操作(空值刪除),或?qū)⒄贞P(guān)系中相應(yīng)行一起刪除(級聯(lián)刪除)。當(dāng)執(zhí)行修改操作時因為修改操作可看成先執(zhí)行刪除操作,再執(zhí)行插入操作,因此是上述兩種情況的綜合。1/12/20232.4案例1:活期儲蓄管理系統(tǒng)數(shù)據(jù)庫設(shè)計

問題的提出

在活期儲蓄管理過程中,“儲戶”通過“存取款”與“儲蓄所”發(fā)生業(yè)務(wù)聯(lián)系。試設(shè)計活期儲蓄管理系統(tǒng)數(shù)據(jù)庫的概念模型、關(guān)系模型并確定約束。

系統(tǒng)需求分析通過對數(shù)據(jù)庫用戶(儲蓄所業(yè)務(wù)人員)的調(diào)查,對用戶的需求進行分析得知:儲戶是指在某個儲蓄所開戶的人。該儲蓄所稱為儲戶的開戶行。一個儲蓄所可以有多個儲戶,每個儲戶有惟一的賬號。每個儲戶可以在多個允許發(fā)生業(yè)務(wù)的儲蓄所進行存取款。儲戶按信譽分為“一般”和“良好”兩種。信譽“一般”的儲戶不允許透支。信譽“良好”的儲戶可以透支,但不能超過5萬元。儲戶按狀態(tài)分為:“正?!焙汀皰焓А眱煞N(分別用0、1表示)。狀態(tài)為“正?!钡膬粼试S存取款,狀態(tài)為“掛失”的儲戶不允許存取款。1/12/2023儲戶的信息有:賬號、姓名、密碼、電話、地址、信譽、存款額、開戶行編號、開戶日期、狀態(tài)等。儲蓄所的信息有:編號、名稱、電話、地址、負(fù)責(zé)人儲戶進行存取款時應(yīng)該提供賬號、存取標(biāo)志(1:表示存款,0:表示取款)、存取金額、存取日期等信息,儲蓄所首先要對儲戶的身份進行驗證,對合法的儲戶再根據(jù)“信譽”判斷是否可以發(fā)生此次業(yè)務(wù)。若發(fā)生業(yè)務(wù)則記錄相應(yīng)信息,修改儲戶的存款額。概念模型設(shè)計根據(jù)需求分析得知,此系統(tǒng)涉及“儲戶”和“儲蓄所”兩個實體集。兩個實體

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論