数据库课程设计 学校食堂管理系统 精品 2014最新.doc

上传人:数据九部 文档编号:10129508 上传时间:2021-04-22 格式:DOC 页数:27 大小:464.01KB
返回 下载 相关 举报
数据库课程设计 学校食堂管理系统 精品 2014最新.doc_第1页
第1页 / 共27页
数据库课程设计 学校食堂管理系统 精品 2014最新.doc_第2页
第2页 / 共27页
数据库课程设计 学校食堂管理系统 精品 2014最新.doc_第3页
第3页 / 共27页
数据库课程设计 学校食堂管理系统 精品 2014最新.doc_第4页
第4页 / 共27页
数据库课程设计 学校食堂管理系统 精品 2014最新.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《数据库课程设计 学校食堂管理系统 精品 2014最新.doc》由会员分享,可在线阅读,更多相关《数据库课程设计 学校食堂管理系统 精品 2014最新.doc(27页珍藏版)》请在三一文库上搜索。

1、摘 要当人们收集了大量的数据后,应该把它们保存起来做进一步的处理和信息的抽取。当年人们把数据存放在文件柜中,可现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术来科学地保存大量的数据,以便能更好的利用这些数据资源。我选择食堂管理系统的原因是我们学校有4个食堂,但人数众多,每天的消费量都很大,从学生的角度来讲,在高峰期存在某些食堂找不到座位的现象比比皆是,从管理员的角度来讲,他们需要知道某些菜的量,这样才能合理分配菜量,同学们也可以对食堂的饭菜及服务打分,这样同学们才能更好地进行就餐,食堂管理员才能更好地管理食堂及员工。本课题的目的是为了巩固数据库原理与应用课程中所学的知识,体

2、现理论指导实践的原则,为食堂管理系统设计后台数据库,通过需求分析,概念设计,逻辑设计,物理设计及数据库的实施和运行等阶段,体现数据库设计的全过程,并把所学知识应用到实际中,培养自己的思维能力。关键词:SQL SERVER;数据库设计;食堂管理系统大连交通大学数据库课程设计目录第一章 绪论11.1课题简介11.2设计目的11.3设计内容1第二章 需求分析32.1 需求分析的任务32.2 需求分析的过程32.3数据字典与流程图4第三章 概念结构设计83.1 概念结构设计的方法与步骤83.2 数据抽象与局部视图设计83.3视图的集成11第四章 逻辑结构设计124.1 E-R图向关系模型的转换124.

3、2 数据库关系图12第五章 数据库的实现165.1数据库的建立165.2 数据库基本结构的建立165.3安全性的实现225.4完整性的实现235.5恢复技术的实现25第六章 运行与结果266.1简单查询和连接查询266.2嵌套查询286.3组合查询和统计查询3225大连交通大学数据库课程设计第一章 绪论1.1课题简介数据库技术已成为现代信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。数据库技术是20世纪60年代后期产生和发展起来的一项计算机数据管理技术,它的出现使计算机应用渗透到人类社会的各个领域。目前数据库的建设规模和性能、数据库信息的大小和使用频度已成为衡量一个国

4、家信息化程度的重要标志,数据库技术也成为计算机科学技术的一个重要分支。 我的专业是计算机。经过大学三年的学习,我们对计算机方面的知识有了很大的提升,不但掌握了基本的编程方法,工具和软件,还能进行简单的小程序开发。在C语言和JAVA课程设计中,我认真编写程序,均取得了很好的成绩。在这次数据库课程设计中,我本着理论联系实际的宗旨,通过学校提供的这次课程设计实践的机会,在指导教师的帮助和自己的资料查找下,历经两周时间,我通过数据库设计阶段的需求分析,概念模型设计,逻辑结构设计等步骤,自行设计一套学校食堂管理系统,在下面的各章中,我将以这套学校食堂管理系统为例,谈谈其开发过程和所涉及到的问题。大连交通

