面试复习之数据库

Posted 中二病没有蛀牙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试复习之数据库相关的知识,希望对你有一定的参考价值。

数据库

基础概念
主码:从候选码中选择一个。
主属性:包含在任何一个候选码中的属性。
非主属性:不包含在任何码中的属性。

主键
唯一标识一条记录,不能有重复的,不允许为空
用来保证数据完整性
主键只能有一个

外键
表的外键是另一表的主键, 外键可以有重复的, 可以是空值
用来和其他表建立联系用的
范式
规范化过程是为了解决数据冗余、删除异常、插入异常、更新异常等问题。
(1)第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。
(2)第二范式(2NF):当且仅当关系模式R是第一范式(1NF),且每一个非主属性完全依赖候选键(没有不完全依赖)时,则称关系模式R是第二范式
(3)第三范式(3NF):当且仅当关系模式R是第二范式(2NF),且R中没有非主属性传递依赖于候选键时,则称关系模式R是第三范式。
(4)BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。

索引
索引是一张表,该表保存了主键与索引字段,并指向实体表的记录。
索引可以提高mysql的检索速度,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
建立索引会占用磁盘空间的索引文件。
索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。
语句
CREATE INDEX indexName ON table_name (column_name)

事务
包括ACID
事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。

  1. 原子性(Atomicity)
    事务被视为不可分割的最小单元,要么全部提交成功,要么全部失败回滚。
  2. 一致性(Consistency)
    事务执行前后都保持一致性状态。在一致性状态下,所有事务对一个数据的读取结果都是相同的。
  3. 隔离性(Isolation)
    一个事务所做的修改在最终提交以前,对其它事务是不可见的。
  4. 持久性(Durability)
    一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。可以通过数据库备份和恢复来保证持久性。

以上是关于面试复习之数据库的主要内容,如果未能解决你的问题,请参考以下文章

面试复习之数据结构

面试复习之数据结构

面试复习之数据结构

面试复习之数据库

面试复习之数据库

面试复习之数据库