想问一下第二题怎么写
某工厂管理系统的数据库信息如下:
1. 工厂有工厂号、厂名和地址;
2. 车间有车间号、地址和电话等属性;
3. 工人有职工号、姓名、年龄、性别和工种等属性;
4. 产品有产品号和价格等属性;
5. 零件有零件号、重量和价格等属性;
6. 仓库有仓库号、电话等属性;
7. 一个工厂有多个仓库;
8. 一个厂内有多个车间,一个车间只属于一个工厂;
9. 一个车间有多个工人,一个工人只属于一个车间;
10. 一个车间生产多种产品,一个产品只由一个车间生产;
11. 一个车间生产多种零件,一种零件也可能为多个车间制造;
12. 一个产品由多种零件装配,一种零件可以装配在多个产品上;
13. 产品与零件均存入仓库中。一个仓库可以存放多件产品和零件,产品和零件只能存放在一个仓库里。用零件量表示某种零件存放在某个仓库中的数量。用产品量表示某种产品存放在某个仓库中的数量。
问题:
(1) 根据需求分析画出完整的E-R模型图。
(2) 依据规范化理论将E-R图转换为等价的关系模型(包括关系名、属性名),并指出主码(用直线画出)、外码(用波浪线画出)。
1条回答 默认 最新
关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
1. E-R模型图: 工厂(厂号,厂名,地址) 车间(车间号,地址,电话,厂号) 工人(职工号,姓名,年龄,性别,工种,车间号) 产品(产品号,价格,车间号) 零件(零件号,重量,价格,仓库号) 仓库(仓库号,电话) 存放(零件号,产品号,仓库号,零件量,产品量)- 关系模型: 工厂(厂号, 厂名, 地址),主码为厂号 车间(车间号, 地址, 电话, 厂号),主码为车间号,外码为厂号 工人(职工号, 姓名, 年龄, 性别, 工种, 车间号),主码为职工号,外码为车间号 产品(产品号, 价格, 车间号),主码为产品号,外码为车间号 零件(零件号, 重量, 价格, 仓库号),主码为零件号,外码为仓库号 仓库(仓库号, 电话),主码为仓库号 存放(零件号, 产品号, 仓库号, 零件量, 产品量),主码为(零件号, 产品号, 仓库号),外码分别为零件号,产品号,仓库号 示例代码(基于MySQL):
CREATE TABLE 工厂 ( 厂号 INT PRIMARY KEY, 厂名 VARCHAR(50), 地址 VARCHAR(100) ); CREATE TABLE 车间 ( 车间号 INT PRIMARY KEY, 地址 VARCHAR(100), 电话 VARCHAR(20), 厂号 INT, FOREIGN KEY (厂号) REFERENCES 工厂(厂号) ); CREATE TABLE 工人 ( 职工号 INT PRIMARY KEY, 姓名 VARCHAR(50), 年龄 INT, 性别 VARCHAR(10), 工种 VARCHAR(50), 车间号 INT, FOREIGN KEY (车间号) REFERENCES 车间(车间号) ); CREATE TABLE 产品 ( 产品号 INT PRIMARY KEY, 价格 DECIMAL(10,2), 车间号 INT, FOREIGN KEY (车间号) REFERENCES 车间(车间号) ); CREATE TABLE 零件 ( 零件号 INT PRIMARY KEY, 重量 DECIMAL(10,2), 价格 DECIMAL(10,2), 仓库号 INT, FOREIGN KEY (仓库号) REFERENCES 仓库(仓库号) ); CREATE TABLE 仓库 ( 仓库号 INT PRIMARY KEY, 电话 VARCHAR(20) ); CREATE TABLE 存放 ( 零件号 INT, 产品号 INT, 仓库号 INT, 零件量 INT, 产品量 INT, PRIMARY KEY (零件号, 产品号, 仓库号), FOREIGN KEY (零件号) REFERENCES 零件(零件号), FOREIGN KEY (产品号) REFERENCES 产品(产品号), FOREIGN KEY (仓库号) REFERENCES 仓库(仓库号) );以上是对问题的规范回答,如果需要更详细的信息或代码实现,可以提出具体的需求。
解决 无用评论 打赏 举报