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