第10章 DataBase_第1頁
第10章 DataBase_第2頁
第10章 DataBase_第3頁
第10章 DataBase_第4頁
第10章 DataBase_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、An Introduction to Database System,數(shù)據(jù)庫系統(tǒng)概論 An Introduction to Database System 第十章 數(shù)據(jù)庫完整性,An Introduction to Database System,第十章 數(shù)據(jù)庫完整性,什么是數(shù)據(jù)庫的完整性 數(shù)據(jù)的正確性和相容性 防止不合語義的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫。 例: 學(xué)生的年齡必須是整數(shù),取值范圍為14-29; 學(xué)生的性別只能是男或女; 學(xué)生的學(xué)號(hào)一定是唯一的; 學(xué)生所在的系必須是學(xué)校開設(shè)的系; 完整性:否真實(shí)地反映現(xiàn)實(shí)世界,An Introduction to Database System,完整性控制機(jī)制,

2、1.完整性約束條件定義機(jī)制 2.完整性檢查機(jī)制 3.違約反應(yīng),An Introduction to Database System,完整性約束條件定義,完整性約束條件:數(shù)據(jù)模型的組成部分約束數(shù)據(jù)庫中數(shù)據(jù)的語義 DBMS應(yīng)提供定義數(shù)據(jù)庫完整性約束條件,并把它們作為模式的一部分存入數(shù)據(jù)庫中,An Introduction to Database System,完整性控制機(jī)制,檢查用戶發(fā)出的操作請求是否違背了完整性約束條件,An Introduction to Database System,違約反應(yīng),如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動(dòng)作來保證數(shù)據(jù)的完整性。,An In

3、troduction to Database System,第十章 數(shù)據(jù)庫完整性,10.1 完整性約束條件 10.2 完整性控制 10.3 Oracle的完整性 10.4 小結(jié),An Introduction to Database System,完整性約束條件(續(xù)),完整性約束條件作用的對象 列:對屬性的取值類型、范圍、精度等的約束條件 元組:對元組中各個(gè)屬性列間的聯(lián)系的約束 關(guān)系:對若干元組間、關(guān)系集合上以及關(guān)系之間的聯(lián)系的約束,An Introduction to Database System,完整性約束條件(續(xù)),靜態(tài) 對靜態(tài)對象的約束是反映數(shù)據(jù)庫狀態(tài)合理性的約束 動(dòng)態(tài) 對動(dòng)態(tài)對象的

4、約束是反映數(shù)據(jù)庫狀態(tài)變遷的約束,An Introduction to Database System,完整性約束條件分類,六類完整性約束條件 靜態(tài)列級約束 靜態(tài)元組約束 靜態(tài)關(guān)系約束 動(dòng)態(tài)列級約束 動(dòng)態(tài)元組約束 動(dòng)態(tài)關(guān)系約束,An Introduction to Database System,完整性約束條件(續(xù)),對象狀態(tài) 動(dòng)態(tài)列級約束 動(dòng)態(tài)元組約束 動(dòng)態(tài)關(guān)系約束 動(dòng)態(tài) 靜態(tài)列級約束 靜態(tài)元組約束 靜態(tài)關(guān)系約束 靜態(tài) 列 元組 關(guān)系 對象粒度,An Introduction to Database System,完整性約束條件(續(xù)),1. 靜態(tài)列級約束 靜態(tài)列級約束:對的取值域的說明 最常見

5、、最簡單、最容易實(shí)現(xiàn)的一類完整性約束,An Introduction to Database System,完整性約束條件(續(xù)),五類靜態(tài)列級約束 1) 數(shù)據(jù)類型約束:數(shù)據(jù)的類型、長度、單位、精度等 例:學(xué)生姓名的數(shù)據(jù)類型為字符型,長度為8 2) 對數(shù)據(jù)格式的約束 例: 學(xué)號(hào):前兩位表示入學(xué)年份,后四位為順序編號(hào) 日期:YY.MM.DD。,An Introduction to Database System,完整性約束條件(續(xù)),3) 取值范圍或取值集合的約束 例:規(guī)定成績的取值范圍為0-100 年齡的取值范圍為14-29 性別的取值集合為男,女 4) 對空值的約束 空值:未定義或未知的值 空

