码迷,mamicode.com
首页 > 数据库 > 详细

数据库设计的基本要求

时间:2016-04-15 23:06:18      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

有效数据设计的目标

一个合格的数据库应该能够满足操作:crud(create-创建,read--读取,update--更新,delete--删除)

一个合格的有效的数据库设计需要满足一下特性

  1. retrieval(检索)-------------数据如果没有办法被检索出来就不叫数据库 而叫数据黑洞

  2. 一致性:对任何相同的搜索应该提供一致的结果------指数据库的不同部分不能保存相同信息的相互矛盾的视图

       例如:如果对同一张表的同一行用相同的方式查询了两次,那么这两次的查询结果应该是严格一致的。

  3. 有效性:在可能需要的地方相对数据库中的其他数据段对数据进行验证。换句话说,就是如果你更新了一条数据,那么应该能通过查询语句来验证;如果你删除了一条数据,那么,不管怎么样查询都不会再得到你删掉的数据的内容,这就是说你的操作是有效的。

  4. 另外,轻松纠错、速度-------也是两个必要的特性,否则就有点坑爹。

  5.事务的处理需满足ACID

    ----Atomicity原子性,Consistency(一致性),Isolaion(隔离性),Durability(持久性)

    原子性---事务处理过程中的操作要么全部完成,要么什么都不执行.

    一致性---事务处理确保数据库在事务处理前后处于一致的状态。

    隔离性---是指事务处理向除了执行处理事务的人以外的所有人隐蔽其细节。

    持久性---一旦提交了一个事务处理,它的结果处理就不会消失。

  6. 当然一个数据库的存在还必须尽可能满足:低成本、可扩充性、易用性、便捷性、安全性,否则总会有新来者取而代之。

数据库的规范设计
  第一范式: 1.每个列必须要有唯一一个名称
        2.行列的次序无关紧要
        3.每一列都必须有单个的数据类型
        4.不允许包含相同值的两行----------要有主键
        5.每一列都包含一个单值
        6.列不能包含重复的数组
     说明:规则3意味着任意两行在相同的列中不允许储存不同的数据类型
        规则6表明 不能多个列包含不能区分的值

  第二范式: 1.必须符合第一范式
        2.所有的非键值字段均依赖于所有的键值字段---主键(包括联合主键)
     说明:规则2有另一种说法:部分依赖,会产生冗余数据
  第三范式: 1.符合第二范式
        2.不包含传递相关性

           从性价比的角度来说,满足前三大范式最佳。

  Boyce-Codd范式:
        1.符合第三范式;
        2.每一个决定因子都是一个候选键。
  第四范式:
        1.它是Boyce-Codd范式
        2.它不包含无关的多值依赖
  第五范式:
        1.它符合第四范式
        2.它不包含相关的多值依赖
  域/键范式
        @除了域约束和键约束,该表不包含其他约束

 

数据库设计的基本要求

标签:

原文地址:http://www.cnblogs.com/lightandtruth/p/5397194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!