5、大学数据库课程设计第二章 需求分析2.1 需求分析的任务需求分析阶段的任务是对系统的整个应用情况做全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能够接受的文档。首先,我做的是调查食堂管理系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。最重要的是调查、收集信息、分析各个功能所需要的数据及处理流程。处理要求、数据的安全性与完整性要求。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。2.2 需求

6、分析的过程 1、分析用户活动,产生用户活动图。 2、确定系统范围,产生系统范围图。 3、分析用户活动所涉及的数据,产生数据流图。 4、分析系统数据,产生数据字典。 通过我对学校食堂的调查分析,我得出了食堂以下几点特点: 每个食堂都会有若干个窗口,每个窗口有若干工作人员。工作人员分为食堂管理员,窗口管理员和一般员工,一般员工负责送餐。 每位同学都有唯一的学号并被分配到指定的宿舍楼和指定的宿舍,有姓名,年龄,性别和联系方式。 学生在学校食堂就餐,有菜名和就餐时间。 每个员工都有唯一的员工号,还有姓名,性别,年龄,联系方式和职位 每个食堂都有编号,负责人的员工号,营业状况,如果正在营业则会有客流量,

7、同时还会有学生对其的评价。 每个窗口都有编号和所属食堂编号,并对在此窗口出售的菜进行编号,另外还有此窗口的营业状况,以及学生对其的评价。 每道菜有编号,菜名和价钱,所属食堂的编号和窗口编号,同时有此时的销售状况,以及学生对其的评价。 每个学生可以对食堂,窗口和菜评价打分,同时每个学生对其评价时都会自动生成一个编号。 每个外卖都有订单号以及订此外卖的学生的学号。 外卖是由食堂的一般工作人员负责送的,有员工编号,订餐编号和状态。若已送,则会有送餐时间。 每道菜又有对应的销售总量以及总价 总结了以上食堂的基本特点以后,我再说明一下食堂的业务流程: 1.学生根据食堂的营业状况,好评度和客流量,选择理想

8、的食堂就餐。 2学生到某个食堂的某个窗口去点餐,员工会点击学生点的某些菜,系统会统计此菜的编号,从数据库调出其价格,同时统计出点餐的合计金额,同时记录并更改菜的销售数量。 3.食堂管理员可以根据数据库中订餐表查看同学们订的餐以及相关信息。 4学生可以查看食堂现状的基本信息。学生可以查看所有食堂的人流量,某些食堂某些窗口某些菜是否在出售。 5工作人员可根据订外卖的单的住址等信息去送外卖;同时更改每个外卖的状态和时间。 以上就是我对食堂管理系统的需求分析,要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。2.3数据字典与流程图1业务流

9、程分析经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,给出学生和食堂工作人员对食堂相关信息的具体需求。 图2.1 学校食堂管理流程图 调查用户需求 学生对食堂的需求l 功能:学生首先查看食堂的基本信息,比如是否营业,客流量,好评度,哪些窗口和出售的菜名等,然后选择合适的食堂进行就餐。在选择窗口和菜时,可以根据自己的喜好来选择,也可以根据好评度来选择。l 同学可以通过外卖系统来订外卖,订完时,系统会生成订餐信息。l 同学们也可以对食堂,窗口和菜的质量来进行打分。l 统计功能:u 按菜编号统计食堂所拥有的菜,以及销售情况。u 可以按照好评度降序排列来选择食堂,窗口和菜。食

10、堂工作人员需求:l 查询功能:食堂的工作人员能查询自己工作的食堂和窗口的相关信息,包括食堂拥有的窗口,该窗口所有菜的信息,正在出售的菜的信息,该窗口的外卖单的信息,销售状况,好评度等,有利于对食堂和窗口更好地进行管理,对好评度低的食堂,窗口和菜等进行整改。l 更改功能:当窗口的菜单的信息发生变化时,工作人员能对其进行修改。比如,某些菜销售完毕,在销售状况总就应该改成F(空);或者某些菜的价格改变,记录中价格的信息也要作相应的修改等。l 当有学生在该窗口点餐,工作人员可以去统计销售额,合计总额;l 当有同学订外卖,可以及时生成订单的详细信息,确保准确无误地送到指定地点。 就餐信息需求l 基本功能

