数据建模标准-关系建模

数据模型定义:DAMA数据治理体系中将数据模型定义为一种文档形式,数据模型是用来将数据需求从业务传递到IT,以及在IT内部从分析师、建模师和架构师到数据库设计人员和开发人员的主要媒介;

作用:记录数据需求和建模过程中产生的数据定义;

数据建模方法:

常见的数据建模方法是关系建模、维度建模、面向对象建模、基于事实建模、基于时间建模和非关系型建模;

本章重点梳理关系建模方法:

关系建模定义:是一种通用的数据建模方法,关系建模的基本思想是通过将数据表示为关系模型,提高数据的结构化和可理解性;

关系建模按照陈氏符号表示法主要涉及以下几个步骤:

  1. 识别实体:实体的识别逻辑参考5W1H逻辑;

  1. 识别实体的主键:根据实体的定义和标准,确定存储颗粒度,识别实体的主键;
  2. 定义属性:为每个实体定义属性,也就是实体所对应的描述性标签;
  3. 确定关系:关系类型可以分为以下几类

a.多对多的关系类型:不同的原材料加工成多种产成品;

b.1对多的关系类型:多个原材料只能用于一个产品的生产;

c.1对1的关系类型:一个原材料加工成一个产成品;

基于识别出来的实体、关系、属性设计相关的数据模型;

实例:

以下是在线书店的ER图示例:

1.识别出的实体包含:客户、订单、书

2.识别实体的主键:客户的主键是客户id,订单的主键时订单id,书的主键是书的id;

3.定义属性:

a.客户的属性包含名称、email、密码、地址;

b.订单的属性包含订单日期、订单金额、订单的采购数、订单总价格;

c.书的属性包含标题、作者、ISBN、书的单价、书类型;

4.确定关系:

客户和订单的关系:1对多;

订单和书的关系:多对多;

