实验五 - 关系模型的完整性约束
- 格式:ppt
- 大小:1.21 MB
- 文档页数:27
数据库的完整性约束一、实验目的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、名称和价格。
关系模型的三类完整性约束关系模型的三类完整性约束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数据库的完整性约束是数据库管理系统的重要特性之一,它是指对数据库中数据的一些限制性约束条件。
这些限制条件可作用于数据库中的表、字段、关键字等,目的是为了保证数据库中的数据的完整性、一致性和准确性。
下面将详细介绍数据库的完整性约束。
一、完整性约束的种类数据库的完整性约束主要有以下几种:1.实体完整性:是指表中每条记录都必须存在一个唯一的主键值,也就是主键不能为空,同时要求表中不能存在两条相同的记录。
2.参照完整性:是指在关系型数据库中,如果一个表中的某个字段与另一张表的主键或唯一索引关联,那么这个表中的记录必须在关联表中有相应的记录。
3.域完整性:是指每个字段必须有一个有效的数据类型,同时对于每个字段还可以指定一些合法的取值范围。
4.用户定义的完整性:是指用户可以自定义一些限制条件,以便对数据库中的数据进行更复杂的限制。
1.确保数据的唯一性:通过实体完整性和参照完整性可以避免数据库中出现重复的记录和没有对应关系的记录。
2.限制数据的正确性:通过域完整性可以限制每个字段的取值范围,从而保证数据的正确性。
3.提高数据库性能:通过完整性约束可以避免不必要的查询操作,提高数据库的性能。
4.保护数据的安全性:通过完整性约束可以保护数据的安全性,防止数据被恶意篡改或删除。
1.在表定义时指定完整性约束:在创建表时可以指定表的主键、外键、检查约束等完整性约束。
2.使用触发器实现完整性约束:使用触发器可以实现更多复杂的完整性约束,例如在插入或修改记录时触发器会对数据进行验证,如不符合约束条件则拒绝操作。
3.使用存储过程实现完整性约束:存储过程也可以实现完整性约束,例如在存储过程中进行数据的验证和处理。
完整性约束通常用于以下几个场景:1.数据库的设计:在数据库设计中,应该考虑到数据库的完整性问题,因此在创建表时应该根据实际需求来定义合适的完整性约束条件。
2.数据的输入和修改:在数据进行输入和修改时,系统应该对输入的数据进行验证,如果不符合完整性约束条件,则需要提示用户进行修改。