【课堂笔记】《数据库系统概论(第5版)》-第1章:绪论

写在前面

本学期我专业开了“数据库系统概论”这门课,之前就从别人那里听说这门课概念很多,较为无聊,有很多人建议我这门课还是应该尽早开始背;在拿到课本之后我大致翻阅了一下,发现这本书确实文本量较大、概念较多,但同时作为一门专业基础课,确实也有好好学习,或者至少详细看一遍课本的必要,于是我决定对这一门课做一个详细的笔记,以来为了更好的学习这门课程,二来课上找点事情做,不然会睡着的。

刚开始的时候,我打算只用OneNote来做这门课的笔记,不过在完成序章之后,我发现课本中还是会有一定量的代码、数学公式等再OneNote中不方便呈现的内容,于是便决定转而使用MarkDown来记录笔记,顺便也为混几篇博客提供了方便。

本章内容初始是直接写在OneNote中,然后复制过来的,内容、章节会有些诡异,之后的内容都是一开始就使用MarkDown编写的了。

但愿可以持续更新。

1.1.1:数据库的四个基本概念

数据库的四个基本概念:
数据、数据库、数据库管理系统、数据库系统。

数据:
描述事物的符号记录称为数据;
数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。

数据库(DataBase,DB):
长期储存在计算机内、有组织的、可共享的大量数据的集合,数据库中的数据按一定的数据模型组织、描述、储存,具有较小的冗余度、较高的数据独立性、易扩展性,并可以为各种用户共享。
概括地讲,数据库数据具有永久储存、有组织、可共享三个基本特点。

数据库管理系统(DataBase Management System,DBMS):
位于用户与操作系统之间的一层数据管理软件,和操作系统一样是计算机的基础软件,包括以下主要功能:

功能 解释
数据定义功能 提供数据定义语言(Data Definition Language,DDL),用户通过DDL可以方便地对数据库中的数据对象的组织与构成进行定义。
数据组织、储存、管理 分类组织储存管理各种数据,确定文件结构储存方式,如何实现数据之间的联系,基本目标是提高储存空间利用率和方便存取,提供多种存取方法(Hash,索引,顺序)
数据操纵功能 提供数据操纵语言(Data Manipulation Language,DML),实现如查询删除插入的基本操作
数据库的事务管理和运行管理 提供数据操纵语言(Data Manipulation Language,DML),实现如查询删除插入的基本操作
数据库的事务管理和运行管理 数据库在建立运用和维护时由DBMS统一管理控制,保证事务的正确性,数据的安全完整,并发使用,故障后的系统恢复。
数据库的建立和维护功能 初始数据的输入、转换,数据库的储存、恢复、重组织、性能监视分析
其他 DBMS与网络中其他软件的通信,一个DBMS与另一个DBMS或文件系统的数据转换功能,异构数据库之间的互访和互操作。

数据库系统(DataBase System,DBS):
由数据库、数据库管理系统(及其应用开发工具)、应用程序、数据库管理员组成的储存、管理、处理和维护数据的系统。
在不引起混淆的情况下,数据库系统简称数据库。

1.1.2:数据管理技术的产生和发展

数据管理:
对数据进行分类、组织、编码、储存、检索、维护,他是数据处理的中心问题;
数据处理指的是对各种数据进行收集、储存、加工、传播的一系列活动的总和。

人工管理阶段:

  1. 数据不保存
  2. 应用程序管理数据,没有相应的软件负责;
  3. 数据不共享;
  4. 数据不具有独立性,数据完全依赖于应用程序,物理结构或逻辑结构发生变化后,必须修改应用程序;

文件系统阶段:
磁盘出现;文件系统出现;批处理、联机处理出现;

  1. 数据可以长期保存
  2. 文件系统管理数据(共享性差、冗余度高、独立性差)

数据库系统阶段:
多种应用、语言共享数据集合的要求越来越强烈;
硬件价格下降;
软件价格上升;
联机处理、分布式处理要求增多;
从文件系统到数据库系统标志着数据管理技术的飞跃;

1.1.3:数据库系统的特点

数据结构化:
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
所谓的“整体结构化”是指:数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或是企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。

数据的共享性高、冗余度低、易扩充
数据共享可以减少冗余度、节约存储空间,避免数据之间的不相容性与不一致性(统一数据不同副本值不同);
弹性大、易于扩充。