陈氏符号(Chen's Notation)是由美国计算机科学家彼得·陈(Peter Chen)在1976年提出的,用于描述实体-关系(ER)模型的一种图形表示方法。这种表示方法在数据库设计和信息系统分析中被广泛使用。以下是陈氏符号的一些基本元素和规则:

  1. 实体(Entity):
    • 实体用矩形表示,矩形内写上实体的名称。
    • 实体可以是现实世界中的对象,如人、地点、物品等。
  1. 属性(Attribute):
    • 属性用椭圆表示,并通过线连接到它们所属的实体。
    • 属性是描述实体特征的数据项,如人的名字、年龄等。
  1. 关系(Relationship):
    • 关系用菱形表示,并通过线连接到它们涉及的实体。
    • 关系描述实体之间的联系,如“学生”和“课程”之间的“选课”关系。
  1. 键(Key):
    • 键是用于唯一标识实体实例的属性或属性集。
    • 在陈氏符号中,主键通常用下划线标记。
  1. 基数(Cardinality):
    • 基数描述实体间关系的数量约束,如“一个学生可以选多门课程,但一门课程可以被多个学生选”。
    • 基数可以用“1”、“0..1”、“*”等符号表示。
  1. 参与度(Participation):
    • 参与度描述实体在关系中的角色,可以是“部分参与”(Partial Participation)或“全参与”(Total Participation)。
    • 参与度可以用“O”(全参与)和“o”(部分参与)表示。
  1. 弱实体集(Weak Entity Set):
    • 弱实体集是指没有足够属性来形成主键的实体集。
    • 弱实体集用双线矩形表示,并且它们的关系称为识别关系。
  1. 外键(Foreign Key):
    • 外键是用于在两个实体集之间建立联系的属性或属性集。
    • 在陈氏符号中,外键通常用箭头指向它们所指向的实体。

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

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

相关文章

应用最优化方法及MATLAB实现——第4章代码实现

一、概述 之前对这本书的第三章进行了代码实现,这篇博客是对这本书第4章相关代码进行实现,部分内容安装书中代码无法实现相应功能,MATLAB会报错,对其进行一定程度的更改后,可以正常运行,与书中所给示例运行…

亲测--linux下安装ffmpeg最新版本---详细教程

下载地址 Download FFmpeg 下载最新的https://ffmpeg.org/releases/ffmpeg-7.0.1.tar.xz 上传到服务器 解压 tar xvf ffmpeg-7.0.1.tar.xz 编译 cd ffmpeg-7.0.1 ./configure --prefix=/usr/local/ffmpeg make && make install 报错: 解决:在后面加 跳过检测…

Template_C++

C模板 C提供了function template. function template:实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用的函数就称为函数模版。 是不是可以这样理解,函数模版就是给了一种功能&…

线程的中断和同步问题

1、自动终断【完成】:一个线程完成执行后(即run方法执行完毕),不能再次运行 。 2、手动中断: stop( ) —— 已过时,基本不用。(不安全,就像是突然停电) interrupt( ) …

从0到1搭建数据中台(4):neo4j初识及安装使用

在数据中台中,neo4j作为图数据库,可以用于数据血缘关系的存储 图数据库的其他用于主要用于知识图谱,人物关系的搭建,描述实体,关系,以及实体属性 安装 在官网 https://neo4j.com/ 下载安装包 neo4j-co…

系统架构师考点--面向对象开发

大家好。今天再来总结一下面向对象的相关考点。面向对象技术。这部分在上午场客观题一般占3-5分左右。下午的案例题和论文题也可能有所涉及。 一、面向对象开发 (1)对象:由数据及其操作所构成的封装体,是系统中用来描述客观事务的个实体,是…

【算法/天梯赛训练】天梯赛模拟题集

L1-009 N个数求和 #include <iostream> #include <algorithm>using namespace std;typedef long long ll; const int N 105;typedef struct node {ll x, y; }node; node a[N];ll gcd(ll a, ll b) {return b ? gcd(b, a % b) : a; }int main() {int n;cin >>…

Lua基础知识入门

1 基础知识 标识符&#xff1a;标识符的定义和 C语言相同&#xff1a;字母和下划线_ 开头&#xff0c; 下划线_ 大写字母一般是lua保留字&#xff0c; 如_VERSION 全局变量&#xff1a;默认情况下&#xff0c;变量总是认为是全局的&#xff0c;不需要申明&#xff0c;给一个变…

ECMP等价多路由机制,大模型训练负载均衡流量极化冲突原因,万卡(大规模)集群语言模型(LLM)训练流量拥塞特点

大规模集群&#xff0c;大语言模型(LLM)训练流量特点&#xff0c;ECMP&#xff08;Equal-Cost Multi-Path Routing&#xff09;流量极化拥塞原因。 视频分享在这&#xff1a; 2.1 ECMP等价多路由&#xff0c;大模型训练流量特点&#xff0c;拥塞冲突极化产生原因_哔哩哔哩_bi…

vue2导入elementui组件库

第一步安装 npm i element-ui -S 第二步在main.js中导入 第三步使用然后在运行项目

Linux——五种IO模型

目录 一、I/O的理解 二、五种IO模型 1.阻塞式IO 2.非阻塞式IO 3.信号驱动IO 4.多路复用IO 5.异步IO 一、I/O的理解 I/O的本质就是输入输出&#xff0c;C语言的stdio&#xff0c;C的iostream&#xff0c;添加了这两个库&#xff0c;我们才能够进行printf、scanf、cin、c…

【HarmonyOS】HarmonyOS NEXT学习日记:三、初识ArkUI

【HarmonyOS】HarmonyOS NEXT学习日记&#xff1a;三、初识ArkUI 忘掉HTML和CSS&#xff0c;ArkUI里构建页面的最小单位就是 “组件”&#xff0c;所以今天的目标就是认识一些常用的基础组件&#xff0c;以及他们的用法&#xff0c;对ArkUI形成一个基本认识。 基本组成 了解…

【前端】表单密码格式—校验。

如图&#xff1a;实现表单输入密码和确认密码的时候进行表单校验。 实现方式&#xff1a; 1.在代码的data里面定义&#xff0c;函数验证的方法。如图所示,代码如下 【代码】如下&#xff1a; const validatePassword (rule, value, callback) > {if (value ) {callback(n…

MongoDB自学笔记(三)

一、前文回顾 上一篇文章中我们学习了更新操作&#xff0c;以及讲解了部分的更新操作符&#xff0c;今天我们继续学习剩余的更新操作符。 二、更新操作符 1、$rename 语法&#xff1a;{ $rename: { < field1 >: < newName1 >, < field2 >: < newName2…

Java语言程序设计基础篇_编程练习题**14.29(游戏:豆机)

第十四章第二十九题 **14.29 (游戏&#xff1a;豆机) 请写一个程序&#xff0c;显示编程练习题 7.21 中介绍的豆机&#xff0c;如图 14-52c 所示 代码展示 package chapter_14;import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layou…

【ffmpeg命令入门】重新编码媒体流、设置码率、设置帧速率

文章目录 前言ffmpeg的描述重新编码媒体流重新编码媒体流的命令ffmpeg支持的媒体流 设置视频码率视频码率是什么设置视频的码率 设置文件帧数率帧数率是什么ffmpeg设置帧数率 总结 前言 在数字媒体处理领域&#xff0c;ffmpeg是一款非常强大的工具&#xff0c;它可以用来进行媒…

Java | Leetcode Java题解之第242题有效的字母异位词

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isAnagram(String s, String t) {if (s.length() ! t.length()) {return false;}int[] table new int[26];for (int i 0; i < s.length(); i) {table[s.charAt(i) - a];}for (int i 0; i < t.leng…

【面试题】Redo log和Undo log

Redo log 介绍Redo log之前我们需要了解一下&#xff0c;mysql数据操作的流程&#xff1a; 上述就是数据操作的流程图&#xff0c;可以发现sql语句并不是直接操作的磁盘而是通过操作内存&#xff0c;然后进行内存到磁盘的一个同步。这里我们必须要了解一些区域&#xff1a; 缓…

基于 asp.net家庭财务管理系统设计与实现

博主介绍&#xff1a;专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用感兴趣的可以先…

抖音seo短视频账号矩阵系统源码-SaaS开源部署流程开发者技术分享

抖音seo账号矩阵系统&#xff0c;短视频矩阵系统源码&#xff0c; 短视频矩阵是一种常见的视频编码标准&#xff0c;通过多账号一键授权管理的方式&#xff0c;为运营人员打造功能强大及全面的“矩阵式“管理平台。使用矩阵系统也能保证账号的稳定性&#xff0c;降低账号的风险…