0

我对 DBMS 中的实体和实体集感到困惑。实体集形成实体集?就像一组学生对象形成学生数组一样。

我们应该将关系数据库中的表与实体集或实体进行比较吗? 如果我将实体集与表进行比较,那么我可以将实体作为表中的记录进行比较。 如果我错了,请纠正我。

我浏览了一些关于此的书籍和博客。有时实体与 Rdbms 中的表进行比较,有时与实体集进行比较。这是真的。无法得到适当的解释。

请拿出例子和清晰的解释,提前谢谢

4

1 回答 1

4

这些术语有多种描述,不幸的是,博客、教程、企业框架文档和图表软件倾向于将这些概念混为一谈。如需更严格的定义,请查阅该领域创始人的学术论文和书籍。

实体是可以明确识别的事物,例如特定的人、公司或事件。实体由数据库中的值标识,例如,我(现实世界中的实体)由 StackOverflow 数据库中的数字 532721 表示。

实体集是一组相似的事物,例如一组人、公司或事件。StackOverflow 上的所有用户就是一个例子。实体和实体集是概念性的,不直接包含在数据库中。StackOverflow 的数据库谈论它的用户,这些用户实际上并不存在于数据库中。

表是表示谓词的数据结构。谓词是一种事实类型,一种带有值占位符的通用语句。记录包含那些使谓词为真的占位符的值,因此记录代表关于世界上实体的命题。另一种查看方式是,表表示一个或多个实体集上的一组属性和关系。请记住,属性只是二元关系。

例如,USER (UserId PK, UserName UQ, Reputation, PhotoId UQ)可以将表格理解为“世界上存在一个由数字UserId和唯一名称标识的用户,该用户UserName具有分数Reputation并且专门使用标识PhotoId为头像的照片”。每个对应的记录代表关于用户和图像的已知事实。

我建议您阅读 Codd 的论文“大型共享数据库的数据关系模型”和 Chen 的论文“实体关系模型 - 迈向统一的数据视图”。它们比整本书更短、更集中,并且可以很容易地在网上找到。

于 2016-01-05T18:12:13.667 回答