《数据库原理》实验 班级: 学号: 姓名: name char(8), sex char(1), sage int ,
department char(20) );
2) 定义约束U1、U2,其中U1规定Name字段取值唯一,U2规定sage字段上限是28; create table WORKER
( number char(5) primary key,
name char(8) constraint U1 unique, sex char(1),
sage int constraint U2 check(sage<=28), department char(20) );
3) 插入一条合法记录; insert
into worker(number,name,sex,sage,department) values('0005','张丽','W','25','信息部')
4) 插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因; 插入的语句如下: insert
into worker(number,name,sex,sage,department) values('0006','李勇','M','30','信息部')
服务器报错,在WORKER 表中无法插入该条记录,因为INSERT 语句与 COLUMN CHECK 约束 'U2' 冲突,该冲突发生于数据库 'School',表 'WORKER', column 'sage' 5) 去除U1约束;
6) 修改约束U2,令sage的值大于等于0; alter table worker drop constraint U2 alter table worker
add constraint U2 check(sage>=0) 7) 创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段; create Rule rule_sex as @value in ('F','M') go
exec sp_bindrule rule_sex,'worker.[sex]';
8) 插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。 5. 使用查询分析器创建触发器并测试,请写出相应的语句:
1) 为Worker表创建触发器T1,当插入或更新表中数据时,保证所操作记录的sage大于
0;
2) 为Worker表创建触发器T2,禁止删除编号为00001的记录;
3) 为Worker表创建触发器T3,要求更新一个记录时,表中记录的sage要比老记录的
sage的值大。
6. 分别用企业管理器和查询分析器实现用户的标识并测试,请写出相应的操作过程或对应
的语句:
19
《数据库原理》实验 班级: 学号: 姓名: 1) 设置SQL SERVER的安全认证模式;
2) 建立名为“LiYong”的登录用户、数据库用户,默认访问SCHOOL数据库,密码为
“abcd”;
3) 取消“LiYong”用户;
7. 先以sa帐号登录,要实现如下表的权限管理,请按先后顺序写出相应的SQL语句(假设所有用户尚未定义,其密码均为123),并加以必要的说明。 编号 授权用户名 被授权用户名 1 2 3 4 5 6 7 8 SA SA SA SA U3 U4 SA SA U1 U2 PUBLIC U3 U4 U5 U6 U7 数据库对象名 Students Students Choices Students Students Students Choices Students.sname 允许的操作类型 SELECT ALL SELECT SELECT SELECT SELECT INSERT UPDATE 能否转授权 不能 不能 不能 能 能 不能 能 不能
8. 创建在SCHOOL数据库中choices上的视图CS_View,授权给计算机系讲授课程号
为’10010’的数据库用户“LiYong”,让其具有视图上的SELECT权限; 9. 对视图CS_View上的score属性列的UPDATE权限授予用户“LiYong”,可以修改学生成
绩,但不能修改其它属性列的值;
10. 假设SCHOOL数据库中,每个学生的登录名都为自己在STUDENTS表中的sid,实现每
个学生只能查询自己选课信息,不能查询别人的成绩,也不能修改自己的成绩。 11. 结束本次实验
三、实验课后训练
1. 自行练习实验指导书P81【实验2.5 综合案例】综合案例1; 2. 自行练习实验指导书P122【实验3.8 综合案例】综合案例;
20
《数据库原理》实验 班级: 学号: 姓名: 四、实验报告
1. 授权给public与授权给指定用户有什么区别?实际应用中,哪个更安全些? 2. SQL SERVER中的角色有什么作用?
3. 实验总结(实验过程中出现的问题、解决方法、结果如何或其它)
21
《数据库原理》实验 班级: 学号: 姓名: 实验四——数据库编程
一、实验目的
1. 掌握ODBC的配置;
2. 能编写简单的存储过程和函数,并调用;
二、实验预习内容
上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1. 配置ODBC,使用VFP中的表单,查询SCHOOL数据库中STUDENTS表中所有记录。 2. 编写存储过程并调用,请写出相应命令;
1) 在查询分析器中,编写存储过程usp_get_stuinfo ,使用一个名为@xm能够传送进存储过
程的参数。允许以学生的姓名查询该生的基本信息;
2) 在查询分析器中调用存储过程查询“赵飞”同学的基本信息的语句; 3. 编写函数并调用,请写出相应命令;
1) 在查询分析器中,定义内联表值函数Fun,用于返回各职称的教师基本信息; 2) 在查询分析器中,使用Fun进行选择以获得“教授”职称的教师基本信息; 3) 在查询分析器中,编写标量函数Func,用于返回两个整数中的最大值; 4) 在查询分析器中,调用此函数,输出两个数中的最大值;
5) 在SQL SERVER中定义函数FUNS,返回指定参数的平方,配置好ODBC后,在VFP中
调用FUNS并输出结果; 4. 结束本次实验
三、实验课后训练
1. 自行学习实验指导书P130【实验4.1 SQL SERVER事务的定义】; 2. 自行学习实验指导书P137【实验4.2 SQL SERVER 2005事务与锁】; 3. 自行练习实验指导书P165【实验4.6 游标及游标并发】;(P167 4.6.3 实验内容要完成)
22
《数据库原理》实验 班级: 学号: 姓名: 四、实验报告
1. 什么是ODBC?
2. 内联表值函数、标量函数、存储过程有什么区别?
3. 实验总结(实验过程中出现的问题、解决方法、结果如何或其它)
23

