数据库分析与设计:ER与关系模式 您所在的位置:网站首页 图e周见 数据库分析与设计:ER与关系模式

数据库分析与设计:ER与关系模式

2023-01-13 05:03| 来源: 网络整理| 查看: 265

First 设要为某工厂设计一个数据库,需要记录如下信息(有下划线的信息可作为唯一标识): •产品有产品名、规格; •每种产品拥有多道加工工序,每道加工工序只适用于一种产品; •每道工序需要记录相关的工序编号、所需材料、加工要求; •每道工序可以有多道上游工序,每道工序最多有一道下游工序; •职工有职工名、性别、工资; •每个职工只负责加工一道工序,每道工序可有多个职工负责加工,需要记录每个职工的加工时间; 根据以上描述,试画出相应的ER图。 将上面的ER图转换为相应的关系模式,并指出各关系模式的主码。 这类题目的解题思路是: (1)确定实体及其实体的属性 (2)确定实体之间的联系,及其联系的属性 (3)画出对应的ER图 (4)ER图向关系模式转换涉及两方面:①实体的转换;②实体间联系的转换 实体的转换:在从ER图转换为关系模式时,一个实体转换成一个关系模式,实体 的属性就是关系模式的属性,实体的键就是关系的主键 实体间联系的转换:实体间存在三种联系,即1:1(一对一)联系,1:m(一对多)联系,m:n(多对多)联系。 在从ER图向关系模式转换时规则如下: (1)1:1(一对一)联系 方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由两个实体中的任意一个键构成。 方法二:联系与一端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。 (2)1:m(一对多)联系 方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由m端实体的键组成。 方法二:与m端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。 (3)m:n(多对多)联系 转换成新的独立的模式,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成。第一步:确定实体及其实体的属性 根据题意可以看出有五个实体: 产品:产品名,规格(主键:产品名) 工序:工序编号,所需材料,加工要求(主键:工序编号) 上游工序:上游工序编号,所需材料,加工要求(主键:上游工序编号) 下游工序:下游工序编号,所需材料,加工要求(主键:下游工序编号) 职工:职工名,性别,工资(主键:职工名)第二步:确定实体之间的联系,及其联系的属性 产品需要相应的多道工序进行加工,工序需要相应数量的职工进行加工,工序又分为多道上游工序和一道下游工序,所以总工序需要上游工序加工和下游工序加工。所以实体之间的联系均为加工。第三步:画出对应的ER图(关于ER图绘制规范) 在这里插入图片描述第四步:ER图向关系模式转换 在这里插入图片描述 ① 实体的转换 产品(产品名、规格)主码是产品名 工序(工序编号、所需材料、加工要求)主码是工序编号 上游工序(上游工序编号、所需材料、加工要求)主码是上游工序编号 下游工序(下游工序编号、所需材料、加工要求)主码是下游工序编号 职工(职工名、性别、工资)主码是职工名 ② 实体间联系的转换 最终结果如下: 产品(产品名、规格、工序编号)主码是产品名,外键是工序编号 工序(工序编号、所需材料、加工要求、加工时间、下游工序编号、上游工序编号、职工名)主码是工序编号,外键是下游工序编号、上游工序编号、职工名 上游工序(上游工序编号、所需材料、加工要求)主码是上游工序编号 下游工序(下游工序编号、所需材料、加工要求)主码是下游工序编号 职工(职工名、性别、工资)主码是职工名 Second 现欲设计一个电子商务网站系统,该系统需要记录如下信息,其中下划线为标识信息: •客户有客户名、联系电话、配送地址; •商品有商品名、类别; •店铺有店铺名、信誉度、注册地址; •同一商品会在不同的店铺销售,同一店铺会销售不同的商品,各个店铺销售同一商品的销售价格可以不同; •不同的客户会向不同的店铺购买不同的商品,不同客户在同一店铺购买相同商品时成交价格可以不同。 根据以上描述,试画出相应的ER图。 将上面的ER图转换为相应的关系模式,并说明各关系模式的主码。 ER图 在这里插入图片描述 关系模式 客户(客户名、联系电话、配送地址),主码是客户名 商品(商品名、类别),主码是商品名 店铺(店铺名、信誉度、注册地址),主码是店铺名 销售(商品名,店铺名,销售价格),主码是商品名,店铺名 购买(客户名,商品名,店铺名,购买价格),主码是客户名,商品名,店铺名 Third 假定我们要建立一个学术论文数据库,存储如下信息: •学术期刊有期刊编号、期刊名、发行单位; •作者有作者编号、作者姓名、电子邮件; •论文有论文编号、论文标题、摘要、正文; •每篇论文只被一个期刊录用,每个期刊可以录用多篇论文; •每篇论文可以拥有多个作者,每个作者可以撰写多篇论文; •每篇论文可以引用多篇其他论文,每篇论文可以被其他多篇论文所引用。 其中带下划线的属性是实体的标识属性。 请根据以上描述,画出相应的ER图。 将上面的ER图转换为满足3NF的关系模式。 3NF的关系模式: 3NF是指在关系中,一个非主属性既不部分依赖于码也不传递依赖于码。     在得到的关系模式中,只有学术期刊、论文、作者三个关系有属性。在论文和作者两个关系模式中,因为通过论文编号就可以找到论文标题、正文和摘要,因此论文标题、正文、摘要完全依赖于论文编号。同理作者姓名、电子邮件完全依赖于作者编号,且不存在传递依赖,两个关系满足3NF的定义。     而学术期刊关系中,通过期刊编号找到的期刊名、发行单位、论文编号,期刊名、发行单位、论文编号完全依赖于期刊编号,且不存在传递依赖,满足3NF。 ER图 在这里插入图片描述

