细小知识点之MySQL(二)
来源:互联网 发布:剑灵千甄拳捏脸数据 编辑:程序博客网 时间:2024/04/29 20:57
1.三范式
第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。
第二范式是除了主键以外的其它列,都依赖于该主键,消除部分依赖(A->B,C->D。A,D为主键)
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。消除传递依赖(A->B,B->C。C为主键)
2.事务的隔离级别
脏读:一个事务开始读取了某行数据,但是另外一个事务已经更新了此数据但没有能够及时提交幻读(Phantom Reads):事务两次查询同一数据但是结果不一样。这是因为在两次查询过程中有另外一个事务插入或删除数据造成的,重点是插入或删除
不可重复读(Non-repeatable Reads)一个事务对同一行数据重复读取两次,但是却得到了不同的结果,重点是修改
未提交读(Read Uncommitted):允许脏读取,但不允许更新丢失。不允许两个事务同时写,但允许一个写,一个读。该隔离级别可以通过“排他写锁”实现。
提交读(Read Committed):允许不可重复读取,不允许脏读取。这可以通过“瞬间共享读锁”和“排他写锁”实现。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。
可重复读取(Repeatable Read):禁止不可重复读取和脏读取,但是有时可能出现幻读。这可以通过“共享读锁”和“排他写锁”实现。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。
序列化(Serializable):提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。如果仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。
- 细小知识点之MySQL(二)
- 细小知识点之MySql(一)
- 细小知识点之Hibernate
- 细小知识点之Struts2
- 细小知识点之Java
- 细小知识点之计算机网络
- 细小知识点之Spring
- 细小知识点之Maven
- 细小知识点之JSP&Servlet
- [iOS]细小的知识点
- Swift 细小知识点汇集
- 个人细小知识点整理
- C语言细小知识点
- Java 细小知识点
- js的细小知识点
- SQL开发常见细小知识点
- mysql知识点记录二
- mysql中的知识点二
- poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)
- HD1233 还是畅通工程 【Kruskal】
- securityoverridehacking challenge 解题思路汇总——Decryption
- 简单地把Excel导入mysql
- CentOS7 常用命令
- 细小知识点之MySQL(二)
- 在vsphere client 给esxi上的虚拟机增加U盘识别
- android的GPS定位跟踪系统
- 【leetcode】Palindrome Linked List【java】
- codeforces 245C Game with Coins
- c++ 静态全局变量 和 全局变量的区别
- select、poll、epoll之间的区别总结[整理]
- 今天的学习笔记以及月总结
- Android自动测试之Monkey工具