数据独立性(物理独立性、逻辑独立性)高
物理独立性:应用程序与数据的物理储存是相互独立的;
逻辑独立性:应用程序与数据的逻辑结构相互独立,数据的逻辑结构改变时应用程序可以不变;
数据独立性由DBMS的二级映像功能实现;

数据由DBMS统一管理和控制
数据库的共享是并发的,会带来安全隐患,为此,DBMS提供以下功能:

  • 数据的安全性保护:保护数据防止不合法使用造成的数据泄密和破坏,每个用户只能按规定对某些数据以某些方式进行使用和控制;
  • 数据的完整性检查:数据的正确性、有效性、相容性;
  • 并发控制:多用户同时修改存取数据时,可能会发生干扰,必须加以协调;
  • 数据库恢复:由于硬件软件故障、人员失误、蓄意破坏等原因造成数据库损坏时,能够恢复至某一已知的正确状态;

综上所述,数据库是长期储存在计算机内,有组织、大量、共享的数据集合,可以提供各种用户共享,具有最小的冗余度与最大的数据独立性。DBMS在数据库建立、运用和维护时对数据进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用时进行并发控制,在发生故障后进行恢复。

数据库系统的出现,使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。

1.2.1:两类数据模型

数据模型(Data Model):
对现实世界数据特征的抽象,用来描述数据,组织数据,对数据进行操作。
数据模型是数据库系统的核心和基础。

两类数据模型:
数据模型应该满足三方面要求:

  1. 真实的模拟现实世界
  2. 容易为人理解
  3. 便于在计算机上实现
    很难三个要求都满足,因此数据库中针对不同的适用对象和应用目的,采用不同的数据模型。

概念模型/逻辑模型和物理模型:

模型 解释
概念模型(conceptual model),也称信息模型 按用户的观点对数据和信息建模,主要用于数据库的设计。
逻辑模型(层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型……) 按计算机系统的观点对数据建模,主要用于DBMS的实现。
物理模型 对数据最底层的抽象,描述数据在内部的表示存取方式,是面向计算机系统的,具体实现是DBMS的任务。

为了将现实世界中的具体事物抽象为某一DBMS支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。

1.2.2:概念模型

概念模型(信息模型):
一方面应该具有较强的语义表达能力,能够方便、直接的表达应用中的各种语义知识,另一方面还应该简单、清晰、易于用户理解。

信息世界中的基本概念:

概念 解释
实体(entity) 客观存在并可以相互区别的物体称为实体
属性(attribute) 实体所具有的某一特性
码(key) 唯一标识实体的属性集,例如学生的学号
实体型(entity type) 用实体名及其属性集合来抽象和刻画同类实体,称为实体型
实体集(entity set) 同一类型的实体的集合
联系(relationship) 实体之间的联系通常指不同实体集之间的联系,实体之间的联系有一对一、一对多、多对多等多种类型

概念模型的一种表示方法: 实体-联系方法
概念模型的表示方法中,最常用的是实体-联系方法(entity-relationship approach),该方法用E-R图来描述现实世界的概念模型,E-R方法也称E-R模型。

1.2.3:数据模型的组成要素

数据模型是严格定义的一组概念的集合,这些概念精确地描述了系统的静态特性、动态特性、完整性约束条件(integrity constraints)。因此,数据模型通常由数据结构、数据操作、完整性约束条件三部分组成。

数据结构:
数据结构描述数据库的组成对象以及对象之间的联系。
数据结构是所描述的对象类型的集合,是对系统静态特性的描述。

数据操作:
对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。
主要包括查询和更新两大类操作。

数据的完整性约束条件:
数据的完整性约束条件是一组完整性规则,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及状态的变化,用以保证数据的正确、有效、相容。

1.2.4:常用的数据模型

数据库领域中主要的逻辑数据模型有:

  • 层次模型(hierarchical model)
  • 网状模型(network model)
  • 关系模型(relational model)
  • 面向对象数据模型(object oriented model)
  • 对象关系数据模型(object relational data model)
  • 半结构化数据模型(semistructure data model)

其中层次模型和网状模型统称为格式化模型。

1.2.5:层次模型

层次模型的数据结构:

  1. 有且只有一个节点没有双亲节点,称之为根节点;
  2. 根节点以外的其他节点有且只有一个双亲结点;

只能处理一对多的实体联系。
叶节点,兄弟节点。

层次模型的数据操纵与完整性约束:

  • 插入:新的节点没有指定双亲结点将不能插入;
  • 删除:删除一个节点将删除其所有子节点;

层次模型的优缺点:

