网上书店系统.docx

上传人:b****6 文档编号:7564650 上传时间:2023-01-25 格式:DOCX 页数:23 大小:1.84MB
下载 相关 举报
网上书店系统.docx_第1页
第1页 / 共23页
网上书店系统.docx_第2页
第2页 / 共23页
网上书店系统.docx_第3页
第3页 / 共23页
网上书店系统.docx_第4页
第4页 / 共23页
网上书店系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

网上书店系统.docx

《网上书店系统.docx》由会员分享,可在线阅读,更多相关《网上书店系统.docx(23页珍藏版)》请在冰豆网上搜索。

网上书店系统.docx

网上书店系统

数据库课程设计

网上书店管理系统

的分析与设计

学生姓名:

学号:

指导教师:

专业班级:

计科1101

学院:

信息科学与工程学院

2014-6-13

1.需求分析

考察用户网上购书的行为,大致都是如下的模式:

用户进入网上书店,浏览各种图书信息,或者根据自己感兴趣的类别、特定图书信息等来进行搜索、查询图书信息。

普通用户可以查询图书,我们这个系统规定在线图书销售系统只允许会员执行购买图书的操作。

会员在购买图书时,首先将选定的图书加入购物车,可以一次购买多本图书,每本图书的数量也可以不同。

对购物车中的图书进行确认付款以后,生成正式订单,管理员可以根据会员购买生成的订单,为其进行发货处理。

管理员还可以对网上书店的图书进行增加、删除、更新等管理操作。

对于网上书店系统中普通用户、会员和管理员的具体功能描述如下。

(1)普通用户

1)浏览图书、按类别查询图书、查看图书详细信息。

2)注册成为会员。

(2)会员

1)浏览图书、按类别查询图书、查看图书详细信息。

2)加入购物车、修改购物车、订购图书、生成订单、查看订单等。

3)查看、修改个人信息。

(3)管理员

1)浏览图书、按类别查询图书、查看图书详细信息,核查购买图书费用信息。

2)查看订单、处理订单进行发货处理等。

3)查看、修改个人信息。

4)更新图书信息,如新增、删除图书、更新库存量、商品名称、增加图书的属性列等。

从上述的功能分析可以得出,网上书店系统中需要有会员、管理员、图书、订单等信息。

对于会员,需要有会员的账号、密码、姓名、邮箱、电话、地址等属性,其中图书可以有折扣(如8折、7.5折),实际售价由定价乘以折扣,再除以10计算得出;对于一个订单,需记录会员的订购日期、管理员进行发货的发货日期、订购总价等属性,其中订购总价是由多种图书实际售价乘以订购数量累计计算得出的。

在线图书销售管理系统中图书销售基本规定如下:

每个会员可以通过订购图书生成多个订单,每个订单仅属于一个会员;每个订单中可以包括多种图书商品,每种图书商品可以出现在多个订单中;在订单信息中,每种图书都有对应的订购数量。

为简便起见,在线图书销售管理系统仅考虑会员、管理员、订单、图书之间的关系,至于实际中网上支付,商品评论等信息的处理,暂时略去,也不考虑普通用户,假设会员确定生成了订单以后是应经付款的,管理员可以对其进行发货处理等。

2.概念结构设计

概念结构设计主要通过分析在线图书销售管理系统的基本需求,对需求分析结果中的信息进行分类组织,得到系统的实体、实体的属性、实体的键、实体之间的联系以及联系的类型,从而设计出系统的概念模型。

下面介绍设计概念结构模型的具体步骤。

2.1抽象出系统的实体

根据分析,在线图书销售管理系统的基本实体为:

会员、管理员、订单、图书,而每个实体应该具有如下列基本属性,并标记逐渐,画出E-R图,如图1、图2、图3所示。

●会员:

账号、密码、姓名、地址、邮箱、手机、管理员标识,其中账号是主键,管理员标识为0表示为普通会员,为1表示为管理员。

●订单:

订单号、订购日期、订单总价、发货日期,其中订单号是主键。

图书:

ISBN、书名、作者、出版社、定价、折扣、图书类型、图书概况、库存数量,其中ISBN是主键。

图1

图2

图3

2.2设计分E-R图

在网上书店系统中,涉及3个实体,分别是会员、订单、图书,这3个实体之间存在联系。

会员通过订购图书生成一个订单,一个会员可以生成多个订单,每个订单只能属于一个会员,即会员预订单之间的联系是一对多的联系。

