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

这是西安邮电大学软件工程数据库原理及应用的一次疫情期末大作业。如果觉得本文编辑不是很符合你的预期,可以加我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个:零件、供应商、客户、订单、订单项、国家、地区。
其联系图如下:

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_Id INT 地区编号
Region_Name VARCHAR(20) 地区名称
remarks VARCHAR(20)) 备注

2.国家country:

列名 数据类型 是否主码、外码 说明
Country_Id INT 国家编号
Country_Name VARCHAR(20) 国家名称
Area VARCHAR(20) 所属地区
remarks VARCHAR(20) 备注
Region_Id INT 地区编号

3.零件part:

列名 数据类型 是否主码、外码 说明
Part_Id INT 零件编号
Part_Name VARCHAR(20) 零件名称
Manufacturer VARCHAR(20) 制造商
Brand VARCHAR(20) 品牌
Price INT 价格
remarks VARCHAR(20) 备注

4.客户customer:

列名 数据类型 是否主码、外码 说明
Customer_Id INT 客户编号
Customer_Name VARCHAR(20) 客户姓名
Customer_Address VARCHAR(20) 地址
Customer_Tel VARCHAR(20) 电话
Customer_Nationality VARCHAR(20 国籍
remarks VARCHAR(20) 备注
Country_Id INT 国家编号

5.供应商supplier:

列名 数据类型 是否主码、外码 说明
Supplierr_Id INT 供应商编号
Supplierr_Name VARCHAR(20) 供应商名称
Supplier_Address VARCHAR(20) 地址
Supplier_Tel VARCHAR(20) 电话
Supplier_Nationality VARCHAR(20 国籍
remarks VARCHAR(20) 备注
Country_Id INT 国家编号

6.订单torder:

列名 数据类型 是否主码、外码 说明
Order_Id INT 订单编号
Order_State VARCHAR(20) 订单状态
Totalprice INT 订单总价
Order_date VARCHAR(20) 订单日期
priority VARCHAR(20 订单优先级
Bookkeeper VARCHAR(20) 记账员
remarks VARCHAR(20) 备注
Customer_Id INT 客户编号

订单项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;

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;

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


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


查询操作:
select Region_Name from region;


如果需要所有SQL代码 可私聊获得

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

  1. 停车场管理系统c语言程序,c语言程序设计 停车场管理系统 停车场有1-20个车位号,设计一个停车场管理系统,实现停车场管理...

    #include #include #include #include #define max 3 #define price 1 int b=1; typedef struct { int day; ...

  2. 设计一个中介平台录入客户信息所需关键内容

  3. 客户管理信息系统html,一个简易的客户管理信息系统

    介绍 对前几日学习培训的一个综合性训练,非常简单.要求:客户信息的增删改查实际操作 技术性型号选择:Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtils+tom ...

  4. 光盘出租系统mysql_碟片出租管理子系统数据库设计.doc

    碟片出租管理子系统数据库设计 武汉理工大学华夏学院 课 程 设 计 课程名称 数据库原理课程设计 题 目:碟片出租管理子系统数据库设计 专 业 班 级 姓 名 成 绩 指导教师 2013 年6 月17 ...

  5. SSM+mysql实现的汽车销售管理系统(角色权限分离,功能:采购申请、仓储入库、车辆出库、车辆入库、登录、客户管理、汽车销售柱状统计、销售统计、组织结构管理)

    博客目录 SSM汽车销售管理系统 实现功能截图 系统功能 使用技术 代码 写在最后 SSM汽车销售管理系统 本系统是解决了汽车销售领域品类针对性管理的问题,通过组织角色权限分离,采购入库出库等业务设计 ...

  6. 现要为某一个销售部门编写一个程序管理约100种商品。要求设计一个结构体类型来描述商品,每种商品包括商品编号(如A001)、商品名称、商品销售量和商品销售额等信息,并编写以下函数···········

    原题:现要为某一个销售部门编写一个程序管理约100种商品.要求设计一个结构体类型来描述商品,每种商品包括商品编号(如A001).商品名称.商品销售量和商品销售额等信息,并编写以下函数: 1.编写一个函 ...

  7. 销售找客户的软件_实用的销售客户管理软件

    客户管理在销售类型为主的企业管理中.显得特别的重要.销售员经常采用手写本来记录客户的相关信息和跟单情况.这样对于销售人员来说会发生丢失的现象.导致客户的流失和工作量的损失. 同样作为企业在管理销售员时 ...

  8. 读《数据挖掘技术(第三版)》-应用于市场营销,销售与客户关系管理 有感

    读<数据挖掘技术(第三版)>-应用于市场营销,销售与客户关系管理 有感 这本书不是纯讲数据挖掘理论的书,从本书的副标题你大概也能猜得到.对于像我这样数据挖掘领域的门外汉,读起这本书也没有多 ...

  9. 现欲设计一个电子商务网站系统,该系统需要记录如下信息,其中下划线为标识信息: •客户有客户名、联系电话、配送地址; •商品有商品名、类别; •店铺有店铺名、信誉度、注册地址; •同一商品会在不

    题目要求 现欲设计一个电子商务网站系统,该系统需要记录如下信息,其中下划线为标识信息: 客户有客户名.联系电话.配送地址: 商品有商品名.类别: 店铺有店铺名.信誉度.注册地址: 同一商品会在不同的店 ...

最新文章

  1. hdu2413 二分+二分匹配
  2. 提高电脑反应速度_设计师笔记本电脑推荐——视觉系ThinkBook 15p创造本
  3. mysql 5.6.4以上版本innodb支持全文索引的测试
  4. python断点调试出现问题_Python错误、调试
  5. mongodb spring 超时时间_mongoDB(spring 部分配置)
  6. 【转】记使用Kali linux 2.0的一些坑
  7. spring cloud 微服务的版本介绍与内部组件详解
  8. Oracle P6培训系列:02登录
  9. PDMS Pipeline Tool 教程(五):汇料属性设置
  10. 网络安全技术心得体会
  11. 软件测试面试题(二):Jmeter面试
  12. 《皇帝内经》养生法则
  13. 面试题:你让工人为你工作7天,给工人的回报是一根金条...
  14. SEO个人整理全套学习资料
  15. 用html写一个道歉的代码
  16. selenium代码中创建浏览器对象_Sinno_Song_新浪博客
  17. Shell 快捷键助你一臂之力
  18. sparksql java_JAVASparkSQL
  19. 学习python的微信公众号_python学习—实现微信公众号聊天机器人
  20. 如何解决跨站点请求伪造

热门文章

  1. 【pytorch】将模型部署至生产环境:借助TorchScript跟踪法及注释法生成可供C++调用的模块
  2. 日语语法实践篇十二——新编日语第一册第十三课之前文篇
  3. Oracle数据库 登录命令 用户管理 建表 修改字段 数据类型 约束 增删改查
  4. 简单行编辑程序设计文档(数据结构)课设
  5. 行人检测-Caltech Pedestrian Dataset 数据集下载及格式转换
  6. linux系统 说法不正确的是,下面关于Linux操作系统的说法中,不正确的是( )。
  7. 快递单号查询API接口对接net源码示例_快递鸟
  8. 狭义相对论的洛伦兹变换几何推导
  9. 鸿蒙开发实例 | 分布式涂鸦
  10. flink sql 连接kafka avro序列化异常 Failed to deserialize Avro record ArrayIndexOutOfBoundsException