几个概念

在说范式之前,要先了解几个概念:

关系模式

  关系模式的5要素:R(U,D,DOM,F)

用下面这个category表来理解上面这个式子

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)持续性:事务一旦提交之后,那么事务对数据库的改变就应该是永久的(持久化到硬盘中,写入到硬盘中)。

MySQL基础知识——范式与事务的更多相关文章

  1. mysql基础知识语法汇总整理(二)

    mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...

  2. mysql基础知识语法汇总整理(一)

    mysql基础知识语法汇总整理(二)   连接数据库操作 /*连接mysql*/ mysql -h 地址 -P 端口 -u 用户名 -p 密码 例如: mysql -u root -p **** /* ...

  3. MySQL 基础知识梳理

    MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...

  4. mysql基础知识大全

    前言:本文主要为mysql基础知识的大总结,mysql的基础知识很多,这里作简单概括性的介绍,具体的细节还是需要自行搜索.当然本文还有很多遗漏的地方,后续会慢慢补充完善. 数据库和数据库软件 数据库是 ...

  5. MySQL基础知识:启动管理和账号管理

    整理.记录常用的MySQL基础知识:时间久了,很多就忘记了. 操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13 MySQL Community Server - GPL. ...

  6. MySQL基础知识:创建MySQL数据库和表

    虚构一个微型在线书店的数据库和数据,作为后续MySQL脚本的执行源,方便后续MySQL和SQL的练习. 在虚构这个库的过程中,主要涉及的是如何使用命令行管理 MySQL数据库对象:数据库.表.索引.外 ...

  7. MySQL基础知识:Character Set和Collation

    A character set is a set of symbols and encodings. A collation is a set of rules for comparing chara ...

  8. Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型

    1.基础知识 1.1.数据库概述 简单地说:数据库(Database或DB)是存储.管理数据的容器: 严格地说:数据库是"按照某种数据结构对数据进行组织.存储和管理的容器". 总结 ...

  9. 一、MySQL基础知识

    一.背景介绍 我们每天都在访问各种网站.APP,如微信.QQ.抖音,今日头条等,这些东西上面都存在大量的信息,这些信息都需要有地方存储,存储在哪里呢?数据库. 所有我们需要开发一个网站.APP,数据库 ...

随机推荐

  1. oracle的order by排序中空字符串处理方法

    1.缺省处理 Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前 2.使用nvl函数 nvl函数可以将输入参数为空时转换为一特定值,如 ...

  2. Docker部署HDFS

    docker部署hadoop只是实验目的,每个服务都是通过手动部署,比如namenode, datanode, journalnode等.如果为了灵活的管理集群,而不使用官方封装好的自动化部署脚本,本 ...

  3. MetaMask/safe-event-emitter

    https://github.com/MetaMask/safe-event-emitter safe-event-emitter An EventEmitter that isolates the ...

  4. lombok的使用和原理

    一.项目背景 在写Java程序的时候经常会遇到如下情形: 新建了一个Class类,然后在其中设置了几个字段,最后还需要花费很多时间来建立getter和setter方法 lombok项目的产生就是为了省 ...

  5. python 全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python 理论知识,线程的创建)

    昨日内容回顾 队列 队列 : 先进先出.数据进程安全 队列实现方式: 管道 + 锁 生产者消费者模型 : 解决数据供需不平衡 管道 双向通信 数据进程不安全 EOFError: 管道是由操作系统进行引 ...

  6. AI 判别式模型和生成式模型

    判别式模型(discriminative model) 生成式模型(generative model) 对于输入x,类别标签y:产生式模型估计它们的联合概率分布P(x,y)判别式模型估计条件概率分布P ...

  7. MySQL 基础八 用户管理

    SELECT * FROM student INSERT INTO student(NAME,sex,createuser,createtime) VALUES('jack','男','ligenyu ...

  8. SQL 清理缓存 更新无效

    --查询结果1 select * from Student where ID='CCB87B71-FB78-4BFE-8692-24DD2D8F8460' --查询结果2 where ID='CCB8 ...

  9. 【Atcoder ARC060F】最良表現 / Best Representation

    Atcoder ARC060 F 题意:给一个串,求将其分成最少的没有循环节的串的种数. 思路:先求KMP的\(fail\)数组.然后发现最少的串数只有三种可能:\(1\).\(2\).\(n\). ...

  10. WIFI底座

    自己贴片的51+WIFI的开发板终于到了..还是贴片的好看 美中不足的是需要改一个电阻的阻值..还有就是由于自己的8266和51单片机一块断电上电,所以如果用的USB线的质量不好就会出现 下载不了程序 ...