实体是数据模型的最为核心的要素。实体是基础,一切所有的都构筑于实体之上。市面上常见的E-R模型中的E就指的是实体。
实体定义
实体——Entity,是业务中非常重要的事务。每一个实体都是由一个名词或者名词词组定义的。一般符合6大种类:Who,What,When,Where,Why,How。实体可以是抽象的也可以是具体的。比如,人,书,课程都可以是实体。实体是一个非常易于理解的概念。如果对关系型数据库Mysql比较熟悉的可以这样理解,一个规范的数据表就是一个实体。
在数据建模的过程中,一般使用矩形表示实体。
实体实例
实体实例就是实体的具体呈现或者是实体的值。比如人是实体,那么Bob、James都是实体实例。
实体集
同属于一个实体的实体实例组成的集合。
实体在三种数据模型上的表现
(1)在概念数据模型层
在创建概念数据模型的时候,实体对应的就是概念。
(2)在逻辑数据模型层
在创建逻辑数据模型层的时候,实体就是最完善的了。包含了具体属性、键和关系。
(3)在物理数据模型层
在物理数据模型层,实体对应于某种具体的技术对象。比如,在RDBMS数据库,实体就是对应的数据表或者数据视图;在NOSQL数据库,如在MongoDB对应的就是集合(Collections);在Elasticsearch上对应的就是索引(Indexes);在Redis中,对应的就i是Key-Values。
强实体与弱实体
可以单独存在,用来表示相对独立的人、事或者地点的成为强实体。弱实体必须依赖至少一个其他的实体才可以存在,如果不引用其他实体中的实例,就无法检索到弱实体的实例。即弱实体是依赖强实体的。理解了二者的关系之后,在实际的建模过程中,确定实体间的关系和依赖的时候,必须首先创建强实体。