实验7数据库设计_第1页
实验7数据库设计_第2页
实验7数据库设计_第3页
实验7数据库设计_第4页
实验7数据库设计_第5页
免费预览已结束,剩余8页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验 7 数据库设计 (6 学时)1 .实验目的与要求了解数据库设计的重要性和数据库设计在信息系统开发和建设中的核心地位。掌握数据库 设计方法和步骤。2 .实验任务在某个RDBMS产品上,选择合适的应用系统开发工具为某个部门或单位开发一个数据库应用系统。通过实践,掌握本章介绍的数据库设计方法,同时培养团队合作精神。要求56位同学组成一个开发小组,每位同学承担不同角色(例如:项目管理员、DBA、系统分析员、系统设计员、系统开发员、系统测试员)。具体要求:给出数据库设计各个阶段的详细设计报告;写出系统的主要功能和使用说明; 提交运行的系统;写出收获和体会,包括已解决和尚未解决的问题,进一步完善的设

2、想与建议; 每个小组进行20分钟的报告和答辩,讲解设计方案,演示系统运行,汇报分工与合作情况。网上书店数据库设计一、?设计意义?伴随着信息化的发展,计算机走进了千家万户,人们的交流变得方便,方便了网民的生活!此外,伴随着卓越、当当、淘宝等网络购物平台的兴起,网络购物也被网民认可,首先,网上书 店方便了网民的生活,更加便捷地、足不出户便可买到心仪的书籍;其次,网上购书减少了许多 中间销售代理,因此价格会比较低,对广大网民的好处是非常明显的;再者,网上书店是信息化购物,基本上所有操作都是通过计算机程序自动完成的,因此大大降低了劳力的消耗;最后,电子商务与出版发行业的结合使发展网上书店及研究网上书店

3、具有双重意义,充分结合互联网销售的特点探索图书发行的新渠道和新模式,是对电子商务科学的充实和补充,更是对出版发行业发行渠道和市场的开拓和创新。?数据库对于一个系统的意义是相当重要的,它关系到整个项目的整体流程,整个网站的后期维护便捷与否,从长远利益来看,数据库的设计是至关重要的。二、????需求分析?2.1系统功能分析?本实验将设计出一个网上书店数据库,其要求简要如下:(1)系统用户由两类组成:管理员和客户。(2)管理员负责后台管理:? 图书信息的维护(增、删、改),图书要进行分类管理;? 客户信息的维护;?订单的确认和删除。(3)读者可以查询图书的基本信息,可以维护自己的信息,可以进行网上订

4、书,可以查询订单处理的情况。2.2数据需求?系统共有七个实体:客户、管理员、图书类型、图书、订单、详细订单、图书评价。(1)会员的属性:自动编号Customerld、客户名、客户密码、真实姓名、性别、客户电话、E-mail、地址、注册时间(2)管理员的属性:自动编号Adminld、管理员名称、管理员邮箱、密码(3)图书类型的属性:自动编号BookTypeId、类别名称(4)图书的属性:自动编号 BookId、图书名称、图书类型、出版社、出版日期、图书作者、图书定价、图书简介、图书库存量、图书成交量(5)订单的属性:自动编号 OrderId、客户编号、下单日期、总订购数量、送货方式、支付方式、收

5、货人姓名、收货地址、收货人联系方式、总卖出价(6)详细订单属性:自动编号Id、详细订单 OrderDetailId 、订单号 OrderId、图书编号、订购数量、发货状态、收货状态、卖出总价(7)图书评价的属性:自动编号CommentId、图书编号、评论客户编号、评论客户名、评论时间、评论内容、审核标志详细订单是针对每个商品进行下单,通过详细订单不仅可以产看商品信息而且可以看出每个商品的收发货状态,订单包括多个详细订单此外,由以往的购物经验可知,一般买书的时候都会有一个临时购物车,客户可以把自己想买的书本放入购物车,但是购物车中的商品只是放入了购物车还没有下单(8)临时购物车:客户编号、图书编

6、号、订购数量、总价,是否付款实体间的联系:通过以上分析可知,实体之间的联系有:客户与客户评论之间是一对多关系(1: n)书籍类别与书籍之间是一对多关系(1 : n)用户与订单之间是一对多关系(1 : n)订单与详细订单之间是一对多关系(1:n )客户与订单之间是一对多关系(1:n )三、E-R图3.1实体图图书类别号类别名称图3-2管理员信息图书定价图3-3图书信息图3-4客户信息出版日期购物车临时订购信息图书成交量图书库存量客户编号是否付款客户密码客户名客户电话真实姓名订购数量地址出版社客户编号图书类型总价注册时间图书名称图书编号图书作者图书编号图书简介性别E-mail图3-5购物车临时订购

