目录
(1)数据库的定义、数据库管理系统的目标、数据库的类型及各自优缺点
1 数据库基础概念
(1)数据库的定义、数据库管理系统的目标、数据库的类型及各自优缺点
(2)数据保存在内存、文件和数据库的优缺点
(3)SQL和MySQL区别
(4)数据库三大范式(注意不同范式之间的区别)
(5)数据库连接泄露
(6)什么是触发器
① 定义:触发器(triger)是与表相关的数据库对象,是用户定义在关系表上由事件驱动的一类特殊的存储过程,在满足存储条件时触发,并执行触发器中定义的语句集合
② 补充:触发器和事务的区别和联系。对于一系列操作, 希望成功则全部成功, 失败则全部失败, 适合用事务。触发器可以被认为是一个隐式的嵌套事务。嵌套在引发它的事务中。
2 索引(暂时还不是特别清晰)
(1)定义
数据库索引是 DBMS 中一个 排序的数据结构,以 协助快速查询、更新 数据库表中数据。索引的实现通常使用 B 树以及变种 B+ 树。更通俗地说,索引就相当于目录,其存在是为了方便数据内容查找,本身也占用物理空间。
(2)索引的优缺点
① 优点
- 通过创建 唯一性索引,可以保证数据库表中每一行数据的唯一性;
- 可以加快数据的 检索速度,这也是创建索引的主要原因;
- 可以加速表和表之间的连接,特别是在实现 数据的参考完整性 方面特别有意义;
- 通过使用索引,可以在查询的过程中,使用 优化隐藏器,提高系统性能。
② 缺点
- 时间上,创建和维护索引都要耗费时间,这种时间随着数据量的增加而增加,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度;
- 空间上,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
(3)索引的分类及相应的数据结构(注意区别)
① B树索引
② 哈希索引
将数据库字段数据转换成定长的 Hash 值,与这条数据的行指针一并存入 Hash 表的对应位置,如果发生 Hash 碰撞(两个不同关键字的 Hash 值相同),则在对应 Hash 键下以 链表形式 存储
③ 位图索引
如果用户查询的列的基数非常的小, 即只有几个固定值,如性别、婚姻状况、行政区等等,要么不使用索引,查询时一行行扫描所有记录,要么考虑建立位图索引。
(4)添加索引的原则
- 很少使用或者参考的列、很少数据值的列、数据类型较为特殊、性能改变不符合环境需求等时候不要创建索引;
- 定义有 外键 的数据列一定要创建索引。
(5)聚簇索引和非聚簇索引的区别
- 聚簇索引:将 数据存储 和 索引 放到一起,找到索引也就找到了数据。
- 非聚簇索引:不存储真正的数据行,只包含一个指向数据行的指针(包含覆盖索引 select 和复合索引 where)
3 事务管理
(1)什么是数据库事务(一种机制、一个操作序列,包含一组数据库操作命令,执行结果必须使数据库从一种一致性状态到另一种一致性状态)
(2)有哪些事务状态(活跃、部分提交、失败、中止[回滚]、提交)
(3)事务的四大特性
(4)如何实现ACID特性(日志和锁机制)
(5)事物之间的相互影响(脏读、不可重复读、幻读、丢失更新)
(6)什么是事务的隔离级别(读取未提交[所有问题都可能发生]、读取已提交[脏读,Oracle默认采用该级别]、可重复读[解决脏读、不可重复读]、可串行化[串行化执行,完全服从ACID])