数据库第05章
第05章 用户身份可鉴别性机制

第5章
用户身份可鉴别性机制
证书机构
证书机构——公钥基础设施的核心机构 证书机构的作用
(1)证书的数字签名与发放,用户相信证 书的真假主要看是否是可信的CA签名的, 因此CA对证书的签名很重要。
(2)证书的管理工作,如跟踪证书状态, 对因故无效的证书发出吊销通知等等
第5章
用户身份可鉴别性机制
5.3.4 证书的生成
(b)第二个检查是保证用户持有的证书请求中 发送的公钥与用户自己的私钥相对应。 这很重要,因为我们必须证明用户拥有 与这个公钥对应的私钥,否则用私钥签名的 消息用公钥解密不了。
这个检查称为检查私钥的拥有证明(POP,
Proof Of Possession)。 如何验证?
第5章
用户身份可鉴别性机制
数字证书是个计算机文件,文件的扩展名为
.cer
护照证明了什么?数字证书又证明了什么? 护照证明我与姓名、国籍、出生日期和地点
、照片与签名等关联的正确性
数字证书证明我与公开密钥关联的正确性。
第5章
用户身份可鉴别性机制
数字证书概述
数字证书建立用户与公钥的关联。因此,
数字证书要包含用户名和用户的公钥,证明 特定公钥属于某个用户。
第5章
用户身份可鉴别性机制
口令的管理
口令管理涉及的方面
–传输形式:明文or密文 –存储形式:原口令or口令摘要 –对简单用户口令的处理措施:直接or加盐 –初始口令如何设置 –初始口令如何交付给用户 –口令遗忘的处理方式:重申、找回 –口令的方便性:记住口令、设备自动产生
第5章
用户身份可鉴别性机制
公钥与私钥的三种验证机制
(1)RA可以要求用户用私钥对证书签名请求( 即注册的证书内容)进行数字签名。如果RA 能用这个用户的公钥验证签名正确性,则可 以相信这个用户拥有该私钥。(发起方在用 户)
MySQL数据库实用教程(附微课)教案05 数据查询

总结课程内容,重申重点、难点
课后任务
完成“例5-39”“例5-40”“例5-41”……和"例5-43,,
任务名称
第五节课堂案例:学生成绩管理数据库的数据查询
教学目的
通过实例加强对数据查询的理解
教学方法
课堂授课、班级授课
教学手段
多媒体教学
重点难点
重点:等值连接的多表查询
难点:查询条件设置、聚合函数应用于分组
教学
内容
设计
课程引入:通过提出问题“综合应用查询语句完成对学生成绩管理的数据查询”引入本课
授课内容:
一、单表和多表的查询
二、使用GRoUPBY子句和聚合函数
三、子查询
总结课程内容,重申重点、难点
课后任务
完成第5章的项目实训
******学校
教师教案
(学年第学期)
课程名称:MVSO1数据库应用
授课专业:
任课教师:
所在系部:
第5章数据查询
任务名称
第一节数据查询语句、单表查询
教学目的
掌握SE1ECT语句的基本语法格式和含WHERE子句的单表查询
教学方法
课堂授课、班级授课
教学手段
多媒体教学
重点难点
重点:SE1ECT语句的基本语法格式、简单数据查询、条件数据查询
任务名称
第四节子查询、联合查询
教学目的
掌握子查询和联合查询
教学方法
课堂授课、班级授课
教学手段
多媒体教学
重点难点
重点:子查询和联合查询难点:子查询的执行顺序
教学
内容
课程引入:通过提出问题“在执行某个查询的过程中使用另一个查询的结果”引入本课
Access数据库应用基础教程(第三版)ch05简明教程PPT课件

