-1-学生实验报告(理工类)课程名称:大型数据库技术实验专业班级:16软件工程学生学号:1612213005学生姓名:所属院部:软件工程指导教师:2016——2017学年第2学期金陵科技学院教务处制-2-实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。-3-实验项目名称:数据库的定义与基本操作实验学时:4同组学生姓名:实验地点:A203实验日期:2017.3.23实验成绩:批改教师:批改时间:一、实验目的和要求1、熟悉MSSQLServer2008工作环境,掌握登录和退出MSSQLServer2008的方法;2、掌握MSSQLServer2008数据库的基本操作,包括创建、查看、进入、缩小、更名、删除数据库及数据库文件;4、掌握表的创建和表的修改、更新、删除等基本操作;5、在数据库中创建视图、查询视图、显示视图创建的信息。二、实验仪器和设备设备:奔腾Ⅳ或奔腾Ⅳ以上计算机;环境:WINDOWS7或WINDOWSXP、MicrosoftSQLServer2008。三、实验过程1、根据题目要求熟悉MicrosoftSQLServer2008的各种管理工具;2、实现创建、查看、进入、更名、删除数据库,要求给出解决命令;3、实现数据表和视图的创建查询、更新操作。4、按以下题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;1)创建数据库数据库名:xmgl数据文件1的逻辑名为:xmgl1,物理名为:xmgl1.mdf,存放在“D:\xmgl”目录下,初始大小为:3MB,最大容量为25MB,增长方式为自动增长,每次增加1MB。数据文件2的逻辑名为:xmgl2,物理名为:xmgl2.ndf,存放在与主数据文件相同的目录下;文件大小为3MB;增长方式为自动增长,每次增加10%。日志文件1的逻辑名为:xmrz1,物理名为:xmrz1.ldf,存放在“D:\xmrz”目录下,初始大小为:1MB,最大容量为35MB,增长方式为自动增长,每次增加10%。2)修改数据库。在xmgl增加一个名为“xmgl3”的数据文件,在“D:\xmgl”目录下增加,文件名为“xmgl3.ndf”,初始大小为3MB,增长方式为自动增长,每次增加15%。删除“xmgl2”。-4-3)创建表在xmgl数据库中建四张表,分别是部门表(部门号,部门名,部门电话,部门地址,部门人数);员工表(员工号,姓名,性别,出生年月,技术职称,工资,所在部门号);项目表(项目编号,项目名称,所在地方,项目类型);员工参与项目(员工号,项目编号,职责)。其中有下划线的字段为关键字,斜字的字段是外关键字。除工资为数值类型、出生年月为日期类型外,其余字段均为字符类型。4)增加修改部分表及字段在部门表中增加部门领导字段(注意和员工号同域);在项目表中增加项目主管字段(注意和员工号同域)。5)输入四个表中数据。其中部门表不得少于5个,员工表不得少于10个,项目表不得少于5个,员工参与项目的情况表不得少于10个。6)创建一个查询参加所有项目的员工视图“V1_视图”,包括员工号、姓名,所在部门名。并进行查询。7)创建只包含部门名是“人事处”的显示部门信息的视图“V2_视图”,不带WITHCHECKOPTION。①在该视图上分别插入部门是“办公室”和“人事处”观察执行结果。②分别修改该视图针对部门是“办公室”和“人事处”的其他属性数据,观察执行结果。③分别删除部门是“办公室”和“人事处”的记录,分别观察执行情况。8)创建只包含部门名是“人事处”的显示部门信息的视图“V3_视图”,带WITHCHECKOPTION。①在该视图上分别插入部门是“办公室”和“人事处”观察执行结果。②分别修改该视图针对部门是“办公室”和“人事处”的其他属性数据,观察执行结果。③分别删除部门是“办公室”和“人事处”的记录,分别观察执行情况。5、提交完成的实验结果。四、实验结果与分析1)创建数据库2)修改数据库。-5-3)创建表-6-4)增加修改部分表及字段-7-5)输入四个表中数据。-8-6)创建一个查询参加所有项目的员工视图“V1_视图”,包括员工号、姓名,所在部门名。并进行查询。-9-7)创建只包含部门名是“人事处”的显示部门信息的视图“V2_视图”,不带WITHCHECKOPTION。①-10-②-11-③-12-8)创建只包含部门名是“人事处”的显示部门信息的视图“V3_视图”,带WITHCHECKOPTION。①-13-②-14-③-15-五、实验体会本次实验为期4课时,刚开始时老师给我们讲实验课的内容与要求,然后告诉我们一些要完成的任务与作业,然后根据文档和PPT要求,让我们从实践中去体会所学的知识。说实话,对于SQLServer数据库,我所学到的知识很不牢固,当时在课堂上听课所记住的也并不多,所以在上机实验课开始时,真的不知道该干些什么?有一种不知“何去何从”的感觉!但随着老师的教课和讲解,以及和同学的讨论,再结合自己所知道的知识和老师所发放下的PPT和文档内容,我从中学到了很多上理论课没有学到的实践知识。不过保存数据库文件,即数据库的分离和导入,一些细节问题未处理好,让我出现了一些问题。通过课后查找资料,我解决了这些问题,也让我对数据库的实践有了更加深刻的理解。-16-实验项目名称:安全性和完整性语言实验实验学时:4同组学生姓名:实验地点:A203实验日期:2017.3.31实验成绩:批改教师:批改时间:一、实验目的和要求1、掌握自主存取控制权限的定义和维护方法。2、掌握角色的定义和授权方法。二、实验仪器和设备设备:奔腾Ⅳ或奔腾Ⅳ以上计算机;环境:WINDOWS7或WINDOWSXP、MicrosoftSQLServer2008。三、实验过程1、掌握复杂约束条件的表达方法;2、掌握角色的定义和授权方法。要求给出解决命令;3、按题目要求完成实际操作任务;1)在实验1的表上,使用对象资源管理器定义下面的约束。①员工号是四位数字串,其中第一位和最后一位是取1-9之间的数字,其他是0-9。②项目编号是以字母J开始的其它是数字的4位字符串。③约束性别的取值为‘男’、‘女’,且非空,缺省是‘男’。④约束电话号码的格式:以8892开始的,第5位取234中的一个,其它是任意数字的8位数字串。2)在员工表中插入记录('0826','张三','男性','1982-3-20','','',0),查看结果,如不成功,请更正。3)使用SQL语言增加修改部分表及字段①在员工表中增加技术职称和工资字段,其中工资字段为数值类型。②在项目表中增加开工日期和完工日期字段,类型为日期类型。③增加约束工程开工日期小于计划完工日期。④修改部门人数字段类型为整型。⑤删除项目表中的项目类型字段。4)建立数据库及表如下:数据库:LabBook表:bookInfo-17-id(int,标识,PK)bookTitle(varChar)bookAuthor(varChar)bookDemo(text)表:bookInfoBid(int,标识,PK)bookCostPrice(float)bookSellPrice(float)bookInDate(date)表:borrowInfoid(int,标识,PK)bookId(int)outDate(date)inDate(date)5)建立具有不同权限的多种用户角色a、图书管理员角色bookAdmin:对3个表具有完全控制权限。b、借书服务员角色bookOP:bookInfo表全部列只有查询权限。bookInfoB表除bookCostPrice列以外全部列只有查询权限,bookCostPrice列无任何权限。borrowInfo表所有列具有除删除以外的所有权限。c、读者角色bookReader:bookInfo表全部列只有查询权限。bookInfoB表除bookCostPrice列以外全部列只有查询权限,bookCostPrice列无任何权限。borrowInfo表所有列只具有查询权限。4、提交完成的实验结果。四、实验结果与分析1)在实验1的表上,使用对象资源管理器定义下面的约束。①-18-②③-19-④-20-2)在员工表中插入记录('0826','张三','男性','1982-3-20','','',0),查看结果,如不成功,请更正。3)使用SQL语言增加修改部分表及字段①②-21-③④⑤-22-4)建立数据库及表如下:-23-5)建立具有不同权限的多种用户角色a、图书管理员角色bookAdmin:-24-b、借书服务员角色bookOP:c、读者角色bookReader:-25-五、实验体会本次实验为期4课时,从上节实验课后,我对于数据库有了很深的了解,而这次实验主要是对上次实验内容的总结和复习,以及实践体验数据库的约束和权限的控制。实验过程中,我发现约束语句不太好写,不同的情况,语句的格式有很大的变化,但经过多次实验上手,感觉手动操作比写查询代码要来的简单,约束建立完成之后,如果需要在表中添加数据,必须满足之前建立好的约束条件;权限控制,需要先创建角色,然后再赋予不同角色不同的权限,实验过程中,发现SQLSERVER2016已经不推荐赋予全部权限时采用ALLPRIVILEGES,所以赋予全部权限时,只能使用INSERT,UPDATE,DELETE,SELECT,REFERENCES。-26-实验项目名称:触发器、存储过程的应用实验学时:4同组学生姓名:实验地点:实验日期:实验成绩:批改教师:批改时间:一、实验目的和要求1、掌握使用触发器实现较复杂的用户自定义完整性。2、掌握存储过程的定义、运行、删除和参数传递。3、掌握数据库设计基本方法及设计工具。二、实验仪器和设备设备:奔腾Ⅳ或奔腾Ⅳ以上计算机;环境:WINDOWS7或WINDOWSXP、MicrosoftSQLServer2008。三、实验过程1.在员工表上创建一个名称为Insert_员工表的触发器,在用户向员工表中插入数据后触发,显示插入的记录。当创建完触发器之后,向员工表中插入一条记录,观察触发器的执行。2.创建DELETE触发器,用户对员工表执行删除操作后触发,并返回删除的记录信息。当创建完触发器之后,对员工表删除一条记录,观察触发器的执行。3.创建INSTEADOF触发器,当用户插入到项目表中一条记录,拒绝插入,同时提示“暂时不能接收新项目”的信息。4.使用sp_helptext查看Insert_员工表触发器的信息。5.创建存储过程QueryById,输入参数为员工号,返回该员工号对应的员工姓名和工资,并执行存储过程QueryById测试。四、实验结果与分析-27---createtriggerInsert_--on员工表--afterinsert--as--begin--select*frominsertedi;--end;insertinto员工表values('211','zs','女','1995-01-01','保洁员',1000,'后勤部');--createtriggerDelete_--on员工表--afterdelete--as--begin--sel