1.什么是事务?
事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。
1.事务的四大特性?
原子性
:要么都执行,要么都不执行
隔离性
:所有操作全部执行完以前其它会话不能看到过程,允许多个用户并发访问。
一致性
:事务前后,数据总额一致
持久性
:一旦事务提交,对数据的改变就是永久的
2.事务的隔离级别?
1、
未提交读
:读数据时不会检查使用任何锁。
2、已提交读
:只读取提交的数据并等待其他事务释放锁。
3、可重复读
:会保持共享锁到事务结束。
4、可序列化
:不仅会锁定影响的数据,还会锁定这个范围
脏读
:事务B读取事务A还没有提交的数据
不可重复读
:两次事务读的数据不一致
幻读
:事务A修改了数据,事务B也修改了数据,这时在事务A看来,明明修改了数据,咋不一样
3.关系型数据库和非关系型数据库区别?
关系型数据库
优点
1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;
2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;
3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;
4、支持SQL,可用于复杂的查询。
5.支持事务
缺点
1、为了维护一致性所付出的巨大代价就是其读写性能比较差;
2、固定的表结构;
3、不支持高并发读写需求;
4、不支持海量数据的高效率读写
非关系型数据库
1、使用键值对存储数据;
2、分布式;
优点
无需经过sql层的解析,读写性能很高
基于键值对,数据没有耦合性,容易扩展
存储数据的格式:nosql的存储格式是key,value形式
缺点
不支持事务
不提供sql支持
4.数据库的悲观锁和乐观锁是什么?
数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。
乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。