美文网首页
数据库概念总结

数据库概念总结

作者: Apple_Boy | 来源:发表于2019-07-05 14:41 被阅读0次

总的可以分为这几个部分(记忆为3344):

三大范式   三个SQL语言集

四个完整性约束    四个数据库的事务特性

三大范式:

第一范式:

原子性:是指每列的数据不能再分裂出其他的列

例如:联系人的中的姓名,电话,性别,其中电话不属于第一范式,要属于第一范式的话就要对电话在进一步分裂(姓名,性别,手机,家庭电话)

第二范式:

在满足第一范式的情况下,每一列的数据都与主键有关系

例如:订单的编号,生产编号,价格,生产日期,其中生产编号与订单的信息没有直接关系所以可以去掉

第三范式:

在满足第二范式的情况下,所有的列都与主键有关(这个关系是指全部满足对主键的关系而不是部分)也不依赖于其他主键

例如订单的信息(订单号,产品,单价,顾客姓名,顾客编码),其中顾客姓名与顾客编码相关所以应该吧顾客姓名去除

三个SQL语言集:

DDL:数据定义语言,创建,删除,修改表

DML:数据操纵语言,增删改查(或者分为DML增删改和DQL查)

DCL:数据控制语言,授权 ,收权

四个完整性约束:

完整性约束:数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。数据完整性分为四类:

实体完整性(Entity Integrity)、域完整性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义的完整性(User-definedIntegrity)

实体完整性(Entity Integrity):实体完整性规定表的每一行在表中是唯一的实体。

在数据表中可以对相应字段进行如下约束来实现实体完整性:

UNIQUE(唯一约束)

PRIMARY KEY(主键约束)

IDENTITY(标识列)

域完整性(Domain Integrity):是指数据库表中的列必须满足某种特定的数据类型或约束。

域完整性有以下几种约束:

CHECK(检查约束)

FOREIGN KEY(外键约束)

DEFAULT(默认值约束)

NOT NULL(不为空值约束)

参照完整性(Referential Integrity):是指两个表的主关键字和外关键字的数据应对应一致。

参照完整性作用表现在如下几个方面:

禁止在从表中插入包含主表中不存在的关键字的数据行

禁止会导致从表中的相应值孤立的主表中的外关键字值改变

禁止删除在从表中的有对应记录的主表记录

用户定义的完整性(User-defined Integrity):是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。用户自己定义的,比如年龄大小在0-100,人民币面值最大为100

四个数据库的事务特性:

在这之前先说一下事务的概念:

在数据库中,所谓事务是指一组逻辑操作单元即一组sql语句。当这个单元中的一部分操作失败,整个事务回滚,只有全部正确才完成提交。

判断事务是否配置成功的关键点在于出现异常时事务是否会回滚,事务的隔离性是指一个事务的执行不能被其他事务干扰。

为了让多个SQL语句作为一个事务执行:

(1)执行语句前调用 Connection 对象的 setAutoCommit(false);

以取消自动提交事务

(2)在所有的 SQL 语句都成功执行后,调用 commit(); 方法提交事务

(3)在出现异常时,调用 rollback(); 方法回滚事务。

数据库事务需要满足四个特性,ACID,

原子性(Atomic):整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性(Consistency)::在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。

隔离性(Isolation):隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据(指一个事务的执行不能被其他事务干扰)

持久性(Durability):在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

不考虑事务的隔离性,会发生的问题:

1,脏读,是指在一个事务处理过程里读取了另一个未提交的事务中的数据。

2,不可重复读,是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。

不可重复读和脏读的区别:脏读是某一事务读取了另一个事务未提交的脏数据,而不可重复读则是读取了前一事务提交的数据。

3,虚读(幻读)是事务非独立执行时发生的一种现象。在当前事务中,读取到了另一事务提交的插入的数据

幻读和不可重复读都是读取了另一条已经提交的事务(这点就脏读不同),所不同的是不可重复读查询的都是同一个数据项,而幻读针对的是一批数据整体(比如数据的个数)。

MySQL数据库为我们提供的四种隔离级别:

  ① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。

  ② Repeatable read (可重复读):可避免脏读、不可重复读的发生。默认的

  ③ Read committed (读已提交):可避免脏读的发生。

  ④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。

以上四种隔离级别最高的是Serializable级别,最低的是Read uncommitted级别,当然级别越高,执行效率就越低。像Serializable这样的级别,就是以锁表的方式(类似于Java多线程中的锁)使得其他的线程只能在锁外等待,所以平时选用何种隔离级别应该根据实际情况。在MySQL数据库中默认的隔离级别为Repeatable read (可重复读)。

相关文章

  • 数据库基础和SQL基础总结

    本文会总结下数据库知识,SQL基础,常用SQL语句总结; 一、数据库基础相关概念 二、数据库重点知识点 三、数据库...

  • 数据库概念总结

    总的可以分为这几个部分(记忆为3344): 三大范式 三个SQL语言集 四个完整性约束 四个数据库的事务特性 三...

  • 关系数据库知识点

    好久没有做知识型的总结, 期末复习数据库课程, 每天更新复习成果. 数据库概念: 1.什么是数据库系统? 数据库和...

  • 关系及数据库

    引子 数据库可以分为关系型数据库和非关系型数据库,这里的关系是什么?从关系型数据库最初被提出的概念中,可以总结出:...

  • 数据库概念解释

    一,数据库基本概念 数据库 数据库...

  • SQLserver之视图、存储过程、触发器和游标(有点偏到了方法

    今天数据库上课学习了三个概念,再加上之前学习的视图和索引,我决定一起做个总结。当然,此次总结只为了理清思...

  • 1-1,数据库建库建表操作

    数据库和表的概念 1,数据库的概念:存储数据的容器(对比仓库去理解),、 2,表的概念:真正的存储单元 3,数据库...

  • 01 DDL DML DQL

    今日内容 数据库的基本概念 MySQL数据库软件安装卸载配置 SQL 数据库的基本概念 MySQL数据库软件 SQ...

  • MySQL基础笔记

    今日内容 数据库的基本概念 MySQL数据库软件安装卸载配置 SQL 数据库的基本概念 MySQL数据库软件 SQ...

  • MySQL基础课堂笔记

    内容 1、数据库的基本概念2、 MySQL数据库软件3、SQL 数据库的基本概念 1.数据库的英文单词: Data...

网友评论

      本文标题:数据库概念总结

      本文链接:https://www.haomeiwen.com/subject/pifehctx.html