《数据库系统课程设计》--网上订餐系统的设计与分析

一、系统需求分析

(一)需求概述

1.1.1 处理对象及需求

此系统是面向xxxx大学全体学生,旨在为同学们节省等餐时间,为了让大家把更多的时间能够投入学习之中,因此设计了这个网上订餐的用户登录系统,该系统分为*学生、商家和管理员*三个对象。

根据这三个对象,为了让网上订餐系统更好地服务大家,系统将满足以下需求:

学生需求主要包括:学生用户注册、学生登录、浏览店铺、浏览餐品、加入购物车、如果确定订购则生成订单。

商家需求主要包括:商家注册、商家登录、修改餐品信息、查看订单、确认订单、完成订单。

管理员需求主要包括:管理员注册、管理员登录、核查顾客及商家信息、会员管理。

1.1.2信息处理及系统功能

网上订餐系统包含学生用户模块、商家用户模块和管理员用户模块。如下图所示:
《数据库系统课程设计》--网上订餐系统的设计与分析_第1张图片

1.1.3数据库系统性能需要

系统主要为了让xxxx大学全体学生更好地解决吃饭问题,为莘莘学子节省更多的时间。因此该系统需要收集对应高校食堂餐品,同时也需要收集选择使用此系统的学生用户信息,这就对数据库要求高,如何使大量的信息不发生紊乱,能够有条不紊地继续进行,这就需要设计能够反映各种信息的表格,再进行对表格的各项内容进行查询。

1.1.4数据库系统开发环境需求

该网上订餐系统将采用功能强大的Microsoft SQL Server 2016为开发工具。

(二)业务流分析

《数据库系统课程设计》--网上订餐系统的设计与分析_第2张图片

(三)数据流分析

1.3.1顶层数据流图

由于该网上订餐系统主要功能是依靠商家提供餐品来满足学生的订餐需求。所以整个系统分为以下几类:登录管理、商家管理和学生订餐三个部分。从而得出了网上订餐系统的顶层数据流图如下:
《数据库系统课程设计》--网上订餐系统的设计与分析_第3张图片

1.3.2一层数据流图

*(1)用户登录管理。*用户在登录时,系统会进行判断。用户分为三类:学生、商家、管理员。根据不同的身份,系统将调用不同的数据库,满足对应的要求。在判定时,需要查询用户信息库。用户信息库,包含了学生注册信息、商家注册信息、管理员注册信息等。网上订餐系统一层分解图——登录管理,如下图所示:
《数据库系统课程设计》--网上订餐系统的设计与分析_第4张图片
*(2)用户操作管理。*在登录管理进行判断后,发送学生管理、商家管理、管理员管理信息其中一种。根据用户身份信息不同,进入不同的界面,界面内容有所不同,如下图所示:《数据库系统课程设计》--网上订餐系统的设计与分析_第5张图片
《数据库系统课程设计》--网上订餐系统的设计与分析_第6张图片
《数据库系统课程设计》--网上订餐系统的设计与分析_第7张图片

1.3.3二层数据流图

(1)学生用户管理
《数据库系统课程设计》--网上订餐系统的设计与分析_第8张图片
(2)商家用户管理
《数据库系统课程设计》--网上订餐系统的设计与分析_第9张图片
(3)管理员用户管理
《数据库系统课程设计》--网上订餐系统的设计与分析_第10张图片

(四)数据字典

1.4.1数据项

《数据库系统课程设计》--网上订餐系统的设计与分析_第11张图片

1.4.2数据结构

在这里插入图片描述

1.4.3数据流

在这里插入图片描述

1.4.4数据存储

在这里插入图片描述

二、数据库概念结构设计

(一)实体分析

经需求分析,本次课程设计中包含三个实体,它们分别是:学生用户实体、商家用户实体和管理员用户实体。

(二)属性分析

(这一部分老师指导的时候说有错误!!!应该不是这样画,要用正规符号)

学生用户实体属性:学生姓名、学生公寓号、学生电话号码、学生订餐信息、学生登录密码、学生会员信息。
如下所示:

《数据库系统课程设计》--网上订餐系统的设计与分析_第12张图片
*商家用户实体属性:*商家姓名、商家位置信息、商家电话号码、商家订餐信息查看、商家登录密码。如下所示:《数据库系统课程设计》--网上订餐系统的设计与分析_第13张图片
*管理员用户实体属性:*管理员姓名、管理员登录密码。如下所示:
《数据库系统课程设计》--网上订餐系统的设计与分析_第14张图片

