伙伴云客服论坛»论坛 S区 S客户管理 查看内容

0 评论

0 收藏

分享

设计一个采购、销售和客户管理应用数据库

设计一个采购、销售和客户管理应用数据库

这是西安邮电大学软件工程数据库原理及应用的一次疫情期末大作业。假设觉得本文编辑不是很符合你的预期,可以加我QQ或者微信可提供当时写的word文档(私聊备注来意)
《数据库原理及应用》期末大作业

设计一个采购、销售和客户管理应用数据库,其中:一个供给商可以供给多种零件,一种零件也可以有多个供给商,一个客户订单可以订购多种供给商供给的零件。客户和供给商都分属不同的国家,而国家按世界五大洲四大洋划分地区。请停止数据库设计,要求包含7个实体:零件、供给商、客户、订单、订单项、国家、地区。每个实体都有一些属性,其中
零件:零件编号,零件名称,制造商,品牌,零售价格,备注
供给商:供给商编号,供给商名称,地址,国籍,电话,备注
客户:客户编号,客户名称,地址,电话,国籍,备注
订单:订单编号,订单状态,,订单总价,订单日期,订单优先级,记账员,备注
订单项:订单项编号,订购零件号,供给商号,零件数量,零件总价,折扣,税率
国家:国家编号,国家名称,所属地区,备注
地区:地区编号,地区名称,备注
要求完成:
1. 根据实际语义,分析实体之间的联络,确定实体之间联络的类型(一对一、一对多、多对多),给出实体联络图,即E-R图。
2. 叙述E-R图转换成关系模型的转换规则。
3. 依照第2题描绘的转换规则把E-R图转换成关系模型(多个关系形式),并指出主码、外码。
4. 分析第3题得到的各个关系形式的范式等级。
5. 对于第3题得到的关系模型,使用以下表格形式详细说明每张表。
列名数据类型是否主码、外码说明
6. 使用SQL语言创建第4题各张表。
7. 自行设计一些插入、删除、修改、查询的操作,并使用SQL语言实现这些操作。
1.根据实际语义,分析实体之间的联络,确定实体之间联络的类型(一对一、一对多、多对多),给出实体联络图,即E-R图。

实体7个:零件、供给商、客户、订单、订单项、国家、地区。
其联络图如下:

设计一个采购、销售和客户管理应用数据库-1.jpg


2.叙述E-R图转换成关系模型的转换规则。

将每一个实体类型转换成-个关系形式,实体的属性为关系形式的属性。
(1) 实体集转换为关系:
实体集对应于一个关系
关系名:与实体集同名。
属性:实体集的所有属性。
主码:实体集的主码。
(2) 联络转换为关系:
联络转换成为关系形式。 联络转换成为关系形式时, 要根据联络方式的不同采用不同的转换方式
二元联络转换:
① 1:1 联络的转换方法
a) 将1:1联络转换为一个独立的关系:与该联络相连的各实体的码以及联络自身的属性均转换为关系的属性,且每个实体的码均是该关系的候选码。
b) 将1:1联络与某一端实体集所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联络自身的属性和与联络相关的另一个实体集的码。
② 1:n 联络的转换方法
a)一种方法是将联络转换为一个独立的关系,其关系的属性由与该联络相连的各实体集的码以及联络自身的属性组成,而该关系的码为 n 端实体集的码;
b)另一种方法是在 n 端实体集中增加新属性,新属性由联络对应的 1 端实体集的码和联络自身的属性构成,新增属性后原关系的码不变。
③ m:n 联络的转换方法
在向关系模型转换时,一个 m:n 联络转换为一个关系。转换方法为:与该联络相连的各实体集的码以及联络自身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合(该码为多属性构成的组合码)。
三元联络转换:
① 1:1:1联络的转换方法
可以在三个实体类型转换成的三个关系形式中任意一个关系形式的属性中参与另两个关系形式的键(作为外键)和联络类型的属性
② 1:1:N 联络的转换方法
1:1:N在N端实体类型转换成的关系形式中参与两个1端实体类型的键(作为外键)和联络类型的属性
③ 1:M:N 联络的转换方法
将联络类型也转换成关系形式,其属性为M端和N端实体类型的键(作为外键)加上联络类型的属性,而键为M端和N端实体键的组合
④ M:N:P 联络的转换方法
将联络类型也转换成关系形式,其属性为三端实体类型的键(作为外键)加上联络类型的属性,而键为三端实体键的组合。
3.依照第2题描绘的转换规则把E-R图转换成关系模型(多个关系形式),并指出主码、外码

