[数据库系统]数据建模:工程化方法 之 IDEF1x规范

2023-11-15

IDEF1x规范

1.实体

实体(Entity): 一个“实体”表示一个现实和抽象事物的集合,这些事物必须具有相同的属性和特征。这个集合的一个元素就是该实体的一个实例。

实体被区分为独立实体和从属实体;
独立实体:一个实体的实例都被唯一的标识而不决定于它与其他实体的联系
在这里插入图片描述

从属实体:一个实体的实例的唯一标识需要依赖于该实体与其他实体的联系
在这里插入图片描述
IDEF1x规范中的区别:如下图所示

  • 独立实体用直角方形框,从属实体用圆角方形框表示
  • 实体用实体名/实体号标识
  • 独立实体的主关键字没有外键,从属实体的主关键字含有外键
  • 从属实体的实例依赖于独立实体实例存在而存在

在这里插入图片描述
一个实体应有一个或多个能唯一标识实体每一个实例的属性, 即应有一个主关键字及若干次关键字(0或多个)

如果一个完全外来关键字是一个实体主关键字的全部或部分, 那么该实体就是从属实体。相反,如果仅一部分或根本没有外来关键字属性用作一个实体的主关键字,那么,这个实体就是独立实体

2. 联系

联系(Relationship): 是实体之间的一种连接关系

联系大致可以分为四种

联系 定义
标定联系 父实体的主关键字是子实体主关键字的一部分
非标定联系 父实体的主关键字不是子实体的主关键字
分类联系 一个实体实例是由一个一般实体实例及多个分类实体实例构成的
非确定联系 一句话,即多对多关系

具体定义:

标定联系:子实体的实例都是由它与父实体的联系而确定。父实体的主关键字是子实体主关键字的一部分

非标定联系:子实体的实例能够被唯一标识而无需依赖与其实体的联系。父实体的主关键字不是子实体的主关键字。
在这里插入图片描述

工程化要求:

  • 标定联系用实直线表示,非标定联系用虚直线表示
  • 在子实体一侧有圆圈,联系名标注在直线旁
  • 父实体一个实例可与子实体的0个、1个或多个实例相联系,具体情况由
    特定基数而定。在子实体端标注P(1或大于1)/Z(0或1)/n(确定数目)/<省
    略> (0,1或大于1)

非确定联系:多对多关系中,需要引入相交实体来分解
为若干个一对多的联系来表达

确定性联系通过属性继承实现两实体之间的联系,而非确定性联系通过引入相交实体实现两实体的联系

在这里插入图片描述

分类联系:由一个一般实体实例和多个分类实体实例构成的

零件可以分为自制件和外购件,自制件和外购件不仅具有相同的属性,而且还各自具有不同的属性,如自制件需有工艺信息等。
在这里插入图片描述

完全分类联系与非完全分类联系
如果只能是分类之一此分类是分类完全集,还可能有部件/部套还有组合件等此分类是分类非完全集

在这里插入图片描述
工程化要求:

  • 一圆圈带两横线:完全分类联系
  • 一圆圈带一横线:非完全分类联系

在这里插入图片描述
泛化:
若干个实体根据共有的性质,可以合成一个较高层的实体。泛化是一个高层 实体与若干个低层实体之间的包含关系
具体化和泛化在E-R图中用标记为ISA的三角形来表示
在这里插入图片描述

一个IDEF的例子:
在这里插入图片描述
例子2:
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[数据库系统]数据建模:工程化方法 之 IDEF1x规范 的相关文章

  • 防抖和节流怎么做

    防抖和节流都是为了控制代码执行频率 提高性能和用户体验 防抖和节流的区别在于 防抖是在一定时间内只执行最后一次操作 而节流是在一定时间内只执行一次操作 下面是防抖和节流的代码实现 防抖 function debounce fn delay