5.4.1 预定义计算
预定义计算用于对查询中的分组记录或全部记录进行“总 计”计算。例如,求总和、平均值、计数、最小值、最大值、 标准偏差或方差,Access通过聚合函数来完成这些计算。 单击工具栏上的“总计”按钮 ,可以在设计网格中显示出 “总计”行。对设计网格中的每个字段,都可在“总计”行中 选择总计项,来对查询中的全部记录、一条或多条记录组进行 计算。 在査询中,如果要对记录进行分类统计,可以使用分组统 计功能。分组统计时,只需在“设计”视图中将用于分组字段 的“总计”行设置成“分组”即可。
DROP TABLE语句将删除数据库中一个已有表。若选择 RESTRICT,则该表的删除是有限制条件的,即欲删除的表不 能被其他表的约束所引用,如CHECK,FOREIGN KEY等约 束,不能有视图,不能有触发器,不能有存储过程或函数等, 如果存在这些依赖该表的对象,则此表不能被删除;若选择 CASCADE,则该表的删除没有限制条件,在删除基本表的同 时,相关的依赖对象都将被一起删除。默认情况下是 RESTRICT。
教 学 提 纲
SQL语言 查询类型与查询条件 创建各种查询 查询中的计算 编辑和使用查询
5.1 SQL语言简介
SQL语言是一种介于关系代数和关系演算之间的结构化查 询语言,其功能并不仅仅是查询,还具备数据定义和数据操纵 等功能。
SQL概述 SQL数据定义功能
SQL数据查询功能
SQL数据操纵功能
5.4 查询中的计算
前面介绍了创建查询的一般方法,同时也使用这些方法创 建了一些査询,但所建査询仅仅是为了获取符合条件的记录, 并没有对査询得到的结果进行更深入的分析和利用。而在实际 应用中,常常需要对查询结果进行统计计算,如计算学生的总 成绩、平均成绩,某科成绩的最高分和最低分等。Access允许 在査询中利用设计网格中的“总计”行进行各种统计,通过创 建计算字段进行任意类型的计算。 在Access査询中,可以执行两种类型的计算,预定义计算和自 定义计算。
数据库原理选择题总结(5-8章)

数据库原理选择题总结(5-8章)第五章1. 在数据库设计中,将ER图转换成关系数据模型的过程属于()(2001年10月全国卷)A. 需求分析阶段B. 逻辑设计阶段C. 概念设计阶段D. 物理设计阶段2.在数据库设计中,表示用户业务流程的常用方法是( )(2003年1月全国卷)A.DFDB.ER图C.程序流程图D.数据结构图3.把ER模型转换成关系模型的过程,属于数据库的( )(2002年10月全国卷)A.需求分析B.概念设计C.逻辑设计D.物理设计4.在ER模型中,如果有6个不同实体集,有9个不同的二元联系,其中3个1∶N联系,3个1∶1联系,3个M∶N联系,根据ER模型转换成关系模型的规则,转换成关系的数目是( )(2002年10月全国卷)A.6B.9C.12D.155.数据库设计属于()。
A、程序设计范畴B、管理科学范畴C、系统工程范畴D、软件工程范畴6.设计数据流程图(DFD)属于数据库设计的()A、可行性分析阶段的任务B、需求分析阶段的任务C、概念设计阶段的任务D、逻辑设计阶段的任务7.在数据库的概念设计中,最常用的模型是()A、实体联系模型B、数学模型C、逻辑模型D、物理模型8.数据库设计中,概念模型是()A、依赖于DBMS和硬件B、依赖于DBMS独立于硬件C、独立于DBMS依赖于硬件D、独立于DBMS和硬件9.ER图是数据库设计的工具之一,它适用于建立数据库的()。
A、需求模型B、概念模型C、逻辑模型D、物理模型10.ER方法中用属性描述事物的特征,属性在ER图中表示为()A、椭圆形B、矩形C、菱形D、有向边11.在关系数据库设计中,设计关系模式的任务属于()A、需求设计B、概念设计C、逻辑设计D、物理设计12.设计子模式属于数据库设计的()A、需求设计B、概念设计C、逻辑设计D、物理设计13.设计DB的存储结构属于数据库设计的()A、需求设计B、概念设计C、逻辑设计D、物理设计14.数据库设计中,外模型是指()A、用户使用的数据模型B、DB以外的数据模型C、系统外面的模型D、磁盘上数据的组织15.概念结构设计的目标是产生数据库的概念结构,这结构主要反映()A、组织机构的信息需求B、应用程序员的编程需求C、DBA的管理信息需求D、DBS的维护需求16.在DB的概念设计和逻辑设计之间起桥梁作用的是()A、数据结构图B、功能模块图C、ER图D、DFD17.在DB的需求分析和概念设计之间起桥梁作用的是()A、DFDB、ER图C、数据结构图D、功能模块图18.ER模型转换成关系模型时,一个M:N联系转换为一个关系模式,该关系模型的关键字是()A、M端实体的关键字B、N端实体的关键字C、M端实体的关键字和N端实体的关键字的组合D、重新选取的其他属性19.在一个ER图中,如果共有20个不同实体类型,在这些实体类型之间存在着9个不同的二元联系(二元联系是指两个实体之间的联系)其中3个是1:N联系,6个是M:N联系,还存在1个M:N的三元联系,那么根据ER模型转换成关系模型的规则,这个ER结构转换成的关系模型个数为()A、24B、27C、29D、3020.在数据库设计中,弱实体是指()A、属性只有一个的实体B、不存在关键码的实体C、只能短时期存在的实体D、以其他实体存在为先决条件的实体21.关于ER图,下列说法中错误的是()A、现实世界的事物表示为实体,事物的性质表示为属性B、事物之间的自然联系表示为实体之间的联系C、在ER图中,实体和属性的划分是绝对的、一成不变的D、在ER图中,实体之间可以有联系,属性和实体之间不能有联系22.在ER模型转换成关系模型的过程中,下列叙述不正确的是()A、每个实体类型转换成一个关系模型B、每个联系类型转换成一个关系模式C、每个M:N联系转换成一个关系模式D、在1:N联系中,“1”端实体的主键作为外键放在“N”端实体类型转换成的关系模式中23.在数据库设计中,超类实体与子类实体的关系是()A、前者继承后者的所有属性B、后者继承前者的所有属性C、前者只继承后者的主键D、后者只继承前者的主键24.综合局部ER图生成总体ER图过程中,下列说法错误的是()A、不同局部ER图中出现的相同实体,在总体ER图中只能出现一次。
Access 2019数据库开发实例教程 配套课件

