《数据库网上购物系统设计[研究分析].doc》由会员分享,可在线阅读,更多相关《数据库网上购物系统设计[研究分析].doc(21页珍藏版)》请在三一文库上搜索。
1、 数据库应用课程设计报告网上购物系统数据库设计 学生姓名:*学 号:201*班 级:*指导老师:*老师学 院:*学院提交日期:2014年6月19日数据库应用课程设计评阅评阅项目完成情况得分背景功能需求5%概念设计30%逻辑设计20%物理设计10%数据库实施15%功能实现10%文档质量、设计过程表现10%成绩技术发展目 录前言11.需求分析11.1系统功能背景资料11.2系统功能12.概要结构设计23.逻辑结构设计63.1关系模式设计63.2 关系模式的分析优化64.数据库物理设计85.数据库实施105.1数据库构建105.1.1各数据表说明105.1.2数据库创建115.2 数据库操作116.
2、部分系统功能实现157.总结15前言网络购物的兴起改变了人们的购物观念,也改变了人们的购物需求。每个人的购物清单都遍布全国各地,面对如此庞大的数据流量,网络购物系统应运而生,这个系统主要完成客户在网上购物时填写的订单信息所相关到的业务,并可以对所有的订单经及客户信息进行修改和查询。方便客户和网络商城人员查阅订单信息等。本系统主要建立了基本的需求表并优化,在它们之间建立好必要的联系方便查询和修改等,完成基本功能。1. 需求分析设计本系统模拟客户在网上购物的管理内容,包括查询商品信息、订单信息、客户信息、购买后商品评论等处理情况,系统需要管理的情况如下:1.1系统功能背景资料客户在网上购买商品的管
3、理内容包括: 1) 可随时查询可订商品的详细情况,如商品分类、生产厂商、每个厂商的实际存货量、规定的最低存货量以及商品其他描述,便于客户选订。2) 客户可订购多种所需商品,每种商品可订若干份,交清所需金额后,订购处理即告完成。3) 为便于邮寄,客户需写明如下信息:客户名、EMAIL、姓名、性别、邮政编码、地址等,网店将即时为每一个客户编制唯一代码。4) 商品售出,并且客户拿到后可对商品进行评价,商品所属网店店主可以对每条评论进行查看,一种商品可以有多人进行评论,系统要给每一条评论编号并记录评论内容、评论时间、发表人等。5) 网上商城对每种商品订购人数不限,每个客户可多次订购,所订商品亦可重复。
4、1.2系统功能1).查询可订购商品的详细情况。2)客户通过管理员根据自己的需求选购商品,完成一次订购后需进行结账才能提交订单。3)查询自己的购买情况。4)可对各库表进行插入、修改、删除、查询等基本操作。5)能详细查询某商品的订出情况,并且能统计出某商品总订购数量与总金额。6)实现客户完成一次订购任务后汇总总金额。7)网店可查询客户对商品的评价,并进行回复。2. 概要结构设计通过对局部应用的选择,逐一设计出分E-R图,并对各个分E-R图进行合并,生成初步E-R图,消除不必要的系统冗余,可以得出网上购物系统E-R图。图1 “商品”实体E-R图图2 “客户”实体E-R图图3 “订单”实体E-R图图4
5、 “订单明细”实体E-R图图5 “生产厂商”实体E-R图图6 “生产明细”实体E-R图图7 “评论”实体E-R图网上购物系统E-R图如下: 图8系统E-R图3. 逻辑结构设计3.1关系模式设计根据概念结构的设计,可以将系统E-R图转换为以下关系模式(画横线的为各关系的码):商品(商品号,商品名称,商品分类,厂商名,商品其他描述,单价),外码:厂商号客户(客户号,姓名,EMAIL,客户电话,性别,邮政编码,地址),外码:订单(订单号,客户号,收货地址,订单日期),外码:客户号订单明细(订单号,商品号,数量,商品总价),外码:订单号,商品号 生产厂商(厂商号,厂商名,商品号,),外码:商品号生产明
6、细(厂商号,商品号,实际存货量,最低存货量),外码:厂商号,商品号评论(评论编号,内容,评论时间,客户号),外码:客户号3.2 关系模式的分析优化 1.对以上关系模式进行函数依赖分析l 考察关系模式:商品(商品名称,商品分类,单价,商品其他描述,厂商号)商品号商品名称商品号商品分类商品号单价商品号商品其他描述商品号厂商名商品 它只有一个码:(商品编号)这里没有任何属性对(商品编号)部分依赖或传递依赖,所以此关系模式属于3NF。l 考察关系模式:客户(客户号,姓名,EMAIL,客户电话,性别,邮政编码,地址)客户号姓名客户号 EMAIL客户号客户电话客户号性别客户号邮政编码客户号地址客户 它只有
7、一个码:客户号,这里没有任何属性对客户编码部分依赖或传递依赖,所以此关系模式属于3NF。l 考察关系模式:订单(订单号,客户号,收货地址,订单日期)订单号客户号订单号收货地址订单号订报日期订单 它有一个码:(订单号),这里没有任何属性对(订单号)部分依赖或传递依赖,所以此关系模式属于3NF。l 考察关系模式:订单明细(订单号,商品号,数量,商品总价)(订单号,商品号)数量(订单号,商品号)商品总价订单详情 它有一个码:(订单号,商品号)这里没有任何属性对(订单号,商品号)部分依赖或传递依赖,所以此关系模式属于3NF。l 考察关系模式:生产厂商(厂商号,厂商名,商品号)(厂商号)厂商名(厂商号)
8、商品号厂商 它有一个码:(厂商号),这里没有任何属性对(厂商号)部分依赖或传递依赖,所以此关系模式属于3NF。l 考察关系模式:生产明细(厂商号,商品号,实际存货量,最低存货量)(厂商号,商品号)实际存货量(厂商号,商品号)最低存货量l 考察关系模式:评论(评论编号,内容,评论时间,客户号)(评论编号)内容(评论编号)评论时间(评论编号)客户号2.系统完整性设计商品(商品号,商品名称,商品分类,厂商名,商品其他描述,单价)其中:商品号为主码,商品名称,商品分类,生产厂商,单价约束都为非空,商品其他描述可为空。客户(客户号,姓名,EMAIL,客户电话,性别,邮政编码,地址)其中:客户号为主码;姓
9、名,EMAIL,客户电话,性别,邮政编码,地址约束都为非空。订单(订单号,客户号,收货地址,订单日期)其中:订单号为主码;客户号为外码,参照(客户(客户号);收货地址,订单日期约束都为非空。订单明细(订单号,商品号,数量,商品总价),(订单号,商品号)为主码;订单号和商品号为外码,分别参照(订单(订单号)和(商品(商品号);数量,商品总价约束都为非空。生产厂商(厂商号,厂商名,商品号)其中厂商号为主码;商品号为外码,参照(商品(商品号)厂商名约束为非空。生产明细(厂商号,商品号,实际存货量,最低存货量)其中(厂商号,商品号)为主码;厂商号和商品号为外码,分别参照(生产厂商(厂商号)和(商品(商
10、品号);实际存货和最低存货约束都为非空。评论(评论编号,内容,评论时间,客户号)其中评论编号为主码;客户号为外码,参照(客户(客户号);内容,评论时间,约束都为非空。4. 数据库物理设计表4.1 商品信息表结构 字段名说 明类 型长度可否为空约束ProductID商品号字符型10否主键Productname商品名称字符型20否Unitprice单价数值型否Category商品分类字符型10否Manufacturename厂商名字符型10否外码Other商品其他描述字符型50是表4.2 客户信息表结构 字段名说 明类 型长度可否为空约束CustomerID客户号字符型10否主键Name姓名字符型
11、20否Sex性别字符型8否EmailEMAIL字符型20否Postcode邮政编码字符型10否Phonenumber客户电话字符型20否Address地址字符型50否表4.3 订单信息表结构 字段名说 明类 型长度可否为空约束OrderID订单号字符型10否主键CustomerID客户号字符型20否外键Orderdate订单日期数值型否Taddress收货地址字符型50否表4.5 订单明细信息表结构 字段名说 明类 型长度可否为空约束OrderID订单号字符型10否主键、外键ProductID商品号字符型26否主键、外键quantity数量字符型10否Totalprice总价字符型20否表4.
12、5 生产厂商信息表结构 字段名说 明类 型长度可否为空约束manufactureID厂商号字符型10否主键manufacturename厂商名字符型26否ProductID商品号字符型8否外键表4.6 生产明细信息表结构 字段名说 明类 型长度可否为空约束manufactureID厂商号字符型10否主键、外键ProductID商品号字符型10否主键、外键Pquantity实际存货量字符型10否Lquantity最低存货量字符型10否表4.7 评论信息表结构 字段名说 明类 型长度可否为空约束CommentID评论号字符型10否主键Comment内容字符型150否Commentdate评论时间数
13、值型否CustomerID客户号字符型10否外键5. 数据库实施5.1数据库构建5.1.1各数据表说明编号数据表名称类 型内容1商品主表记录报刊信息2客户主表记录客户信息3订单主表记录订单基本信息4订单明细辅助表记录订单详细信息5生产厂商辅助表记录生产厂商基本信息6生产明细辅助表记录商品在厂的存货信息7评论主表记录评论信息5.1.2数据库创建在SQL SERVER 2005中创建网上购物系统数据库,在数据库中创建商品,客户,订单,订单明细,生产厂商,生产明细,评论数据表及加入相关约束。创建了满足管理需求的视图,写出相关业务操作所需的查询语句等。操作代码详见“20125973_孔维星.sql”文
14、件。5.2 数据库操作-创建数据库shoppingonlinecreate database shoppingonlineon( name=shoppingonline, filename=c:shoppingonline_data.mdf, size=5, maxsize=10, filegrowth=10% )log on( name=shoppingonline_log, filename=c:shoppingonline_log.ldf, size=3, maxsize=5, filegrowth=1 )go-创建商品信息表ProductInfocreate table Product
15、Info(Productid nchar(10) primary key,Productname nvarchar(20) not null,Unitprice money not null,category nchar(10) not null,manufacturename nchar(10) not null,other nvarchar(20) not null,) go-创建客户信息表customerinfocreate table customerinfo(customerid nchar(10) primary key,name nvarchar(20) not null,sex
16、 nchar(1) not null,email nchar(20) not null,postcode nchar(10) not null,phonenumber nchar(11) not null,address nvarchar(50) not null) go-创建订单信息表orderinfocreate table orderinfo(orderid nchar(10) primary key, customerid nchar(10) not null,orderdate datetime not null,taddress nvarchar(50) not null,fore
17、ign key (customerid) references customerinfo(customerid)go-创建订单明细信息表orderdetailinfocreate table orderdetailinfo(orderid nchar(10) not null,productid nchar(10) not null,quantity nchar(10) not null,totalprice nchar(20) not null,primary key (orderid,productid),foreign key (orderid) references orderinfo
18、(orderid),foreign key (productid) references productinfo(productid)go-创建生产厂商信息表manufactureinfocreate table manufactureinfo(manufactureid nchar(10) not null primary key ,manufacturename nchar(26) not null,productid nchar(10) not null,foreign key (productid) references productinfo(productid)go-创建生产明细信
19、息表producedetailinfocreate table producedetailinfo(manufactureid nchar(10) not null,productid nchar(10) not null,Pquantity nchar(10) not null,lquantity nchar(10) not null,primary key(manufactureid,productid),foreign key (manufactureid) references manufactureinfo (manufactureid),foreign key (productid
20、) references productinfo(productid)go-创建评论信息表commentinfocreate table commentinfo(commentid nchar(10) not null primary key ,comment nchar(3) not null,commentdate datetime not null,customerid nchar(10) not null,foreign key (customerid) references customerinfo(customerid)go-插入数据-商品信息表productinfoinsert
21、into productinfo values(0000001,铅笔,2,黑色,一厂,成绵路号)insert into productinfo values(0000002,毛笔,8,墨色,二厂,长虹大道号)insert into productinfo values(0000003,圆珠笔,5,蓝色,三厂,仙人路号)-客户信息表customerinfoinsert into customerinfo values(0000011,王强,男,,432645,18388886677,成都双流)insert into customerinfo values(0000022,吴霞,女,,564656
22、,15823233334,湖北武汉)insert into customerinfo values(0000033,曾强,男,,582656,13689892130,湖南长沙)go -订单信息表orderinfoinsert into orderinfo values(0000111,0000011,2014-02-02,成都双流)insert into orderinfo values(0000222,0000022,2014-03-03,湖北武汉)insert into orderinfo values(0000333,0000033,2014-04-04,湖南长沙)go-订单明细信息表o
23、rderdetailinfoinsert into orderdetailinfo values(0000111,0000001,100,200)insert into orderdetailinfo values(0000222,0000002,50,400)insert into orderdetailinfo values(0000333,0000003,100,500)go-生产厂商信息表manufactureinfoinsert into manufactureinfo values(0001111,一厂,0000001) insert into manufactureinfo va
24、lues(0002222,二厂,0000002)insert into manufactureinfo values(0003333,三厂,0000003)go-生产明细信息表producedetailinfoinsert into producedetailinfo values(0001111,0000001,9000,900) insert into producedetailinfo values(0002222,0000002,8000,800) insert into producedetailinfo values(0003333,0000003,7000,700)go-评论信息
25、表commentinfoinsert into commentinfo values(0011111,优,2014-04-04,0000011) insert into commentinfo values(0022222,良,2014-05-05,0000022) insert into commentinfo values(0033333,差,2014-06-06,0000033)go-简单查询-查询全部商品的名称和单价select productname,unitprice from dbo.ProductInfo-查询全部客户的编号、姓名、地址、联系电话select customeri
26、d,name,address,phonenumber from dbo.customerinfo-查询全部订单的编号和订单日期select orderid,orderdate from dbo.orderinfo-查询下过订单的客户的姓名select name from dbo.customerinfo join dbo.orderinfo on dbo.customerinfo.customerid=dbo.orderinfo.customerid-查询订单编号为0000111的客户号、客户名、性别select dbo.customerinfo.customerid,name,sex fro
27、m dbo.customerinfo join dbo.orderinfo on dbo.customerinfo.customerid=dbo.orderinfo.customerid where orderid=00001116. 部分系统功能实现7. 总结之前选择网上购物这个题目的时候,觉得这个题目应该是相对比较容易的,但是实际起来并非如此。在分析实体的时候,本来以为只需要题目给出的四个实体就可以了,但是在画E-R图的时候发现有冗余,所以我又添加了“生产明细”和“订单明细”两个表,另外,为了更细化系统,又添加了一个“生产厂商”表。不仅如此,在画E-R图的时候,我也犯了一些错误,比如给属性添加属性,这是对知识掌握不牢固的体现,提醒我要回去好好复习了。E-R图画出来之后就容易了,因为脉络已经基本清晰了,但是在确定字符长度的时候还是拿不准到底该写多少,在参考书上的内容之后才确定下来。由于VB已经学习了有一年时间了,有点生疏,在用VB做部分系统功能实现的时候,根据实验指导书一步一步走,最终还是做了出来。通过这次的实践,我对数据库的学习有了进一步的巩固,但是回去之后还得再看一下书才可以,还有VB也得再复习复习了。另外,通过这次实践,也让我第一次把理论联系到了实际,虽然这个系统并不太完善,但是只要今后多练习,我相信还是能够掌握这门学科的。技术发展
链接地址:https://www.31doc.com/p-9394175.html