赞
踩
注:sql代码为人大金仓数据库的代码
某公司因业务扩展需要开发一套电子商务系统,用于在线销售各类商品。作为数据库设计人员,通过走访与跟班作业的方式,从商品销售部和商品管理部获得了如下业务信息。
根据概要设计所得的全局E-R图,完成如下实验。
根据已经绘制的全局E-R图,通过E-R图到关系模式的转换方法,将全局E-R图转换为关系模式,并注明每个模式的主键和外键。
(1)商品表(商品编号,商品名称,商品价格,详情信息,商品图片)主键:商品编号
(2)类别表(类别号,类别名称)主键:类别号
(3)属于表(商品编号,类别号)主键:商品编号,类别号 外键:商品编号,类别号
(4)会员表(会员编号,会员姓名,会员性别,会员邮箱)主键:会员编号
(5)订购表(订单编号,商品编号,会员编号,数量,提交时间)
主键:订单编号 外键:商品编号,会员编号
(6)状态表(状态号,状态名)主键:状态号
(7)操作表(订单编号,状态号)主键:订单编号,状态号 外键:订单编号,状态号
(8)联系方式表(电话,邮编,地址)主键:电话
(9)联系表(会员编号,电话)外键:会员编号,电话
(10)厂家表(厂家编号,厂家名称)主键:厂家编号
(11)生产表(商品编号,厂家编号,上架时间)
主键:商品编号,厂家编号 外键:商品编号,厂家编号
对转换后的关系模式进行优化。
(1)商品表(商品编号,商品名称,商品价格,详情信息,商品图片,类别号)
(2)类别表(类别号,类别名称)
(3)订购表(订单编号,商品编号,会员编号,数量,提交时间,状态号)
(4)状态表(状态号,状态名)
(5)会员表(会员编号,会员姓名,会员性别,会员邮箱,电话)
(6)联系方式表(电话,邮编,地址)
(7)厂家表(厂家编号,厂家名称)
(8)生产表(商品编号,厂家编号,上架时间)
使用数据规范化分析方法,分析转换后的模式属于第几范式。
3NF(第三范式)
在与客户进行数据库的确认工作时,商品管理部门发现现有设计中遗漏了商品的库存信息。需要在现有商品中添加库存信息。添加库存后的商品记录如教材246页图6-29所示。请修改现有E-R图,并调整转换后的关系模式。
(1)类别表(类别号,类别名称)
(2)商品表(商品编号,商品名称,商品价格,详情信息,商品图片,类别号)
(3)会员表(会员编号,会员姓名,会员性别,会员邮箱)
(4)联系方式表(会员编号,电话,邮编,地址)
(5)状态表(状态号,状态名)
(6)厂家表(厂家编号,厂家名称)
(7)生产表(商品编号,厂家编号,上架时间)
(8)仓库表(商品编号,库存量)
(9)订购表(订单编号,商品编号,会员编号,数量,提交时间,状态号)
根据数据库系统逻辑设计所得的关系模式,完成如下实验。
1.以KingBaseES为系统将要部署的数据库管理系统,把逻辑设计所得的关系模式转换成数据库系统的DDL语句,具体包括:数据库创建的DDL、各种实体创建的DDL和多对多联系创建的DDL等。
CREATE DATABASE Goods; CREATE TABLE 类别表 ( 类别号 CHAR(10) PRIMARY KEY, 类别名称 VARCHAR(10) ); CREATE TABLE 商品表 ( 商品编号 CHAR(10) primary key, 商品名称 VARCHAR(20), 商品价格 INT, 详情信息 VARCHAR(20), 类别号 char(10) ); CREATE TABLE 会员表 ( 会员编号 VARCHAR(10)PRIMARY KEY, 会员姓名 VARCHAR(10), 会员性别 CHAR(4), 会员邮箱 VARCHAR(20) ); CREATE TABLE 联系方式表 ( 会员编号 VARCHAR(10) PRIMARY KEY, 电话 VARCHAR(20), 邮编 VARCHAR(10), 地址 CHAR(20) ); CREATE TABLE 状态表 ( 状态号 CHAR(10)PRIMARY KEY, 状态名 VARCHAR(10) ); CREATE TABLE 厂家表 ( 厂家编号 CHAR(10) PRIMARY KEY, 厂家名称 CHAR(30) ); CREATE TABLE 生产表 ( 商品编号 CHAR(10), 厂家编号 CHAR(10), 上架时间 DATE ); CREATE TABLE 仓库表 ( 商品编号 CHAR(10)primary key, 库存量 INT ); CREATE TABLE 订购表 ( 订单编号 VARCHAR(10), 会员编号 VARCHAR(10), 商品编号 CHAR(10), 数量 INT, 提交时间 DATE, 状态号 CHAR(10) );
2.向已经创建好的数据中添加测试数据,添加记录的数量不限,只需有代表性即可。
INSERT INTO "类别表"(类别号,类别名称) VALUES ('L1','计算机'), ('L2','数学'), ('L3','外语') INSERT INTO "商品表"(商品编号,商品名称,商品价格,类别号) VALUES ('S1','数据库系统',30,'L1'), ('S2','高等数学',27,'L2'), ('S3','综合英语',45,'L3') INSERT INTO "会员表"(会员编号,会员姓名,会员性别,会员邮箱) VALUES ('H1','张三','男','11588345@qq.com'), ('H2','李兰','女','897464125@qq.com'), ('H3','赵斌','男','465138745@qq.com') INSERT INTO "联系方式表"(会员编号,电话,邮编,地址) VALUES ('H1','13523116489','55123','广州'), ('H2','15388456409','55124','深圳'), ('H3','19244729105','55125','上海') INSERT INTO "状态表"(状态号,状态名) VALUES ('Z1','已下单'), ('Z2','已提交'), ('Z3','已完成') INSERT INTO "厂家表"(厂家编号,厂家名称) VALUES ('C1','高等教育出版社'), ('C2','新疆大学出版社'), ('C3','人民邮电出版社') INSERT INTO "生产表"(商品编号,厂家编号,上架时间) VALUES ('S1','C1','2001-08-12'), ('S2','C2','2007-12-20'), ('S3','C3','2020-03-12') INSERT INTO "仓库表"(商品编号,库存量) VALUES ('S1',700000), ('S2',150000), ('S3',90000) INSERT INTO "订购表"(订单编号,会员编号,商品编号,数量,提交时间,状态号) VALUES ('D1','H1','S1',1500,'2020-03-01','Z1'), ('D2','H1','S3',1700,'2020-03-01','Z1'), ('D3','H2','S2',500,'2020-04-15','Z3'), ('D4','H3','S1',800,'2019-12-09','Z3'), ('D5','H3','S2',1000,'2020-01-15','Z2'), ('D6','H3','S3',2000,'2020-05-20','Z1')
3.创建视图,显示每个订单的总价。
CREATE VIEW 订单总价 AS
SELECT
订单编号,商品名称,商品价格,数量,会员姓名,电话,会员邮箱,地址, 商品价格*数量
As 总价
FROM 订购表,商品表,会员表,联系方式表
WHERE 订购表.商品编号=商品表.商品编号 AND 订购表.会员编号=会员表.会员编号AND 会员表.会员编号=联系方式表.会员编号
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。