实验 5 数据的完整性管理
实验 5 数据的完整性管理
一、实验目的
- 掌握实体完整性的实现方法。
- 掌握用户定义完整性的实现方法。
- 掌握参照完整性的方法。
二、实验内容
- 数据库的完整性设置。
三、实验步骤
- 可视化界面的操作方法:
- 实体完整性
- 将 student 表的“sno”字段设为主键:在表设计界面中,单击左边的行选定块,
选定“sno”字段,单击工具按钮 设置主键。如图 1 所示:

图 1
- 将“sc”表的“sno”和“cno”设置为主键:在表设计界面中,单击并按住 Ctrl键拖动左边的行选定块,选定 sno 和 cno 字段,单击工具按钮设置主键。如图2 所示:
图 2
- 用户定义完整性
将“ssex”字段设置为只能取“男”,“女”两值:在表设计界面,点击鼠标右键
——CHECK 约束——添加约束,添加 CK_student_sex 名称,然后在约束表达式框中输入“ssex in ('男','女')”。如图 3 所示。
图 3
- 参照完整性
将“sc”表中的“sno”字段设为外键,参照“student”表中的“sno”字段:打开
“sc”表的设计界面,点击工具栏按钮 或点击鼠标右键——“关系”菜单项,在弹
出的属性(properties)对话框中点击“新建”按钮,新建一个名为“FK_SC_Student”的
“关系”,在其属性中点击“表和列规范”右侧的按钮,即:
打开“表和列”对话框,在“主键表(Primary key table)”下拉框中选择“student” 表,在其下的字段选择框中选择“sno”,在“外键表(Foreign key table)”下拉框中选择 “sc”表,在其下的字段选择框中选择“sno”,单击关闭即可。见图 4。

图 4
类似方法再定义一个名为“FK_SC_Course”的“关系”,该关系中,“sc”表中的
“cno”字段设为外键,参照“Course”表中的“cno”字段。- SQL 命令方式操作方法:
- 实体完整性
- 将“student”表的“sno”字段设为主键: 当“student”表已存在则执行:
alter table student
add constraint pk_sno primary key (sno)
当“student”表不存在则执行:
Create table student(
sno CHAR(5) primary key, sname CHAR(10) NOT NULL,
ssex CHAR(2), sage int,
sdept CHAR(4))
注:可用命令“drop table student”删除“student”表
- 添加一身份证号字段,设置其惟一性。(注:操作前应删除表中的所有记录)
Alter table student
add id char(18) unique (id)
- 将“sc”表的“sno”和“cno”设置为主键: 当“sc”表已存在则执行:
alter table sc add constraint PK_SnoCno primary key (sno,cno)
当“sc”表不存在则执行:
Create table sc( sno CHAR(5), cno CHAR(2),
gradeINT NULL,
constraint PK_SnoCno primary key (sno,cno)
)
- 用户定义完整性
- 将“ssex”字段设置为只能取“男”,“女”两值:当“student”表已存在则执行:
alter table student
add constraint CK_Sex check (ssex in ('男' ,'女'))
当“student”表不存在则执行:
Create table student(
sno CHAR(5) primary key, sname CHAR(10),
ssex CHAR(2) check (ssex in ('男' ,'女')),
sage int,
sdept CHAR(4), id char(18)
)
- 设置学号字段只能输入数字: alter table student
add constraint CK_Sno_Format check (sno like '[0-9][0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9]')
注意:如果表中已有数据不符合以上要求,执行之前要先删除 student 表已有数据。
- 设置身份证号的输入格式: alter table student
add constraint CK_ID_Format check ((id like
'[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_') OR
(id like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))
- 设置 18 位身份证号的第 7 位到第 10 位为合法的年份(1900-2050) alter table student
add constraint CK_ID_Format2 check (len(id)=18 and ( (convert(smallint,substring(id,7,4) )>=1900)
and(convert(smallint,substring(id,7,4) )<=2050)) )
- 设置男生的年龄必须大于 22, 女生的年龄必须大于 20.
Alter table student
add constraint CK_age check (ssex='男' and sage>=22 or ssex='女' and sage>=20 )
- 参照完整性
1.建立“sc”表中的“sno”字段为外键,参照“student”表中的“sno”字段:
当“sc”表已存在则执行:
alter table sc
add constraint FP_sno foreign key (sno) references student(sno)
当“sc”表不存在则执行:
Create table sc(
sno CHAR(5) constraint FP_sno foreign key references student(sno), cno CHAR(2),
grade INT NULL,
constraint PK_SnoCno primary key (sno,cno)
)
- 完整性验证
- 实体完整性:在“student”表数据浏览可视化界面中输入学号相同的两条记录, 将会出现错误,拷屏记录下出错界面。
或者在命令窗口输入下面两条命令也会出现错误提示,拷屏记录下出错界面。
insert into student values('95001','张三','男',24,'CS','42222919901012903X') insert into student values('95001','李四','女',21,'CS','422229199510129031')
下面的语句用来验证“sc”表中的实体完整性,拷屏记录下出错界面。
insert into sc values('95002', '10',65) insert into sc values('95002', '10',90)
- 用户定义完整性:
使用下面的语句验证“ssex”字段的域完整性,拷屏记录下出错界面。
insert into student values('95009','张匀','大',20,'CS', ‘42222919901012904X’)
- 参照完整性:
使用下面的语句“验证”sc 表中的“sno”字段的域完整性(假设 student 表中没有学号
为“95998”的学生记录),拷屏记录下出错界面。
insert into sc values('98998', '10',98)
四、实验任务:
1、建立课程表的实体完整性,和选课表中课程号 cno 的参照完整性;
2、练习建立表的主外键约束、唯一约束、取空值约束、用户自定义的约束;
3、建立 SC 表的分数字段限定在 0-100 之间。
相关文章:

16-acrobat por 简单使用指南
用于pdf编辑,这里我主要讲下图片的切割和保存,以及合并: 切割选中区域双击 合并的话,在编辑界面选中对象,复制,在另一个pdf的编辑界面粘贴,并挪动位置: 转载于:https://www.cnblogs.…

可突破任意ARP防火墙,以限制流量为目标的简单网络管理软件
以下消息来自幻影论坛[Ph4nt0m]邮件组软件说明:可突破任意ARP防火墙,以限制流量为目标的简单网络管理软件。使用方法:1.在参数设置中选择好工作网卡;2.检查网关信息和本机信息是否正确,如果不正确,请手动输…

OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法...
函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界。 cv2.boundingRect(array) -> retval 参数: array - 灰度图像ÿ…

实验1 应用SQL Server进行数据定义和管理
实验1 应用SQL Server进行数据定义和管理 【实验目的】 1)熟悉SQL Server的配置和管理。 2)掌握数据库的定义和修改方法。 3)掌握表的定义和修改方法。 4)掌握使用SQL语句进行数据管理的方法。 【实验环境】 SQL Server 20…

谷歌Chrome浏览器发布
谷歌已提前启用了浏览器Google Chrome的官方网站gears.google.com/chrome/,今天该浏览器的Windows版本首发。在此以前,谷歌与微软之间的斗争更象是“冷战”,大多局限于谷歌开发小型的、基于网络的软件,与微软占主导地位的Word、Po…

【bzoj1853】[Scoi2010]幸运数字 容斥原理+搜索
题目描述 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是“幸运号码”!但是这种“幸运号码”…

Creating a LINQ Enabled ASP.NET Web application template using C#.[转]
原文地址:http://www.wwwcoder.com/Weblogs/tabid/283/EntryID/839/Default.aspx其他相关地址:Building and using a LINQ for SQL Class Library with ASP.NET 2.0 1. Install Visual Studio 2005 RTM. 2. Download and install "…

深入理解Java线程池:ThreadPoolExecutor
线程池介绍 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题: 如果并发的请求数量非常多,但每个线程执行的时间…

[zt]petshop4.0 详解之八(PetShop表示层设计)
代码中,InsertUser()方法就是负责用户的创建,而在之前则需要判断创建的用户是否已经存在。InsertUser()方法的定义如下: privatestaticboolInsertUser(OracleTransaction transaction, intuserId, stringemail, stringpassword, intpassForma…

Install Java 8 Ubuntu
sudo add-apt-repository ppa:webupd8team/javasudo apt-get -y update sudo apt-get -y install oracle-java8-installer sudo vim /etc/environment Add this at the end of the file JAVA_HOME"/usr/lib/jvm/java-8-oracle" source /etc/environment转载于:https:…

实验2 使用T-SQL编写程序
实验2 使用T-SQL编写程序 【实验目的】 1)掌握常用函数的使用方法。 2)掌握流程控制语句的使用方法。 【实验环境】 SQL Server 2012 Express(或SQL Server 2017 Express) 【实验重点及难点】 1&…

超酷flash光芒光线特效
http://thefwa.com/ 一个不错的英文设计展示站点 超酷flash光芒光线特效 http://www.zcool.com.cn/flash/light/page_1.html

实验3 数据库综合查询
实验3 数据库综合查询 一、实验目的 掌握SELECT语句的基本语法和查询条件表示方法;掌握查询条件种类和表示方法;掌握连接查询的表示及使用;掌握嵌套查询的表示及使用;了解集合查询的表示及使用。 二、实验环境 已安装SQL Serv…

Find Large Files in Linux
https://www.rosehosting.com/blog/find-large-files-linux/转载于:https://www.cnblogs.com/WCFGROUP/p/10328469.html

Linux统计行数命令wc(转)
Linux wc命令用于计算字数。 利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。 语法 wc [-clw][--help][--version][文件...] 参数 -c或--bytes或--chars …