6、值:與零值和空格不同 有的列允許空值,有的則不允許,如成績可為空值 5) 其他約束 例:關(guān)于列的排序說明,組合列等,An Introduction to Database System,完整性約束條件(續(xù)),2. 靜態(tài)元組約束 規(guī)定元組的各個(gè)列之間的約束關(guān)系 例:訂貨關(guān)系中發(fā)貨量=700元 靜態(tài)元組約束只局限在元組上,An Introduction to Database System,完整性約束條件(續(xù)),3. 靜態(tài)關(guān)系約束 關(guān)系的各個(gè)元組之間或若干關(guān)系之間存在的各種聯(lián)系或約束 常見靜態(tài)關(guān)系約束: 1) 實(shí)體完整性約束 2) 參照完整性約束 3) 函數(shù)依賴約束 4) 統(tǒng)計(jì)約束,An Intr

7、oduction to Database System,函數(shù)依賴約束,關(guān)系字段間存在的函數(shù)依賴 例:在學(xué)生課程教師關(guān)系 SJT(S,J,T) 的函數(shù)依賴: ( (S,J)T, TJ ) 主碼: (S, J),An Introduction to Database System,統(tǒng)計(jì)約束,定義某個(gè)字段值一個(gè)關(guān)系多個(gè)元組的統(tǒng)計(jì)值之間的約束關(guān)系 例:職工平均工資的2倍=部門經(jīng)理的工資= 職工平均工資的5倍 職工平均工資值: 統(tǒng)計(jì)值,An Introduction to Database System,完整性約束條件(續(xù)),4. 動(dòng)態(tài)列級約束 動(dòng)態(tài)列級約束是修改列定義或列值時(shí)應(yīng)滿足的約束條件,An I

8、ntroduction to Database System,完整性約束條件(續(xù)),1) 修改列定義時(shí)的約束 例:將原來允許空值的列改為不允許空值時(shí): 該列目前已存在空值,則拒絕這種修改 2) 修改列值時(shí)的約束 修改列值時(shí)新舊值之間要滿足的約束條件 例:職工工資調(diào)整 = 原來工資 年齡只能增長,An Introduction to Database System,完整性約束條件(續(xù)),5. 動(dòng)態(tài)元組約束 修改元組值: 各個(gè)字段之間要滿足的約束條件 例: 職工工資調(diào)整不得低于其原來工資 + 工齡*1.5,An Introduction to Database System,完整性約束條件(續(xù)),

9、6. 動(dòng)態(tài)關(guān)系約束 關(guān)系變化前后狀態(tài):限制條件 例:事務(wù)一致性、原子性等約束條件,An Introduction to Database System,完整性約束條件小結(jié),An Introduction to Database System,第十章 數(shù)據(jù)庫完整性,10.1 完整性約束條件 10.2 完整性控制 10.3 Oracle的完整性 10.4 小結(jié),An Introduction to Database System,10.2 完整性控制,一、DBMS的完整性控制機(jī)制 二、關(guān)系系統(tǒng)三類完整性的實(shí)現(xiàn) 三、參照完整性的實(shí)現(xiàn),An Introduction to Database Syste

10、m,一、DBMS的完整性控制機(jī)制,1. 定義功能 一個(gè)完善的完整性控制機(jī)制應(yīng)該允許用戶定義各類完整性約束條件。,An Introduction to Database System,DBMS的完整性控制機(jī)制(續(xù)),2. 檢查功能 立即執(zhí)行的約束(Immediate constraints) 語句執(zhí)行完后立即檢查是否違背完整性約束 延遲執(zhí)行的約束(Deferred constrainsts) 完整性檢查延遲到整個(gè)事務(wù)執(zhí)行結(jié)束后 進(jìn)行,An Introduction to Database System,DBMS的完整性控制機(jī)制(續(xù)),例:銀行數(shù)據(jù)庫中“借貸總金額應(yīng)平衡”的約束 就應(yīng)該是延遲執(zhí)行的

