数据库概论笔记第五章(ER模型)

2023-11-20

E-R模型

1.建立模型

数据库可以被定义为实体的集合和实体间的关系。

实体集:相同类型的实体的集合

属性类型:实体集都拥有的描述性的属性

域domain:每个属性允许值的集合

简单simple属性:不可分割的属性

复合composite属性:可拆分

单值属性:一个实体只有一个值

多值属性:一个实体可以有多个值

派生derived属性:通过一个属性的值生成出另一个属性的值

联系集:联系之间的所有实体的集合,所有实体集的子集,也可以有属性。

度degree:联系集里有多少实体集。ternary relationship三元联系。二元binary。

二元联系的映射基数Mapping Cardinality:一对一、一对多、多对一、多对多。

2.参与约束Participation Constraints

全部参与total:所有实体都参加至少一个关系

部分参与partial:只有一些实体参与关系

一对多:

超码:一个或多个属性能区别实体

候选码:超码去掉冗余

联系集包括实体集的主码和属性。所有主码作为联系集的主码。

a是联系集的属性。

选择候选码时需要注意映射关系。对于都可以选择的主码根据语义进行选择。

3.ER图

矩形Rectangles表示实体集

菱形Diamonds表示关系集

线将属性连接到实体集,将实体集连接到关系集。

椭圆Ellipse表示属性

双椭圆表示多值属性

虚线Dashed椭圆表示派生属性

下划线表示主键属性

基数约束:Cardinality Constraints

—>表示1、—表示多,箭头指向1

===表示全部参与

基数限制表示参与度

顾客最少可以不借或者无限借,loan参与度最小最大都是1,0…*部分参与,1…1全部参与

三元关系最多只有一个箭头。

表示任何职员任何支行只能有一个岗位

可以表示:每个A都有唯一B和C、每个AB都有唯一C而且每个AC都有唯一B

可以使用角色role指定实体如何通过关系集进行交互

4.设计

不要用一个实体的主码作为另一个实体集的属性

多个客户拥有同一笔贷款,需要单独建立属性,避免loan产生复制。

三元组转化,三元组只能有一个箭头

一对多的情况下A->B,可以将AB的关系转换成B(一)是A(多)的属性

一对一可以放在任意一侧多对多只能放在关系集中。

三元转换成二元:创建集合E,放置特殊标识符,将R的属性交给E,对R中每一个关系(a,b,c),创建E中一个新实体ei,把(ei,a)、(ei,b)、(ei,c)添加到Ra,Rb,Rc中

缺点:需要为E创建标识符,n元关系集可能展示的更清晰,三元关系的约束不一定能转换成二元关系的约束。

5.弱实体集

弱实体集week entity set:没有主码的实体集(所有属性都无法形成主码)

弱实体集依赖于标识实体集。

标识实体就是弱实体集和强实体集关联。

表示为双菱形

分辨符:用于区分弱实体集的实体的一组属性

虚线下划线是分辨符(弱实体集中),分辨符强实体集主码构成弱实体集的主码

弱实体集必须通过多对一并且全部参与到强实体集,中间的关系集就是标识实体集

payment的主码就是(loan_number、payment_number)

6.其他ER

特殊化specialization:属性继承,通过ISA(三角形)特殊化为其他实体集。

一般化Generalization:自底向上将多个实体结合合并成更高的实体集。

ISA可以作为超类superclass和子类subclass。

实体可以通过约束进行分类,条件condition-defined(判断是否符合某个条件),不相交Disjoint和重叠Overlapping,total必须属于低层实体集合和partial不必属于低层实体(高层实体的属性是否需要属于低层实体)。

高层实体high-level entity:父类实体

底层low实体:子类

聚合:两个实体集之间

10个实体集,7个联系,3个m:n,4个n:1, : 一共13个表(10+3)

7.模式

模式schema:主码实体集关系集表示为数据库内容的关系模式

E-R图可以使用一组模式表示

每个实体集和关系集都有唯一指定名称模式,每个模式都有许多列(有唯一列名)

强实体集减少为相同属性的模式,弱实体集变成一个包含强实体集主码的列的

多对多关系表示为两个实体集的主码的属性以及关系集描述性属性

多对一和一对多关系集可以向多的一侧添加一的主键

对一对一关系集,选择任意一方作为多来添加到其他表中

如果多是partial的,多的一端可能为空

对应于将弱实体集与其标识的强实体集连接起来的关系集的模式是冗余的

对于复合属性需要将属性进行展开

实体E的多值属性M通过单独模式EM表示。EM具有E的主码和M的属性。多值属性的每个值映射到EM上关系的独立元组。

8.特殊化表示成模式

1.方法1

高层实体建立一个模式,底层实体用高层实体的主码和自己的属性作为模式

缺点:获取需要访问两个模式

2.方法2

每个实体都形成一个模式,包含自己的属性和继承的属性

如果所有特殊化是total的,那么person模式就不需要了。

3.聚合的表示

创建包含聚合关系的主键、关联实体集的主键、任何描述性属性。

manages (employee_id, branch_name, title, manager_name)

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

数据库概论笔记第五章(ER模型) 的相关文章

