重庆大学数据完整性控制第四次实验
下载后可任意编辑 重 庆 大 学 学 生 实 验 报 告 实验课程名称 数据库原理与设计 开课实验室 DS1501 学 院 软件学院 年级 2024级 专业班 学 生 姓 名 学 号 开 课 时 间 至 学年第 1 学期 总 成 绩 老师签名 软件学院 制 《 数据库原理与设计 》实验报告 开课实验室: 201年 月日 学院 软件学院 年级、专业、班 姓名 成绩 课程 名称 数据库原理与设计 实验项目 名 称 数据完整性控制 数据安全性控制 指导老师 一、实验目的 重点掌握如下知识点的相关操作: 实验6、数据完整性控制 实验9、数据库安全性控制 二、实验环境 PC一台,操作系统为win8.1 SQLServer2024 三、实验内容 主要实验内容如下: 实验6 数据完整性控制 6.1 实体完整性 6.2 参照完整性 6.3 用户定义的完整性 6.4 触发器 实验9 数据库安全性控制 9.1 创建登录账户 9.2 创建数据库用户和角色 9.3 权限管理 9.4 删除数据库用户和登录账户 四、实验过程原始记录(对每个实验内容给出一两个代表性图片) 实验六、数据完整性控制 习题1.对Library中的表实现实体完整性并验证。 ① 给各个表设置主键 对Book表填加主键,输入T-SQL语句如下: use Library alter table Book add constraint pk_bno primary key(Bno) 执行成功,结果如下: 对Reader表填加主键,输入T-SQL语句如下: use Library alter table Reader add constraint PK_Reader primary key(Rno) 执行成功,结果如下: 对Borrow表填加主键,输入T-SQL语句如下: use library alter table Borrow add constraint ab_Rno primary key(Rno,Bno) ② 给各个表创建UNIQUE约束 在Book表中对书名创建UNIQUE约束,输入T-SQL语句如下: use Library alter table Book add constraint Book_uni unique(Btitle) 执行成功,结果如下: 在Reader表中对读者名创建UNIQUE约束,输入T-SQL语句如下: use Library alter table Reader add constraint Reader_uni unique(Rname) 执行成功,结果如下: 习题2.实现各个表之间的参照完整性并验证。 为Borrow表添加外键,输入T-SQL语句如下: use Library alter table Borrow add constraint fk_borrow_book foreign key(bno)references Book (pk_bno) alter table Borrow add constraint fk_borrow_reader foreign key(rno)references Reader (Rno) 执行成功,验证结果如下: 习题3.实现下列约束并验证。 ① 姓名不能为空值。 输入T-SQL语句如下: use Library alter table Reader with check add constraint ck_rname check ((Rname)is not null) 执行成功,验证结果如下: 试图向Reader表中插入姓名为空的一行记录,失败,结果如图: ② 性别应该为“男”或“女”。 输入T-SQL语句如下: use Library alter table Reader with check add constraint ck_Rsex check (Rsex in ( 男 , 女 )) 执行成功,验证结果如下: 测试,试图向Reader中插入性别为“中”的记录,执行失败。如图: ③ 年龄必须在0~100之间。 输入T-SQL语句如下: use Library alter table Reader with check add constraint ck_Rage check (Rage>0 and Rage0 ) 执行成功,验证结果如下: 测试,试图向Book表中插入价格为0的记录,执行失败。如图: ⑤ 借阅日期默认为当前日期。 输入T-SQL语句如下: use Library alter table Borrow add constraint ck_BorrowDate default(GetDate())fo