(三)联系分析

一个学生可以订多家商家的多个餐品,而一个商家也可以为多个学生提供餐品。所以学生用户和商家用户是多对多的关系;一个管理员用户可以管理多个学生用户,而一个学生用户只可以被一个管理员管理(本设计如此安排,防止信息紊乱),所以管理员用户和学生用户之间是多对一的关系;同理,商家用户和管理员用户之间也是多对一的关系。
部分E-R图如下:
《数据库系统课程设计》--网上订餐系统的设计与分析_第15张图片

(四)概念模型分析(.CDM图)

在经过需求分析和实体属性的分析,以及各实体之间的关系,最终得到概念模型如下:
《数据库系统课程设计》--网上订餐系统的设计与分析_第16张图片

三、数据库逻辑结构设计

(这一模块也有大问题!!!因为当时这一张没有怎么学好。)

(一)概念模型转化为逻辑模型

根据需求分析中的 E-R 图,通过对实体的属性和之间的联系的分析,我们将其由概念模型向关系模型转化,并且根据范式化理论进行优化。

3.1.1 1:N联系的转化的关系模式

餐品信息查询(餐品名称,价格)

学生登录(姓名,公寓号,电话,订餐信息,登录密码,会员信息,送餐时间)

管理员登录(管理员名字,管理员密码)

商家登录(商家名称,商家位置信息,商家电话号码,查看订单信息,登录密码,配送时间)

订餐信息(学生姓名,学生公寓号,学生电话号码,学生订餐餐品,派送时间,学生会员信息)

3.1.2 确定范式级别

根据上述分析所归结出来的数据依赖的种类和在本系统实际的开发过程中,需要涉及多表的查询及表的修改和删除,且存在多值依赖的实际情况下,其关系模式应达到BCNF。

3.1.2 实施规范化处理

各个关系模式的函数依赖集如下:

学生联系:F={学生姓名→登录密码,学生姓名→学生信息}
商家联系:F={商家姓名→登录密码,商家姓名→店铺信息,订单查看→餐品信息→学生信息}

管理员联系:F={管理人员姓名→登录密码,管理人员编号→登陆密码→餐品信息,管理人员编号→登陆密码→学生信息}

订餐管理联系:F={订餐信息→学生信息,订餐信息→商家信息}

学生登录联系概念模型向关系模型的优化:
学生查找(学生订餐信息、学生信息)
学生信息(姓名,公寓号,电话,订餐信息,登录密码,会员信息,送餐时间)

商家登录联系概念模型向关系模型的优化:
商家查找(订餐信息查找,商家信息,餐品信息)
商家信息(餐品信息,餐品名称,餐品价格,商家位置信息,商家电话号码,查看订单信息,登录密码,配送时间)

管理员登录联系概念模型向关系模型的优化:
管理员信息(管理员名字,管理员,登陆密码,餐品信息,学生信息)

经过规范化处理后的所有关系模式如下:
学生信息(学生个人信息,订餐信息)
商家信息(商家个人信息,餐品信息,订餐信息)
管理员信息(管理员个人信息,餐品信息,学生信息)
餐品信息(商家个人信息,餐品名称,餐品价格)
订餐信息(餐品信息,商家个人信息,学生信息)

四、数据库物理实现

(一)表设计

4.1.1 数据库表的设计

《数据库系统课程设计》--网上订餐系统的设计与分析_第17张图片

4.1.2 数据库总表

《数据库系统课程设计》--网上订餐系统的设计与分析_第18张图片

(二)创建表和完整性的约束代码设计

4.2.1创建数据库

create database WebOrdering

《数据库系统课程设计》--网上订餐系统的设计与分析_第19张图片

4.2.2创建table表

/该模块在一开始创建时数据类型发生错误,导致表格内容无法正确插入,在后期均已改正,这里不做修改以便记录自己的错误。/
(a)学生信息表Sinfor

create table Sinfor
(
	Sno       char(6)    not null,
	Sflat     char(10)    not null,
	Stel      int         not null,
	Sorder    char(10)    not null,
	Scode     int         not null,
	Svip      char(6)     
 	
);

《数据库系统课程设计》--网上订餐系统的设计与分析_第20张图片
(b)商家信息表Minfor

create table Minfor
(
	Mname    char(6)    not null,
	Mplace   char(10)   not null,
	Mtel     int        not null,
	Mcode    int        not null
);

《数据库系统课程设计》--网上订餐系统的设计与分析_第21张图片

(c)管理员信息表Ainfor

