第9章 数据库完整性
生活随笔
收集整理的這篇文章主要介紹了
第9章 数据库完整性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以下圖片來自西安交通大學侯迪老師的ppt,僅供學習和復習使用,請勿轉載或他用
9.1 概述
完整性包括了數據的正確性和相容性
正確性:數據符合現實世界語義
相容性:同一對象在不同關系表中的數據時符合邏輯。
完整性和安全性不是一個概念
必須提供完整性約束條件
違約處理:如果違背了完整性,可以選擇拒絕執行或者級連(CASCADE)執行其他操作
9.2 實體完整性
每個表都要有主鍵
PRIMARY KEY
-
單屬性的碼可以是列級約束,也可以是表級
-
多屬性的只能表級
檢查和違約處理:
檢查主鍵是否唯一的方式:
全表掃描(耗時)
B+樹索引
9.3 參照完整性
FOREIGN KEY (字段名) REFERENCES 表名(字段名)
參照完整性檢查和違約處理
9.4 用戶定義完整性
用戶定義的完整性是:針對某一具體應用的數據必須滿足的語義要求
關系數據庫管理系統提供了定義和檢驗用戶定義完整性的機制,不必由應用程序承擔
屬性上的約束
-
NOT NULL
-
UNIQUE
-
CHECK
違約處理:
元組上的約束
9.5 完整性約束命名子句
9.6 域完整性
9.7 斷言
CREATE ASSERTION <斷言名> CHECK();
?CREATE ASSERTION A1 CHECK (60>=(SELECT COUNT(*)FROM COURSE,SCWHERE SC.CNO=COURSE.CNO));刪除:DROP ASSERTION <斷言名>;
練習
?CREATE TABLE EMPLOYEES(eno varchar(20) PRIMARY KEY,name varchar(10),age int(3) //或者直接 CHECK (age<=60 AND age>0),CONSTRAINT A CHECK (age<=60 AND age>0),....dno varchar(10),FOREIGN KEY (dno) REFERENCES DEPT(dno))...總結
以上是生活随笔為你收集整理的第9章 数据库完整性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【视频】程序员面试二本实习生,疯狂问项目
- 下一篇: perf 性能分析实例——使用perf优