数据库系统概念–(范式,存储,查询,事务,引擎)

规范化的过程: 将大的表通过投影的方法,切分成很多张小的表. 通过这些表中的 公共的关联列, 通过自然连接 还原出大的表.
  • 所有属性(列)均为简单属性, 每个属性都是不可再分的.
  • 消除部分 子函数依赖.
  • 属性不依赖于其它非主属性。不存在传递函数依赖
  • (学 , 课程名称) → (姓名, 年龄, 成绩, 学分)  同一门课程由n个学生选修,”学分”就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次。 

  • 假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有”学 ”关键字,课程名称和学分也无法记录入数据库。 
  •        关键字段 → 非关键字段x → 非关键字段y  不满足第三范式也会存在数据冗余、更新异常、插入异常和删除异常的情况 
  • 设计数据库
    • –         将E-R图转换为表格
      –         应用三大范式规范化表格

    数据规范化

    • 第二范式(2nd NF-Second  Normal Fromate)
      第三范式(3rd NF- Third  Normal Fromate)

    • (这样就不可能出现二叉树那种偏斜的状况)

    • 所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小,自小而大的顺序链接。 (而 B 树的叶子节点并没有包括全部需要查找的信息) ( ps: 因为B+ 比 B 多了一个可以遍历所有叶子节点的操作, 所以保存了全部要查的信息)
    • 要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。  
    • 一致性:  事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。某些维护一致性的责任由应用程序开发人员承担,他们必须确保应用程序已强制所有已知的完整性约束。例如,当开发用于转帐的应用程序时,应避免在转帐过程中任意移动小数点。  
    • 隔离性: 由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。当事务可序列化时将获得最高的隔离级别。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。   
    • 持久性: 事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。   


  • 锁的粒度:

  • >
  • 丢失的更新不可重复读取 (Read uncommitted)
    (Repeatable read)








    文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树关系型数据库10 分钟了解 MySQL31260 人正在系统学习中

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2015年2月12日
    下一篇 2015年2月12日

    相关推荐