如何构建关系型数据库

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

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

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

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

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

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

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

Happy learning !!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值