数据库系统概论--精简版

数据库精简版

第一章

数据&数据库&数据库管理系统&数据库系统

数据:描述事物的符号记录称为数据,数据库存储的基本对象

数据库长期存储在计算机内,可共享、有组织的大量数据,数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享

数据库管理系统:位于用户与操作系统的一层数据管理软件,是计算机的基础软件。用以科学的组织、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能

数据库系统:由数据库、数据库管理系统、应用程序、数据库管理员组成的存储、管理、处理和维护数据的系统

数据结构化

数据库系统和文件系统的本质区别。(文件管理系统中记录内部具有结构,但是结构与记录之间的关系是固化的)。

所谓**“整体”结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的**。

也就是说,不仅要考虑某个应用的数据结构,还应考虑整个组织之间的数据结构

数据不一致性

所谓数据的不一致性是指同一数据不同副本的值不一样。

实体&实体型&实体集

实体:客观存在并可相互区别的事物

实体型:具有相同属性地实体必定具有相同特征和性质,用实体名及其属性名集合来抽象和刻画同类实体。

实体集同一类型实体的集合

实体之间的联系:

  • 实体内部的联系:组成实体的属性之间的联系
  • 实体之间的联系:通常指不同实体集之间的联系(实体之间的联系有一对一、一对多和多对多等多种类型。)
  • 通过指针链接来表示和实现实体之间联系的模型是层次和网状模型
  • 关系模型中,联系用关键码 (或外键,或关系运算) 来实现。

数据模型

数据库系统中用于提供信息表示和操作手段的形式构架,是现实世界的模拟和抽象

三要素:由数据结构、数据操作、数据的完整性约束条件三部分组成。

数据模型分:①概念模型 E-R图 ②逻辑模型(层次、网状、关系)③物理模型

关系模型

关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

( l )关系:一个关系对应通常说的一张表;

( 2 )属性:表中的一列即为一个属性;

( 3 ):属性的取值范围;

( 4 )元组:表中的一行即为一个元组;

( 5 )主码:表中的某个属性组,它可以惟一确定一个元组;

( 6 )分量:元组中的一个属性值;

( 7 )关系模式:对关系的描述,一般表示为关系名(属性 1 ,属性 2 , … ,属性 n )

  • 字段就是数据库实例中某张表的一列
  • 记录(元组):事物特征的组合,可以描述一个具体的事物。
  • 表:记录的组合 表示同一类事物的组

型&值&模式

对某一数据结构和属性的说明

型的具体一个赋值

模式

数据库中全体数据的逻辑结构和特征的描述,仅涉及型。

实例

模式的一个具体值。

同一个模式可以有很多的实例。

模式VS实例
  • 模式相对稳定,而实例相对变动。
  • 模式反映的是数据的结构及其联系,实例反映的是数据库某一个时刻的状态。

三级模式和两级映像

外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。

内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述

两层映像:外模式/模式映像和模式/内模式映像

正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性

数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。

※※要保证数据库的数据独立性需要修改的是三级模式之间的两级映射※※

缩写

(l)DML①数据操纵语言

(2)DBMS②数据库管理系统

(3)DDL③数据描述语言

(4)DBS④数据库系统

(5)SQL⑤结构化查询语言,是一种非过程化、关系数据库的语言

(6)DB ⑥数据库

(7)DD ⑦数据字典

(8)DBA⑧数据库管理员

(g)SDDL⑨安全描述符定义语言

第二章

关系&关系模型&关系模式

  1. 关系模式是型,关系是值,关系模式是对关系的描述
  2. 关系是关系模式在某一个时刻的状态或者内容,关系模式是静态的,稳定的,而关系是动态的,随时间不断变化的,因为关系操作在不断地更新着数据库中的数据
  3. 类似于面向对象程序设计中”类“与”对象“的区别。“关系”是“关系模式”的一个实例,可以把“关系”理解为一张带数据的表,而“关系模式”是这张数据表的表结构。

关系模型包含关系,关系是关系模型的数据结构,在关系模型中,现实世界的实体以及实体间的各级联系均用单一的结构类型,即关系来表示

完整性约束

实体完整性规则是指若属性A是基本关系R的主属性 ,则属性A不能取空值

若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。

对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。

