IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【数据库系统原理】第四章 数据库建模 E/R模型及其设计规则、约束 -> 正文阅读

[人工智能]【数据库系统原理】第四章 数据库建模 E/R模型及其设计规则、约束

第四章 数据库建模

4.1 E/R 模型

E-R 模型中的主要元素及其概念

  1. 实体 Entity:客观存在并可相互区别的事物。可以是具体的人、事、物或抽象的概念。
  2. 实体集 Entity Set(矩形):相似实体的集合。
  3. 属性 Attribute(椭圆):实体集中的实体具有的某一特性。可以用多个属性来表示一个实体。
  4. 联系 Relationship(菱形):现实世界中,表示事物内部或事物之间的联系;信息世界中,表示实体集内部或实体集之间的联系。

联系的种类

  • 多对一联系

    如果 E 中的任一实体可以通过 R 与 F 中的至多一个实体联系,则 R 是从 E 到 F 的多对一联系。

many-one

  • 一对一联系

    • 如果 R 既是从 E 到 F 的多对一联系,又是从 F 到 E 的多对一联系,则 R 是一对一联系。

    • 当 R 是一对一联系时,F 中的每一个实体最多可以和 E 中的一个实体相联系。

    • 一对一联系也可能会为空

    在这里插入图片描述

  • 多对多联系

    • 定义:如果 R 既不是从 E 到 F 的多对一联系,也不是从 F 到 E 的多对一联系,则 R 是多对多联系。

    • 对定义的理解:

      1. 多对一联系是多对多联系的特殊情况,一对一联系是多对一联系的特殊情况。
      2. 适用于的多对一的任何有用特性,也同样适用于一对一联系;但对多对多关系可能不成立。

      如图:rs
      many-many


  • E-R 图中的箭头表示“最多一个”,若 E 到 F 是多对一关系,则 E -> F。

    • 例:一对一关系
      在这里插入图片描述

多路联系

  • 定义:两个以上实体集之间的联系,由菱形到它设计的每个实体集的连线表示。

  • 多路联系中的箭头

    多路联系中的关系同时发生在两方以上。

    多路联系中,箭头指向的实体集是其他 (n - 1) 个实体集的函数。

    表明该实体集是其他 (n - 1) 个实体集共同唯一决定的结果。


联系中的角色 role

如果在一个联系中,同一个实体集出现两次或多次,则为该实体集与联系间的每一条连线命名,称为角色。


联系的属性

联系的属性,可以通过创建一个实体集,将联系的属性转移到该实体集,并在该实体集和联系之间增加相应的连线。

如图:在这里插入图片描述


多路联系到二元联系的转换 P79

  • 连接(connecting)实体集:它的实体是多路联系的联系集的元组。

  • 针对组成连接实体集的每一个实体集,从连接实体集中引入多对一联系。

    P79,将原来的 Contracts 联系转换为一个实体集,对其中的每一个对应的实体集,添加一个多对一的联系。

    如图:在这里插入图片描述

  • 如果一个实体集扮演多个角色,则每一个角色就是一个联系。


E-R 图中的子类 subclass

  • 定义:子类指实体集中的某些实体,它是原实体集的特例,具有特殊性,比原实体集具有更多的属性。

  • 表示:A isa B(A 是 B 的子类联系,在 E-R 图中是一个三角形,顶角朝向父类)
    在这里插入图片描述

  • 每一个 isa 联系都是一对一的


4.2 E-R 模型的设计规则

  • 忠实性:所设计的实体集、属性和联系必须要能够反映应用需求背景中的实际情况

  • 避免冗余:同一件事在模型中多次出现。

    • 造成存储空间的浪费,需要更多的同步处理机制来保持数据的一致性。
    • 存在危险:① 数据冗余; ② 更新异常的可能。
  • 简单性考虑:用尽可能少的元素来描述模型,必要时再逐个补充。

  • 联系的选择:联系也可能产生冗余。

    • 如果一个联系可以从其他的联系中导出,则应被舍弃。
  • 选择正确的元素种类:实体集或者属性

    • 属性比实体集或联系更容易实现,但不是所有情况都适用。


    • 属性集替代实体集 E 的三个条件

      1. 所有与 E 有关的联系必须有指向 E 的箭头。(E 必须是多对一联系的一方
      2. 若 E 有多个属性,则必须没有属性依赖于其他属性(E 的唯一键是它所有的属性
      3. 没有联系包含 E 多次
    • 满足以上三个条件的实体集 E 转换为属性的方法

      • 如果从实体集 F 到 E 有多对一联系 R,那么删除 R 并把 E 的属性作为 F 的属性,当属性名发生冲突时,进行重命名。
      • 如果有多路联系 R 的箭头指向 E,把 E 的属性作为 R 的属性,并删除从 R 到 E 的弧。

      例:
      在这里插入图片描述
      在这里插入图片描述


    • 连接实体集:用实体集代替多路联系


4.3 E-R 模型中的约束

常见的约束

  • 键约束:属性/属性集,每个实体的键取值唯一;
  • 引用完整性约束:引用值必须先存在
  • 其他约束:联系的度、域约束、自定义约束等。

E-R 模型中的键

  • 定义:实体集 E 的一个属性或属性集。对于E的任意两个不同实体,他们在键上的取值不完全相同(但允许部分相同)

  • 对定义的理解:

    • 每个实体集必须有一个键,若实体集有多个键,则选择一个作为主键;
    • 在 isa 层次中,要求**根实体集(父类)**的键所需的所有属性,并且每个实体集的键都可在父类中找到它的组成部分。
  • 一个实体集键的属性用下划线标出,对于多个键的情况,只标出主键的属性。

    如图,在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:22:35  更:2022-04-09 18:24:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:28:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码