




已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1,SQL Server 2000 數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用 習(xí)題課,2,第一章 數(shù)據(jù)庫系統(tǒng)概述,4. 使用數(shù)據(jù)庫系統(tǒng)有什么優(yōu)點(diǎn)? 數(shù)據(jù)結(jié)構(gòu)化 數(shù)據(jù)的共享性高、冗余度低、易擴(kuò)充 數(shù)據(jù)獨(dú)立性高 DBMS對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一的管理和控制 6. 數(shù)據(jù)庫管理系統(tǒng)的主要功能有哪些? 數(shù)據(jù)定義功能 數(shù)據(jù)操縱功能 數(shù)據(jù)庫的事務(wù)管理和運(yùn)行管理 數(shù)據(jù)庫的建立和維護(hù)功能 其他功能 9. 簡(jiǎn)述數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu),這種結(jié)構(gòu)的優(yōu)點(diǎn)是什么? 模式(邏輯模式):模式結(jié)構(gòu)的中間層,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。,3, 外模式(用戶模式):是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。 內(nèi)模式(存儲(chǔ)模式):是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。 優(yōu)點(diǎn):三級(jí)模式是對(duì)數(shù)據(jù)的三個(gè)抽象級(jí)別,它把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的具體表示方式與存儲(chǔ)方式。 10. 什么是數(shù)據(jù)庫的邏輯獨(dú)立性、物理獨(dú)立性?為什么數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)與程序的獨(dú)立性? 邏輯獨(dú)立性:當(dāng)模式改變時(shí),由DBA對(duì)各個(gè)外模式/模式作相應(yīng)改變,從而保持外模式不變。因此依據(jù)外模式所編寫的應(yīng)用程序也可以不必改變。 物理獨(dú)立性:當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)改變時(shí),由數(shù)據(jù)庫管理員對(duì)模式/內(nèi)模式映像作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨(dú)立性。 原因:數(shù)據(jù)庫之所以能夠具有數(shù)據(jù)與程序的獨(dú)立性,是由兩級(jí)映射所提供的邏輯獨(dú)立性和物理獨(dú)立性所保證的。,4,11. 什么是數(shù)據(jù)模型?其作用和三要素是什么? 數(shù)據(jù)模型是對(duì)現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象。 作用:用來描述數(shù)據(jù)、組織數(shù)據(jù)和對(duì)數(shù)據(jù)進(jìn)行操作的。 三要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)的完整性約束條件,5,15學(xué)校中有若干系,每個(gè)系有若干班級(jí)和教研室,每個(gè)教研室有若干教員,每個(gè)班有若干學(xué)生,每個(gè)學(xué)生選修若干課程,每門課可由若干學(xué)生選修。請(qǐng)用E-R圖畫出此學(xué)校的概念模型。,6,16某工廠生產(chǎn)若干產(chǎn)品,每種產(chǎn)品由不同的零件組成,有的零件可用在不同的產(chǎn)品上。這些零件由不同的原材料制成,不同零件所用的材料可以相同。這些零件按所屬的不同產(chǎn)品分別放在倉庫中,原材料按照類別放在若干倉庫中。請(qǐng)用E-R圖畫出此工廠產(chǎn)品,零件,材料,倉庫的概念模型。 17.某百貨公司有若干個(gè)連鎖商店,每家商店經(jīng)營(yíng)若干商品,每家商店有若干職工,每個(gè)職工只能服務(wù)于一家商店。試描述該百貨公司的E-R圖。,7,第二章 關(guān)系數(shù)據(jù)庫,2. 解釋概念 關(guān)系(Relation)笛卡爾積D1D2Dn的有限子集叫作在域D1,D2,Dn上的n元關(guān)系,簡(jiǎn)稱關(guān)系。通常表示為 R(D1,D2,Dn) 其中,R為關(guān)系名,n為關(guān)系的目或度。 關(guān)系模式(Relation Schema)關(guān)系的描述稱為關(guān)系模式。它可以形式化地表示為 R(U,D,DOM,F) 其中,R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。 關(guān)系數(shù)據(jù)庫在一個(gè)給定的應(yīng)用領(lǐng)域,所有實(shí)體和實(shí)體之間聯(lián)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫。 主鍵(Primary key)若關(guān)系有多個(gè)候選鍵,則選定其中一個(gè)為主鍵。 候選鍵(Candidate key)若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選組。 外鍵(Foreign Key)設(shè)F是關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的鍵。如果F與關(guān)系S的主鍵相對(duì)應(yīng),則稱F是R的外鍵,并稱R為參照關(guān)系,S為被參照關(guān)系或目標(biāo)關(guān)系。 主屬性(Primary attribute)候選鍵的諸屬性稱為主屬性。,8,3. 關(guān)系的性質(zhì) 任意兩個(gè)元組不能完全相同 關(guān)系中元組的次序是不重要的,次序可以任意交換 關(guān)系中屬性的次序是不重要的,次序可以任意交換 同一列中的分量必須來自同一個(gè)域,是同一類型的數(shù)據(jù) 屬性必須有不同的名稱,不同的屬性可以出自相同的域 每一分量必須取原子量 6. 關(guān)系數(shù)據(jù)語言的特點(diǎn)和分類 特點(diǎn):具有完備的表達(dá)能力,是非過程化的集合操作語言,功能強(qiáng),能夠嵌入高級(jí)語言中使用。 分類:關(guān)系代數(shù)語言、關(guān)系演算語言(元組關(guān)系演算語言、域關(guān)系演算語言)、具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言,如SQL 7. 關(guān)系模型的完整性規(guī)則?在參照完整性中,為什么外鍵屬性的值也可以為空? 什么情況下才可以為空? 實(shí)體完整性規(guī)則:關(guān)系中的元組在主屬性上不能有空值; 參照完整性規(guī)則:外鍵得知不允許參照不存在的相應(yīng)表的主鍵的值;,9,用戶定義的完整性規(guī)則:用戶根據(jù)具體應(yīng)用的語義定義的完整性規(guī)則。 當(dāng)外鍵非本表的主鍵(屬性)時(shí)可以取空值。 實(shí)體完整性規(guī)則是指若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。 參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關(guān)系R的外鍵,它與基本關(guān)系S的主鍵相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值);或者等于S中某個(gè)元組的主鍵值。即屬性F本身不是主屬性,則可以取空值,否則不能取空值。 當(dāng)屬性F的每個(gè)屬性值為“不知道”或“不存在”的值時(shí),即外鍵可以為空。,10,第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL,1. SQL具有哪些特點(diǎn)? 綜合統(tǒng)一 高度非過程化 面向集合的操作方式 以同一種語法結(jié)構(gòu)提供多種使用方式 語言簡(jiǎn)潔,易學(xué)易用 3.建立chap2習(xí)題10的各表,包括主鍵和外鍵 CREATE TABLE S ( sno char(6) primary key, sname char(20), status int, city char(20) ); CREATE TABLE P ( pno char(6) primary key, pname char(20), color char(10), weight real real數(shù)值型數(shù)據(jù) );,11,CREATE TABLE J ( jno char(6) primary key, jname char(40), city char(20) ); CREATE TABLE SPJ ( sno char(6) foreign key references S(sno), /*sno為外鍵,參照S表中的sno*/ pno char(6) foreign key references P(pno), /*pno為外鍵,參照P表中的pno*/ jno char(6) foreign key references J(jno), /*jno為外鍵,參照J(rèn)表中的jno*/ qty int, primary key (sno, pno,jno) ); 4 .在第3題所建的表中完成下列操作 (1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO: select sno from SPJ where jno=J1; (2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO: select sno from SPJ where jno=J1 and pno=P1;,12,(3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO: select sno from SPJ where jno=J1 and pno in (select pno from P where color=紅); 或: select sno from SPJ,P where SPJ.pno=P.pno and SPJ.jno=J1 and P.color=紅; (4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO: (此解使用不相關(guān)子查詢方法) select jno from J where jno not in (select jno from SPJ,S,P where SPJ.sno=S.sno and SPJ.pno=P.pno and city=天津 and color=紅);,13,(5)求至少使用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào) JNO: 將查詢分為兩步 A、查詢S1供應(yīng)商供應(yīng)的零件號(hào) SELECT DIST PNO FROM SPJ WHERE SNO=S1 結(jié)果是(P1,P2) B、查詢哪一個(gè)工程既使用P1零件又使用P2零件。 SELECT JNO FROM SPJ WHERE PNO=P1 AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=P2) 5. 建立market 庫中的3個(gè)表 CREATE TABLE customers ( customerid char(6) primary key, cname char(20), city char(10); CREATE TABLE goods ( goodid char(6) primary key, gname char(20), price real, provider char(20), stocks int, status int );,14,CREATE TABLE orders ( orderid char(6) primary key, goodid char(6) foreign key references goods(goodid), customerid char(6) foreign key references customers(customerid), quantity int, ordersum real, date datetime ); 6.針對(duì)market數(shù)據(jù)庫完成下列操作 (1) 查找所有上??蛻舻男畔?Select * from customers where city=shanghai; (2) 查找所有商品的名稱、庫存量、價(jià)格及折價(jià)25%后的價(jià)格,并使用別名discount標(biāo)識(shí)折扣價(jià)。結(jié)果按價(jià)格由低到高排序 Select gname,stocks,price,price*0.75 Discount from goods order by price;,15,(3) 查找商品名中包含computer的商品編號(hào)、名稱及價(jià)格 Select goodid,gname,price from goods where gname like %computer%; (4) 查找?guī)齑媪看笥?00小于500的商品名稱、庫存量和單價(jià) Select stocks,gname,price from goods where stocks between 100 and 500; (5)查找2007.7.1至2007.12.31期間,訂貨金額大于30000的所有訂單的客戶姓名、商品名稱、單價(jià)、訂貨數(shù)量和訂貨金額 Select cname,gname,price,quantity,ordersum from customers,goods,orders where customers. customerid=orders. customerid and goods. goodid=orders. goodid and date between2007-7-1and 2007-12-31 and ordersum30000; (6) 查找訂單編號(hào)、商品編號(hào)、和客戶編號(hào),要求按日期對(duì)訂單進(jìn)行分組,并只顯示訂貨數(shù)量超過200的訂單信息,16,Select customerid, goodid, orderid from orders where quantity200 order by date; 不是group by (7) 查找所有北京客戶的訂單信息,要求用不相關(guān)子查詢 Select * from orders where customerid in (Select customerid from customers where city=beijing); (8) 查找不是天津客戶的訂單信息 Select * from orders where customerid not in (Select customerid from customers where city=tianjing );,17,(9) 查找所有西安客戶的相關(guān)信息以及他們的訂單情況 Select customers.customerid,cname,city, orderid, goodid,quantity,ordersum,date from customers LEFT OUTER JOIN orders on customers.customerid= orders.customerid where city=xian; (10) 將所有的庫存量大于500的商品價(jià)格下調(diào)15% Update goods Set price=price*0.85 where stocks500; (11) 將庫存量為0的所有商品記錄刪除 Delete from goods where stocks=0; (12) 將新數(shù)據(jù)插入到商品表中 Insert into goods values(T10056,計(jì)算機(jī),5300,清華同方, 20,0);,18,10. 是否所有視圖都可以更新?為什么? 并不是所有視圖都可以更新,因?yàn)橛行┮晥D的更新操作不能唯一地、有意義地轉(zhuǎn)換為對(duì)相應(yīng)基本表的更新。 11. 在market庫上完成下列操作 (1)建立北京客戶訂單視圖 CREATE VIEW Bj_orders(orderid,gname,quantity,customerid, cname) AS select orderid,gname,quantity,orders.customerid,cname from orders,customers,goods where customers. customerid=orders.customerid and goods. goodid=orders.goodid and city=beijing (2) 針對(duì)(1)中的視圖查詢客戶張三的所有訂單信息 Select * from Bj_orders where Cname=張三,19,8. 什么是基本表、視圖,兩者有什么區(qū)別? 基本表:本身獨(dú)立存在的表,一個(gè)關(guān)系對(duì)應(yīng)一個(gè)基本表; 視圖:從一個(gè)或多個(gè)基本表或視圖導(dǎo)出的表,是關(guān)系數(shù)據(jù)庫系統(tǒng)為用戶提供從不同角度觀察和使用數(shù)據(jù)庫中數(shù)據(jù)的一種機(jī)制。 區(qū)別:視圖是虛表,在數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖所對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中。 12. 在market數(shù)據(jù)庫上完成下列操作 (1) 允許用戶李明對(duì)orders表進(jìn)行插入、刪除操作 GRANT insert,delete on orders to 李明 (2) 將查詢goods表和修改單價(jià)的權(quán)限授予用戶李四 GRANT update(price),select on goods to 李四 (3) 將查詢goods表的權(quán)限授予用戶王二,并允許他將此權(quán)限授予他人 GRANT select on goods to 王二 with grant option 15在嵌入式SQL中是如何協(xié)調(diào)SQL的集合處理方式和主語言的單記錄處理方式的? 游標(biāo)是用于協(xié)調(diào)SQL語言的集合處理方式和主語言的單記錄處理方式。 SQL語言與主語言具有不同的數(shù)據(jù)處理方式。SQL語言是面向集合的,一條SQL語句原則上可以產(chǎn)生或處理多條記錄。 主語言是面向記錄的,一組主變量一次只能存放一條記錄。所以僅使用主變量并不能完全滿足SQL語句向應(yīng)用程序輸出數(shù)據(jù)的要求,為此嵌入式SQL引入了游標(biāo)的概念,用游標(biāo)來協(xié)調(diào)這兩種不同的處理方式。,20,第四章 存儲(chǔ)過程和觸發(fā)器,1. 什么是存儲(chǔ)過程?為什么要使用存儲(chǔ)過程? 存儲(chǔ)過程是指經(jīng)過預(yù)先編譯的SQL語句的集合,可以以一種可執(zhí)行的形式永久地存儲(chǔ)在數(shù)據(jù)庫中。 運(yùn)行速度快 模塊化編程 減少網(wǎng)絡(luò)通信量 保證系統(tǒng)的安全性 2. 簡(jiǎn)述觸發(fā)器的概念和作用。 觸發(fā)器是在滿足某個(gè)特定條件時(shí)自動(dòng)觸發(fā)執(zhí)行的專用存儲(chǔ)過程 用于保證表中的數(shù)據(jù)遵循數(shù)據(jù)庫設(shè)計(jì)者確定的規(guī)則和約束 5.針對(duì)第3章習(xí)題5中的數(shù)據(jù)庫,完成以下要求。 (1)Create procedure shanghai As select * from customers where city=shanghai (2)Create procedure Goods GoodID char(20) As select * from goods where GoodID = GoodID,21,(3)Create procedure goodsum cnum char(6),snum real output As select snum =sum(ordersum) from orders where customerid= cnum (4)Create procedure insertGoods Goodnum char(6), Goodname char(20), Gprice real, Gprovider char(20),Gstocks int, Gstate int As insert into goods values(Goodnum, Goodname, Gprice, Gprovider, Gstocks, Gstate ) (5)Create trigger Customer_delete on customers after delete As delete from orders where customerid in (select customerid from deleted) (6)Create trigger Goods_insert on goods after insert As if (select status from goods,inserted where goods. goodid=inserted. goodsid)=1 begin print 不能插入 Rollback transaction end,22,(7)Create trigger Orders_insert on orders after insert As update goods set stocks=stocks - (select quantity from inserted) where goodid in (select goodid from inserted) (8)Create trigger Goods_update on orders after update As if update(date) begin print 不能更新日期 Rollback transaction End (9)Create trigger Orders_insert on orders after insert As if( select count(*) from goods, inserted where goods.goodid=inserted.goodid)=0 begin print 該商品不存在 Rollback transaction end,23,第五章 關(guān)系數(shù)據(jù)庫規(guī)范化理論,1. 解釋下列術(shù)語的含義 函數(shù)依賴設(shè)R(U)是屬性集U上的關(guān)系模式。X和Y是U 的子集。若對(duì)于R(U)上的任意一個(gè)可能的關(guān)系r,如果r中不可能存在兩個(gè)元組,它們?cè)赬上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)決定Y或Y函數(shù)依賴于X,記作XY。 其中X稱為這個(gè)函數(shù)依賴的決定屬性組,或稱為決定因素,Y稱作被決定因素。 若Y不函數(shù)依賴于X,記作XY。 若XY,且YX,則記作XY。 非平凡函數(shù)依賴設(shè)R(U)是屬性集上的一個(gè)關(guān)系模式。X和Y是U的子集。如果XY,且YX,則稱XY是非平凡函數(shù)依賴。 平凡函數(shù)依賴若XY,且YX,則稱XY是平凡函數(shù)依賴。 完全函數(shù)依賴在R(U)中,如果XY,并且對(duì)于X的任何一個(gè)真子集X,都有XY,則稱Y對(duì)X完全函數(shù)依賴,記作:XY。 部分函數(shù)依賴若XY,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X部分函數(shù)依賴,記作XY。 傳遞函數(shù)依賴在R(U)中,如果XY,YZ,YX,YX,則稱Z傳遞函數(shù)依賴于X,記作XY。 候選鍵設(shè)K是關(guān)系模式RU,F(xiàn)中的屬性或?qū)傩越M合,若KU,則K為R的候選鍵。 主鍵若候選鍵多于一個(gè),則選定其中的一個(gè)為主鍵。 全鍵整個(gè)屬性組是鍵。 外鍵關(guān)系模式R中屬性或?qū)傩越MX并非R的鍵,但X是另一個(gè)關(guān)系模式的鍵,則稱X是R的外部鍵,簡(jiǎn)稱外鍵。,24,1NF如果關(guān)系模式R的所有屬性都是不可分的數(shù)據(jù)項(xiàng),則稱R屬于第一范式,記作R1NF。 2NF若關(guān)系模式R1NF,且每個(gè)非主屬性都完全函數(shù)依賴于R的鍵,則稱R2NF。 3NF關(guān)系模式RU,F(xiàn)中若不存在這樣的鍵X,屬性組Y及非主屬性Z(ZY),使得XY,YZ成立,且YX ,則稱R3NF。 4NF關(guān)系模式RU,F(xiàn)1NF,如果對(duì)于R的每一個(gè)非平凡多值依賴XY(YX),X都含有鍵,則稱RU,F(xiàn)4NF。 多值依賴設(shè)R(U)是屬性集U上的一個(gè)關(guān)系模式。X,Y,Z是U的子集,且Z=U-X-Y。關(guān)系模式R(U)中多值依賴XY成立,當(dāng)且僅當(dāng)R(U)的任一關(guān)系r,給定的一對(duì)(x,z)值,有一組Y的值,這組值僅僅決定于x值而與z值無關(guān)。 4. R(商店編號(hào),商品編號(hào),數(shù)量,部門編號(hào),負(fù)責(zé)人) 規(guī)定:每個(gè)商店的每種商品只在一個(gè)部門銷售; 每個(gè)商店的每個(gè)部門只有一個(gè)負(fù)責(zé)人; 每個(gè)商店的每種商品只有一個(gè)庫存數(shù)量 (1)寫出關(guān)系R的基本函數(shù)依賴: (商店編號(hào),商品編號(hào)) 庫存數(shù)量 (商店編號(hào),商品編號(hào)) 部門編號(hào) (商店編號(hào),部門編號(hào)) 負(fù)責(zé)人,25,(2)關(guān)系模式R達(dá)到了第幾范式?為什么? 因?yàn)殛P(guān)系R的鍵是(商店編號(hào),商品編號(hào)) 而所有非主屬性均對(duì)鍵是完全函數(shù)依賴。 但存在傳遞函數(shù)依賴: (商店編號(hào),商品編號(hào)) (商店編號(hào),部門編號(hào)) (商店編號(hào),部門編號(hào)) 負(fù)責(zé)人 (商店編號(hào),商品編號(hào)) 負(fù)責(zé)人 (3) 如果R不屬于3NF,將R分解成3NF模式集 R1(商店編號(hào),商品編號(hào),部門編號(hào),數(shù)量) R2(商店編號(hào),部門編號(hào),負(fù)責(zé)人) 5如表5.15所示給出的關(guān)系SC為第幾范式?是否存在插入、刪除異常?若存在,則說明是在什么情況下發(fā)生?發(fā)生的原因是什么?將它分解為高一級(jí)范式,分解后的關(guān)系能否解決操作異常問題。,26,表5.15 關(guān)系SC如下,其中:SNO為學(xué)號(hào),CNO為課程號(hào),CTITLE為課程名,INAME為教師名,ILOCA為教師地址,GRADE為成績(jī)。 解:(1)SC為1NF。 (2)它存在插入、刪除異常操作。當(dāng)增設(shè)一門新課程時(shí),因還沒有學(xué)生選修,則缺少關(guān)鍵字的一部分SNO而不能執(zhí)行插入操作;當(dāng)所有學(xué)生退選某門課程而進(jìn)行刪除操作時(shí),會(huì)將不合法刪除的課程信息刪除。 (3)SC關(guān)系中存在插入和刪除操作異常的原因在于,該關(guān)系的候選關(guān)鍵字為(SNO,CNO),其中僅有非屬性GRADE完全函數(shù)依賴于(SNO,CNO),其他非主屬性CTITLE、INAME、ILOCA都只函數(shù)依賴于CNO,即它們與(SNO,CNO)為部分函數(shù)依賴關(guān)系.,27,分解后的關(guān)系模式如下: SG 如下: CI如下: 分解后的兩個(gè)關(guān)系子模式都為2NF(實(shí)際上,SG是3NF,它無傳遞依賴)。 解決了先前的插入、刪除異常操作。當(dāng)增設(shè)一門新課程時(shí),可將數(shù)據(jù)插入到CI表中;當(dāng)所有學(xué)生退選某門課程時(shí),只需刪除SG表中的有關(guān)記錄,而該課程的有關(guān)信息仍保留在CI表中。分解2NF后的CI關(guān)系中仍存在插入、刪除操作異常。若有一個(gè)新教師報(bào)到,需將其有關(guān)數(shù)據(jù)插入操作;當(dāng)取消某門課程而刪除CI表中的一條記錄時(shí),會(huì)將不該刪除的教師的有關(guān)信息刪除。CI表中出現(xiàn)操作異常的原因是該關(guān)系中存在非主屬性對(duì)候選關(guān)鍵字的傳遞函數(shù)依賴: CNOINAME,INAME CNO,INAMEILOCA,所以CNOILOCA(函數(shù)傳遞依賴,CI不是3NF) (4)將CI進(jìn)一步分解為如下所示的Course和Inst兩個(gè)關(guān)系,可以解決上述操作異常。,28,COURSE INST,29,11. 建立訂貨系統(tǒng)的數(shù)據(jù)庫關(guān)系模式 顧客信息(顧客號(hào),地址,賒購限額,余額,折扣) 訂單信息(訂單號(hào),顧客號(hào),收貨地址,訂貨日期) 訂單細(xì)則(訂單號(hào),細(xì)則編號(hào),貨物號(hào),訂貨數(shù)量,未發(fā)貨量) 貨物信息(貨物號(hào),制造廠商,最低存貨量,貨物描述) 制造廠商信息(廠商編號(hào),名稱) 貨物存貨信息(貨物號(hào),廠商編號(hào),實(shí)際存貨量),30,第六章 數(shù)據(jù)庫設(shè)計(jì),2. 簡(jiǎn)述數(shù)據(jù)庫設(shè)計(jì)過程中各個(gè)階段的設(shè)計(jì)任務(wù) (1)需求分析階段 進(jìn)行數(shù)據(jù)庫設(shè)計(jì)首先必須準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。需求分析是整個(gè)設(shè)計(jì)過程的基礎(chǔ),是最困難、最費(fèi)時(shí)的一步。作為地基的需求分析是否做得充分與準(zhǔn)確,決定了在其上構(gòu)建數(shù)據(jù)庫的速度與質(zhì)量。需求分析做得不好,甚至?xí)?dǎo)致整個(gè)數(shù)據(jù)庫設(shè)計(jì)返工重做。 (2)概念結(jié)構(gòu)設(shè)計(jì)階段 概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,它通過對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。 (3)邏輯結(jié)構(gòu)設(shè)計(jì)階段 邏輯結(jié)構(gòu)設(shè)計(jì)是將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化。 (4)數(shù)據(jù)庫物理設(shè)計(jì)階段 數(shù)據(jù)庫物理設(shè)計(jì)是為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。 (5)數(shù)據(jù)庫實(shí)施階段 在數(shù)據(jù)庫實(shí)施階段,設(shè)計(jì)人員運(yùn)用DBMS提供的數(shù)據(jù)語言及其宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。 (6)數(shù)據(jù)庫運(yùn)行和維
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石油化工副產(chǎn)品綜合利用考核試卷
- 期貨市場(chǎng)國際化發(fā)展考核試卷
- 篷布帳篷在公園露營(yíng)地的安全標(biāo)準(zhǔn)與舒適度考核試卷
- 2025企業(yè)合作借款合同樣本參考
- 2025辦公用品買賣合同書范文
- 2025橋梁工程監(jiān)理委托合同范本
- 2025大陸居民赴澳旅游合同范本
- 2025年全面機(jī)械租賃合同模板
- 湖北省“黃鄂鄂”2025年高三下學(xué)期4月聯(lián)考?xì)v史
- 機(jī)關(guān)食堂承包合同常用范例二零二五年
- 酒館加盟代理協(xié)議書
- 加油站站長(zhǎng)試題及答案
- 環(huán)境突發(fā)事件應(yīng)急預(yù)案演練記錄
- 外研版(三起)(2024)三年級(jí)下冊(cè)英語Unit 3 單元測(cè)試卷(含答案)
- 人教版中職數(shù)學(xué)拓展模塊一:6.2復(fù)數(shù)的運(yùn)算課件(共24張課件)
- 2024年同等學(xué)力申碩《英語》試題真題及答案
- 公共資源交易知識(shí)培訓(xùn)
- 《危機(jī)管理案例》課件
- DB13-T5687-2023負(fù)壓封閉引流術(shù)護(hù)理規(guī)范
- 海綿材料項(xiàng)目可行性研究報(bào)告
- 2025年四川成都地鐵運(yùn)營(yíng)有限公司招聘筆試參考題庫含答案解析
評(píng)論
0/150
提交評(píng)論