关系型数据库和规范化

2024-01-08 11:17:20

关系

关系:指表中数据之间的关系。
关系:R(U,F),U={EntityA,EntityB,EntityC} F={EntityA->EntityB}
关系型数据库通过定义表格之间的关系来组织和存储数据,具体来说,就是通过主键和外键来建立联系。
常见的关系有三种:

  1. 基表
  2. 查询表:通过查询操作派生出的临时表。
  3. 视图:虚拟表,基于一个或多个基表查询的结果。

规范化

Normal Forms(NF)
NF1:列不可再分
NF2:不包含非主属性对主键的部分函数依赖。
NF3:不包含非主属性对主键的传递函数依赖。

如果不满足规范化,那么可以通过无损连接分解来实现规范化:
即将一个表,拆分成多个表,从而实现规范化(但是这些表要有一个冗余属性用来使得:各个表利用这个属性连接后成为原先的表)。
R(U,F) U={A,B,C} F={A->B,B->C} A为主键,不满足3NF,进行模式拆分:
R1({A,B},{A->B}) R2({B,C},{B->C})可以看出B为连接属性,冗余。

自然连接
使用两张表相同属性的连接,如果没有相同属性,则按照笛卡尔积来连接。

分解关系模型,一定会有冗余,因为自然连接会使用冗余属性连接。

为什么要使用规范化?
降低冗余,使数据更容易保持一致性,完整性。

为了使用更高级别的规范化也会造成冗余,需要设计者权衡。

文章来源:https://blog.csdn.net/qq_35693377/article/details/135377523
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。