数据库原理课程设计报告.docx
《数据库原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库原理课程设计报告.docx(20页珍藏版)》请在冰豆网上搜索。
数据库原理课程设计报告
《数据库原理及应用》课程设计
课程设计题目:
学生公寓管理系统
院别:
计算机科学与工程学院
专业:
信息管理与信息系统
小组成员:
设计者:
指导教师:
2013年6月20日
一、系统概述
1、系统概述
学生公寓管理系统是一个落实国家有关规章制度、加强学生住宿管理、规范高校公寓日常工作、提高公寓管理效能的有效工具。
系统以公寓房间、入住学生为基础信息源,可以对房间床位分配、住宿收费、物业收费、房间设施、日常检查、公寓工作人员等进行规范管理,可以是教务处、学生处、保卫处、公寓管理中心、财务处等学校只能部门及学校领导随时获得全方位的公寓管理信息,试试掌握学生入住与缴费统计,动态监控公寓管理情况,实现信息共享,提高工作效率。
系统全面体现了教育部相关文件的精神要求,为高校扩招、建设、后勤制度改革提供支持。
在吸收先进管理思想的基础上,综合运用了各种现代信息技术,是促进管理科学化的新型管理系统。
2、系统目标
面对学生公寓管理工作的特点以及该管理工作的具体问题,本系统可以解决一下问题:
1)录入公寓各学生的基本情况
2)全面查询学生的基本情况
3)对来访人员进行出入管理
4)对公寓楼财务进行管理
5)对公寓楼进行管理
6)对公寓楼的宿舍进行管理
7)对班级信息进行管理
8)对系别信息进行管理
二、系统分析
1、需求分析
学生公寓是学生日常生活和学习的重要场所,是对学生进行思想政治工作和素质教育的重要阵地。
学生住宿管理事关学生人身安全和财产安全,关系到学校正常的教学、生活秩序,关系到学校和社会的稳定,也关系到我国高等教育的发展。
随着高校的扩招,住宿生的数量越来越多,学生公寓的数量与日俱增;同时,伴随着高校后勤的社会化改革,学生的住宿条件有了很大的改善,公寓楼内的贵重设施、电器也越来越多;另外,学校在宿舍的安排上也打破了原来按专业班级强制几种的住宿限制。
以上这些情况都清楚的表名公寓管理的难度越来越大。
然而,由于各种原因,具有稳定、高效率查询能力和管理能力的公寓管理系统还很少见,所以大多数的学校依然采用手工管理的方式。
这种管理方式不仅效率低下、手续繁琐,易出差错;而且还耗费大量的人力、物力、财力。
因此,设计一个稳定、高效率的学生公寓管理系统势在必行。
2、业务流程图
根据学生公寓管理系统的普遍特点,学生公寓管理系统的业务流程图如下图所示:
注释:
带方框的基本情况和基本信息,分别表示这一业务操作过程中的操作对象
3、数据流程图
4、数据字典
1)公寓楼信息表
表名:
公寓楼信息表(Apart)
数据名
类型
范围
约束
备注
ApartID
Int
主键
公寓楼ID
ApartNum
Char(12)
非空
公寓楼编号
FloorNum
Int
0-5
Check
楼层数
NumPerFloor
Int
0-18
Check
每层寝室数
Gender
Char
(2)
“男”或“女”
Check
性别
DepID
Int
系别ID
2)寝室信息表
表名:
寝室信息表(Dor)
数据名
类型
范围
约束
备注
DorID
Int
主键
寝室ID
DorNum
Char(3)
非空
寝室编号
ApartID
Int
非空、外键
公寓楼ID
MaxNum
Int
0—4
Check
最大住宿数
3)学生信息表
表名:
学生信息表(S)
数据名
类型
范围
约束
备注
StID
Int
主键
学生ID
StNum
Char(9)
非空
学生学号
StName
Char(12)
非空
学生姓名
Gender
Char
(2)
“男”或“女”
Check
性别
CID
Int
非空、外键
班级ID
Grade
Char(8)
非空
年级
4)班级信息表
表名:
班级信息表(C)
数据名
类型
范围
约束
备注
CID
Int
主键
班级ID
CNum
Char(7)
非空
班级编号
DepID
Int
非空、外键
系别ID
5)系别信息表
表名:
系别信息表(Dep)
数据名
类型
范围
约束
备注
DepID
Int
主键
系别ID
DepName
Char(50)
系别名称
6)寝室分配表
表名:
寝室分配表(DorAllot)
数据名
类型
范围
约束
备注
ApartID
Int
外键
公寓楼ID
DorNum
Char(3)
非空
寝室编号
StuNum
Char(9)
非空
学生学号
BedNum
Int
0-4
非空、Check
床位号
7)寝室财产表
表名:
寝室财产表(DorProperty)
数据名
类型
范围
约束
备注
ApartID
Int
外键
公寓楼ID
DorNum
Char(3)
非空
寝室编号
DamBed
Int
0—4
Check
报修床位数
DamWard
Int
0—4
Check
报修衣柜数
DamDesk
Int
0—4
Check
报修桌子数
DamChair
Int
0—4
Check
报修椅子数
Door
Int
0—2
Check
报修门数
三、系统设计
1、E-R图设计
1)公寓楼实体
2)学生实体
3)班级实体
4)系别实体
5)寝室实体
6)系统E-R图
2、逻辑结构设计
1)公寓楼信息表(公寓楼ID公寓楼编号楼层数每层寝室数性别系别)
2)寝室信息表(寝室ID寝室编号公寓楼ID最大住宿数)
3)学生信息表(学生ID学生学号学生姓名性别班级ID年级)
4)班级信息表(班级ID班级编号系别ID)
5)系别信息表(系别ID系名称)
6)寝室分配表(公寓楼ID寝室编号学生学号床位号)
7)寝室财产表(公寓楼ID寝室编号报修床铺数报修衣柜数报修书桌数报修靠椅数报修门数)
8)进出人员登记表(进出人员姓名性别年龄证件类型证件编号进出原因描述公寓楼ID)
3、存储文件格式设计
1)创建数据库ApartmentManager,其步骤如下图:
●右键单击数据库,选择“新建数据库”命令,如下图:
●接下来弹出如下图所示的“新建数据库”对话框:
●在数据库名称文本框中输入要创建的数据库的名称:
ApartmentManager,然后单击“确定”按钮即可
●然后,展开“数据库”文件夹即可查看到刚创建的数据库(图中用红线标记),如下图:
2)创建公寓信息表(Apart),代码如下:
CREATETABLEApart
(
ApartIDintconstraintPK_Apart_ApartIDprimarykey,
ApartNumchar(12)notnull,
FloorNumintconstraintCHECK_Apart_FloorNumcheck(FloorNumbetween0and5)default5,
NumPerFloorintconstraintCHECK_Apart_NumPerFloorcheck(NumPerFloorbetween0and18)default18,
Genderchar
(2)constraintCHECK_Apart_Gendercheck(Genderin('男','女'))default'男',
DepIDintconstraintFK_Apartment_DepIDforeignkeyreferencesDep(DepID)
)
3)创建宿舍信息表(Dor),代码如下:
CREATETABLEDor
(
DorIDintconstraintPK_Dor_DorIDprimarykey,
DorNumchar(3)notnull,
ApartIDintnotnullconstraintFK_Dor_ApartIDforeignkeyreferencesApart(ApartID),
MaxNumintconstraintCHECK_Dor_MaxNumcheck(MaxNumbetween0and4)default4
)
4)创建学生信息表(S),代码如下:
CREATETABLES
(
StIDintconstraintPK_S_StIDPrimaryKey,
StNumchar(9)notnull,
StNamechar(12)notnull,
Genderchar
(2)constraintCHECK_S_Gendercheck(Genderin('男','女'))default'男',
CIDintnotnullconstraintFK_S_CIDforeignkeyreferencesC(CID),
Gradechar(8)notnull,
)
5)创建班级信息表(C),代码如下:
CREATETABLEC
(
CIDintconstraintPK_C_CIDprimarykey,
CNumchar(7)notnull,
DepIDintnotnullconstraintFK_C_DepIDforeignkeyreferencesDep(DepID)
)
6)创建系别信息表(Dep),步骤如下:
●登录到相应的数据库服务器上,然后找到相应的数据库,找到“表”文件夹,然后右键单击,选择新建表命令,如下图:
●接着在右侧的工作区编辑该数据表的列,设置结果如下图:
●在相应表选项卡上,单击右键,进行保存,操作如下图:
●在弹出的保存对话框中的“输入表名称(E)”下的文本框中输入相应的表名:
Dep,之后单击“确定”按钮进行保存,如下图:
7)创建寝室分配表(DorAllot),代码如下:
CREATETABLEDorAllot
(
ApartIDintnotnullconstraintFK_DorAllot_ApartIDforeignkeyreferencesApart(ApartID),
DorNumchar(3)notnull,
StuNumchar(7)notnull,
BedNumintnotnull
)
下面的代码为该表的BedNum列添加chek约束
altertableDorAllotaddconstraintCHECK_DorAllot_BedNumcheck(BedNumbetween1and4)
8)创建寝室财产表(DorProperty),代码如下:
CREATETABLEDorProperty
(
AparIDintnotnullconstraintFK_DorProperty_ApartIDforeignkeyreferencesApart(ApartID),
DorNumchar(3)notnull,
DamBedintdefault0constraintCHECK_DorPro_DamBedcheck(DamBedbetween0and4),
DamWardintdefault0constraintCHECK_DorPro_DamWardcheck(DamWardbetween0and4),
DamDeskintdefault0constraintCHECK_DorPro_DamDeskcheck(DamDeskbetween0and4),
DamChairintdefault0constraintCHECK_DorPro_DamChaircheck(DamChairbetween0and4),
Doorintdefault0constraintCHECK_DorPro_Doorcheck(Doorbetween0and2)
)
9)创建进出人员登记表(ReForm),代码如下:
CREATETABLEReForm
(
ReNamechar(12)notnull,
Genderchar
(2)constraintCHECK_ReForm_Gendercheck(Genderin('男','女'))default'男',
AgeintconstraintCHECK_ReForm_Agecheck(Agebetween0and100),
SignTypechar(50)notnull,
SignNumchar(50)notnull,
Describechar(500)notnull,
ApartIDintconstraintFK_ReForm_ApartIDforeignkeyreferencesApart(ApartID)
)
10)创建学生住宿信息视图(StuHot),代码如下:
CREATEVIEW
StuHot(StuName,StuNum,Class,Grade,Gender,Dept,DorNum,ApartNum)
AS
SELECTS.StName,DorAllot.StuNum,C.CNum,S.Grade,S.Gender,Dep.DepName,DorAllot.DorNum,Apart.ApartNum
FROMDorAllot,Apart,S,C,Dep
WHEREDorAllot.ApartID=Apart.ApartIDANDS.StNum=DorAllot.StuNumANDS.CID=C.CIDANDc.DepID=Dep.DepID
11)创建出入登记视图(ReView),代码如下:
CREATEVIEWReViewASselect*fromReForm
12)创建财产信息视图(ProInfo),代码如下
CREATEVIEWProInfo
AS
SELECTApart.ApartNum,DorNum,DamBed,DamWard,DamDesk,DamChair,Door
FROMApart,DorProperty
WHEREApart.ApartID=DorProperty.ApartID
4、指定该项目的备份恢复计划
虽然该系统提供了一定的安全管理功能来防止非法登录者或非授权用户对数据库或数据造成破坏,但是在有些情况下这种安全管理机制显得力不从心。
例如:
合法用户不小心对数据库的数据做了不正确的操作;或者保存数据库文件的磁盘遭到破坏;或者数据库服务器因某种不可预见的事情而导致崩溃。
所以需要提出另外的方案来解决,即用数据库的备份还原来解决这种问题。
制定该数据库备份和还原的过程如下:
第一步:
启动EnterpriseManager,登录到想要进行数据库备份的数据库服务器,这里我们登录到附加有ApartmentManager数据库文件的服务器上,结果如下图所示:
第二步:
右键单击数据库文件“ApartmentManager”,在弹出的快捷菜单中选择“所有任务”,结果如下图:
第三步:
在弹出的“备份数据库-ApartmentManager”对话框中进行设置,该对话框如下图所示:
设置项及其内容如下:
a)在“数据库”选项后的文本框中选择:
ApartmentManager
b)在“备份类型”选项中选择:
“完整”,
c)在“备份组件”选项中选择:
“数据库”
d)在“备份集过期时间”选项中选择:
“在以下天数后(E)”,这里天数设置为5天
e)在“目标”选项中选择:
“磁盘”,然后单击“添加”按钮,在弹出的对话框中进行选择,结果如下:
第四步:
单击“确定”按钮,数据库的备份计划就制定完成了。
制定完数据库备份计划后,要做的就是能够在数据库遭到破坏时利用已备份的文件将数据库恢复到破坏前的状态,制定数据库恢复计划的步骤如下:
第一步:
启动EnterpriseManager,登录到想要进行数据库还原的数据库服务器,这里我们登录到附加有ApartmentManager数据库文件的服务器上,并在“ApartmentManager”上单击鼠标右键,过程及结果如下图所示:
第二步:
在弹出的“还原数据库-ApartmentManager”对话框中进行选项设置,如下图:
设置项及其内容如下:
1)“目标数据库(O)”选项后的内容为:
ApartmentManager
2)“目标时间点(T)”选项后的内容为:
最近状态
3)“还原的源”选项下的设置:
“源数据库(R)”选项后的内容设置为:
ApartmentManager
“选择用于还原的备份集(E)”选项后的内容设置为:
默认,
设置的结果如下图
第三步:
单击“确定”按钮,即可进行还原操作
执行备份还原的具体代码如下:
usemaster
go
--在硬盘上创建备份设备
execsp_addumpdevice'disk',mybackupfile,
'c:
\Mybackupfile.bak'
--删除备份设备
execsp_dropdevicemybackupfile
--备份数据库数据到临时设备
backupdatabasenorthwind
todisk='c:
\northwind.bak'
--完全备份数据库到备份设备
backupdatabasenorthwind
tomybackupfile
--执行差异备份
backupdatabasenorthwind
tomybackupfile
withdifferential
--备份日志文件到备份设备
execsp_addumpdevice'disk',mybackupLog,
'c:
\MybackupLog.bak'
backuplognorthwind
tomybackupLog
--备份日志文件到临时备份设备
backuplognorthwind
todisk='c:
\mybackupLog.bak'
--从备份设备还原数据库
restoredatabasenorthwind
frommybackupfile
--从备份文件还原数据库
backupdatabasenorthwind
todisk='c:
\northwindback.bak'
backupdatabasenorthwind
todisk='c:
\northwindback.bak'
withdifferential
restoredatabasenorthwind
fromdisk='c:
\northwindback.bak'
withfile=1,recovery
restoredatabasenorthwind
fromdisk='c:
\northwindback.bak'
withfile=2,recovery
--事务日志还原
restoredatabasenorthwind
fromdisk='c:
\northwindback.bak'
withfile=1,norecovery
restorelognorthwind
fromdisk='c:
\northwindLog.bak'
withfile=1,recovery
--时点还原
backupdatabasenorthwind
todisk='c:
\northwind.bak'
backuplognorthwind
todisk='c:
\mybackupLog.bak'
restoredatabasenorthwind
fromdisk='c:
\northwind.bak'
withfile=1,norecovery
restorelognorthwind
fromdisk='c:
\mybackupLog.bak'
withfile=1,stopat='2006-4-79:
54:
00',recovery
四、课程设计总结或体会
通过一周的课程设计,我们学到了一些东西。
此前,对数据库的了解仅仅局限于,其能够存储数据,对数据进行批量管理,能够通过SQL语句对数据进行查询、修改、删除。
不过,通过这次对学生宿舍管理系统数据库部分的设计,我们对于数据库的知识有了一个比较系统的认识,了解到数据库设计的各个步骤之间是环环相扣,不可分割的。
数据库设计的步骤为:
系统需求分析阶段、概念结构设计阶段、逻辑结构设计、物理结构设计、数据库实施阶段、数据库运行与维护阶段。
在这次课程设计中我们主要对需求分析阶段、概念结构设计阶段和逻辑结构设计方面进行了比较深入的了解。
通过这些步骤产生了概念模型(E-R图),数据字典,关系模型等。
由于时间紧迫,对于知识的了解也比较肤浅,因此我们的课程设计有许多不足之处。
不过,这次设计也给了我们一些教训和经验。
在以后的学习中,我们一定努力改正自身缺点。