宿舍管理系统数据库课程设计共16页word资料.doc
如有侵权,请联系网站删除,仅供学习与交流宿舍管理系统数据库课程设计【精品文档】第 11 页摘 要当人们收集了大量的数据后,应该把它们保存起来做进一步的处理和信息的抽取。当年人们把数据存放在文件柜中,可现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术来科学地保存大量的数据,以便能更好的利用这些数据资源。宿舍管理系统是为宿舍管理人员和学生的住宿有关的管理系统,以实现宿舍管理的自动化,本课题的目的是为了巩固数据库原理与应用课程中所学的知识,体现理论指导实践的原则,为宿舍管理系统设计后台数据库,通过需求分析,概念设计,逻辑设计,物理设计及数据库的实施和运行等阶段,体现数据库设计的全过程。关键词:IBM DB2;数据库设计;宿舍管理系统目录第一章 绪论11.1课题简介11.2设计目的11.3设计内容1第二章 需求分析22.1 需求分析的任务22.2 需求分析的过程22.3数据字典与流程图2第三章 概念结构设计53.1 概念结构设计的方法与步骤53.2 数据抽象与局部视图设计53.3视图的集成6第四章 逻辑结构设计74.1 E-R图向关系模型的转换74.2 数据库的结构74.3触发器的设计94.4视图的设计94.5约束的设计9第五章 数据库的实施105.1表空间的建立105.2 索引的建立105.3表的建立与数据的载入105.4 数据库的运行13第六章 结束语.16第一章 绪论1.1课题简介经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系实际的宗旨,通过学校提供的这次课程设计实践的机会,在指导教师的帮助下,历经两周时间,我自行设计一套宿舍管理系统,在下面的各章中,我将以这套宿舍管理系统为例,谈谈其开发过程和所涉及到的问题。1.2设计目的实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识、DB2的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。1.3设计内容选择课题并且对课题的相关信息有一定的了解,对于我选的课题来说,我必须了解宿舍管理系统的构造以及管理员的信息还有学生的相关信息。将这些信息输入到数据库中,使之能够进行查询、修改、删除。在需求分析阶段,需要完成宿舍管理系统的具体分类和实施过程流图。概念设计阶段要完成数据抽象与局部视图设计以及视图的集成。逻辑结构设计阶段要把E-R图转化为关系模式。最后是数据库的实施和运行。第二章 需求分析2.1 需求分析的任务调查宿舍管理系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。最重要的是调查、收集信息、分析管理员信息和学生住宿信息。处理要求、数据的安全性与完整性要求。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求管理层的界面要简单明了,易于操作,服务器程序利于维护。2.2 需求分析的过程学校为方便管理学生住宿问题,需开发一个宿舍管理系统。为便于查找到相应的寝室和寝室内学生的信息,管理员把学生的信息,包括学号、姓名、性别、专业、所在班级、所在学院,输入到管理系统中,系统经过查询寝室楼内寝室信息的数据服务器后,为学生安排寝室,并安排寝室长和相应的管理员。系统可方便查询到某个寝室的相关学生信息,也可以查询某个学号的学生所属的寝室,方便管理者查询信息。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求管理层的界面要简单明了,易于操作,服务器程序利于维护。2.3数据字典与流程图1业务流程分析经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,查询学生信息,学生所在寝室信息。查询某学生所在寝室学生信息表寝室表信息所在寝室号寝室长姓名寝室电话图2.1 查询学生所在寝室流程图查询寝室内学生信息住宿信息表学生信息表学生学号学生姓名专业,班级图2.2 查询寝室内学生信息流程图(1) 查询某学生所在寝室的信息: 查询学生信息表l 功能:可以找到该学生的相关信息,如学号,姓名,性别,所在院校,专业和所在班级的信息。 查询住宿表信息l 功能:可以找到相应学号的学生所在的寝室号。 查询寝室信息表l 功能:可以找到该生所在寝室的相关信息,如寝室号,寝室长和寝室联系电话。(2) 查询某寝室内所包含的学生信息: 查询寝室信息表l 功能:可以找到该寝室的相关信息,如如寝室号,寝室长和寝室联系电话。 查询住宿表信息l 功能:可以找到属于该寝室的相关学生学号。 查询学生信息表l 功能:可以找到相应学生的相关信息,如学号,姓名,性别,所在院校,专业和所在班级的信息。2数据字典 表2.1 宿舍管理系统的数据字典关系名含义说明组成管理员定义管理员的有关信息员工号,管理员姓名,性别,联系电话学生定义了学生有关信息学生姓名,学号,性别,专业,所在班级,所在学院寝室定义了寝室有关信息寝室号,寝室电话,寝室长姓名管理表定义了管理员管理寝室有关信息管理员员工号,寝室号住宿信息表定义了学生住宿有关信息学生学号,寝室号,所要交的住宿费用第三章 概念结构设计3.1 概念结构设计的方法与步骤概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。3.2 数据抽象与局部视图设计设计实体属性图以及局部E-R图。学生学号姓名性别所在学院专业班级图3.1学生实体属性图管理员员工号姓名性别联系电话 图3.2管理员实体属性图寝室寝室号寝室长姓名寝室电话图3.3寝室实体属性图 住宿学生专业所在学院班级学号姓名性别寝室寝室号寝室长姓名寝室电话住宿费图3.4学生住宿局部E-R图管理员员工号姓名联系电话性别寝室寝室号寝室长姓名寝室电话管理图3.5管理员管理寝室局部E-R图3.3视图的集成 经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3.4总体概念结构E-R图。1M1N住宿学生专业所在学院班级学号姓名性别寝室寝室号寝室长姓名寝室电话住宿费管理员员工号姓名联系电话性别管理图3.6系统总体结构E-R图第四章 逻辑结构设计4.1 E-R图向关系模型的转换将图3.6总体概念结构E-R图转化成关系模型。将转化的关系模式进行优化,最终达到第三范式。(至少包括5张表,每个表都有主键,设必要的外键。)学生(学号,姓名,性别,专业,班级,学院)管理员(员工号,姓名,性别,联系电话)寝室(寝室号,寝室长,寝室电话)管理(员工号,寝室号)员工号是外键住宿(学号,寝室号,住宿费)寝室号是外键4.2 数据库的结构 给出宿舍管理系统基本表结构图。 USER.STUDENTStunoStunameStusexStumajorStuclassdepnamevarcharvarcharvarcharvarcharvarcharcharacterCheck ConstraintStay.staprice>=1200 USER.STAYStunoRnoStapricevarcharvarcharvarchar USER.ROOMRnoRheaderRphonenovarcharvarcharAterupdateTrigger:chufaqivarcharWhen Manage.rno=411Set manage.rno=421 USER.MANAGEWornonewRnovarcharvarchar USER.MANAGERWornoWornameWorsexWorphonenovarcharvarcharvarcharvarchar根据总体结构图设计各表的结构,其相应表的定义如下:表4-1学生信息系统的结构字段名数据类型长度是否可空主/外键描述STUNOVARCHAR12否主键学生学号STUNAMEVARCHAR30是学生姓名STUSEXVARCHAR20否性别STUMAJORVARCHAR30是专业STUCLASSVARCHAR3否班级DEPNAMECHARACTER30是所在学院表4-2 管理员系统的结构字段名数据类型长度是否为空主/外键描述WORNOVARCHAR6否主键员工号WORNAMEVARCHAR30否员工姓名WORSEXVARCHAR10否性别WORPHONENOVARCHAR12是联系电话 表4-3 宿舍信息表系统的结构字段名数据类型长度是否为空主/外键描述RNOVARCHAR5否主键宿舍号RHEADERVARCHAR30是寝室长RPHONENOVARCHAR10是寝室电话表4.4学生住宿系统的结构字段名数据类型长度是否为空主/外键描述STUNOVARCHAR12否主键外键学号RNOVARCHAR5是外键寝室号STAPRICESMALLINT是住宿费表4.5管理员管理寝室信息表字段名数据类型长度是否为空主/外键描述WORNOVARCHAR5否主键外键员工号RNOVARCHAR6否外键寝室号4.3触发器的设计CREATE TRIGGER "USER".CHUFAQI NO CASCADE BEFORE UPDATE OF RNO ON "USER".MANAGE REFERENCING OLD AS a NEW AS b FOR EACH ROW MODE DB2SQL WHEN ( a.rno='411' )BEGIN ATOMICset b.rno='421' ;END4.4视图的设计CREATE VIEW STUDENTS STAYAS SELECT STUNAME,STUSEX,STUMAJOR,STUCLASS,DEPNAME,RNO,STAPRICEFROM USER.STUDENT,USER.STAYWHERE USER.STUDENT.STUNO=USER.STAY.STUNO4.5约束的设计CONNECT TO HP02 USER "user"ALTER TABLE "USER"."STAY" ADD CONSTRAINT CC1326272287859 CHECK (staprice>=1200) ENFORCED ENABLE QUERY OPTIMIZATION ;CONNECT RESET;(只显示出“STAY”表中STAPRICE大于等于1200的信息)第五章 数据库的实施5.1表空间的建立Connect to HP02;CREATE REGULAR TABLESPACE HP01 PAGESIZE 4 K MANAGED BY DATABASE USING ( FILE 'C:PROGRA1IBMSQLLIBhp01hp01' 5120 ) EXTENTSIZE 16 OVERHEAD 12.67 PREFETCHSIZE 16 TRANSFERRATE 0.18 BUFFERPOOL IBMDEFAULTBP DROPPED TABLE RECOVERY ON;create regular tablespace hp02 managed by databaseusing (file 'c:hphp02' 14) extentsize 2;create long tablespace hp03 managed by database using(file 'c: hp hp03' 728) extentsize 8;create regular tablespace hp04 managed by database using (file 'c: hp hp04'22) extentsize 2;create regular tablespace hp05 managed by database using (file 'c: hp hp05'16) extentsize 2;create regular tablespace hp06 managed by database using (file 'c:hphp06'40) extentsize 4;create regular tablespace ss01 managed by system using ('c:smssms01','c:ssss02') extentsize 4;CONNECT RESET;5.2 索引的建立CONNECT TO HP02;CREATE UNIQUE INDEX "USER".NAME ON "USER".STUDENT (STUNAME ASC) PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS ;(唯一索引)CREATE INDEX "USER".WORKER ON "USER".WORKER (WORNO ASC, WORNAME ASC, WORSEX ASC) CLUSTER PCTFREE 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICSCONNECT RESET;(聚簇索引)5.3表的建立与数据的载入 图5.1 学生信息表 收录了10名学生的信息,姓名,学号,性别,专业,班级,所在学院。 图5.2寝室信息表 收录了10个寝室的寝室号,寝室长姓名,电话号。图5.3 管理员管理寝室表 收录了10个寝室所对应的员工号。图5.4 管理员信息表 收录了10位管理员的员工号,姓名,性别和联系电话。图5.5 学生住宿表 收录了10位学生所住的寝室寝室号,所需要交的住宿费。5.4 数据库的运行1 select stuno,stuname,stusex,stumajor,stuclassfrom studentwhere stuname='Wang meng' 图5.6对查询学生姓名为“Wang meng”的相关信息2 insert into studentvalues('0918080202','Huo pei','男','交通工程','02','软件学院')(将“Huo pei”的相关信息插入到STUDENT表中)select *from student(再对STUDENT表进行查询操作)图5.7对student表插入数据后进行查询操作 3 update studentset stuname='Wang Shihui',stusex='女',stumajor='英语',stuclass='08',depname='外语学院'where stuno='0918080202'对学号为“0918080202”的学生修改数据)select *from studentwhere stuno='0918080202'(对修改后的数据进行查询)图5.8查询结果4 delete from studentwhere stuno='0918080202'(删除学生学号为“0918080202”的学生的相关信息)select *from student;图5.9对删除数据后的STUDENT表查询结果 5 select rnofrom managewhere worno='227275'(查询员工号为“227275”的员工所管理的寝室)图5.10查询结果 第六章结束语: 经过连日的开发与研究,学生宿舍管理系统基本完成,其功能基本符合要求,能够完成学生住宿档案。并提供部分系统维护功能,使用户方便进行数据备份和恢复,数据删除,对数据的一致性问题也通过程序进行了有效解决。