数据库系统概论报告.DOC

上传人:国*** 文档编号:2433134 上传时间:2019-05-13 格式:DOC 页数:29 大小:607.08KB
下载 相关 举报
数据库系统概论报告.DOC_第1页
第1页 / 共29页
数据库系统概论报告.DOC_第2页
第2页 / 共29页
数据库系统概论报告.DOC_第3页
第3页 / 共29页
数据库系统概论报告.DOC_第4页
第4页 / 共29页
数据库系统概论报告.DOC_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、数据库系统概论实验报告实验名称:数据的完整性和安全性控制实验类型:_验证型实验_实验环境:_Microsoft SQL Sever 2008_指导教师:_徐之琦_专业班级:_信息安全五班_姓名:_黄炳南_学号:_200730501096_联系电话:_15992402040_电子邮件:__ 实验地点:_实验日期: 年 月 日实验报告日期: 年 月 日成绩:_ _一、实验目的(1)完整性控制: a.理解数据库的三类完整性规则; b.掌握实体完整性的定义 c.掌握参照完整性的定义 d.掌握用户自定义完整性的定义 e.掌握使用短语 NOT NULL、UNIQUEHEHE CHECK 来保证用户定义完整

2、性 e.掌握使用规则来定义约束 f.掌握触发器的创建和使用(2)安全性控制: a.理解数据库的安全性保护 b.掌握 SQL Server 中有关用户登录认证以及管理的方法 c.理解数据库存取控制机制 d.熟练掌握 T-SQL 的数据控制语言,能通过自主存取控制进行权限管理 e.熟悉 SQL Server 中角色管理 f.熟悉视图机制在自主存取控制上的应用二、实验内容1.完整性控制:(1). 实体完整性定义(2). 参照完整性定义(3). 用户自定义完整性定义2.安全性控制:(1). 在 SQL Server 企业管理器中,设置SQL Server 的安全认证模式(2). 在查询分析器中建立登录

3、账号、数据库用户(3). 利用 T-SQL 实现自主存取控制(4). 角色管理(5). 视图机制在自主存取控制上的应用三、实验要求A)设计一个大学信息管理系统的数据库。B)各部门对该系统的要求:学生处:管理各院系班级学生的基本情况教务处:掌握学生各门课程的成绩情况各院系:登录本院系学生各门课程的成绩四、实验平台Microsoft SQL Sever 2008五、实验步骤、出现的问题及解决方案(不能解决的将问题列出)3. 实验步骤 完整性控制:-(1). 在“zjs”数据库中建立教师表,要求定义教工号为主码,职称默认值为“讲师” ,每个教-师的实发工资不低于元。USE hbnGOCREATE T

4、ABLE 教师( 教工号 CHAR(4) PRIMARY KEY, /*定义实体完整性*/教师姓名 CHAR(10) NOT NULL,性别 CHAR(2),职称 CHAR(10) DEFAULT (讲师), /*定义用户自定义完整性*/应发工资 NUMERIC(7,2),扣除工资 NUMERIC(7,2),院系编号 CHAR(2),CONSTRAINT EMPFKEY FOREIGN KEY(院系编号) REFERENCES 院系(院系编号), /*定义参照完整性*/CONSTRAINT C1 CHECK(应发工资+扣除工资=2000) /*定义用户自定义完整性*/)GO-(2). 向教师表

5、中插入一条教师记录:USE hbnGOINSERT INTO 教师(教师姓名,性别)VALUES(李红,女 )GO-SQL SERVER 不允许执行该操作,因为在表hbn.dbo.教师中,教工号是主码,在添加数据行的时候要分配一个唯一值,不能-为空值,否则添加失败-(3). 向教师表中插入一条教师记录:USE hbnGOINSERT INTO 教师(教工号,教师姓名,性别)VALUES(0001,王波 ,男)GO-命令执行成功,职称非空,为讲师,这是因为在建立表职的时候,职称这个列属性有个完整性DEFAULT ( 讲师),也就是当职称 -不填入任何数据的时候默认为讲师-(4). 向教师表中插入

