美文网首页
数据库理论

数据库理论

作者: 楚糖的糖 | 来源:发表于2019-01-02 23:09 被阅读0次

    数据库设计中一共有6个范式,一般需要遵守3范式即可

    第一范式(1NF):强调的是原子性,数据库表的每一列都是不可分割的原子数据项,即列不可拆分

    第二范式(2NF):建立在第一范式的基础上,要求数据库表中的每个实例或记录必须可以被唯一地区分,即唯一标识。(1.表必须有一个主键;2.未包含在主键中的列必须完全依赖于主键)

    第三范式(3NF):建立在第二范式的基础上,任何非主属性不依赖于其它非主属性,即引用主键(非主键列必须直接依赖于主键,不能存在传递依赖,即不能存在非主键列A依赖于非主键列B,非主键B依赖于主键的情况)

    E-R模型

    E表示entry,实体,设计实体就像定义一个类一样,指定从哪些方面描述对象,一个实体转换为数据库中的一个表

    R表示relationship,关系,关系描述两个实体之间的对应规则,关系的类型包括包括一对一、一对多、多对多

    关系也是一种数据,需要通过一个字段存储在表中

    什么是事务:

    事务是并发控制的基本单位,所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位

    事务四大特性(简称ACID)

    原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。

    一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。

    隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。

    持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。

    表的引擎类型必须是innodb类型才可以使用事务,这是mysql表的默认引擎。

    事务的应用(对表进行修改的时候):insert, update,delete

    开启事务:begin

    提交事务commit

    回滚事务:放弃缓存中变更的数据rollback,

    一旦你提交以后,以后所有的操作都会立即影响源数据库了,也就是相当于结束此次事务了。如果想不被影响的话,需要再开启事务。

    查找数据比较慢的时候的优化处理:

    设计要合理,优化方案是索引,能加快数据库的查询操作

    大批量更新数据的时候,需要手动开启事务,提高更新效率,更加安全

    相关文章

      网友评论

          本文标题:数据库理论

          本文链接:https://www.haomeiwen.com/subject/ojkriftx.html