数据库原理及应用 综合设计报告

第一章 绪论

 随着计算机技术的发展以及计算机网络的逐渐普及,因特网成为了人们查找信息的重要场所。二十一世纪是信息的时代,所以信息的交换和信息的流通就显得特别的重要,因此网上书店的出现成为必然。

实体书店在正常运行的过程中总是面对大量的客户信息,书籍信息以及两者相互作用产生的购书信息。因此需要对客户资源,图书资源,购书信息和书籍信息进行管理,以及了解各个环节中的信息变更,要对因此产生的单据进行及时的处理,为了书店的自动化管理,能够更快速的满足客户的需求,提高各种工作的效率,先对其设计相应的系统已达到上述的目的。
网上书店信息管理系统的主要功能是实现书籍信息管理及购书的自动化。围绕这一主要功能,本系统涉及到以下核心功能:上传管理,修改管理以及查询管理。除了这些核心功能之外还包括一些基本的辅助功能,如:商家和客户的注册、登录,客户的购书等。
本课程设计的目的是通过开发一个网上书店管理信息系统,学习数据库系统的设计与开发。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。

第二章 需求分析

2.1数据流图
网上书店管理信息系统,其外部用户主要有游客、会员和管理员。其中,游客进行注册后,可以成为系统的会员,会员享有订购图书及订单和书籍等信息查询的功能,管理员可对系统的各种信息进行管理和维护。根据上述分析,可以得到网上书店管理信息系统的顶层数据流图,如图所示
在这里插入图片描述

图2.1.1网上书店管理信息系统的顶层数据流图
按照结构化需求分析方法,网上书店系统的主要功能模块可以分为用户注册、订单信息查询、书籍信息查询、订购图书及订单信息管理和图书信息管理等。在数据处理的过程中,系统内部的信息存储至少应该包括会员信息记录、图书信息记录和订单信息记录。根据上述分析,可以得到“网上书店管理信息系统”的中层数据流图,如图所示在这里插入图片描述

图2.1.2 网上书店管理信息系统的中层数据流图
为了对数据流图进行细化,可以进一步对中层数据流图中的每一个加工进行分解和求精。在网上书店系统的中层数据流图中,包含6个加工,分别是用户注册、订单信息查询、书籍信息查询、订购图书、订单信息管理和图书信息管理。那么,该系统应该包含6张底层数据流图。底层数据流图展现了系统最精确和最细节性的数据处理过程,为系统设计和编码提供最直接的参考。下面是六大功能模块的底层数据流图:
在这里插入图片描述

图2.1.3底层设计“订购图书”
在这里插入图片描述

图2.1.4订单信息查询
在这里插入图片描述

图2.1.5用户注册
在这里插入图片描述

图2.1.6书籍信息查询
在这里插入图片描述

图2.1.7订单信息管理
在这里插入图片描述

图2.1.8书籍信息管理
2.2数据字典
2.2.1数据项
数据项是不可分割的最小单位
名称:图书编号
类型长度:int
描述:图书的唯一标识码 名称:用户编号(会员编号)
类型长度:varchar(20)
描述:唯一标识用户的标识码

名称:图书种类
类型长度:varchar2(50)
描述:用来描述书籍的类别,便于用户选择 名称:用户姓名
类型:varchar2(20)
描述:会员的名字

名称:图书名称
类型长度:varchar2(50)
描述:图书的中文名称 名称:密码
类型长度:varchar2(20)
描述:用户用于登录系统的密码

名称:图书单价
类型长度:int
描述:图书的价格 名称:联系方式
类型名称:varchar2(20)
描述:用户的联系方式,电话号码
名称:图书存量
类型长度:int
描述:记录现存的图书数量

名称:收货地址
类型长度:varchar2(200)
描述:记录用户的收货地址

名称:管理员编号
类型长度:varchar2(20)
描述:书店管理者的账号

名称:订单编号
类型长度:int
描述:订单的编号

名称:管理员密码
类型长度:varchar2(20)
描述:书店登录系统所用的密码 名称:订单价格
类型长度:int
描述:订单的价格

名称:管理员名字
类型长度:varchar2(20)
描述:书店的名字

名称:书店地址
类型长度:varchar2(20)
描述:书店的线下地址
2.2.2数据结构
反映数据之间的组合关系
结构名称:管理员信息
含义:是书店管理者相关数据,定义了书店的相关信息
组成:管理员编号,管理员密码,管理员名称,书店地址

