數(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頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、實驗七 數(shù)據(jù)庫完整性一、實驗?zāi)康?. 掌握主鍵約束、外鍵約束及及check約束的用法;2. 掌握默認(rèn)值約束的應(yīng)用;3. 了解規(guī)則、觸發(fā)器的使用。二、實驗環(huán)境已安裝SQL Server 2005 企業(yè)版的計算機;具有局域網(wǎng)環(huán)境,有固定IP;三、實驗學(xué)時2學(xué)時四、實驗要求1. 熟悉數(shù)據(jù)庫完整性相關(guān)概念及約束;2. 了解約束、默認(rèn)值及規(guī)則;3. 掌握觸發(fā)器的創(chuàng)建及修改;五、實驗內(nèi)容及步驟1、實體完整性:定義表的主碼。關(guān)系模型的實體完整性在CREATE TABLE 中用PRIMARY KEY定義。定義主碼的方法分為列級約束條件和表級約束條件。定義表STUDENT,將其中的SNO屬性定義為主碼定義表SC

2、,將其中的SNO、CNO定義為主碼2、參照完整性:定義表的外碼關(guān)系模型的參照完整性是在CREATE TABLE中用FOREIGN KEY 語句來定義,并用REFERENCES來指明外碼參照的是哪些表的主碼。【2-1】定義表SC,其中SNO參照STUDENT的主碼SNO,CNO參照表COURSE的主碼CNO3、用戶定義完整性【3-1】列值非空。在定義SC表時,SNO、CNO和GRADE屬性都不允許取空值。在不特別聲明的情況下,非碼屬性的值允許取空值的【3-2】列值唯一。建立部門表DEPT,要求部門名稱Dname取值唯一,部門編號Deptno屬性為主碼【3-3】CHECK短語指定列值應(yīng)該滿足的條件

3、。定義表Student,屬性Ssex的值只允許取“男”或“女”;定義表SC,屬性Grade的值定義在0100之間4、CONSTRAINT完整性約束子句:在定義表時利用約束命名子句對完整性約束條件命名,能夠靈活的增加或刪除一個完整性約束條件【4-1】定義表Student,要求學(xué)號在9000099999之間,姓名不能取空值,年齡小于30,性別只能“男”或“女”,要求全部用約束命名子句實現(xiàn)【4-2】修改表Student中的完整性限制,去掉對性別的限制,并將年齡的限制由小于30改為小于405、觸發(fā)器用SQL為表SC創(chuàng)建一觸發(fā)器Grade_SC_tri要求:當(dāng)插入一個記錄或修改成績時,確保此記錄的成績在

4、0到100之間。CREATE TABLE Student(SNO CHAR(9) PRIMARY KEY, SNAME CHAR(20) NOT NULL, SEX CHAR(2), SAGE SMALLINT, SDEPT CHAR(20);CREATE TABLE Course(CNO CHAR(4) PRIMARY KEY, CNAME CHAR(20) NOT NULL, TNO INT, CREDIT INT,);CREATE TABLE SC(SNO CHAR(9) NOT NULL, CNO CHAR(4) NOT NULL, GRADE SMALLINT, PRIMARY KE

5、Y(SNO,CNO);CREATE TABLE SC1(SNO CHAR(9) NOT NULL, CNO CHAR(4) NOT NULL, GRADE SMALLINT, PRIMARY KEY(SNO,CNO), FOREIGN KEY (SNO) REFERENCES Student(SNO), FOREIGN KEY (CNO) REFERENCES Course(CNO);CREATE TABLE SC2(SNO CHAR(9) NOT NULL, CNO CHAR(4) NOT NULL, GRADE SMALLINT NOT NULL, PRIMARY KEY(SNO,CNO)

6、, FOREIGN KEY (SNO) REFERENCES Student(SNO), FOREIGN KEY (CNO) REFERENCES Course(CNO);CREATE TABLE Dept(DEPTNO NUMERIC(2), DNAME CHAR(9) UNIQUE, LOCATION CHAR(10), PRIMARY KEY (DEPTNO);CREATE TABLE Student1(SNO CHAR(9) PRIMARY KEY, SNAME CHAR(8) NOT NULL, SEX CHAR(2) CHECK(SEX IN('男','女&

7、#39;), SAGE SMALLINT, SDEPT CHAR(20);CREATE TABLE SC3(SNO CHAR(9) NOT NULL, CNO CHAR(4) NOT NULL, GRADE SMALLINT CHECK (GRADE>=0 AND GRADE<=100), PRIMARY KEY(SNO,CNO), FOREIGN KEY (SNO) REFERENCES Student(SNO), FOREIGN KEY (CNO) REFERENCES Course(CNO);CREATE TABLE Student2(SNO CHAR(9), SNAME C

8、HAR(8) NOT NULL, SEX CHAR(2), SAGE SMALLINT, SDEPT CHAR(20), PRIMARY KEY(SNO), CHECK(SEX='女'OR SNAME NOT LIKE 'Ms.%');CREATE TABLE Student3(SNO NUMERIC(6) CONSTRAINT C1 CHECK(SNO BETWEEN 90000 AND 99999), SNAME CHAR(20) CONSTRAINT C2 NOT NULL, SAGE NUMERIC(3) CONSTRAINT C3 CHECK(SAGE

9、<30), SEX CHAR(2) CONSTRAINT C4 CHECK(SEX IN ('男','女'), CONSTRAINT StudentKey PRIMARY KEY(SNO);ALTER TABLE Student3 DROP CONSTRAINT C4;ALTER TABLE Student3 DROP CONSTRAINT C3;ALTER TABLE Student3 ADD CONSTRAINT C3 CHECK(SAGE<40);1. 創(chuàng)建觸發(fā)器:CREATE TRIGGER Grade_SC_tri ON SC FOR IN

10、SERT,UPDATE AS DECLARE grade_read tinyint SELECT grade_read=grade FROM INSERTED IF grade_read>=0 AND grade_read<=100 PRINT 操作完成! RETURN PRINT 成績超出0100之間,請重新輸入。 ROLLBACK TRANSACTIONGO 執(zhí)行SQL查詢 查看表SC下結(jié)點“觸發(fā)器”中出現(xiàn)觸發(fā)器名Grade_SC_tri。(2) 驗證觸發(fā)器的作用查看表SC數(shù)據(jù)。 在查詢窗口輸入如下語句:INSERT INTO SC VALUES(200215123,5,190)GOINSERT INTO SC VALUES(200215125,3,100)GOUPDATE SC SET GRADE=130 WHERE SNO=200215125 AND CNO=2GOUPDATE SC SET GRADE=60 WHERE SNO=200215125 AND CNO=2GO 執(zhí)行SQL語句。 查看表SC數(shù)據(jù)。 關(guān)閉表SC,操作完成。2、 修改觸發(fā)器(1) 打開觸發(fā)器屬性對話框。右擊表SC下結(jié)點“觸發(fā)器”中出現(xiàn)的觸發(fā)器名Grade_

溫馨提示

  • 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

提交評論