计算机10级数据库实验Word下载.docx
《计算机10级数据库实验Word下载.docx》由会员分享,可在线阅读,更多相关《计算机10级数据库实验Word下载.docx(25页珍藏版)》请在冰点文库上搜索。
实验报告要求采用统一印制的实验报告纸。
撰写实验报告要按制定的规范进行,实验报告中应附有实验原始记录。
指导教师对每个学生的实验报告要认真批改、评分、签字。
6.实验项目设置与内容
实验项目与内容提要见表1
表1
序号
实验项目名称
实验内容提要
性质
类型
学时
1
数据库的建立和维护
通过SOLServer企业管理器和查询分析器工具两种方法创建数据库、创建基本表、创建视图,向数据库输入数据,修改数据,删除数据操作
必做
验证
2
数据库的查询
数据库的简单查询和连接查询
在SOLServer查询分析器中对数据库进行简单查询和连接查询
数据库的嵌套查询
在SOLServer查询分析器中,使用in,any,exists操作符进行嵌套查询操作
数据库的组合和统计查询
在SOLServer查询分析器中对数据库进行组合和统计查询
3
数据完整性、安全性、备份和恢复
设置SOLServer的安全认证模式,设置数据操作权限,设置数据完整性约束条件,定义触发器,存储过程;
用企业管理器创建一个备份,并恢复定义的学生选课数据库
4
学生成绩管理系统的数据库设计与数据操作
利用SQLServer2000或2005设计一个简单学生成绩管理系统的数据库,并完成要求的数据操作
综合
目录
实验1:
数据库的建立和维护1
实验2:
数据库的简单查询和连接查询2
实验3:
数据库的嵌套查询4
实验4:
数据库的组合查询和统计查询6
实验5:
数据完整性、数据安全性、备份和恢复7
实验6:
综合实验12
一、实验目的
要求学生熟练掌握和使用SQL、T-SQL、SQLServerEnterpriserManagerServer创建数据库、表、视图和修改表结构,向数据库输入数据、修改数据和删除数据的操作。
并学会使用SQLServerQueryAnalyzer,接收T-SQL语句和进行结果分析。
二、实验内容
(1)创建数据库和查看数据库属性。
(2)创建表、确定表的主码和约束条件,建立索引。
(3)查看和修改表结构。
(4)向数据库中录入、修改、删除数据。
(5)熟悉SQLServerEnterpriserManager和QueryAnalyzer工具的使用方法。
三、实验任务
1.基本提作实验
(1)使用EnterpriserManager建立图书读者数据库。
(2)在EnterpriserManager中查看图书读者数据库的属性,并进行修改,使之符合要求。
(3)通过EnterpriserManager,在建好的图书借阅数据库中建立图书、读者和借阅3个表,
其结构如下:
图书(书号,类别,出版社,作者,书名,定价);
读者(编号,姓名,单位,性别,电话);
借阅(书号,读者编号,借阅日期)
要求为属性选择合适的数据类型,定义每个表的主键,AllowNull(是否允许空值)和
DefaultValue(缺省值)等列级数据约束。
(4)在EnterpriserManager建立图书、读者和借阅3个表的表级约束:
每个表的PrimaryKey(主键)约束;
借阅表与图书表间、借阅表与读者表之间的foreignkey(外码)约束,实现借阅表的书号和读者编号的UNIQUE(惟一性)约束;
实现读者性别只能是“男”或“女”的check(检查)约束。
(5)通过EnterpriserManager,在图书借阅数据库的图书、读者和借阅3个表中各输入5条记录。
要求记录不仅满足数据约束要求,还要有表间关联的记录。
并通过EnterpriserManager实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入、删除和修改操作。
(6)在SQLServerEnterpriserManager中调出CreateViewWizard,创建借阅_计算机图书视图。
(计算机指图书类别)
2.提高操作实验
建立学生-课程库操作,要求在查询分析器中实现。
库中各表的结构如下:
学生(学号,姓名,年龄,性别,所在系);
课程(课程号,课程名,先行课);
选课(学号,课程号,成绩)。
要求:
(1)建库、建表、建立表间联系。
(2)选择合适的数据类型。
(3)定义必要的列级约束和表级约束。
(4)通过查询分析器实现对学生-选课库的数据增加、数据删除和数据修改操作。
要求学生、课程和选课表中各有5条以上记录。
①删除成绩表中成绩低于60分的记录。
②删除学号为080006的学生记录。
③将选数据库课同学的成绩加5分。
④将计算机系的全体学生的成绩置零。
(5)通过查询分析器定义一个“计算机系”的学生成绩视图View_jsj,其属性包括学号、姓名、课程名和成绩。
四、实验报告要求
1、简要写出在企业管理器中的各操作过程。
2、用T-sql表示库中各种操作。
3、实验操作步骤和实验结果,实验中出现的问题和解决方法。
4、体会和提高。
<
1>
使学生掌握SQLServerQueryAnalyzer的使用方法,加深对SQL和T-SQL语言的查询语句的理解。
熟练掌握单表的数据查询、数据排序和数据连接查询的操作方法。
(1)简单查询操作。
该实验包括投影、选择、数据排序等。
(2)连接查询操作。
该实验包括内连接、外连接和自连接、等值连接、笛卡儿积等。
三、实验方法
将查询需求用T-SQL语言表示;
在SQLServerQueryAnalyzer的输入区中输入T-SQL查询语句;
设置QueryAnalyzer的结果区为StandardExecute(标准执行)或ExecutetoGrid(网格执行)方式;
发布执行命令,并在结果区中查看查询结果;
如果结果不正确,要进行修改,直到正确为止。
四、实验任务
1.基本操作实验
(1)简单查询实验
在学生-选课库中实现其数据查询操作。
1求计算机系学生的学号和姓名。
2求选修了课程的学生学号。
3求选修C2课程,成绩在80~90之间的学生学号和成绩,结果按成绩降序排列,如成绩同按学号升序排列。
4求数学或计算机系第二个字为“华”的学生信息。
5求缺少了性别的学生学号和成绩,并将成绩乘以0.8输出。
(2)连接查询实验
1)在学生选课库中实现其数据连接查询操作。
6查询每门课程的情况以及选课的学生学号和成绩。
7求学生的学号、姓名、选修的课程名。
8求选修课程C1且成绩在90分以上的学生学号、姓名及成绩。
9查询每一门课的间接先行课(即先行课的先行课)。
2)在图书借阅库中实现其连接查询操作。
查询借书者的编号、姓名、单位、所借书号、书名和借阅日期。
(1)建立职工部门库和职工、部门表,并向表中输入如下数据:
职工表
职工号
姓名
性别
年龄
所在部门
1010
李勇
男
20
11
1011
刘晨
女
19
1012
王敏
22
12
1014
张立
21
13
部门表
部门号
部门名称
电话
生产科
5666666
计划科
5788888
一车间
4679999
14
科研所
3325555
(2)用T-SQL语句在职工部门库中实现其数据内连接和各种外连接查询操作。
3.选择操作实验
(1)设职工—社团库有三个基本表。
职工(职工号,姓名,负责人,活动地点)
社会团体(编号,名称,负责人,活动地点)
参加(职工号,编号,参加日期)
1)建立职工社团数据库和基本表,向库中输入一定的记录。
2)按以下要求用T-SQL语句表示。
①定义职工表、社会团体表和参加表,并说明其主码和参照关系。
②查找参加唱歌队或篮球队的职工事情和姓名。
③查找没有参加任何社会团的职工情况。
④查找参加了职工号为“1001”的职工所参加的全部社会团体的职工号。
(2)设工程—零件库有四个表
供应商(供应商代码,姓名,所在城市,联系电话);
工程(工程代码,工程名,负责人,预算);
零件(零件代码,零件名,规格,产地,颜色);
供应零件(供应商代码,工程代码,零件代码,数量)。
1)建立工程_零件数据库和基本表,向库中输入一定的记录。
2)以下要求用T-SQL语句表示。
①找出天津市供应商的姓名和电话。
②查找使用预算在50000—100000元之间的工程的信息,并将结果按预算降序排列。
③找出使用供应商S1所供零件名称及其数量。
④找出工程项目J2使用的各种零件名称及其数量。
五、实验报告要求
1、用T-sql写出实验操作的查询语句。
2、实验操作步骤和实验结果,实验中出现的问题和解决方法。
3、体会和提高。
2>
使学生进一步掌握SQLServerQueryAnalyzer的使用方法,加深SQL和T-SQL语言的嵌套查询语句的理解。
在SQLServerQueryAnalyzer中使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。
用T-SQL语句表示,在学生选课库中实现数据嵌套查询操作:
①求选修了“数据库原理及应用”的学生信息。
②求C1课程的成绩高于张三的学生姓名和成绩。
③求其他系中比计算机某学生年龄小的学生(即求年龄小于计算机系年龄最大者的学生)
④求其他系中比计算机系学生年龄都小的学生。
⑤求没有选修C2课程的学生姓名。
⑥查询全部学生都选修了的课程名。
⑦求至少选修了学生为“S2”的学生所选修的全部课程的学生学号的姓名。
2.提高操作实验
按以下要求用T-SQL语句表示并通过SQLServerQueryAnalyzer实现查询操作。
①找出上海厂商供应的所有零件号码。
②找出使用上海产的零件的工程名称。
③找出没有使用天津产零件的工程号码。
3选择操作实验
将自设计的数据库应用项目中的数据查询操作分类,用T-SQL语句表示其中的简单、连接和嵌套查询,并通过SQLServerQueryAnalyzer实现其查询操作。
3、体会和提高
3>
数据库的组合查询和统计查询
使学生熟练掌握SQLServerQueryAnalyzer的使用方法,加深对SQL和T-SQL语言查询语句的理解。
熟练掌握数据查询中分组、统计、计算和组合的操作方法。
1)分组查询实验。
该实验包括分组条件表达、选择组条件表达的方法。
2)使用函数查询的实验。
该实验包括统计函数和分组统计函数的使用方法。
3)组合查询实验。
4)计算和分组计算查询的实验。
设置QueryAnalyzer的结果区为StandardExecute(标准
执行)或ExecutetoGrid(网格执行)方式;
在图书借阅库中实现其查询操作:
1)查找这样的图书类别:
要求类别最高的图书定价不低于全部按类别分组的图书平均定价。
2)求机械工业出版社出版的各类图书的平均定价,用GroupBy表示。
3)列出计算机类图书的书号,名称及价格,最后求出册数和总价格。
4)列出计算机类图书的书号,名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。
5)查询计算机类和机械工业出版社出版的图书。
6)查询既借阅了数据结构图书又借阅了数据库原理图书的读者姓名和读者编号。
1)求选修了课程的学生人数。
2)查询各系及学生人数。
3)查询每门课程的详细信息和选课人数。
4)统计学生表中的男生人数、女生人数及总人数。
3.选择操作实验。
将自设计的数据库应用项目中的分组、统计、计算和组合查询,用T-SQL语句表示,并通过SQLServerQueryAnalyzer实现其查询操作。
数据完整性、数据安全性、备份和恢复
通过实验使学生加深对数据安全性和完整性的理解,并掌握在企业管理器中SQLServer中有关用户、角色及操作权限的管理方法,学会创建和使用规则、缺省和触发器。
了解使用T-Sql语句管理SQLServer登录帐户、SQLServer用户、数据库角色、管理权限的方法。
使学生掌握SQLServer的数据备份和恢复机制,数据库备份和恢复的方法。
理解数据库的完全备份、差异备份、日志备份、文件和文件组备份,掌握利用企业管理器和Transact-SQL语句备份、还原数据库、在企业管理器中分离数据库、附加数据库的方法。
二、实验内容:
(1)数据库的安全性实验。
在SQLServerEnterpriserManager中,设置SQLServer的安全认证模式,实现对SQLserver的用户和角色管理,设置和管理数据操作权限。
(2)数据库的完整性实验。
通过SQLServerEnterpriserManager定义规则、缺省、约束和触发器、存储过程。
(3)用EnterpriseManager创建一个备份设备。
(4)为学生选课库设置一个备份计划,要求每当CPU空闲时进行数据库备份。
(5)在EnterpriseManager中恢复学生选课数据库。
1.基本操作实验(参照教材)
(1)在SQLServerEnterpriserManager中为所属的SQL服务器设置混合安全认证模式。
(2)在SQLServerEnterpriserManager中为自己建立一个服务器用户、数据库用户和数据库角色。
并将自己创建的学生选课库、图书借阅库的所有操作权赋予它们,将自设计的数据库的操作权赋予新建的数据库用户。
(使用两种方法)
(3)备份数据库
1)利用企业管理器备份数据库。
写出操作过程。
2)使用Transact-sql语句备份数据库。
利用Transact-SQL语句完全备份数据库到磁盘文件d:
\Database_DBS\stud_BAK(逻辑设备名)中。
写出SQL语句。
注意:
在备份数据库前必须首先建立逻辑备份设备(可以理解为对应于磁盘上的一个文件),然后再进行备份。
若指定的逻辑设备已经存在,可以删除逻辑设备,还可以查询当前的逻辑设备。
(3)用备份向导进行备份。
写出操作过程。
(4)还原数据库
1)利用企业管理器还原数据库。
写出操作过程。
2)使用Transact-sql语句还原数据库。
(5)分离与附加数据库
利用企业管理器分离、附加数据库,写出操作过程。
注:
相关的语句的语法格式:
1.添加sqlserver帐号
增加新的帐号可以执行系统存储过程sp_addlogin,格式如下:
sp_addloginlogin_id[,passwd,[defdb[,deflanguage]]]
2.删除sqlserver登陆帐号
利用存储过程sp_droplogin
3.添加用户
利用系统存储过程sp_adduser,格式如下:
Sp_adduserlogin_id[,username]
4.删除用户sp_dropuser
5.创建数据库角色sp_addrole
6.向角色中增加/删除成员sp_addrolemember/sp_droprolemember
例如:
向学生数据库中创建角色newroles,并将用户x添加到该角色中
Use学生
Execsp_addrole‘newroles’
Execsp_addrolemember‘newroles’,’x’
建立备份的相关语句
1.建立备份设备
Sp_addumpdevice{‘disk’|’diskette’,’tape’},’logical_name’,’physical_name’
Disk:
说明用硬盘文件作为转储设备diskette:
软盘tape磁带
logical_name:
转储设备的逻辑名
physical_name’:
转储设备的物理名
2.备份数据库
Backupdatabasedbnametodump_device转储设备
BACKUPLOGdatabase_nameTObackup_device
3.还原数据库
Restoredatabasedbnamefrombackup_device
RestoreLOGdbnamefrombackup_device
2.提高操作实验
(1)建立一个学生与选课表间,为维护参照完整性而使用的联级删除触发器。
(即删除学生记录时,同时也要把相应的选课记录删除)。
(2)创建一个存储过程。
针对自设计的数据库应用项目中完整性要求,用T-SQL进行定义并通过EnterpriserManager实现。
2、写出相关的T-sql语句。
附:
(1)利用Transact-SQL语句备份数据库
1)利用Transact-SQL语句完全备份数据库ypxs到磁盘文件f:
\bak\ypxs_BAK中。
首先利用系统存储过程sp_addumpdevice建立一个逻辑备份设备ypxs_backup,然后利用BACKUPDATABASE命令备份数据库ypxs到逻辑备份设备ypxs_backup中,如图1所示。
图1完全备份数据库DBS
其中:
WithINIT表示重写逻辑设备,为空时表示追加到逻辑设备。
2)利用Transact-SQL语句备份数据库DBS的事务日志到一个磁盘文件f:
\bak\ypxs_BAK中,如图2所示。
图2-备份数据库DBS的事务日志
3)利用Transact-SQL语句差异备份数据库DBS到一个磁盘文件f:
\bak\ypxs_BAK中,如图3所示。
图3差异备份数据库DBS
(2)使用Transact-SQL语句还原数据库
1)恢复数据库备份
下面利用RESTOREDATABASE命令恢复数据库备份ypxs_BAK为数据库ypxs,如图4所示。
图4恢复数据库备份
当还原数据库备份和多个事务日志时,或在需要多个RESTORE语句时(例如在完整数据库备份后进行差异数据库备份),SQLServer要求在除最后的RESTORE语句外的所有其它语句上使用WITHNORECOVERY选项,NORECOVERY表示不对数据库执行任何操作,不回滚任何未提交的事务。
2)恢复事务日志备份
如:
首先恢复备份数据库ypxs_BAK后,再恢复事务日志备份ypxs_backup为数据库DBS。
图5恢复事务日志备份
综合实验
一、实验名称
学生成绩管理系统的数据库设计和数据操作
二、实验目的
1、掌握需求分析的方法。
2、掌握数据库概念结构设计方法。
3、掌握数据库逻辑结构设计方法。
4、掌握数据库物理结构设计方法。
5、掌握在SQLServer2000下数据定义、数据查询、数据更新、数据控制的实现。
三、实验要求
1、对系统进行需求分析。
2、设计数据库的概念结构。
3、设计数据库的逻辑结构。
4、设计数据库的物理结构。
5、建立数据库、录入数据,并做指定的数据操作。
四、实验内容
学生成绩管理系统涉及教学系、班级、专业、学生、课程几个实体集。
教学系从系编号、系名称两个方面刻画。
班级从班级编号、班级名称两