7、信息图3-6订单信息图3-7订单详细信息图3-8图书评论信息3.2实体关系E-R图图3-9网上书店顶层 E-R图四、??逻辑结构4.1 ?逻辑转换?根据3.2节中的E-R图可以将系统中的概念模型转换为具体的表(即关系)结构,共分为8个关系,详细信息如下所示:客户(会员)(客户编号,客户名,客户密码,真实姓名,性别,客户电话,E-mail ,地址,注册时间)管理员(管理员编号,管理员名称,管理员邮箱,密码) 图书类型(图书类型编号,类别名称)表2图书类型信息表图书(图书编号,图书名称,图书类型,出版社,出版日期,图书作者,图书定价,图书简介,图书库存量,图书成交量)购物车零时订购信息(客户编号,

8、图书编号,订购数量,总价,是否付款)订单(订单号,客户编号,下单日期,总订购数量,送货方式,支付方式,收货人姓名,收货地址,收货人联系方式,总卖出价)详细订单(详细订单编号,订单号,图书编号,订购数量,发货状态,收货状态,卖出总价)图书评价(图书评价编号,图书编号,评论客户编号,评论客户名,评论时间、评论内容,审核标志)4.2 ?细化表结构?为方便,根据上述文字描述, 用英文简写为表和列取名,确定列的数据类型及必要的约束规则,给出如下所示数据库表的基本结构及说明:(1) ?客户信息表 tb_customerinfo列名说明数据类型约束Customerld客户编号int主码(自增字段)Custo

9、merName客户名称varchar(20)主码 not nullCustomerPwd客户密码varchar(20)not nullCustomertruename真实姓名varchar(20)not nullCustomerSex性别varchar(2)not null, 取“男”或“女”CustomerTel客户电话varchar(20)not nullCustomerEmailE-mailvarchar(20)not nullCustomerAddr地址varchar(20)not nullCustomerRegTime注册时间datetimenot null表1客户信息表(2) ?图

10、书类型信息表 tb_booktypeinfo列名说明数据类型约束BookTypeId图书类型编号int主码(自增字段)BookTypeName类别名称varchar(50)not null(3) ?图书信息表 tb_bookinfo列名说明数据类型约束BookId图书编号int主码(自增字段)BookTypeld图书类型intnotnull,弓 1用tb_booktypeinfo 的夕卜码BookName图书名varchar(20)not nullBookPress出版社varchar(20)not nullBookPubDate出版日期datetimenot nullBookAuthor图书

11、作者varchar(10)not nullBookPrice图书定价moneynot nullBookOutline图书简介varchar(200)not nullBookDealmount成交量intnot nullBookStoremount图书库存量intnot null表3图书信息表(4) ?管理员信息表tb_manager列名说明数据类型约束AdminId管理员编号int主码(自增字段)AdminName管理员名称varchar(10)not nullAdminPwd密码varchar(20)not null表4管理员信息表(5) ?购物车临时订购信息tb_shopbook列名说明数

12、据类型约束CustomerId客户编号int主码(自增字段)BookId图书编号int主码,引用tb_bookinfo 的外码ordermount订购数量intnot nullprice总价moneynot nullispay是否付款varchar(10)not null,默认为未付款,取“未付款”或“已付款”表5购物车临时订购信息表(6) ?订单信息表tb_order列名说明数据类型约束Orderld订单编号varchar(20)主码Customerld客户编号intnotnull,引用tb_customerinfo 的夕卜码Orderdate下单日期datetimenot nullOrde

13、rmount总订购数量intnot nullpostmethod送货方式varchar(100)not nullpaymethod支付方式varchar(100)not nullrecevername收货人姓名varchar(10)not nullreceveraddr收货地址varchar(20)not nullrecevertel收货人电话号码varchar(10)not nulltotalprice总卖出价moneynot null表6订单信息表(7) ?订单详细彳t息表 tb_orderdetail列名说明数据类型约束OrderDetailId详细订单编号int主码OrderId订单号

14、varchar(20)not null, 引用 tb_order 的外码BookId图书编号intnot nullordermount订购数量intnot nullpoststatus发货状态varchar(10)not null ,默认为未发货,取“未发货”或“已发货”Recevstatus收货状态varchar(10)not null ,默认为未收货,取“未收货”或“已收货”sigletotalprice卖出总价moneynot null表7订单详细信息表(8) ?图书评价信息表 tb_comment列名说明数据类型约束CommentId图书评价编号int主码(自增字段)BookId图书编

