简述数据库的三大范式
- 第一范式:数据库表中的所有字段都是不可分解的原子值,说明该数据库满足了第一范式。
- 第二范式:关系模式必须满足第一范式,并且所有非主属性都完全依赖于主码,不存在部份依赖,但是可能还存在数据冗余、更新异常等问题
- 第三范式:首先满足第二范式,并且所有非主属性都完全依赖于主码,所有非主属性对任何候选关键字都不存在传递依赖。 BCNF:满足第三范式的基础上,还满足主属性不存在对候选键的传递依赖。
简述MySQL的架构
- MySQL可以分为应用层,逻辑层,数据库引擎层,物理层。
- 应用层:负责和客户端,响应客户端请求,建立连接,返回数据。
- 逻辑层:包括SQK接口,解析器,优化器,Cache与buffer。
- 数据库引擎层:有常见的MyISAM,InnoDB等等。
- 物理层:负责文件存储,日志等等。
简述执行SQL语言的过程
- 客户端首先通过连接器进行身份认证和权限相关
- 如果是执行查询语句的时候,会先查询缓存,但MySQL 8.0 版本后该步骤移除。
- 没有命中缓存的话,SQL 语句就会经过解析器