zoukankan      html  css  js  c++  java
  • 数据库设计系列[02]为什么要学习数据库设计

    1,不好的数据库设计,产生的问题?

    在数据库概念设计阶段,对于同一领域建模,不同的建模人员得到的结果不一样,从而转换后的关系模式也不一样。这样就存在关系模式的优劣之分。学习数据库设计,就是要学习前人总结的一些规则,常用的表示方法。在学习如何进行设计之前,我们先了解下差的设计产生的问题。

    2,示例场景

    在采购的场景中,需要记录订单号、商品信息和操作人信息。如果我们这样设计

     

    存在的问题有:数据冗余、插入异常、更新异常和删除异常;

    2.1数据冗余

    在这个应用设计中,OrderNum和CreateName重复存储了。当订单量很大,这样的浪费就很可观了。

    2.2 插入异常

    从这个关系模式的设计中,我们可以看到OrderNum与GoodsName构成主键。那么当没有人购买商品时,商品就无法入库。显然这样是不合理的。

    2.3 更新异常

    如果,创建人王小二改名为王小一,那么就要更新诸多的行。又或者,由于一些验证的问题,出现“三宝”和“3宝”这样的数据,从语义上讲这是同一个商品,但是从数据库中是分辨不出来,在出报表时就很头疼。

    2.4 删除异常

    如果,在二年后,3宝产品停产了,我们想删除3宝这样的产品,使它不能再被采购。但是,我们同样也就删除了111123这样的一个采购历史记录。这样也是不合理的。

    3, 总结

        总的来说,对于同样的一个应用领域,我们即能设计出好的模式,也能做出差的模式。那么我们应该怎么设计,才能更加的接近于好的模式。我们需要遵守一些设计范式。设计范式是什么呢,在下一篇文章中再写。

  • 相关阅读:
    JDBC笔记01-JDBC,Connection,Statement,ResultSet,PreparedStatement,Properties
    JavaWeb笔记05-解决线程安全问题
    JavaWeb笔记04-解决GET与POST乱码问题
    JavaWeb笔记02-Tomcat
    HttpServletResponse类
    ServletContext类
    Servlet类以及简单的登录功能
    http和Tomcat协议
    XML
    反射
  • 原文地址:https://www.cnblogs.com/dataadapter/p/2822491.html
Copyright © 2011-2022 走看看