资源描述:
《合肥师范学院 数据库实验三.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、合肥师范学院实验报告姓名:课程名称:数据库原理院(系):计算机学院专业/年级:2014计算机科学与技术(嵌入式班)实验三——数据库完整性与安全性(4课时)一、实验目的1.理解实体完整性、参照完整性、用户自定义完整性的概念,学习三类完整性的实现,了解违反完整性的结果;2.掌握MSSQLSERVER中的有关用户登录认证及管理方法,熟练使用自主存取控制进行权限管理;二、实验预习内容在认真阅读教材及实验指导书【2.1实体完整性】、【2.2参照完整性】、【2.3用户自定义完整性】、【2.4触发器】、【2.5综合案例】和【3.1用户标识与鉴别】、【3.2自主存取控制】、【3.3
2、视图机制在自主存取控制上的应用】、【3.4Public角色在安全性中的应用】、【3.8综合案例】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。1.使用SCHOOL数据库1)创建一张新表CLASS,包括Class_id(varchar(4)),Name(varchar(10)),Department(varchar(20))三个属性列,其中Class_id为主码:CreatetableCLASS(Class_idvarchar(4)primarykey,namevarchar(10),departmentvarchar(20));1)执行两次相同的插
3、入操作(’0001’,’01csc’,’cs’),结果如何;insertintoclassvalues(’0001’,’01csc’,’cs’);1.使用SQL命令创建一张学生互助表,要求:包括学生编号、学生姓名、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。createtablestudenthelp(sidchar(10),snamechar(30),shidchar(10)unique,foreignkey(sid)referencesstudents(sid));2.使用STC数据库,修改设置,完成以下2种不同的要求,请写出
4、对应的语句或简述操作过程:1)当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;altertablescdropFK_SC_STU;altertablescaddconstraintfk_snoforeignkey(sno)referencesstu(sno)ondeletenoactiononupdatenoaction;1)当更新、删除STU表中记录时,若SC表中有此学生的记录,则自动更新或删除;altertablescdropfk_sno;altertablescaddconstraintfk_snoforeignkey(sno)referenc
5、esstu(sno)ondeletecascadeonupdatecascade;1.使用SQL命令完成以下任务:创建Worker表(表结构见指导书P73)createtableworker(numberchar(5),namechar(8),sexchar(1),sageint,deparmentchar(20));1)定义约束U1、U2,其中U1规定Name字段取值唯一,U2规定sage字段上限是28;useschoolcreatetableworker(numberchar(5),namechar(8)constraintu1unique,sexchar(1)
6、,sageintconstraintu2check(sage<=28),deparmentchar(20),constraintpk_workerprimarykey(number))1)插入一条合法记录;insertintoworkervalues('20161','王丽','n','23','科技部');1)插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因;insertintoworkervalues('20162','李民','n','30','办公部');2)去除U1约束;altertableworkerdropu1;3)修改约束U2,令sage
7、的值大于等于0;altertableworkerdropu2;altertableworkeraddconstraintu2check(sage>=0);1)创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;createrulerule_sexas@valuein('F','M')goexecsp_bindrulerule_sex,'worker.[sex]';2)插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。insertintoworkervalues('20163','李敏','n','27',