MySQL——三范式示例

六眼飞鱼酱① 提交于 2020-03-10 16:38:02
  1. 数据库范例

    创建一个小型数据库存放关于书的信息:书名、出版商、作者、出版日期

  2. 一范式

  • 内容相似的数据列必须消除(消除的方式是再创建一个数据表来存放他们)

  • 必须为每一组相关数据分别创建一个数据表

  • 每条数据记录必须用一个主键来标识 

    应用第1条和第3条,可得到如下数据表

      

    问题:一本图书每增加一位作者,title、pubName、year就必须重复一次

三、二范式

  • 数据表里的内容重复出现,就意味着必须将表拆分成多个子表

  • 拆分形成的数据表必须用外键关联起来

          

     

    问题:authName字段数据还有重复

    解决方案:对author表进行拆分,把titleID列拆分出去,创建第3个数据库表存放那些图书有哪些作者的信息

     

      

      

四、三范式

  • 与主键没有关系的数据列都必须消除

    本示例中的title表中的pubName列与图书的名字并没有必然的联系

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!