11、約束 從賬號(hào)A轉(zhuǎn)一筆錢到賬號(hào)B為一個(gè)事務(wù),從賬號(hào)A轉(zhuǎn)出去錢后賬就不平了,必須等轉(zhuǎn)入賬號(hào)B后賬才能重新平衡,這時(shí)才能進(jìn)行完整性檢查。,An Introduction to Database System,DBMS的完整性控制機(jī)制(續(xù)),3. 違約反應(yīng) 拒絕該操作 其他處理方法,An Introduction to Database System,DBMS的完整性控制機(jī)制(續(xù)),完整性規(guī)則五元組表示: (D,O,A,C,P) D(Data) 約束作用的數(shù)據(jù)對象; O(Operation) 觸發(fā)完整性檢查的數(shù)據(jù)庫操作 當(dāng)用戶發(fā)出什么操作請求時(shí)需要檢查該完整性規(guī)則 是立即檢查還是延遲檢查; A(Ass

12、ertion) 數(shù)據(jù)對象必須滿足的斷言或語義約束這是規(guī)則的主體; C(Condition) 選擇A作用的數(shù)據(jù)對象值的謂詞; P(Procedure) 違反完整性規(guī)則時(shí)觸發(fā)的過程。,An Introduction to Database System,DBMS的完整性控制機(jī)制(續(xù)),例1:在“學(xué)號(hào)不能為空”的約束中 D 約束作用的對象為Sno屬性 O 插入或修改Student 元組時(shí) A Sno不能為空 C 無(A可作用于所有記錄的Sno屬性) P 拒絕執(zhí)行該操作,An Introduction to Database System,DBMS的完整性控制機(jī)制(續(xù)),例2:在“教授工資不得低于10

13、00元”的約束中 D 約束作用的對象為工資Sal屬性 O 插入或修改職工元組時(shí) A Sal不能小于1000 C 職稱=教授 (A僅作用于職稱=教授的記錄) P 拒絕執(zhí)行該操作,An Introduction to Database System,二、關(guān)系系統(tǒng)三類完整性的實(shí)現(xiàn),關(guān)系數(shù)據(jù)庫系統(tǒng)都提供了定義和檢查實(shí)體完整性、參照完整性和用戶定義的完整性的功能 違反實(shí)體完整性規(guī)則和用戶定義的完整性規(guī)則的操作: 一般是拒絕執(zhí)行 違反參照完整性的操作: 拒絕執(zhí)行 接受這個(gè)操作,同時(shí)執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的狀態(tài)正確,An Introduction to Database System,三、參照完整

14、性的實(shí)現(xiàn),例:職工部門數(shù)據(jù)庫包含職工表EMP和部門表DEPT 1 DEPT關(guān)系的主碼為部門號(hào)Deptno 2 EMP關(guān)系的主碼為職工號(hào)Empno, 外碼為部門號(hào)Deptno 稱DEPT為被參照關(guān)系或目標(biāo)關(guān)系,EMP為參照關(guān)系 RDBMS實(shí)現(xiàn)參照完整性時(shí)需要考慮以下4方面:,An Introduction to Database System,1. 外碼是否可以接受空值的問題,外碼是否能夠取空值:依賴于應(yīng)用環(huán)境的語義 實(shí)現(xiàn)參照完整性: 系統(tǒng)提供定義外碼的機(jī)制 定義外碼列是否允許空值的機(jī)制,An Introduction to Database System,1. 外碼是否可以接受空值的問題,例1

15、:在職工部門數(shù)據(jù)庫中, EMP關(guān)系包含有外碼Deptno 某元組的這一列若為空值,表示這個(gè)職工尚未分配到任何具體的部門工作 和應(yīng)用環(huán)境的語義是相符,An Introduction to Database System,1. 外碼是否可以接受空值的問題,例2:學(xué)生選課數(shù)據(jù)庫 Student關(guān)系為被參照關(guān)系,其主碼為Sno。 SC為參照關(guān)系,外碼為Sno。 若SC的Sno為空值:表明尚不存在的某個(gè)學(xué)生,或者某個(gè)不知學(xué)號(hào)的學(xué)生,選修了某門課程,其成績記錄在Grade中 與學(xué)校的應(yīng)用環(huán)境是不相符的,因此SC的Sno列不能取空值。,An Introduction to Database System,2