随机推荐

  • Python机器学习从零开始(五)算法审查

    目录 1 审查分类算法 1 1线性算法审查 1 2非线性算法审查 2 审查回归算法 2 1线性算法审查 2 2非线性算法审查 3 算法比较 总结 程序测试是展现BUG存在的有效方式 但令人绝望的是它不足以展现其缺位 艾兹格 迪杰斯特拉 Ed
  • 2022322

    没有人天生就会某一项技能 只有在后天的成长中 不断的练习和重复 才会越来越熟练 爆发吧 小宇宙 基础知识 1 html css 2 js vue的使用 1 vue的原理和高级用法 1 html css 3 vue cli4中的webpack
  • Function overloaded in C++

    重载定义 如果两个函数名字相同并且在相同的域中被声明 但是参数表不同 则它们就是重载函数 重载函数条件 2 1 参数类型或参数个数不同 2 2 返回值不同不能视为重载 2 3 是否为常函数不能视为重载 2 4 对于普通类型参数只有const
  • C# 委托详解

    文章目录 前言 一 委托是什么 1 官方关于委托的概述 2 通俗解释 二 如何使用委托 1 使用委托详解 1 申明委托 2 编写委托对应的方法 3 实例化委托 4 使用委托 5 委托使用的综合案例 2 使用多播委托详解 委托链 1 关于多播
  • delphi 软件在线人数统计_Redis实现实时统计在线用户人数的几种方案

    一个业务系统网站每天人数的访问量是多少 在线人数是多少 这种业务我们在开发中就要预留 也是在我们的设计范围内的咯 因为一个正在运营的网站 每天都会用到统计 那在线人数是如何统计的呢 这里有几种方案 代码用laravel框架 可以作为开发中参
  • PostgreSQL9.4: jsonb 性能测试 - Postgres2015全国用户大会--重磅嘉宾佳作分享(谭峰)

    Postgres2015全国用户大会 重磅嘉宾佳作分享 谭峰 友情提示 2015Postgres全国大会将于2015年11月20至21日在北京举行 主会场设在北京丽亭华苑酒店 我们期待您的到来 2015Postgres全国大会官方报名地址
  • PAT (Advanced Level) 1001 A+B Format

    1001 A B Format 20 分 Calculate a b and output the sum in standard format that is the digits must be separated into group
  • 软件工程——软件实现

    在我们做好对软件的需求分析 设计之后 就是软件的实施部分了 主要包括软件实现 软件测试 测试方法 黑盒测试 主要是检查功能 数据 以及接口的问题 具体方法有等价划分 边界值分析 错误推断法 白盒测试 对程序所有逻辑路径进行测试 测试方法按覆
  • 点云Las文件是什么?

    点云Las文件是什么 1 LIDAR数据 2 LAS点云规格 3 LAS Header头文件 4 LAS Header版本与LAS点格式 5 点云Header与点格式对应关系 6 示例 查看点云文件的规格和格式 7 LAS读取可参考 pyl
  • python读取CT医学图像

    需要安装OpenCV和SimpleItk SimpleItk比较简单 直接pip install SimpleItk即可 代码如下 coding utf 8 import SimpleITK as sitk import cv2 LKDS
  • 5-Openwrt package Makefile

    Openwrt package Makefile 在 Openwrt main Makefile 章节里面有说道主Makefile会通过include package Makefile调用package下的Makefile package下
  • 华为OD机试(JAVA)真题 -- 斗地主

    1 斗地主起源于湖北十堰房县 据传是一位叫吴修全的年轻人根据当地流行的扑克玩法 跑得快 改编的 如今已风靡整个中国 并流行于互联网上 牌型 单顺 又称顺子 最少5张牌 最多12张牌 3 A 不能有2 也不能有大小王 不计花色 例如 3 4
  • 利用Java EE相关技术实现一个简单的Web聊天室系统

    利用Java EE相关技术实现一个简单的Web聊天室系统 1 编写一个登录页面 登录信息中有用户名和密码 分别用两个按钮来提交和重置登录信息 2 通过请求指派来处理用户提交的登录信息 如果用户名为本小组成员的名字且密码为对应的学号时 跳转到
  • Windows PowerShell初始化conda后(init conda)速度变慢,如何关闭?

    方法1 conda config set auto activate base false 结果 Windows PowerShell 在开启后不会激活conda base 环境 但开启速度仍然比原先很慢 gt 1000ms 方法2 在 C
  • coc安装插件报错 “unable to verify the first cetificate”

    通过 CocCconfig 打开coc settings json增加一个配置 http proxyStrictSSL false 参考 https github com neoclide coc nvim issues 1514 issu
  • cd mysql 权限不够_Mysql 8.x初次安装过程中遇到MySQL 服务无法启动的解决方法

    小白 测试个软件需要安装MySQL 第一次就遇到MySQL服务无法启动等一些问题 经过多方搜索尝试 初次安装并修改密码过程如下 文章中大写MySQL代表MySQL数据库软件自身 小写mysql8代表作者MySQL数据库软件解压后的文件路径
  • 华为交换机限速配置命令2016

    qos lr cir 1024 cbs 20048 1 华为s2300交换机如何配置端口限速 使用QOS命令来配置 网络带宽的10M 100M和1000M的单位是bps 即bit s 位 秒 而我们通常所说的100M大小的文件 这里的单位是
  • 关于面试总结13-app测试面试题

    前言 现在面试个测试岗位 都是要求全能的 web 接口 app啥都要会测 那么APP测试一般需要哪些技能呢 面试app测试岗位会被问到哪些问题 怎样让面试管觉得你对APP测试很精通的样子 本篇总结了app测试面试时候经常被问的10个相关问题
  • 解决深度下外接显示屏调整屏幕分辨率的问题

    将以下命令粘贴进去即可 cvt 1366 768 60 1368x768 59 88 Hz CVT hsync 47 79 kHz pclk 85 25 MHz Modeline 1368x768 60 00 85 25 1368 1440
  • 数据库概论笔记第五章(ER模型)

    E R模型 1 建立模型 数据库可以被定义为实体的集合和实体间的关系 实体集 相同类型的实体的集合 属性类型 实体集都拥有的描述性的属性 域domain 每个属性允许值的集合 简单simple属性 不可分割的属性 复合composite属性