数据库原理及应用(十三)E-R图、关系模式

2023-05-16

数据库设计的过程

        数据分析->数据建模->关系数据库模式->关系数据库管理

        用户需求->概念模型(E/R Model)->逻辑模型(三层结构)

        现实世界->信息世界->机器世界

概念设计工具E-R图

        E-R图的组成元素:实体、属性、联系(而不是关系)

        概念设计阶段常用的模型:实体联系模型(E-R模型--属于概念模型)

        E-R图各部件的表示

内容图形词属性
属性椭圆形框名词
实体矩型框名词
联系菱形框动词

        实体标识符(主键),属性带下划线

        外键标识为波浪线

        联系的分类

                一元联系 、二元联系、三元联系

        E-R模型设计的步骤

                1.首先设计局部ER模型

                2.将各局部ER模型综合成一个全局ER模型

                3.将全局ER模型进行优化,得到最终的ER模型(概念模型

                设计细节

                属性:             不可再分

                                        实体和属性的关系只能是1:n

                                        不同实体类型的属性之间应该无直接联系

                每个实体都必须有至少一个实体标识符

         ER图转换为关系模式集

                步骤1(实体转换),将每个实体转换为一个关系模式(属性对应该关系模式的属性实体标识符为关系模式的

                 步骤2(转换联系)

                        1:1联系:在任意一个实体中加入另一个实体的码和联系类型的属性(随便加

                        1:n联系:在n段实体的关系模式加入1端实体的键和联系属性(多方加

                        n:m联系:将联系也转换为关系模式,其属性为两端实体的键+联系类型(键为两端实体键的组合)

                        实例1

         使用ER模型进行逻辑设计的步骤

                1.导出初始的关系模式集

                2.规范化处理

                        逐一考察关系模式

                        判断它们是否满足规范要求

                3.模式评价

                4.模式修正

                5.设计子模式

逻辑设计工具

        逻辑设计的工具--规范化理论

        数据依赖

                关系模式形式化

                        R(U,D,DOM,F)

                        R:关系名        U:属性名集合        D:所有来自的域        DOM:映象集合

                        F:依赖关系集合

                        常用:        R(U)        R(U,F)

                数据依赖:定义属性值间的相互关联(主要体现在值的相等与否)

                        不合理依赖会造成:数据冗余太大、更新异常、插入异常、删除异常

                        解决方法:通过分解关系模式来消除不合适的数据依赖

                依赖的表示:        Sno->Sdept:Sno决定Sdept

                                              (Sno,Cname)->Grade:Sno和Cname共同决定Grade

                        F={Sno->Sdept,Sdept->Mname,(Sno,Cname)->Grade}

                 函数依赖

                                X->Y:X函数确定YY函数依赖于XX是决定属性集

                                反过来不一定成立

                                        平凡的函数依赖:X->Y,且Y属于X    (Sno,Cno)->Sno

                                        非平凡的函数依赖:X->Y,且Y不属于X  (Sno,Cno)->Grade

                                        完全函数依赖:X->Y,但X的任意子集不能决定Y  一一对应

                                        部分函数依赖:X->Y但Y不完全依赖于X          多组属性共同决定

                                        传递函数依赖:X->Y, Y->Z,且Y不属于X,Y不能决定X

                       

                                候选码:在R(U,F)中存在一个属性K,若K完全决定U,则K为R的一个候选码

                                        候选码可以唯一的标识一个元组

                                主码:若存在多个候选码则选定其中一个作为主码

                                主码外码共同提供了表示关系连接的一种手段

        范式

                符合某一种级别的关系模式的集合

                范式的种类:        1NF,2NF,3NF,BCNF,4NF,5NF

                1NF

                        关系模式中的属性不再可分

                        1NF是关系模式最基本的要求

                2NF

                        每个非主属性完全依赖于码

                3NF

                        不存在非主属性对码的传递依赖

                        采用投影分解法

                BCNF

                        BCNF是修正的3NF

                        若X->Y,且Y不属于X,则X中必定含有候选码(左边都包含候选码

                        特性:         1.非主属性都完全依赖于候选码

                                            2.主属性都完全依赖于不包含它的候选码

                                            3.没有任何属性完全依赖与非码的任何一组属性

                        若R属于3NF,且R仅有一个候选码,则R必属于BCNF

                        若R属于BCNF,那么在函数依赖的范畴内已经实现了模式的彻底分解,达到了最高规格的规范化

         关系分解

                如果分解后的关系可以通过自然连接恢复原来的关系,那么它便没有丢失数据

                无损连接性:分解后的结果通过自然连接与原结果相等;只有具有无损连接性的分解才能保障不丢失信息。

                        无损连接性不一定能解决插入异常、删除异常、修改异常、数据冗余等问题,因为它在分解的时候会丢失原关系中的函数依赖

                保持函数依赖的模式分解

                判断一个关系模式的分解:        1.有无损连接性->不丢失信息

                                                                    2.保持函数依赖->减轻/解决异常情况

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

数据库原理及应用(十三)E-R图、关系模式 的相关文章

  • C++和C的区别(汇总)

    1 C是面向过程的语言 xff0c 而C 43 43 是面向对象的语言 2 C和C 43 43 动态管理内存的方法不一样 xff0c C是使用malloc free函数 xff0c 而C 43 43 除此之外还有new delete关键字
  • PX4学习笔记—通过串口发送自定义数据

    最近因为项目需要实现一个通过pixhawk串口收发自定义数据的功能 搜索发现 xff0c 博客上大神们FantasyJXF FreeApe的博文已经详细介绍了通过pixhawk串口读取自定义数据 xff0c 这部分功能实现后就可以将自己开发
  • 一步步入门搭建SpringSecurity OAuth2(密码模式)

    什么是OAuth2 xff1f 是开放授权的一个标准 xff0c 旨在让用户允许第三方应用去访问改用户在某服务器中的特定私有资源 xff0c 而可以不提供其在某服务器的账号密码给到第三方应用 大概意思就是比如如果我们的系统的资源是受保护的
  • STM32驱动SG90舵机与HC_SR04超声波模块

    前言 一 项目涉及的内容 项目简介 二 模块实操 1 SysTick系统定时器模块 2 SG90 舵机模块 3 HC SR04 超声波模块 4 main函数 总结 前言 这篇文章的内容主要对一个超声波 43 舵机小项目进行总结 xff0c
  • STM32基于IIC协议的OLED模块的使用

    前言 一 项目涉及的内容 项目简介 二 模块实操 1 IIC模块 1 1 IIC协议格式 1 2 开始信号与停止信号 1 3 写数据 1 3 1 硬件IIC代码编写 1 3 2 软件模拟IIC代码编写 2 OLED板块 前言 本篇文章对使用
  • STM32DMA功能详解

    目录 一 DMA的基本介绍 1 什么是DMA xff08 DMA的基本定义 xff09 2 DMA传输参数 3 DMA的主要特征 二 DMA功能框图 1 DMA请求 2 通道 3 仲裁器 三 DMA 数据配置 1 从哪里来到哪里去 外设到存
  • STM32对FreeRTOS单片机实时操作系统的移植

    前言 一 FreeRTOS是什么 二 FreeRTOS的移植 1 资料下载 2 开始移植 2 1 移植Source源码文件 2 2 添加 FreeRTOSConfig h 2 3 添加SYSTEM文件夹 2 4 复制 main c 文件进行
  • C语言 指针中的常见名称与用法

    目录 前言 一 指针是什么 二 指针与数组 数组指针 指针数组 三 指针与常量 指针常量 常量指针 四 指针与函数 指针函数 函数指针 前言 指针是C语言中大家接触的比较早但是也是内容比较多和实用的一块知识点 xff0c 之前虽然也大概知道
  • 过拟合及常见处理办法整理

    过拟合及常见处理办法整理 jingbo18的博客 CSDN博客 模型过拟合如何解决 判断方法 过拟合 xff08 over fitting xff09 xff0c 机器学习模型或者是深度学习模型在训练样本中表现得过于优越 xff0c 导致在
  • OBS 安装与考试参数设置及屏幕无法完全捕获、录屏不完整的解决方法

    目录 一 OBS 的下载与安装 二 OBS 考试参数设置 三 问题解决 xff08 1 xff09 屏幕无法完全捕获 xff08 2 xff09 录屏不完整 一 OBS 的下载与安装 官网 xff08 Open Broadcaster So
  • kube-proxy源码阅读(iptables实现)

    Reference 文章目录 1 入口2 ProxyServer创建及调用3 ProxyServer 核心调用流程3 1 func o Options Run err3 2 func o Options runLoop error3 3 f
  • TypeError: Expected Ptr<cv::UMat> for argument ‘image‘

    python3 43 opencv TypeError Expected Ptr xff1c cv UMat xff1e for argument image 输入的不是UMat格式 xff0c 使用cv2 UMat img get 转化一
  • SLAM中的因子图

    看论文 xff0c 发现很多SLAM方面的文章都涉及图优化 xff0c 其中更包含有因子图 正好前段时间看了PRML xff0c 将其进行整理 xff08 诶 xff0c 果然理论的内容就是得及时用起来 xff0c 现在又记不太清楚了 xf
  • TFmini Plus IIC在开源飞控 pixhawk上的应用

    TFmini Plus 可以在 Pixhawk 中使用 xff0c 以避开障碍物 本文结构 xff1a 1 TFmini Plus IIC在开源飞控 pixhawk上的应用 2 TFmini Plus参数设置 3 配置说明 1 TFmini
  • TFmini Plus 在开源飞控 pixhawk 上的应用

    TFmini Plus 在开源飞控 pixhawk 上的应用 TFmini Plus 可以直接连接 Pixhawk 的串口使用 飞行器可以使用 TFmini Plus 来实现定高或 者避障功能 本文档适用于 pixhawk ArduCopt
  • TFmini在开源飞控PX4上的应用

    TFmini在开源飞控PX4上的应用 TFmini 是一款小型激光雷达模组 主要实现实时 无接触式的距离测量功能 xff0c 具有测量准确 稳定 高速的特点 产品型号 xff1a TFmini 产品名称 xff1a 小型激光雷达模组 制造商
  • TFmini Plus在开源飞控PX4上的应用

    TFmini Plus在开源飞控PX4上的应用 PX4有着自己独特的优势 xff0c 受到广大爱好者的喜爱 TFmini Plus是北醒公司推出的性价比极高的激光雷达 xff0c 受到广大爱好者的追捧 本文介绍TFmini Plus和PX4
  • TFmini在开源飞控pixhawk上的应用

    TFmini在开源飞控pixhawk上的应用 TFmini可以直接连接Pixhawk的串口使用 飞行器可以使用TFmini来实现定高或者避障功能 本文档适用于pixhawk ArduCopter V3 6 2或更高版固件 xff08 注 x
  • 北邮oj-旋转图像

    include lt bits stdc 43 43 h gt using namespace std define maxn 105 int buf maxn maxn int ans maxn maxn int main int T N
  • 获取激光雷达数据

    从激光雷达获得距离 搭建turtlebot仿真环境 下载 sudo apt get install ros kinetic turtlebot 配置环境 sudo apt get install ros kinetic joy 将turtl

随机推荐

  • kube-proxy BoundedFrequencyRunner导致死循环分析

    kube proxy使用了k8s官方工具库中的BoundedFrequencyRunner实现基于事件及时间间隔的配置同步 1 BounderFrequencyRunner构建 1 1 相关核心代码 name Runner名称 func s
  • 捷联惯导系统学习2.6(圆锥误差补偿多子样算法)

    若圆锥运动的四元数更新方程为 xff1a Q t m 61 Q
  • 捷联惯导系统学习5.1(最小方差估计和线性最小方差估计)

    最小方差估计 最小均方误差MMSE 也称条件期望估计 使方差最小即 xff1a X 系 统 状 态 量
  • 13-Websocket协议与MQ协议

    Websocket协议 基于TCP全双工协议 xff0c 即可以从客户端向服务器端发送请求 xff0c 也可以从服务器端主动向客户端发送消息 HTTP协议只能从客户端向服务器发送请求 xff0c 服务器端收到请求后 xff0c 做出响应 x
  • HeadFirest设计模式学习笔记

    设计原则 1 经常会发生变化的部分应该从整体中抽取并封装起来 xff0c 以便以后可以很轻易的对这部分代码进行改动或者是扩充 xff0c 而不会影响到不需要变化的其他部分 2 针对接口编程 xff0c 而不是针对实现编程 3 多用组合 xf
  • ROS控制UR机器人(1)-安装与配置

    一 Universal robot的软件包安装 方法1 xff1a 直接安装Universal Robots机器人的功能包 xff08 kinetic及以下版本 xff09 span class token function sudo sp
  • 机器视觉(5)-realsense相机使用教程

    realsense相机是英特尔开发的RGBD相机系列 xff0c 我们可以通过相机得到彩色图和深度图 xff0c 方便我们后续进行视觉开发 根据不同的需求 xff0c 我们一般要经过图像采集的几个步骤 xff0c 具体如下 一 打开相机并获
  • 激光雷达与毫米波雷达对比

    激光雷达是一种采用非接触激光测距技术的扫描式传感器 xff0c 其工作原理与一般的雷达系统类似 xff0c 通过发射激光光束来探测目标 xff0c 并通过搜集反射回来的光束来形成点云和获取数据 xff0c 这些数据经光电处理后可生成为精确的
  • Android Studio Build Output 栏内乱码的解决方案

    一 如图1 所示 xff0c Android Studio版本是4 1 3 xff0c AS工具Help About即可看到下图 图1 二 乱码如下图 xff1a 如图2所示 xff0c Build Output栏中出现了乱码 xff0c
  • 网络工程师必须搞清楚MPLS与专线的区别

    今天同事突然问我一个问题 xff0c MPLS与专线的区别 我想了想 xff0c 然后稀里糊涂的说了一堆 xff0c 感觉自己没讲清楚 xff0c 所以 xff0c 网上找了点资料 xff0c 结合自己的理解 xff0c 码文如下 xff1
  • 我的ADRC调参经验总结

    提示 xff1a 本文是在前人基础上搭建的ADRC模型 xff0c 并根据这一模型学习如何对其进行调参时产生的 xff0c 部分结论来自论文 目录 前言一 控制系统简介二 调参步骤1 前后结果效果对比2 调参经验 总结参考链接 前言 ADR
  • k8s client-go workqueue

    1 基础队列 1 1 基础队列接口 type Interface interface Add item interface 向队列中添加一个元素 xff0c interface 类型 xff0c 说明可以添加任何类型的元素 Len int
  • 相机与imu的标定(Kalibr)

    在进行vio算法开发前最重要的事是对设备内参外参的标定 xff0c 其准确性直接决定了算法的有效性 xff0e 这里我将对最著名的kalibr标定工具的使用步骤进行说明 xff0c 包括安装 相机标定 imu标定 相机与imu联合标定等步骤
  • 解决cv_bridge依赖opencv版本问题

    1 问题来源 在安装ros的过程中 xff0c 系统会默认安装cv bridge库 xff0c 但该库指定了依赖的opencv库路径 xff0c 拿ros melodic版本来说 xff0c 默认依赖opencv库 usr lib x86
  • 使用ORB_SLAM3运行Realsense T265

    关于硬件 官网说明 使用说明 Realsense T265是一款跟踪相机 xff0c 配有两个FOV为111 7 x 108 6的广角相机 xff0c 并且带有IMU BMI055 惯性测量单元 设备内部配有vpu处理器并嵌入了建图和定位算
  • ceres-solver和g2o性能比较

    前言 ceres solver 和 g2o 是slam领域常见的优化器 xff0c 其中ceres solver被vins mono使用 xff0c 而g2o被orb slam3使用 xff0c 因此到底哪个优化器更适合于在slam算法开发
  • FreeRTOS的vTaskDelete使用说明

    FreeRTOS的vTaskDelete使用说明 函数说明 参数 xff1a xTaskToDelete 要删除的任务的任务句柄 返回值 无 说明 删除一个用函数xTaskCreate 或者xTaskCreateStatic 创建的任务 x
  • 机器学习——随机森林(Random Forest)

    1 随机森林 xff08 random forest xff09 简介 随机森林是一种集成算法 xff08 Ensemble Learning xff09 xff0c 它属于Bagging类型 xff0c 通过组合多个弱分类器 xff0c
  • 《基础知识——C和C++的主要区别》

    C和C 43 43 的主要区别 设计思想上 xff1a C 43 43 是面向对象的语言 xff0c 而C是面向过程的结构化编程语言 语法上 xff1a C 43 43 具有封装 继承和多态三种特性 C 43 43 相比C xff0c 增加
  • 数据库原理及应用(十三)E-R图、关系模式

    数据库设计的过程 数据分析 gt 数据建模 gt 关系数据库模式 gt 关系数据库管理 用户需求 gt 概念模型 E R Model gt 逻辑模型 xff08 三层结构 xff09 现实世界 gt 信息世界 gt 机器世界 概念设计工具E