一个订单可以包含多种图书,一种图书也可以被多个订单包含,即每一种图书可以出现在多个订单中,每个订单中对应的每种图书均有对应的订购数量,因此订单与图书之间的联系是多对多的联系。

由以上分析,将会员与订单之间的联系命名为订购,将管理员与订单之间的联系命名为下单,将订单与图书之间的联系命名为订单详情,得到各个局部E-R图。

如图所示。

1m

nn

2.3合并分E-R图,生成初步E-R图

会员与订单的关系为订购,管理员与订单的关系为下单。

经过分析,得到会员、管理员与订单之间的联系可以合并为订购,那么,会员、管理员、订单和图书之间分别通过订购和订单详情这两个联系进行关联。

因此,合并上述分E-R图、生成初步E-R图,如图所示。

1

n

m

n

2.4生成全局E-R图

将各个实体的属性加入初步E-R图,形成全局E-R图,如图所示。

 

1

n

n

3.逻辑结构设计

在概念结构设计阶段得到E-R图之后,下一步是进行数据库的逻辑结构设计,根据转换规则将E-R图转换为关系模型,即将实体和联系转换为关系数据库的基本表,并标识各个表的主键。

得到网上书店系统的关系模式如下:

●会员(账号、密码、姓名、地址、邮箱、手机、管理员标识)为会员实体对应的关系模式,其中账号是会员关系的主键。

●订单(订单号、订购日期、订单总价、发货日期、账号)为订单实体和订购联系合并的关系模式,其中订单号是主键。

会员的主键账号是订单关系的外键。

●图书(ISBN、书名、作者、出版社、定价、折扣、图书类型、图书概况、库存数量)为图书实体对应的关系模式,其中ISBN是图书实体的主键。

●订单详情(订单号、ISBN、订购数量、发货状态)为“订单详情”联系对应的关系模式。

因为订单详情是订单与图书之间的多对多联系,所以订单、图书的主属性以及订单详情联系本身的属性“订购数量”共同构成了订单详情关系模式的属性,其中(订单号、ISBN)的组合是主键,订单号、ISBN同时也是订单详情关系模式的外键。

4数据库物理设计与实施

4.1创建“网上书店系统”数据库

因为本系统是一个小型的网上书店系统,经过分析,建立数据库“网上书店系统”,其初始大小可以设为100MB,增长率设置为10%,并将数据文件和日志文件分别命名为“网上书店系统_data”和“网上书店系统_log”,其存储路径选择“D:

\data”文件夹。

4.2建立和管理基本表

4.2.1建立基本表

(1)建立会员表

会员(账号、密码、姓名、地址、邮箱、手机、管理员标识)为会员实体对应的关系模式,其中账号是会员关系的主键。

会员表的属性信息

属性

数据类型

是否为空/约束条件

账号

CHAR(20)

主键

密码

CHAR(20)

姓名

CHAR(10)

地址

VARCHAR(50)

邮箱

VARCHAR(30)

可以为空

手机

CHAR(11)

管理员标识

INT

0或1

本表的SQL语句如图所示:

CREATETABLE会员

账号CHAR(20)PRIMARYKEY,

密码CHAR(20)NOTNULL,

姓名CHAR(20)NOTNULL,

地址VARCHAR(50)NOTNULL,

邮箱VARCHAR(30),

手机CHAR(11)NOTNULL,

管理员标识INTNOTNULLCHECK(管理员标识IN('0','1'))

(2)建立订单表

订单(订单号、订购日期、订单总价、发货日期、账号)为订单实体和订购联系合并的关系模式,其中订单号是主键。

会员的主键账号是订单关系的外键。

订单基本表的属性信息

属性列

数据类型

是否为空/约束条件

订单号

CHAR(10)

主键

订购日期

DATETIME

订购总价

MONEY

可以为空,非空时

发货日期

DATETIME

可以为空

账号

CHAR(20)

本表的SQL语句如图所示:

CREATETABLE订单

订单号CHAR(10)PRIMARYKEY,

订购日期DATETIMENOTNULL,

订购总价MONEYCHECK(订购总价>=0),

发货日期DATETIME,

账号VARCHAR(20)NOTNULL

}

(3)建立图书表

图书基本表的属性信息,如下表所示:

图书基本表的属性信息

属性列

数据类型

是否为空/约束条件

ISBN

CHAR(20)

主键

书名

VARCHAR(50)

作者

CHAR(30)

可以为空

出版社

CHAR(30)

可以为空

定价

MONEY

否、

折扣