16、.在被參照關(guān)系中刪除元組時(shí)的問題,出現(xiàn)違約操作的情形: 刪除被參照關(guān)系的某個(gè)元組(student) 而參照關(guān)系有若干元組(SC)的外碼值與被刪除的被參照關(guān)系的主碼值相同,An Introduction to Database System,2.在被參照關(guān)系中刪除元組時(shí)的問題,違約反應(yīng):可有三種策略 級聯(lián)刪除(CASCADES) 受限刪除(RESTRICTED) 置空值刪除(NULLIFIES) 這三種處理方法,哪一種是正確的,要依應(yīng)用環(huán)境的語義來定,An Introduction to Database System,2.在被參照關(guān)系中刪除元組時(shí)的問題,級聯(lián)刪除 將參照關(guān)系中外碼值與被參照關(guān)系

17、中要?jiǎng)h除元 組主碼值相對應(yīng)的元組一起刪除 受限刪除 當(dāng)參照關(guān)系中沒有任何元組的外碼值與要?jiǎng)h除 的被參照關(guān)系的元組的主碼值相對應(yīng)時(shí),系統(tǒng) 才執(zhí)行刪除操作,否則拒絕此刪除操作,An Introduction to Database System,2.在被參照關(guān)系中刪除元組時(shí)的問題,置空值刪除 刪除被參照關(guān)系的元組,并將參照關(guān)系 中與被參照關(guān)系中被刪除元組主碼值相 等的外碼值置為空值。,An Introduction to Database System,2.在被參照關(guān)系中刪除元組時(shí)的問題,例:要?jiǎng)h除Student關(guān)系中Sno=950001的元組, 而SC關(guān)系中有4個(gè)元組的Sno都等于950001。

18、 級聯(lián)刪除:將SC關(guān)系中所有4個(gè)Sno=950001的元組一起刪除。如果參照關(guān)系同時(shí)又是另一個(gè)關(guān)系的被參照關(guān)系,則這種刪除操作會(huì)繼續(xù)級聯(lián)下去 受限刪除:系統(tǒng)將拒絕執(zhí)行此刪除操作。,An Introduction to Database System,2.在被參照關(guān)系中刪除元組時(shí)的問題,置空值刪除:將SC關(guān)系中所有Sno=950001的元組的Sno值置為空值。 在學(xué)生選課數(shù)據(jù)庫中,顯然第一種方法和第二種方法都是對的。第三種方法不符合應(yīng)用環(huán)境語義。,An Introduction to Database System,3.在參照關(guān)系中插入元組時(shí)的問題,出現(xiàn)違約操作的情形 需要在參照關(guān)系中插入元組,

19、而被參照關(guān)系不存在相應(yīng)的元組 違約反應(yīng) 受限插入 遞歸插入,An Introduction to Database System,3.在參照關(guān)系中插入元組時(shí)的問題,受限插入 僅當(dāng)被參照關(guān)系中存在相應(yīng)的元組,其主碼值與參照關(guān)系插入元組的外碼值相同時(shí),系統(tǒng)才執(zhí)行插入操作,否則拒絕此操作。 遞歸插入 首先向被參照關(guān)系中插入相應(yīng)的元組,其主碼值等于參照關(guān)系插入元組的外碼值,然后向參照關(guān)系插入元組。,An Introduction to Database System,3.在參照關(guān)系中插入元組時(shí)的問題,例:向SC關(guān)系插入(99001,1,90)元組,而Student關(guān)系中尚沒有Sno=99001的學(xué)生

20、受限插入:系統(tǒng)將拒絕向SC關(guān)系插入(99001,1,90)元組 遞歸插入:系統(tǒng)將首先向Student關(guān)系插入Sno=99001的元組,然后向SC關(guān)系插入(99001,1,90)元組。,An Introduction to Database System,4. 修改被參照關(guān)系中主碼的問題,兩種策略 (1)不允許修改主碼 (2)允許修改主碼,An Introduction to Database System,允許修改主碼策略,違約操作 要修改被參照關(guān)系中某些元組的主碼值,而參照關(guān)系中有些元組的外碼值正好等于被參照關(guān)系要修改的主碼值 要修改參照關(guān)系中某些元組的主碼值,而被參照關(guān)系中沒有任何元組的外