1.1.2 数据库的概念
在计算机中,为了存储和处理事物,需要用属性抽象描述这些事物的特 征。数据库就是存储在一起的相互有联系的数据集合。
1.1.3 数据的处理
数据处理就是将数据转换为信息的过程,它包括对数据库中的数据进 行收集、存储、传播、检索、分类、加工或计算、打印和输出等操作。
。
启动Access 2019 退出Access 2019
2.1.1 启动Access 2019
启动Access 2019的方法很多,最常用的方法有以下几种。
2.1.2 退出Access 2019
使用Access 2019处理完数据后,当用户不再使用Access 2019时,应将其 退出。退出Access 2019常用的方法主要有以下几种。
数据库设计原则和步骤 数据库设计范式
1.6.1 数据库设计原则和步骤
为了合理组织数据,应遵循以下的基本设计原则。考虑数据库及其应用 系统开发的全过程,可以将数据库设计过程分为以下6个阶段。
1.6.2 数据库设计范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的 规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求 的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
1.2 数据库系统
数据库系统,从根本上说是计算机化的记录保持系统,它的目的是存 储和产生所需要的有用信息。这些有用的信息可以是使用该系统的个人或组 织的有意义的任何事情,是对某个人或组织辅助决策过程中不可少的事情 。
数据库系统的概念 数据库系统的特点 数据库系统的分类 数据库系统的体系结构 数据库系统的发展
05_数据库完整性