There is no Citrix MetaFrame server configured on the specified address错误的解决方法
环境:windows server 2003 enterprise Citrix MetaFrame XP Server for Windows with Feature Release 3MetaFrame XP 1.0 Service Pack 4 for Windows 2003公网IP内网IP(有防火墙) 客户端:windows xp sp2Citrix MetaFrame Program Neighborhood Version 9.00.32649 错误描述:使…

Cisco交换机解决网络蠕虫病毒***问题
Cisco交换机解决网络蠕虫病毒***问题今年来网络蠕虫泛滥给ISP和企业都造成了巨大损失,截至目前已发现近百万种病毒及***。受感染的网络基础设施遭到破坏,以Sql Slammer为例,它发作时会造成丢包率为30%。我们如何在LAN上防范蠕虫?大…

实验4 数据的安全性管理
实验4 数据的安全性管理 一、实验目的 掌握SQL Server身份验证模式。掌握创建登录账户、数据库用户的方法。掌握使用角色实现数据库安全性的方法。掌握权限的分配。 二、实验内容 1、设置身份验证模式:Windows身份验证模式和混合模验证模式。 2、设置登录账户 …

scala构建工具sbt使用介绍
sbt工具下载及说明: https://www.scala-sbt.org/0.13/docs/zh-cn/Installing-sbt-on-Windows.html sbt是交互式构建工具,使用scala定义任务并执行它们 目录下启动 sbt,然后执行 run 命令进入到 sbt 的交互式命令 $ mkdir hello $ cd hello $ …

读书笔记--C陷阱与缺陷(三)
第三章 1. 指针与数组 书中强调C中数组注意的两点: 1) C语言只有一维数组,但是数组元素可以是任何类型对象,是另外一个数组时就产生了二维数组。数组大小是常数(但GCC实现了变长数组。。) 2) 一个数组只能做两…

[导入]儿子语录
2008.09.16:笑脸,笑脸,不笑脸,不笑脸,不高兴脸,不高兴脸。2008.09.19:爸爸是黄毛毛虫,我是绿毛毛虫,妈妈是紫毛毛虫,奶奶是咖啡色毛毛虫,太太是白…

ISA2006标准版,本地主机不能上网问题的解决一例
今天,帮一位朋友解决ISA SERVER2006标准版本地主机不能上网的问题,中间经历了一些困难,有点意思,故写了下来,供各位参考分享。一、安装环境:windows server 2003 sp2isa server 2006 标准版双网卡 外网卡固…

第8章系统服务(简易音频播放器的实现)
开发一个简易音乐播放器,要求实现: 综合使用Service,BroadCast,ContentProvider等组件实现后台播放。 播放和暂停、上一首、下一首、停止;后台播放功能, 按下返回键退出应用后再次打开应用,UI 显示应能与当…

await使用中的阻塞和并发(一)
好吧,不加点陈述不让发首页。那我们来陈述一下本篇提到的问题和对应的方法。 在.NET4.5中,我们可以配合使用async和await两个关键字,来以写同步代码的方式,实现异步的操作。 好处我目前看来有两点: 1.不会阻塞UI线程。…

中国经济是前所未有二元经济(转)
今天的中国是一个前所未有的二元经济,而且是三七开的二元经济,我国这么多年的经济发展,每一年GDP以10%的成长率增长的原因,就是二元经济的过热部门推动的,因此我们GDP的组成是非常扭曲的,超过一半都是固定资…

Unity 简单示例代码和向导/Unity Aplication Block
Unity 简单示例代码和向导 关于Unity 的说明和下载地址,请访问[微软控制反转和依赖注入容器Unity 1.0发布] http://forum.entlib.com/Default.aspx?gposts&t25 。 下面的范例主要实现:首先,定义ILogger 接口。然后,定义一个实…

crontab修改默认编辑器
$ sudo select-editor 选择3或者4 然后再次打开 crontab -e 就会是vim的方式了。 转载于:https://www.cnblogs.com/jiqing9006/p/10343035.html

Programming C# 学习笔记(二) 出发:“Hello World”
小序: 准备写这章的学习笔记了,啊,Hello World!多么亲切的语句,呵呵,当初学C语言的第一个程序就是输出它, 还记得费了好大劲终于把它输出来时候的那种兴奋感觉,真是让我怀念哦&a…

多IP绑定与多网卡绑定
多IP绑定: 实验目的: 实现如下图网络连接 实现 A, B 在分配不同网段的网络地址的情况下可以互联 实验条件有限,在没有交换机的情况下,将主机A ,B,路由器R1处于同一网络。将三台虚拟机的网络适配器设置为仅主…

华硕WL-500W无线路由器使用感受
作为一款实用型的家庭或小型企业应用的无线路由器,WL-500W有着独特的外观:<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office"…