结构名称:书籍信息
含义:是书店内书籍的相关信息,定义了书籍的数量单价,编号等
组成:书籍编号,书籍名称,存量,价格,管理员,类别,内容简介等

结构名称:会员信息
含义:是书店会员的集合
组成:会员编号,会员名字,收货地址,联系方式,密码

结构名称:订单信息
含义:会员下单买书之后会产生相应的订单,在此数据结构中进行存储
组成:订单编号,会员编号,管理员编号,书籍编号,书名,价格,收获地址等

2.2.3数据流(是数据结构在系统内传输的路径)
名称:注册申请
简述:游客在游览书店时想要买书要先注册成书店会员,注册时需要管理员的审批
数据来源:游客,管理员
数据流向:会员信息记录表
数据结构:管理员,会员信息

名称:订购图书
简述:会员在下单之后,系统会自动生成订单,然后将订单信息显示给会员
数据来源:会员信息表,书籍信息表,订单
数据流向:会员,管理员
数据结构:订单信息,会员信息,书籍信息

名称:订单信息查询
简述:会员可以进行登陆系统查询自己所购买的图书信息
数据来源:订单信息表,会员信息表
数据流向:会员
数据结构:订单信息,会员信息

名称:书籍信息查询
简述:在浏览书店页面时,对喜欢的书籍可以进行详细信息的查询
数据来源:会员信息表,书籍信息表
数据流向:会员
数据结构:书籍信息,会员信息

名称:订单信息管理
简述:当有用户进行买书下单之后,对订单数据进行修改
数据来源:用户,管理员
数据流向:订单信息
数据结构:会员信息,管理员信息,书籍信息,管理员信息

名称:书籍信息管理
简述:当书籍售出或者进购书籍之后,对书籍的数量,种类进行增加、删除或者修改
数据来源:管理员
数据流向:书籍信息
数据结构:管理员信息,书籍信息

2.2.4数据储存
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。

名称:管理员信息表
描述:储存系统建立成功后管理员的相关信息
组成:管理员编号,管理员密码,管理员名字,书店地址
相关处理:修改书籍信息,修改订单信息,审批会员申请

名称:书籍信息表
描述:书店在进购或者卖出书籍之后,会对书籍的信息进行相关的修改
组成:书籍编号,书籍名臣,书籍单价,书籍存量,类别
相关处理:对书籍的进行删除,增加修改处理

名称:会员信息表
描述:用来储存游客申请成为书店会员之后的用户信息
组成:会员编号,会员名称,会员联系电话,会员收货地址,会员密码
相关处理:申请成为会员

名称:订单信息表
描述:用来储存会员下单买书之后的订单信息
组成:订单编号,会员编号,管理员编号,书籍编号,书名,价格,收货地址
相关处理:订单申请,订单修改,订单删除

2.2.5数据处理过程
具体的处理过程说明

过程名称:用户注册
输入数据:用户名,用户密码,收货地址,联系方式
输出数据:用户是否注册成功信息,成功就输出用户编号
处理逻辑:游客输入数据之后,检查输入的名称是否合法,密码是否安全。其他信息是否正确,若正确返回注册成功,否则注册失败

过程名称:用户登录
输入数据:用户编号,用户密码
输出数据:登陆成功信息
处理逻辑:判断用户输入的账号密码是否和数据库中保存的一致,若一致就进入书点首页,若不一致返回密码错误登陆失败的信息。

过程名称:订购图书
输入数据:图书编号,联系方式,收货地址,会员信息
输出数据:订单信息
处理逻辑:如用户购买的书籍还有存量,并且用户以及该付款就返回相应的订单信息,否则返回购买失败,并返回失败原因。

过程名称:修改图书信息
输入数据:增加,减少或者删除的图书信息
输出数据:相应得处理结果
处理逻辑:当管理员要增加或者减少某种书籍得信息得时候就对该书籍的存量进行修改;当管理员要修改某种书籍信息时就修改相应的书籍信息。

过程名称:增加订单信息
输入数据:用户订购的图书信息
输出数据:订购图书的订单
处理逻辑:将用户订购有的书籍相关信息进项输入,生成相应的书籍订单。 删除订单信息
输入数据:用户取消订单,或者未进行付款
输出数据:相应的订单信息就会自动删除
处理过程:用户自动取消订单之后或则长时间没有对相应的订单进行付款那么该订单信息就会被删除掉