E-R中7个实体共有7个联络,其中二元联络6个,三元联络一个。
1:N 联络(5个):

1 地区(地区编号,地区名称,备注)
主码:地区编号。
N 国家(国家编号,国家名称,所属地区,备注)
主码:国家编号。外码:地区编号。
关系 附属(地区编号,国家编号)
主码:国家编号
地区(地区编号,地区名称,备注)
国家(国家编号,国家名称,所属地区,备注,地区编号


1 国家(国家编号,国家名称,所属地区,备注)
主码:国家编号。
N 供给商(供给商编号,供给商名称,地址,国籍,电话,备注)
主码:供给商编号。外码:国家编号。
关系 包含(国家编号,供给商编号)
主码:供给商编号
国家(国家编号,国家名称,所属地区,备注)
供给商(供给商编号,供给商名称,地址,国籍,电话,备注,国家编号)


1 国家(国家编号,国家名称,所属地区,备注)
主码:国家编号。
N 客户(客户编号,客户名称,地址,电话,国籍,备注)
主码:客户编号。外码:国家编号。
关系 拥有(国家编号,客户编号)
主码:客户编号
国家(国家编号,国家名称,所属地区,备注)
客户(客户编号,客户名称,地址,电话,国籍,备注,国家编号)


1 客户(客户编号,客户名称,地址,电话,国籍,备注)
主码:客户编号。
N 订单(订单编号,订单状态,订单总价,订单日期,订单优先级,
记账员,备注)
主码:订单编号。外码:客户编号。
关系 签订(客户编号,订单编号)
主码:订单编号
客户(客户编号,客户名称,地址,电话,国籍,备注)
订单(订单编号,订单状态,,订单总价,订单日期,订单优先级,记账员,
备注,客户编号)


1 订单(订单编号,订单状态,订单总价,订单日期,订单优先级,
记账员,备注)
主码:订单编号。
N 订单项(订单项编号,订购零件号,供给商号,零件数量,
零件总价,折扣,税率)
主码:订单项编号。外码:订单编号。
关系 填写(订单编号,订单项编号)
主码:订单项编号
订单(订单编号,订单状态,订单总价,订单日期,订单优先级,记账员,备注)
订单项(订单项编号,订购零件号,供给商号,零件数量,零件总价,
折扣,税率,订单编号)

M:N 联络(1个):
1 供给商(供给商编号,供给商名称,地址,国籍,电话,备注)
主码:供给商编号。
N 零件(零件编号,零件名称,制造商,品牌,零售价格,备注)
主码:零件编号。外码:供给商编号。
关系 提供(供给商编号,零件编号,数量)
主码:供给商编号,零件编号。
供给商(供给商编号,供给商名称,地址,国籍,电话,备注)
零件(零件编号,零件名称,制造商,品牌,零售价格,备注)
提供(供给商编号,零件编号,数量)

1:1:N 联络(1个):
1 供给商(供给商编号,供给商名称,地址,国籍,电话,备注)
主码:供给商编号。
1 零件(零件编号,零件名称,制造商,品牌,零售价格,备注)
主码:零件编号。
N 订单项(订单项编号,订购零件号,供给商号,零件数量,
零件总价,折扣,税率)
主码:订单项编号。外码:供给商编号,零件编号。
关系 组成(供给商编号,零件编号,订单项编号。)
主码:订单项编号
供给商(供给商编号,供给商名称,地址,国籍,电话,备注)
零件(零件编号,零件名称,制造商,品牌,零售价格,备注)
订单项(订单项编号,订购零件号,供给商号,零件数量,零件总价,
折扣,税率,供给商编号,零件编号)


综上关系模型整理总结如下:(红色为主码,蓝色为外码)
1.地区(地区编号,地区名称,备注
2.国家(国家编号,国家名称,所属地区,备注,地区编号
3.零件(零件编号,零件名称,制造商,品牌,零售价格,备注
4.客户(客户编号,客户名称,地址,电话,国籍,备注,国家编号
5.供给商(客户商编号,供给商名称,地址,国籍,电话,备注,国家编号
6.订单(订单编号,订单状态,订单总价,订单日期,订单优先级,记账员,备注,供客户编号
7.订单项(订单项编号,订购零件号,供给商号,零件数量,零件总价,折扣,税率,订单编号,供给商编号,零件编号
8.提供(供给商编号,零件编号,数量)
4.分析第3题得到的各个关系形式的范式等级。

1.地区(地区编号,地区名称,备注)
2.国家(国家编号,国家名称,所属地区,备注,地区编号)
3.零件(零件编号,零件名称,制造商,品牌,零售价格,备注)
4.客户(客户编号,客户名称,地址,电话,国籍,备注,国家编号)
5.供给商(供给商编号,供给商名称,地址,国籍,电话,备注,国家编号)
6.订单(订单编号,订单状态,订单总价,订单日期,订单优先级,记账员,
备注,客户编号)
7.订单项(订单项编号,订购零件号,供给商号,零件数量,零件总价,
折扣,税率,订单编号,供给商编号,零件编号)
8.提供(供给商编号,零件编号,数量)
第一范式(1NF)-字段不可再分
定义:若关系形式R的每个关系r的属性值都是不可分的原子值,则称R是第一范式1NF (First Normal Form)的形式。
包含关系形式:1、2、3、4、5、6、7、8
第二范式(2NF)-字段和完好主键有关系
定义:1.对于FD W→A,若存在X⊆W有X→A成立,则称W→A是部分依赖(A部分依赖于W);否则称W→A是完全依赖。完全依赖也称为“左部不可约依赖”。2.若A是关系形式R中候选键属性,则称A是R的主属性:否则称A是R的非主属性。3.若关系形式R是1NF,且每个非主属性完全函数依赖于候选键,则称R是第二范式(2NF)的形式。若数据库形式中每个关系形式都是2NF,则称数据库形式为2NF的数据库形式。
包含关系形式:1、2、3、4、5、6、7
第三范式(3NF)-字段和主键是直接关系
定义:1.若x→Y, Y→A, 且Y-/->x和A⫋Y,则称X→A是传送依赖(A传送依赖于X)。2. 若关系形式R是1NF,且每个非主属性都不传送依赖于R的候选键,则称 R是第三范式(3NF)的形式。若数据库形式中的每个关系形式都是3NF,则称其为3NF的数据库形式。3NF的目的是消除非主属性对键的传送函数依赖。
包含关系形式:1、3
5.对于第3题得到的关系模型,使用以下表格形式详细说明每张表。

1.地区region:
列名数据类型是否主码、外码说明
Region_IdINT地区编号
Region_NameVARCHAR(20)地区名称
remarksVARCHAR(20))备注
2.国家country:
列名数据类型是否主码、外码说明
Country_IdINT国家编号
Country_NameVARCHAR(20)国家名称
AreaVARCHAR(20)所属地区
remarksVARCHAR(20)备注
Region_IdINT地区编号
3.零件part:
列名数据类型是否主码、外码说明
Part_IdINT零件编号
Part_NameVARCHAR(20)零件名称
ManufacturerVARCHAR(20)制造商
BrandVARCHAR(20)品牌
PriceINT价格
remarksVARCHAR(20)备注
4.客户customer:
列名数据类型是否主码、外码说明
Customer_IdINT客户编号
Customer_NameVARCHAR(20)客户姓名
Customer_AddressVARCHAR(20)地址
Customer_TelVARCHAR(20)电话
Customer_NationalityVARCHAR(20国籍
remarksVARCHAR(20)备注
Country_IdINT国家编号
5.供给商supplier:
列名数据类型是否主码、外码说明
Supplierr_IdINT供给商编号
Supplierr_NameVARCHAR(20)供给商名称
Supplier_AddressVARCHAR(20)地址
Supplier_TelVARCHAR(20)电话
Supplier_NationalityVARCHAR(20国籍
remarksVARCHAR(20)备注
Country_IdINT国家编号
6.订单torder:
列名数据类型是否主码、外码说明
Order_IdINT订单编号
Order_StateVARCHAR(20)订单状态
TotalpriceINT订单总价
Order_dateVARCHAR(20)订单日期
priorityVARCHAR(20订单优先级
BookkeeperVARCHAR(20)记账员
remarksVARCHAR(20)备注
Customer_IdINT客户编号
订单项OrderItem与提供关系Provide_relationships因为篇幅原因在此省略
6.使用SQL语言创建第4题各张表。

建库 create database IF NOT EXISTS WY;
查看库 show databases;
使用库 use WY;
查看库中表 show tables;
开端建表:
1.地区表
DROP TABLE IF EXISTS region;
CREATE TABLE region (
Region_Id INT PRIMARY KEY ,
Region_Name VARCHAR(20) ,
remarks VARCHAR(20) DEFAULT ‘该地区无备注’
);
2.国家表
DROP TABLE IF EXISTS country;
CREATE TABLE country (
Country_Id INT PRIMARY KEY,
Country_Name VARCHAR(20),
Area VARCHAR(20),
remarks VARCHAR(20) DEFAULT ‘该国家无备注’,
Region_Id int,
FOREIGN KEY (Region_Id) REFERENCES region(Region_Id)
);
3.零件表
DROP TABLE IF EXISTS part;
CREATE TABLE part (
Part_Id INT PRIMARY KEY,
Part_Name VARCHAR(20),
Manufacturer VARCHAR(20),
Brand VARCHAR(20),
Price INT,
remarks VARCHAR(20) DEFAULT ‘该零件无备注’
);
4.客户表
DROP TABLE IF EXISTS customer;
CREATE TABLE customer (
Customer_Id INT PRIMARY KEY,
Customer_Name VARCHAR(20),
Customer_Address VARCHAR(20),
Customer_Tel VARCHAR(20),
Customer_Nationality VARCHAR(20),
remarks VARCHAR(20) DEFAULT ‘该客户无备注’,
Country_Id int,
FOREIGN KEY (Country_Id) REFERENCES country(Country_Id)
);
5.供给商表
DROP TABLE IF EXISTS supplier;
CREATE TABLE supplier (
Supplier_Id INT PRIMARY KEY,
Supplier_Name VARCHAR(20),
Supplier_Address VARCHAR(20),
Supplier_Tel VARCHAR(20),
Supplier_Nationality VARCHAR(20),
remarks VARCHAR(20) DEFAULT ‘该供给商无备注’,
Country_Id int
);
6.订单表
DROP TABLE IF EXISTS torder;
CREATE TABLE torder (
Order_Id INT PRIMARY KEY,
Order_State VARCHAR(20),
Totalprice int,
Order_date VARCHAR(20),
priority VARCHAR(20),
Bookkeeper VARCHAR(20),
remarks VARCHAR(20) DEFAULT ‘该订单无备注’,
Customer_Id int,
FOREIGN KEY (Customer_Id) REFERENCES customer(Customer_Id)
);
订单项表,订单项表省略
查看库中表 show tables;

设计一个采购、销售和客户管理应用数据库-2.jpg

7.自行设计一些插入、删除、修改、查询的操作,并使用SQL语言实现这些操作。
如下对region地区表操作,

插入操作:
insert into region (Region_Id,Region_Name)values (1,‘亚洲’);
insert into region (Region_Id,Region_Name)values (2,‘美洲’);
insert into region (Region_Id,Region_Name)values (3,‘澳洲’);
select * from region;

设计一个采购、销售和客户管理应用数据库-3.jpg

修改操作:
update region set Region_Id=5,Region_Name=‘南极洲’ where Region_Id=3;

设计一个采购、销售和客户管理应用数据库-4.jpg

删除操作:
delete from region where Region_Id=5;

设计一个采购、销售和客户管理应用数据库-5.jpg

查询操作:
select Region_Name from region;


设计一个采购、销售和客户管理应用数据库-6.jpg

假设需要所有SQL代码 可私聊获得

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

最深的爱最沉默
注册会员
主题 11
回复 12
粉丝 0
|网站地图
快速回复 返回顶部 返回列表