21、碼值等于被參照關(guān)系修改后的主碼值,An Introduction to Database System,允許修改主碼策略,違約反應(yīng) (1) 修改的關(guān)系是被參照關(guān)系:與刪除類似 級聯(lián)修改 受限修改 置空值修改,An Introduction to Database System,允許修改主碼策略,級聯(lián)修改 修改被參照關(guān)系中主碼值同時(shí),用相同的方法修改參照關(guān)系中相應(yīng)的外碼值。 受限修改 拒絕此修改操作。只當(dāng)參照關(guān)系中沒有任何元組的外碼值等于被參照關(guān)系中某個(gè)元組的主碼值時(shí),這個(gè)元組的主碼值才能被修改。 置空值修改 修改被參照關(guān)系中主碼值,同時(shí)將參照關(guān)系中相應(yīng)的外碼值置為空值。,An Introduc

22、tion to Database System,允許修改主碼策略,例:將Student關(guān)系中Sno=950001的元組中Sno值改為960123。而SC關(guān)系中有 4個(gè)元組的Sno=950001 級聯(lián)修改:將SC關(guān)系中4個(gè)Sno=950001元組中的Sno值也改為960123。如果參照關(guān)系同時(shí)又是另一個(gè)關(guān)系的被參照關(guān)系,則這種修改操作會(huì)繼續(xù)級聯(lián)下去。,An Introduction to Database System,允許修改主碼策略,受限修改:只有SC中沒有任何元組的Sno=950001時(shí),才能修改Student表中Sno=950001的元組的Sno值改為960123。 置空值修改:將Stu

23、dent表中Sno=950001的元組的Sno值改為960123。而將S表中所有Sno=950001的元組的Sno值置為空值。 在學(xué)生選課數(shù)據(jù)庫中只有第一種方法是正確的。,An Introduction to Database System,允許修改主碼策略,違約反應(yīng) (2) 修改的關(guān)系是參照關(guān)系:與插入類似 受限插入 遞歸插入,An Introduction to Database System,參照完整性的實(shí)現(xiàn),RDBMS在實(shí)現(xiàn)參照完整性時(shí): 需要向用戶提供定義主碼、外碼的機(jī)制 向用戶提供按照自己的應(yīng)用要求選擇處理依賴關(guān)系中對應(yīng)的元組的方法,An Introduction to Datab

24、ase System,第十章 數(shù)據(jù)庫完整性,10.1 完整性約束條件 10.2 完整性控制 10.3 Oracle的完整性 10.4 小結(jié),An Introduction to Database System,10.3 Oracle的完整性,一、Oracle中的實(shí)體完整性 二、Oracle中的參照完整性 三、Oracle中用戶定義的完整性,An Introduction to Database System,一、ORACLE中的實(shí)體完整性,ORACLE在CREATE TABLE語句中提供了PRIMARY KEY子句,供用戶在建表時(shí)指定關(guān)系的主碼列。 在列級使用PRIMARY KEY子句 在表級

