MySQL基础知识——范式与事务
几个概念
在说范式之前,要先了解几个概念:
关系模式
关系模式的5要素:R(U,D,DOM,F)
用下面这个category表来理解上面这个式子
1 2 3 4 5 6 7 8 9 | mysql> desc student; + ------------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + ------------+----------+------+-----+---------+-------+ | id | int (11) | NO | PRI | NULL | | | name | char (10) | NO | | NULL | | | department | char (10) | NO | | NULL | | | grade | int (11) | NO | | NULL | | + ------------+----------+------+-----+---------+-------+ |
1、R-关系,可以理解为student表名。
2、U-属性组,可以理解为student表中所有字段组成的一个集合。
3、D-域,可以理解为student表中的某一个字段,比如说id,或者说name。
4、DOM-域的映像集合,可以理解为id或者name字段的取值范围(可以取哪些值)。
5、F-属性间数据的依赖关系,可以理解为:通过id(学号),可以计算出grade(年级)和department(院系),此时的依赖称为函数依赖,因为通过id,通过一个func(id)是可以计算出grade和department。
码
某一属性列K,经过某种运算(函数依赖func()),可以计算出另外一个属性列U,此时,称K为关系模型R的候选码。
比如,上面的例子,通过id计算出grade和department。那么id就是student表的候选码。
同样,通过id和name也可以找出department和grade,所以(id、name)也是student的码。
范式
事务
事务的四个特性,分别是ACID。
A(atomicity)原子性:表示事务内的所有操作是一个整体,要么全部成功,要么全部失败。事务中多个操作,只有当所有操作都成功完成,没有出错误,那么事务才认为是成功的;否则只要有一个操作失败了,就会认为事务失败了,同时,会将该事务中已经成功执行的操作进行回滚。
C(Consistency)一致性:表示一个事务内有一个操作失败时,所有的更改过的数据都必须回滚到修改前的状态。事务执行的结果必须是使数据库从一个一致性状态变为另一个一致性状态。一致性状态可以这样理解,一个事务包含两个操作,如果在事务完成后,数据库只有其中一个操作的结果生效,而另外一个操作执行后却没有生效(数据库中没有改变),此时就是不一致状态。如果数据库保存了两个操作的结果,那么就处于一致性状态。
I(isolation)隔离性:事务查看数据时,数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另外一个事务修改他之后的状态,而不会是查看到中间状态的数据一个事务的执行不能被其他事务干扰。
D(durability)持续性:事务一旦提交之后,那么事务对数据库的改变就应该是永久的(持久化到硬盘中,写入到硬盘中)。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 如何基于DeepSeek开展AI项目
2016-09-16 安装Java和Tomcat