数据库.docx
- 文档编号:13511753
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:16
- 大小:258.54KB
数据库.docx
《数据库.docx》由会员分享,可在线阅读,更多相关《数据库.docx(16页珍藏版)》请在冰点文库上搜索。
数据库
数据库应用技术
期末大作业
题目:
宿舍管理数据库
班级:
测绘121班
学号:
201216059152
姓名:
韩志成
一、需求分析
1、信息要求
学生宿舍管理系统对于一个学校来说是必不可少的组成部分。
目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,而手工记录十分不方便,若是有信息改动会给宿管人员带来很大的工作量。
我针对此情况,设计了合适的学生宿舍管理系统,可以方便学生宿舍的管理,提高宿舍管理工作效率及查询效率。
2、功能要求
能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。
具体功能应包括:
系统应该提供学生住宿数据的插入、删除、更新;添加、修改、删除学生及职工基本信息的功能以及提供查询功能;宿舍楼基本信息查询与修改;对学生基本信息的查询(要实现按多种条件的查询)及宿舍信息(人数等)的查询。
3、安全性和完整性要求
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过用户授权机制,欲用户登陆来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。
完整性要求用于描述学生基本信息、宿舍基本信息、宿舍楼基本信息、职工基本信息中数据项能否为null,以及一些用户自定义完整性(符合实际要求),详细完整性要求见于系统的逻辑设计阶段。
二、概念设计(E-R图)
三、数据库逻辑设计
学生表(学号,姓名,性别,专业,移动电话,宿舍电话)
宿舍表(宿舍号,宿舍楼号,应住人数,宿舍电话)
宿舍楼表(宿舍楼号,宿舍数,楼层数,职工组号)
职工组号(职工组号,职工号,姓名,性别,职务)
四、数据表格建立
各表设置如下
(1)学生表
(2)宿舍表
(3)宿舍楼表
(4)职工组表
五、数据录入及相关SQL语
1.表格信息
2.SQL语句
(1)查询姓名为王长昌的学号
select学号
fromStudent
where姓名='王长昌'
结果:
(2)查询所有学生的宿舍电话和移动电话。
select姓名,移动电话,宿舍电话
fromStudent
结果:
(3)查询宿舍应住人数是6人的宿舍的宿舍号。
select宿舍号
fromDorm
where应住人数between0and6;
结果:
(4)选择学号为0002的学生的全部信息。
Select*
fromStudent
where学号='0002'
结果:
(5)查询所有已登记的5号楼的宿舍电话号码和宿舍号,并按电话号码降序排列。
select宿舍电话,宿舍号
fromDorm
where宿舍楼号='5'
orderby宿舍电话DESC;
结果:
(6)找出学生赵照所在的宿舍号,宿舍楼号和宿舍电话。
select宿舍号,宿舍楼号,student.宿舍电话
fromDorm,Student
WhereStudent.宿舍电话=Dorm.宿舍电话and姓名='赵照'
结果:
(7)找出职工组003的全体女性成员的姓名和工作的宿舍楼。
selectemployee.姓名,职务,宿舍楼号
fromemployee,House
whereemployee.职工组号=House.职工组号and性别='女';
结果:
(8)查询六人间宿舍中学号为0005的学生的姓名。
Select姓名
fromStudent
where学号='0005'
and宿舍电话In
(select宿舍电话
fromdorm
where应住人数='6');
结果:
(9)查询所有6层宿舍楼的管理员的姓名。
Select姓名
fromEmployee
where职务='管理员'
and职工组号In
(select职工组号
fromHouse
where楼层数='6');
结果:
(10)查询“宿舍应住人数”少于电话为“55553”的“宿舍应住人数”的宿舍的宿舍号和电话号码。
Select宿舍号,宿舍电话
FromDorm
Where应住人数 FromDorm Where宿舍电话='55553'); 结果: (11)查询所有学生的学号,姓名,专业,宿舍号,宿舍楼号,宿舍电话。 Select姓名,学号,专业,宿舍号,宿舍楼号,s.宿舍电话 Fromstudentassleftjoindormasdons.宿舍电话=d.宿舍电话 Go 结果 (12)查询移动电话以132开头的学生信息 Select*,移动电话fromstudentwhere移动电话like'132%' 结果 (13)查询学生宿舍电话或宿舍号以5开头的信息。 Select学号,宿舍电话fromstudentwhere宿舍电话like'5%' unionall select宿舍楼号,宿舍号fromdormwhere宿舍号like'5%' go 结果 (14)查询学生宿舍电话以5开头,且是有效学生的信息。 Select学号,宿舍电话fromstudentwhere宿舍电话like'5%' except select宿舍楼号,宿舍号fromdormwhere宿舍号isnull go 结果 (15)修改王长昌的学号为0011: UpdateStudent Set学号='0011' Where姓名='王长昌' 结果 (16)删除所有002职工组的记录 Delete fromemployee Where职工组号='002' 结果 (17在Student表的列上创建非聚集索引。 CreateindexStu_Id_indonStudent(学号) 结果 (18)在Dorm表的宿舍号列和宿舍楼号列上创建一个非聚集索引,要求索引键值按宿舍号升序和宿舍楼号降序排序。 Createindex宿舍号onDorm(宿舍号ASC,宿舍楼号DESC) 结果 (19)创建视图 createviewStuView AS select学号,姓名,宿舍电话 fromStudent where性别='女' withcheckoption; 结果 (20)对视图查询: 找出所有女生的学号和姓名 select学号,姓名 fromStuView; 结果 (21)删除视图: 删除前面定义的StuView视图。 DropviewStuView 结果 (22)删除索引 DropindexStu_Id_ind 结果 (23)查询姓名为赵照的学号。 select学号 fromStudent where姓名='赵照'; 结果: (24)查询宿舍号为111且移动电话为132开头的学生学号 select学号 fromStudent where移动电话LIKE'132%' 结果: (25)选择学号为0004的学生的全部信息 Select* fromStudent where学号='0004' 结果: 六: 总结 1、在学生表中没有“宿舍电话号码”列,导致学生表和宿舍表没有办法连接,后经网上查询在学生表中加入“宿舍电话号码”列,这样就可通过“Student.宿舍电话=Dorm.宿舍电话”语句将两个表连接起来。 2、在这个系统中职工和宿舍楼应该是多对一得关系,刚开始由于认识不透彻,在宿舍楼表中加入了“职工号”这一属性,致使在以后再数据库实施阶段,向数据库输入数据时遇到了麻烦,一个宿舍楼只对应了一个职工号,这与实际不符,后来我将宿舍楼中的“职工号”这一属性改为了“职工组号”,将“职工”实体改为“职工组”,一个宿舍楼对应一组职工,在“职工组”的属性中细划分职工号。 3、在逻辑结构分析阶段,我将宿舍电话设为了Student表的外键,系统出现错误提示,因为我没有认识到一个表的外键必定是两一个表的主键才行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库