25、使用PRIMARY KEY子句,An Introduction to Database System,ORACLE中的實(shí)體完整性(續(xù)),例1:在學(xué)生選課數(shù)據(jù)庫中,要定義Student表的Sno屬性為主碼 CREATE TABLE Student (Sno NUMBER(8), Sname VARCHAR(20), Sage NUMBER(20), CONSTRAINT PK_SNO PRIMARY KEY (Sno); 或: CREATE TABLE Student (Sno NUMBER(8) PRIMARY KEY , Sname VARCHAR(20), Sage NUMBER(20);

26、,An Introduction to Database System,ORACLE中的實(shí)體完整性(續(xù)),例2:要在SC表中定義(Sno, Cno)為主碼 CREATE TABLE SC (Sno NUMBER(8), Cno NUMBER(2), Grade NUMBER(2), CONSTRAINT PK_SC PRIMARY KEY (Sno, Cno);,An Introduction to Database System,ORACLE中的實(shí)體完整性(續(xù)),用戶程序?qū)χ鞔a列進(jìn)行更新操作時(shí),系統(tǒng)自動(dòng)進(jìn)行完整性檢查 違約操作 使主屬性值為空值的操作 使主碼值在表中不唯一的操作 違約反應(yīng) 系

27、統(tǒng)拒絕此操作,從而保證了實(shí)體完整性,An Introduction to Database System,二、ORACLE中的參照完整性,定義參照完整性 FOREIGN KEY子句:定義外碼列 REFERENCES子句:外碼相應(yīng)于哪個(gè)表的主碼 ON DELETE CASCADE子語: 在刪除被參照關(guān)系的元組時(shí),同時(shí)刪除參照關(guān)系中 外碼值等于被參照關(guān)系的元組中主碼值的元組,An Introduction to Database System,ORACLE中的參照完整性(續(xù)),例1:建立表EMP表 CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(1

28、0), Job VERCHAR2(9), Mgr NUMBER(4), Sal NUMBER(7,2), Deptno NUMBER(2), CONSTRAINT FK_DEPTNO FOREIGN KEY (Deptno) REFERENCES DEPT(Deptno);,An Introduction to Database System,ORACLE中的參照完整性(續(xù)),或: CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(10), Job VERCHAR2(9), Mgr NUMBER(4), Sal NUMBER(7,2), Dept

29、no NUMBER(2) CONSTRAINT FK_DEPTNO FOREIGN KEY REFERENCES DEPT(Deptno);,An Introduction to Database System,ORACLE中的參照完整性(續(xù)),這時(shí)EMP表中外碼為Deptno,它相應(yīng)于DEPT表中的主碼Deptno。 當(dāng)要修改DEPT表中的DEPTNO值時(shí),先要檢查EMP表中有無元組的Deptno值與之對應(yīng) 若沒有,系統(tǒng)接受這個(gè)修改操作 否則,系統(tǒng)拒絕此操作,An Introduction to Database System,ORACLE中的參照完整性(續(xù)),當(dāng)要?jiǎng)h除DEPT表中某個(gè)元組時(shí)

30、,系統(tǒng)要檢查EMP表,若找到相應(yīng)元組即將其隨之刪除。 當(dāng)要插入EMP表中某個(gè)元組時(shí),系統(tǒng)要檢查DEPT表,先要檢查DEPT表中有無元組的Deptno值與之對應(yīng) 若沒有,系統(tǒng)拒絕此插入操作 否則,系統(tǒng)接受此操作,An Introduction to Database System,三、ORACLE中用戶定義的完整性,ORACLE中定義用戶完整性的兩類方法 用CREATE TABLE語句在建表時(shí)定義用戶完整性約束 通過觸發(fā)器來定義用戶的完整性規(guī)則,An Introduction to Database System,ORACLE中用戶定義的完整性(續(xù)),1. 用CREATE TABLE語句在建表時(shí)

31、定義用戶完整性約束 可定義三類完整性約束 列值非空(NOT NULL短語) 列值唯一(UNIQUE短語) 檢查列值是否滿足一個(gè)布爾表達(dá)式(CHECK短語),An Introduction to Database System,ORACLE中用戶定義的完整性(續(xù)),例1:建立部門表DEPT,要求部門名稱Dname列 取值唯一,部門編號(hào)Deptno列為主碼 CREATE TABLE DEPT (Deptno NUMBER, Dname VARCHAR(9) CONSTRAINT U1 UNIQUE, Loc VARCHAR(10), CONSTRAINT PK_DEPT PRIMARY KEY (

32、Deptno); 其中 CONSTRAINT U1 UNIQUE 表示約束名為U1, 該約束要求Dname列值唯一。,An Introduction to Database System,ORACLE中用戶定義的完整性(續(xù)),例2: 建立學(xué)生登記表Student,要求學(xué)號(hào)在 900000至999999之間,年齡29,性別 只能是男或女,姓名非空 CREATE TABLE Student (Sno NUMBER(5) CONSTRAINT C1 CHECK (Sno BETWEEN 10000 AND 99999), Sname VARCHAR(20) CONSTRAINT C2 NOT NUL

33、L, Sage NUMBER(3) CONSTRAINT C3 CHECK (Sage 29), Ssex VARCHAR(2) CONSTRAINT C4 CHECK (Ssex IN (男, 女);,An Introduction to Database System,ORACLE中用戶定義的完整性(續(xù)),例3 :建立職工表EMP,要求每個(gè)職工的應(yīng)發(fā)工資不得超過3000元。 應(yīng)發(fā)工資實(shí)際上就是實(shí)發(fā)工資列Sal與扣除項(xiàng)Deduct之和。 CREATE TABLE EMP (Eno NUMBER(4) Ename VARCHAR(10), Job VARCHAR(8), Sal NUMBER(7,2), Deduct NUMBER(7,2) Deptno NUMBER(2), CONSTRAINTS C1 CHECK (Sal + Deduct =3000);,An Introduction to

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論