11、:记录学生在食堂的就餐情况l 统计功能:u 统计食用某道菜的人数u 统计食用某道菜的时间u 统计某人食用的菜名l 查询功能:u 上食堂就餐的同学信息查询:就餐同学姓名就餐同学住址就餐同学学号就餐同学性别就餐同学年龄就餐同学联系方式 外卖信息需求l 查询功能:u 外卖号u 订外卖的同学相关信息u 送餐的员工的相关信息u 是否送餐以及送餐时间2系统模块分析在调查完了用户需求之后,就要开始分析用户需求。在此,我们采用自顶向下的结构化分析方法(SA方法)。首先,定义全局概念结构的框架,如图2.2所示。图2.2食堂管理系统总框架图3数据字典将所有子系统全部细化。将所有用户需求分析完毕之后,就要开始构造数

12、据字典了。数据字典提供了对数据库数据描述的集中管理,它的功能是存储和检索各种数据描述,如描述性的数据定义等,并且为DBA提供有关的报告。经分析之后,本系统要用到11个基本表:食堂信息表,窗口信息表,菜单信息表,学生信息表,员工信息表,就餐信息表,送餐信息表,收入信息表,外卖信息表,送餐信息表,评价信息表。数据结构定义如表2.1所示。表2.1 数据结构定义数据结构名含义说明组成食堂信息定义了食堂的有关信息食堂编号,营业状况,好评度,客流量,员工号窗口信息定义了窗口的有关信息窗口编号,食堂号,好评度,营业状况,工作人员菜单信息表定义了菜单的有关信息菜编号,窗口编号,食堂编号,菜名,好评度,状况,价

13、钱评价信息定义了某同学对食堂,窗口,菜的评价的有关信息评价编号,学号,食堂编号,窗口编号,菜编号,食堂分数,窗口分数,菜分数学生信息定义了学生的有关信息学号,姓名,性别,年龄,住址,联系方式就餐信息定义了学生的就餐信息学号,菜编号,就餐时间菜收入信息定义了某一种菜收入的有关信息销售编号,菜编号,数量,收入员工信息定义了员工的有关信息员工号,姓名,性别,年龄,职位,联系方式外卖信息定义了外卖的有关信息学号,订餐号订餐信息定义了订餐的有关信息订餐号,食堂号,窗口号,菜编号,数量,总价送餐信息定义了每一份外卖的送餐人员订餐号,员工号,状态,送餐时间大连交通大学数据库课程设计第三章 概念结构设计3.1

14、 概念结构设计的方法与步骤数据库概念结构设计阶段的任务是将需求分析得到的用户需求抽象为信息结构。概念结构设计是整个数据库设计的关键阶段,其主要任务是通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模式。 概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。3.2 数据抽象与局部视图设计按照图2.2食堂管理系统总框架图,设计局部E-R图。图3.1食堂和窗口信息局部E-R图 图3.2窗口和菜信息局部E-R图 图3.3销售收入和菜信息局部E-R图 图3.4员工和食堂信息局

15、部E-R图 图3.5员工和窗口信息局部E-R图 图3.6学生就餐信息局部E-R图图3.7学生订餐信息局部E-R图 图3.8员工送餐信息局部E-R图 图3.9学生评价信息局部E-R图 3.3视图的集成 经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3.10总体概念结构E-R图。图3.10系统总体结构E-R图第四章 逻辑结构设计4.1 E-R图向关系模型的转换将图3.10总体概念结构E-R图转化成关系模型。将转化的关系模式进行优化,最终达到第三范式。 食堂信息表(食堂编号,营业状况,好评度,客流量,员工编号)窗口信息表(窗口编号,营业状况,好评度,食堂编号,员工编号) 菜单信息表(

16、菜编号,窗口编号,食堂编号,菜名,状况,价钱,好评度) 同学评价信息单(打分编号,食堂编号,食堂分数,窗口编号,窗口分数,菜编号,菜分数,学号,时间)菜收入信息表(销售编号,菜编号,收入)员工信息表(员工编号,姓名,性别,年龄,职位,联系方式)学生信息表(学号,姓名,性别,年龄,住址,联系方式)就餐信息表(学号,菜编号,时间)外卖信息表(学号,订餐号)订餐信息表(订餐号,食堂号,窗口号,菜编号,数量,总价)送餐信息表(订餐号,员工号,状况,送餐时间)4.2 基本表结构 根据各个实体以及实体之间的联系,再根据总体结构图设计各表的结构,其相应表的定义如下:字段名数据类型长度是否为空主/外键备注Cn

