数据建模和设计for CDGP第五章——如何绘制鸭掌图

news2024/11/16 20:25:19

302e2eed50e29874f79111cba0e04dc6.jpeg

CDGP中第五章必考一个数据模型设计题,分值10分。


主要考点

1、围绕一个场景如(外卖送餐、图书馆管理系统等)进行关系型逻辑数据模型设计2、要求满足范式化(通常为3NF)3、突出重点的实体并描述实体间的关系


加gzh“大数据食铁兽”,了解更多CDGA/CDGP考试知识点


重点概念

  • 逻辑模型:

逻辑数据模型(Logical Data Model, LDM) 是对数据需求的详细描述,通常用于支持特定用法的语境中(如应用需求)。逻辑数据模型不受任何技术或特定实施条件的约束。逻辑数据模型通常是从概念数据模型扩展而来。

  • 范式:

重点遵循3范式即可。l) 第一范式 (INF) 。确保每个实体都有一个有效的主键,每个属性都依赖于主键,而且消除冗余的分组,以确保每个属性的原子性(不能有多个值存在)。第一范式包括了与通常称为关联实体的附加实体的多对多关系解析。
2) 第二范式 (2NF) 。确保每个实体都有最小的主键,每个属性都依赖于完整的主键。
3) 第三范式 (3NF) 。确保每一个实体都没有隐藏的主键,每个属性都不依赖于键值之外的任何属性(仅依赖于完整的主键)。

3NF是对字段的冗余性,要求任何字段不能由其他字段派生出来,它要求字段没有冗余,即不存在传递依赖;

表: 学号, 姓名, 年龄, 学院名称, 学院电话

因为存在依赖传递: (学号) → (学生)→(所在学院) → (学院电话) 。

可能会存在问题:

●数据冗余:有重复值;

●更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况 。

正确做法:

学生:(学号, 姓名, 年龄, 所在学院);

学院:(学院, 电话)。

  • 信息工程法IE-鸭掌图

