如何构建关系型数据库

賈小強
转载请注明原创出处,谢谢!

关系型数据库是由多张关系表组成的,表之间通过一对多关系不断连接,数据库可能由几张甚至上百张的表连接而成,那么如何构建一个看似复杂的关系型数据库呢?

我们知道通过SQL语句中的JOIN实际上可以将多张表连接成一张虚拟表,也就说可以将不同表的属性连接到一起形成一个表头,从这里个角度逆向思考,当我们发现一行由多个属性组成的记录时,也就说可以拆分成多张关系表

比如有一行记录: field1,field2,field3,field4,field5,field6,然后可以按照2NF,3NF拆分进行垂直查分

  • field1 2只依赖主键field1,那么分成一张表A
  • field3 4只依赖主键field3,那么分成一张表B
  • field5 6只依赖主键field5,那么分成一张表C

然后可以形成如下图可能形式的连接情况


如何构建关系型数据库_第1张图片
ER1.png

现在假设B表还可以继续拆分成3张表,于是又可以形成如下形式的连接情况


如何构建关系型数据库_第2张图片
ER2.png

推论:按照上面的方式可以将一行记录逐步拆成任意复杂度的关系表

Happy learning !!

你可能感兴趣的:(如何构建关系型数据库)