第三章 概要设计

3.1实体属性图
3.1.1管理员E-R图
在这里插入图片描述

图3.1.1管理员实体属性图
3.1.2书籍信息
在这里插入图片描述

图3.1.2书籍信息E-R图
3.1.3订单E-R图
在这里插入图片描述

图3.1.3订单信息E-R图
3.1.4用户E-R图
在这里插入图片描述

图3.1.4用户E-R图
3.2系统总体E-R图
根据3.1 的分析综合可以得出系统总体的E-R图,如下:
在这里插入图片描述

图3.2.1系统总体E-R图
第四章 逻辑设计
4.1 E-R图转换为关系模式
根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模式,数据库BookShop包含一下四个表:管理员信息表,客户信息表,书籍信息表,订单信息表。
(1)管理员信息表Seller:
管理员(管理员id,管理员密码,书店地址,管理员名字)
表结构如下
字段名 说明 类型 长度及备注
Seller-id 管理员编号 Varchar2(20) 主键
Seller-name 管理员名字 Varchar2(20)
Pwd 管理员密码 Varchar2(20)
Address 书店地址 Varchar2(200)
Book_id 图书编号 Int 外键
Order_id 订单编号 Varchar2(20) 外键
表4.1.1管理员信息表
(2)书籍信息表books:
书籍信息(编号,存量,书名,价格,管理员id,类别)
表结构如下
字段名 说明 类型 长度及备注
Book_id 书籍编号 Int 主键
Seller-id 管理员编号 Varchar2(20) 外键
Books_name 书名 Varchar2(50)
Price 价格 Int
Count 存量 Int
Class 种类 Varchar2(20)
表4.1.2书籍信息表
(3)订单信息表order:
订单(订单编号,管理员编号,会员编号,书名,书籍编号,单价)
字段名 说明 类型 长度及备注
Order-id 订单编号 Int 主键
Seller-id 管理员编号 Varchar2(20) 外键
Buyer-id 买家编号 Varchar2(20) 外键
Book-name 书名 Varchar2(20)
Price 价格 Int
Book-id 书籍编号 Int 外键
表4.1.3订单信息表
(4)会员信息表buyer:
会员信息(会员姓名,会员编号,密码,联系方式,收货地址)
字段名 说明 类型 长度及备注
Buyer-name 会员姓名 Varchar2(20)
Buyer-id 会员编号 Varchar2(20) 主键
Pwd 会员密码 Varchar2(20)
Buyer-Phone 会员电话 Varchar2(20)
Buyer-Address 收货地址 Varchar2(50)
表4.1.4会员信息表
4.2规范化分析
1、管理员关系中管理员编号为主键,其中函数依赖有:管理员编号→管理员姓名,管理员编号→书店地址
因为在系统管理关系中不存在非主属性对码的部分函数依赖和传递函数依赖,所以系统管理关系是属于3NF-
2.书籍信息关系中图书编号为主键,其中函数依赖有:图书编号→图书名称,图书编号→图书价格,图书编号→图书存量,图书编号→图书类别
因为在书籍信息关系中不存在非主属性对码的部分函数依赖和传递函数依赖,所以书籍信息关系是属于3NF.
3、会员信息关系中会员编号为主键,其中函数依赖有:会员编号→会员姓名,会员编号→会员联系方式,会员编号→会员收货地址
因为在客户信息关系中不存在非主属性对码的部分函数依赖和传递函数依赖,所以客户信息关系是属于3NF.
4、订单关系中订单号为主键,其中函数依赖有:订单号→会员编号,订单号→订单价格,订单号→书籍编号,订单号→管理员编号,订单号→订单书名
因为在订单关系中不存在非主属性对码的部分函数依赖和传递函数依赖,所以订单关系是属于3NF.

第五章 程序实现
5.1 SQL语句实现
5.1.1 用SQL语句实现数据库和数据表的实现
在设计数据库表结构之前首先要创建一个数据库实例。
创建一个新的数据库:

CREATE DATABASE BOOKSHOP ON
(
NAME=BOOKSHOP_DATA,
FILENAME=’D:\BOOKSHOP.MDF’,
SIZE=10,
MAXSIZE=100,
FILEGROWTH=10
)
LOG ON
(
NAME=BOOKSHOP_LOG,
FILENAME=’D:\BOOKSHOP.LDF’,
SIZE=5,
MAXSIZE=50,
FILEGROWTH=5
)
);

