
设计报告
网络购物信息系统数据库设计
学生姓名:xxx
学 号:xxx
班 级:xxx
指导老师:xxx
学 院:xxxxx
提交日期:xxxxx年xx月xx日
目 录
前言 1
1. 需求分析 1
1.1系统功能背景资料 1
1.2系统功能 1
2. 概要结构设计 2
3. 逻辑结构设计 4
3.1关系模式设计 4
3.2 关系模式的分析优化 5
4. 数据库物理设计 7
5. 数据库实施 10
5.1数据库构建 10
5.1.1各数据表说明 10
5.1.2数据库创建 10
5.2 数据库操作 10
6.部分系统功能实现 10
总结 11
前言
随着信息化时代的普及以及现在电子商务的发展,在网上购买商品的人越来越多,创建一个正确而高效的网络购物系统是非常必要的。Internet的发展迅速,使得运用数据库系统管理数据得以实现,可以高效安全的管理商品信息以及购物记录等详细数据。这个网络购物管理系统可以为商家提供顾客的基本信息,为顾客提供商品的基本信息,记录各个商品的交易信息。本系统主要建立了基本的需求表并优化,将它们之间建立好必要的联系方便查询和修改等,完成基本功能。
1.需求分析
设计本系统模拟客户在网上购买物品的管理内容,包括查询客户信息、商品信息、购买物品的明细、顾客在购买物品后做出的评论等的处理情况,系统需要管理的情况如下:
1.1系统功能背景资料
客户在邮局订购报纸的管理内容包括:
1) 每种商品包含商品号(唯一)、商品分类、生产厂商、每个厂商的实际存货量、规定的最低存货量以及商品其他描述。
2) 每个客户包括客户号(唯一)、客户名、EMAIL、姓名、性别、邮政编码、地址等;
3) 每个订单有订单号、客户号、收货地址、订单日期,每个订单中可包含多种商品,订单中的每一件商品都有对应的明细,包括商品号、单价、数量。
1.2系统功能
1).用户可随时查询商品的详细情况,如商品名,商品分类,单价,厂商号等供客户选购
2).商家可以查询顾客的基本资料如姓名、性别、地址、联系方式、邮编、邮箱等
3).客户可以给所购的每件商品发表评论,系统要给每一条评论编号并记录评论内容、评论时间、发表人等;
2.概要结构设计
通过对局部应用的选择,逐一设计出分E-R图,并对各个分E-R图进行合并,生成初步E-R图,消除不必要的系统冗余,可以得出网上购物管理系统E-R图。
2.1 商品 E-R图
2.2 客户 E-R图
2.3 供应商 E-R图
2.4 生产明细E-R图
2.5 订单 E-R图
2.6 订单明细 E-R图
2.7 评论 E-R图
2.8 系统 E-R图
3.逻辑结构设计
3.1关系模式设计
根据概念结构的设计,可以将系统E-R图转换为以下关系模式(画横线的为各关系的码):
商品(商品号,商品名,商品分类,单价,厂商号) 外码:厂商号
客户(客户号,客户名,性别,联系方式,地址,邮编,邮箱) 外码:
厂商(厂商号,厂商名, 其他描述) 外码:
生产明细(厂商号, 商品号 ,实际库存,最低库存 ) 外码:厂商号, 商品号
订单(订单号,客户号,收货地址, 订单日期, 备注 ) 外码:客户号
订单明细(订单号,商品号,数量 ) 外码:订单号,商品号
评论(评论号,客户号,商品号,评论内容,评论时间 ) 外码:客户号,商品号
用户(用户账号,用户密码,用户名)
3.2 关系模式的分析优化
1.对以上关系模式进行函数依赖分析
●考察关系模式:商品(商品号,商品名,商品分类,单价,厂商号)
商品号—>商品名
商品号—>商品分类
商品号—>单价
商品号—>厂商号
它只有一个码:商品号,这里没有任何属性对商品号部分依赖或传递依赖,所以此关系模式属于3NF。
●考察关系模式:客户(客户号,客户名,性别,联系方式,地址,邮编,邮箱)
客户号—>客户名
客户号—>性别
客户号—>联系方式
客户号—>地址
客户号—>邮编
客户号—>邮箱
它只有一个码:客户号,这里没有任何属性对客户号部分依赖或传递依赖,所以此关系模式属于3NF。
●考察关系模式:厂商(厂商号,厂商名, 其他描述)
厂商号—>厂商名
厂商号—>其他描述
它只有一个码:厂商号,这里没有任何属性对厂商号部分依赖或传递依赖,所以此关系模式属于3NF。
●考察关系模式:生产明细(厂商号, 商品号 ,实际库存,最低库存 )
(厂商号,商品)—>实际库存
(厂商号,商品)—>最低库存
生产明细 它有两个码:(厂商号,商品),这里没有任何属性对(厂商号,商品)部分依赖或传递依赖,所以此关系模式属于3NF。
●考察关系模式:订单(订单号,客户号,收货地址, 订单日期, 备注 )
订单号—>客户号
订单号—>收货地址
订单号—>订单日期
订单号—>备注
它只有一个码:订单号,这里没有任何属性对订单号部分依赖或传递依赖,所以此关系模式属于3NF。
●考察关系模式:订单明细(订单号,商品号,数量 )
(订单号,商品号)—>数量
它有两个码:(订单号,商品号)这里没有任何属性对(订单号,商品号)部分依赖或传递依赖,所以此关系模式属于3NF。
●考察关系模式:评论(评论号,客户号,商品号,评论内容,评论时间 ),
评论号—>客户号
评论号—>商品号
评论号—>评论时间
评论号—>评论内容
购买 它有一个码:评论号,这里没有任何属性对评论号部分依赖或传递依赖,所以此关系模式属于3NF。
●考察关系模式:用户(用户账号,用户密码,用户名),
用户账号—>用户密码
用户账号—>用户名
2.系统完整性设计
商品(商品号,商品名,商品分类,单价,厂商号)其中:商品号为主码,厂商号为外码,商品名,商品分类,单价,厂商号约束都为非空
客户(客户号,客户名,性别,联系方式,地址,邮编,邮箱)其中:客户号为主码,客户名,性别,联系方式,地址,邮编,邮箱约束都为非空
厂商(厂商号,厂商名, 其他描述) 其中: 厂商号为主码,厂商名约束为非空,其他描述可以为空
生产明细(厂商号, 商品号 ,实际库存,最低库存 )其中:(厂商号,商品号)为主码,厂商号, 商品号为外码,实际库存,最低库存约束都为非空
订单(订单号,客户号,收货地址, 订单日期, 备注 ) 其中:订单号为主码,客户号为外码,收货地址, 订单日期约束都为非空,备注可以为空
订单明细(订单号,商品号,数量 )其中:(订单号,商品号)主码,订单号,商品号为外码,数量约束为非空
评论(评论号,客户号,商品号,评论内容,评论时间 )其中:评论号为主码,客户号,商品号为外码,评论内容,评论时间约束为非空
用户(用户账号,用户密码,用户名)其中:用户账号为主码,用户密码、用户名的约束条件都为非空
4.数据库物理设计
表4.1 商品信息表结构
| 字段名 | 说 明 | 类 型 | 长度 | 可否为空 | 约束 |
| Gid | 商品号 | 字符型 | 5 | 否 | 主键 |
| Gname | 商品名 | 字符型 | 20 | 否 | |
| Gpart | 分类 | 字符型 | 10 | 否 | |
| Price | 单价 | 货币型 | 否 | ||
| Fid | 厂商号 | 字符型 | 5 | 否 | 外码 |
表4.2 客户信息表结构
| 字段名 | 说 明 | 类 型 | 长度 | 可否为空 | 约束 |
| cid | 客户号 | 字符型 | 10 | 否 | 主键 |
| Cname | 客户名 | 字符型 | 8 | 否 | |
| Sex | 性别 | 字符型 | 2 | 否 | 取值为“男”or“女” |
| Tel | 联系方式 | 字符型 | 11 | 否 | |
| Address | 地址 | 字符型 | 30 | 否 | |
| Postcode | 邮编 | 字符型 | 8 | 否 | |
| 邮箱 | 字符型 | 20 | 是 |
表4.3 厂商信息表结构
| 字段名 | 说 明 | 类 型 | 长度 | 可否为空 | 约束 |
| Fid | 厂商号 | 字符型 | 5 | 否 | 主键 |
| Fname | 厂商名 | 字符型 | 30 | 否 | |
| fnote | 其他描述 | 字符型 | 100 | 是 |
表4.4 生产明细表结构
| 字段名 | 说 明 | 类 型 | 长度 | 可否为空 | 约束 |
| Fid | 厂商号 | 字符型 | 5 | 否 | 主键,引用厂商表外码 |
| Gid | 商品号 | 字符型 | 5 | 否 | 主键,引用商品表外码 |
| Rstock | 实际库存 | 整型 | 否 | >0 | |
| lstock | 最低库存 | 整型 | 否 | >0 |
表4.5 订单表结构
| 字段名 | 说 明 | 类 型 | 长度 | 可否为空 | 约束 |
| Oid | 订单号 | 字符型 | 5 | 否 | 主键 |
| cid | 客户号 | 字符型 | 5 | 否 | 外码 |
| Oadress | 收货地址 | 字符型 | 40 | 否 | |
| Date | 订单日期 | 日期时间型 | 否 | ||
| onote | 备注 | 字符型 | 100 | 是 |
表4.6 订单明细表结构
| 字段名 | 说 明 | 类 型 | 长度 | 可否为空 | 约束 |
| Oid | 订单号 | 字符型 | 5 | 否 | 主键,外码 |
| gid | 商品号 | 字符型 | 5 | 否 | 主键,外码 |
| Number | 数量 | 字符型 | 10 | 否 |
表4.7 评论表结构
| 字段名 | 说 明 | 类 型 | 长度 | 可否为空 | 约束 | ||
| Did | 评论号 | 字符型 | 5 | 否 | 主键 | ||
| cid | 客户号 | 字符型 | 5 | 否 | 外码 | ||
| gid | 商品号 | 字符型 | 5 | 否 | 外码 | ||
| comment | 评论内容 | 字符型 | 200 | 否 | |||
| time | 订单日期 | 日期时间型 | 否 | ||||
表4.8 用户表结构
| 字段名 | 说 明 | 类 型 | 长度 | 可否为空 | 约束 |
| uid | 用户账号 | 字符型 | 5 | 否 | 主键 |
| upass | 用户密码 | 字符型 | 6 | 否 | |
| uname | 用户名 | 字符型 | 20 | 否 |
5.1数据库构建
5.1.1各数据表说明
| 编号 | 数据表名称 | 类 型 | 内容 |
| 1 | 商品 | 主表 | 记录商品信息 |
| 2 | 客户 | 主表 | 记录客户信息 |
| 3 | 厂商 | 主表 | 记录厂商基本信息 |
| 4 | 生产明细 | 辅助表 | 记录商品存量信息 |
| 5 | 订单 | 主表 | 记录订单基本信息 |
| 6 | 订单明细 | 辅助表 | 记录订单详细信息 |
| 7 | 评论 | 主表 | 记录评论信息 |
| 8 | 用户 | 主表 | 记录用户信息 |
在SQL SERVER 2005中创建网络购物系统数据库,在数据库中创建订单表,
生产明细表,厂商信息表,客户信息表,商品信息表, 订单明细表,评论表,及加入相关约束。创建了满足管理需求的视图,写出相关业务操作所需的查询语句等。操作代码详见“数据库课程设计.sql”文件。
5.2 数据库操作
--查询用户名和密码
select * from dbo.users
--查询产品单价、总量及评论
select gname,price,rstock,comment from discuss a
join goods b on a.gid=b.gid
join product c on a.gid=c.gid
6.部分系统功能实现
7.总结
最开始学习数据库的时候,一直感觉有些东西总是弄不明白,半懂半不懂,似是而非的,一看看答案就恍然大悟,原来这样啊,看书的时候也感觉自己都懂了,可是自己做着的时候不是做错就是做不出来。但是通过这次的课程设计实验,以前一些似是而非的东西现在弄懂了,不仅巩固和加深对关系型数据库系统的基本概念、基本理论的理解,对数据库实现技术的掌握也更加熟悉了。
虽然通过这个实验学会、掌握了很多东西。但是在我觉得我在这方面的学习上还有很多的问题。
现在数据库学的还行,VB很烂,很多东西都不知道要怎么做。本来以前学的时候也没太认真,后来也完全没有用过,忘得都基本差不多了。跟着实验指导书做,依葫芦画瓢可以做出来,但是本质的原理和知识却没有弄清楚。所以稍微变换一下就不知道怎么做了。本来我打算在VB中实现一个登录功能的设计的,但做了半下午还是没有做出来,目前我最高的水平就只知道怎样输入一个数据让它在其他文本框中显示出其他对应的数据,但是这种要输入两个数据,并且还要验证密码是否正确的功能完全不知道要怎样做。
独自完成一个课程设计的感觉很不错,虽然最开始想要完成的功能有些没有实现,但是通过这次课程设计把以前那些模糊的知识概念全都理出了一个清晰的思路,没有那没混乱了,感觉开始慢慢形成了一个体系。但是还有很多东西我不知道或不清楚,以后还需要认真的学习和探索。
