0
点赞
收藏
分享

微信扫一扫

数据库复习总结(一)

慎壹 2022-03-11 阅读 51

数据库复习总结

基本概念

元祖:元组就是一行
码:就是属性,对应一列
候选码:能唯一标识实体的
主码:主键,唯一标识一个元祖,不能为空,一个表只能有一个主键。
外码:外检,一个关系中的某一个属性是其他关系中的主键

使用外键就可以使用级联操作减少代码量。

ER图

一般使用ER图来厘清数据库的关系。

数据库范式

1NF(第一范式)
属性不能再被分割了
2NF(第二范式)
简单来说,对于一个用一个主键在这个属性中只能对应一个值
在2NF的基础上 3NF 不能存在其他的依赖关系,只能有主键依赖关系

drop delete truncate

drop table 表明明,删除表
truncate 清空一张表里面的数据
delete 删除一列数据

DDL 与DML

DDL是增删改查等一些操作
DML是数据库定义操作

Mysql 的一些

关系型数据库和非关系型数据库

关系型数据库就是一张表,一列一行的
非关系型数据库,就是一张表,但是里面一行的数据多少不固定

Mysql 的引擎问题
InnoDB和MyISAM
其中,InnoDB提供食物支持,支持行级锁和表级锁,支持外键
MyISAM不支持事务(就不能回滚),不支持外键

Mysql 锁

  1. 表级别锁:一锁锁一整张表
  2. 行级别锁:一锁锁一行数据
  3. 乐观锁:给数据加一个版本号
  4. 悲观锁:锁死,事务完成之后才能动

事务

所谓事务就是一组操作逻辑,要么都执行,要么都不执行
ACID
原子性:操作不能被切割,事务就是最小的单位。
隔离性:事务与事务之间彼此隔离
持久性:事务提交之后的改变是持久化保存在磁盘上的
一致性:一致性,执行前后数据保持一致

脏读:一个事务改变了数据,但是还没有存到数据库,另一个事务读取了数据,那读取到的就不是正确的数据。
丢失修改:一个事务修改了数据后,第二个事务也修改了数据,两个人提交之后,可能有一个事务的操作没有被执行。
不可重复读: 本质上一个事务在多次读取的时候,另外一个事务改变了这个事务的某些数据导致了读取同一条数据但是数据不一样
幻读:本质上就是一个事务加了几行 ,和不可重复的本质使相同的

事务的隔离级别
读取未提交:允许被读取尚未被提交的数据被修改
读取已提交:允许读取已经提交的数据
可重复读 同一个字段多次读取结果相同,除非是事务本身被改变了
可串行化 最高隔离级别 事务按照顺序

一条sql语句是如何被执行的

  • 查询语句
    1. 查询该语句是否有权限,如果没有权限直接返回错误信息
    2. 通过分析器进行词法分析,提取关键元素,判断是否有语法错五
    3. 优化器执行sql语句
  • 更新
    1. 查询缓存
举报

相关推荐

0 条评论