违约处理

对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。

而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。

对于参照表的外码只有两种取值:(1)等于空值;(2)等于被参照表的某个主码值;

当在被参照表中插入数据时,如果不满足外码约束,将拒绝插入;对于数据删除、更新等操作,在定义外码约束时有三种处理策略:

(1) 拒绝处理no action

(2) 级联操作cascade

(3) 设置为空set null

等值连接&自然连接

等值连接(行)

在这里插入图片描述

自然连接(行和列)

在这里插入图片描述

悬浮元组

两个天系R和S在做自然连接时,选择两个关系在公共属性上值相等的元组构成新的关系。此时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃了,同样,S中某些元组也可能被舍弃。这些被舍弃的元组称为悬浮元组(dangling tuple)。

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Ui6fQQg-1642775492637)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20220103195204499.png)]

第三章

SQL特点

  1. 综合统一
    在这里插入图片描述

  2. 高度非过程化(SQL语言是一个非过程化的语言,指的是在使用其进行数据操作中,SQL的操作过程由DBMS自动完成,用户只需提出“做什么”,而不必知道“怎么做”,无需了解存取路径等。所以称其为非过程化语言。)

  3. 面向集合操作方式

  4. 用同一种语法结构提供多种使用方式

  5. 语言简洁 易学易用

第五章

数据库的完整性

数据库的完整性数据库的完整性是指数据的正确性和相容性

数据完整性(Data Integrity)是指数据的正确性一致性相容性

数据库的完整性和安全性

数据的完整性和安全性是两个不同的概念,但是有一定的联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。 后者是保护数据库防止恶意的破坏和非法的存取。 也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据

数据库保护包括数据的安全性、完整性、并发控制、恢复

第六章

关系规范化中的删除操作异常是指不该删除的数据被删除,插入异常是指应该插入的数据未被插入;而规范化就是为了解决数据库中数据的插入、删除、修改异常等问题的一组规则。

第七章

数据库设计过程

  1. 需求分析;(设计的基础,最困难,最耗费时间;包括数据和处理,数据流程图)

  2. 概念结构设计;(关键,概念模型ER图–实体-关系模型,合适的数据结构,表示概念结构的常用方法和描述工具是实体联系方法,范式)

  3. 逻辑结构设计;(将ER图转化成数据模型,设计成关系模式–实体和实体之间的联系采用同样的数据结构表达的数据模型)

  4. 数据库物理设计;(存储结构和存储方法,确定数据库存储结构,即确定关系、索引、聚簇、日志、备份等数据的存储安排和存储结构)

  5. 数据库实施;

  6. 数据库运行和维护。

在这里插入图片描述

数据字典

数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有的定义信息,包括关系模式定义、视图定义、索引定义、完整性约束定义、各类用户对数据库的操作权限、统计信息等。

数据字典是进行详细的数据收集和数据分析所获得的主要成果。

它是关于数据库中数据的描述,即元数据,而不是数据本身。

数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。

数据字典的内容通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。

数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实和完善

第十章

恢复子系统

因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。

恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)。

事务

事务是用户定义的一个数据库操作系列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。

这个四个特性也简称为ACID特性。

原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。

一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

持续性:持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

数据库恢复基本技术

数据转储

数据转储和登录日志文件是数据库恢复的基本技术。 当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态

数据转储是数据库恢复中采用的基本技术。所谓转储即DBA定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态

静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。

动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。 为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(log file)。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。

转储还可以分为海量转储和增量转储两种方式。

海量转储是指每次转储全部数据库

增量转储则指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。

登录日志

日志文件是用来记录事务对数据库的更新操作的文件。

概括起来日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。

原则
  • 登记的次序严格按并发事务执行的时间次序。
  • 必须先写日志文件,后写数据库

对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性所以为了安全,一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。这就是**“先写日志文件”的原则。**

故障种类

事务内部故障

有的是可以通过事务程序本身发现,而更多的是非预期的,如计算溢出、并发事务思索、违反了完整性约束

意味着没有达到预期的 终点,commit或显示的rollback,因此事务可能处于不正确的状态

恢复

数据库要在不影响其他事务运行的情况下,强行回滚该事务,即撤销该事务已经做出的任何修改,使得该事务没有启动过一样。

