某工厂物资管理涉及的实体及其属性是: 仓库:仓库号、面积、电话号码:零件:零件号、名称、规格、单价、 描述:供应商:供应商号、姓名、地址、电话号码、账号:项目:项目号、预算、开王日期:职工:职工号、姓名、年龄、职称。 这些实体之间的联系是: (1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因此仓库和零件具有多对多联系。用库存量来表示某种零件的数量。(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,因此仓库和职工之间是一对多联系。 (3)职工之间具有领导与被领导关系,即仓库主任领导若干保管员,因此职工实体型中具有一对多的联系。 (4)供应商、项目和零件三者之间具有多对多的联系,即一个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件由不同供应商供给。请设计该系统的全局 E - R 图,并转换成关系模型(包括关系名、属性名、候选码和完整性约束)。
时间: 2023-05-23 08:03:32 浏览: 125
关系模型如下:
1. 仓库(仓库号,面积,电话号码,库存量)
候选码:仓库号
2. 职工(职工号,姓名,年龄,职称,所在仓库号)
候选码:职工号
外键:所在仓库号 -> 仓库.仓库号
3. 零件(零件号,名称,规格,单价,描述)
候选码:零件号
4. 供应商(供应商号,姓名,地址,电话号码,账号)
候选码:供应商号
5. 项目(项目号,预算,开王日期)
候选码:项目号
6. 供应(供应商号,项目号,零件号)
候选码:(供应商号,项目号,零件号)
外键:供应商号 -> 供应商.供应商号
外键:项目号 -> 项目.项目号
外键:零件号 -> 零件.零件号
完整性约束:
1. 仓库和零件之间的多对多联系是通过一个关系模型(例如,库存表)来表达,库存量必须大于等于0。
2. 职工的年龄必须大于等于18岁。
3. 一个职工只能在一个仓库工作,因此仓库和职工之间是一对多联系。
4. 职工实体型中具有一对多的联系,即仓库主任领导若干保管员。
5. 供应商、项目和零件三者之间具有多对多的联系,每个项目都必须供应至少一种零件。
6. 每个零件必须由至少一个供应商供应。
相关问题
某工厂的物资管理系统涉及的实体有: 仓库:属性有仓库号、面积、电话号码 零件:属性有零件号、名称、单价 供应商:属性有供应商号、姓名、地址、电话 项目:属性有项目号、预算、开工日期 职工:属性有职工号、姓名、年龄 其中,一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,用库存量来表示某种零件在某个仓库中的数量。一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作。 供应商、项目和零件三者之间具有多对多的联系。即一个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件
该物资管理系统的ER图如下所示:
![ER图](https://img-blog.csdn.net/20180705235349514)
实体之间的关系如下所示:
1. 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因此仓库和零件之间是多对多的关系,它们之间的联系用实体“库存”表示。
2. 一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,因此仓库和职工之间是一对多的关系,即一个仓库对应多个职工,而一个职工只对应一个仓库。这个联系用实体“保管”表示。
3. 供应商、项目和零件三者之间具有多对多的联系,即一个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件。这个联系用实体“供应”表示。
在ER图中,实体用矩形表示,属性用椭圆形表示,联系用菱形表示。箭头表示参与联系的实体的角色,例如仓库和零件之间的库存联系中,仓库是“存放”,零件是“被存放”。在实体和联系中,用下划线表示属性的主键,例如仓库的主键是“_仓库号”,零件的主键是“_零件号”,供应商的主键是“_供应商号”。
在SQL中用语句实现1.物资管理子系统的关系模式转化最终达到第三范式 仓库(仓库号、面积、电话号码) 零件(零件号、名称、规格、单价、描述) 供应商(供应商号、姓名、地址、电话号码、账号) 供应(供应商号、产品号、零件号、供应量) 库存(仓库号、零件号、库存量) 项目(项目号、预算、开工日期)遵循实体完整性,参照完整性,用户自定义完整性
可以通过以下SQL语句实现1.物资管理子系统的关系模式转化最终达到第三范式:
```sql
-- 创建仓库表
CREATE TABLE 仓库 (
仓库号 INT PRIMARY KEY,
面积 DECIMAL(10, 2),
电话号码 VARCHAR(20)
);
-- 创建零件表
CREATE TABLE 零件 (
零件号 INT PRIMARY KEY,
名称 VARCHAR(50),
规格 VARCHAR(50),
单价 DECIMAL(10, 2),
描述 VARCHAR(200)
);
-- 创建供应商表
CREATE TABLE 供应商 (
供应商号 INT PRIMARY KEY,
姓名 VARCHAR(50),
地址 VARCHAR(200),
电话号码 VARCHAR(20),
账号 VARCHAR(50)
);
-- 创建供应表
CREATE TABLE 供应 (
供应商号 INT,
产品号 INT,
零件号 INT,
供应量 INT,
PRIMARY KEY (供应商号, 产品号, 零件号),
FOREIGN KEY (供应商号) REFERENCES 供应商(供应商号),
FOREIGN KEY (产品号) REFERENCES 项目(项目号),
FOREIGN KEY (零件号) REFERENCES 零件(零件号)
);
-- 创建库存表
CREATE TABLE 库存 (
仓库号 INT,
零件号 INT,
库存量 INT,
PRIMARY KEY (仓库号, 零件号),
FOREIGN KEY (仓库号) REFERENCES 仓库(仓库号),
FOREIGN KEY (零件号) REFERENCES 零件(零件号)
);
-- 创建项目表
CREATE TABLE 项目 (
项目号 INT PRIMARY KEY,
预算 DECIMAL(10, 2),
开工日期 DATE
);
```
其中,实体完整性通过设置主键约束和外键约束来保证,参照完整性通过设置外键约束来保证,用户自定义完整性可以通过触发器等方式来实现。