E-R图转化为关系模型

E-R图转化为关系模型一 实体集的转换规则一个实体集转换为关系模型中的一个关系 实体的属性就是关系的属性 实体的码就是关系的码 关系的结构是关系模式 关系 关系模式等名词的解释二 实体集间联系的转换规则 1 1 1 联系的转换方法方法一 将 1 1 联系转换为一个独立的关系 与该联系相连的各

一、实体集的转换规则

一个实体集转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的码,关系的结构是关系模式。

 

关系、关系模式等名词的解释

 

二、实体集间联系的转换规则

1、1:1联系的转换方法

E-R图转化为关系模型 

方法一:

将1:1联系转换为一个独立的关系:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,且每个实体的码均是该关系的候选码。

       联系形成的关系独立存在:    

       职工(职工号,姓名,年龄)

       产品(产品号,产品名,价格)   

       负责(职工号,产品号)

方法二:

将1:1联系与某一端实体集所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体集的码。

      “负责”与“职工”两关系合并:

       职工(职工号,姓名,年龄,产品号)

       产品(产品号,产品名,价格)

 

       也可以“负责”与“产品”两关系合并:

       职工(职工号,姓名,年龄)

      产品(产品号,产品名,价格,职工号)

三、1:n联系的转换方法

E-R图转化为关系模型 

方法一:

一种方法是将联系转换为一个独立的关系,其关系的属性由与该联系相连的各实体集的码以及联系本身的属性组成,而该关系的码为n端实体集的码。

          联系形成的关系独立存在:

          仓库(仓库号,地点,面积)

          产品(产品号,产品名,价格)

          仓储(产品号,仓库号,数量)

在n端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变。

          仓库(仓库号,地点,面积)      

          产品(产品号,产品名,价格,仓库号,数量)

 

四、m:n联系的转换方法

一个m:n联系转换为一个关系。

E-R图转化为关系模型 

转换方法为:

与该联系相连的各实体集的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合(该码为多属性构成的组合码)。

          转换的关系模型为:

          学生(学号,姓名,年龄,性别)

          课程(课程号,课程名,学时数)

          选修(学号,课程号,成绩)

五、三个或三个以上实体集间的多元联系的转换方法

(1)对于一对多的联系,转换为关系模型的方法是修改n端实体集对应的关系,即将与联系相关的其他1端实体集的码和联系自身的属性作为新属性加入到n端实体集中

E-R图转化为关系模型 

课程(课程号,课程名,学分,学时)

教师(教师号,教师名,性别,职称,课程号)

参考书(书号,书名,出版社,主编,课程号)

 

(2)对于多对多的联系,转换为关系模型的方法是新建一个独立的关系,该关系的属性为多元联系相连的各实体的码以及联系本身的属性,码为各实体码的组合。

E-R图转化为关系模型 

供应商(供应商号,供应商名,地址)

零件(零件号,零件名,单价)

产品(产品号,产品名,型号)

供应(供应商号,零件号,产品号,数量)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198508.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午3:04
下一篇 2026年3月26日 下午3:04


相关推荐

  • Eclipse导入项目java文件中文乱码

    Eclipse导入项目java文件中文乱码我这次遇到的问题是重新导入之前的项目发现项目 java 文件中文乱码 我首先确认下 java 文件的编码是什么格式 选择乱码的 java 文件右键选择 properties 进入该文件的设置页面 选择 resources 属性 在页面下方可以看到 Textfileenco 项 该项表示该 java 文件的编码格式 如果该编码格式是 default 即 determinedfr g

    2026年3月17日
    1
  • pl sql developer中的CnPlugin插件,sql代码自动补全提示,批量添加单引号「建议收藏」

    pl sql developer中的CnPlugin插件,sql代码自动补全提示,批量添加单引号「建议收藏」一.安装使用plsqldeveloper的版本7以上,下载CnPlugin插件,文件解压缩后,将里面的CnPlugin.dll和CnPlugin文件夹放到你的plsql的安装路径中的PlugIns文件夹的下面如下图:二.打开plsqldeveloper软件,会显示出你安装的CnPlugin插件三….

    2022年10月10日
    6
  • 它们的定义UIAlertView

    它们的定义UIAlertView

    2022年1月8日
    40
  • macbook如何安装双系统_双系统安装方法

    macbook如何安装双系统_双系统安装方法1.官网https://www.microsoft.com/zh-cn/software-download/windows10ISO进入官网下载win10(因为win10仅支持win10专业版不要下家庭中文版)语言:简体中文64位2.用迅雷下否则直接下载时间会很长Mac迅雷-轻体验,大改变(拖动迅雷至文件夹,即可安装,macOS10.15安装后请到应用程序找到图标,右键打开)点击迅雷的加号新建任务在浏览器复制之后自动弹出迅雷下载对话保存位置至桌面点击下载打开浏览器.

    2026年4月17日
    6
  • java实现靠边隐藏窗口

    java实现靠边隐藏窗口

    2022年2月23日
    76
  • ForkJoin之RecursiveAction和RecursiveTask的简单使用

    ForkJoin之RecursiveAction和RecursiveTask的简单使用ForkJoin之RecursiveAction和RecursiveTask的简单使用Java提供的多线程可以提高CPU的利用率,现在的CPU都是多核多线程,如果不好好利用,只运行单线程程序,会使得CPU的其他核心空闲,浪费宝贵的计算机资源。编写好的程序不容易,编写好的多线程程序更难。JDK1.7开始,Java提供了Fork/Join框架,可以方便的将一个大任务拆分成多个小任务,利用多个线程…

    2025年11月25日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号