17、ovarchar10否主键食堂编号Cconditionchar1是否营业Cevaluationsmallint好评度Ccustomersmallint客流量Enovarchar10否外键员工号表4-1食堂信息表的结构 表4-2 窗口信息表的结构字段名数据类型长度是否为空主/外键备注Wnovarchar10否主键窗口编号Wconditionchar1是否营业Enovarchar10否外键员工编号Cnovarchar10否外键食堂编号Wevaluationsmallint10好评度 表4-3 菜单信息表的结构字段名数据类型长度是否为空主/外键备注Dnovarchar10否主键菜编号Wnovarch

18、ar10否外键窗口编号Cnovarchar10否外键食堂编号Dnamevarchar30否菜名Dconditionchar1是否供应pricefloat价钱Devaluationsmallint好评度 表4-4学生评价表的结构字段名数据类型长度是否为空主/外键备注Pno varchar否主键评价编号Cnovarchar10外键食堂编号Cpointsmallint食堂分数Wnovarchar10外键窗口编号Wpointsmallint窗口分数Dnovarchar10外键菜单编号Dpointsmallint菜单分数Snovarchar20外键学号 表4.5 菜收入信息表的结构字段名数据类型长度是否

19、为空主/外键备注Inovarchar10否主键销售编号Dnovarchar10否外键菜编号Incomefloat收入 表4.6 员工数据信息表的结构 字段名数据类型长度是否为空主/外键备注Enovarchar10否主键员工号Enamevarchar20否姓名sexchar2性别agesmallint年龄Eposvarchar20职位Ephonevarchar20联系方式 表4.7 学生信息表的结构字段名数据类型长度是否为空主/外键备注Snovarchar20否主键学号Snamevarchar20否姓名sexchar2否性别agesmallint否年龄Saddvarchar20否住址Sphone

20、varchar20否联系方式 表4.8 学生就餐信息表的结构字段名数据类型长度是否为空主/外键备注Snovarchar20否主键外键学号Dnovarchar10否外键菜编号Sdatedatetime否就餐时间 表4.9 外卖信息表的结构字段名数据类型长度是否为空主/外键备注Tnovarchar10否主键订餐号Snovarchar20否 学号字段名数据类型长度是否为空主/外键备注Tnovarchar10否主键订餐号Cnovarchar10外键食堂号Wnovarchar10外键窗口号Dnovarchar10外键菜编号Tcountsmallint数量sumfloat总价 表4.10 订餐信息表的结构

