北邮大三下数据库实验报告5.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北邮大三下数据库实验报告5

北京邮电大学 实验报告 课程名称 数据库系统原理 实验内容 实验5 数据库完整性与安全性实验 班级 2013211*** 姓名 *** 指导老师 成绩_________ 2016年 05月 20日 实验5 数据库完整性与安全性实验 实验目的: 通过对完整性规则的定义实现,熟悉了解SQL SERVER中完整性保证的规则和实现方法,加深对数据完整性的理解。 通过对安全性相关内容的定义,熟悉了解SQL SERVER中安全性的内容和实现方法,加深对数据库安全性的理解 实验内容 完整性实验与要求: 分别定义数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束; 定义主键: 方法一:使用Enterprise Manager设置主键(以book表为例) ①光标移到book表的位置,右键-设计 ②在你要选的属性列右键-设置主键,完成。 方法二:使用SQL语句。 ①右键数据库,新建查询 设置外键: 方法一:使用Enterprise Manager设置外键(以student表为例) ①单击student表,鼠标移到“键”文件夹,单击右键,选择“新建外键”。 ②选择“表和列规范”进行设置 ③我们想在student表设置class_id属性为外键,按照下图选择,点击确定,保存即可。 方法二:SQL语句 新建查询,输入如图语句。 向学生表插入具有相同学号的数据,验证其实体完整性约束; Student表的主键是学号,所以不能插入有相同学号的学生。 向学生表中插入一条数据,班级号是学生表的外键,验证参照完整性约束; Class表中没有“2013211302”这个班级,所以无法插入。改变班级号为class表中存在的,则能够进行插入,结果如下: 删除教师表中的所有数据,验证参照完整性约束; 定义存储过程,完成查询学生表中学号=g9940206的行,并执行。 资料:存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,是利用SQL Server所提供的Transact-SQL语言所编写的程序。功能是将常用或复杂的工作,预先用SQL语句写好并用一个指定名称存储起来, 以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。 定义了一个名为“find_stduent_id”的存储过程,点击资源管理器中的“存储过程”,找到它,右键-执行存储过程。 实行结果如下图: 定义触发器,当向学生表插入一条记录时,将所有学生的学号值加1;并对其进行测试 触发器介绍: 触发器是维护表间的数据的一致性和完整性的一种机制。 触发器的主要用途在于: 能够对数据库的多个表的内容级联(cascade)修改 当违反参照完整性时,触发器能够撤回试图进行数据修改的事务。 触发器能够实施比规则复杂的多的限制 触发器还能够比较数据修改前后某表的状态,并进行相应的动作。 方法一:使用SQL语句 因为学号不是纯数字,学号含有字母和数字的字符串,所以不能直接 student_id+1。需要进行一些转换。 方法二:使用资源管理器创建。 右键“触发器”-“新建触发器”,弹出下图对话框。还是需要用SQL语句写,所以不再重复。 安全性实验内容与要求: 定义一新的登陆帐号、数据库用户,并授予其访问学生选课系统。 ①数据库安全性-用户-登录名-新建登录名 ②操作选项见下图 点击确定,用户“莫妮卡”创建成功。 分别采用Windows 2007验证方式和Windows 2007及SQL Server混合验证方式用不同的用户进行登录连接; ①先断开当前连接。 ②输入相关信息进行连接。 分别用sa用户和新定义的用户访问学生选课数据库,并对其中的学生表数据进行修改; ①连接sa用户,方法如上。 修改成功。 ②使用“莫妮卡”用户对student表进行改写。操作被拒绝。 创建数据库角色,并授予访问学生选课数据库的读、写权限; 授权仅以student表为例 将角色赋予(1)中定义的用户,建立用户和角色联系; 见上一步。 再次用此用户访问学生选课数据库,并对其中的学生表数据进行修改。 用户“莫妮卡”与拥有读写权限的角色关联之后,也能对数据库进行读写。 实验总结: 通过本次实验,我更深刻地理解了主键、外键、用户权限等等对数据库的维护作用。存储过程、触发器这两样课本中提及不多,想要更全面地了解它们需要查阅其他资料,锻炼了查阅知识、自学的能力。本次实验也增加了对SQL语言的熟练程度。

文档评论(0)

5500046 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档