题目
某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。(1)根据上述语义画出E-R图;(2)将该E-R模型转换为关系模型;(要求:1:1和1:n的联系进行合并)(3)指出转换结果中每个关系模式的主码和外码。
某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。
(1)根据上述语义画出E-R图;
(2)将该E-R模型转换为关系模型;
(要求:1:1和1:n的联系进行合并)
(3)指出转换结果中每个关系模式的主码和外码。
题目解答
答案
答案:
(2)转化后的关系模式如下:
工厂(工厂编号,厂名,地址)
产品(产品编号,产品名,规格)
职工(职工号,姓名,工厂编号,聘期,工资)
生产(工厂编号,产品编号,计划数量)
(3)每个关系模式的主码、外码如下:
工厂:主码是工厂编号,无外码;
产品:主码是产品编号,无外码;
职工:主码职工号,外码是工厂编号;
生产:主码是(工厂编号,产品编号),
外码是工厂编号、产品编号。
解析
步骤 1:理解E-R图的构建
E-R图是实体-联系图的简称,用于描述数据库中实体之间的关系。根据题目描述,有三个实体:工厂、产品和职工。工厂和产品之间是多对多的关系,工厂和职工之间是一对多的关系。工厂和产品之间的联系是“生产”,工厂和职工之间的联系是“聘用”。
步骤 2:绘制E-R图
根据题目描述,工厂有工厂编号、厂名、地址三个属性;产品有产品编号、产品名、规格三个属性;职工有职工号、姓名两个属性。工厂和产品之间的联系“生产”有计划数量属性;工厂和职工之间的联系“聘用”有聘期和工资属性。因此,E-R图如下:
工厂编号 厂名 地址 产品编号 产品名 规格 工厂 m 生产 n 产品 1 计划数量 聘用 聘期 n 工资 职工 职工号 姓名
步骤 3:将E-R模型转换为关系模型
根据E-R图,可以将E-R模型转换为关系模型。工厂和产品之间的多对多关系需要转换为一个独立的关系模式,工厂和职工之间的一对多关系可以直接转换为一个关系模式。因此,转换后的关系模式如下:
工厂(工厂编号,厂名,地址)
产品(产品编号,产品名,规格)
职工(职工号,姓名,工厂编号,聘期,工资)
生产(工厂编号,产品编号,计划数量)
步骤 4:确定每个关系模式的主码和外码
工厂关系模式的主码是工厂编号,无外码;
产品关系模式的主码是产品编号,无外码;
职工关系模式的主码是职工号,外码是工厂编号;
生产关系模式的主码是(工厂编号,产品编号),外码是工厂编号、产品编号。
E-R图是实体-联系图的简称,用于描述数据库中实体之间的关系。根据题目描述,有三个实体:工厂、产品和职工。工厂和产品之间是多对多的关系,工厂和职工之间是一对多的关系。工厂和产品之间的联系是“生产”,工厂和职工之间的联系是“聘用”。
步骤 2:绘制E-R图
根据题目描述,工厂有工厂编号、厂名、地址三个属性;产品有产品编号、产品名、规格三个属性;职工有职工号、姓名两个属性。工厂和产品之间的联系“生产”有计划数量属性;工厂和职工之间的联系“聘用”有聘期和工资属性。因此,E-R图如下:
工厂编号 厂名 地址 产品编号 产品名 规格 工厂 m 生产 n 产品 1 计划数量 聘用 聘期 n 工资 职工 职工号 姓名
步骤 3:将E-R模型转换为关系模型
根据E-R图,可以将E-R模型转换为关系模型。工厂和产品之间的多对多关系需要转换为一个独立的关系模式,工厂和职工之间的一对多关系可以直接转换为一个关系模式。因此,转换后的关系模式如下:
工厂(工厂编号,厂名,地址)
产品(产品编号,产品名,规格)
职工(职工号,姓名,工厂编号,聘期,工资)
生产(工厂编号,产品编号,计划数量)
步骤 4:确定每个关系模式的主码和外码
工厂关系模式的主码是工厂编号,无外码;
产品关系模式的主码是产品编号,无外码;
职工关系模式的主码是职工号,外码是工厂编号;
生产关系模式的主码是(工厂编号,产品编号),外码是工厂编号、产品编号。