1.MySql是关系型数据库
2.数据库三大范式
第一范式:属性不可分割(列不可分割)
第二范式:满足第一范式,非主属性(主键)必须依赖主属性(主键)
第三范式:满足第二范式,且不存在依赖传递
3.数据库事务
事务:指一个或多个数据库操作组成的逻辑单元或代表单个工作单元的一组SQL语句
特性:ACID
A:原子性 -- 事务被视为一个不可分割的操作单元要么成功要么失败回滚
C:一致性 -- 事务在执行前后,数据库从一个一致的状态转变成另一个一致的状态,
事务的执行不会破坏数据的完整性赫业务规则
I:隔离性 -- 事务的操作在并发环境中互不干扰
D:持久性 -- 一旦事务提交所作的更改将永久保存
4.视图
定义:视图是定义在数据库的一个虚拟表,它是基于一个或多个表的查询结果集,它可以像实际表一样被查询赫操作,视图本身并不存储数据,只是定义一个查询
5.触发器
定义:触发器是用户定义在关系表上的一类有事件驱动的特殊过程,它不需要由用户或应用程序显示调用而是由数据库自动调用
6.MySql数据库底层如何实现,为什么这样实现
底层实现:底层是B+树
B+树的特点是所有数据都存储在叶子节点上,根节点只存储索引,B+树的所有叶子节点构成一个有序的链表。
二叉树在最坏情况下会形成一个链表
平衡二叉树的特性是这个二叉树的左右子树的高度差的绝对值大小不超过1,并且左右子树都是一个平衡二叉树,插入,查找,删除的最好最坏事件复杂度都是O(logN),但是为了达到平衡当插入和删除是会进行旋转,可能会浪费掉O(logN)的时间
红黑树,特性是
(1)每个节点或者是黑色,或者是红色。
(2)根节点是黑色。
(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!
(4)如果一个节点是红色的,则它的子节点必须是黑色的。
(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。
对比于平衡二叉树它最多只需要旋转三次就可以实现平衡,但二叉树的特点是左右节点只能由一个值,这会使得树的高度会非常大,并没有减少磁盘I/O次数
B树,对于B+树B树的节点中会存放数据会导致更多的磁盘I/O次数