全表扫描.依次判断表中每条记录的主码值与 将插入记录上的主码值(或修改的新主码值) 是否相同.十分耗时. 在主码上自动建立索引(如B+树索引).可大 大提高效率.
5.2 参照完整性
5.2.1 参照完整性定义
在CREATE TABLE中用FOREIGN KEY短语来定 义哪些列为外码,用REFERENCES短语指明这 些外码参照哪些表的主码. 见课本P154 [例3]
定义触发器(续)
INSERT,UPDATE和DELETE三个选项是指定在表或视图 上执行哪些数据修改语句时将激活触发器的关键字.必须 至少指定一个选项.在触发器定义中允许使用以任意顺序 组合的这些关键字.如果指定的选项多于一个,需用逗号 分隔这些选项. AS后是触发器要执行的操作. CREATE TRIGGER 权限默认授予定义触发器的表所有者, sysadmin 固定服务器角色成员以及 db_owner 和 db_ddladmin 固定数据库角色成员,并且不可转让.
ALTER TABLE <表名> DROP < 完整性约束条件名>
5.6 触发器(Trigger)
触发器是用户定义在关系表上的一类由事件驱动的 特殊过程.一旦定义,任何用户对表的增,删,改 操作均由服务器自动激活相应的触发器,在DBMS 核心层进行集中的完整性控制.触发器类似于约束, 但是比约束更加灵活,可实施比FOREIGN KEY约 束,CHECK约束更为复杂的检查和操作,具有更 精细和更强大的数据控制能力.
定义触发器(续)
当你创建一个触发操作时,通常需说明所指的是触发语句 作用之前还是之后的列值.由于此种原因,我们用两个取 有特殊名字的虚拟表格来测试触发语句的作用:deleted 和inserted(在内存中,触发器完成运行后,这些表就不 能再访问). 这些表和指定触发器的表具有相同的结构. deleted表保 存受delete和update影响的行的副本.inserted表保存在 insert和update之后添加到触发器中的行的副本.
数据库系统概论 课件 第05章_数据库完整性
列值非空(NOT NULL约束) 列值唯一(UNIQUE约束) 检查列值是否满足一个布尔表达式(CHECK约束)
SQL Server 实现用户定义数据完整性的主要方法 有:约束、默认、规则、自定义数据类型和触发器
1、不允许取空值
DB
例5 在定义“学生”表时,说明学号Sno为主键,姓
数据库系统原理
DB
Principles of Database System
第五章 数据库完整性
第五章
DB
数据库完整性
数据库的完整性(Integrity)
数据的正确性、有效性和相容性
防止不合语义的数据进入数据库
例:学生的年龄必须是整数,取值范围为14-35;
学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系;
DB
FOREIGN KEY(<列名>) REFERENCES <表名> [(<列名>)] [ ON DELETE <参照动作> ] [ ON UPDATE <参照动作> ] 其中 第一个“列名”是外部关键字 第二个“列名”是被参照表中的主键或候选键 。
参照动作
DB
NO ACTION(拒绝)
CASCADE(级联)
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno)
);
5.2.2 参照完整性检查和违约处理
DB
一个参照完整性将两个表的相应元组联 系起来了
对被参照表和参照表进行增删改操作时
有可能破坏参照完整性 因此,必须进行检查
Oracle数据库基础及应用第05章SQLPlus命令
5.3.2 PROMPT命令
• 使用PROMPT命令可以在显示屏幕上输出指定的数据 和空行,这种输出方式非常有助于在脚本文件中向用 户传递相应的信息。
setsysytemoptionvalue选项描述setnumformatformat设置数字的默认显示格式setnulltext设置select语句返回null值时显示的字符串setpauseoffontext设置输出结果时是否滚动显示setpagesize14n设置每页打印的行数setrecsetwrappedeachoff显示或打印记录分隔符t1设置输出结果中列和列之间的空格数默set选项及说明续setspace1n设置输出结果中列和列之间的空格数默认值为10setsqlcasemixedlowerupper设置在执行sql命令之前是否转换大小写setsqlcontinuegt
设置输出结果中列和列之间的空格数,默 认值为10 设置在执行sql命令之前是否转换大小写 设置命令提示符 设置当前时间的显示 用于启动和关闭显示sql语句执行时间 设置是否在列标题下面添加分隔线
设置当一个数据项比当前行宽时,是否截 断数据项的显示
5.2.2 设置运行环境
• 在Oracle中怎么设置运行环境以及设置后的效果如何, 在这里可以通过具体的示例来进行演示。设置运行环 境中使用频率较高的操作如下所示。
第5章 SQLPlus命令
5.1使用SQL*P1us
• 在数据库系统中,可以使用两种方式 执行命令:
– 图形化工具
直观、简单、容易记忆;灵活性较差
– 使用各种命令
关系数据库规范化理论(05)
5.3 函数依赖
关系模式S(S# , SN , SD , DEAN , C# , G)
根据一般的事实,有: 一个系有若干学生,而一个学生只属于一个系;
一个系只有一名系主任;一个学生可以选修多门课 程,每门课程也可以由多个学生选修;每个学生的 每门课程都只有一个成绩。据此语义,可以得到一 组FD F
9
5.2 数据依赖
G
SNO
DN
CN
DM
关系的规范化理论就是用于改造关系模式,通过 分解关系模式来消除其中不合适的数据依赖,以 解决插入异常、删除异常、更新异常和数据冗余 问题。
10
5.3 函数依赖
函数依赖
设R(U)是属性集U上的关系模式,X , Y U, r是 R(U) 上的任意一个关系,如果成立
对t , s r,若t[X] = s[X],则t[Y] = s[Y] 那么称“X函数决定Y”,或“Y函数依赖于X”,记 作XY 称X为决定因素
如S# SN, (S#,C#) G
不存在t , s r,t[X] = s[X],但t[Y] ≠ s[Y]
11
5.3 函数依赖
A
B
C
D
a1
b1
c1
d1
a1
快速热身
关系模式R(A,B,C,D),码为AB,给出它的一个函数 依赖集,使得R属于2NF而不属于3NF
33
5.4 .4 BC范式(BCNF)
STC(S# , T# , C#)
每位老师只教授一门课
T# C#
某学生选定一门课,就对应一位老师
(S#,C#) T#
候选码
(S#,T#),(S#,C#)
28
5.4 .3 3NF
S# SN SD DEAN S01 杨明 D01 思齐 S02 李婉 D01 思齐 S03 刘海 D02 述圣 S04 安然 D02 述圣 S05 乐天 D03 省身
数据库习题答案--何玉洁
第一部分基础理论第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
数据:描述事务的符号记录数据库:存储数据的仓库数据库管理系统:用于管理和维护数据的系统软件数据库系统:计算机中引入数据库后的系统,包括数据库,数据库管理系统,应用程序,数据库管理员2.数据管理技术的发展主要经历了哪几个阶段?两个阶段,文件管理和数据库管理3.数据独立性指的是什么?应用程序不因数据的物理表示方式和访问技术改变而改变,分为逻辑独立性和物理独立性。
物理独立性是指当数据的存储结构或存储位置发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
4.数据库系统由哪几部分组成?由数据库、数据库管理系统、应用程序、数据库管理员组成。
第2章数据模型与数据库系统的结构1.说明实体一联系模型中的实体、属性和联系的概念。
实体是具有公共性质的并可相互区分的现实世界对象的集合。
属性是实体所具有的特征或性质。
联系是实体之间的关联关系。
2.数据库系统包含哪三级模式?试分别说明每一级模式的作用。
外模式、模式和内模式。
外模式:是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同用户对数据的需求,保证数据安全。
模式:是数据库中全体数据的逻辑结构和特征的描述,它满足所有用户对数据的需求。
内模式:是对整个数据库的底层表示,它描述了数据的存储结构。
3.数据库管理系统提供的两级映像的作用是什么?它带来了哪些功能?两级映像是外模式/模式映像和模式/内模式映像。
外模式/模式映像保证了当模式发生变化时可以保证外模式不变,从而使用户的应用程序不需要修改,保证了程序与数据的逻辑独立性。
模式/内模式映像保证了当内模式发生变化,比如存储位置或存储文件名改变,可以保持模式不变,保证了程序与数据的物理独立性。
两级印象保证了应用程序的稳定性。
第3章关系数据库1.试述关系模型的三个组成部分。
数据结构、关系操作集合、关系完整性约束2.解释下列术语的含义:(1)主码当一个关系有多个候选码时,选择一个作为主码(2)候选码当一个属性或属性集的值能够唯一标识一个关系的元组,而又不包含多余的元素,则称该属性或属性集为候选码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例:对于上面的情况,系统会在删除Student关系
中Sno = 95001的元组的同时,将SC关系中Sno = 95001的元组的Sno置为空值。 对于学生选 课数据库来说,这种方法显然是不符 合应用环境语义的。
参照完整性
3.在参照关系中插入元组时的问题
在向数据库中插入数据时,可能会出现需要在参照
实体完整性检查和违约处理
用PRIMARY KEY短评定义了关系的主码后,每当用户进 程对基本表插入一条记录或对主码列进行更新操作时,
RDBMS将按实体完整性规则自动进行检查。
检查主码值是否唯一,如不唯一则拒绝插入和修改 检查主码的各个属性是否为空,只要有一个为空就 拒绝插入或修改
5.2 参照完整性
D O 约束作用的对象为工资Sal属性 插入或修改职工元组时
A
C
Sal不能小于1000
职称=‘教授’ (A仅作用于职称=‘教授’的记 录)
P
拒绝执行该操作
数据库完整性
完整性检查是围绕完整性约束条件进行的,因
此完整性约束条件是完整性控制机制的核心。
完整性约束条件作用的对象
列:对属性的取值类型、范围、精度等的约束条件 元组:对元组中各个属性列间的联系的约束 关系:对若干元组间、关系集合上以及关系之间的 联系的约束
数据类型约束:包括数据的类型、长度、单位、精度等
对数据格式的约束 取值范围或取值集合的约束 对空值的约束:空值表示未定义或未知的值,它与零值 和空格不同;有的列允许空值,有的则不允许 其他约束:关于列的排序说明,组合列等
2.静态元组约束
静态元组约束规定元组的各个列之间的约束 关系
例:订货关系中发货量<=订货量
参照完整性
例 关系SC中一个元组表示一个学生选修的某门课程的成绩,
(Sno,Cno)是主码。Sno,Cno分别参照引用Student表的主码 和Course表的主码。 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno,Cno),
级联删除
将参照关系中外码值与被参照关系中要删除元组主
码值相对应的元组一起删除
例:将SC关系中4个Sno = 95001的元组一起删除 如果参照关系同时又是另一个关系的被参照关系, 则这种删除操作会继续级联下去。
在被参照关系中删除元组时的问题
拒绝执行
仅当参照关系中没有任何元组的外码值与要删除的
被参照关系的元组的主码值相对应时,系统才执行
除的被参照关系的主码值相同,这时就要考虑如何保
证数据库的参照完整性。 例:在删除Student关系中Sno = 95001的元组,而 SC关系中又有4个元组的Sno都等于95001。 可以采用三种策略:级联删除(CASCADE)、拒绝执
行(NO ACTION)、置空删除(SET-NULL)
在被参照关系中删除元组时的问题
完整性约束条件
六类完整性约束条件
静态列级约束、静态元组约束、静态关系约束、
动态列级约束、动态元组约束、动态关系约束
对象状态 动态列级约束 动态 ④ 静态列级约束 静态 ① 动态元组约束 ⑤ 静态元组约束 ② 动态关系约束 ⑥ 静态关系约束 ③
列
元组
关系
对象粒度
1.静态列级约束
静态列级约束是对一个列的取值域的说明,是最 常见、最简单、最容易实现的一类完整性约束。 静态列级约束的分类
实体完整性约束 元 组值应 满足 的条 参照完整性约束
·值域
·空值
件
函数依赖约束
统计约束
动
态
改 变 列 定 元组新旧值之间应 关系新旧状态间应满
义或列值 满足的约束条件 足的约束条件
5.1 实体完整性
实体完整性规则
若属性A是基本关系R的主属性,则属性A不能取空值。
关系模型的实体完整性在CREATE TABLE中用中
删除操作,否则拒绝此删除操作 例:对于上面的情况,只有先将SC关系中Sno = 95001的4个元组先删除掉,系统才会执行删除 Student关系中Sno = 95001的元组。否则,系统
将拒绝删除Student关系中Sno = 95001的元组。
在被参照关系中删除元组时的问题
置空删除
删除被参照关系的元组,同时将参照关系中与被参照 关系中被删除元组主码值相等的外码值置为空值。
为职工号Empno, 外码为部门号Deptno;称DEPT为被参
照关系或目标关系,EMP为参照关系
在这个数据库中,EMP关系包含有外码Deptno,某元组的
这一列若为空值,表示这个职工尚未分配到任何具体的部
门工作。这与应用环境的语义相符。
外码是否可以接受空值的问题
例2:学生-选课数据库中:Student关系为被
统将拒绝该操作
对于延迟执行的约束,系统将拒绝整个事务,把数 据库恢复到事务执行前的状态
数据库完整性
目前许多关系数据库管理系统都提供了定义和 检查实体完整性、参照完整性和用户定义的完 整性的功能。
违反实体完整性规则和用户定义的完整性规则的操 作时,一般是拒绝执行。
违反参照完整性的操作,并不都是简单地拒绝执行,
5.动态元组约束
动态元组约束是指修改元组的值时,元组中各个 属性之间要满足的约束条件。
例: 职工工资调整不得低于
原来工资 + 工龄*1.5
6.动态关系约束
动态关系约束是加在关系变化前后状态上的限 制条件
例:事务一致性、原子性等约束条件
完整性约束条件小结
粒 度
状态
列
级
元 组 级
关 系 级
列定义
·类型 静 态 ·格式
数据库系统原理及应用
哈尔滨工业大学管理学院 芦鹏宇
lupengyu@
2013年8月6日
第5章 数据库完整性
什么是数据库的完整性
数据的正确性和相容性 正确性:防止不合语义的数据进入数据库
完整性:是否真实地反映现实世界
数据库是否具备完整性关系到数据库系统能否
真实地反映现实世界。
数据库完整性
参照完整性规则
若属性(或属性组)F是基本关系R的外码,它与基本 关系S的主码Ks相对应(基本关系R和S不一定是不同的
关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值
关系模型的参照完整性在CREATE TABLE中用中用 FOREIGN KEY定义哪些列为外码,用REFERENCES 短语指明这些外码参照哪些表的主码。
有时需根据应用语义执行一些附加的操作,以保证 数据库的正确性。
数据库完整性
完整性规则五元组表示:
(D,O,A,C,P)
D(Data) 约束作用的数据对象 O(Operation) 触发完整性检查的数据库操作 当用户发出什么样的操作请求时,需要检查该完整 性规则;是立即检查还是延迟检查 A(Assertion) 数据对象必须满足的断言或语义约束 规则的主体 C(Condition) 选择A作用的数据对象值的谓词
在参照关系中插入元组时的问题 修改关系中主码的问题
参照完整性
1.外码是否可以接受空值的问题
外码是否能够取空值取决于应用环境的语义
在实现参照完整性时,系统除了应该提供定义外码
的机制,还应提供定义外码列是否允许空值的机制
例1:职工-部门数据库包含职工表EMP和部门表DEPT。其
中:DEPT关系的主码为部门号Deptno;EMP关系的主码
CREATE TABLE Student
实体完整性
例2 将SC表中的Sno, Cno属性定义为码
CREATE TABLE SC (Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT, PRIMARY KEY (Sno,Cno) );
实体完整性
静态元组约束只局限在元组上
3.静态关系约束
静态关系约束是指存在于关系的各个元组之间 或若干关系之间的各种联系或约束。 常见静态关系约束
实体完整性约束 关系模型的极其重要的约束 称为关系的两个不变性 参照完整性约束 函数依赖约束:大部分函数依赖约束都在关系模式中 定义 统计约束:定义某个字段值与关系中多个元组的统计 值之间的约束关系 例:职工平均工资的2倍 <= 部门经理的工资
<= 职工平均工资的5倍
4.动态列级约束
动态列级约束是修改列定义或列值时应满足的约
束条件
动态列级约束的分类
修改列定义时的约束 例:将原来允许空值的列改为不允许空值时,如果
该列目前已存在空值,则拒绝这种修改 修改列值时的约束 例:学生入学时将年龄输入到计算机当中,在毕业 时要打印成绩单,需要修改学生年龄,这时就要 求学生年龄只能增长,而且与原年龄的差应是在 读的时间。
用PRIMARY KEY定义。
单属性构成的码的说明方法 定义为列级约束条件 定义为表级约束条件 多属性构成的码的说明方法 定义为表级约束条件
实体完整性
例1 将Student表中的Sno属性定义为码
CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20) NOT NULL, Sgend CHAR(2), Sage SMALLINT, Sdept CHAR(20) PRIMARY KEY(Sno) ); (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Sgend CHAR(2), Sage SMALLINT, Sdept CHAR(20) );
FOREIGN KEY (Sno) REFERENCES Student(Sno)