美文网首页
关系数据库和mysql

关系数据库和mysql

作者: 土淼森2 | 来源:发表于2017-12-08 14:53 被阅读0次

    一.  数据库的三个设计范式,

    第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要

    求,否则,将有很多基本操作在这样的关系模式中实现不了。

    第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。

    第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF.

    注:关系实质上是一张二维表,其中每一行是一个元组,每一列是一个属性

    二. 事物

    事物特性acid:

    1、原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

    2、一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账:转账前aaa+bbb=2000;转账后aaa+bbb=2000;

    3、隔离性:事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。

    4、持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性的。

    事物的隔离级别:

    1、如果不考虑事务的隔离性,会出现什么问题?

    脏读:一个线程中的事务读到了另一个线程中事务未提交的数据

    不可重复读:一个线程中的事务读到了另一个线程中提交的update的数据,前后两次读到的内容不一致。

    虚读:一个线程中的事务读到了另一个线程中提交的insert或delete的数据,前后读到的记录条数不一致。

    2、事务的隔离级别:

    READ  UNCOMMITTED    脏读、不可重复读、虚读都有可能发生

    READ  COMMITTED  能避免脏读;不可重复读、虚读有可能发生(Oracle默认)

    REPEATABLE  READ  能避免脏读、不可重复读;虚读有可能发生(MySQL默认)

    SERIALIZABLE  能避免脏读、不可重复读、虚读的发生

    以上隔离级别:从上到下,级别越高,性能越低,数据也越安全。

    MySQL:

    查看当前数据库的隔离级别:

    select  @@tx_isolation;

    更改隔离级别:(开启事务之前更改)

    set  transaction  isolation  level  四个级别之一

    相关文章

      网友评论

          本文标题:关系数据库和mysql

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