数据库 = 实体 + 关系
实体:实体就是一个实际的对象。
实体要满足3个范式:
第一范式:所有的行不能重复(每一条数据不能相同,用主键来保证),所有的列可以再分,即具有原子性(每列表示不同的意思)
第二范式:非主必须依赖于主键列键列(设计一个实体必须是它的固有属性)
第三范式:非主键列之间必须相互独立(不能通过一个字段知道另一个字段的值)
实体分为:
强实体:能脱离主键列而单独存活
弱实体:脱离了主键列就不能存活(没有什么意义)
关系:实体与实体之间的关系,包括一对一,一对多,多对多
注:找关系一定是以“一”为标准,从一个实体的一条记录出发。
一对一:从一边到另一边是一对一,反过来还是一对一
一对多:从一边到另一边是一对多,反过来是一对一
多对一:反过来就是一对多
多对多:从一边到另一边是一对一,反过来还是多对多,但实际中一般不用多对多而用一对多或多对一
主键:用来对实体的唯一标识
代理主键:没有什么实际的意义
业务主键:与业务有关,一般情况下,业务变更业务主键也要相应的变更
外键:表示表与表之间的联系,表不一定要有外键才有联系
实体:实体就是一个实际的对象。
实体要满足3个范式:
第一范式:所有的行不能重复(每一条数据不能相同,用主键来保证),所有的列可以再分,即具有原子性(每列表示不同的意思)
第二范式:非主必须依赖于主键列键列(设计一个实体必须是它的固有属性)
第三范式:非主键列之间必须相互独立(不能通过一个字段知道另一个字段的值)
实体分为:
强实体:能脱离主键列而单独存活
弱实体:脱离了主键列就不能存活(没有什么意义)
关系:实体与实体之间的关系,包括一对一,一对多,多对多
注:找关系一定是以“一”为标准,从一个实体的一条记录出发。
一对一:从一边到另一边是一对一,反过来还是一对一
一对多:从一边到另一边是一对多,反过来是一对一
多对一:反过来就是一对多
多对多:从一边到另一边是一对一,反过来还是多对多,但实际中一般不用多对多而用一对多或多对一
主键:用来对实体的唯一标识
代理主键:没有什么实际的意义
业务主键:与业务有关,一般情况下,业务变更业务主键也要相应的变更
外键:表示表与表之间的联系,表不一定要有外键才有联系