create table Ainfor
(
	Aname    char(6)   not null,
	Acode    int       not null,
)

《数据库系统课程设计》--网上订餐系统的设计与分析_第22张图片
(d)商品信息表Pinfor

create table Pinfor
(
	Pname    char(6)   not null,
	Pprice   float     not null,
);

《数据库系统课程设计》--网上订餐系统的设计与分析_第23张图片

4.2.3插入数据

(a)插入学生信息
《数据库系统课程设计》--网上订餐系统的设计与分析_第24张图片
在这里插入图片描述(b)插入商家信息
《数据库系统课程设计》--网上订餐系统的设计与分析_第25张图片
在这里插入图片描述

(c)插入管理员信息
《数据库系统课程设计》--网上订餐系统的设计与分析_第26张图片
在这里插入图片描述
(d)插入餐品信息
《数据库系统课程设计》--网上订餐系统的设计与分析_第27张图片
《数据库系统课程设计》--网上订餐系统的设计与分析_第28张图片

(三)创建视图、索引、存储过程和触发器

4.3.1 视图的实现

(1)创建学生信息查询的视图

create view SSinfor
as
select Sno,Sflat,Stel,Sorder,Scode,Svip
from Sinfor

(2)创建管理员信息的视图

create view SAinfor
as
select Aname,Acode
from Ainfor

(3)创建商家信息查询的视图

create view SMinfor
as
select Mname,Mplace,Mtel,Mcode
from Minfor

(4)创建餐品信息的视图

create view SPinfor
as
select Pname,Pprice
from Pinfor

4.3.2 索引(index)的实现

(1)给table Sinfor创建索引

create index pk_index1 on Sinfor(Sname)

《数据库系统课程设计》--网上订餐系统的设计与分析_第29张图片
(2)给table Minfor创建索引

create index pk_index2 on Minfor(Mname)

《数据库系统课程设计》--网上订餐系统的设计与分析_第30张图片
(3)给table Ainfor创建索引

create index pk_index3 on Ainfor(Aname)

《数据库系统课程设计》--网上订餐系统的设计与分析_第31张图片
(4)给table Pinfor创建索引

create index pk_index4 on Pinfor(Pname)

《数据库系统课程设计》--网上订餐系统的设计与分析_第32张图片

4.3.3存储过程的实现

(1)table Sinfor实现存储过程

create procedure select_all
as
begin
select * from Sinfor
end
go

(2)table Minfor实现存储过程

create procedure select_Mname
as
begin
select * from Minfor
end
go

(3)table Ainfor实现存储过程

create procedure select_Aname
as
begin
select * from Ainfor
end
go

4.3.4创建触发器

(1)给table Sinfor创建触发器

create trigger U_Sinfor
on Sinfor
after delete
as 
begin
select * from deleted
end 
go

《数据库系统课程设计》--网上订餐系统的设计与分析_第33张图片

(2)给table Minfor创建触发器

create trigger U_Minfor
on Minfor
after delete
as 
begin
select * from deleted
end 
go

《数据库系统课程设计》--网上订餐系统的设计与分析_第34张图片
(3)给table Ainfor创建触发器

create trigger U_Ainfor
on Ainfor
after delete
as 
begin
select * from deleted
end 
go

《数据库系统课程设计》--网上订餐系统的设计与分析_第35张图片
(4)给table Pinfor创建触发器

create trigger U_Pinfor
on Pinfor
after delete
as 
begin
select * from deleted
end 
go

《数据库系统课程设计》--网上订餐系统的设计与分析_第36张图片

五、数据库功能实现

(一)学生信息管理模块

5.1.1查询学生信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第37张图片

5.1.2查询学生订餐信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第38张图片

5.1.3查询学生会员信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第39张图片

5.1.4增加学生信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第40张图片

5.1.5删除学生信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第41张图片

(二)商家信息管理模块

5.2.1查询商家信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第42张图片

5.2.2查询商家位置信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第43张图片

5.2.3增加商家信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第44张图片

5.2.4删除商家信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第45张图片

(三)管理员信息管理模块

5.3.1查询管理员信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第46张图片

5.3.2增加管理员信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第47张图片

5.3.3删除管理员信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第48张图片

(四)餐品信息管理模块

5.4.1查询餐品信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第49张图片

5.4.2查询餐品订购信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第50张图片

5.4.3增加餐品信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第51张图片

5.4.4删除餐品信息

《数据库系统课程设计》--网上订餐系统的设计与分析_第52张图片

六、设计总结

你可能感兴趣的