数据库三大范式,事务,隔离级别

本文介绍了数据库的三大范式:第一范式1NF、第二范式2NF和第三范式3NF,强调了每个范式的规范要求。接着详细阐述了数据库事务的概念,包括事务的特性ACID和在多表操作中的应用。最后讨论了事务的隔离级别,如读未提交、读已提交、可重复读和串行化,及其可能引发的问题。
摘要由CSDN通过智能技术生成

1,数据库的三大范式是什么

数据库的范式:是设计数据库的一种规范要求,每一个范式呈的次规范;

        第一范式1NF:数据库表中每一列是不可拆分的原子列,不能出现复合列(集合数据)

        第二范式2NF:在1NF的基础上,每一张表描述一件事情;非主键字段必须完全依赖于主键字段

        第三范式3NF:在2NF基础上,非主键字段不能传递依赖于主键,使用外键约束来操作

2,什么是数据库事务

事务:是关系型数据库的一种机制:当批量操作sql或者多张表同时操作(update,insert into,delete),这些语句的执行要么同时成功,要么同时失败:当执行成功了,将事务提交,直接影响数据库的记录数:当执行失败时,需要回滚事务;

        应用场景:
                在某些业务中,同时操作(update,inseret into,delete)多张表的时候(同时执行多个sql),就需要开启事务,否则在执行多个sql中如果出现异常,一部分成功,一部分失败,就会导致数据紊乱!
                
                举例:    
                    提交订单----->生成订单---给order以及order_item都需要插入数据
                                    订单表 order
                                    订单项表 order_item
                                    商品表 product

        

3.数据库事务的特点以及隔离级别

事务的特点:ACID

        原子性:针对数据的操作要么同时成功要么同时失败

        一致性:数据的操作前后数据总量不变的

        隔离性:事务就是管理业务操作,业务和业务独立,事务和事务也是分离开来的

        持久性:针对数据的操作,如果提交事务了,及时关机,数据也会永久保存!

事务的隔离级别:

        read uncommitted:读未提交,,会导致最严重的问题 "脏读"(一个事务读到另一个没有提交事务)

        read committed:读已提交,,可以有效防止脏读,但是会现在一个问题"不可重复读"(在提交事务之前和事务,数据不一致!)

        repeatable read:可重复读, 有效防止脏读(mysql的默认隔离级别),会出现"幻读

        serializable:串行化(序列化) 隔离级别最高,安全性最高效率最低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值