- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章 完整性约束 V
电子科技大学 计算机学院
胡旺
scuhuwang@126.com
2017年6月21日星期三
《数据库原理及应用》
第4章 完整性约束
本章内容
完整性约束是加在数据库模式上的一个具体条件,它规定什么样的数据能够存储到数据库系统中。
例如:
学生的年龄必须是整数,取值范围为14--29;
学生的性别只能是“男”或“女”;
学生的学号一定是唯一的;
学生所在的系必须是学校开设的系;
完整性概述
数据完整性和安全性是两个不同概念
数据的完整性是为了防止数据库中存在不符合语义的数据,防止错误数据的输入和输出所造成的无效操作和错误结果。
数据的安全性是防止非法用户的非法操作所造成的对数据库的恶意破坏。
完整性概述
完整性约束条件定义机制
完整性约束条件:数据模型的组成部分,约束数据库中数据的语义
DBMS应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库中
完整性检查机制
检查用户发出的操作请求是否违背了完整性约束条件
违约反应
如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性
完整性概述
控制机制
按照完整性约束条件作用的对象分:
类型约束
属性约束
关系变量约束
数据库约束
按照完整性约束条件声明时的位置分:
列级约束
表级约束
两种状态
静态: 对静态对象的约束是反映数据库状态合理性的约束
动态: 对动态对象的约束是反映数据库状态变迁的约束,新旧值之间满足的约束
完整性约束分类
Primary Key约束:实体完整性规则?
列级约束
CREATE TABLE RecipeMaster{
Rno VARCHAR(10) PRIMARY KEY,
DGno VARCHAR(10),
Rdatetime DATETIME
}
表级约束:单属性主键
CREATE TABLE Medicine{
Mno VARCHAR(10),
Mname VARCHAR(50) NOT NULL,
Mprice DECIMAL(18,2) NOT NULL,
Munit VARCHAR(10),
Mtype VARCHAR(10),
PRIMARY KEY(Mno)
}
完整性约束定义
PK约束
表级约束:多属性组合主键
CREATE TABLE RecipeDetail{
Rno VARCHAR(10),
Mno VARCHAR(10) NOT NULL,
Mamount DECIMAL(18,0),
PRIMARY KEY(Rno,Mno)
}
UNIQUE约束定义和PRIMARY KEY约束定义不能在同一属性上
PRIMARY KEY子句中的每个属性的取值都必须是NOT NULL
完整性约束定义
PK约束
列级约束
CREATE TABLE Dept{
DeptNo VARCHAR(10) PRIMARY KEY,
DeptName VARCHAR(50) UNIQUE,
ParentDeptNo VARCHAR(10),
Manager VARCHAR(10)
}
索引对象约束
CREATE UNIQUE INDEX deptname_index ON dept(DeptName)
UNIQUE与Primary Key
在一个关系中,PRIMARY KEY只有一个,而UNIQUE可以声明多个
PRIMARY KEY要求属性取值不能为NULL,而UNIQUE允许属性取空值,允许多个空值同时存在
在定义了UNIQUE,PRIMARY KEY 约束的属性上建立索引是十分必要的,它可以使约束的检查执行起来更有效
完整性约束定义
UNIQUE约束
NOT NULL列级约束
CREATE TABLE Diagnosis{
DGno VARCHAR(10) PRIMARY KEY,
Pno VARCHAR(10) NOT NULL,
Dno VARCHAR(10) NOT NULL,
Symptom VARCHAR(100),
Diagnosis VARCHAR(100),
DGtime DATETIME,
Rfee DECIMAL(18,2) NOT NULL
}
NOT NULL域对象约束
CREATE DOMAIN fee DECIMAL(18,2) NOT NULL;
完整性约束定义
NOT NULL约束
CHECK表级约束
CREATE TABLE Doctor{
Dno VARCHAR(10),
Dname VARCHAR(50) NOT NULL,
Dsex VARCHAR(2),
Dage INT,
Ddeptno VARCHAR(10),
Dlevel VARCHAR(50),
Dsalary DECIMAL(18,2),
PRI
您可能关注的文档
- 第步预测启动资金需求.ppt
- 第次课课固定资产更新决策一.ppt
- 第掌 景观生态流.ppt
- 第站 学习风向标.ppt
- 第章 信号检测与估计.ppt
- 第章 kHz RFID技术.ppt
- 第章 加工刀具自动化.ppt
- 第次课 海水中的悬浮物.ppt
- 第章 数据完整性.ppt
- 第章 数控车削加工工艺.ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)