DBMS提供的能力

1)持久存储 DBMS在灵活性方面比文件系统要好,同时支持对非常大量数据的存储

2)编程接口

3)事务管理 DBMS支持对数据的并发存取,即多个不同的进程(称作事物)同时存取操作,事物具有原子性。DBMS还需要有恢复能力

数据库管理系统概述

DBMS有两个不同的命令来源:

1)普通用户和应用程序,他们对数据进行访问与修改

2)数据库管理员,负责建立数据库的结构与模式的人

查询处理概述

查询会沿着以下两条路径进行

查询响应

1)用户传命令给查询编译器

2)查询编译器对查询进行分析和优化,得到查询计划

3)动作序列传给执行引擎

4)执行引擎向资源管理器发出一系列对于小数据单元的请求。

5)资源管理器掌握着数据文件的数据格式,大小,索引文件等,查找数据的请求会被翻译成对页面的请求

6)请求被传送到缓冲区管理器

7)缓冲区管理器负责将数据从第二级存储器传到主存的缓存区

事物处理

事物处理器分成两个部分

a)并发控制管理器,保证事物的原子性与孤立性

b)日志和恢复管理器,负责事物的持久性

一个或多个操作组成一组,称为事物,事物处理器从操作系统得到命令,从而知道什么时候事物开始,什么时候结束。事务处理器执行以下任务

1)日志记录

2)并发控制,一般通过加锁实现

3)死锁解决,资源竞争而引发死锁的时候需要终止一个或多个事物从而使其他事物进行下去

事物的ACID属性

A:原子性(Atomicity)即事物完全执行或完全不执行

C:一致性(Consistency)

I:隔离性(Isolation),表面上看起来事物都是在没有其他事物同时执行的情况下执行的

D:持久性,事物完成之后的影响不会丢失

查询处理器

查询处理器对数据库性能的影响是最大的,它分为两个部分

1)查询编译器,将查询翻译成一种内部形式,称为查询计划。查询编译器包括三个部分

  a、查询分析器,将查询命令建立为一个树结构

  b、查询预处理器,对查询进行语义检查(例如检查查询中的关系是否存在),进行某些树结构转换,将分析树转换为代数操作符树

  c、查询优化器,将最初的查询计划转换成对实际数据操作的最有效的操作序列

2)执行引擎,负责执行查询计划的每一步。执行引擎与DBMS中的大多数其他成分都有交互,或直接交互,或通过缓冲区。

数据库系统实现 第一章 DBMS实现概述的更多相关文章

  1. 《驾驭Core Data》 第一章 Core Data概述

    <驾驭Core Data>系列教程综合了<Core Data for iOS>,<Learning Core Data for iOS>,<Core Data ...

  2. javaSE习题 第一章 JAVA语言概述

    转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做 ...

  3. 第一章、Django概述

    目录 第一章.Django概述 一.了解软件开发架构 二.HTTP协议 三.响应状态码 四.请求方式 五.基于wsgiref模块 六..动静态网页 七.python三大主流web框架 八.安装Djan ...

  4. 第一章 Windows内核概述

    第一章 Windows内核概述 这一章节描述了Windows内核知识中最重要的几个概念,这些话题在这本书之后会有更详细的描述,那些会与当前的主题密切相关.要确保你理解这个章节的概念,因为这些概念构成了 ...

  5. Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述

    第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库  如果想要有奇特的绘 ...

  6. [编程笔记]第一章 C语言概述

    //C语言学习笔记 第一讲 C语言概述 第二讲 基本编程知识 第三讲 运算符和表达式 第四讲 流程控制 第五讲 函数 第六讲 数组 第七讲 指针 第八讲 变量的作用域和存储方式 第九讲 拓展类型 第十 ...

  7. Node入门教程(2)第一章:NodeJS 概述

    Node 概述 什么是 Node Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...

  8. 【程序员翻身计划】Java高性能编程第一章-Java多线程概述

    目标 重点: 线程安全的概念 线程通信的方式与应用 reactor线程模型 线程数量的优化 jdk常用命令 Netty框架的作用 难点 java运行的原理 同步关键字的原理 AQS的抽象 JUC的源码 ...

  9. {java学习}[第一章]软件开发概述(2017.1.11).

随机推荐

  1. Centos添加硬盘分区

    1. 查看硬盘信息 fdish -l 此处/dev/sdb为新添加硬盘 2. 格式化为ext4硬盘格式 mkfs.ext4 /dev/sdb 亦可使用其他格式 硬盘空间大于2T时,MBR分区无法识别更 ...

  2. handy源码阅读(一):EventBase类

    类EventBase继承于类EventBases,继承于noncopyable.  其中noncopyable是一个去除了拷贝构造和赋值构造的类. noncopyable: class noncopy ...

  3. Dubbo学习-8-dubbo启动时检查

    启动时检查的作用如下: (1)Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true& ...

  4. linux find rm ls 逻辑非运用

    需求场景描述 查找出除已知文件外的文件 办法: [root@VM_58_118_centos test]# .1_fv1..0_pv1..6_15752678845473..2_fv1..4_pv1. ...

  5. Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》

    当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用户访问时是通过如http://www.XX.com的方式访问,在请求时,浏览器首先会查询DNS服务 ...

  6. [CSP-S模拟测试]:building(模拟)

    题目传送门(内部题64) 输入格式 第一行有一个整数$id$,表示测试点编号.第二行有四个整数$n,m,k,q$.然后有$k$行,每一行有四个整数$x_{i_1},y_{i_1},x_{i_2},y_ ...

  7. [CSP-S模拟测试]:Reverse(模拟+暴力+剪枝)

    题目描述 小$G$有一个长度为$n$的$01$串$T$,其中只有$T_S=1$,其余位置都是$0$.现在小$G$可以进行若干次以下操作: $\bullet$选择一个长度为K的连续子串($K$是给定的常 ...

  8. 组件Component详解

    [转]https://www.cnblogs.com/moqiutao/p/8328931.html

  9. python杂谈

    1.for循环过界保护 例如: a=len([1,2,3]) for i in range(a): for j in range(i+1:a) print(i,j) 不会报错 2.python集合和列 ...

  10. JavaScript浅析

    目录 JacaScript概述 ECMAScript和JavaScript的关系 ECMAScript的历史: JavaScript的引入方式: 引入额外的JS文件: JavaScript的语言规范: ...