在关系建模中有几类不同的表示法可以用来表达实体间的关系,包括信息工程法 IE 、信息建模的集成定义 IDEFlX 、巴克表示法 (Barker) 和陈氏表示法 (Chen) 。最常见的是信息工程法,该方法采用三叉线(俗称"鸭掌模型”)来表示基数(重点掌握)。

下图为书中原图:

178374cf6c0631fcc950ddb1b48b2c14.jpeg


这种方式将每个实体用一个上下分割的方框来表示,上半部分写实体名称,下半部分写实体属性,类似于UML类图的表示方法。同时用鸦爪符号表示“……对多”或“多对……”关系,这也是Crow’s foot(乌鸦脚)这个名字的由来。这种方法使得实体和关系的表示更加清晰明了。它的详细画法如下图所示:

c60b57ad917f0112165549f64ee34c1e.jpeg

解题思路

1、实体抽象2、添加实体关系及基数(外键体现在关系中“多”的一边的实体),3、扩展属性4、标记键值属性(主键及外键)5、检查是否符合3NF以图书分享系统为示例:

0e761666c77441f320d2a9bccfd556cc.jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/890380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下gdb调试

1.基本命令操作 2.调试方式启动运行无参程序 以下是linux下GDB调试的一个实例&#xff0c;先给出一个示例用的小程序&#xff0c;C语言代码&#xff1a; main.c #include <stdio.h>void Print(int i){printf("hello,程序猿编码 %d\n", i); }int main(int argc…

1281. 整数的各位积和之差

诸神缄默不语-个人CSDN博文目录 力扣刷题笔记 文章目录 1. 简单粗暴的遍历2. 其实也是遍历&#xff0c;但是用Python内置函数只用写一行 1. 简单粗暴的遍历 Python版&#xff1a; class Solution:def subtractProductAndSum(self, n: int) -> int:he0ji1while n>1:last…

杭电比赛总结

我们的队伍&#xff1a;team013 另外两队&#xff1a;team014、team015 ​ 今天是我第一次打杭电&#xff0c;发现杭电多数都是猜结论题 先给一下我们的提交数据 Submit TimeProblem IDTimeMemoryJudge Status4:59:59101115 MS1692 KWrong Answer4:59:55101115 MS1684 KWrong…

互联网发展历程:畅通无阻,流控的智慧应对

随着互联网的蓬勃发展&#xff0c;网络使用量不断增加&#xff0c;可能导致网络拥挤问题。在这个数字化时代&#xff0c;人们需要寻找一种方法来优化网络使用&#xff0c;确保数据的流畅传输。而在这一背景下&#xff0c;流量控制&#xff08;流控&#xff09;应运而生。 网络拥…

如何使用SpringBoot 自定义转换器

&#x1f600;前言 本篇博文是关于SpringBoot 自定义转换器的使用&#xff0c;希望你能够喜欢&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的…

Android Studio实现解析HTML获取图片URL,将URL存到list,进行瀑布流展示

目录 效果展示build.gradle(app)添加的依赖(用不上的可以不加)AndroidManifest.xml错误代码activity_main.xmlitem_image.xmlMainActivityImage适配器ImageModel 接收图片URL效果展示 build.gradle(app)添加的依赖(用不上的可以不加) dependencies {implementation co…

TRT8系列—— 版本差异注意事项

TRT8 一个大版本&#xff0c;8.4-、 8.5、 8.6&#xff08;包含预览功能&#xff09;却有很多变动&#xff0c;一不注意就发现很混乱&#xff0c;特备注此贴。建议具体case可以参考这个合集&#xff0c;真心安利&#xff1a;https://github.com/NVIDIA/trt-samples-for-hackath…

VirtualBox移动虚拟机存储位置,给C盘瘦身

不知不觉&#xff0c;五月份买的电脑的C盘突然要爆了。 我也搞不懂我的软件明明都放在D盘&#xff0c;C盘还是那么满。直到我看到了之前VirtualBox的一些东西。好家伙&#xff0c;直接干了我快30G了。 所以&#xff0c;我在想能不能将这些东西移到D盘&#xff0c;同时也不影响我…

android framework-Pixel3真机系统内置第三方apk实战

一、在/packages/apps创建独一无二的文件夹TestCamera 二、拷贝第三方应用到TestCamera文件夹下 三、创建Android.mk LOCAL_PATH: $(call my-dir)include $(CLEAR_VARS) # Module name should match apk name to be installed LOCAL_MODULE : TestCamera LOCAL_MODULE_TAGS : o…

scrollIntoView 导致整个页面上移问题

更改参数 block: ‘start’, behavior: smooth’更改为 behavior: ‘smooth’, block: ‘nearest’, inline: ‘start’ 在这里插入图片描述

JVM---jvm里的内存溢出

目录 堆溢出 虚拟机栈和本地方法栈溢出&#xff08;栈溢出很少出现&#xff09; 方法区和运行时常量池溢出 本机内存直接溢出&#xff08;实际中很少出现、了解即可&#xff09; 堆溢出 堆溢出&#xff1a;最常见的是大list&#xff0c;list里面有很多元素 堆溢出该怎么解决…

棋牌的逆向工程

前言 之前有些朋友都找我做棋牌的逆向工程 一来就说什么透视啥的 我只能让你早点洗洗睡 不过话说回来 棋牌逆向的思路也是有很多的 例如撞库 溢出 透视吧也能实现不过难度可想而知 透视有些棋牌是可以 不过只能看手里自己的牌例如炸金花 没开牌的时候内存中可能会存放当前的牌…

第四章nginx组件精讲

nginx配件location匹配的规则和优先级&#xff08;重点面试题&#xff09; RUI&#xff1a;统一资源标识符&#xff0c;是一种字符串标识&#xff0c;用于标识抽象的或者物理资源&#xff08;文件&#xff0c;图片&#xff0c;视频&#xff09; nginx当中&#xff1a;uri ww…

可变形卷积(DCN)——论文及代码详解

文章目录 论文详解Deformable ConvolutionDeformable RoI PoolingDeformable ConvNetsUnderstanding Deformable ConvNets 代码详解 论文&#xff1a;《Deformable Convolutional Networks》 论文详解 Deformable Convolution 普通卷积的数学表达 普通的二维卷积包括两个步骤:…

mysql 数据备份和恢复

操作系统&#xff1a;22.04.1-Ubuntu mysql 版本&#xff1a;8.033 binlog 介绍 binlog 是mysql 二进制日志 binary log的简称&#xff0c;可以简单理解为数据的修改记录。 需要开启binlog,才会产生文件&#xff0c;mysql 8.0 默认开启,开启后可以在 /var/lib/mysql &#xff…

世界上最著名的密码学夫妻的历史

Alice和Bob是密码学领域里最著名的虚拟夫妻&#xff0c;自1978年“诞生”以来&#xff0c;到走进二十一世纪的移动互联网时代&#xff0c;作为虚构的故事主角&#xff0c;Alice和Bob不仅在计算机理论、逻辑学、量子计算等与密码学相关的领域中得到应用&#xff0c;他们的名字也…

ESP-C3入门21. I2C接口点亮1306驱动的OLED屏

ESP-C3入门21. 点亮1306驱动的OLED屏 一、Espressif/ssd1306 驱动简介1. 驱动介绍2. OLED充电泵概念 二、I2C 通讯步骤1. 初始化 I2C 总线 (i2c_master_init()函数)&#xff1a;2. 创建 I2C 命令句柄 (i2c_cmd_handle_t cmd i2c_cmd_link_create())&#xff1a;3. 发送启动信号…

异步更新队列 - Vue2 响应式

前言 这篇文章分析了 Vue 更新过程中使用的异步更新队列的相关代码。通过对异步更新队列的研究和学习&#xff0c;加深对 Vue 更新机制的理解 什么是异步更新队列 先看看下面的例子&#xff1a; <div id"app"><div id"div" v-if"isShow&…

有哪些好用的设计图工具?

设计图纸制作软件是高级学习数字设计的最佳选择&#xff0c;无论你是想通过设计图纸制作软件创建一个明亮的设计&#xff0c;还是与其他设计师分享和交流。本文将介绍十个易于使用的设计图纸制作软件&#xff0c;其中大多数是初学者和高级艺术家&#xff0c;具有完整的绘图、照…