数据库表的创建语句如下:
(1)管理员表

CREATE TABLE SELLER(
SELLER_ID VARCHAR(20)PRIMARY KEY,
SELLER_NAME VARCHAR(20),
PWD VARCHAR(20),
ADDRESS VARCHAR(200)

(2)书籍信息表

CREATE TABLE BOOKS(
BOOK_ID INT PRIMARY KEY,
SELLER_ID VARCHAR(20),
BOOK_NAME VARCHAR(50),
PRICE INT,
COUNT INT,
CLASS VARCHAR(20)
);
 

(3)订单表

CREATE TABLE OEDER(
ORDER_ID INT PRIMARY KEY,
BOOK_NAME VARCHAR(20),
PRICE INT,
BOOK_ID INT,CONSTRAINT FK_BOOK_ID FOREIGN KEY(BOOK_ID)REFERENCES BOOK(BOOK_ID),
SELLER_ID INT,CONSTRAINT FK_SELLER_ID FOREIGN KEY(SELLER_ID)REFERENCES SELLER(SELLER_ID),
BUYER_ID INT,CONSTRAINT FK_BUYER_ID FOREIGN KEY(BUYER_ID)REFERENCES BUYER(BUYER_ID)
);
 

(4)买家表


```sql
CREATE TABLE BUYER(
BUYER_ID VARCHAR(20) PRIMARY KEY,
BUYER_NAME VARCHAR(20),
BUYER_ADDRESSE VARCHAR(50),
BUYER_PHONE VARCHAR(20)
PWD INT
);

5.1.2 用SQL语句实现多种查询(多表、库函数、分组统计、视图等)
1.管理表

Create view view_guanli As
Select管理员编号= seller_id,管理员姓名= seller_name,书店地址= addrres

–2.书籍表

Create view view_ shuji As
Select图书编号= Book_id,图书名称= Book_ name, 图书价格= Book_ price, 存量= count,类别= class

–3.会员表

Create view view_huiyuan As
Select购买编号= Buyer_ id,客户姓名= Buyer_ name,客户电话= Buyer_phone, 客户地址= Buyer_addrres, 购买书籍
名称= Buyer_book from kehu

–4.订单表

Create view view_ dingdan As
Select订单号= Order_ id,购买编号= Buyer_id,总价= All price from dingdan

5.2关系代数实现多种查询
1.查询书籍名称

select Book name
from BOOKS

2.查询书籍类别

sclect Book_class
from BOOKS

3.查询书籍价格

select Book_price
from BOOKS

4.客户号和客户名查

select Buyer_ID,Buyer_name
from BUYER

5.找出有管理权限的

select seller_name
from 管理员信息

第六章 总结

我的课程设计是网上书店管理信息系统经过两周的不断学习课设计开发加上老师和同学们的帮助,终于完成了本次课程设计。通过这次课程设计,使我更大程度上的了解了信息管理系统的功能,提高了我的实践能力,这次课程设计是对所学知识的一次综合应用,在完成的过程中,我进一步学习了数据库的相关知识还学会了Visio的应用,同时对于SQL的编程有了更深的理解,规范了很多编写习惯。
在设计的过程中遇到了许多的问题,但通过查资料,以及与同学讨论,大部分问题都得以解决。但是由于时间问题意见个人在专业知识方面的学习还不够全面等诸多因素的影响,本系统还存在很多的问题没有得以解决,功能也不是很完善,系统还有以下部分有待完善:数据库的安全性有待加强,还可以设置级联是系统更加完善,还可以增加顾客对自己信息的修改权限,例如联系方式,收货地址的修改。这次课程设计使我更加熟练的掌握了Java语言和SQL语句的应用,帮助我熟悉了更多的SQL2015的功能,提高了我的动手能力,在实践中能够及时发现问题、解决问题,学到了许多解决实际问题的宝贵经验,同时也挖掘出了我的内在潜力,使我更加的自信,对编程也更加的有兴趣。
我现在了解的东西还很少,还不能很好的掌握自己的专业知识,我会更加谦虚的积极认真学习,不断增强自身的能力,提高个人素质,像一个真正的IT人士发展。通过这次课程设计我还是学到了很多东西,如果下次再做这样类似的东西我觉得我一定能做的更好。

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