大型数据库课程设计设计报告题目:网吧管理系统数据库学号:学生姓名:指导教师:提交时间:2013-11-23第1章需求分析1.1需求分析任务1.2需求分析过程1.3数据字典和流程图1.4系统功能分析第2章概念结构设计2.1概念结构设计的方法与步骤2.2数据抽象与局部视图设计2.3视图的集成第3章逻辑结构设计3.1E-R图向关系模型的转换3.2数据模型的优化3.3数据库的结构3.4数据库关系图第4章数据库物理结构设计第5章数据库完整性设计5.1主键及唯一性索引5.2参照完整性设计5.3Check约束5.5触发器设计第6章数据库视图设计第7章数据库存储过程设计第8章权限设计总结参考文献第一章需求分析1.1需求分析的任务调查网吧管理系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。最重要的是调查、收集信息、分析用户信息和上网流程。处理要求、数据的安全性与完整性要求。1.2需求分析的过程网吧管理人员为方便用户,需开发一个网吧管理系统。为便于用户安全,快速的上网,网吧把用户信息,包括姓名、身份证号、卡号、上机时间、通过此次数据库的课程设计,进一步将理论与实际相结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,能将SQL语言很好的运用,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。下机时间、级别等信息,输入网吧管理系统的客户端程序,系统经过查询网吧内电脑信息数据服务器后,为用户安排电脑。在用户运行电脑期间,系统自动为用户计时,并根据不同用户的不同级别给出相应的单价,提示用户该缴纳的费用。同时系统还给每个电脑分配电脑的网管进行电脑的维护,方便用户上网。1.3数据字典与流程图调查用户需求1.普通用户管理需求功能:为每个上网用户登记信息,分配账号,有效而且安全的管理用户的信息。2.费用管理需求交费功能:交费,上机时间,下机时间3.电脑管理需求管理查询功能:查询电脑编号,并且查看各个编号的电脑型号4.网管管理需求查询功能:网管编号,网管姓名,分区号1.4系统功能分析在调查完了用户需求之后,就要开始分析用户需求。在此,我们采用自顶向下的结构化分析方法。首先,定义全局概念结构的框架,如图2.2所示。图1.1网吧管理系统总框架图各子系统需要进一步细化。旅客信息系统为例进一步细化,如图2.3所示。图1.2用户信息系统细化以其中的查询用户信息功能为例进一步细化,如图2.4所示。用户信息系统统计人数查询用户信息网吧管理系统用户信息系统电脑信息系统费用信息系统分区信息系统网管信息系统图1.3查询用户信息功能图1.4电脑信息系统细化图1.5费用信息系统细化图1.6分区信息系统细化分区信息系统查询分区号查询电脑编号查询分区名称费用信息系统查询卡号查询电脑编号查询上机时间查询下机时间电脑信息系统查询电脑编号查询电脑名称查询单价查询用户信息查询卡号查询身份证号查询用户名查询级别图1.7网管信息系统细化将所有子系统全部细化。将所有用户需求分析完毕之后,就要开始构造数据字典了。经分析之后,本系统要用到五个基本表:用户信息表,电脑信息表,费用信息表,分区信息表,网管信息表。数据结构定义如表2.1。表1.8数据结构定义数据结构名含义说明组成用户信息定义了用户的有关信息卡号,身份证号,用户名,,级别电脑信息定义了电脑有关信息电脑编号,电脑名称,单价费用信息表定义了上网费用的有关信息卡号,电脑编号,上机时间,下机时间分区信息表定义了电脑分区的有关信息分区号,电脑编号,分区名称网管信息表定义了网管有关信息网管编号,分区号,网管姓名第二章概念结构设计2.1概念结构设计的方法与步骤2.1.1概念结构设计的方法概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。2.1.2概念结构设计的步骤第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。因此我们先逐一的设计分E-R图。第二步是进行视图的集成:各子系统的E-R图设计好之后,下一步就是要将所网管信息系统查询网管编号查询分区号查询网管姓名有的分E-R图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。我想采用一次集成两个分E-R图的方式。2.2数据抽象与局部视图设计按照图2.2系统总框架图,设计实体属性图以及局部E-R图。图2.1用户信息实体属性图图2.2费用实体属性图费用卡号电脑编号上机时间下机时间用户卡号身份证号用户名级别图2.3电脑实体属性图图2.4分区实体属性图图2.5网管实体属性图网管网管编号分区号网管名分区分区号电脑编号分区名称电脑电脑编号电脑名称单价图2.6用户花费局部E-R图图2.7用户使用电脑局部E-R图用户电脑使用卡号身份证号用户名级别电脑编号电脑名称单价11用户费用花费卡号身份证号用户名级别电脑编号上机时间下机时间卡号11图2.8电脑所属分区局部E-R图图2.9网管管理电脑局部E-R图分区网管管理电脑编号分区名称分区号网管编号分区号网管姓名11电脑分区所属电脑编号电脑名称单价电脑编号分区名称分区号m12.3视图的集成经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3.4总体概念结构E-R图。图2.10系统总体结构E-R图第三章逻辑结构设计3.1E-R图向关系模型的转换将图3.10总体概念结构E-R图转化成关系模型。用户信息表(卡号,身份证号,用户名)电脑信息表(电脑编号,电脑名称,单价)费用信息表(卡号,电脑编号,上机时间,下机时间)分区信息表(分区号,电脑编号,分区名称)网管信息表(网管编号,分区号,网管姓名)3.2数据模型的优化将转化的关系模式进行优化,最终达到第三范式。1、确定数据依赖用户信息表(卡号,身份证号,用户名)根据这个关系写出数据依赖卡号→用户名,卡号→身份证号电脑信息表(电脑编号,电脑名称,单价)电脑编号→电脑名称,电脑编号→单价费用信息表(卡号,电脑编号,上机时间,下机时间)(卡号,电脑编号)→上机时间,(卡号,电脑编号)→下机时间分区信息表(分区号,电脑编号,分区名称)分区号→电脑编号,分区号→分区名称,网管信息表(网管编号,分区号,网管姓名)网管编号→分区号,网管编号→网管姓名2、对各关系模式间数据依赖进行极小化处理,消除冗余卡号→用户名,卡号→身份证号,电脑编号→电脑名称电脑编号→单价,(卡号,电脑编号)→上机时间,(卡号,电脑编号)→下机时间分区号→电脑编号,分区号→分区名称,网管编号→分区号,网管编号→网管姓名3、看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解最终分解成第三范式:(卡号,用户名,身份证号)(电脑编号,电脑名称,单价)(分区号,电脑编号,分区名称)(网管编号,分区号,网管姓名)(卡号,电脑编号,上机时间,下机时间)3.3数据库的结构根据总体结构图设计各表的结构,其相应标的定义如下:表3.1用户信息系统的结构字段名数据类型长度约束描述CardnumberVarchar10主键卡号UsernumberVarchar20不为空身份证号UsernameVarchar30不为空用户名表3.2电脑信息系统的结构字段名数据类型长度约束描述ComputernumberVarchar10主键电脑编号ComputernameVarchar30不为空电脑名称PriceVarchar20不为空单价表3.3费用信息表系统的结构字段名数据类型数据类型长度约束描述CardnumberVarchar10主键卡号ComputernumberVarchar10不为空电脑编号starttimeVarchar20可为空上机时间endtimeVarchar20可为空下机时间表3.4分区信息表系统的结构字段名数据类型长度约束描述AreanumberVarchar10主键分区号ComputernumberVarchar10外键电脑编号AreanameVarchar30不为空分区名称表3.5网管信息表系统结构字段名数据类型长度约束描述ManagernumberVarchar10主键网管编号AreanumberVarchar10外键分区号ManagernameVarchar30不为空网管名字3.4数据库关系图:第四章数据库物理设计4.1实现该设计的环境为WindowsXPProfessional+MSSQLServer2005或以上版本。1、建立网吧管理系统数据库:CREATEDATABASE[网吧管理系统]ONPRIMARY(NAME=N'网吧管理系统',FILENAME=N'C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\网吧管理系统.mdf',SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)LOGON(NAME=N'网吧管理系统_log',FILENAME=N'C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\网吧管理系统_log.ldf',SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=10%)2、建立管理员信息表:CREATETABLE[dbo].[admin]([Managernumber][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,[Areanumber][varbinary](16)NOTNULL,[Managername][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,CONSTRAINT[PK_admin]PRIMARYKEYCLUSTERED([Managernumber]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]3、建立电脑信息表:CREATETABLE[dbo].[computer]([Computernumber][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[Computername][varchar](30)COLLATEChinese_PRC_CI_ASNOTNULL,[price][money]NOTNULL,CONSTRAINT[PK_computer]PRIMARYKEYCLUSTERED([Computernumber]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]4、建立消费表:CREATETABLE[dbo].[expence]([Cardnumber][char](16)COLLATEChinese_PRC_CI_ASNOTNULL,[Computernumber][varchar](12)COLLATEChinese_PRC_CI_ASNOTNULL,[[starttime][datetime]NOTNULL,[endtime][datetime]NOTNULL,CONSTRAINT[