FLOAT

否、0~10

图书类别

CHAR(20)

图书概况

VARCHAR(100)

可以为空

库存数量

INT

否、

本表的SQL语句如图所示:

CREATETABLE图书

ISBNCHAR(20)PRIMARYKEY,

书名VARCHAR(50)NOTNULL,

作者CHAR(30),

出版社CHAR(30),

定价MONEYNOTNULLCHECK(定价>=0),

折扣FLOATNOTNULLCHECK(0<=折扣and折扣<=10),

图书类别CHAR(20)NOTNULL,

图书概况VARCHAR(100),

库存数量INTNOTNULLCHECK(库存数量>=0)

(4)建立订单详情表

订单详情(订单号、ISBN、订购数量、发货状态)为“订单详情”联系对应的关系模式。

订单详情基本表的属性信息

属性列

数据类型

是否为空/约束条件

订单号

CHAR(10)

否、主属性

ISBN

CHAR(20)

否、主属性

订购数量

INT

否、

本表的SQL语句如图所示:

CREATETABLE订单详情

订单号CHAR(10)NOTNULL,

ISBNCHAR(20)NOTNULL,

订购数量INTNOTNULLCHECK(订购数量>=0)

CONSTRAINTPK_订单详情PRIMARYKEY(订单号,ISBN),

FOREIGNKEY(订单号)REFERENCES订单(订单号),

FOREIGNKEY(ISBN)REFERENCES图书(ISBN)

4.2.2管理基本表

下面进行一些基本表的管理操作

(1)向图书表中增加“页数”列,其数据类型是整型。

SQL语句:

ALTERTABLE图书ADD页数INT

(2)增加图书表中“页数”必须取大于0的约束条件

SQL语句:

ALTERTABLE图书ADDCHECK(页数>0)

(3)删除图书表中的“页数”列

SQL语句:

ALTERTABLE图书DROPCOLUMN页数

4.3建立和管理试图

使用SQL语句建立试图的方法,生成一张“图书类别”为“计算机”的试图,将其命名为“计算机图书”。

SQL语句:

CREATEVIEW计算机图书

AS

SELECT*

FROM图书

WHERE图书类别='计算机'

4.4建立和管理索引

用SQL语句建立索引的方法,为会员表中的姓名建立次索引。

SQL语句:

CREATEINDEXINDEX_姓名

ON会员(姓名)

5.访问数据库

针对数据库的访问需求,事先利用insert语句向数据库中的基本表插入一批数据,四个表如下:

图书表的实例数据

会员表的实例数据

订单表的实例数据

订单详情表的实例数据

5.1数据查询

(1).查询会员张玲的信息:

SQL语句如下:

SELECT*FROM会员

WHERE姓名='张玲'

(2).查询图书”中国通史(上下册)”的价格:

SQL语句如下:

SELECT书名,定价,折扣FROM图书

WHERE书名='中国通史(上下册)'

(3).查询网上书店系统中每种图书的库存数量,并按照库存数量的由多到少进行排序。

SQL语句如下:

SELECT书名,库存数量FROM图书

ORDERBY库存数量DESC

(4).查询”刘东光”订购的订单的情况

SQL语句如下:

.

SELECT会员.姓名,订单.订单号,订单.订购日期,订单.订购总价,订单.发货日期

FROM会员,订单

WHERE会员.账号=订单.账号

AND姓名='刘东光'

5.2数据更新

(1).书店价格调整,将”计算机”图书的“折扣”更新为折扣-1

SQL语句如下:

UPDATE图书

SET折扣=折扣-1

WHERE图书类别='计算机'

6.数据库维护

6.1数据库备份

1)在“新建查询”窗口中输入下面的语句创建备份设备:

SP_ADDUMPDEVICE'disk','网书书店系统_bak','D:

\网书书店系统_bakup'

2)在“新建查询”窗口中述如下面的语句备份数据库:

BACKUPDATABASE网上书店系统TODISK='网书书店系统_bak'

6.2触发器

在订单表建立一个插入触发器,保证向订单表插入的“账号”在会员表中存在,如果没有该会员,那么将无法向订单表中插入订单的信息记录。

创建插入触发器的SQL语句如下:

CREATETRIGGERInsert_订单

ON订单

FORINSERT

AS

IF

(SELECTCOUNT(*)FROM会员,insertedWHERE会员.账号=inserted.账号)=0

BEGIN

PRINT'没有该会员信息'

ROLLBACKTRANSACTION

END

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

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1