数据库完整性代码_第1页
数据库完整性代码_第2页
数据库完整性代码_第3页
数据库完整性代码_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.4 实验报告数据库原理实验报告实验题目:数据完整性姓名吴位吕日期2012-5-22实验环境:XP Windows系统环境Microsoft SQL Server 2005 中 SQL Server Management Studio实验内容与完成情况:一、三类完整性的实现对系表Dept、学生表Student、教师表Teacher、课程表Course、SC表,教师授课表TC,实现规定的完整性,并验证,当操作违反了完整性约束条件时,DBMS如何处理。-1、Dept表-?DEPTNO CHAR()-?E VARCHAR()DNAM-?实体完整性:DEPTNO为主码;-?用户定义完整性-DEPTNO

2、的取值为至;-DNAME取值非空且唯一;CREATE TABLE DEPT(DEPTNO CHAR(2)PRIMARY KEYconstraint c1 check(DEPTNO between 01 and 99),DNAME VARCHAR(20) constraint c2 NOT NULL unique,);-2、Student表-l SNO CHAR()-l SNAME VARCHAR()-l SEX CHAR()-l DEPTNO CHAR()- 实体完整性:SNO为主码;- 参照完整性:DEPTNO为外码,并实现级联更新和级联删除操作;- 用户定义完整性-SNO取值为级的学号取值

3、范围,如等。-SNAME 取值非空;-SEX的取值只能为男或女;CREATE TABLE Student(SNO CHAR(10)PRIMARY KEYconstraint b1 check(SNO between 2010080000 and 2010089999),Sname varCHAR(8) NOT NULL unique,Ssex CHAR(2) constraint b2 check(Ssex in(男,女),DEPTNO CHAR(2),FOREIGN KEY (DEPTNO)REFERENCES DEPT(DEPTNO)on delete cascadeon update c

4、ascade);drop table Student-3、Teacher表-l TNO CHAR()-l TNAME VARCHAR()-l DEPTNO CHAR()- 实体完整性:TNO为主码;- 参照完整性:DEPTNO为外码,并实现级联更新和级联删除操作;- 用户定义完整性-TNO取值为开头的四位数字字符串;-TNAME取值非空;CREATE TABLE Teacher(TNO CHAR(3)PRIMARY KEYconstraint a1 check(TNO between 0800 and 0899),TNAME varCHAR(8) NOT NULL ,DEPTNO CHAR(2

5、),FOREIGN KEY (DEPTNO)REFERENCES DEPT(DEPTNO)on delete cascadeon update cascade);drop table Teacher-4、Course表-l CNO CHAR()-l TNO CHAR()-l CNAME VARCHAR()-l CREDIT SNALLINT- 实体完整性:CNO;- 用户定义完整性-CNAME取值非空;-CREDIT取值为至以内的数字;- 参照完整性:TNO为外码,并实现级联更新和级联删除操作;CREATE TABLE Course(CNO CHAR(4),TNO CHAR(3),CNAME

6、CHAR(20) NOT NULL,CREDIT INT check(CREDIT=1 and CREDIT=0 and GRADE8) update student set szk=8 where sno in(select sno from inserted)drop trigger id-2、修改Teacher表,增加属性ZC,char(5),表示教师的职称,增加属性GZ,money,表示教师的工资。-在Teacher表上创建触发器,实现当职称为副教授时,GZ如果低于,则自动修改为。ALTER TABLE Teacher ADD ZC char(5);ALTER TABLE Teache

7、r ADD GZ money;create trigger tirg5on Teacherfor insert,updateas declare j char(5)declare k moneyselect j=ZC from insertedselect k=GZ from insertedif ( j=副教授 and k3000)begin update Teacher set GZ=4000 where ZC=副教授 and GZ3000end出现的问题:在开始的时候,用户定义完整性和参照完整性:SNO外码、CNO外码中,要都实现级联删除和级联更新操作时,有些地方不是很清楚;在后面的触发器的创建,建在不对的表上时,触发器不能运行;触发器中有的触发器不是很能创建,特别是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论