ER图和数据库模式有什么不同?

29
ER图和数据库模式图有什么区别?MySQL Workbench有绘制ER图的功能,但与MySQL Workbench方法不同的是其他绘图工具中ER图的符号不同。

1
我不确定你所说的“数据库图表”是什么意思(除了ER图),但MySQL工具台中的符号可能与其他工具不同,因为ER图有多种约定:http://en.wikipedia.org/wiki/Entity_relationship_diagram#Diagramming_conventions - user359040
非常感谢你的建议,Mark。正如你所说,绘图时使用不同的符号。 - sam
3个回答

28

数据库架构通常是一个关系型模型/图表,它显示了表之间的链接:主键和外键。

在数据库图中,一个苹果和一个苹果树之间的关系将会是:

在表“APPLE”中,一个不能为空的外键“ID__TRE”与表“TREE”中的一个主键“ID_TRE”相关联。

关系图

实体关系图显示实体之间的链接及其之间的关系类型。这里并不涉及表或键!通常,实体关系图遵循Merise模型。像我这样的数据库管理员和开发人员通常会在构思关系型模型/图表之前建立一个实体关系模型。
Merise中使用的符号集为:(0-1, 0-n, 1-1, 1-n)。第一个数字0或1表示对象的另一部分是否对其存在至关重要。如果它是零,则表示可以在没有关联的情况下存在。如果是1,则表示该对象只存在于其他对象的关系中(例如,苹果需要树才能存在-->1,树不需要苹果就能存在-->0)。 第二个字符告诉我们在联合的另一部分中可以接受多少个对象。如果为1,则只能在关系中存在一个对象,如果为n,则可以链接无限数量的对象(例如:一个苹果可以有一棵树-->1,一棵树可以有多个苹果-->n)

使用实体关系,关系将被描述为:一个苹果必须属于至少一棵树才能存在,并且只能属于一棵树(1-1)。一棵树不需要苹果来存在,但它可以拥有无限多的苹果(0-n)。

实体关系图

事实上,这两种描述的含义相同,只是一种面向数据库,而另一种是面向建模的。一些建模软件,如DB-MAIN,会自动将ER图转换为关系图。


9
实体关系图(ERD)就是这个意思:描述实体之间关系的图表。现在让我们仔细看看...
- ERD通常由业务分析师创建,而不是数据库管理员(DBA); - ERD通常用外行人可以理解的术语来描述,而不是DBA或其他技术专家使用的术语; - ERD旨在总结和澄清最终用户和业务SME的理解,而不是DBA或开发人员的理解; - 每个实体在ERD中都应以单数形式描述,并且连接各个实体与ERD中的其他实体的线条应使用动词(表示行动、所有权或存在)来描述每个关系; - ERD可以(并且确实)包括表示n:n关系的线条,但这不是必需的。 - 博客ERD中的实体示例:成员、帖子、评论、类别 - ERD中描述的关系示例:
- 成员“发布”1到n篇文章;(请注意,我们没有描述文章的样子) - 文章“相关于”1到n个类别 等等。
数据模式与ERD有些相似,但不应认为它们是等效的或可互换的。如果您制作了一个可用作数据模式的ERD,则要对未制作ERD的可能性敞开心扉!;-)
数据模式是用于描述数据将如何存储在数据库(关系或非关系)中的图表。
  • Data Schemas almost invariable describe the structure & characteristics of TABLES;
  • Tables are "containers" (cardboard boxes);
  • As such tables in a data schema are BEST named in the PLURAL
  • Examples of the TABLES in a SCHEMA for the same blog: MEMBERS, POSTS, CATEGORIES, COMMENTS (relational database) or POSTS (keyed by Member-Date and all other columns in 1 table (non-relational database like for a "big data" project);
  • a data schema would then describe the data contained in each table:

    MEMBER 
    FirstName (char:25)
    LastName (char:25)
    

    etc.

  • the lines between tables in a data schema would NOT try to represent any 'relation' other than a "KEY" between 2 fields which could be used to "join" the tables, and some additional characteristics of those lines to denote n:n relationships.

两个图表有着截然不同的用途: ERD图:让普通用户(以及业务所有者)了解给定业务解决方案的模型; 数据架构图:是由数据库管理员用于构建数据库,开发人员则使用它来消费该数据库中的数据的“蓝图”。


6

数据库架构是对数据库实际构造的描述。它是一个包罗万象的术语,指的是表格、列、触发器、关系、键约束、函数和过程的集合。它可以指描述所有这些内容的文档(例如XML Schema),也可以作为数据库结构本身的抽象(“在这个点上更改数据库的架构将会很困难”)。它不涉及插入到架构中的行或数据本身。您需要将数据插入到现有架构中。

实体关系图是数据库表之间关系的可视化。至少,它包括以方块形式连接的表名,表示主键和外键约束的线条。通常还包括列名和符号,包含有关列之间存在什么样的关系(一对一、一对多、多对多)的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接