随机推荐

  • AdapterViewFlipper和StackView的使用

    练习使用AdapterViewFlipper 1 xml布局文件
  • 20230903-闹钟

    app cpp include app h include ui app h int k1 true APP APP QWidget parent QWidget parent ui new Ui APP ui gt setupUi thi
  • IDEA编译器中关闭包显示并排的问题

    问题 IDEA编译器默认是包并排显示 不好操作 解决 取消Compact Middle Packages打勾就可以了
  • CMOS图像传感器——TOF 图像传感器

    一 3D成像技术概述 图像传感器一直以来都是人类研究的热点 但随着当代科学技术发展 人类对于传统的 2D 图像传感器的要求越来高 不仅期望着更高分辨率 更快速度 更大的动态范围 人类加希望能够获得物体深信息 但是 2D 成 像技术现在已经不
  • 接口测试与功能测试的区别~

    今天为大家分享的是我们在日常测试工作中 一定会接触并且目前在企业中是主要测试内容的 功能测试与接口测试 一 功能测试与接口测试的基本概念 1 1 什么是功能测试呢 功能测试 是黑盒测试的一方面 检查实际软件的功能是否符合用户的需求 功能测试
  • 【Java面试题汇总】Java基础篇——基础、修饰符和关键字(2023版)

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 设计模式 牛客面试题 目录 一 基础 1 1 请你说说Java的特点和优点 为什么
  • 方法的重写和重载

    1 重载是在本类中的 就是同一个方法名而内容不一样的方法 也就是同名 同类型的方法 返回类型可以不考虑 允许存在多个同名方法 public void show int int 这个方法名 public void show int int i
  • 裁剪图片vue-cropper实例 基础功能 预览 获取裁剪后图片数据

    在项目中使用到了裁剪图片功能 通过vue croppe实现 安装和引入 npm 安装 npm install vue cropper yarn 安装 yarn add vue cropper 项目中引用引入 这里我的项目是 vue2 组件中
  • 神奇的向量旋转

    在计算几何中最常用的就是向量 叉积 今天来一起研究一下向量的旋转 首先考虑一个向量 p x y 那么它写成坐标的形式就是x iy 这个就是P点在复平面的坐标 问题 假设现在有一个角度d 并且使向量p沿逆时针方向旋转d角度并且不改变其模的大小
  • openLayers画椭圆

    前言 OpenLayers可以通过代码绘制多种几何形状 也可以通过draw类型的交互组件绘制几何形状 官方实例提供了类如圆 折线 矩形 星形等方法 除此之外 椭圆这种图形其实也是非常常见的几何图形 但是官方没有提供现成的API 本文从使用代
  • linux新建文件夹_Linux下配置NAS的一些总结经验

    前言 经历了上一次的Windows Server的痛苦配置以后 我决定换成Linux来配置NAS 相对于Windows平台 Linux平台会更加自由和简洁 而且清晰的权限和后台也要比Win更加干净 唯一的弊端就是要去学不少命令 但是我这里会
  • http通过get方法调用接口代码部分

    请求参数的java类 import java sql Timestamp public class ReqData private String appKey private String sign private String versi
  • CBAM: Convolutional Block Attention Module—— channel attention + spatial attention

    影响卷积神经网络的几大因素 Depth VGG ResNet Width GoogLeNet Cardinality Xception ResNeXt Attention channel attention spatial attentio
  • Python matplotlib绘制散点图

    Python matplotlib绘制散点图 上篇文章介绍了使用matplotlib绘制折线图 参考 https blog csdn net weixin 43790276 article details 109191533 本篇文章继续介
  • CSR867x — 开机是进入可发现可连接还是RSSI配对

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX 作 者 文化人 XX 联系方式 XX 版权声明 原创文章 欢迎评论和转载 转载时能告诉我一声就最好了 XX 要说的话 作者水平
  • Linux特殊文件权限—SUID, GUID and Sticky Bit(s权限,t权限)

    Linux特殊文件权限 权限设置 常用权限 其他权限 s权限 t权限 SUID位 GUID位 Sticky bit 权限设置 常用权限 linux系统内有三种身份 u拥有者 g群组 o其他人 有三种常用权限 r读权限 w写权限 x执行权限
  • 一步一步学Cmake 之 必学的二十个指令(1-10)

    内容 1 add libray 2 option 3 execute process 4 target sources 5 add custom command 6 add custom target 7 function macro 8
  • C++中set用法详解

    1 关于set C STL 之所以得到广泛的赞誉 也被很多人使用 不只是提供了像vector string list等方便的容器 更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作 vector封装数组 list封装了链表
  • 16 个有用的带宽监控工具来分析 Linux 中的网络使用情况

    概述 为什么今天的网络这么慢 您是否在监控 Linux 网络带宽使用情况时遇到问题 如果你想可视化网络中正在发生的事情 以便了解和解决导致网络缓慢的任何原因 今天的工具可以帮助到你 下面列出的工具都是开源的 包括用于监视单个 Linux 机
  • [数据库系统]数据建模:工程化方法 之 IDEF1x规范

    IDEF1x规范 1 实体 2 联系 1 实体 实体 Entity 一个 实体 表示一个现实和抽象事物的集合 这些事物必须具有相同的属性和特征 这个集合的一个元素就是该实体的一个实例 实体被区分为独立实体和从属实体 独立实体 一个实体的实例