15、号intnot null, 弓I用 tb_bookinfo的外码CustomerId评论客户编号intnotnull,引 用tb_customerinfo 的夕卜码Customername评论客户名varchar(20)not nullCommentdate评论时间datetimenot nullCommentcontent评论内容varchar(100)not nullCommentflag审核标志varchar(10)not null表8图书评价信息表五、?数据库实施?本章节主要包含创建表、添加数据和创建必要的触发器、存储过程等内容。5.1 创建约束条件外键关联关系:(1)为图书信息表添加

16、图书分类表的外键关联关系alter table tb_bookinfoadd constraint FK_TB_BOOKI_REFERENCE_TB_BOOKT foreign key (BookTypeld ) references tb_booktypeinfo( BookTypeId )()为图书评论表添加图书表的外键关联关系alter table tb_commentadd constraint FK_TB_COMME_REFERENCE_TB_BOOKI foreign key ( BookId ) references tb_bookinfo ( BookId )()为图书评论表添

17、加客户表的外键关联关系alter table tb_commentadd constraint FK_TB_COMME_REFERENCE_TB_CUSTO foreign key(CustomerId ) references tb_customerinfo(CustomerId )()为订单表添加用户的外键关联关系alter table tb_orderadd constraint FK_TB_ORDER_REFERENCE_TB_CUSTO foreign key (CustomerId ) references tb_customerinfo(CustomerId )()为详细订单表添

18、加订单的外键关联关系 alter table tb_orderdetailkey (OrderId )key ( BookId )key ( BookId )key (CustomerId )add constraint FK TB ORDER REFERENCE TB ORDER foreign references tb_order (OrderId )()添加详细订单表与书本指尖的外键关联关系alter table tb_orderdetailadd constraint FK TB ORDER REFERENCE TB BOOKI foreign references tb_booki

19、nfo ( BookId )()购物车与书本制作间的外键关联关系alter table tb_shopbookadd constraint FK TB SHOPB REFERENCE TB BOOKI foreign references tb_bookinfo ( BookId )()购物车与用户的外键关系alter table tb_shopbookadd constraint FK TB SHOPB REFERENCE TB CUSTO foreign references tb_customerinfo( CustomerId )5.2 添加数据(注意添加的先后次序)对于存在外键关联关

20、系的表,注意添加数据的时候要先添加被关联的表的信息5.3 创建视图(需要经常进行的操作)1定义一个视图查看根据客户的姓名查询其购物车的信息 create view shopping_carasselect CustomerName , BookName , ordermount , price from tb_shopbook , tb_customerinfowhere tb_bookinfo . BookId = tb_shopbook . BookId and tb_shopbook . CustomerId = tb_customerinfo . CustomerId 2定义一个视图客

21、户可以根据其姓名查询所买到的图书的详细信息 create view book_info asselectCustomerName , BookName , BookTypeId , BookPress , BookPubDate , BookAuthor , Boo kPrice , BookOutline from tb_bookinfo , tb_customerinfo where tb_customerinfo . CustomerId = tb_orderdetail . CustomerId andBookId = (select BookId from tb_orderdetai

22、lwhere Recevstatus ='已收货)5.4?创建必要触发器(1)?定义一个触发器,其基本功能是在tb_bookinfo表中修改库存数量时,检查数量是否小于0,如果是提示库存不足,库存为空。其具体代码如下所示:create trigger trig1 on tb_bookinfo for update as if update ( BookStoremount ) begin declare mount int select mount = BookStoremount from inserted if (mount<0) begin print 库存不足,库存为空

23、rollbackend end?定义一个触发器,其基本功能是在填写订单和详细订单的时候相应的总价被计算处理填入 相应的位置。其具体代码如下所示:create trigger trig2 on tb_orderdetail for insert , updateas begin declare mount int , price money , sigleprice money , totalprice money set mount =( select ordermount from inserted ) set totalprice =( select totalprice from tb_

24、order , inserted where tb_order . orderid =inserted . orderid )set price =( select bookprice from tb_bookinfo , inserted where tb_bookinfo . bookid =inserted . bookid )set sigleprice =mount * price update tb_orderdetailset sigletotalprice=sigleprice whereorderdetailid =( select orderdetailidfrom ins

25、erted )update tb_order set totalprice =( totalprice +sigleprice ) where orderid =( select orderid from inserted ) end5.5 ?创建必要存储过程1)建立存储过程customer_book,功能是客户在网站前台根据客户名称来查询买到的图书详细情况,其实现代码如下所示: create procedure customer_book customername varchar ( 20), bookname varchar ( 20) out , price money out , ordermountint out ,totalpricemoney out ,asselectbookname =tb_bookinfo . BookN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论