数据库理论

2019-01-02  本文已影响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,

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

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

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

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

上一篇下一篇

猜你喜欢

热点阅读