网上购物系统的数据库设计资料.docx
- 文档编号:6068540
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:20
- 大小:190.67KB
网上购物系统的数据库设计资料.docx
《网上购物系统的数据库设计资料.docx》由会员分享,可在线阅读,更多相关《网上购物系统的数据库设计资料.docx(20页珍藏版)》请在冰点文库上搜索。
网上购物系统的数据库设计资料
数据库系统概论课程设计
网上购物系统的数据库设计
学院(系):
专业:
学号:
姓名:
指导老师:
一、需求分析
1.1功能需求及数据需求分析---------------------------------------------------------2
1.2业务规则分析--------------------------------------------------------------2
1.3业务需求及处理流程-----------------------------------------------------2
二、概念结构设计
2.1各子系统的局部E-R-----------------------------------------------------3
2.2视图的集成-----------------------------------------------------------------6
三、逻辑结构设计
3.1E-R图向关系模型的转换----------------------------------------------------------7
3.2数据模型的优化------------------------------------------------------------8
3.3数据库的结构---------------------------------------------------------------8
四、物理结构设计
4.1物理设计任务与目标----------------------------------------------------12
4.2索引存取方法--------------------------------------------------------------12
五、数据库的实施
4.1数据库的载入------------------------------------------------------------------------12
六、总结
6.1课程设计所负责部分-----------------------------------------------------14
6.2课程设计的学习心得----------------------------------14
一、需求分析
1.1功能需求及数据需求分析
1.1.1用户管理
①用户:
只允许浏览商品信息,可以注册为普通用户
②会员:
拥有浏览商品和购买商品的权限,其属性包括客户号(唯一)、客户名、E-Mail、密码、姓名、性别、邮政编码、地址(一个客户可有几个地址)、客户所属VIP级别、折扣优惠。
1.1.2商品管理
①商品的增加。
其中的属性包含商品号(唯一)、商品分类、生产厂商、每个厂商的实际存货量、规定的最低存货量和商品其它描述
②商品的查询,在只要输入商品的任一属性即可
1.1.3商品订购管理
注册用户即会员注册后可以将相关商品放入购物车,最后购物结束之后形成生成订单,其中每个订单属性包含订单号、客户号、收货地址、订单日期、订单金额、订单明细(每个订单都有几个明细)内容为商品号、单价、订货数量。
1.1.4配送单管理
默认属性为客户注册时的基本信息,当然配送地址可由客户修改为合适的收货地址,支付方式也可根据提示由客户自定。
1.1.5评论管理
客户可以给商品发表评论,相关属性为评论号、客户号、商品号、客户邮箱、评论内容、评论时间。
1.2业务规则分析
1、所用用户都有权限浏览商品信息,但只有注册用户才能订购商品
2、每位注册用户的编号都是唯一的。
3、当普通客户总的订单金额达到10000元,即可升级为VIP客户。
VIP客户一般分为三个等级,对他们的优惠策略是在普通客户的价格上同时享有折扣优惠。
其中。
三级会员,订单金额在[10000,15000)元,享受折扣9折;二级会员,订单金额在[15000,25000)元,享受折扣8.5折;一级会员,订单金额在25000及以上,享受折扣7.5折。
4、每次商品的订单号都是唯一的。
5、客户可以在前台页面查看订单状态,订单状态可以是“0”或“1”,“1”表示订单上的商品已发出,“0”表示订单上的商品未发出。
订单的生成需用户确定之后才能生效。
1.3业务需求及处理流程
网上购物系统主要业务包括:
商品信息的发布与查询,商品的订购,处理订单,商品的配送。
系统处理流程:
系统流程图
二、概念结构设计
2.1各子系统的局部E-R如下:
图2.1.1:
客户实体
图2.1.2:
VIP客户
图2.1.3:
商品实体
图2.1.4:
生产厂商实体
图2.1.5:
商品分类
图2.1.6:
地址实体
图2.1.7:
订单明细
图2.1.8:
发票
图2.1.9:
供应关系
图2.1.10:
商品分类关系
图2.1.11:
客户评论关系
2.2视图的集成
方式视图的集成通俗的理解就是把各个子E-R图集成合并。
视图集成可以有两种:
1)多个分E-R图一次集成;
2)逐步集成,用累加的方式一次集成两个分E-R图。
第一种方法比较复杂,做起来难度较大;第二种方法每次只集成两个分E-R图,可以降低复杂度。
无论采用哪种方式,每次集成局部E-R图时都需要分两步走:
1)合并。
解决各分E-R图合并起来生成初步E-R图;2)修改和重构。
消除不必要的冗余,生成基本E-R图。
冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,应当予以消除。
消除了冗余后的初步E-R图称为基本E-R图。
消除冗余主要采用的方法有:
1)用分析方法消除冗余;2)用规范化理论消除冗余。
对该网上购物系统各子E-R图的集成——即该网上购物系统的总体概念结构E-R图如下图所示:
三、逻辑结构设计
3.1E-R图向关系模型的转换
由于概念设计的结果是ER图,DBMS一般采用关系模型,因此数据库的逻辑设计过程就是把E-R图转化为关系模式的过程。
将该网上购物系统的总体概念结构E-R图转换为关系模型:
客户(客户号、密码、姓名、性别、单位、电子信箱、身份证号)
VIP会员表(会员等级、会员折扣)
商品(商品号、商品名称、类别号、商品描述、单位、规格、单价)
生产厂商表(厂商号,生产厂商名、地址、电话)
地址(地址号、地址名称)
订单(订单号、客户号、商品号、收货地址、订货日期、订货数量、单价、订单金额、发货日期、订单状态)
发票(发票号码、订单号)
供应(商品号、厂商号)
商品分类(商品类别号、类别名称)
客户类型(客户号、客户类型)
评论(评论号、客户号、商品号、客户邮箱、评论内容、评论时间)
客户地址表(客户号、客户地址)
3.1.2视图的设计
为会员查看商品建立视图:
3.2数据模型的优化
数据模数据模型的优化是为了提高数据库应用系统的性能,根据应用需要适当地修改、调整关系模式。
将转化的关系模式进行优化,最终达到第二范式。
由以上关系可看出,以上表都以消除了非主属性对候选码的部分函数依赖,这个关系模型都已经达到第二范式,所以不需要进行优化。
3.3数据库的结构
1.创建客户表
字段信息:
客户号customerNo
密码password
姓名customerName
类型号typeNo
性别sex
单位company
电子信箱email
身份证号ID
VIP等级VIP
Createtablecustomer(
customerNochar(12)primarykey,
passwordvarchar(18)NotNull,
customerNamevarchar(12)NotNull,
typeNochar(8)NotNull,
sexchar
(1)Check(sexIn(‘M’,‘F’)),
companyvarchar(20),
emailvarchar(50)NotNull,
IDvarchar(18)NotNull,
VIPchar
(1)
)
2.创建VIP会员表
字段信息:
会员等级VIP
会员折扣discount
CreatetableVIP(
VIPchar
(1)primarykey,
DiscountfloatNotNull
)
3.创建商品表
字段信息:
商品号productNo
商品名称productName
类别号typeNo
商品描述describe
单位uints
规格standard
单价price
Createtableproduct(
ProductNochar(12)primarykey,
ProductNamevarchar(18)NotNull,
typeNochar(12)NotNull,
describevarchar(50)NotNull,
unitsvarchar(20)NotNull,
standardchar(8),
pricenumericNotNull
)
4.创建生产厂商表
字段信息:
厂商号producerNo
厂商名producerName
地址address
电话telephone
Createtableproducer(
producerNochar(12)primarykey,
producerNamevarchar(18)NotNull,
addressvarchar(50)NotNull,
telephonevarchar(12)NotNull
)
5.创建商品类别表
字段信息:
类别号protypeNo
类别名称protypeName
Createtableprotype(
protypeNochar(12)primanykey,
protypeNamevarchar(18)NotNull
)
6.创建地址表
字段信息:
地址号addressNo
地址名称addressName
Crestetableaddress(
addressNochar(12)primarykey,
addressvarchar(20)NotNull
)
7.创建订单明细表
字段信息:
订单号orderNo
客户号customerNo
商品号productNo
收货地址address
订货日期orderdate
订货数量quantity
单价price
发票号码billNo
订单金额ordersum
发货日期Fhdate
订单状态orderstate
Createtableordermaster(
orderNochar(12)primarykey,
customerNochar(12)NotNull,
productNochar(12)NotNull,
addressvarchar(20)NotNull,
orderdatedatetimeNotNull,
quantitychar(4)NotNull,
pricenumericNotNull,
billNovarchar(12)NotNull,
FhdatedatetimeNotNull,
Orderstatechar(8)Check(orderstateIN(‘0’,‘1’)),
foreignkey(customerNo)referencescustomer(customerNo)
foreignkey(productNo)referencesproduct(productNo),
foreignkey(billNo)referencesbill(billNo)
)
8.创建发票表
字段信息:
发票号码billNo
订单号orderNo
Createtablebill(
billNochar(12)primanykey,
orderNochar(12)NotNull,
foreignkey(orderNo)referencesproduct(orderNoNo)
)
9.创建供应表
字段信息:
商品号productNo
厂商号producerNo
Createtablesupport(
productNochar(12)primanykey,
producerNochar(12)NotNull,
foreignkey(producerNo)referencesproducer(producerNo),
foreignkey(productNo)referencesproduct(productNo)
)
10.创建客户类型表:
字段信息:
客户号customerNo
客户类型type
Createtabletype(
CustomerNochar(12)primarykey,
Typevarchar(18)NotNull
)
11.创建评论表
字段信息:
评论号reviewNo
客户号customerNo
商品号productNo
客户邮箱email
评论内容reviewContent
评论时间reviewdate
Createtablereview(
reviewNochar(12)primanykey,
customerNochar(12)NotNull,
produtNochar(12)NotNull,
emailvarchar(50)NotNull,
reviewContentvarchar(100)NotNull,
reviewdatedatetimeNotNull,
foreignkey(customerNo)referencescustomer(customerNo),
foreignkey(productNo)referencesproduct(productNo)
)
12.创建客户地址表
字段信息:
客户号customerNo
客户地址cusaddress
Createtablecusaddress(
customerNochar(12)primarykey,
cusaddressvarchar(100)NotNull
)
这里我们保证了实体完整性,参照完整性和用户自定义完整性。
在各个基本表的定义中,我们使主码值均不为空,而且我们还进行了用户自定义的完整性约束,使表中某些值取值不为空。
四、物理结构设计
4.1物理设计任务与目标
为上一阶段的关系模型选取一个最适合的应用要求的物理结构,即确定存取方法和存储结构。
4.2索引存取方法
为了提高让会员搜索商品的速度,对商品建立聚簇索引。
createnonclusteredindexproductNoonproduct
五、数据库的实施
4.1数据库的载入
4.1.1创建数据库shoponline
create databaseshoponline
on
(Name=’shoponline’,
Filename=’f:
\SQL\shoponline.mdf’,
Size=2,
Maxsize=20,
Filegrowth=1)
Logon
(name=’shoponlinelog’,
Filename=’f;\SQL\shoponlinelog.ldf’,
Size=2,
Maxsize=5,
Filegrowth=1)
4.1.2触发器的设计
在修改商品价格的时候,新的商品价格不能超过原来价格的2倍,否则修改不成功,依此设计一个触发器。
触发器设计如下:
/*创建触发器T1,实现注册客户VIP自动升级*/
CreateTriggerT1ONcustomer
Forupdate
As
IFUpdate(ordersum)
Begin
Declare@priceAsnumeric
Select@price=ordersumFrominserted
If@price>=30000
UpdatecustomersetVIP=’3’
Else
If@price>=20000
UpdatecustomersetVIP=’2’
Else
If@price>=10000
UpdatecustomersetVIP=’1’
End
/*创建一个触发器,只允许注册会员在网上提交订单*/
CreateTriggerT2onorder
Forinsert
As
IfNotExists
(select*Frominserted
WherecustomerNoin(selectcustomer.customerNofromcustomer))
Begin
Raiserror(‘提交订单前请先注册!
’,16,1)
RollbackTransaction
End
/*创建一个触发器T3,统计订单金额*/
/*创建一个更新触发器,及时更新订单*/
CreateTriggerupdatesaleitemOnorderForUpdateAs
IfUpdate(quantity)OrUpdate(price)
Begin
Declare@orderNoint,@productNochar(12)
Declarecur_orderCursorFor
SelectorderNo,productNoFromDeleted
Opencur_order
BeginTransaction
Fetchcur_orderinto@orderNo,@productNo
While(@@fetch_status=0)
Begin
Updateorder
Setordersum=ordersum-D.quantity*D.price+I.quantity*I.price
FrominsertedI,deletedD
Whereorder.orderNo=I.orderNoAndI.orderNo=D.orderNo
Andorder.orderNo=@orderNoAndI.productNo=D.productNo
AndI.productNo=@productNo
Fetchcur_orderinto@orderNo,@productNo
End
Committean
Closecur_order
Deallocatecur_order
End
六、总结
6.1课程设计所负责部分
在这次的课程分组中,我主要负责数据库课程设计的系统流程的分析,数据库的物理设计,触发器的设计,数据库语句的编写与调试,并负责数据库课程设计的最终成稿,并积极的参与了组内各个步骤的讨论。
6.2课程设计的学习心得
这次的课程设计分组合作的形式,使得我们组员的发挥个人所长和共同努力之下完成,同时也在相互讨论下取长补短,学习了很多东西的同时也明白了自身的不足,在我所负责的部分在实施中也有不同的挫折,数据库语句调试时出现了许多问题,通过组员间的讨论以及对书本的重温,最终完成了,同时也发现,错误往往出现在不经意间,一个符号的错误可以影响整个语句。
触发器的设计,是我对书本再一次的学习,借鉴并参考了许多的书本知识。
通过这次的数据库课程设计我学习并掌握了很多知识与操作。
并且意识到一个好的软件的设计必须有一个好的需求分析。
这也是我们组内的讨论重点。
历时一个星期的课程设计令我受益匪浅,也对数据库这门学科有了更进一步的认识与熟悉。
完成之后,很有成就感,学到了很多,希望以后还可以有这样的课程设计让我进步。
由于本人能力不足,会使系统出现一些不足之处,例如,网上购物系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能。
希望老师评点批评。
参考书籍:
数据库系统概论(第四版)主编:
数据库系统原理与设计实验教程主编:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 购物 系统 数据库 设计 资料