我对DBMS中设置的实体和实体感到困惑。 做实体集的实体集?就像学生对象组成的学生阵列一样。
我们应该将关系数据库中的表与实体集或实体进行比较吗? 如果我将实体集与表进行比较,那么我可以将实体作为表中的记录进行比较。如果我错了,请纠正我。
我已经阅读了一些关于此的书籍和博客。 有时将实体与Rdbms中的表进行比较,有时将实体集与进行比较。这是真的。无法得到正确的解释。
请提出示例和明确的解释,提前致谢 !!
答案 0 :(得分:3)
这些术语有各种各样的描述,不幸的是,博客,教程,企业框架文档和图表软件往往会混淆概念。有关更严格的定义,请参阅该领域的创始人的学术论文和书籍。
实体是可以明确识别的事物,如特定的人,公司或事件。实体由数据库中的值标识,例如, I(现实世界中的实体)由StackOverflow数据库中的数字532721表示。
实体集是一组类似的东西,比如一组人,公司或事件。一个例子是StackOverflow上的所有用户。实体和实体集是概念性的,不直接包含在数据库中。 StackOverflow的数据库谈论其用户,这些用户实际上并不在数据库中。
表是表示谓词的数据结构。谓词是事实类型,是带有值的占位符的通用语句。记录包含使谓词成立的那些占位符的值,因此记录表示关于世界中实体的命题。查看它的另一种方法是表表示一个或多个实体集上的一组属性和关系。记住属性只是二元关系。
例如,表格USER (UserId PK, UserName UQ, Reputation, PhotoId UQ)
可以理解为"世界上存在由数字UserId
标识的用户和具有分数的唯一名称UserName
Reputation
点数并专门使用标识为PhotoId
的照片作为头像"。每个相应的记录代表关于用户和图像的已知事实。
我建议你阅读Codd的论文"大型共享数据库的数据关系模型"和陈的论文"实体 - 关系模型 - 迈向统一的数据视图"。它们比整本书更短,更集中,并且可以在网上轻松找到。