http://blog.163.com/db_teacher/blog/static/194540298201110723712407/
实验(七)、第五章 数据库完整性
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/的更多相关文章
- http://blog.163.com/zhangmihuo_2007/blog/static/27011075201392685751232/
http://blog.163.com/zhangmihuo_2007/blog/static/27011075201392685751232/
- IOS绘图详解(http://blog.163.com/wkyuyang_001/blog/static/10802122820133190545227/)
14.1 Quartz概述 Quartz是Mac OS X的Darwin核心之上的绘图层,有时候也认为是CoreGraphics.共有两种部分组成Quartz: Quartz Compositor,合 ...
- EIGRP认证 配置 (仅仅是命令 原理自己去看书) 转自:http://blog.163.com/s_u/blog/static/13308367201111771831631/
EIGRP认证 目的:掌握EIGRP的MD5认证 拓扑:这里IP配置我就不写出来了,应该对大家来说是非常简单的事了,就要细心一点就可以了.首先我们在R1上启用MD5认证R1(config)#key c ...
- stm单片机之STM32F4-Discovery资料汇总 (转载自http://blog.163.com/thinki_cao/blog/static/83944875201362493134992/)
STM32F4的资料大部分都在这里: http://www.stmcu.org/download/index.php?act=ziliao&id=150 根据个人的理解对这些资料作了一些规律, ...
- windows下安装nginx (转载自:http://blog.163.com/njut_wangjian/blog/static/1657964252013327103716818/)
1. 到nginx官网上下载相应的安装包,http://nginx.org/en/download.html:下载进行解压,将解压后的文件放到自己心仪的目录下,我的解压文件放在了d盘根目录下,如下图 ...
- http://love3400wind.blog.163.com/blog/static/7963080120132794359703/
http://love3400wind.blog.163.com/blog/static/7963080120132794359703/
- http://blog.163.com/eugeneheen_chen@126/blog/static/120812157201291994916866/
http://blog.163.com/eugeneheen_chen@126/blog/static/120812157201291994916866/
- 组合,关联,聚合的区别(转自http://jimmyleeee.blog.163.com/blog/static/9309618200932014422932/)
类间关系 在类图中,除了需要描述单独的类的名称.属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义.在UML类图中,关系用类框之间的连 ...
- C,C++经典笔试题(答案)转自:http://blog.163.com/jianhuali0118@126/blog/static/377499702008230104125229/
一.请填写BOOL , float, 指针变量 与“零值”比较的 if 语句.(10分) 请写出 BOOL flag 与“零值”比较的 if 语句.(3分) 标准答案: if ( fla ...
随机推荐
- 从 ReactiveCocoa 中能学到什么?不用此库也能学以致用
从知道ReactiveCocoa开始就发现对这个库有不同的声音,上次参加<T>技术沙龙时唐巧对在项目中已全面使用FRP的代码家提出为什么这种编程模型出现了这么长时间怎么像ReactiveC ...
- 挖掘微信Web版通信的全过程
昨天是周末,在家闲得无聊,于是去weiphone.com逛了一圈,偶然发现有人发了一帖叫<微信 for Mac>,这勾起了我的好奇心,国内做Mac开发的人确实很少,对于那些能够独自开发一些 ...
- SSH常用命令选项
SSH 是什么 SSH(全称 Secure Shell)是一种加密的网络协议.使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息.要使用 SSH,目标机器应该安装 SS ...
- HUD 2444 The Accomodation of Students (二分图染色+最大匹配)
#include<iostream> #include<cstdio> #include<cstring> #define maxn 2010 using name ...
- mysql set names.
SET NAMES utf8 相当于 SET character_set_client = utf8 --用来设置客户端送给MySQL服务器的数据的 字符集 SET character_set_res ...
- Python局部变量和全局变量global
当你在函数定义声明变量的时候,它们与函数外具有相同名称的其它变量没有任何关系,即变量名称对于函数来说是 局部 的.这称为变量的 作用域 .所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开 ...
- WPF 依赖属性与依赖对象
在介绍依赖属性之前,我先介绍下属性的历史 属性的历史: 早期C++的类中,只有字段及方法,暴露数据靠的是方法, 但是字段直接暴露会不安全,所以才用方法来暴露,在设置的时候加些约束,在MFC中 ...
- POJ 2411.Mondriaan's Dream 解题报告
题意: 给出n*m (1≤n.m≤11)的方格棋盘,用1*2的长方形骨牌不重叠地覆盖这个棋盘,求覆盖满的方案数. Solution: 位运算+状态压缩+dp ...
- [javascript]String添加trim和reverse方法
function trim() { var start, end; start = 0; end = this.length - 1; while(start <= end && ...
- Jssdk微信分享
<?php require_once "jssdk.php"; $jssdk = new JSSDK("yourAppID", "yourApp ...