数据库原理 第3章 完整性约束
10数据库完整性约束数据库原理
4) 对空值的约束(空值:未定义或未知的值,与零值和空格不同) 有的列允许空值,有的则不允许,如成绩可为空值
5) 其他约束 例:关于列的排序说明,组合列等
2. 静态元组约束
规定元组的各个列之间的约束关系 例:订货关系中发货量<=订货量 教师关系中教授的工资>=700元
例2:在“教授工资不得低于1000元”的约束中 D 约束作用的对象为工资Sal属性 O 插入或修改职工元组时 A Sal不能小于1000 C 职称=′教授′ (A仅作用于职称=‘教授’的记录) P 拒绝执行该操作
关系系统三类完整性的实现
关系数据库系统都提供了定义和检查实体完整性、参 照完整性和用户定义的完整性的功能
2. 完整性检查机制
检查用户发出的操作请求是否违背了完整性约束条件
3. 违约反应
如果发现用户的操作请求使数据违背了完整性约束条件, 则采取一定的动作来保证数据的完整性。
10.1 计算机安全性概论
完整性约束条件作用的对象
列:对属性的取值类型、范围、精度等的约束条件 元组:对元组中各个属性列间的联系的约束 关系:对若干元组间、关系集合上及关系之间的联系的约束
受限删除(RESTRICTED)
当参照关系中没有任何元组的外码值与要删除的被参照关系的元组的主 码值相对应时,系统才执行删除操作,否则拒绝此删除操作。
置空值删除(NULLIFIES)
删除被参照关系的元组,并将参照关系中与被参照关系中被删除元组主 码值相等的外码值置为空值。
例:要删除Student关系中Sno=950001的元组, 而SC关系中有4个元组的Sno都等于950001。 级联删除:将SC关系中所有4个Sno=950001的元组一 起删除。如果参照关系同时又是另一个关系的被参照关 系,则这种删除操作会继续级联下去 受限删除:系统将拒绝执行此删除操作。 置空值删除:将SC关系中所有Sno=950001的元组的 Sno值置为空值。 在学生选课数据库中,显然第一种方法和第二种方法都 是对的。第三种方法不符合应用环境语义。
数据库原理教程习题答案全
数据库原理教程习题答案全集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#0000000000第1章数据库系统概述习题参考答案税务局使用数据库存储纳税人(个人或公司)信息、纳税人缴纳税款信息等。
典型的数据处理包括纳税、退税处理、统计各类纳税人纳税情况等。
银行使用数据库存储客户基本信息、客户存贷款信息等。
典型的数据处理包括处理客户存取款等。
超市使用数据库存储商品的基本信息、会员客户基本信息、客户每次购物的详细清单。
典型的数据处理包括收银台记录客户每次购物的清单并计算应交货款。
DBMS是数据库管理系统的简称,是一种重要的程序设计系统。
它由一个相互关联的数据集合和一组访问这些数据的程序组成。
数据库是持久储存在计算机中、有组织的、可共享的大量数据的集合。
数据库中的数据按一定的数据模型组织、描述和存储,可以被各种用户共享,具有较小的冗余度、较高的数据独立性,并且易于扩展。
数据库系统由数据库、DBMS(及其开发工具)、应用系统和数据库管理员组成。
数据模型是一种形式机制,用于数据建模,描述数据、数据之间的联系、数据的语义、数据上的操作和数据的完整性约束条件。
数据库模式是数据库中使用数据模型对数据建模所产生设计结果。
对于关系数据库而言,数据库模式由一组关系模式构成。
数据字典是DBMS维护的一系列内部表,用来存放元数据。
所谓元数据是关于数据的数据。
DBMS提供如下功能:(1)数据定义:提供数据定义语言DDL,用于定义数据库中的数据对象和它们的结构。
(2)数据操纵:提供数据操纵语言DML,用于操纵数据,实现对数据库的基本操作(查询、插入、删除和修改)。
(3)事务管理和运行管理:统一管理数据、控制对数据的并发访问,保证数据的安全性、完整性,确保故障时数据库中数据不被破坏,并且能够恢复到一致状态。
(4)数据存储和查询处理:确定数据的物理组织和存取方式,提供数据的持久存储和有效访问;确定查询处理方法,优化查询处理过程。
陶宏才《数据库原理及设计》第3版课后习题答案
第一章一、解答题1、解释术语:数据、数据库、数据管理系统、数据库系统、数据库应用系统、视图、数据字典。
P19-20数据:是描述现实世界中各种具体事物或抽象概念的、可存储并具有明确意义的信息。
数据库:是相互关联的数据集合。
数据管理系统:是一个通用的软件系统,由一组计算机程序构成。
数据库系统:是一个用户的应用系统得以顺利运行的环境。
数据库应用系统:主要指实现业务逻辑的应用程序。
视图:指不同的用户对同一数据库的每一种理解称为视图。
数据字典:用于存储数据库的一些说明信息的特殊文件。
2、简述数据抽象、数据模型及数据模式之间的关系P26数据模型是数据抽象的工具,是数据组织和表示的方式;数据模式是数据抽象利用数据模型,将数据组织起来后得到的结果;总而言之,数据模式是数据抽象的结果。
3、DBMS应具备的基本功能有哪些?P9数据独立性、安全性、完整性、故障恢复、并发控制4、数据库中对数据最基本的4种操作是什么?P24增加、删除、修改、查询5、评价数据模型的3个要素是什么?P121)能够真实地描述现实系统2)能够容易为业务用户所理解3)能够容易被计算机实现6、数据模型的3个要素是什么?P24数据结构、数据操作、数据约束7、简述SQL语言的使用方式。
P13一般有两种方式:SQL的交互式使用;用户通过开发应用系统与RDBMS交互。
8、在数据库设计时,为什么涉及到多种数据模型?P12因为目前商用化DBMS没有一个能够同时满足3项要求,为此,人们不得不走折中路线,设计一些中间的数据模型。
9、数据库系统中的用户类型有哪些?P28-29最终用户、数据库应用开发人员、数据库管理员、其他与数据库系统有关的人员。
11、简述OLTP与OLAP间的区别。
P42-43OLTP(联机事务处理)主要面向日常的业务数据管理,完成用户的事务处理,提高业务处理效率,通常要进行大量的更新操作,同时对响应时间要求比较高。
OLAP(联机分析处理)注重数据分析,主要对用户当前及历史数据进行分析,辅助领导决策,通常要进行大量的查询操作,对时间的要求不太严格。
数据库系统原理相关习题及答案
相关习题及答案.doc第1、2章1.1 名词解释:◆ DB:数据库(Database),DB是统一管理的相关数据的集合。
DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。
◆ DBMS:数据库管理系统(Database Management System),DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。
◆ DBS:数据库系统(Database System),DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
◆ 1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,好么实体集E1对E2的联系称为“一对一联系”,记为“1:1”。
◆ 1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。
◆ M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。
◆ 数据模型:表示实体类型及实体类型间联系的模型称为“数据模型”。
它可分为两种类型:概念数据模型和结构数据模型。
◆ 概念数据模型:它是独门于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构。
◆ 结构数据模型:它是直接面向数据库的逻辑结构,是现实世界的第二层抽象。
这类模型涉及到计算机系统和数据库管理系统,所以称为“结构数据模型”。
结构数据模型应包含:数据结构、数据操作、数据完整性约束三部分。
它主要有:层次、网状、关系三种模型。
数据库原理实验报告-实验三-数据完整性与安全性控制
《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期2016.10.18一、实验容、步骤以及结果1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。
(18分,每小题3分)(1)非空约束:为出生日期添加非空约束。
非空约束:取消表S中sbirth的勾。
可能需要重建表。
(2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。
设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命令-->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’-->保存(3)唯一约束:为(sname)添加唯一约束(唯一键),约束名为uk_sname。
唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加-->是否唯一改为‘是’-->名称改为‘us_sname’-->关闭。
(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。
设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查条件为:成绩应该在0-100之间。
(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表和C表,外键名称分别为fk_sno,fk_cno。
2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint)删除约束:单击数据库Student-->表-->单击S-->展开键、约束。
-数据库原理及应用第二版-第3章关系数据库
自然连接是连接中等值连接的特例,是一种 去掉重复属性的等值连接。连接的条件是两 个关系的同名属性。 记作:R*S 班级(班号,班名,班导师) 学生(学号,姓名,性别,班号) 班级*学生
两个重要的连接: 等值连接 θ为“=”,是从关系R和S的广义笛卡尔积中 选取A,B属性值相等的那些元祖。 自然连接 是一种特殊的等值连接,它要求两个关系 中进行比较的分量必须是相同的属性组,并且 在结果中把重复的属性列去掉。
A和B:分别为R和S上度数相等且可比的属性组。前
连接按连接条件分为:等值连接,大于连接和小于连接。 等值连接:就是指连接条件为等号。 大于连接就是指连接条件为>号 小于连接就是指连接条件为<号。 上述三种不同连接都称为连接,并不去掉重复属性和重复 元组。
R.A=S.A 班级(班号,班名,班导师) 学生(学号,姓名,性别,班号) R和S关系的连接,连接条件是R.A=S.A。运算结果是:
例1:学生实体和专业实体可以用下面的关系表示。
学生(学号,姓名,性别,专业号,出生日期) 专业(专业号,专业名)
例2:学生、课程以及学生与课程之间的选课关系可以用如 下三个关系表示:
学生(学号,姓名,性别,专业号,出生日期)
课程(课程号,课程名,学分) 选课(学号,课程号,成绩)
3.4.3 用户定义的完整性
2、属性 图3-1的学生关系中有学号、姓名、年龄、性别和所在系五 个属性,是一个五元关系。
二维表中的列称为属性(或叫字段),每个属性都有一个名字,称为属性名。 二维表中对应某一列的值称为属性值;二维表中列的个数称为关系的元数。
数据库系统教程课后习题答案(部分)--何玉洁 李宝安
第一部分基础理论第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
数据:描述事务的符号记录数据库:存储数据的仓库数据库管理系统:用于管理和维护数据的系统软件数据库系统:计算机中引入数据库后的系统,包括数据库,数据库管理系统,应用程序,数据库管理员2.数据管理技术的发展主要经历了哪几个阶段?两个阶段,文件管理和数据库管理9.数据独立性指的是什么?应用程序不因数据的物理表示方式和访问技术改变而改变,分为逻辑独立性和物理独立性。
物理独立性是指当数据的存储结构或存储位置发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
10.数据库系统由哪几部分组成?由数据库、数据库管理系统、应用程序、数据库管理员组成。
第2章数据模型与数据库系统的结构4.说明实体一联系模型中的实体、属性和联系的概念。
实体是具有公共性质的并可相互区分的现实世界对象的集合。
属性是实体所具有的特征或性质。
联系是实体之间的关联关系。
6.数据库系统包含哪三级模式?试分别说明每一级模式的作用。
外模式、模式和内模式。
外模式:是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同用户对数据的需求,保证数据安全。
模式:是数据库中全体数据的逻辑结构和特征的描述,它满足所有用户对数据的需求。
内模式:是对整个数据库的底层表示,它描述了数据的存储结构。
7.数据库管理系统提供的两级映像的作用是什么?它带来了哪些功能?两级映像是外模式/模式映像和模式/内模式映像。
外模式/模式映像保证了当模式发生变化时可以保证外模式不变,从而使用户的应用程序不需要修改,保证了程序与数据的逻辑独立性。
模式/内模式映像保证了当内模式发生变化,比如存储位置或存储文件名改变,可以保持模式不变,保证了程序与数据的物理独立性。
两级印象保证了应用程序的稳定性。
第3章关系数据库1.试述关系模型的三个组成部分。
数据结构、关系操作集合、关系完整性约束2.解释下列术语的含义:(3)候选码当一个属性或属性集的值能够唯一标识一个关系的元组,而又不包含多余的元素,则称该属性或属性集为候选码。
《数据库系统原理》04735课后习题答案(2018版)
答案仅供参考第一章数据库系统概述选择题B、B、A简答题1.请简述数据,数据库,数据库管理系统,数据库系统的概念。
P27数据是描述事物的记录符号,是指用物理符号记录下来的,可以鉴别的信息。
数据库即存储数据的仓库,严格意义上是指长期存储在计算机中的有组织的、可共享的数据集合。
数据库管理系统是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。
数据库系统是指在计算机中引入数据库技术之后的系统,包括数据库、数据库管理系统及相关实用工具、应用程序、数据库管理员和用户。
2.请简述早数据库管理技术中,与人工管理、文件系统相比,数据库系统的优点。
数据共享性高数据冗余小易于保证数据一致性数据独立性高可以实施统一管理与控制减少了应用程序开发与维护的工作量3.请简述数据库系统的三级模式和两层映像的含义。
P31答:数据库的三级模式是指数据库系统是由模式、外模式和内模式三级工程的,对应了数据的三级抽象。
两层映像是指三级模式之间的映像关系,即外模式/模式映像和模式/内模式映像。
4.请简述关系模型与网状模型、层次模型的区别。
P35使用二维表结构表示实体及实体间的联系建立在严格的数学概念的基础上概念单一,统一用关系表示实体和实体之间的联系,数据结构简单清晰,用户易懂易用存取路径对用户透明,具有更高的数据独立性、更好的安全保密性。
第二章关系数据库选择题C、C、D简答题1.请简述关系数据库的基本特征。
P48答:关系数据库的基本特征是使用关系数据模型组织数据。
2.请简述什么是参照完整性约束。
P55答:参照完整性约束是指:若属性或属性组F是基本关系R的外码,与基本关系S的主码K 相对应,则对于R中每个元组在F上的取值只允许有两种可能,要么是空值,要么与S中某个元组的主码值对应。
3.请简述关系规范化过程。
答:对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。
全国计算机等级考试四级教程—数据库原理
全国计算机等级考试四级教程——数据库原理(2013版)2015年4月9日录入目录第1章数据库原理概述............................................................................................................ - 7 -1.1 数据库技术基本概念................................................................................................... - 7 -1.1.1 信息、数据与数据处理.................................................................................... - 7 -1.1.2 数据库、数据字典、数据库管理系统、数据库系统 .................................... - 7 -1.1.3 数据库系统中的人员........................................................................................ - 8 -1.2 数据管理技术的产生与发展....................................................................................... - 8 -1.3 数据库方法与文件系统方法....................................................................................... - 9 -1.3.1 数据库库方法的优势........................................................................................ - 9 -1.3.2 数据库与文件系统............................................................................................ - 9 -1.4 数据库应用简史........................................................................................................... - 9 -1.5 数据库技术的研究领域............................................................................................. - 10 -第2章数据模型和数据库系统的模式结构.......................................................................... - 10 -2.1 数据模型和数据模型的组成要素............................................................................. - 10 -2.1.1 数据模型的概念.............................................................................................. - 10 -2.1.2 数据模型组成的要素...................................................................................... - 10 -2.2 数据模型的分类......................................................................................................... - 10 -2.3 概念数据库模型——E-R模型 ................................................................................. - 11 -2.3.1 概念数据模型的产生和基本概念.................................................................. - 11 -2.3.2 概念模型的一种表示方法——E-R图........................................................... - 11 -2.4 常用的逻辑数据模型................................................................................................. - 11 -2.4.1 层次和网状模型.............................................................................................. - 11 -2.4.2 关系模型.......................................................................................................... - 11 -2.4.3 面向对象模型.................................................................................................. - 12 -2.4.4 对象-关系数据模型 ........................................................................................ - 12 -2.5 数据库系统的模式..................................................................................................... - 12 -2.5.1 数据库系统中模式、实例和数据状态的概念.............................................. - 12 -2.5.2 数据库系统的三级模式结构.......................................................................... - 12 -2.5.3 数据库的两层映像与数据独立性.................................................................. - 13 -第3章关系数据模型和关系数据库系统.............................................................................. - 13 -3.1 关系数据库系统概述................................................................................................. - 13 -3.1.2 关系数据模型.................................................................................................. - 13 -3.2 关系模型的数据结构................................................................................................. - 14 -3.2.1 关系模型的数据结构和基本术语.................................................................. - 14 -3.2.2 关系的形式定义和关系数据库对关系的限定.............................................. - 14 -3.2.3 关系数据库中常用的表示方法...................................................................... - 15 -3.3 关系模型的完整性约束............................................................................................. - 15 -3.3.1 关系模型完整性约束的分类.......................................................................... - 15 -3.3.2 实体完整性约束.............................................................................................. - 15 -3.3.3 参照完整性约束.............................................................................................. - 15 -3.3.4 用户定义完整性约束...................................................................................... - 16 -3.3.5 关系模型完整性约束的检查.......................................................................... - 16 -3.4 关系操作语言——关系代数..................................................................................... - 16 -3.4.2 基于传统集合论的关系操作.......................................................................... - 17 -3.4.3 一元专门关系操作.......................................................................................... - 17 -3.4.4 二元的专门关系操作...................................................................................... - 17 -3.4.5 扩展关系操作.................................................................................................. - 17 -第4章关系数据库标准语言SQL(一)............................................................................... - 18 -4.1 SQL概述..................................................................................................................... - 18 -4.1.1 结构化查询语言SQL..................................................................................... - 18 -4.1.2 SQL语言的特点............................................................................................. - 18 -4.1.3 SQL的数据类型............................................................................................. - 19 -4.1.4 SQL对关系数据库模..................................................................................... - 19 -4.1.5 SQL语言的组成和语句类型......................................................................... - 20 -4.2 SQL的数据定义......................................................................................................... - 21 -4.2.1 模式的定义和删除........................................................................................ - 21 -4.2.2 基本表的定义、删除和修改........................................................................ - 21 -4.2.3 索引的建立和删除........................................................................................ - 22 -4.2.4 域的建立和删除............................................................................................ - 22 -4.3 SQL的数据查询......................................................................................................... - 23 -4.3.1 简单查询........................................................................................................ - 23 -4.3.2 连接查询........................................................................................................ - 24 -4.3.3 嵌套查询........................................................................................................ - 24 -4.3.4 集合查询........................................................................................................ - 25 -4.3.5 SQL中的连接表和外连接............................................................................. - 25 -4.4 SQL的数据修改......................................................................................................... - 26 -4.4.1 插入数据........................................................................................................ - 26 -4.4.2 删除数据........................................................................................................ - 26 -4.4.3 更新数据........................................................................................................ - 26 -4.5 SQL的数据控制......................................................................................................... - 26 -4.5.1 权限授予........................................................................................................ - 26 -4.5.2 权限收回........................................................................................................ - 27 -第5章关系数据库标准语言SQL(二)............................................................................... - 27 -5.1 SQL视图..................................................................................................................... - 27 -5.1.1 视图的概念和定义........................................................................................ - 27 -5.1.2 视图的查询.................................................................................................... - 28 -5.1.3 视图的修改.................................................................................................... - 28 -5.1.4 视图的作用.................................................................................................... - 28 -5.2 数据库程序设计........................................................................................................ - 28 -5.2.1 数据库程序设计概述.................................................................................... - 28 -5.2.2 数据库程序设计方法.................................................................................... - 29 -5.2.3 数据库程序设计中的交互序列.................................................................... - 29 -5.3 SQL的存储过程与SQL/PSM...................................................................................... - 29 -5.3.1 SQL存储过程与函数概述............................................................................. - 29 -5.3.2 SQL/PSM.......................................................................................................... - 29 -5.3.3 创建、执行和删除存储过程和函数............................................................ - 30 -5.4 SQL触发器................................................................................................................. - 32 -5.4.1 触发器概述.................................................................................................... - 32 -5.4.2 创建触发器.................................................................................................... - 32 -5.4.3 触发器的激活................................................................................................ - 33 -5.4.4 删除触发器.................................................................................................... - 33 -5.4.5 触发器示例.................................................................................................... - 33 -5.5 嵌入式SQL................................................................................................................. - 33 -5.5.1 嵌入式SQL概述............................................................................................ - 33 -5.5.2 使用嵌入式SQL时应解决三个问题............................................................ - 34 -5.5.3 嵌入式SQL程序的组成................................................................................ - 34 -5.5.4 在嵌入式SQL中使用游标检索多个元组.................................................... - 35 -5.6 动态SQL..................................................................................................................... - 35 -5.6.1 动态SQL的概念和作用................................................................................ - 35 -5.6.2 动态SQL的语句类型和执行方式................................................................ - 35 -5.7 SQL的其他功能......................................................................................................... - 36 -第6章关系数据库的规范化理论与数据库设计.................................................................. - 36 -6.1 “不好”的关系模式中存在问题............................................................................ - 36 -6.2 函数依赖.................................................................................................................... - 37 -6.2.1 函数依赖的定义............................................................................................ - 37 -6.2.2 函数依赖的逻辑蕴涵.................................................................................... - 37 -6.2.3 码.................................................................................................................... - 37 -6.2.4 函数依赖的公理系统.................................................................................... - 37 -6.3 1NF、2NF、3NF和BCNF............................................................................................ - 38 -6.3.1 1NF及进一步规范化..................................................................................... - 38 -6.3.2 2NF.................................................................................................................. - 38 -6.3.3 3NF.................................................................................................................. - 38 -6.3.4 BCNF................................................................................................................ - 38 -6.4 多值依赖和4NF......................................................................................................... - 39 -6.5 关系模式的分解........................................................................................................ - 39 -6.5.1 模式分解的等价标准.................................................................................... - 40 -6.5.2 关于模式分解的几个事实............................................................................ - 40 -6.6 数据库设计................................................................................................................ - 40 -6.6.1 设计过程概览................................................................................................ - 40 -6.6.2 概念结构设计................................................................................................ - 40 -6.6.3 逻辑结构设计................................................................................................ - 41 -6.6.4 物理结构设计................................................................................................ - 41 -6.7 规范化理论在数据库设计中的应用........................................................................ - 41 -第7章数据库系统实现技术.................................................................................................. - 42 -7.1 数据库管理系统概述................................................................................................ - 42 -7.1.1 数据库管理系统的基本功能................................................................................ - 42 -7.1.2 数据库管理系统的主要成分和工作流程............................................................ - 42 -7.2 存储管理.................................................................................................................... - 42 -7.2.1 物理存储介质简介........................................................................................ - 42 -7.2.3 缓冲区管理.................................................................................................... - 43 -7.2.4 数据字典........................................................................................................ - 43 -7.2.5 索引结构........................................................................................................ - 43 -7.3 查询处理.................................................................................................................... - 44 -7.3.1 查询处理概述................................................................................................ - 44 -7.3.2 查询执行........................................................................................................ - 44 -7.3.3 查询优化........................................................................................................ - 44 -7.4 事务管理.................................................................................................................... - 45 -7.4.2 故障恢复........................................................................................................ - 45 -7.4.3 并发控制........................................................................................................ - 46 -第8章数据库系统的体系结构和安全性.............................................................................. - 46 -8.1 概述............................................................................................................................ - 46 -8.2 分布式数据库系统体系结构.................................................................................... - 46 -8.2.1 分布式数据库系统的主要特点.................................................................... - 46 -8.2.2 分布式数据库的设计技术............................................................................ - 47 -8.2.3 分布式数据库中的查询处理........................................................................ - 47 -8.2.4 分布式数据库系统的并发控制.................................................................... - 47 -8.2.5 分布式恢复.................................................................................................... - 48 -8.3 客户机/服务器数据库体系结构...................................................................... - 48 -8.3.1 客户机/服务器计算模式.............................................................................. - 48 -8.3.2 面向WEB应用的数据库体系结构................................................................ - 48 -8.3.3 面向WEB应用的软件开发............................................................................ - 48 -8.4 安全数据库以及数据库的安全性............................................................................ - 49 -8.4.1 数据安全性问题概述.................................................................................... - 49 -8.4.2 基于授予收回权限的自主访问控制............................................................ - 50 -8.4.3 多级安全性的强制访问控制........................................................................ - 50 -8.4.4 基于角色访问控制........................................................................................ - 50 -8.4.5 统计数据库的安全性.................................................................................... - 50 -8.4.6 加密................................................................................................................ - 51 -8.4.7 可信计算机系统评估标准............................................................................ - 51 -第9章数据库技术的发展...................................................................................................... - 51 -9.1 对象及对象-关系数据库.......................................................................................... - 51 -9.1.1 面向对象数据库基本概念............................................................................ - 51 -9.1.2 对象数据库标准、语言和设计.................................................................... - 52 -9.1.3 对象-关系数据库模型.................................................................................. - 52 -9.2 几种应用数据库系统................................................................................................ - 52 -9.2.1 主动数据库.................................................................................................... - 52 -9.2.2 移动数据库.................................................................................................... - 52 -9.2.3 多媒体数据库................................................................................................ - 52 -9.3 数据仓库.................................................................................................................... - 52 -9.3.1 数据仓库的基本概念.................................................................................... - 53 -9.3.2 数据仓库的数据模型.................................................................................... - 53 -9.3.3 数据仓库体系结构........................................................................................ - 53 -9.4 数据挖掘.................................................................................................................... - 53 -9.4.1 知识发现与数据挖掘.................................................................................... - 54 -9.4.2 关联分析........................................................................................................ - 54 -9.4.3 分类和聚类.................................................................................................... - 54 -第1章数据库原理概述1.1 数据库技术基本概念1.1.1 信息、数据与数据处理1.信息现实世界事物的存在方式或运动状态的反映。
《数据库原理及技术》教材习题参考答案
《数据库原理及技术》教材习题参考答案第1章习题一、选择题:1A、2A、3A、4A、5B、6C、7C、8A、9A、10C二、填空题:1、有组织的、可共享2、文件系统、数据库3、数据结构、数据操作、完整性约束4、共享性高5、关系6、数据逻辑7、数据库8、数据模型9、用户10、DBMS、DBMS第2章习题一、选择题:1A、2C、3B、4C、5A、6B、7B、8B、9C、10C二、填空题:1、实体2、查询3、ALPHA4、二维表、行、列5、定义数据库6、R(U,D,dom,F)7、集合8、关系数据库的型或模式、关系数据库的值9、外键10、连接第3章习题一、选择题:1C、2B、3D、4C、5A、6A、7D、8C、9C、10D二、填空题:1、定义2、SQL3、结构化查询语言4、基本表或视图5、更新6、insert、update、delete7、零个或多个字符8、零个或单个字符9、select 10、order by第4章习题一、选择题:1C、2A、3C、4C、5A、6B、7A、8B、9D、10B二、填空题:1、部分函数、完全函数2、数据冗余大、插入异常、删除异常3、x真子集x’都有x’y4、Y X、Y X5、K U6、全码、非主属性7、有效、完备8、函数、多值、连接9、INF 10、低范式、高范式第5章习题一、选择题:1A、2A、3B、4D、5B、6A、7A、8C、9A、10B二、填空题:1、安全性、完整性、并发性控制、数据库恢复2、安全3、用户标识与鉴定、存取控制、定义视图、数据加密、审计4、设置用户标识(用户名与口令)、鉴定用户标识5、完整性6、commit、rollback7、粒度8、撤消代价小的事务、撤消用户等级低的事务9、撤消代价小的事务10、DB后备副本、存储的日志文件第6章习题一、选择题:1C、2A、3D、4C、5B、6A、7D、8A、9B、10D二、填空题:1、属性冲突、命名冲突、结构冲突2、数据项3、属性4、学号、课程编号5、记录存储结构、存储路径、记录集簇6、聚簇7、结构、行为、数据模型8、概念结构设计、逻辑结构设计9、DBMS 10、数据模型。
数据库原理及应用第二版-第-章习题答案-课后习题
第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
答:数据是描述事物的符号记录,是数据库中存储的基本对象。
数据库是存放数据的仓库,是长期存储在计算机中的有组织的、可共享的大量数据的集合。
数据库管理系统是一个专门用于实现对数据进行管理和维护的系统软件。
数据库系统是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。
2.数据管理技术的发展主要经历了哪几个阶段?答:数据管理技术的发展主要经历了文件管理和数据库管理两个阶段。
3.与文件管理相比,数据库管理有哪些优点?答:将相互关联的数据集成在一起,具有较少的数据冗余,程序与数据相互独立,保证数据的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。
4.在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么?答:不需要。
因为在数据库系统中,数据的存储位置以及存储结构保存在数据库管理系统中,从数据到物理存储位置的转换是由数据库管理系统自动完成的。
5.在数据库系统中,数据库的作用是什么?答:在数据库系统中,数据库是存放数据的场所。
6.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗?答:不能。
7.数据独立性指的是什么?它能带来哪些好处?答:数据独立性指的是数据的逻辑独立性和物理独立性。
逻辑独立性带来的好处是当表达现实世界信息的逻辑结构发生变化时,可以不影响应用程序;物理独立性带来的好处是当数据的存储结构发生变化时,可以不影响数据的逻辑组织结构,从而也不影响应用程序。
8.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?答:数据库系统由四个主要部分组成,即数据库、数据库管理系统、应用程序和系统管理员。
数据库是数据的汇集,它以一定的组织形式存于存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;系统管理员负责数据库的规划、设计、协调、维护和管理等工作;应用程序指以数据库数据为核心的应用程序。
数据库原理及应用复习题 3
ti数据库原理及应用复习题一、填空题1、事务的ACID特性指的是:一致性、原子性、持久性和隔离性。
2、实体-联系模型的基本要素是: 实体、属性、联系。
3.计算机能够处理的数据模型根据应用目的不同,可以分成不同层次的三类:概念模型,数据模型,逻辑模型。
(3、)目前最常用的数据模型有:_关系_____、层次、网状。
4、数据管理技术的发展主要经历了以下三个阶段:人工管理、文件系统、数据库系统。
5、关系的三类完整性约束:实体,参照、用户定义。
6、关系模型由三部分组成:数据结构、操纵及完整性约束、存储结构。
7、分E-R图之间的冲突主要有3类:属性、命名、结构。
8、模式分解等价的标准有: 具有无损连接性、保持函数依赖、既要保持函数依赖又要具有函数依赖。
9、数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。
10、DBMS的功能应包括下面几类:数据定义、数据操纵、数据库运行管理、数据库组织,存储和管理、数据库建立,维护和其他。
11.目前最常用的数据模型有:层次模型,网状模型,关系模型。
12.数据库系统中的故障类型有:事务内部的故障,系统故障,介质故障,和计算机病毒故障。
二、单项选择题1、现在采用的概念模型主要是( A )。
A.实体-联系模型B.结构模型C.数据模型D.抽象模型2、数据字典通常包括( D)A.数据项和数据结构B.数据流和数据存储 C.处理过程D.ABC均正确。
3、完整性约束条件作用的对象层次有:( D )A.列级 B.元组级 C.关系层 D.ABC均正确4、SQL语言中,条件“年龄BETWEEN 20 AND 30”表示年龄在20至30之间,且(A)。
A.包括20岁和30岁B. 不包括20岁和30岁C.包括20岁但不包括30岁D. 包括30岁但不包括20岁5、SQL语言具有( B)的功能A.关系规范化、数据操纵、数据控制台B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵6、语句SELET COUNT(*) FROM human返回(A)行。
自考数据库系统原理(第3章)(代码:4735)练习题3
练习题33.1解释下列名词1.函数依赖:设有关系模式R (U ),X 和Y 是属性集U 的子集,函数依赖(functional dependency ,简记为FD )是形为X →Y 的一个命题,只要r 是R 的当前关系,对r 中任意两个元组t 和s ,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FD X →Y 在关系模式R (U )中成立。
这里t[X]表示元组t 在属性集X 上的值,其余类同。
X →Y 读作“X 函数决定Y ”,或“Y 函数依赖于X ”。
FD 是对关系模式R 的一切可能的关系r 定义的。
对于当前关系r 的任意两个元组,如果X 值相同,则要求Y 值也相同,即有一个X 值就有一个Y 值与之对应,或者说Y 值由X 值决定。
因而这种依赖称为函数依赖。
2.平凡的函数依赖对于FD X →Y ,如果Y ⊆X ,那么称X →Y 是一个“平凡的FD ”,否则称为“非平凡的FD ”。
正如名称所示,平凡的FD 并没有实际意义,根据规则A1就可推出。
人们感兴趣的是非平凡的FD 。
只有非平凡的FD 才和“真正的”完整性约束条件相关。
从规则A4和A5,立即可得到下面的定理。
定理 3.3 如果A 1……An 是关系模式R 的属性集,那么X →A 1……An 成立的充分必要条件是X →Ai (i=1,…,n )成立。
3.函数依赖集F 的闭包F +(Closure )设F 是函数依赖集,被F 逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集F 的闭包(Closure ),记为F +。
即F +={ X →Y | F|=X →Y }。
4.属性集X 的闭包X +设F 是属性集U 上的FD 集,X 是U 的子集,那么(相对于F )属性集X 的闭包用X +表示,它是一个从F 集使用FD 推理规则推出的所有满足X →A 的属性A 的集合:X +={属性A | F|=X →A }5.函数依赖的逻辑蕴含设F 是在关系模式R 上成立的函数依赖的集合,X →Y 是一个函数依赖。
(精品) 数据库原理课件:数据库完整性
15
三、参照完整性的实现
例:职工-部门数据库包含职工表EMP和部门表DEPT
1 DEPT关系的主码为部门号Deptno 2 EMP关系的主码为职工号Empno, 外码为部门号Deptno
称DEPT为被参照关系或目标关系,EMP为参照关系
RDBMS实现参照完整性时需要考虑以下4方面:
2021/1/8
2021/1/8
10
一、DBMS的完整性控制机制
1. 定义功能
一个完善的完整性控制机制应该允许用户定义各类完整性 约束条件。
2021/1/8
11
DBMS的完整性控制机制(续)
2. 检查功能
立即执行的约束(Immediate constraints)语句执行 完后立即检查是否违背完整性约束
延迟执行的约束(Deferred constrainsts)完整性检 查延迟到整个事务执行结束后进行
完整性:是否真实地反映现实世界
2021/1/8
2
完整性控制机制
1.完整性约束条件定义机制 2.完整性检查机制 3.违约反应
2021/1/8
3
完整性约束条件定义
完整性约束条件:数据模型的组成部分约束数据库中 数据的语义
DBMS应提供定义数据库完整性约束条件,并把它们 作为模式的一部分存入数据库中
级联修改 受限修改 置空值修改
2021/1/8
18
允许修改主码策略
级联修改
修改被参照关系中主码值同时,用相同的方法修改参照 关系中相应的外码值。
受限修改
拒绝此修改操作。只当参照关系中没有任何元组的外码 值等于被参照关系中某个元组的主码值时,这个元组的 主码值才能被修改。
置空值修改
修改被参照关系中主码值,同时将参照关系中相应的外 码值置为空值。
《数据库原理及应用》复习题及答案[1](2)
《数据库原理及应用》复习题及答案[1](2)数据库原理及应用复习题填空题1.事务的ACID特性指的是:原子性、一致性、隔离性和持久性。
2.实体-联系模型的基本要素是:实体、联系、属性。
3.目前最常用的数据模型有:层次模型、网状模型、关系模型。
4.数据管理技术的发展主要经历了以下三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段。
5.关系的三类完整性约束:域完整性、实体完整性、参照完整性。
6.关系模型由三部分组成:数据结构、数据操作或运算、完整性约束。
7.各分E-R图之间的冲突主要有3类:属性冲突、命名冲突、结构冲突。
8.模式分解等价的标准有:分解具有无损连接性、分解要保持函数依赖、分解既要保持函数依赖,又要具有无损连接性。
9.数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。
10.DBMS单项选择题1.现在采用的概念模型主要是(A)。
A.实体-联系模型B.结构模型C.数据模型D.抽象模型2.数据字典通常包括(D)A.数据项和数据结构B.数据流和数据存储C.处理过程D.ABC均正确。
3.完整性约束条件作用的对象层次有:(D)A.列级 B.元组级 C.关系层 D.ABC均正确4.SQL语言中,条件“年龄BETWEEN 20 AND 30”表示年龄在20至30之间,且(A)。
A.包括20岁和30岁B. 不包括20岁和30岁C.包括20岁但不包括30岁D. 包括30岁但不包括20岁5.SQL语言具有(B)的功能A.关系规范化、数据操纵、数据控制台B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵6.语句SELET COUNT(*) FROM human返回(A)行。
A.1B.2C.3D.47.在SQL语言中,子查询是(D)。
A.返回单表中数据子集的查询语句B.选取多表中字段子集的查询语句C.选取单表中字段子集的查询语句D.嵌入到另一个查询语句之中的查询语句8.假设数据表“test1” 中有10 条数据行,可获得最前面两条数据行的命令为(B)A.SELECT 2 * FROM test1B.SELECT TOP 2 * FROM test1C.SELECT PERCENT 2 * FROM testD.SELECT PERCENT 20 * FROM test19.并发操作不会带来的问题:(B)A.丢失更新B.可重复读C.未提交读D.幻象读10.有两种错误可能造成事务执行失败:(C)A.逻辑错误和数据错误 B.系统错误和数据错误C.逻辑错误和系统错误 D.均不正确11.关系模型是用(B)来表示数据之间的联系。
04735数据库系统原理(2018版)课后习题参考答案.pdf
2.请简述什么是参照完整性约束。 P55
答:参照完整性约束是指:若属性或属性组 F 是基本关系 R 的外码,与基本关系 S 的主码 K
相对应,则对于 R 中每个元组在 F 上的取值只允许有两种可能,要么是空值,要么与
S中
某个元组的主码值对应。
3.请简述关系规范化过程。
答:对于存在数据冗余、 插入异常、 删除异常问题的关系模式,应采取将一个关系模式分解
实体集 B 中的每个实体,实体集 A 中最多只有一个实体与之联系。举例:班级与班级成员,
每个班级对应多个班级成员,每个班级成员只对应一个班级。
多对多联系:对于实体集 A 中的每个实体,实体集 B 中有 N 个实体与之联系,反之,对于
实体集 B 中的每个实体,实体集 A 中有 M 个实体与之联系。举例:授课班级与任课教师,
3.请简述数据库系统的三级模式和两层映像的含义。
P31
答:
数据库的三级模式是指数据库系统是由模式、 外模式和内模式三级工程的, 对应了数据的三
级抽象。
两层映像是指三级模式之间的映像关系,即外模式
/ 模式映像和模式 / 内模式映像。
4.请简述关系模型与网状模型、层次模型的区别。
P35
使用二维表结构表示实体及实体间的联系
来自于定义视图的查询所引用的基本表。 视图不适宜数据集的形式存储在数据库中的,
它所对应的数据实际上是存储在视图所引用的
基本表中的。
视图是用来查看存储在别处的数据的一种虚拟表,本身不存储数据。
文档鉴赏
第五章 数据库编程
简答题
1. 请简述存储过程的概念 P125
存储过程是一组为了完成某项特定功能的
SQL 语句集,经过编译后存储在数据库中,可以
数据库原理及应用.
延迟执行的约束(Deferred constrainsts):完整性检 查延迟到整个事务执行结束后进行。
违约反应:若用户的请求使数据违背了完整性约束条 件,则采取一定的动作来保证数据的完整性。
数据库原理及应用
5
动态元组约束:修改元组值时元组中各个字段应满足的约束条 件。如职工工资调整时新工资不得低于原工资+工龄*1.5。 动态关系约束:加在关系变化前后状态上的限制条件。如事务 的一致性、原子性等约束条件。
数据库原理及应用
6
2
完整性控制
DBMS的完整性控制机制应具有以下三方面功能
定义功能:提供定义完整性约束条件的机制。
完整性约束条件:是数据模型组成部分中施加在数据库数据之 上的语义约束条件,是完整性控制的核心, DBMS应提供定义 数据库完整性约束条件,并把它们作为模式的一部分存入数据 库中。其作用的对象可以是列、元组、关系。列约束主要是列 的类型、取值范围、精度、排序等约束条件;元组约束是元组 中各个字段间联系的约束;关系的约束是若干元组间、关系集 合上以及关系之间的联系的约束。完整性约束条件涉及上述三 类对象,其状态可以静态的,也可以是动态的。
数据库原理及应用
11
在被参照关系中删除元组时的问题:当删除被参照 关系的某个元组,而参照关系有若干元组的外码 值与被删除的被参照关系的主码值相同,这时有 三种不同策略:
对数据格式的约束。如出生日期的格式为YY.MM.DD。 对取值范围或取值集合的约束。如性别的取值范围是[男,女]。 对空值的约束。如学号不能为空,成绩可以为空。 其他约束。如关于列的排序。
数据库系统概论(第五版)第3章(1)课件
PPT学习交流
30
3.3 数据定义
3.3.1 模式的定义与删除 3.3.2 基本表的定义、删除与修改 3.3.3 索引的建立与删除
PPT学习交流
31
3.3.2 基本表的定义、删除与修改
• 定义基本表
CREATE TABLE <表名> (<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ]
课程名 Cname 数据库
数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言
先行课 Cpno
5
1 6 7
6
学分 Ccredit
4 2 4 3 4 2 4
PPT学习交流
20
SC表
学号 Sno 201215121 201215121 201215121 201215122 201215122
DROP INDEX
修改 ALTER TABLE ALTER INDEX
PPT学习交流
23
模式
数据库(有的系统称为目录)
模式
表以及视图、索引等
• 现代关系数据库管理系统提供了一个层次化的数据库 对象命名机制
• 一个关系数据库管理系统的实例(Instance)中可以建立 多个数据库
• 一个数据库中可以建立多个模式 • 一个模式下通常包括多个表、视图和索引等数据库对象
PPT学习交流
18
Student表
学号 Sno
姓名 Sname
201215121 李勇
201215122 刘晨201215123 王敏201215125 张立
MySQL数据库原理及应用第3章教案
第3章关系模型及关系代数关系数据库以关系模型为基础,是目前各类数据库中最重要、最流行的数据库,它应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。
1970年,IBM公司研究员E.F.Codd博士发表题为“大型共享数据库的关系模型”论文,文中首次提出关系模型,而后又发表了多篇文章提出关系代数和关系演算的概念,并于1972年提出第一范式、第二范式等关系模型的规范化理论,进一步对关系模型的概念进行完善。
【学习目标】●关系模型的三类完整性约束:实体完整性、参照完整性和用户自定义完整性●三种关系数据语言:关系代数、关系演算、基于映像的语义SQL●关系的运算:传统的集合运算和专门的关系运算●关系代数表达式3.1关系模型三要素关系模型相比非关系模型最大的优点就是其数据结构单一,实体集和实体集间联系的数据均用关系表示,数据操作方法统一,易于用户掌握和理解。
关系操作采用集合操作,即操作对象和结果都是集合。
关系模型中常用的关系操作包括:并、交、差、广义笛卡尔积、选择、投影、连接、除等查询操作和添加、删除、修改等更新操作两个部分,查询的表达能力是其最主要的部分。
关系模型提供了丰富的完整性控制机制,允许定义三类完整性约束:实体完整性、参照完整性和用户自定义完整性。
3.1.1关系数据结构1.关系的相关名词(1)关系(2)元组(3)属性(4)候选码和主码(5)主属性和非主属性2.关系的数学定义(1)域(Domain)(2)笛卡尔积(3)关系3.关系的限定关系数据库中关系要满足的基本特性如下:(1)关系中每个分量必须取原子值(2)关系中同一列的数据应具有相同的数据类型(3)关系中不能有相同的属性名(4)关系中不能有两个完全相同的元组(5)关系中的元组和列的位置具有顺序无关性4.关系模式和关系关系的结构用关系模式表示,是相对稳定,一个关系数据库的结构一旦定义好就不能随便修改;关系的数据是动态的,反映了关系在某一时刻的状态,随着数据库使用过程中对数据的更新操作,关系中的数据会实时发生变化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<( select count( * ) from teacher )*0.6 )
断言是不与任何一个表相联系的约束。
3) 定义触发器(Trigger) 触发器是一种特殊的存储过程,它在插入、删 除、修改特定表中的数据时,触发执行(由DBMS
自动调用)。它能提供比数据库本身标准功能更精
细、更复杂的数据控制能力。可用于数据库的安全 性控制和完整性检查。 请看下页范例:
器。
触发器的功能 触发器对于强制执行的工作是非常有用的,
它主要用于下面两种情况:
1、保证数据的完整性和一致性。当规则太复
杂,不能用数据定义语言(DDL)定义它们、这时使
用触发器非常有效;
2、实现数据之间逻辑联系的业务规则。
例如:在职工表中插入一个新的职工记录时,业务规 则要求职工的工作终止日期字段是一个空值。这个规则不
create table Teacher( Tno integer Primary Key, Tname char(6) not null, Title char(6), Dept char(10)); insert into Teacher values (101,'李华','讲师','计算机');
时触发; ● 删除触发器 (Delete trigger),在表中企图删除记录 时触发; ● 修改触发器 (Update trigger),在表中企图修改记录 时触发。
触发器的其他用途
触发器的许多使用都超出了完整性维护的范围。例如,
希望知道一个发出订单的顾客是否在上月进行了足够的交
易以至满足了公司规定的打折条件。如果是这样,业务员 必须被告之,从而通知顾客,以便达到促销的目的。 触发器能够产生事件的日志,同时支持审计和安全检 查。
create Table Course( Cno integer not null, Tno integer not null, Cname char(10) not null, credit numeric(3,1) not null, Primary key(cno,tno)); insert into Course values(1,101,'数据库',3.5);
触发器和存储过程
当对一个表执行特定的操作时,被调用或者被‚触发‛
的SQL语句称为触发器。触发器能够依次调用SQL语句或 者存储过程。 触发器是事件驱动的SQL代码,当插入、删除、修改 指定的表和列中的数据时,这些代码将自动执行,因此触 发器总是与特定的数据库表及特定的数据库事件(如插入 (Insert)、删除(Delete)、修改(Update)等)相联系。
能使用数据定义语言中CREATE TABLE语句定义,它需要
一个触发器。 对于不能由其它手段实现的规则可考虑使用触发器, 以此改善系统的效率。如:参照完整性、表或列的约束等。
触发器的类型
触发器是根据所触发事件的类型进行分类的。通常的
RDBMS支持三种类型的触发器: ● 插入触发器 (lnsent trigger),在表中企图插入记录
触发器的优点
触发器不依赖于任何客户端应用程序,也不依赖于
访问数据库的语言。触发器有如下优点:
1、标准化。在整个应用上,触发器保证了数据的完整 性和一致性,一旦在表上建立了触发器,它就存储在数据 库中;这种方法消除了各个客户应用程序的冗余编码,便 于规则发生变化时对编码进行修改;
2、高效率。触发器初始执行后,作为编译的代码执行。 它的运行速度快,与在客户工作站上执行这些代码相比, 在服务器上执行这些代码减少了网络通讯量和网络冲突; 触发器把数据完整性代码放在服务器平台上比放在客户工 作站上更有效; 3、安全性。触发器运行要有表主人的授权,但是,触 发器能够被在表中插入、删除、修改记录的任何一个用户 触发。任何一个应用程序或交互式子用户都无法避开触发
create table Teacher( Tno integer Primary Key, Tname char(6) not null, Title char(6), Dept char(10));
问题:每学期上课教师的人数不高于教师总数的60%
Create assertion sum-constraint check ( ( select count(distinct Tno) from course )
FOREIGN KEY 约束 用来约束两个表间的关系(也称引用完整性约束) 医生记录 唯一性约束 编号 姓名 年龄 职称 病员记录 编号 姓名 主治医生姓名
外键
注意:Oracle/SQL Server规定,外键只能引用在引用表 中Primary Key或Unique约束的列。
2、DBMS中的完整性约束实现机制
定义存储过程1(无参数传递) Create or replace Procedure Pro_demo1 as begin delete from teacher; end; 调用存储过程 execute Pro_demo1;
定义存储过程2 (有参数传递)
Create or replace Procedure Pro_demo2( v_tno in number,v_title in varchar) as Begin update teacher set title=v_title where tno=v_tno; end;
2) 断言(Assertion) 一个断言就是一个谓词,表达了我们希望数 据库总能满足的一个条件。 请看下页示例:
create Table Course( Cno integer not null, Tno integer not null, Cname char(10) not null, credit numeric(3,1) not null, Primary key(cno,tno));
大区别在于它是预先编译好的,因此存储过程的执行较快。
2、改善了安全性。 存储过程简化了安全机制,它可以简化对某些操作的授 权。
3、减少了网络通讯量。 在客户/服务器环境下,存储过程经过编译和优化后, 存储在服务器端而不是客户端。 这样,在网络上传输的只 是一个远程调用和最终的执行结果,而不是一系列的SQL语
远程服务器上的存储过程。
5、提高了开发者的劳动生产率。
存储过程消除了开发者为一个事务或一个运算法则的 多次需求而编写和测试SQL语句的重复劳动。调用一个存
储过程比写SQL语句更快、更简单。
6、有利于专门技术的使用。 技术熟练的开发者能够集中精力,写出复杂查询、运 算法则和事务的存储过程。其它具有一般SQL经验的开发 者能够调用这些存储过程。
SQL中的完整性约束
完整性约束的目的是保证用户对数据库进行修
改时不会破坏数据的一致性(防止对数据的意外破
坏)。
注意:数据的完整性与安全性的概念区别。前者是为了防 止数据库中存在不符合语义的数据(防止数据垃圾),后
者是防止对数据的非法存取。
DBMS的完整性约束
数据库的完整性是指数据的正确性和相容性。 DBMS必须提供一些功能来保证数据库中数据的 完整性,也称其为完整性检查,即提供一定的机制 来检查数据库中的数据是否满足规定的条件(称为 完整性约束条件)。
Tno Title Dept
教师编号 姓名 职称 ຫໍສະໝຸດ 门TnameCno
Tno Credit
课程编号
教师编号 课程名称 学分
Cname
在Teacher表上定义一个删除触发器 create trigger trig_demo1 after delete on teacher for each row begin delete course where course.tno=:old.tno; end;
1) 定义表的约束条件 SQL> create table demo ( tno number(4,0) primary key, tname char(8) not null, sex char(2) check(sex in (‘男’,‘女’)), salary number(6,2) default(0), tcode number(4,0) unique, dept varchar2(200) );
调用存储过程
execute Pro_demo2(101,'教授');
例如,一个用户不希望别人在他的表上使 存储过程的设臵大大提高了SQL语句的功能、效率和灵 用SELECT语句,他可以写一个仅可以修 改这个表的某些行或列的存储过程,然后 活性,具体表现在: 将调用该过程的权限授给特定的用户,这 1、改善了性能。 样其它用户就可以通过该存储过程访问这 存储过程与原始SQL语句或批处理中的SQL语句的最 个表。
Oracle 9i
create trigger trig_demo2 on teacher for update as if update(Tno) begin Declare @old_Tno integer,@new_Tno integer select @old_Tno=Tno from deleted; select @new_Tno=Tno from inserted; update course SQL Server set course.Tno=@new_Tno where course.Tno=@old_Tno; end;
7、简化了应用的维护,增加了应用的灵活性。
存储过程有助于从应用逻辑中把业务规则分离出来。 当业务发生变化,需要修改业务规则时,这个变化只影响 存储过程。与改变、测试和调整一个及多个客户的成千上 万个用户程序相比,改变和测试存储过程是更有效、更省
create table father_t ( Cno integer primary key, Cname char(10) not null, Credit numeric(3,1) );