实验(七)、第五章 数据库完整性

2011-11-07 14:37:12|  分类: 默认分类 |  标签: |字号大中小 订阅

 
 

一、实验目的

1.熟悉通过SQL语句对数据进行完整性控制

2.完成《数据库系统概论》一书中第五章例题的上机练习

二、实验平台

MS SQL Server 2000

三、实验要求

使用SQL语句对数据进行完整性控制,包括3类完整性约束、CHECK短语、CONSTRAINT子句、触发器。通过实验证实,当操作违法完整性约束条件时,系统是如何处理的。

四、实验内容及完成情况

在本次实验中,对数据完整性进行上机练习。包括3类完整性、CHECK短语、CONSTRAINT子句、触发器。因为完整性约束绝大部分是在定义表结构时进行的,因此可能需要多次重复定义同一张表。如果表名发生重复,则需要先删除旧表后再重新建立。

在开始实验之前,先创建一个名为Practice7的数据库,下面所有的SQL语句都是在Practice7这个数据库内执行的

1.在数据库Practice7中创建教材P82的student, course, sc三张表,先不设置主键,检查能否向表中插入重复值。

<记录下验证的过程,需要自己完成>

2.实体完整性:删除上一步创建的3张表,重新创建,对每张表都设置主键,先不为SC 表设置外键。再次检查能否向表中插入重复值,能否在SC表中插入不存在的学号(Sno)或者课程号(Cno)

3. 参照完整性:删除上一步创建的SC表,重新创建SC表并为其设置主键和外键。再次验证能否在SC表中插入不存在的学号(Sno)或者课程号(Cno)

4. 用户定义的完整性:完成教材 P158[例10],并通过插入数据进行验证。

5.触发器的使用(选做)

创建一个名为Tab的表,它仅包含一整数列(列名为col)。在表Tab上定义触发器Tri,在对Tab表插入或者更新前进行检查,如果插入或更新的值在60~100之间,将值设置为60;如果大于100,则给出新值不允许大于100的提示信息。

五、出现的问题及解决方案

<记录下自己在实验过程中出现的问题及解决方法,需要自己完成>

附录:本次实验参考解答

 

http://blog.163.com/db_teacher/blog/static/194540298201110723712407/的更多相关文章

  1. http://blog.163.com/zhangmihuo_2007/blog/static/27011075201392685751232/

    http://blog.163.com/zhangmihuo_2007/blog/static/27011075201392685751232/

  2. IOS绘图详解(http://blog.163.com/wkyuyang_001/blog/static/10802122820133190545227/)

    14.1 Quartz概述 Quartz是Mac OS X的Darwin核心之上的绘图层,有时候也认为是CoreGraphics.共有两种部分组成Quartz: Quartz Compositor,合 ...

  3. EIGRP认证 配置 (仅仅是命令 原理自己去看书) 转自:http://blog.163.com/s_u/blog/static/13308367201111771831631/

    EIGRP认证 目的:掌握EIGRP的MD5认证 拓扑:这里IP配置我就不写出来了,应该对大家来说是非常简单的事了,就要细心一点就可以了.首先我们在R1上启用MD5认证R1(config)#key c ...

  4. stm单片机之STM32F4-Discovery资料汇总 (转载自http://blog.163.com/thinki_cao/blog/static/83944875201362493134992/)

    STM32F4的资料大部分都在这里: http://www.stmcu.org/download/index.php?act=ziliao&id=150 根据个人的理解对这些资料作了一些规律, ...

  5. windows下安装nginx (转载自:http://blog.163.com/njut_wangjian/blog/static/1657964252013327103716818/)

    1.  到nginx官网上下载相应的安装包,http://nginx.org/en/download.html:下载进行解压,将解压后的文件放到自己心仪的目录下,我的解压文件放在了d盘根目录下,如下图 ...

  6. http://love3400wind.blog.163.com/blog/static/7963080120132794359703/

    http://love3400wind.blog.163.com/blog/static/7963080120132794359703/

  7. http://blog.163.com/eugeneheen_chen@126/blog/static/120812157201291994916866/

    http://blog.163.com/eugeneheen_chen@126/blog/static/120812157201291994916866/

  8. 组合,关联,聚合的区别(转自http://jimmyleeee.blog.163.com/blog/static/9309618200932014422932/)

    类间关系 在类图中,除了需要描述单独的类的名称.属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义.在UML类图中,关系用类框之间的连 ...

  9. C,C++经典笔试题(答案)转自:http://blog.163.com/jianhuali0118@126/blog/static/377499702008230104125229/

    一.请填写BOOL , float, 指针变量 与“零值”比较的 if 语句.(10分) 请写出 BOOL   flag 与“零值”比较的 if 语句.(3分) 标准答案:      if ( fla ...

随机推荐

  1. 从零开始写一个Tomcat(叁)--请求解析

    挖坑挖了这么长时间也该继续填坑了,上文书讲到从零开始写一个Tomcat(贰)--建立动态服务器,讲了如何让服务器解析请求,分离servlet请求和静态资源请求,读取静态资源文件输出或是通过URLCla ...

  2. 连接管理VMware SphereESXi

    连接管理VMware SphereESXi 1. 准备 下载VMware-viclient-all-5.5.0-1993072,并按照提示安装 2. 使用VMware Sphere Client链接事 ...

  3. Python之路,Day20 - 分布式监控系统开发

    Python之路,Day20 - 分布式监控系统开发   本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个 ...

  4. 线程技术 ☞ Future模式

    线程技术可以让我们的程序同时做多件事情,线程的工作模式有很多,常见的一种模式就是处理网站的并发,今天我来说说线程另一种很常见的模式,这个模式和前端里的ajax类似:浏览器一个主线程执行javascri ...

  5. Android 静默安装/后台安装

    Android实现静默安装其实很简单,今天在网上找资料找半天都说的很复杂,什么需要系统安装权限.调用系统隐藏的api.需要系统环境下编译.需要跟systemUI同进程什么的.我不知道他们真的实现了静默 ...

  6. xls和xlsx

      xls XLS 就是 Microsoft Excel 工作表,是一种非常常用的电子表格格式.xls文件可以使用Microsoft Excel打开,另外微软为那些没有安装Excel的用户开发了专门的 ...

  7. cer, pfx 创建,并且读取公钥/密钥,加解密 (C#程序实现)

    PKI技术(public key infrastructure)里面,cer文件和pfx文件是很常见的.通常cer文件里面保存着公钥以及用户的一些信息,pfx里面则含有私钥和公钥. 用makecert ...

  8. java_reflect_04

    反射操作数组: 通过public Class<?> getComponentType()来取得一个数组的Class对象 例: import java.lang.reflect.Array ...

  9. 第一个shell编程,输出hello world!

    在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器).它类似于DOS下的command和后来的cmd.exe.它接收用户命令,然后调用相应的应用程序.--- ...

  10. C++虚基类详解(转)

    我们知道,如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员.在引用这些同名的成员时,必须在派生类对象名后增加直接基类名,以避 ...