为什么关系集很重要?

时间:2012-10-21 03:29:00

标签: database database-design relational-database

一位朋友正在开发一个网站,并且必须使用SQL创建一个数据库。他问你为什么需要“has-a”或“is-a”关系,因为你可以获取一个实体集的主键并将其放在另一个适当的实体集中(反之亦然)以找到关系。

我无法回答这个问题,因为我刚刚被教导关系集是数据库的工作原理。

编辑:我不想进入规范化。他指出信息在关系集中被复制。

1 个答案:

答案 0 :(得分:1)

您的问题将两个不同的抽象层次混合在一起,即概念层面和逻辑层面。

在概念层面,人们有兴趣描述拟议数据库的信息要求。在不将描述倾向于一个或另一个解决方案的情况下这样做是有用的。一个对此有用的模型是实体 - 关系(ER)模型。在该模型中,主题被分解为实体(主体)和这些实体之间的关系。所有数据都被视为描述其中一个实体或其中一个关系的某些方面。

“Is-a”和“has-a”关系在这个抽象层次上是相关的。在这个层面上,确定了关系,但没有实现。

在创建数据库的概念模型之后,但在创建数据库本身之前,经历逻辑设计阶段会产生数据库的逻辑模型。如果数据库是关系型的,那么将逻辑模型作为关系模型是有用的。关系模型是下一个抽象层次。

这是主键和外键的来源。这些键实现了在概念阶段识别的关系。这就是关系模型实现关系的方式。在此阶段,您将涉及设计问题,如联结表,表组合和规范化。

除概念级别和逻辑级别外,还有物理级别和脚本级别。但这些超出了你的问题的范围。

这两种关系是要解决的问题的特征。对主键的外键引用是所提出的解决方案的特征。

相关问题