实验五 - 关系模型的完整性约束
实验五 - 关系模型的完整性约束---精品资料
(Tprof = '教授' and Tcomm = 4000 or Tprof = '副教授' and Tcomm = 2000 or Tprof = '讲师' and Tcomm = 1500 or Tprof = '助教' and Tcomm = 1000)
实验5.3 域完整性约束
①
②
实验5.3 域完整性约束
实验5.3 域完整性约束
用SQL删除表jx_Tea中的Tprof和Tcomm 之间的CHECK约束
??
交互式删除表TEST_S中列Sgender的 DEFAULT约束和列Sage的CHECK约束
实验报告
写出以上练习中要求用SQL语句实现的操 作
实验5.2 参照完整性约束
注意:建立外键关系 前,一定要先在jx_Stu 中对Sno建立PK
① ④ ② ③ ⑤
实验5.2 参照完整性约束
用SQL创建表jx_Tea与jx_TeaCourse之间 的参照关系
ALTER TABLE jx_TeaCourse WITH NOCHECK ADD CONSTRAINT FK_T_TC FOREIGN KEY (Tno) REFERENCES T(Tno) ON DELETE CASCADE
用SQL为现有表jx_Tea在Tno列上创建 PRIMARY KEY约束
打开“表设计器”,确认表jx_Tea中的Tno列 的“允许空”属性为“非空”(即没有√), 然后保存退出“表设计器”。 打开查询分析器,输入下列SQL语句
ALTER TABLE jx_Tea ADD CONSTRAINT PK_TNO PRIMARY KEY(Tno)
完整性约束实验
数据库的完整性约束一、实验目的1.掌握主键约束、外键约束及及check约束的用法;2.掌握默认值约束的应用;二、实验环境已安装SQL Server 企业版的计算机;具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.熟悉数据库完整性相关概念及约束;2.了解约束、默认值及规则;3.完成实验报告;五、实验内容及步骤以系统管理员身份登录到SQL Server服务器,并使用T-SQL语句实现以下操作;1.请用至少2种方法定义stu数据库中student表的主键sno;2.将数据库stu的表course的cno字段定义为主键,约束名称为cno_pk;3.为表course中的字段cname添加唯一值约束;4.将数据库stu的表sc的sno及cno字段组合定义为主键,约束名称为sc_pk;5.对于数据表sc的sno、cno字段定义为外码,使之与表student的主码sno及表course的主码cno对应,实现如下参照完整性:1)删除student表中记录的同时删除sc表中与该记录sno字段值相同的记录;2)修改student表某记录的sno时,若sc表中与该字段值对应的有若干条记录,则拒绝修改;3)修改course表cno字段值时,该字段在sc表中的对应值也应修改;4)删除course表一条记录时,若该字段在在sc表中存在,则删除该字段对应的记录;5)向sc表添加记录时,如果该记录的sno字段的值在student中不存在,则拒绝插入;6. 定义check约束,要求学生学号sno必须为9位数字字符,且不能以0开头,第二三位皆为0;(不用做)7. 定义stu数据库中student表中学生年龄值在16-25范围内;8. 定义stu数据库中student表中学生姓名长度在2-8之间;9. 定义stu数据库中student表中学生性别列中只能输入“男”或“女”;10. 定义stu数据库student表中学生年龄值默认值为20;11. 修改student表学生的年龄值约束可以为15-30范围内;(不用做)12. 删除上述唯一值约束、外键约束及check约束;13.向下列三个表中分别插入如下数据:SC表Course 表14、在上面的基础上分别向studentinfo 数据库中的student, course, sc 表中添加少8条数据。
实验五 数据库完整性与安全性实验
实验五数据库完整性与安全性实验1、实验目的1.通过对完整性规则的定义实现,熟悉了解kingbase中完整性保证的规则和实现方法,加深对数据完整性的理解。
2.通过对安全性相关内容的定义,熟悉了解kingbase中安全性的内容和实现方法,加深对数据库安全性的理解2、实验环境操作系统:Microsoft Windows 7旗舰版(32位)。
数据库版本:MySQL 6.23、实验内容3.1完整性实验:(1)分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;在create table 时已经定义了各个基表的主键。
因此,首先对每个基表删除主键,再添加主键。
实现实体完整性约束。
如下图。
删除主键:添加主键:sc表中的cno和sno分别是course表和student表的外关键字。
下图为给sc表添加student和course的外键,实现参照完整性约束。
alter table sc add constraint fk_student foreign key(sno) references student(sno);alter table sc add constraint fk_course foreign key(cno) references course(cno);主键和外键均添加成功,输入show create table 命令来查看各基表信息。
(2)分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束;向课程表中插入课程号为C01的课程。
向学生表中插入学号为30201的学生。
由上面两个实验来看,分别对student和course表插入具有相同学号和相同课程号的学生信息和课程信息,都显示sql语句错误信息为:Duplicate entry *** for key ‘PRIMARY’。
验证了实体完整性约束。
(3)向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;插入成绩信息是学号为31428(student中存在),课程号为C07(course中不存在)的学生成绩信息。
实验创建数据库及关系表数据完整性约束
实验创建数据库及关系表数据完整性约束CKBOOD was revised in the early morning of December 17, 2020.实验一创建数据库及关系表、数据完整性约束网工1203 熊健羲 38一、实验目的1. 掌握SQL Server数据库管理系统的使用,能够在该环境中进行日常数据库操作;2. 掌握在SQL Server中使用图形化工具创建数据库的方法;3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;4.掌握修改表结构的语句。
5.掌握数据完整性约束的功能。
二、实验内容和步骤1.创建符合如下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下;文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。
实验结果:2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。
实验结果:3.写出实现如下操作的SQL语句,并查看执行结果:(1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。
(2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。
(3)删除学生表的专业列。
(4)为教师表添加主码约束,其主码列为:教师号。
实验结果:4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。
(1)图书表,结构如下:书号:统一字符编码定长类型,长度为6,主码,书名:统一字符编码可变长类型,长度为30,非空,第一作者:普通编码定长字符类型,长度为10,非空,出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现)印刷数量:小整型,取值范围:1000~5000,默认为4000,价格:定点小数,小数部分一位,整数部分3位。
实验结果:(2)书店表,结构如下:书店编号:统一字符编码定长类型,长度为6,主码,店名:统一字符编码可变长类型,长度为30,非空,电话:普通编码定长字符类型,12位长,取值形式:010-8位数字地址:普通编码可变长字符类型,40位长。
数据库完整性约束的使用与实践
数据库完整性约束的使用与实践导言:数据库完整性约束是数据库设计和管理中非常重要的一部分。
它可以保证数据的正确性、合法性和一致性,防止数据被修改、删除或插入一些不符合规定的值。
在本文中,将探讨数据库完整性约束的类型和使用方法,并且通过实例进行实践和演示。
一、实体完整性约束实体完整性约束是保证表中每条记录都有一个唯一的标识,也就是主键。
主键是一个唯一的、非空的列,可以单独作为表中一行的识别符。
例如,在一个学生信息表中,学号可以作为主键,以确保每个学生都有独一无二的标识。
通过添加主键约束,可以防止重复记录的插入和修改。
二、参照完整性约束参照完整性约束用于保证关系型数据库中表之间的一致性。
它确保外键只能引用已存在的主键值。
外键是一个列,用于联系两个表中的数据。
例如,学生表和课程表之间可以通过学号和课程号建立联系。
当试图插入或修改一个外键值时,参照完整性约束会检查关联的主键值是否存在,如果不存在,就会拒绝该操作。
三、域完整性约束域完整性约束定义了列所能包含的值的范围和规则。
它确保每个列都只包含合法的值,并且符合预先定义的规则。
例如,一个年龄列可能需要限制在1到100之间的整数。
通过指定域完整性约束,可以防止插入超出范围的值,并保证数据的有效性和精确性。
四、检查完整性约束检查完整性约束允许数据库管理员指定一定的条件,以确保列的值满足特定的要求。
这些条件可以是简单的比较运算符,也可以是复杂的逻辑表达式。
例如,一个成绩表中的分数列可能需要大于等于0小于等于100。
通过添加检查完整性约束,可以方便地对输入的值进行验证,并提醒用户输入合法的数据。
五、实践演示为了更好地理解数据库完整性约束的使用和实践,我们以一个在线商城的数据库为例进行演示。
假设我们有以下四个表:1. 顾客表(Customer):顾客的ID、姓名、邮箱和电话号码。
2. 订单表(Order):订单的ID、日期、顾客ID和总金额。
3. 产品表(Product):产品的ID、名称和价格。
数据库作业答案5
基本概念和础知识
一 数据库的作用
1、数据库象一个仓库,仓库的用户是操作者或者是一 个程序。 2、 那么‘仓库’管理者是谁呢? 是一个称为DBMS的程序和称为DBA的系统管理人 员 3、 用户希望'仓库'做到什么呢? 能存储大量的'货物'(即数据),MB、GB、TB or PB级别的数据; 可以用多种方式、快速地从库中访问到'货物'; 能有同样的操作方法、且很容易地操作不同的库 一个库能支持多个并发用户同时存储和访问'货物' 保证'货物'绝对安全(防盗、防火、防洪、具有分 级的权限管理) …...
收集、分类和抽象 收集、 信息世界( 表示) 信息世界(E-R表示) 表示 加工转换 计算机世界( 支持的数据模型) 计算机世界(DBMS支持的数据模型) 支持的数据模型
• 逻辑数据模型 逻辑数据模型是用户从数据库所看到的数据 模型。比 概念数据模型更抽象,减少了一些日常的概念(如时间、 人物、环境等琐碎的现象)。与DBMS有关系(因为编程 时往往涉及到数据库设计)。逻辑数据模型既要面向用户, 也要面向实现。 典型模型:关系数据模型,网状数据模型、层次数据模 型 • 物理数据模型 反映数据存储结构的数据模型称为物理数据模型。物 理数据模型不仅与DBMS有关,而且与操作系统和硬件有 关。 概念数据模型只用于数据库的 现实世界 设计,逻辑数据模型和物理数据模型 收集、 收集、分类和抽象 用于DBMS的实现。 信息世界( 表示) 信息世界(E-R表示) 表示 物理数据模型面向实现。 加工转换
五、课程学习要点 1、难点:数据模型,复杂select命令,存储 技术,事务管理技术,关系模式的范式和规范化 一定要做作业,部分作业答案会自动批改 一定要做实验,在实验中验证自己的知识掌 握程度,并了解数据库产品的使用 2、 可以结合实际例子,来学习数据库的应 用 3、 本课程的重点内容: 第1章,第2章的关系数据模型和E-R数据模型, 第3章,第7章,第10,11章(数据库的基本概念、 sql、索引、事务、规范化、设计等);侧重于数 据库技术研究的同学,应全面地学习各章节内容。
第03章 关系运算和完整性约束
3. 静态元组约束:规定组成一个元组的各列的值 之间的约束关系。
4. 静态关系约束:关系的各元组之间或者若干关 系之间常常存在各种联系或者约束。实体完整 性、参照完整性、函数依赖和统计约束。
16
3.4 完整性约束类型
元组(操作),其余则成为关系代数的组合运算。
返回
26
广义笛卡尔积
ABC R a1 b1 c1
a1 b2 c2 a2 b2 c1
ABC S a1 b2 c2
a1 b3 c2 a2 b2 c1
R×S
A B CA BC
a1 b1 c1 a1 b2 c2 a1 b1 c1 a1 b3 c2 a1 b1 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 a2 b2 c1 a2 b2 c1
✓定义功能:为用户提供定义完整性约束条件的命 令或工具。
✓检查功能:能够自动检查用户发出的操作请求是 否违背了完整性约束条件。
✓违约处理:当发现用户的操作请求违背了完整性 约束条件时,能够自动采取一定的措施确保数据 的完整性不遭破坏。
18
3.4 完整性控制机制
由于实体完整性的定义和控制比较容易实现,因 此,下面主要讨论实现参照完整性需要考虑的几 个问题。 1.外码空值问题 2.被参照关系中删除元组问题 3.在参照关系中插入元组问题 4.元组中主码的修改问题
• 关系模式和关系的区别和联系:关系模式是表格的定 义,关系是一个具体的表格。
• 关系数据库也有型和值之分
关系模型的三类完整性约束
关系模型的三类完整性约束关系模型的三类完整性约束1 数据的完整性约束是用来确保数据的准确性和一致性。
数据的完整性就是对数据的准确性和一致性的一种保证。
数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。
分为以下四类:1 实体完整性:规定表的每一行在表中是惟一的实体。
2 域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
3 参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
4 用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。
用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
2 完整性约束的类型:可分为三种类型:与表有关的约束、域(Domain)约束、断言(Assertion) 1 与表有关的约束: 是表中定义的一种约束。
可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。
2 域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。
3 断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。
一、与表有关的约束:包括列约束(表约束+NOT NULL)和表约束(PRIMARY KEY、foreign key、check、UNIQUE) 。
(1) not null(非空)约束:只用于定义列约束。
语法如下:Colunm_name datatype | domain not null实例:create table Employee(emp_id int not null,emp_name varchar(10) notnull,address varchar(40) ,)创建之后,如果往表Employee表中非空约束中插入空值,insert into Employeevalues(1,null,'neimeng')将会出错。
实验八:数据库的完整性约束.doc
实验八:数据库的完整性约束.doc数据库的完整性约束是数据库管理系统的重要特性之一,它是指对数据库中数据的一些限制性约束条件。
这些限制条件可作用于数据库中的表、字段、关键字等,目的是为了保证数据库中的数据的完整性、一致性和准确性。
下面将详细介绍数据库的完整性约束。
一、完整性约束的种类数据库的完整性约束主要有以下几种:1.实体完整性:是指表中每条记录都必须存在一个唯一的主键值,也就是主键不能为空,同时要求表中不能存在两条相同的记录。
2.参照完整性:是指在关系型数据库中,如果一个表中的某个字段与另一张表的主键或唯一索引关联,那么这个表中的记录必须在关联表中有相应的记录。
3.域完整性:是指每个字段必须有一个有效的数据类型,同时对于每个字段还可以指定一些合法的取值范围。
4.用户定义的完整性:是指用户可以自定义一些限制条件,以便对数据库中的数据进行更复杂的限制。
1.确保数据的唯一性:通过实体完整性和参照完整性可以避免数据库中出现重复的记录和没有对应关系的记录。
2.限制数据的正确性:通过域完整性可以限制每个字段的取值范围,从而保证数据的正确性。
3.提高数据库性能:通过完整性约束可以避免不必要的查询操作,提高数据库的性能。
4.保护数据的安全性:通过完整性约束可以保护数据的安全性,防止数据被恶意篡改或删除。
1.在表定义时指定完整性约束:在创建表时可以指定表的主键、外键、检查约束等完整性约束。
2.使用触发器实现完整性约束:使用触发器可以实现更多复杂的完整性约束,例如在插入或修改记录时触发器会对数据进行验证,如不符合约束条件则拒绝操作。
3.使用存储过程实现完整性约束:存储过程也可以实现完整性约束,例如在存储过程中进行数据的验证和处理。
完整性约束通常用于以下几个场景:1.数据库的设计:在数据库设计中,应该考虑到数据库的完整性问题,因此在创建表时应该根据实际需求来定义合适的完整性约束条件。
2.数据的输入和修改:在数据进行输入和修改时,系统应该对输入的数据进行验证,如果不符合完整性约束条件,则需要提示用户进行修改。
使用完整性约束
use StudentElective go alter table Elective add constraint fk_Elective_course foreign key(cno) references course(cno)
任务实现
附加数据库bookborrow,将数据库“BookBorrow” 中表“Readersys”的rno字段设为主键。 将数据库“BookBorrow”中表“Booksys”的bno字 段设为主键。
当向数据库中的表内插入数据时,如果 用户没有明确给出某列的值,SQL Server自 动为该列输入指定值。创建默认值约束时应 考虑以下因素: -default约束只能用于INSERT语句 -不能用于具有IDENTITY属性的列 -每列只能有一个默认值约束
(1)使用SSMS添加默认值约束
在“对象资源管理器”窗口中右键单击需要创 建默认值约束的表,选择“设计”命令,在表设计 器中选择需要创建默认值的字段,在“列属性”区 域的“默认值或绑定”栏中输入默认值即可。
(1)使用SSMS添加外键约束 右键单击需要添加外键约束的表,选择 “设计”命令,打开表设计器。右键单击表 的编辑区域,选择“关系”命令,打开外键 关系对话框。在“表和列规范”选项,设置 主键表和外键表及对应列。
(2)使用T-SQL 语句添加外键约束 使用T-SQL 语句添加外键约束的基本语法格 式如下: ALTER TABLE 表名 ADD [CONSTRAINT 约束名] FOREIGN KEY [(列 [,…n] )] REFERENCES 被引用表名[(被引用列名[,…n ])]
刘安
郭华 杜钰 王林
课程编号 1501 1502 1503
课程名称 数据库开发 C语言程序 网络技术
试述关系模型的基本原则.
试述关系模型的基本原则.关系模型是数据库系统中的一种数据模型,它以表格的形式来表示和组织数据。
关系模型的基本原则主要包括以下几点:一、实体完整性实体完整性是指每个表必须有一个主键,且主键的值不能为NULL或重复。
主键的作用是用来唯一标识一个元组(即一行记录),它是该表的一个重要属性。
实体完整性保证了每个元组在表中的唯一性。
二、参照完整性参照完整性是指在一个关系中,外键的取值只允许有两种可能:一是空值,二是被参照关系中的某个主键值。
也就是说,如果两个关系之间存在联系,那么它们之间的数据必须是一致的。
参照完整性保证了数据的一致性和准确性。
三、用户定义的完整性用户定义的完整性是指用户根据应用需要自己定义的一些完整性约束条件。
这些完整性约束条件可以是关于字段的值域、字段之间的关系等。
用户定义的完整性能够更好地满足特定应用的需求。
四、关系代数关系代数是一种用来操作和查询关系数据库的语言。
它包括传统的集合运算符(如并、交、差)以及专门的关系运算符(如选择、投影、笛卡尔积等)。
通过关系代数,用户可以方便地对数据库进行各种查询和操作。
五、关系演算关系演算是另一种用来操作和查询关系数据库的语言。
它包括元组关系演算和域关系演算两种形式。
关系演算比关系代数更接近自然语言,因此对于一些复杂的查询操作来说,使用关系演算可能会更加直观和方便。
六、视图视图是从一个或多个基本表中导出的虚表,它是由用户自定义的逻辑表。
视图不仅可以简化用户的操作,还可以保护数据的安全性。
例如,用户可以通过定义视图来隐藏某些敏感的数据。
七、索引索引是为了加快数据的检索速度而建立的一种数据结构。
它可以是基于单个字段的索引,也可以是基于多个字段的复合索引。
通过使用索引,可以显著提高数据库的查询效率。
八、事务事务是数据库系统中一组操作的集合,这些操作要么全部成功,要么全部失败。
事务具有原子性、一致性、隔离性和持久性四个特性,这四个特性也被称为ACID特性。
关系模型的三类完整性约束
关系模型的三类完整性约束关系模型的三类完整性约束2010-05-23 18:352.3关系模型的三类完整性约束数据完整性由完整性规则来定义,关系模型的完整性规则是对关系的某种约束条件。
关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
2.3.1实体完整性实体完整性规则若属性A是关系R的主属性,则A不能取空值。
实体完整性规则规定,关系的主码中的属性(即主属性)不能取空值。
空值(NULL)不是0,也不是空字符串,而是没有值。
换言之,所谓空值就是"不知道"或"无意义"的值。
由于主码是实体的惟一标识,如果主属性取空值,关系中就会存在某个不可标识的实体,即存在不可区分的实体,这与实体的定义矛盾,因此,这个规则称为实体完整性规则。
2.3.2参照完整性规则1.外码和参照关系设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。
如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码(Foreign Key),并称基本关系R为参照关系(Referencing Relation),称基本关系S为被参照关系(ReferencedRelation)。
例如,在【例2-11】中的关系模型:课程(课号,课名,学分)教师(工号,姓名,职称,课号)参考书(书号,书名,课号)其中,关系教师中的属性"课号"不是主码,该属性与关系课程中的主码"课号"相对应。
因此,"课号"是关系教师的外码。
关系教师是参照关系,关系课程是被参照关系。
2.参照完整性规则(Referential Integrity Rule)参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S 的主码KS相对应,则对于R中的每个元组在F上的值必须满足:或者取空值(F 的每个属性均为空值),或者等于S中某个元组的主码值。
例如,在【例2-11】的关系模型中,关系教师中的外码"课号"只能是下面两类值:(1)空值。
SQL第3讲 关系的完整性约束
请大家见书P14面的几个不同结构的 面的几个不同结构的 请大家见书 应用示例
第二章 数据库系统设计
1、 功能设计 、 2、 数据库设计 、 3、 系统实施 、
数据库系统的开发方法: 数据库系统的开发方法:
生命周期法
按照人们对现实对象的处理方式来解决 调查研究 分析问题 设计模型
最终的使用与评价
具体实施
很高的独立性以及安全保密性,简化 了应用开发的工作
缺点:中间层对用户来说是透明的,会增加 缺点:
开发系统的负担影响数据的操作效率
四、数据库系统的应用
1、最初的单用户结构 、
所有元素(DB、DBMS、前台应用)全在一台 计算机上,只由一个用户独占,数据不能共享 DB 应用程序 DBMS
2、主从式结构 、
1、关系的完整性约束 、 (实体、域、参照、自定义) 2、关系数据库的优缺点 、 3、数据库系统的应用结构 、 (单用户、主从、分布、C/S、B/S) 4、数据库系统设计中的功能设计 、 (需求分析的任务、方法)
上节课程回顾: 上节课程回顾:
1、了解了DBS的体系结构 、了解了 的体系结构
(用户模式、逻辑模式和物理模式)
2、明确了模式之间所存在的关系 、
(逻辑独立性、物理独立性)3、加深了DBMS的功能,和DBS的5大特点 、加深了 的功能, 的功能 的 大特点
(定义、操作、控制、维护) (结构化、独立性、共享性、完整以及安全性)
第一章 数据库系统基础
1、数据库基本概念 2、数据库系统的体系结构
3、关系数据库 、
4、数据库系统的应用
三、关系数据库的基本知识(续) 关系数据库的基本知识(
3、关系的完整性约束 (正确性、相容性) 、关系的完整性约束
数据库实验报告完整性约束
大连海事大学数据库原理课程实验大纲实验名称:实验七完整性实验学时: 2适用专业:智能科学与技术实验环境: Microsoft SQL server 20141实验目的(1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。
(2)掌握完整性约束的运行检查机制。
(3)掌握参照完整性的级联删除和修改方法。
(4)掌握正确设计关系模式完整性约束的方法。
2实验内容2.1 掌握实体完整性约束的创建和使用方法(1)创建表时定义由一个属性组成的主键(给约束命名)。
(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。
(3)删除以上两个主键约束。
(4)利用ALTER TABLE语句定义上述两个主键。
2.2 掌握参照完整性约束的创建和使用方法(5)创建表时定义一个列级参照完整性约束(给约束命名)。
(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。
(7)设计数据更新语句检查参照完整性约束是否起作用。
(8)删除上述完整性约束。
(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDA TE/DELETE时的动作。
(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。
2.3 掌握用户自定完整性约束的创建和使用方法(11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用?(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?(15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。
3实验要求(1)深入复习教材第五章数据库完整性约束内容。
(2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。
完整性约束讲解
数据库实验报告三完整性约束一、实验目的1. 熟悉主键,外键,check等完整性约束;2. 掌握完整性约束的建立,删除,有效化和无效化;3. 熟悉相关的DDL命令。
4. 学会看数据库模型图。
二、实验内容1. 主键约束a. 按图1所示,建立所有表的主键约束。
b. 运行下列SQL语句:in sert in to branch values( ‘ Xia ngta n Uni versity Xiangtan ' ,4000000);in sert in to branch values( ‘ Xia ngta n Uni versity Xiangtan ' ,5000000);记录结果并分析原因。
2. 外键约束a. 按照图1所示,建立所有的外键约束。
b. 运行以下的两条SQL语句:insert into loan values( ‘L-001' , 'Xiangtan University ' ,1000);in sert in to loan values( ‘ L-002' , ' Rai n Lake ' ,2000);记录结果并分析原因。
c. 运行以下的SQL语句:delete bran ch;记录结果并分析原因。
3. unique 约束a. 在loan表上建立一个unique约束,保证amount是唯一的。
b. 运行以下SQL语句:insert into loan values( ‘L-002' , 'Xiangtan University ' ,2000); 记录结果并分析原因。
c. 使得刚才建立的约束无效化,并再次运行上一条SQL语句,记录结果并分析原因。
d. 删除掉这个约束。
4. check 约束a. 在loan表上建立一个check约束,保证amount必须为正数。
b. 运行以下SQL语句:insert into loan values( ‘L-003 ', 'Xiangtan University ' ,-2000); 记录结果并分析原因。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5.3 域完整性约束
用SQL删除表jx_Tea中的Tprof和Tcomm 之间的CHECK约束
??
交互式删除表TEST_S中列Sgender的 DEFAULT约束和列Sage的CHECK约束
实验报告
写出以上练习中要求用SQL语句实现的操 作
实验5.2 参照完整性约束
创建数据库jxdb中5个表之间的关联关系图
右键单击数据库jxdb下的对象“关系图”,选 择创建“新建数据库关系图…”
实验5.2 参照完整性约束
添加数据库表
实验5.2 参照完整性约束
查看已存在的表关系
实验5.2 参照完整性约束
Jx_Tea与jx_TeaCourse之间的关系
实验5.2 参照完整性约束
注意:建立外键关系 前,一定要先在jx_Stu 中对Sno建立PK
① ④ ② ③ ⑤
实验5.2 参照完整性约束
用SQL创建表jx_Tea与jx_TeaCourse之间 的参照关系
ALTER TABLE jx_TeaCourse WITH NOCHECK ADD CONSTRAINT FK_T_TC FOREIGN KEY (Tno) REFERENCES T(Tno) ON DELETE CASCADE
??
交互式删除现有表TEST_SC的主键 PK_TEST_SC并取消id_sc列的标识属性 用SQL删除表jx_course中Cname列的 UNIQUE约束UNIQUE_C
??
实验5.2 参照完整性约束
交互式创建表jx_Stu和表jx_SelCourse之间 的参照关系
打开表jx_SelCourse的“管理关系”对话框
通过Cno创建表jx_Course和jx_SelCourse 之间的一对多关联关系 保存关系图。 思考
怎样交互式的删除关联关系呢?
实验5.3 域完整性约束
交互式为现有数据库表jx_Tea创建 DEFAULT和CHECK约束
要求:CHECK约束对已有数据不做检查 为性别列Tgender设置DEFAULT约束值“男” 设置“CHECK约束”表达式
实验5.2 参照完整性约束
通过Cno创建表jx_Course和jx_TeaCourse 之间的一对多关联关系
在表jx_Course中的Cno字段上,单击并按住 鼠标左键,然后拖动到表jx_TeaCourse中的字 段Cno上,松开鼠标左键,打开“管理关系” 窗口,观察窗口中的各项值。
实验5.2 参照完整性约束
(Tprof = '教授' and Tcomm = 4000 or Tprof = '副教授' and Tcomm = 2000 or Tprof = '讲师' and Tcomm = 1500 or Tprof = '助教' and Tcomm = 1000)
实验5.3 域完整性约束
①
②
实验5.3 域完整性约束
交互式为现有表TEST_SC增加新列id_sc, 并设置此列属性为IDENTITY
*identity属性 可以自动为表生成 行号 注意:经常更新 记录的表,不要建 立IDENTITY列
实验5.1 实体完整性约束
实验5.1 实体完整性约束
用SQL为现有表TEST_TC增加新列id_tc, 并设置此列属性为identity
【实验目的】
认识完整性约束对数据库的重要性 掌握实体完整性的创建、修改、维护
掌握创建PRIMARY KEY、UNIQUE约束的 方法以及创建IDENTITY属性列的方法。 掌握创建主表和字表关联关系的方法,以及 通过外键实现参照完整性约束 掌握创建DEFAULT约束和CHECK约束
掌握参照完整性的创建、修改、维护
打开“表设计器”,确认表jx_Tea中的Tno列 的“允许空”属性为“非空”(即没有√), 然后保存退出“表设计器”。 打开查询分析器,输入下列SQL语句
ALTER TABLE jx_Tea ADD CONSTRAINT PK_TNO PRIMARY KEY(Tno)
实验5.1 实体完整性约束
用SQL创建数据库表TEST_TC,并以表约束 形式创建PRIMARY KEY约束
CREATE TABLE TEST_TC ( Tno char(2), Cno char(2), CONSTRAINT PK_TEST_TC PRIMARY KEY (Tno, Cno) )
实验5.1 实体完整性约束
掌握域完整性的创建、修改、维护
实验5.1 实体完整性约束
ห้องสมุดไป่ตู้
交互式为数据库表jx_Stu创建PRIMARY KEY 约束
打开“表设计器”→创建主键(小钥匙)
交互式创建数据库表TEST_SC,并创建 PRIMARY KEY约束
“新建表”→创建主键
实验5.1 实体完整性约束
用SQL为现有表jx_Tea在Tno列上创建 PRIMARY KEY约束
用SQL创建数据库表TEST_C,并以列约束形 式创建PRIMARY KEY约束
CREATE TABLE TEST_C ( Cno char(2) CONSTRAINT PK_TEST_C PRIMARY KEY,
Cname char(10),
Ctime tinyint )
实验5.1 实体完整性约束
①
③
②
④
实验5.3 域完整性约束
用SQL给现有数据表jx_Stu创建CHECK约 束
要求:本科生的年龄限制在14~40岁之间,此 约束对表S中已有数据做检查。 ??
实验5.3 域完整性约束
用SQL创建一数据库表TEST_S,包含 DEFAULT和CHECK约束
要求:设置性别的DEFAULT约束为’男‘, CHECK约束为性别为‘男’或‘女’;设置 年龄的DEFAULT约束为18,CHECK约束为 年龄在14~40之间
交互式为现有表TEST_TC中的Cno和Tno 列创建“UNIQUE约束”
打开TEST_TC表的“索引/键”对话框
实验5.1 实体完整性约束
① ② ③
④
实验5.1 实体完整性约束
用SQL为现有表jx_Course中的Cname列创 建“UNIQUE约束”
??
实验5.1 实体完整性约束