数据库面试题
数据库
数据保存在内存中
**优点:**存取速度快 **缺点:**数据不能永久保存
数据保存在文件中
**优点:**数据永久保存 **缺点:**速度比内存操作慢,频繁的IO操作,查询数据不方便
数据保存在数据库中
**优点:**数据永久保存,使用SQL语句,查询方便效率高、管理数据方便
SQL
是一种数据库结构化查询语言
**作用:**用于存取数据、查询、更新和管理关系型数据库系统
MySQL
mysql是一个关系型数据库管理系统。
数据库的三大范式
**第一范式:**每个列都不可以再拆分
第二范式:在第一范式的基础上,非主键列完全依赖主键,而不能是依赖主键的一部分。
**第三范式:**在第二范式的基础上,非主键列只依赖主键,不依赖其他非主键,在设计数据库结构的时候,要尽量遵循三范式,除非有足够的理由。
事务
1、什么是事务
事务是逻辑上的一组操作,要么全部执行,要么都不执行。
例如:A->B转账1000¥, 流程是A余额-1000 B余额+1000 如果出现错误,导致A余额减少B余额增加。事务就是保证这两个操作要么都成功要么都失败。
事务是恢复和并发控制的基本单位
2、事务的作用
例如:A->B转账1000¥, 流程是A余额-1000 B余额+1000 如果出现错误,导致A余额减少B余额增加。事务就是保证这两个操作要么都成功要么都失败。
因此产生事务的概念,要么全部成功,要么全部失败恢复原状。
3、事务的四大特性(ACID)
1、原子性:事务是最小的执行单位,不允许分割。事物的原子性保证动作要么全部完成要么全部不完成。
**2、一致性:**执行事务前后,数据保持一致,多个事务对同一个数据读取的效果是一样的。
**3、隔离性:**并发访问数据库时,一个用户的事务不被其他事务所干扰,每个并发事务之间的数据库是独立的
**4、持久性:**一个事务被提交之后。他对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响
4、隔离级别
1、脏读:一个事物在处理过程中读取了另一个未提交事务中的数据