资源描述
吕梁学院计算机科学与技术系
《数据库原理》
数据库设计
设计题目
专业班级
小组编号
指导教师
二〇一四年十一月三十日
高校学生公寓管理系统
摘要
随着高校的不断发展,学校招生人数也在不断增长。为了便于管理学生的住宿问题,我们设计了学生公寓管理系统,借助数据库技术让学生公寓的管理更加方便,同时也有助于宿舍和学生信息的及时更新。
本文介绍了在SQL sever2005环境下采用“自下而上地总体规划,自下而上地应用开发"的策略开发一个管理信息系统的过程。本文介绍了学生公寓公寓管理系统的需求分析,部分主要是用户的要求及功能划分:系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分包括数据库的创建及一些数据库技术运用.
关键词:学生公寓管理系统;数据库;E-R模型;表的关系
目录
摘要I
目录II
一、需求分析1
1。1调查用户需求1
1.2系统功能的设计和划分3
1。2.1画出每个子系统的数据流图3
1。2.2写出系统各实体和联系的数据字典6
二、概念结构设计9
2。1设计出系统的局部E—R图9
2。2集成分E—R图,设计出基本E—R图12
三、逻辑结构设计13
3。1设计系统的关系模型13
3。2在SQL Server 2008里,创建数据库和表13
3。3安全控制—分析用户和权限,设计视图和存储过程16
四、物理设计18
4。1物理设计阶段的目的与任务18
4.2数据库存储方面18
五、数据库实施20
5。1基础数据的录入20
六、数据的运行和维护24
6。1确定数据库的备份方案24
6。2检查数据的安全性、完整性控制25
参考文献26
心得体会27
课程设计分工安排
姓名
课程设计负责工作
备注
李占威
高校学生公寓管理系统报告的整体设计、需求分析、监督进度等等
组长
吉闫军
概念结构设计、设计出系统的E-R图。
组员
杨凯
逻辑结构设计、创建数据库和表、
设计视图和存储过程等等.
组员
李世虎
数据库实施、基础数据的录入、数
据库的试运行.
组员
田烨
何子元
数据的运行和维护、确定数据库的
备份方案、等等.
组员
李蓉段圣蒙
数据的运行和维护、确定数据库的
备份方案、等等。
组员
一、需求分析
1.1 调查用户需求
本系统的最终用户为宿舍楼管理员,本宿舍楼的学生.根据我们日常生活中的经验,结合对自己学校宿舍楼管理老师的咨询和对同宿舍楼同学的调查,得出用户的下列实际要求:
1、 宿舍楼的基本情况
学生住在宿舍楼中,每栋宿舍楼都会有若干名老师负责本宿舍楼的日常管理。
一、 学生的基本信息:
入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。另外,为了管理上的方便,同一院系的学生的宿舍一般在一起,相应地会有其所在的院系名称。
二、 宿舍的基本信息:每间宿舍都有唯一的宿舍号,入校时,宿舍会装公用电话机,相应地就有宿舍电话号码.
三、 宿舍财产的基本信息:每个宿舍的财产属于学校,比如电灯,床铺,柜子,桌椅等,为了对不同的财产进行区分,可以为每种财产分配不同的财产号.这样有利于财产的报修和管理。
四、 报修的基本信息:宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,同学们需要将财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。这时,需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因.当损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。
五、 夜归的基本信息:宿舍楼在指定的时间关门(比如晚上12点),若有同学晚于关门时间会宿舍,需通知宿舍楼管理员,同时应登记晚归学生姓名,宿舍号,时间和晚归原因,以利于学校的管理和查证。
六、 离校的基本信息:每当放寒假或暑假时,同学们大部分都会回家;每当“五·一"或“十·一”放假时,同学们也有很多不会留在宿舍。这时,为加强学校对同学假期安全的管理,离校的同学应登记离校时间,待返校后记录返校时间,以便学校查证和管理。
七、 宿舍卫生情况评比
每周定期对每个宿舍的卫生进行评比。并通报,以此来给同学们为了宿舍的干净、温馨辅助自己的努力。
2、 用户对系统的要求
一、宿舍楼管理员:a.信息要求:
宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,快件收发的所有信息,报修的所有信息,夜归的详细信息和学生离返校的信息。以利于对整个宿舍楼的全面管理。
b。处理要求:
当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;或者学生转换专业,他们记录中院系的信息也要作相应的修改等等.
当宿舍楼的电话号码发生变更时,宿舍楼管理员能根据有关证明做出修改.
当宿舍财产报修及时解决后,管理员应登记解决时间,表明该报修问题已成功解决。
c.安全性与完整性要求:
安全性要求:
1.系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;
2.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
3。系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(学生),管理员。
完整性要求:
1.各种信息记录的完整性,信息记录内容不能为空;
2.各种数据间相互的联系的正确性;
3.相同的数据在不同记录中的一致性。
二、本宿舍楼的学生:
a。信息要求:
本宿舍楼的学生能查询其所在的宿舍的所有信息,能查询本楼的指定宿舍的电话号码以利于同楼宿舍间的通信。能查询自己的快件信息.能查询自己的夜归记录和离返校记录。
b。处理要求:
本宿舍楼的学生能在报修信息表中插入报修信息,表示本宿舍的财产发生了损毁需要学校派人维修.
学生离校时,能在离返校记录表中插入离校时间;学生返校后,能在离返校记录表中插入返校时间,表示已经回校.
2
1。2系统功能的设计和划分
1.2.1画出每个子系统的数据流图
各部分完成的功能如下:
i、用户管理部分
1、处理用户注册
2、处理用户登录
3、用户可以查询学生信息。
4、用户可以查询卫生情况。
5、用户可以提交与查询报修信息.
6、用户可以插入与删除用户自己的离返校信息。
7、用户可以修改用户自己密码.
ii、管理员管理部分
1、处理管理员登录
2、管理员可以查询学生信息。
3、管理员可以插入、修改与查询报修信息。
4、管理员可以插入与查询学生夜归信息。
5、管理员可以查询在校与离校学生信息。
6、管理员可以修改管理员密码。
iii、数据流图
图1-1 报修分数据流图
图1—2离返校分数据流图
图1—3 夜归分数据流图
图1—4 总数据流图
1。2.2写出系统各实体和联系的数据字典
1。数据项
住宿学生数据字典:
属性名
存储代码
类型
长度
备注
学号
Sno
char
20
住宿学生学号
姓名
Sname
char
20
住宿学生姓名
性别
Ssex
char
4
专业
Sdept
char
40
学生专业
宿舍号
Dno
char
6
住宿学生宿舍号
入住时间
Scheckin
date
8
新生搬入时间
宿舍数据字典:
属性名
存储代码
类型
长度
备注
宿舍号
Dno
char
6
宿舍电话
Dphone
char
15
宿舍财产数据字典:
属性名
存储代码
类型
长度
备注
物品号
Pno
Int
2
宿舍物品编号
物品名
Pname
char
20
宿舍物品名
报修数据字典:
属性名
存储代码
类型
长度
备注
宿舍号
Dno
char
6
报修人宿舍号
物品号
Pno
Int
2
报修物品编号
提交日期
Rsubmit
date
8
报修提交日期
解决日期
Rsolve
date
8
问题解决日期
报修原因
Rreason
char
50
物品损坏原因
晚归数据字典:
属性名
存储代码
类型
长度
备注
学号
Sno
char
20
晚归学生姓名
宿舍号
Dno
char
6
晚归学生宿舍号
晚归时间
Btime
timestamp
14
学生晚归时间
晚归原因
Breasonr
Char
10
学生晚归原因
离校数据字典:
属性名
存储代码
类型
长度
备注
学号
Sno
char
20
离校学生姓名
宿舍号
Dno
char
6
离校学生宿舍号
离校时间
Ltime
date
8
学生离校时间
返回时间
Lreturn
date
8
学生返校时间
卫生数据字典
属性名
存储代码
类型
长度
备注
宿舍长
Ssz
char
20
宿舍负责人
宿舍号
Dno
char
6
卫生情况宿舍号
卫生情况
Scond
char
20
被检查宿舍卫生
用户数据字典:
属性名
存储代码
类型
长度
备注
用户ID
Uname
char
20
用户密码
Upassword
char
20
用户类型
Utype
tnyint
1
普通或超级用户
2.数据结构
数据结构名
组成
用户信息
用户ID,用户密码,用户类型(普通用户,管理员)
住宿学生信息
学号,姓名,性别,专业,宿舍号,入住时间
宿舍信息
宿舍号,宿舍电话
宿舍财产信息
物品号,物品名
卫生信息
宿舍长,宿舍号,卫生情况
报修信息
宿舍号,物品号,提交日期,解决日期,报修原因
夜归信息
学号,宿舍号,晚归时间,晚归原因
离校信息
学号,宿舍号,离校时间,返回时间
3。数据流
数据流名
数据流来源
数据流去向
组成
登记报修信息
学生
学生报修登记表
报修信息
查询报修信息
学生报修信息表
管理员
报修信息
登记已修信息
管理员
学生报修登记表
已修信息
登记快件信息
管理员
邮件快递表
快件信息
卫生信息
管理员
学生
卫生信息
登记确认信息
学生
邮件快递表
确认信息
登记夜归信息
管理员
夜归登记表
夜归信息
查询夜归信息
夜归登记表
管理员
夜归信息
登记离返校信息
学生
离返校登记表
离返校信息
查询离返校信息
离返校信息登记表
学生
离返校信息
查询离返校信息
离返校信息登记表
管理员
离返校信息
4.数据存储
数据存储名
输入的数据流
输出的数据流
组成
学生报修登记表
报修信息
已修信息
报修信息
报修信息
已修信息
邮件快递表
快件信息
快件信息
确认信息
快件信息
确认信息
夜归登记表
夜归信息
夜归信息
夜归信息
离返校登记表
离返校信息
离返校信息
离返校信息
5。处理过程
处理过程名
输入数据流
输出数据流
登记报修
报修信息
报修信息
查询报修
报修信息
报修信息
登记已修信息
已修信息
已修信息
登记快件信息
快件信息
快件信息
登记夜归
夜归信息
夜归信息
查询夜归
夜归信息
夜归信息
登记离返校信息
离返校信息
离返校信息
查询离返校信息(管理员)
离返校信息
离返校信息
查询离返校信息(学生)
离返校信息
离返校信息
二、概念结构设计
1 概念结构设计的方法与步骤
2 概念结构设计的方法
设计概念结构通常有四类方法:自顶向下,自底向上,逐渐扩张以及混合
策略。本教学系统采用的是自底向上的方法。即首先定义全局的概念结构的框架,
然后逐步细化。根据自顶向上地进行需求分析然后再自底上上地进行概念设计。
2.1设计出系统的局部E—R图
分E-R图
图2—1 学生住宿信息管理子系统
图2-2 报修子系统
图2—3 收取快件子系统
图2-4 离返校子系统
图2-5 夜归管理子系统
2.2集成分E—R图,设计出基本E—R图
图2—6 总E—R图
三、逻辑结构设计
3。1设计系统的关系模型
住宿学生(学号,姓名,性别,专业,宿舍号,入住时间)
宿舍(宿舍号,宿舍电话)
宿舍财产(物品号,物品名)
邮件快递(宿舍长,宿舍号,卫生情况)
报修(宿舍号,物品号,提交日期,解决日期,报修原因)
夜归(学号,宿舍号,晚归时间,晚归原因)
3.2在SQL Server 2008里,创建数据库和表
创建表格:
住宿学生表:
CREATETABLE [dbo]。[Snumber](
[Sno] [char](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Sname] [char](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Ssex] [char](4)COLLATEChinese_PRC_CI_ASNOTNULL,
[Sdept] [char](40)COLLATEChinese_PRC_CI_ASNOTNULL,
[Dno] [char](6)COLLATEChinese_PRC_CI_ASNOTNULL,
[Scheckin] [datetime] NOTNULL,
CONSTRAINT [PK_Snumber] PRIMARYKEYCLUSTERED
(
[Sno] ASC
)WITH(PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON)ON [PRIMARY]
)ON [PRIMARY]
宿舍表:
CREATETABLE [dbo]。[Dnumber](
[Dno] [char](6)COLLATEChinese_PRC_CI_ASNOTNULL,
[Dphone] [char](15)COLLATEChinese_PRC_CI_ASNOTNULL,
CONSTRAINT [PK_Dnumber] PRIMARYKEYCLUSTERED
(
[Dno] ASC
)WITH(PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON)ON [PRIMARY]
)ON [PRIMARY]
宿舍财产:
CREATETABLE [dbo]。[Dmoney](
[Pname] [char](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Pno] [int] NOTNULL,
CONSTRAINT [PK_Dmoney_1] PRIMARYKEYCLUSTERED
(
[Pno] ASC
)WITH(PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON)ON [PRIMARY]
)ON [PRIMARY]
报修表:
CREATETABLE [dbo].[Repair](
[Dno] [char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Pno] [int] NOTNULL,
[Rsubmit] [datetime] NOTNULL,
[Rsolve] [datetime] NOTNULL,
[Rreason] [char](50)COLLATEChinese_PRC_CI_ASNOTNULL,
CONSTRAINT [PK_Repair] PRIMARYKEYCLUSTERED
(
[Dno] ASC
)WITH(PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON)ON [PRIMARY]
)ON [PRIMARY]
夜归表:
CREATETABLE [dbo]。[Backlate](
[Sno] [char](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Dno] [char](6)COLLATEChinese_PRC_CI_ASNOTNULL,
[Btime] [datetime] NOTNULL,
[Breason] [char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
CONSTRAINT [PK_Getlate] PRIMARYKEYCLUSTERED
(
[Sno] ASC
)WITH(PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON)ON [PRIMARY]
)ON [PRIMARY]
用户表:
CREATETABLE [dbo]。[Uerser](
[Uname] [char](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Upassword] [char](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Utype] [tinyint] NOTNULL,
CONSTRAINT [PK_Uerser] PRIMARYKEYCLUSTERED
(
[Uname] ASC
)WITH(PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON)ON [PRIMARY]
)ON [PRIMARY]
3.3安全控制-分析用户和权限,设计视图和存储过程
1.分超级用户和普通用户
超级用户拥有查询,修改,录入信息等所有数据管理权限.
普通用户只能拥有查询权限。
2。视图设计
学生信息视图(学号,姓名,性别,院系,宿舍号,宿舍电话)
财产报修视图(宿舍号,财产名,报修时间,处理时间,报修原因)
学生夜归视图(学号,姓名,性别,院系,宿舍号,时间,夜归原因)
16
学生在校视图(学号,姓名,性别,院系,宿舍号,宿舍电话)
四、物理设计阶段
4.1物理设计阶段的目的与任务
数据库德物理设计就是为逻辑数据模型选取一个最适应应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1) 确定数据库的物理结构,在关系数据库中主要是存取方法和存取结构;
(2) 对物理结构进行评价,评价的重点是时间和空间效率。
4.2数据库存储方面
为数据库中各基本表建立的索引如下:
1、由于基本表宿舍,入住学生的主码Sno,Dno经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,考虑在两个属性上建立唯一性索引:
2、基本表管理员基本信息、贵重物品信息、宿舍信息的属性值几乎不会有什么变化,更新率很低,可考虑适当建立索引:
3、基本表报修信息,晚归信息,水电管理信息,卫生考核信息,的属性值经常发生变化,住宿学生信息,权衡系统为维护索引付出的代价,可考虑不建立索引,也可以适当建立索引。
五、数据库的实施与运行
5.1 基础数据的录入
学生信息表:
宿舍表:
宿舍财产表:
宿舍物品维修表:
夜归表:
用户表:
六、数据的运行和维护
6。1确定数据库的备份方案
为了保证SQL Server 数据的安全,数据库管理员应定期备份数据库,在不同情况下应采用不同备份数据库备份策略,一方面维持数据的安全性,另一方面也可保持SQL Server 能顺畅运行.尽最大的努力减少由于数据的损坏对用户造成的损失。
数据的备份方案有很多,例如:
1。完全数据库备份配合事务日志备份
2.完全数据库备份配合差异式备份
3. 文件或文件组备份
其中我们小组采用了sql中其中一种备份方式:
在SQL Server备份窗口,可以通过调度设置,将当前进行的备份处理设置为定时自动处理的作用。具体的步骤如下:
1. 展开一个服务器组。
2。 展开一个服务器( SQL Server实例)。
3。 展开【数据库】,右单击要备份的数据库,在弹出的菜单中选择【所有任务】-〉【备份数据库】命令.
4。 在随后打开的SQL Server备份窗口中,设置备份的相关选项。参见前面的备份方案
单击【常规】选项卡,在【调度】项中,选中【调度】复选框,然后单击【调度】复选框后的【…】按钮.在随后出现的【编辑调度】对话框中,设置时间调度安排.
5。 设置完成后,单击【确定】按钮,SQL Server将执行备份操作,同时在【SQL Server 代理】—〉【作业】中自动建立对应的作业。
6。 在【SQL Server 代理】—>【作业】窗口中,可以像处理普通作业一样修改或删除数据库备份窗口中定义的备份计划。
6。2检查数据的安全性、完整性控制
我们已经在建表的同时确定了完整性约束条件,内容包括:
SQL Server 2008中的数据完整性包括域完整性、实体完整性和参照完整性3种.
(1) 域完整性
域完整性为列级和元组级完整性。它为列或列组指定一个有效的数据集,并确定该列是否允许为空值(NULL)。
(2) 实体完整性
实体完整性为表级完整性,它要求表中所有的元组都应该有一个惟一标识,即主关键字.
(3) 参照完整性
参照完整性是表级完整性,它维护从表中的外码与主表中主码的相容关系。如果在主表中某一元组被外码参照,那么这个元组既不能被删除,也不能更改其主码.
参考文献
[1] 王珊萨师煊,《数据库系统概论》(第四版),北京:高等教育出版社,2006年5月第4版
心得体会
提高乐实地调查获得数据的能力方面。通过对多个宿舍楼的实地调查和了解,采用询问调查—记录的方式,从宿管员和老师同学们处获得了关于宿舍管理的业务流程和一些可靠表单,为学生宿舍管理系统开发的需求分析阶段,提供了一个很好的开始和充分的准备。
加强了数据库系统理论知识和SQL2005相关功能的理解。在课堂上关于数据库系统的理论知识及相关功能,大家都停留在知识层面并不能很好的灵活应用,如存储过程.通过本次课程设计的实践,很好的将所学知识通过实际操作进行理解消化掌握在进行,在进行对数据库及其对象做的相应处理时,能够熟练的应用理论知识,达到知行合一,并进一步掌握相关的SQL语句,高校学生公寓管理系统开发的过程中牵涉到相当多基本表的建立,视图,以及存储过程的设计,系统开发使得对数据库系统及SQL语句的操作更熟练。
12
展开阅读全文