[知识] 实体关系图(ERD)的定义和绘制
数据仓库2.png
1. 摘要
您将获得关于ER图和数据库设计的基本知识和技能。你会学到ERD是什么,为什么,ERD符号,如何画ERD,等等,以及一些ERD的例子。
2.内容
2.1 ERD定义
实体 - 关系(ER)图(也称为ERD或ER模型)是Peter最初在1976年提出的经典且流行的概念数据模型。它是系统内不同实体的视觉表示以及它们如何相互关联。实体关系图广泛用于设计关系数据库。ER模式中的实体成为表,属性和转换的数据库模式。由于它们可用于可视化数据库表及其关系,因此它通常也用于数据库故障排除。
ER-Diagrams有三个基本要素:
- 实体是我们想要存储信息的“事物”。实体是一个人,地点,事物或事件。
- 属性是我们要为权利收集的数据。
- 关系描述了实体之间的关系。
ERD - Illustrated by Visual Paradigm
2.2 什么时候画ER图?
什么时候画erd ?虽然ER模型主要用于在概念可视化和物理数据库设计方面设计关系数据库,但是在其他情况下,ER图也可以提供帮助。下面是一些典型的用例。
2.2.1 数据库设计
——根据变化的规模,直接在DBMS中更改数据库结构可能有风险。为了避免破坏生产数据库中的数据,仔细计划更改是很重要的。ERD是一个有用的工具。通过绘制ER图来可视化数据库设计思想,您有机会识别错误和设计缺陷,并在数据库中执行更改之前进行更正。
2.2.2 数据库调试
——调试数据库问题很有挑战性,特别是当数据库包含许多表时,需要编写复杂的SQL来获取所需的信息。通过使用ERD可视化数据库模式,您可以全面了解整个数据库模式。您可以轻松地定位实体、查看它们的属性并确定它们与其他实体之间的关系。所有这些都允许您分析现有数据库并更容易地发现数据库问题。
2.2.3 数据库创建和补丁
—Visual Paradigm是一个ERD工具,它支持一个数据库生成工具,可以通过ER图的方式自动创建和补丁数据库。因此,有了这个ER图工具,ER设计就不再是一个静态的图,而是反映物理数据库结构的一面镜子。
2.2.4 帮助收集需求
——通过绘制描述系统高级业务对象的概念性ERD来确定信息系统的需求。这样的初始模型还可以演化为物理数据库模型,以帮助创建关系数据库,或帮助创建流程图和数据流模式。
2.3 ERD符号指南
ER图包含实体、属性和关系。在这一节中,我们将详细讨论ERD符号。
2.3.1 实体
ERD实体是一个系统内可定义的事物或概念,例如人/角色(例如学生)、对象(例如发票)、概念(例如概要)或事件(例如交易)(注:在ERD中,术语“实体”经常被用来代替“表”,但它们是相同的)。在确定实体时,将它们视为名词。在ER模型中,实体显示为圆角矩形,其名称位于顶部,其属性列在实体形状的主体中。下面的ERD示例显示了一个ER实体的示例。
2.3.2 实体属性
属性也称为列,是持有它的实体的属性或特征。
属性具有描述属性的名称和描述属性类型的类型,如字符串的varchar和整数的int。在为物理数据库开发绘制ERD时,务必确保使用目标RDBMS支持的类型。
下面的ER关系图示例显示了一个包含一些属性的实体。
2.3.3 主键
主键是一种特殊的实体属性,它惟一地定义了数据库表中的一条记录。换句话说,不能有两个(或多个)记录共享主键属性的相同值。下面的ERD示例显示了具有主键属性“ID”的实体“Product”,以及数据库中表记录的预览。第三条记录无效,因为另一条记录已经使用了ID 'PDT-0002'的值。
2.3.4 外键
外键也称为FK,是对表中主键的引用。它用于标识实体之间的关系。注意,外键不一定是唯一的。多条记录可以共享相同的值。下面的ER关系图示例显示了一个具有一些列的实体,其中外键用于引用另一个实体。
2.3.5 关系
两个实体之间的关系表示这两个实体以某种方式相互关联。例如,一个学生可能注册了一个课程。因此,实体学生与课程是相关的,而一种关系是连接他们之间的连接器。
2.3.6 基数
基数定义一个实体中可能出现的事件数,该实体与另一个实体中可能出现的事件数相关联。例如,一个队有很多队员。当在ERD中出现时,实体团队和玩家以一对多的关系相互连接。
在ER图中,基数表示为连接器两端的鱼尾纹。三种常见的基本关系是一对一、一对多和多对多。
2.3.6.1 一对一的基数的例子
一对一关系主要用于将一个实体一分为二,以提供简明的信息并使其更易于理解。下图显示了一对一关系的一个示例。
2.3.6.2 一对多的基数的例子
一对多关系是指两个实体X和Y之间的关系,其中X的一个实例可能链接到Y的多个实例,而Y的一个实例只链接到X的一个实例。
image.png
2.3.6.3 多对多的基数的例子
多对多关系是指两个实体X和Y之间的关系,其中X可以链接到Y的多个实例,反之亦然。下图显示了一个多对多关系的示例。注意,在物理ERD中,多对多关系被分割为一对一对多关系。在下一节中,您将了解什么是物理ERD。
2.4 概念、逻辑和物理数据模型
ER模型通常是在三个抽象层次上绘制的:
- 概念ERD /概念数据模型
- 逻辑ERD /逻辑数据模型
- 物理ERD /物理数据模型
虽然ER模型的所有三个级别都包含具有属性和关系的实体,但是它们在创建的目的和目标受众方面有所不同。
2.4.1 概念数据模型
概念性的ERD对系统中应该存在的业务对象及其之间的关系进行建模。开发了一个概念模型,通过识别所涉及的业务对象来呈现系统的总体情况。它定义了哪些实体存在,而不是哪些表。例如,“多对多”表可能存在于逻辑或物理数据模型中,但在概念数据模型中,它们只是作为没有基数的关系显示。
概念数据模型示例
注意:概念性ERD支持在建模两个实体之间的“一种”关系时使用泛化,例如,三角形是一种形状。这种用法类似于UML中的泛化。注意,只有概念性的ERD支持泛化。
2.4.2 逻辑数据模型
逻辑ERD是概念ERD的详细版本。通过显式定义每个实体中的列并引入操作实体和事务实体,可以开发逻辑ER模型来丰富概念模型。虽然逻辑数据模型仍然独立于将要创建数据库的实际数据库系统,但是如果它影响设计,您仍然可以考虑这一点。
逻辑数据模型示例
2.4.3 物理数据模型
物理ERD表示关系数据库的实际设计蓝图。物理数据模型通过为每个列分配类型、长度、可空值等来详细说明逻辑数据模型。由于物理ERD表示在特定DBMS中数据应该如何结构化和关联,因此考虑实际数据库系统的约定和限制是很重要的。确保DBMS支持列类型,并且在命名实体和列时不使用保留字。
物理数据模型示例
2.5 如何绘制ER图?
如果你发现很难开始画ER图,不要担心。在这一节中,我们将为您提供一些ERD技巧。尝试按照下面的步骤来理解如何有效地绘制ER图。
- 确定你清楚绘制ERD的目的。 您是否试图呈现涉及业务对象定义的整个系统体系结构?或者您正在开发一个为数据库创建准备好的ER模型吗?您必须清楚在适当的细节级别开发ER关系图的目的(有关更多细节,请阅读“概念、逻辑和物理数据模型”一节)
- 确保您清楚要建模的范围。 了解建模范围可以防止在设计中包含冗余实体和关系。
- 绘制范围中涉及的主要实体。
- 通过添加列来定义实体的属性。
- 仔细检查ERD,检查实体和列是否足够存储系统的数据。 如果没有,则考虑添加其他实体和列。通常,您可以在此步骤中标识一些事务、操作和事件实体。
- 考虑所有实体之间的关系,并使用适当的基数。 (e实体客户和订单之间的一对多关系)。不要担心是否存在孤儿实体。虽然不常见,但却是合法的。
- 应用数据库规范化技术以减少数据冗余和提高数据完整性的方式重构实体。 例如,制造商的详细信息最初可能存储在Product实体下。在规范化的过程中,您可能会发现详细信息会重复记录,然后您可以将其作为单独的实*造商进行拆分,并使用一个外键在产品和制造商之间进行链接。
2.6 选择ERD工具
(1) Visual Paradigm
使用ERD开发数据模型需要时间和精力。一个有用的数据库设计工具应该能够减少您所花费的时间和精力。Visual Paradigm不仅为您提供了ERD工具,还提供了一组可视化建模功能,帮助您更快、更轻松地绘制图形。它支持当今市场上大多数流行的关系数据库管理系统,包括数据库设计、数据库生成和ERD反转。
(2)freedgo.com
一款在线ER模型生成的工具,可以针对多种数据库的DDL文件在线生成ER模型图表,支持MySQL、SQLServer、Oracle、PostgreSQL等数据库。
主要功能如下:
(1)支持表的创建,同时可以根据数据库的类型不同编辑表结构、字段类型、主键、默认值、索引、备注信息等等
(2)支持视图,触发器,sequence,存储过程,函数的查看及编辑
(3)同步生成SQL供用户操作
参考:
https://cloud.tencent.com/developer/article/2002621
https://www.freedgo.com
3. 参考
(1)「数据架构」什么是实体关系图(ERD)?
https://cloud.tencent.com/developer/article/1558816
(2)数据库建模 : 概念模型 , 逻辑模型和物理模型
https://blog.****.net/tojohnonly/article/details/88343166
(3)【知识】一款支持MySQL的在线免费ER模型设计工具freedgo
https://cloud.tencent.com/developer/article/2002621
推荐阅读
-
[知识] 实体关系图(ERD)的定义和绘制
-
不会绘制关系图?向您展示 5 种图表 - 变量之间的相互关系 - 提供示例和完整代码 - ggplot2 - geom_point - ComplexHeatmap - pheatmap - ggpairs - 气泡图
-
数据库实体关系图(ERD)及其绘制方法
-
41 个下载免费 3D 模型的最佳网站-使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 17. Clara.io Clara.io 是一个创建 3D 内容的全球平台,也是一个培养新 3D 艺术家的社区。Clara.io 提供+100,000个免费的3D模型,包括OBJ,Blend,STL,FBX,DAE,Babylon.JS,Three.JS格式,用于 Clara.io,Unity 3D,Blender,Sketchup,Cinema 4D,3DS Max和Maya。 使用说明:免费,标准和专业帐户仅供个人使用,如果您需要将 clara.io 用于商业用途,请与销售团队联系。 18. 3DExport 3DExport是一个市场,您可以在其中购买和销售用于CG项目的3D模型,3D打印模型和纹理。它提供15 +不同的3D格式供下载,如3DS MAX(.max),Cinema4D(.c4d),Maya(.mb,.ma),Lightwave(.lwo),Softimage(.xsi),Wavefront OBJ(.obj),Autodesk FBX(.fbx)等。它还提供15种不同的语言! 使用说明:免费下载仅供个人和非商业用途。 19. 3D Warehouse 3D Warehouse是一个开放的库,允许用户共享和下载SketchUp 3D模型,用于建筑,设计,施工和娱乐!任何人都可以免费制作,修改和重新上传内容到3D仓库,您可以找到任何您能想到的东西,如家具,电子产品,室内产品等。 使用说明:3D Warehouse中的所有模型都是免费的,因此任何人都可以下载文件以用于SketchUp甚至其他软件,如AutoCAD,Revit和ArchiCAD。 20. CadNav.com CadNav是CGI平面设计师和CAD / CAM / CAE工程师的在线3D模型库,我们提供超过50000 +免费3D模型和CAD模型下载。在CadNav网站上,您可以下载高质量的多边形网格3D模型,3D CAD实体对象,纹理,Vray材料,3D作品,CAD图纸等。 使用说明:免费下载仅供个人和非商业用途。 21. All3dfree.net 就像网站名称一样,它提供免费的3D模型,还包括Vray材料,CAD块,2d和3d纹理集合,无需注册即可免费下载。它是不断更新的,因此您可以查找或请求3DS,MAX,C4D,skp,OBJ,FBX,MTL等格式的模型。 使用说明:所有资源均不允许用于商业用途,否则您将承担责任。 22. Hum3D 自2005年以来,Hum3D帮助来自3多个国家的80D艺术家节省3D建模时间,并制作逼真的3D模型,用于电影,视频游戏,AR应用程序和可视化。所有模型均由首席3D艺术家进行验证,他们检查其是否符合专业要求和最新的3D建模标准。 使用说明:免费下载仅供个人和非商业用途。 23. Artist-3D.com 艺术家-3D 库存的免费 3D 模型下载按通用类别排序。它为人体解剖学、汽车、家具、火箭、卫星等模型提供 AutoDesk 3DS Max 格式。您还可以在浏览他们的网站时找到教程和类似类型的建模。 使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 24. Free the models 就像本网站的标题一样,它为3d应用程序和3d游戏引擎提供免费的内容模型。您可以为您的任何项目找到许多有趣且有用的模型!它提供3ds,wavefront,bryce,poser,lightwave,md2和unity3d格式的模型。还有一个很棒的纹理集合,可以在您最喜欢的建模和渲染程序中使用。 使用说明:您从这里下载的所有内容都可以免费使用,除非它不能包含在另一个免费的网络或CD收藏中,也不能单独出售。否则,您可以在商业游戏,3D应用程序或渲染作品中使用它。您不必提供信用,但如果您这样做,那就太好了。 25. Resources.blogscopia 本网站由一家名为Scopia的公司创建。他们制作3D图像和视频,您可以找到许多为CGI工作的信息架构设计的模型,所有这些都可以在现实生活中使用。您可以免费下载它们,但是,如果您想一次下载它们,您可以支付 3 到 9 欧元。 使用说明:您可以免费下载模型部分的所有文件。每个压缩文件都包含您也可以在此处找到的许可证。基本上,您可以对文件执行任何操作。唯一的限制是不归属于Scopia的重新分发。 26.ambientCG 1000+公共领域PBR材料适合所有人!环境CG是使用许多不同的方法和资产类型创建的,例如照片纹理(PBR),贴花(PBR),图集(PBR),照片纹理(普通),物质存档(SBSAR),雕刻画笔,3D模型和地形。您可以在所有项目中*使用它们! 使用说明:在 ambientCG 上提供下载的所有 PBR 材料、画笔、照片和 3D 模型均根据知识共享 CC0 1.0 通用许可提供。您可以复制、修改、分发和执行作品,即使是出于商业目的,也无需征得许可。信用将不胜感激。 不要满足于平庸的大理石纹理 - 立即使用我们的免费PBR大理石纹理升级您的3D设计。 27.Pixar One Twenty Eight 这是一个提供官方动画行业经典纹理的网站:皮克斯,创建于 1993 年,该纹理库包括 128 个重复纹理,现在免费提供。 它包含您来到的纹理,包括砖块和动物毛皮。肯定会有一些你可以使用的东西。 使用说明:皮克斯动画工作室的《Pixar One Twenty Eight》根据知识共享署名4.0国际许可协议进行许可。即使出于商业目的,您也可以重新混合、调整和构建您的作品,只要您以相同的条款对新创作进行信用和许可。 访问数以千计的免费纹理并提升您的设计游戏 - 立即开始下载! 28. 3DXO 即使有近 620 个免费贴纸可供下载,3DXO 也不是最大的资源,但它的内容非常有用,不需要注册。无论是简单的墙壁或地板,还是一些奇怪的小东西,您都需要的纹理都可以在此网站上看到。 使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 29. 3DModelsCC0 3DModelsCC0 与其他产品的不同之处在于它包含超过 250+ 个高质量 3D 模型,并且本网站上的所有内容都是免费的,完全是公共领域!使用我们的模型时无需信用或归属! 使用说明:为每个人提供完全免费的公共领域内容。 30.Sketch up texture club Sketchup Texture Club是一个非营利性的教育和信息门户网站,由3D社区的图像促进协会管理,特别强调面向学生和建筑和室内设计专业人士的可视化和渲染技术,以及所有正在学习3D可视化的人。 使用说明:您无需支付版税或使用费。纹理可以免费下载和使用。不允许将纹理作为竞争产品出售或重新分发,即使图像被修改也是如此。 31. FlippedNormals FlippedNormal 是一个提供计算机图形和 3D 资产的市场,您可以找到许多用于雕刻、建模、纹理、概念艺术、3D 模型、游戏资产或课程的高级资产! 使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 32. NASA 3D NASA 3D网站是一个在线门户,提供与太空和各种NASA任务相关的大量三维模型和模拟。该网站是用户友好的,并提供有关每个型号的详细信息。该网站允许用户探索和下载几种不同格式的模型,包括 OBJ、STL 和 FBX,只需单击下载按钮即可。 使用说明: 要下载模型,只需单击模型页面上的下载按钮并选择所需的格式。 33. 3DAGOGO (Astroprint) 3DAGOGO 是一个提供广泛 3D 模型的网站,包括角色、车辆和建筑物。3DAGOGO 的独特功能之一是它专注于适合 3D 打印的模型,使其成为希望创建物理原型或模型的设计师的绝佳资源。要使用 3DAGOGO,设计师只需在网站上搜索他们正在寻找的模型类型,然后下载 STL 格式的文件。 使用说明: 要使用 3DAGOGO,只需搜索所需的 3D 模型类型并下载 STL 格式的文件。根据需要自定义模型,并确保在将其用于商业目的之前检查使用权限。 34. FreeCAD FreeCAD是一款了不起的3D建模软件,可让您在计算机上创建令人难以置信的3D设计。该软件可免费下载和使用,它提供了广泛的工具和功能,可用于创建用于各种目的的3D模型。 该网站易于浏览,您可以找到开始使用FreeCAD的所有必要信息。此外,该网站还提供一系列教程和指南,可帮助您了解 3D 建模的来龙去脉。 使用说明: 要下载模型,请访问网站并从库中选择所需的模型。该网站还提供了一系列使用该软件的教程和指南。 35. Pinshape Pinshape是一个提供一系列3D打印模型的网站。网站上提供的型号质量很高,因此您可以确保您的最终印刷产品看起来很棒。该网站提供了广泛的模型,包括从家居用品到小雕像和珠宝的所有物品。 但这还不是Pinshape所能提供的全部!该网站还允许用户上传和共享自己的3D模型。这意味着您不仅可以下载出色的模型,还可以通过分享自己的设计为社区做出贡献。此外,Pinshape 提供了一系列自定义选项,因此您可以调整和调整模型以满足您的特定需求。 使用说明: 要下载模型,请在网站上创建一个帐户,搜索所需的模型,然后单击下载按钮。该网站还为每种型号提供了一系列定制选项。 36.Yeggi Yeggi 提供了大量免费的 3D 模型,您可以下载各种格式的模型,例如 STL、OBJ 和 FBX。该网站易于使用,您可以按关键字、类别或特定网站搜索模型。 Yeggi 对于任何寻找 3D 模型的人来说都是一个很好的资源。它提供了大量的模型集合,从日常物品到复杂的机械,以及介于两者之间的一切。该网站的收藏量在不断增长,每天都有新的型号增加。 使用说明: 要下载模型,请在网站上搜索所需的模型,然后单击下载按钮。该网站还提供指向托管模型的原始网站的链接。 37. Open3DModel 来自开放3D模型的图像 Open3DModel具有各种类别的模型,包括建筑,车辆和角色。无论您需要建筑物,汽车还是人的3D模型,都可以在此网站上找到。 该网站易于浏览,您可以按类别或关键字搜索模型。每个模型都附带预览图像和详细信息,例如文件格式、大小和多边形数量。此信息可以帮助您选择适合您需求的模型。 使用说明: 要下载模型,请访问网站,从库中选择所需的模型,然后单击下载按钮。 使用最好的 3D 资产管理工具简化您的 3D 制作流程。立即试用它们,将您的 3D 项目提升到一个新的水平! 38. 3DExport 对于那些为其 3D 设计项目寻找 3D 模型、纹理和其他资源的人来说,该平台是一个很好的资源。该网站有大量模型可供选择,包括 3D 打印对象、游戏资产等。用户可以按类别、文件格式或价格范围浏览,以找到适合其项目的完美资源。此外,3DExport 还提供一系列教程和其他 3D 资源,以帮助用户提高技能并创建更令人印象深刻的设计。 使用说明: 要使用 3DExport,只需创建一个帐户并浏览可用型号。您可以按类别、格式和价格进行搜索,以找到所需的型号。找到喜欢的模型后,只需下载它并开始在您的项目中使用它。 39.Blend Swap Blend Swap是一个社区驱动的市场,提供与Blender软件兼容的各种免费3D模型。该平台允许用户共享和下载模型、纹理和其他资产,以便在他们的项目中使用。 使用说明: 创建免费帐户后,您可以浏览社区上传的大量3D模型。当您找到要使用的一个时,只需下载它并将其导入您选择的 3D 软件即可。 40. 3DShook 3DShook 是一个高级 3D 模型市场,提供一系列用于建筑、游戏等各个行业的高质量模型。该平台提供基于订阅的模型,具有不同的定价计划,允许用户访问一系列模型。 使用说明: 注册免费帐户后,只需浏览3D模型库,选择您喜欢的模型,然后以您需要的格式下载它们。 41. Smithsonian X 3D 史密森尼 X 3D 对于正在寻找历史文物和文物的高质量 3D 模型的设计师来说,这是一个独特的资源。该平台提供了大量3D模型,这些模型是根据史密森尼博物馆和研究中心中的真实物体扫描创建的。 使用说明:
-
Linux设备驱动开发详解——学习笔记-设备驱动来联系。在没有操作系统的情况下,工程师可以根据硬件设备的特点自行定义接口。而在有操作系统的情况下,驱动的架构则由相应的操作系统来定义。驱动存在的意义就是给上层应用提供便利。 驱动针对的对象是存储器和外设。Linux将存储器和外设分为 3 个基础大类:字符设备、块设备、网络设备。 字符设备和块设备都被 Linux 映射到文件系统的文件和目录中,通过文件系统的接口(open、read、write、close等)来访问。其中,块设备可以通过类似 dd 命令对应的原始块设备来访问,也可以通过建立文件系统,以文件路径来访问。 学习 Linux 设备驱动,要求非常好的硬件基础、非常好的软件基础、一定的 Linux 内核基础和非常好的多任务并发控制和同步的基础。学习 Linux 设备驱动要将学习的函数、数据结构等放到整体架构中去理解,才能理清驱动中各组成部分之间的关系。 驱动设计的硬件基础 驱动工程师需要掌握 处理器、存储器、接口和总线、可编程门电路、原理图、硬件时序、芯片手册、仪器使用 等方面的内容。 处理器