6、一条教师记录USE hbnGOINSERT INTO 教师(教工号,教师姓名,性别,院系编号)VALUES(0002,王波 ,男, 07)GO-INSERT 语句与FOREIGN KEY 约束“EMPFKEY“冲突。该冲突发生于数据库“hbn“,表“dbo.院系“, column 院系编号。因为院系表-中的院系只有, , ,还没有,对于参考院系主码的教师表来说,为了保证完整性约束和数据库的一致性,只能建立院系-表中已经有的院系号,否则建立失败。-(5). 向教师表中插入一条教师记录:USE hbnGOINSERT INTO 教师(教工号,教师姓名,性别,院系编号)VALUES(0002,张静

7、,女, 01)GO-可以执行,因为主键非空唯一,而外键院系号的值在院系表中已经有了,所以建立成功。用一下命令可以查看结果select *from 教师-(6). 在查询分析器中分别输入下面的语句,问DBMS 是否允许执行,为什么?USE hbnGOINSERT INTO 选课VALUES (200512121,1,78)GO-INSERT 语句与 FOREIGN KEY 约束“FK_ 选课_学号_0F975522“ 冲突。该冲突发生于数据库“hbn“,表“dbo.学生“, column 学号,这个外键学号是参考学生表中的学号,由于学生表中还没有这个学号值,所以不能参考,为防止破坏完整性约束条件

8、,禁止执行该语句。USE hbnGOUPDATE 选课SET 学号=200615121WHERE 学号=200515121GO-可以执行,但是没有对表造成任何影响,因为要更新的条件学号值在学生表中已经存在,而由于在选课表中已经没有任何数据,所以找不到要更新的数据,因此没有对数据库造成任何影响USE hbnGODELETEFROM 学生WHERE 学号=200515121GO-命令成功执行,因为存在学号为200515121的数据行USE hbnGOUPDATE 学生SET 学号=200615122WHERE 学号=200515122GO命令成功执行,因为学生表中存在学号为00515122的数据行

9、-可以用一下命令来查询对数据库修改后的情况select *from 教师;-(7). 在教师表中增加一个约束,令性别的值只能是 男或 女。-方法一:因为教师表已经存在,而没有指定CHECK 约束,那么可以通过使用ALTER TABLE命令来指定。在查询分析器中输入如下SQL 语句:USE hbnGOALTER TABLE 教师ADD CONSTRAINT C2 CHECK(性别 IN (男,女)GO-方法二:若不想改变表的结构,则可以通过规则来实现。在查询分析器中输入如下SQL 语句:USE hbnGOCREATE RULE rulsex /*创建规则 rulsex*/ASSsex IN(男

10、,女)GOsp_bindrule rulsex,教师.性别 /*把规则约束到列*/GO-建议大家采用方法二,因为一个规则可以绑定多个对象。可以把规则同时绑定到学生表的性别属性列上。-(8). 请使用系统存储sp_unbindrule 解除rulsex 规则的绑定use hbngosp_unbindrule 教师.性别go-(9). 请将规则rulsex 同时绑定到两张表的“性别”属性列上。use hbngosp_bindrule rulsex,学生.性别;gosp_bindrule rulsex,教师.性别;go-由于没有找到可行的一次性将约束条件添加到多个表的不同属性上,只能利用上面学过的将

11、约束规则添加到一个表的方法,分别给两个表的属性添加属性约束条件-(10). 当有人试图在Teacher 表中添加或更改数据时,向客户端显示一条消息:您在 Teacher 表-中成功地添加或修改了一条记录。在查询分析器中输入如下SQL 语句:USE hbnGOIF EXISTS (SELECT name FROM sysobjectsWHERE name = reminder AND type = TR)DROP TRIGGER reminderGOCREATE TRIGGER reminderON 教师FOR INSERT, UPDATEAS RAISERROR (您在教师表中成功地添加或修改了一条记录。, 16, 10)GO-(11). 在查询分析器中输入下面的语句,激活触发器。USE hbnGOINSERT INTO 教师(教工号,教师姓名)VALUES(2166,张乐乐 )GO

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 重点行业资料库 > 医药卫生

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。