关系模式 学术期刊(期刊编号,期刊名、发行单位,论文编号),其中论文编号是外键。 论文(论文编号,论文标题,正文,摘要) 作者(作者编号,作者姓名,电子邮件) 引用(论文编号,被引用论文编号) 撰写(论文编号,作者编号)

Fourth 假定我们要建立一个航空数据库,存储如下信息: •每个机场有机场编号、所在城市; •每个航班有航班编号、起飞时间、飞行时间; •飞机有飞机编号、型号、载客人数; •飞行员有飞行员编号、姓名; •每个航班有唯一的起飞机场和降落机场,每个机场会有多个航班起降; •每架飞机可飞行多个航班,一个航班可以由多架飞机执行飞行任务; •每位飞行员只驾驶一架飞机,每架飞机可以由多位驾驶员来驾驶。 其中带下划线的属性是实体的标识属性。 请根据以上描述,画出相应的ER图。 将上面的ER图转换为满足3NF的关系模式。 本题考察的是数据库逻辑设计。 由于原本的ER图中,航班与飞机是多对多的关系,而题目中要求最终是满足3NF的关系模式,所以需要把两张多对多的表,拆分成三张一对一或一对多的表。 逻辑很简单,航班和飞机是多对多的关系,但是每一次的飞行任务,航班和飞机都是一对一的,一架飞机不可能同时飞多个航班,一个航班也不可能由多架飞机组团飞行,所以增加一个飞行记录表,记录每次飞行的飞机编号和航班编号信息。 ER图 在这里插入图片描述 关系模式 机场(机场编号,所在城市)主码:机场编号 航班(航班编号,起飞时间,飞行时间,机场编号)主码:航班编号,外键:机场编号 飞机(飞机编号, 型号,载客人数,飞行员编号)主码:飞机编号,外键:飞行员编号 飞行纪录(记录编号,飞机编号,航班编号)主码:记录编号,外键:飞机编号,航班编号 飞行员(飞行员编号,姓名)主码:飞行员编号 Fifth 假定我们要为某社交平台建立一个数据库,存储如下信息: •每个用户有用户编号、姓名、手机号; •每个群有群编号、群名称; •每个帖子有帖子编号、发帖时间、正文; •每个群有唯一的用户作为群主,一个用户可以担任多个群的群主; •每个群拥有多个用户,每个用户可以加入多个群; •每个帖子只属于一个群,每个帖子有唯一的发布者,每个群可有多个帖子,每个用户可以发布多个帖子; 其中带下划线的属性是实体的标识属性。 请根据以上描述,画出相应的ER图。 将上面的ER图转换为满足3NF的关系模式。 本题考察的是数据库逻辑设计。 由于原本的ER图中,用户和群是多对多的关系(一个用户可以加入多个群,每个群能拥有多个用户,此处特指加入群,而非群主管理群),而题目中要求最终是满足3NF的关系模式,所以需要把两张多对多的表,拆分成三张一对一或一对多的表。 逻辑很简单,用户和群是多对多的关系,但是每一次的加群或踢人(移出群聊)操作,用户和群都是一对一的,一个用户不可能在一次操作中同时加入多个群,所以增加一个群管理记录表,记录每次加群的用户和群编号信息。如果是踢人的话,只要在群管理记录表中删除该用户加入该群的那条信息即可。 ER图 在这里插入图片描述 关系模式 在这里插入图片描述 Sixth 假定要建立一个学校科研项目管理的信息系统,需要管理如下信息: •教师:教师编号、教师姓名; •项目:项目编号、项目名称、资助额; •学生:学生编号、学生姓名、学位,学生按学位分为本科生和研究生。 其中带下划线的属性是唯一标识,其他需满足的要求如下: •每位教师可以负责多个项目; •每个项目只能有一位教师作为项目负责人; •每位本科生只能参加一个项目; •每位研究生可以参加多个项目; •一个项目可以有多位本科生和研究生参加。 [1]请根据以上描述,试画出相应的ER图。 提示:父子实体关系请使用下图表示 在这里插入图片描述 [2]将所画的ER图转换为相应的关系模式,并标出其主键。 本题考察的是数据库逻辑设计。 关系规范化是数据库设计阶段的工作,并且本题并没有提及任何数据库优化的相关事宜,所以考察的并非数据库优化问题。由于原本的ER图中,学生与研究生是多对多的关系,所以需要把这张多对多的表,拆分成两张一对一或一对多的表。 项目和研究生是多对多的关系,但是每一个申请加入项目的申请单号,研究生和项目都是一对一的,所以增加一个项目申请表来记录这些信息。 在实际申请时,如果是本科生,那么如在项目申请表中存在相应的学生编号,就不允许该生再申请其他项目;如果是研究生,则无须检查。 ER图 在这里插入图片描述 关系模式 教师(教师编号,教师姓名)主码:教师编号 项目(项目编号,项目名称,资助额)主码:项目编号 学生(学生编号,学生姓名,学位)主码:学生编号 项目申请(申请单号,学生编号,项目编号)主码:申请单号 Seventh 假定要建立一个关于篮球职业联盟的数据库,需管理如下信息: •每个球队有球队名称、所在城市; •每位球员有球员姓名、薪酬; •每场比赛有比赛编号、比赛时间、比赛结果、参加比赛的主场球队、参加比赛的客场球队。 其中带下划线的属性是唯一标识。其他需满足的要求如下: •每位球员只属于一个球队,每个球队拥有多位球员; •每位球员可参加多场比赛,每场比赛有多位球员参加,同时球员参加每场比赛会有相应的数据统计,包括得分和篮板。 请根据以上描述,试画出相应的ER图。(7分) 将所画的ER图转换为相应的关系模式,并指出其主键。(3分) ER图 在这里插入图片描述 关系模式 在这里插入图片描述 Eighth 在一个关系数据库中,有如下5个关系模式: 在这里插入图片描述 试画出相应的ER图,使得可以从该ER图推导出上述表定义,其中实体和联系的名称可以自定。(8分) 给出创建T5表的SQL语句,属性的数据类型均为int。(2分) ERER图 在这里插入图片描述 T5表的SQL语句 create table ( a1 int, a6 int, a10 int, Primary Key(a1, a6), Constraint fk_PerOrders Foreign Key (a1) References T1(a1), Constraint fk_PerOrders Foreign Key (a6) References T3(a6) )


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有