三元联系简介

2024-05-25 14:48
文章标签 联系 简介 三元

本文主要是介绍三元联系简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        在数据库设计中或者以后的软考中会遇到一个相对来说有点难度的题,那就是对于ER图中三元联系如何确定的问题,因此在这做一个简单的介绍:


一、确定关系

             三元联系无非就是四中情况而已:(1:1:1);(1:1:N);(1:M:N);(M:N:P)。下面对这几种情况分别作一    个简单的介绍,请看下例:

1)第一种情况1:1:1

计算机生成了可选文字:'I,cchniciallu父snt)Ich均kNolc伙)',k

解释如下:

a) 一名技术员对于每一个项目使用一本手册

 

b) 每一本手册对于每一个项目属于一名技术员

 

c) 一名技术员可能在做多个项目,对于不同的项目维护不同的手册

 

2)第二种情况1:1:N

计算机生成了可选文字:I,rojcclassigll司to.(祀atl吸】11

解释如下:

a)每一个员工在一个地点只能被分配一个项目,但可以在不同地点做不同的项目

 

b)在一个特定的地点,一个员工只能做一个项目

 

c)在一个特定的地点,一个项目可以由多个员工来做

 

3)第三种情况1:M:N

计算机生成了可选文字:、Iallagcr叫,:一}

解释如下:

a)一名经理手下的一名工程师可能参与多个项目

 

b)一名经理管理的一个项目可能会有多名工程师

 

c)做某一个项目的一名工程师只会有一名经理

4)第四种情况M:N:P

 

计算机生成了可选文字:1111、plo》·cc空…Skil·}Pro.j"t

解释如下:

a) 一名员工在一个项目中可以使用多种技能

 

b) 一名员工的一种技能可以在多个项目中使用

 

c) 一种技能在一个项目中可以被多名员工使用

 

二、三元联系类型的转换

当然除了确定其关系外,还有一点就是如何将上面的ER模型关系转换成关系表的形式,方法如下:


(1)、若实体间联系是1:1:1,可以在三个实体类型转换成的三个关系模式中任意一个关系模式的属性中加入另两     个关系模式的键(作为外键)和联系类型的属性。

(2)、若实体间联系是1:1:N,则在N端实体类型转换成的关系模式中加入两个1端实体类型的键(作为外键)和联     系类型的属性。

(3)、若实体间联系是1:M:N,则将联系类型也转换成关系模式,其属性为M端和N端实体类型的键(作为外键)     加上联系类型的属性,而键为M端和N端实体键的组合。

(4)、若实体间联系是M:N:P,则将联系类型也转换成关系模式,其属性为三端实体类型的键(作为外键)加上联     系类型的属性,而键为三端实体键的组合。

 

这篇关于三元联系简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001809

相关文章

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Spring、Spring Boot、Spring Cloud 的区别与联系分析

《Spring、SpringBoot、SpringCloud的区别与联系分析》Spring、SpringBoot和SpringCloud是Java开发中常用的框架,分别针对企业级应用开发、快速开... 目录1. Spring 框架2. Spring Boot3. Spring Cloud总结1. Sprin

Java中Runnable和Callable的区别和联系及使用场景

《Java中Runnable和Callable的区别和联系及使用场景》Java多线程有两个重要的接口,Runnable和Callable,分别提供一个run方法和call方法,二者是有较大差异的,本文... 目录一、Runnable使用场景二、Callable的使用场景三、关于Future和FutureTa

C# 委托中 Invoke/BeginInvoke/EndInvoke和DynamicInvoke 方法的区别和联系

《C#委托中Invoke/BeginInvoke/EndInvoke和DynamicInvoke方法的区别和联系》在C#中,委托(Delegate)提供了多种调用方式,包括Invoke、Begi... 目录前言一、 Invoke方法1. 定义2. 特点3. 示例代码二、 BeginInvoke 和 EndI

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j