优点:

  1. 数据结构简单清晰
  2. 查询效率高
  3. 提供了良好的完整性支持

缺点:

  1. 不能表示多对多的联系
  2. 难以处理具有多个双亲结点的情况
  3. 查询子女节点必须通过双亲结点
  4. 由于结构严密,层次命令趋于程序化?????

1.2.6:网状模型

网状模型的数据结构:

  1. 允许一个以上的节点无双亲
  2. 一个节点可以有一个以上的双亲节点

网状模型的数据操纵与完整性约束:
DBTG(data base task group)的规定:

  1. 支持记录码的概念
  2. 保证一个联系是一对多的联系
  3. 支持双亲记录与子女记录之间的某些约束条件

网状模型的优缺点:
优点:

  1. 更直接地描述现实世界
  2. 存取效率较高

缺点:

  1. 结构复杂
  2. DDL、DML复杂,不易于使用
  3. 访问数据时必须选择合适的路径,加重编写程序的负担。

1.2.7:关系模型

关系模型的数据结构:
从用户观点看,关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表;

  • 关系(relation):一个关系对应通常所说的一张表
  • 元组(tuple):表中一行为一个元组
  • 属性(attribute):表中一列为一个属性
  • 码(key):也成为码键(神经病),表中的某个可以唯一的确定元组的属性,比如学号
  • 域(domain):一组具有相同数据类型的值的集合,属性的取值范围来自某个域。
  • 分量:元组中的一个属性值
  • 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,……属性n),简单地讲,表头

关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,其中最基本的一条是,关系的每一个分量必须是一个不可分的数据项

关系模型的数据操纵域完整性约束

  • 数据操纵主要包括:查询,插入,删除,更新;
  • 完整性约束条件包括:实体完整性、参照完整性、用户定义完整性;
  • 关系模型中的数据操作是集合操作,操作对象和操作结果都是关系;

关系模型的优缺点:
优点:

  • 建立在严格的数学概念的基础之上!!!
  • 概念单一,数据结构简单,用户易懂易用
  • 存取路径对用户透明,从而有更高的数据独立性、更好的安全保密性……

1.3.1:数据库系统模式的概念

在数据模型中有型(type)和值(value)的概念;

模式(schema)是数据库中全体数据的逻辑结构和特征的描述,仅仅涉及型的描述,模式的一个具体的值称为模式的一个实例(instance)。

1.3.2:数据库系统的三级模式结构

模式(schema)
也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,及不涉及数据的物理储存与硬件环境,也不涉及具体的应用程序。

外模式(external schema)
也称子模式或用户模式,是数据库的最终用户能够看见和使用的局部数据的逻辑结构和特征描述。
一个数据库可以有多个外模式。
外模式是保证数据库安全的一个有力措施。

内模式(internal schema)
也称储存模式,一个数据库只有一个内模式,描述数据的物理结构与储存方式,是数据库内部的组织方式。

1.3.3:数据库的二级映像功能与数据独立性

二级映像保证了数据库中的数据有较高的逻辑独立性与物理独立性

外模式/模式映像:
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构;同一个模式可以有任意多个外模式,对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。
当模式改变时,由数据库管理员对各个外模式/模式映像做相应的改变,可以使外模式保持不变;由于应用程序是依据外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性

模式/内模式映像:
模式和内模式都是唯一的,因此模式/内模式映像也是唯一的,它定义了数据的全局逻辑结构与储存结构之间的对应关系,当数据的储存结构改变时,只需要对模式/内模式映像做出改变,从而应用程序也不需要改变,保证了数据与程序的物理独立性

1.4:数据库系统的组成

硬件平台及数据库

  1. 大内存
  2. 大硬盘
  3. 通道能力?网速?

软件

  1. 数据库管理系统
  2. 支持数据库管理系统的操作系统
  3. 具有数据库结构的高级语言及其环境
  4. 以数据库管系统为核心的应用开发工具
  5. 为特定应用环境开发的数据库应用系统

人员

  1. 数据库管理员,DBA
    • 决定数据库的信息内容和结构
    • 决定数据库的存储结构和存取策略
    • 定义数据的安全性要求和完整性约束条件
    • 监控数据库的使用和运行
    • 数据库的改进、重组、重构
  2. 系统分析员和数据库设计人员
  3. 应用程序员
  4. 用户
    • 偶然用户
    • 简单用户
    • 复杂用户

你可能感兴趣的:(数据库系统概论(第5版))