概念:数据库管理系统(Database Management System)

概念讲解

数据库

  • 存储数据,用户可以对于数据文件进行增、删、改、查操作。以一定的方式存储并与应用程序彼此独立的数据集合。

数据模型

  • 数据结构
    • 存储在数据库中的对象类型的集合,作用是描述数据库组成对象以及对象之间的关系
  • 数据操作
    • 对数据对象进行的操作。
  • 数据完整性约束条件
    • 数据与数据模型遵守完整性规则,它能保证数据的正确性和一致性。

数据库存储结构

  • Head files
  • Hash buckets
  • B+ trees

关系

  • 描述实体与实体之间的联系的单一的数据结构。关系可以看做是一个笛卡尔积的有限子集。

关系模型

  • 数据模型。n个集合的笛卡尔积的一个子集。

分布式数据库

  • 在网络上将物理上分散的多个数据库单元连接组合成的一个逻辑上统一的数据库。每个被连接起来的数据库单元成为站点或者节点。

ACID

  • 数据库管理系统在写入数据时,为保证事务上的正确性,必须具备四个特性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。

NULL值

  • 属性(列)的值未知,而不是0;

数据库规范化

  • 见字如意,以减少数据库中的数据冗余,增进数据的一致性为目的的技术。

数据库完整性

  • 实体完整性
  • 域完整性
  • 参照完整性

实体完整性

  • 要求每个表中必须有主键

主键

  • 在表中唯一标识一条数据。或与另一表产生联系。

外键

  • 表与表之间由关系来链接,A表中的主键放在B表中,AB两个表存在关系,A的主键就是B表的外键。

候选键

  • 是某个关系变量的一组属性所组成的集合。
  • 这个属性集合始终能够确保在关系中能唯一标识元组。
  • 在这个属性集合中找不到真子集能够满足条件。
  • 能够在关系中唯一表示出不同的元组。

代理键

  • 代理键是在当数据库表中的候选键都不适合当主键的时候,就会找一个没有意义的但是唯一标识一条数据的字段来作为主键。例如数据太庞大。







数据库组件

触发器(trigger)

  • 在数据库中,在执行数据有异动的动作时,先行拦截一种数据库对象,作为强制运行的特定动作程序,成为数据操作语言触发器。
  • 使用触发器的优点:
    • 可以在写入数据前,强制校验或者是转换数据。
    • 触发器发生错误的时候,异动结果会被撤销。
    • 可以依照特定的情况,替换异动指令。
    • 部分数据库管理系统可以针对数据定义语言使用触发器,成为DDL触发器。

视图

  • 是将一组指令构成的结果集,组合成可查询的数据表的一种数据库对象。与数据表不同的是,数据表是一种实体结构,但是视图表示一种虚拟结构,实体表中的数据变化都可以反应到视图中。
  • 视图的优点:
    • 在数据库中不需要存储数据
    • 可以视为数据表,具有JSON的能力
    • 可以在视图中运行测试数据
    • 在多数情况下,视图是只读的,外部程序无法对其修改。
    • 可以将实体数据表隐藏起来,降低被攻击的风险。

事务

  • 对数据进行执行过程中的一个逻辑单位,有限序列操作构成。
  • 提供将数据恢复至正常状态的方法,同时也保证了数据库即使在异常状态也能保持一致性的方法。
  • 在处理并发访问数据库的时候,可以在这些应用程序之前提供一个隔离方法。防止彼此之间的干扰。
  • ACID的性质
    • 原子性:事务作为一个整体被执行,包含在其中的对数据库的操作要么全部执行,要么不执行。
    • 一致性:事务应该确保数据库的状态从一个状态转变到另个一一致的状态,一致状态是在数据库中的数据应该满足完整性约束。
    • 隔离性:多个事务并发执行时,一个事务的执行应该影响其他事务的执行。
    • 持久性:已经被提交的事务对数据库的修改应该永久保存在数据库中。

并发控制

  • 确保及时的修正并发导致错误的一种机制。

乐观锁

  • 并发方法的一种,它假设多用户并发的事务在处理的时候不会彼此影响,各个事务能够在不产生锁的情况下处理各自影响的那部分数据,在提交更新数据之前,每个事务会先检查在事务读取数据后,有没有其他事务有修改了该数据,如果其他的事务有更新的话,正在提交的事务将会回滚。
  • 乐观并发控制包含的阶段:
    • 读取:事务将数据读入缓存,这个时候系统会给事务分配一个时间戳。
    • 校验:事务执行完毕后,进行提交,这是同步校验所有事务。如果事务所读取之后又被其他事务修改,则产生冲突,事务被中断回滚。
    • 写入,通过校验阶段后,将跟新的数据写入数据库。

悲观锁

  • 处理并发导致的错误的另一种方式。他可以阻止一个事务影响其他用的方式爱修改数据。
  • 为数据安全提供了保证
  • 效率低,处理加锁的机制会让数据库产生额外的开销,增加死锁的机会。

数据库索引

  • 一个排序的数据结构,以协助快速查询,更新数据表中的数据。

原文发布于微信公众号 - 数据库SQL(SQLdba)

原文发表时间:2018-01-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何使用Symlink更改MySQL数据目录

数据库随着时间的推移而增长,有时会超出文件系统的空间。当它们与操作系统的其余部分位于同一分区时,可能会遇到I/O冲突。RAID,网络块存储和其他设备可以提供冗余...

1636
来自专栏数据库

浅谈MySQL的事务隔离级别

推荐阅读 微服务: springboot系列教程学习 源码:Javaweb练手项目源码下载 调优:十五篇好文回顾 面试笔试:面试笔试整理系列 希望这篇文章能够阐...

2058
来自专栏云计算教程系列

如何使用MySQLTuner优化MySQL性能

MySQLTuner是一个用Perl编写的脚本,帮助你提高MySQL性能及稳定性。它通过检索当前配置变量和状态数据,提供一些基本性能建议。

1525
来自专栏大眼瞪小眼

MySQL基础复习

2NF:每一个非主属性完全依赖于候选码(属性组的值能唯一的标识一个元组,但是其子集不可以)。

792
来自专栏腾讯云数据库(TencentDB)

MySQL 8.0 版本功能变更介绍

作者介绍:朱强,腾讯云数据库高级工程师,主要负责腾讯云数据库MySQL的开发和运营,曾就职于华为和网宿,在存储、文件系统开发有丰富经验。

1.2K56
来自专栏小怪聊职场

MySQL(六)|《千万级大数据查询优化》第二篇:查询性能优化(2)

2769
来自专栏张善友的专栏

SQL Server 2008多版本并发控制

数据库的一致性,也是衡量DBMS性能的重要指标之一。目前大多数商业数据库(DB2, SQL Server)的并发控制采用的是两阶段锁(Two-Phase Loc...

2006
来自专栏数据和云

DB2 Vs MySQL系列 | 体系架构对比

前些日子,我们做了DB2 VS MySQL的数据类型的对比,今天我们将体系架构的对比分享给大家,让大家对这两类数据库有更深刻的认识。 ? DB2体系结构 ? ?...

2915
来自专栏跟着阿笨一起玩NET

SQL基础之 时间戳

本文转载:http://www.cnblogs.com/liuhh/archive/2011/05/14/2046544.html

2661
来自专栏PHP在线

SQL语句执行过程详解

一条sql,plsql的执行到底是怎样执行的呢? 一、SQL语句执行原理: 第一步:客户端把语句发给服务器端执行 当我们在客户端执行 select 语句时,客户...

4786

扫码关注云+社区