
一、设计目的
针对具体的应用需求,运用数据库原理所学知识,设计一个数据库应用系统。培养学生综合利用数据库知识解决实际问题的能力。
二、设计内容要求
●根据问题的需求建立合理的E-R模型。
●将E-R模型转换成逻辑关系表。
●对逻辑关系进行规范化分解,要求所有关系符合3NF或BCNF。
●创建数据库并建立数据表。
要求考虑数据库完整性约束(实体完整性,参考完整性,自定义完整性,触发器)。
●根据具体题目要求实现T-SQL驱动批处理程序、函数及存储过程设计。
●实验环境 MS SQLSERVER2005及以上版本
●完成设计报告
三、题目分配
学号除5,余1做第1题,余2做第2题,余3做第3题,余4做第4题,余0做第5题
四、课程设计报告
1、格式要求:
(1)一级标题(三号、黑体、居中);
(2)二级标题(四号、黑体、居左);
(3)三级及三级以下标题(小四号、宋体、右缩进二个汉字);
(4)正文(五号、宋体)
(5)利用Visio绘制E_R图表。
2、文档结构:
(1)任务要求
(2)概念结构设计(画出E_R图)
(3)逻辑结构设计(给出转换后的关系模型)
(4)按照题目要求,解决每个问题
(5)总结
题目4:网上购物管理系统
1. 设计内容描述
某网店准备开发网上购物系统,每件商品要求展示物品编号、名称、产地、单价、折扣等信息。商品主要对注册客户销售,销售方法采用购物车方式,客户购买商品时首先创建购物车,然后把选购的商品放入购物车。每个购物车实体应该包括:购物车编号、客户编号、创建日期、付款状态、总价等信息,购物车内产品信息包括购物车编号、产品编号、数量、单价、金额。在购物车付款后写入销售单表和明细表。按网店需求还需提供销售查询和统计功能。
2. 系统基本功能要求
●商品明细录入(存储过程完成,返回0,成功,-1 失败)。
●客户信息注册(存储过程完成,返回0,成功,-1 失败)。
●创建购物车(存储过程完成,返回0,成功,-1 失败)。
输入:客户编号。
输出:-1 失败,购物车编号>0。
●添加商品到购物车。
输入:购物车编号,商品编号,数量
输出:0 成功,-1失败 (购物车不存在)
●从购物车中删除商品。
输入:购物车编号,商品编号。
输出:0 成功,-1失败 (购物车不存在或商品不存在)
●修改购物车商品数量。
输入:购物车编号,商品编号,数量。
输出:0 成功,-1失败 (购物车不存在或商品不存在)
●删除购物车。
输入:购物车编号。
输出:0 成功,-1失败 (购物车不存在)
●购物车提交处理。编写触发器将购买信息保存到历史记录中。
输入:购物车编号。
输出:0 成功,-1失败 (购物车不存在)
●查询商品销售日结。编写函数返回指定日期销售的产品编号,产品名,销售总数量和销售总金额。
●客户购买商品查询。
输入: 客户编号。
输出:
客户编号:12 客户名称:丽丽 注册日期:2014-01-09
销售单号 产品编号 产品 单价 数量 总价 日期
--------------------------------------------------------------------------------------------------
10909 p2323 帽子 12 1 12 2014-01-10
10909 x2933 皮鞋 100 2 200 2014-01-10
10919 m2333 手套 20 4 40 2014-08-09
……………………….
商品销售情况统计。
输入:起始日期,截至日期
输出:
商品销售信息表
从 2014-01-01 到 2014-10-31
商品编号 商品名称 数量 合计金额
P0手表 120 120000
P0皮鞋 500 78000
.。。。。。。。。。。。。。。。。。。。。
合计:79999 元
●设计T-SQL批处理驱动程序测试你的程序。
1.创建客户表
字段信息: 客户号 customerNo
密码 password
姓名 customerName
类型号 typeNo
性别 sex
单位 company
电子信箱 email
身份证号 ID
VIP等级 VIP
Create table customer(
customerNo char(12) primany key,
password varchar(18) Not Null,
customerName varchar(12) Not Null,
typeNo char(8) Not Null,
sex char(1) Check(sex In(‘M’,‘F’)
company varchar(20) Not Null,
email varchar(50) Not Null,
ID varchar(18) Not Null,
VIP char(1)
)
2.创建VIP会员表
字段信息: 会员等级 VIP
会员折扣 discount
Create table VIP(
VIP char(1) primany key,
Discount float Not Null,
)
3.创建商品表
字段信息: 商品号 productNo
商品名称 productName
类别号 typeNo
商品描述 describe
单位 uints
规格 standard
单价 price
Create table product(
ProductNo char(12) primany key,
ProductName varchar(18) Not Null,
typeNo char(12) Not Null,
describe varchar(50) Not Null,
units varchar(20) Not Null,
standard char(8) Not Null,
price numeric Not Null,
)
4.创建生产厂商表
字段信息: 厂商号 producerNo
厂商名 producerName
地址 address
电话 telephone
Create table producer(
producerNo char(12) primany key,
producerName varchar(18) Not Null,
address varchar(50) Not Null,
telephone varchar(12) Not Null
)
5.创建商品类别表
字段信息: 类别号 protypeNo
类别名称 protypeName
Create table protype(
protypeNo char(12) primany key,
protypeName varchar(18) Not Null
)
6.创建地址表
字段信息: 地址号 addressNo
地址名称 addressName
Creste table address(
addressNo char(12) primany key,
address varchar(20) Not Null,
)
7.创建订单明细表
字段信息: 订单号 orderNo
客户号 customerNo
商品号 productNo
收货地址 address
订货日期 orderdate
订货数量 quantity
单价 price
号码 billNo
订单金额 ordersum
发货日期 Fhdate
订单状态 orderstate
Create table order(
orderNo char(12) primany key,
customerNo char(12) Not Null,
productNo char(12) Not Null,
address varchar(20) Not Null,
orderdate datetime Not Null,
quantity char(4) Not Null,
price numeric Not Null,
billNo varchar(12) primany key,
Fhdate datetime Not Null,
Orderstate char(8) Check(orderstate IN(‘0’,‘1’)),
foreign key(customerNo) references customer(customerNo)
foreign key(productNo) references product(productNo)
)
8.创建表
字段信息: 号码 billNo
订单号 orderNo
Create table bill(
billNo char(12) primany key,
orderNo char(12) primany key,
foreign key(orderNo) references product(orderNoNo)
)
9.创建供应表
字段信息: 商品号 productNo
厂商号 producerNo
Create table support(
productNo char(12) primany key,
producerNo char(12) primany key,
foreign key(producerNo) references producer(producerNo),
foreign key(productNo) references product(productNo)
)
10.创建客户类型表:
字段信息: 客户号 customerNo
客户类型 type
Create table type(
CustomerNo char(12) primany key,
Type varchar(18) Not Null
)
11.创建评论表
字段信息: 评论号 reviewNo
客户号 customerNo
商品号 productNo
客户邮箱 email
评论内容 reviewContent
评论时间 reviewdate
Create table review(
reviewNo char(12) primany key,
customerNo char(12) Not Null,
produtNo char(12) Not Null,
email varchar(50) Not Null,
reviewContent varchar(100) Not Null,
reviewdate datetime Not Null,
foreign key(customerNo) references customer(customerNo),
foreign key(productNo) references product(productNo)
)
12.创建客户地址表
字段信息: 客户号 customerNo
客户地址 cusaddress
Create table cusaddress(
customerNo char(12) primany key,
cusaddress varchar(100) Not Null
)
这里我们保证了实体完整性,参照完整性和用户自定义完整性。在各个基本表的定义中,我们使主码值均不为空,表orderitem中ORDER_ID取值为表myorder中的主码值,而且我们还进行了用户自定义的完整性约束,使表中某些值取值不为空。
