数据库实验报告实验二.docx
- 文档编号:23118048
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:22
- 大小:378.43KB
数据库实验报告实验二.docx
《数据库实验报告实验二.docx》由会员分享,可在线阅读,更多相关《数据库实验报告实验二.docx(22页珍藏版)》请在冰豆网上搜索。
数据库实验报告实验二
湘潭大学
数据库实验报告
实验名称
SQL操作
班级
软件工程一班
指导老师
郭云飞(老师)
学生姓名
汤能武
系(院)
信息工程学院
实验时间
2011年12月
SQL操作
一、实验目的
1.了解和掌握MSSQLServer工具的使用;
2.熟悉掌握SQL'
3.训练学生设计与编写过程,函数与触发器的能力;
2、实验环境
1.硬件:
数据库服务器,客户机,局域网;
2.软件:
MSSQLServer2008,建模软件;
3、实验内容
根据给定的问题建立数据库模型,在MSSQLManagementStudio中建立该数据库,并利用SQL语句建立表格与视图,录入数据,进行查询,插入,删除,修改等操作,编写过程,函数,触发器等;
给定问题如下:
1.一个学校有若干教学楼和若干班;
2.一个教室有若干教室和若干管理人员;
3.一间教室只有一个管理人员,但一个管理人员可以管理若干个教室;
4.每周7天,每周上午,下午,晚上都可以安排上课,每周的课表都不变;
5.一间教室或班在一段时间内只能安排一堂课,但可以是合班上课;
4、实验准备
1.理论知识预习及要求
①使用SQL语句建立数据库;
②使用SQL语句进行查询,修改等操作;
③使用SQL语句建立过程,函数,触发器等;
④使用SQL创建数据表;
2.实验指导书预习及要求
上机前先预习数据库原理指导书的实验,理解和掌握SQL语言的常用操作。
5、实验原理或操作要点简介
注意服务器要先启动,才能与服务器建立连接。
使用SQL命令,完成预定功能。
6、实验步骤
1.分析给定问题,设计E-R模型;
2.根据E-R图设计出该问题的关系数据模型,分析数据模型并规范之;
关系模型
教学楼(教学楼号,教学楼名称)
教室(教室编号,教学楼号,楼层,)
院系(院系号,院系名称)
课程(课程号,课程名称,学分,课程类型,开课院系号)
教师(教师编号,教师姓名,性别,所属院系,职称,身份证号)
学生(学号,姓名,院系号,身份证号)
讲授(教室编号,上课时间,上课时间段,教师号,课程号,)
借用(教室编号,学号,使用日期,借用时间段,工作日,用途)
管理员(管理员编号,姓名,性别,联系电话,年龄)
院教(院系号,教师编号);
院学(院系号,学号);
联系(教学楼号,教室编号,管理员编号);
关系数据模型
教学楼
属性名
类型
长度
约束
备注
教学楼号
Varchar
20
Notnull,pk
学校教学楼号
教学楼名称
varchar
20
Notnull
学校教学楼名称
教室
属性名
类型
长度
约束
备注
教室编号
Varchar
10
Notnull,pk
教学楼中教室号
教学楼号
Varchar
6
Notnull
教室所在教学楼号
楼层
Varchar
10
Notnull
教室所在楼层
院系
属性名
类型
长度
约束
备注
院系号
Varchar
20
Notnull,pk
学校中院系的编号
院系名称
varchar
20
Notnull
学校中院系名称
课程
属性名
类型
长度
约束
备注
课程号
Varchar
20
Notnull,pk
课程编号
课程名称
varchar
20
Notnull
课程名称
学分
int
Notnull,>=0
课程学分
课程类型
varchar
10
Notnull
课程类型(全校选修、专业选修、专业必修、人文修养、艺术教育)
开课院系号
Varchar
20
Notnull
课程开课的院系
教师
属性名
类型
长度
约束
备注
教师编号
Varchar
20
Notnull,pk
教师编号
教师姓名
char
3
Notnull
教师姓名
性别
varchar
2
Notnull
教师性别(男、女)
所属院系
varchar
20
Notnull
教师所属院系
职称
varchar
10
Notnull
教师的职称(教授、副教授、讲师)
身份证号
Varchar
18
Notnull
教师身份证号
学生
属性名
类型
长度
约束
备注
学号
Varchar
10
Notnull,pk
学生编号
姓名
varchar
10
Notnull
学生姓名
院系号
Varchar
20
Notnull
学生所属院系
身份证号
Varchar
18
Notnull
学生的身份证号
讲授
属性名
类型
长度
约束
备注
教师号
Varchar
20
Notnull
Notnull
Notnull,pk
教师编号
教室号
Varchar
10
教室编号
课程号
Varchar
20
该教室所开的课程
工作日
varchar
8
Notnull
工作日
上课时间段
varchar
20
Notnull
上课时间段
借用
属性名
类型
长度
约束
备注
教室号
Varchar
10
Notnull
Notnull,pk
教室编号
使用人编号
Varchar
10
借用教室人员的编号
使用日期
varchar
10
Notnull
使用教室的日期
工作日
varchar
8
Notnull
使用教室的星期
借用时间段
varchar
20
Notnull
使用教室的时间段
用途
varchar
100
借用教室的用途
状态
char
1
借用教室审批的状态
管理员
属性名
类型
长度
约束
备注
管理员编号
Varchar
10
Notnull,pk
管理员编号
姓名
varchar
10
Notnull
管理员姓名
电话
Varchar
20
Notnull
管理员电话
性别
varchar
2
Notnull
性别
年龄
Varchar
3
Notnull
年龄
3.连接服务器,创建用户19,并设置好权限;
用户
权限
4.建立数据库
5.为该数据库设计合适的索引;
6.依据关系数据模型在数据库中建立各表;
点击新建查询打开查询器
在里面键入代码创建数据表
教学楼表:
学生表:
继续建立剩下的数据表
建表完成
建好所有表系统自动生成关系图
7.给各表插入数据
以学生表,院系表为例
8.简单查询:
包括投影,选择条件表达,数据排序,使用临时表等操作
投影:
投影出学生表中的学号,姓名,身份证号
执行结果如下
选择条件表达:
找到所在学院的院系号为‘CS’的学生
执行结果
数据排序:
打印学生信息并降序排列学号
执行结果
使用临时表:
查找信息工程学院的学生信息
执行结果
9.连接查询:
包括等值连接,自然连接,求笛卡尔积,一般连接,外连接,内链接,左连接,右连接和自连接等
求笛卡尔积:
键入如下代码
结果如下
内链接:
计算学生,院系的内链接
结果如下
左外连接,右外连接:
由于代码类似故以右外连接为例键入代码
结果如下
自然连接:
执行结果
全外连接:
当键入这段代码的时候系统提示出错,我不知道什么原因。
一般连接:
执行结果
10.嵌套查询:
使用in,比较符,any或all和exist操作符等进行嵌套查询操作
使用IN:
查找信息工程学院的学生信息
执行结果
使用比较符:
找出学号最小的学生
执行结果
11.组合查询和统计查询:
分组,使用函数;
分组查询:
查找各个学院的人数
执行结果
计算管理员年龄平均值:
执行结果
使用函数:
打印学院人数大于1人的学院情况
7、思考与提高
1.当我输入管理员信息时将性别‘男’,写成了‘难’系统也保存成功了。
我们可以在保存数据前做什么工作,提醒用户有输入错误
解答:
可以在性别一栏添加check约束
2.在插入的过程中出现如下问题,思考为什么会出现
解答:
因为“管理员”被设置成了主键,而主键可以标识一个元组,因此在主键属性上不能有重复。
3.当系统运行一段时间后,系统性能会发生什么变化
解答:
当系统运行一段时间后,由于系统使用磁盘频繁,是磁盘碎片不断增加,还有IE浏览的时候会产生很多缓存,再一个原因是CPU的温度过高。
4.UML可以描述数据库模型吗
解答:
可以。
5如何提高数据查询和连接速度
解答:
我们在建立数据库的时候,我们要写出执行效率高的查询代码,以便减少查询时间。
比如说多用投影和条件选择,使要进行连接的项减少,加快查询速度。
6.对于常用的查询形式或者结果,应该怎么处理
解答:
对于常用的查询形式或结果我们应该将其形式或结果加到视图,函数,或者过程中去。
7.组合查询语句是否可以用其他语句代替,有什么不同
解答:
可以,但是两者的执行效率会有所不同。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告