21、表4.11 送餐信息表的结构字段名数据类型长度是否为空主/外键备注Tnovarchar10否主键外键订餐号Enovarchar10否外键员工号Tconditionchar1否状况大连交通大学数据库课程设计第五章 数据库的实现5.1数据库的建立Create database 食堂管理系统on primary (name=食堂管理系统,Filename=E:program filesLSL食堂管理系统_data.mdf,Size=4MB,Maxsize=10MB,Filegrowth=1MB)Log on(name=食堂管理系统_log,Filename=E:program filesLSL食堂管

22、理系统_log.ldf,Size=1MB,Maxsize=6MB,Filegrowth=1%)5.2 数据库基本结构的建立1、基本表的建立学生信息表的创建Create table student(Sno varchar(20) primary key,Sname varchar(20) not null,Sadd varchar(20),Sphone varchar(20),Sex char(2),Age smallint);员工信息表的创建Create table Employee(Eno varchar(10) primary key,Ename varchar(20) not null,

23、Epos varchar(20),Ephone varchar(20),Sex char(2),Age smallint);食堂表创建Create table cafeteria(Cno varchar(10) primary key,Ccondition char(1),Cevaluation smallint,Ccustomer smallint,Eno varchar(10) not null,Foreign key(Eno) references Employee(Eno);窗口表的创建Create table chuangkou(Wno varchar(10) primary key

24、,Wcondition char(1),Eno varchar(10) not null,Cno varchar(10) not null,Wevaluation smallintForeign key(Cno) references cafeteria(Cno)Foreign key(Eno) references Employee(Eno);菜单信息表的创建Create table cai(Dno varchar(10) primary key,Wno varchar(10) not null,Cno varchar(10) not null,Dname char(30) not null

25、,Dcondition char(1),Price float,Devaluation smallintForeign key (Cno) references cafeteria(Cno)Foreign key (Wno) references cafeteria(Wno);同学评价表的创建Create table pingjia(Pno varchar(10) primary key,Cno varchar(10),Cpoint varchar(10),Wno varchar(10),Wpoint varchar(10),Dno varchar(10),Dpoint varchar(10)

26、,Sno varchar(20)Foreign key(Cno) references cafeteria(Cno)Foreign key(Wno) references window(Wno)Foreign key(Sno) references student(Sno)Foreign key(Dno) references dish(Dno);收入表的创建Create table Income(Ino varchar(10) primary key,Dno varchar(10) not null,Income floatForeign key(Dno) references dish(D

27、no);订餐信息表的创建Create table dingcan(Tno varchar(10) primary key,Cno varchar(10),Wno varchar(10),Dno varchar(10),Tcount int,Sum float,Foreign key(Dno) references dish(Dno),Foreign key(Cno) references cafeteria(Cno),Foreign key(Wno) references window(Wno);外卖信息表的创建Create table waimai(Tno varchar(10),Sno v

28、archar(10),Wdate datetime,primary key(Tno,Sno);学生就餐信息表的创建Create table jiucan(Sno varchar(20),Dno varchar(10),Sdate datetime,Primary key(Sno,Dno),Foreign key(Sno) references student(Sno),Foreign key(Dno) references dish(Dno),);送餐信息表的创建Create table songcan(Tno varchar(10),Eno varchar(10),Tcondition ch

29、ar(1) not null,Primary key(Tno,Eno),Foreign key(Tno) references dingcan(Tno),Foreign key(Eno) references Employee(Eno);2、添加数据insert into student values(0912310124,原涛,11号 1506楼,13456732465,24,男);3、视图的建立Create view view_waimaiAs select sname,Cno,Wno,Dno,Tcount,sumFrom student,waimai,dingcanWhere stude

30、nt.Sno=waimai.Sno and waimai.Tno=dingcan.Tno4、 索引的建立建立窗口评价按降序排列的唯一索引create unique index Wpingjia on Window(Wevaluation desc)建立食堂信息表的聚簇索引create clustered index shitanghao on cafeteria(Cno)建立窗口信息表的聚簇索引create clustered index windowhao on window(Wno)建立菜单信息表的聚簇索引create clustered index Dishhao on dish(Dno

31、)建立学生评价信息表的聚簇索引create clustered index pingjiahao on pingjia(Pno)建立菜收入信息表的聚簇索引create clustered index Incomehao on Income(Ino)建立员工信息表的聚簇索引create clustered index Employeehao on Employee(Eno)建立学生信息表的聚簇索引create clustered index studenthao on student(Sno)建立学生就餐信息表的聚簇索引create clustered index jiucanhao on ji

32、ucan(Sno)建立外卖信息表的聚簇索引create clustered index waimaihao on jwaimai(Tno)建立订餐信息表的聚簇索引create clustered index dingcanhao on dingcan(Tno)建立送餐信息表的聚簇索引create clustered index songcanhao on songcan(Tno)5、 游标的建立建立以下游标,能实现对表student的按行读取数据declare cs_student scroll cursorforselect sno,sname,sadd,sphonefrom student

33、for read onlyopen cs_studentfetch from cs_student不断执行fetch from cs_student语句,则能不断显示每行数据。在菜单表上定义一个包含Dname,price,Devaluation的游标,游标的名称为dish_cursor,将游标中绝对位置为2的菜名改为“肉末木耳”,价钱改为3.2元,好评度改为87declare dish_cursor scroll cursorforselect Dname,price,Devaluationfrom dishfor update of Dname,price,Devaluationopen d

34、ish_cursorfetch absolute 2 from dish_cursorupdate dishset Dname=肉末木耳,price=3.2,Devaluation=87where current of dish_cursorfetch absolute 2 from dish_cursor6、存储过程的建立建立名为dish_name的存储过程,功能为:显示每个订餐号对应的基本信息,包括订餐号,菜编号,菜名,菜所在的食堂号,菜所在的窗口号,菜价以及好评度等信息。create procedure dish_nameas select tno,dish.dno,dname,o,di

35、sh.wno,price,devaluationfrom dingcan,dishwhere dingcan.dno=dish.dno创建一个存储过程cai_price,功能如下:输入菜价,如果大于3.5,则输出菜太贵,并输出菜价;如果小于3.5,则输出菜比较便宜,并输出菜价create procedure cai_price dprice floatasdeclare ddprice floatselect ddprice=pricefrom dishwhere dish.dno=dpriceif ddprice=3.5print 菜太贵,价钱为:+convert(char(2),dpric

36、e)+元elseprint 菜比较便宜,价钱为+convert(char(2),dprice)+元5.3安全性的实现1、利用图形化工具为了提高安全性,建立系统用户,SQL SERVER用户,数据库用户。系统用户名:loginSQL SERVER用户名:LSL数据库用户名:LSL为SQL SERVER用户,数据库用户分配角色,写出分配的角色名。分配的角色名:role,db_owner2、利用Transact-SQL设计一个SQL server登录账户,并设置密码,写出相应的SQL语句。Sp_addlogin LSL,123为登录帐户,设计创建一个数据库用户,写出相应的SQL语句。Sp_grant

37、dbaccess LSL,LSL为数据库用户创建数据库角色,写出相应的SQL语句。sp_addrolemember db_owner,LSLsp_addrole role,LSL5.4完整性的实现1、UNIQUE约束UNIQUE约束指定一个或多个列的组合的值具有唯一性,以防止在列中输入重复值。与主键约束的区别是:主键约束在每个表中规定的主键只能有一个,且主键不允许有空值。但是在UNIQUE约束中是允许有空值的,并且可以在多个列上定义。比如创建菜单信息表时,规定了菜名不能重复。Create table dish(Dno varchar(10) primary key,Wno varchar(10

38、),Cno varchar(10),Dname char(30) UNIQUE,Dcondition char(1),Price float,Devaluation smallint);2、CHECK约束CHECK约束在SQL Server中被定义在表约束和列约束中。它允许指定包括在列中的值。例如,定义某列的值的范围,值列表等。在创建菜单信息表时,如指定菜价在0到10之间,则SQL语句为:Create table cai(Dno varchar(10) primary key,Wno varchar(10),Cno varchar(10),Dname char(30) UNIQUE,Dcond

39、ition char(1),Price float check(price between 0 and 10),Devaluation smallint);或者,建好表之后,可以输入如下语句增加CHECK约束。alter table dishadd constraint check_pricecheck(price=0 and price0再创建一个规则,要求使用该规则的列的取值在0到100之间:Create rule dafenAsvalue between 0 and 100使用系统存储过程sp_bindrule将dishname绑定到dish表中的Dname列Use diancaiExec sp_bindrule dishname,dish.dname使用系统存储过程sp_bindrule将dafen绑定到dish表中的Devaluation列Use diancaiExec sp_bindrule dafen,dish.devaluation5.5恢复技术的实现完成所有数据的设计工作后,备份数据库.将食堂管理系统备份到E:LSLshitangguanli.bak在查询编辑器中输入如下语句Backup database 食堂管理系统To disk=E:LSLshitangguanli.bakWith format

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1