




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、大連海事大學數(shù)據(jù)庫原理課程實驗大綱實驗名稱: 實驗七 完整性 實驗學時: 2 適用專業(yè): 實驗環(huán)境: 執(zhí) 筆 者: 編寫日期: 1 實驗目的(1) 掌握實體完整性、參照完整性和用戶自定義完整性約束的創(chuàng)建方法。(2) 掌握完整性約束的運行檢查機制。(3) 掌握參照完整性的級聯(lián)刪除和修改方法。(4) 掌握正確設計關系模式完整性約束的方法。2 實驗內容2.1 掌握實體完整性約束的創(chuàng)建和使用方法(1) 創(chuàng)建表時定義由一個屬性組成的主鍵(給約束命名)。(2) 創(chuàng)建表時定義由兩個或兩個以上屬性組成的主鍵(給約束命名)。(3) 刪除以上兩個主鍵約束。(4) 利用alter table語句定義上述兩個主鍵。2
2、.2 掌握參照完整性約束的創(chuàng)建和使用方法(5) 創(chuàng)建表時定義一個列級參照完整性約束(給約束命名)。(6) 創(chuàng)建表時定義一個表級的由兩個屬性組成的參照完整性約束(給約束命名)。(7) 設計數(shù)據(jù)更新語句檢查參照完整性約束是否起作用。(8) 刪除上述完整性約束。(9) 利用alter table 建立上述參照完整性約束,并且規(guī)定update/delete時的動作。(10) 設計數(shù)據(jù)更新語句檢查參照完整性約束及其相應的動作是否起作用。2.3 掌握用戶自定完整性約束的創(chuàng)建和使用方法(11) 定義一個檢查約束,檢查其值在某個取值范圍內,并設計相應的更新語句檢查該約束是否起作用?(12) 定義一個檢查其值符
3、合某個匹配模式的檢查約束(使用like),并設計相應的更新語句檢查該約束是否起作用?(13) 定義一個檢查其值符合某個正則表達式的檢查約束(使用similar to),并設計相應的更新語句檢查該約束是否起作用?(14) 定義一個unique約束,并設計相應的更新語句檢查該約束是否起作用?(15) 定義一個default約束,設計一個insert語句檢查該約束是否起作用。3 實驗要求(1) 深入復習教材第五章數(shù)據(jù)庫完整性約束內容。(2) 根據(jù)書上的例子,針對tpch數(shù)據(jù)庫模式設計各種完整性約束,每種類型完整性約束至少要設計一個,描述清楚完整性約束要求,設計和運行觸發(fā)完整性約束檢查的數(shù)據(jù)更新語句,
4、并截圖相應的實驗結果,每幅截圖并要有較為詳細的描述。也可以按照附1所列示例做實驗。(3) 實驗步驟和實驗總結中要詳細描述實驗過程中出現(xiàn)的問題、原因和解決方法。(4) 思考題:完整性約束的違約處理有哪幾種方式?4 實驗步驟4.1 掌握實體完整性約束的創(chuàng)建和使用方法(1) 創(chuàng)建表時定義由一個屬性組成的主鍵(給約束命名)。創(chuàng)建零件表part時定義主鍵。/create table part(partkey integer,mfgr char(100),type char(25),size integer,name char(55),container char(10),brand char(10),r
5、etailprice real,comment varchar(23),constraint party primary key(partkey)如圖:partkey為主鍵(2) 創(chuàng)建表時定義由兩個或兩個以上屬性組成的主鍵(給約束命名)。創(chuàng)建零件供應關系表partsupp時定義主鍵。create table partsupp(partkey integer,availqty integer,suppkey integer,comment varchar(199),supplycost real,constraint partsuppy primary key(partkey,suppkey);
6、如圖給點約束名partsuppy.partkey,和suppkey為主鍵(3) 刪除以上兩個主鍵約束。刪除零件表和零件供應關系表的主鍵。alter table partsuppdrop constraint partsuppy;利用約束名suppkey刪除約束alter table partdrop constraint party利用約束名party刪除約束(4) 利用alter table語句定義上述兩個主鍵。利用alter table增加part和partsupp表的主鍵。alter table partadd constraint party primary key (partkey)
7、;利用alter給表part增加約束partyalter table partsuppadd constraint partsuppy primary key(partkey,suppkey)利用alter給表增加約束partsuppy主鍵partkey,suppkey4.2 掌握參照完整性約束的創(chuàng)建和使用方法(5) 創(chuàng)建表時定義一個列級參照完整性約束(給約束命名)。定義partsupp表的列級參照完整性約束。create table partsupp(partkey integer,availqty integer,suppkey integer,comment varchar(199),s
8、upplycost real not null,constraint partsuppy primary key(partkey,suppkey);(6) 創(chuàng)建表時定義一個表級的由兩個屬性組成的參照完整性約束(給約束命名)。定義lineitem的參照完整性約束。 create table lineitem (orderkey integer,partkey integer,suppkey integer,linenumber integer,quantity real,extendedprice real,discount real,tax real,returnflag char(1),li
9、nestatus char(1),shipdate date,commitdate date,receiptdate date,shipinstruct char(25),shipmode char(10),comment varchar(44)constraint linety primary key(orderkey,partkey,suppkey),constraint fpart foreign key(partkey) references part,constraint fpartsupp foreign key(suppkey,partkey) references partsu
10、pp);創(chuàng)建表時創(chuàng)建外碼fpart和fpartsupp分別為part和partsupp表的主碼(7) 設計數(shù)據(jù)更新語句檢查參照完整性約束是否起作用。設計insert、delete和update語句檢查上述完整性約束是否有效。insert into lineitem (orderkey,partkey,suppkey)values(4,2,4)insert into part(partkey,size,retailprice)values(1,34,2)(8) 刪除上述完整性約束。刪除partsupp和lineitem的參照完整性約束。alter table lineitem drop cons
11、traint fpartalter table lineitemdrop constraint fpartsuppalter table partsuppdrop constraint fpart(9) 利用alter table 建立上述參照完整性約束,并且規(guī)定update/delete時的動作。利用alter table 建立上述兩個完整性約束,并規(guī)定update和delete級聯(lián)修改和刪除。alter table partsupp add constraint fpart foreign key(partkey) references part on delete cascade on
12、update no actionalter table lineitemadd constraint fps1 foreign key(partkey) references part on delete cascade on update no actionalter table lineitem onadd constraint fps2 foreign key(suppkey,partkey) references partsupp on delete no action on update no action(10) 設計數(shù)據(jù)更新語句檢查參照完整性約束及其相應的動作是否起作用。刪除零件
13、供應記錄partsupp 或者是 lineitem表中的記錄,檢查約束是否起作用?刪除主鍵時因為主碼約束無法刪除4.3 掌握用戶自定完整性約束的創(chuàng)建和使用方法(11) 定義一個檢查約束,檢查其值在某個取值范圍內,并設計相應的更新語句檢查該約束是否起作用?定義一個檢查lineitem中的折扣只能在0和1之間的check約束,并設計insert語句檢查約束是否起作用。alter table lineitem add constraint che1 check (discount between 0 and 1 )(12) 定義一個檢查其值符合某個匹配模式的檢查約束(使用like),并設計相應的更新
14、語句檢查該約束是否起作用?定義一個check約束,檢查國家表nation中的國家名稱的最后一個字必須為“國”字。設計一個insert語句檢查該約束是否有效。alter table nationadd constraint namek check(name like%國);(13) 定義一個檢查其值符合某個正則表達式的檢查約束(使用similar to),并設計相應的更新語句檢查該約束是否起作用?定義一個check約束,檢查customer表中的phone必須由12位數(shù)字組成。并設計一個insert語句或者是update語句檢查該約束是否有效。alter table customeradd co
15、nstraint che3 check( phone similar to(_);不為12位語句已終止(14) 定義一個unique約束,并設計相應的更新語句檢查該約束是否起作用?在nation表的name字段上定義一個unique約束,不允許國家名重復。設計一個insert語句檢查約束是否有效。alter table nationadd constraint che4 unique(name);(15) 定義一個default約束,設計一個insert語句檢查該約束是否起作用。在supplier表中的nationkey字段上定義一個default約束,默認取值為中國的國家代碼。并設計一個in
16、sert語句檢查該約束是否有效。alter table supplieradd constraint che5 default 1 for nationkeyinsert into supplier(suppkey,name)values(1,張鋒)默認為1,如圖示思考題:沖突處理有四種解決方式:no action,restrict,set null,cascadeno action指在違約時直接回滾不作任何處理,restrict在違約時拒絕執(zhí)行命令,set 在違約時把違約項設為空值,cascade當當刪除或修改參照關系中某元組的主碼值時,被參照關系中,那些外部碼具有該值的元組也將被刪除或修改,以保證參照完整性。5 總結與體
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 就業(yè)協(xié)議書泉州師院
- 農戶葡萄收購協(xié)議書
- 解除勞務用工協(xié)議書
- 子女處理房產(chǎn)協(xié)議書
- 小區(qū)綠化施工協(xié)議書
- 生病學生上學協(xié)議書
- 寄養(yǎng)撫養(yǎng)協(xié)議書范本
- 信息公司增資協(xié)議書
- 生產(chǎn)加工終止協(xié)議書
- 煤礦勞務分包協(xié)議書
- 自動扶梯與自動人行道2023版自行檢測規(guī)則
- 反假貨幣《外幣美元》知識考試題庫(含答案)
- 重慶大轟炸優(yōu)秀課件
- 專題01《水銀花開的夜晚》 高考語文二輪復習
- 外貿客戶報價單中英文格式模板
- 中藥學中藥性味歸經(jīng)功效歸納
- 專業(yè)技術人員職務聘任書
- GB/T 13911-1992金屬鍍覆和化學處理表示方法
- GB/T 13452.2-2008色漆和清漆漆膜厚度的測定
- 【泉州南音傳承與發(fā)展研究(論文7200字)】
- 《馬克思主義發(fā)展史》第五章 馬克思列寧主義在蘇聯(lián)的發(fā)展及曲折
評論
0/150
提交評論