(利用日志文件,反向扫描,执行逆操作,直到事务的开始标记)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qV9NoQv4-1642775492639)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20220104163845584.png)]

系统故障

系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。

例如,特定类型的硬件错误(CPU 故障)、操作系统故障、DBMS 代码错误、系统断电等。

恢复

恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤销所有未完成事务,重做已完成的事务

(因为有可能一些事务的数据还停留在缓冲区尚未写回到磁盘数据库中)

  1. 正向扫描,找出已经提交和尚未完成的事务,放进redo和undo list.
  2. undo**(反向扫描日志文件,执行更新操作的逆操作)**
  3. redo**(正向扫描日志文件,对每个重做事务执行日志登记文件中的操作)**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Yws2V6N-1642775492639)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20220104170738123.png)]

介质故障

硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。

恢复

重装数据库,利用转储的后备副本,将数据库恢复到先前的一个正确的状态。

  1. 装入最新的数据库后备副本,恢复到最近一次转储时的一致性状态
  2. 装入相应的日志文件(转储结束时刻的日志文件),重做已完成的事务,扫描日志文件找出已完成的标识,然后重做。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g8iWx0OB-1642775492640)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20220104170727405.png)]

总结

各类故障对数据库的影响有两种可能性:

一是数据库本身被破坏

二是数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的。

第十一章

封锁协议

主要区别在于什么操作需要申请锁,以及何时释放锁

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIyrukuS-1642775492640)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20220109142244341.png)]

死锁活锁

活锁

活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活

原因

活锁产生的原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。

解决:

避免活锁的简单方法是采用先来先服务的策略。

死锁
原因

两个或多个事务都已封锁了一些数据对象,然后又都请求已被其他事务封锁的数据加锁,从而出现死等待

解决
  1. 一次封锁法
  2. 顺序封锁法
检测

数据库系统一般采用允许死锁发生,DBMS检测到死锁后加以解除的方法。 DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。

解除

通常采用的方法是**选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。**当然,对撤销的事务所执行的数据修改操作必须加以恢复。

两段锁协议

两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁

• 在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;

• 在释放一个封锁之后,事务不再申请和获得任何其他封锁

“两段”的含义是,事务分为两个阶段:

  • 第一阶段是获得封锁,也称为扩展阶段。在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。
  • 第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务释放已经获得的锁,但是不能再申请任何锁。
    死锁后加以解除的方法。 DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。
解除

通常采用的方法是**选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。**当然,对撤销的事务所执行的数据修改操作必须加以恢复。

两段锁协议

两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁

• 在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;

• 在释放一个封锁之后,事务不再申请和获得任何其他封锁

“两段”的含义是,事务分为两个阶段:

  • 第一阶段是获得封锁,也称为扩展阶段。在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。
  • 第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务释放已经获得的锁,但是不能再申请任何锁。
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机系统概论是一门介绍计算机基础概念和计算机系统组成的课程,旨在让学生了解计算机的结构、运行原理、操作系统、数据存储等知识,并学习使用计算机工具进行编程、调试和优化等操作。 具体来说,计算机系统概论包括以下内容: 1.计算机概论:介绍了计算机的历史、发展和应用领域,以及计算机体系结构和组成部分的基本概念。 2.计算机硬件:涵盖了计算机CPU、主板、内存、硬盘等硬件的结构和工作原理,以及各种输入输出设备的使用和驱动程序的编写等。 3.操作系统:介绍了操作系统的作用和功能,包括进程管理、内存管理、文件系统、设备管理等方面的知识,让学生学会使用操作系统进行任务管理和资源分配。 4.程序设计:教授程序设计的基本原理和方法,包括编程语言的选择和使用、算法设计和代码实现等方面的技能,使学生能够用程序实现各种计算和数据处理任务。 5.网络与互联网:让学生了解计算机网络和互联网的结构和运作原理,掌握网络通讯和数据传输的基本技术和协议,学会进行网络编程和应用开发。 总之,计算机系统概论是一门非常实用的课程,对于想要从事计算机相关工作或者学术研究的人来说,都具有很高的参考价值。而且,在ITEYE中文版免费学习,更为学生提供了良好的学习资源和平台,有助于加强自学和提高专业水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值