数据库架构通常是一个关系型模型/图表,它显示了表之间的链接:主键和外键。
在数据库图中,一个苹果和一个苹果树之间的关系将会是:
在表“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图转换为关系图。
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图:让普通用户(以及业务所有者)了解给定业务解决方案的模型; 数据架构图:是由数据库管理员用于构建数据库,开发人员则使用它来消费该数据库中的数据的“蓝图”。
数据库架构是对数据库实际构造的描述。它是一个包罗万象的术语,指的是表格、列、触发器、关系、键约束、函数和过程的集合。它可以指描述所有这些内容的文档(例如XML Schema),也可以作为数据库结构本身的抽象(“在这个点上更改数据库的架构将会很困难”)。它不涉及插入到架构中的行或数据本身。您需要将数据插入到现有架构中。
实体关系图是数据库表之间关系的可视化。至少,它包括以方块形式连接的表名,表示主键和外键约束的线条。通常还包括列名和符号,包含有关列之间存在什么样的关系(一对一、一对多、多对多)的信息。