数据库课程考研笔记(一) 数据库绪论

129 阅读17分钟

笔者考研人大时的专业课有一门数据库,因此当时按照人大的数据库课本细致的学了一下,每章都整理了笔记,发布于此。

1.1 数据库系统概述

1.1.1 常用的四个基本概念
  1. 数据
    数据:一个描述事物的符号记录
    (这个符号记录可以是数字、文字、图像、音视频等)
    (经过数字化存入计算机之前的东西)
    数据的解释是指对于数据含义的说明,数据的含义称为数据的语义,数据与其语义是密不可分的

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

  3. 数据库管理系统(DBMS)
    数据库管理系统是位于用户和操作系统之间的一层数据管理软件。他和操作系统一样,是计算机的基础软件
    DBMS的功能:

  • 数据定义
  • 数据组织、存储和管理
  • 数据操纵功能
  • 数据库的事务管理和运行管理
  • 数据库的建立和维护功能
  • 其他功能
  1. 数据库系统(DBS)
    数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统

引入数据库后,计算机系统的层次结构为:
硬件–>OS–>DBMS–>应用开发工具–>应用系统

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

数据库技术是应数据管理任务的需要而产生的,数据管理指对数据进行分类、组织、编码、存储、检索和维护。数据管理是数据处理的中心问题,数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。
(就是数据管理就是一些进行任何数据处理都需要进行的操作,而数据处理是对数据进行的任何活动,操作是活动的子事件,组成部分,实现的过程之一)
(上边这两段是非重点)

数据管理技术经理了三个阶段:人工管理–>文件系统–>数据库系统

1. 人工管理阶段

特点:

  • 数据不保存:用的时候输入,用完就撤走
  • 应用程序管理数据:数据由应用程序自己设计,定义和管理,除了设计Logic结构还要设计物理结构等等
  • 数据不共享:一个数据集对应一个应用程序,相同数据在不同应用程序之间无法共享,数据大量冗余
  • 数据不具有独立性:数据完全依赖于应用程序,数据的结构变化后,应用程序也要跟着改
2. 文件系统阶段

特点:

  • 数据可以长期保存

  • 由文件系统管理数据(缺点如下)

    • 数据共享性差,冗余度大:文件仍然是面向应用的,两个应用程序之间,即使有一部分相同数据,也还是要建立各自的文件
    • 数据独立性差:文件的逻辑结构面型具体的应用程序,难以拓展。此外,数据的logic结构改变,应用程序中文件结构的定义也要改变,对数据的使用也要修改,数据仍然是依赖于应用的(双向)
3. 数据库系统

从文件系统到数据库系统标志着数据管理技术的飞跃

1.1.3 数据库管理系统的特点
  • 数据结构化
    数据库系统实现了整体数据的结构化,这是数据库的主要特征之一,也是数据库系统和文件系统的本质区别
    整体结构化:数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的
    (每个数据(不同应用的数据)之间都有对应的联系)

  • 数据的共享性高、冗余度低且易于扩充
    数据面向整个系统–>数据可以被共享使用–>数据共享可以大大减少数据冗余,节约存储空间。避免数据的不相容性和不一致性
    数据面向整个系统–>容易增加新的应用–>数据库系统弹性大,易于扩充

  • 数据独立性高
    物理独立性:用户的应用程序与数据库中数据的物理存储是相互独立的
    逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的

  • 数据由数据库管理系统一管理和控制
    数据库管理系统提供了以下几方面数据控制功能:

    1. 数据的安全性保护
      数据的安全性:保护数据以防止不合法使用造成的数据泄密和破坏
    2. 数据的完整性检查
      数据的完整性:数据的正确性,有效性,相容性
    3. 并发控制
    4. 数据库恢复

总结:数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以供所有用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、使用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复

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

1.2 数据模型

数据模型是对现实世界数据特征的抽象
数据模型是数据库系统的核心与基础
(应用于不同的DBS,确切地说是数据库应用系统,而不要混淆成DBMS)
根据模型应用的不同目的,可以将这些模型划分成两个大类,他们分别属于两个层次,第一类是概念模型,第二类是逻辑模型和物理模型
(他们覆盖了整个数据库系统的各个层次)
(概念模型–>数据库设计)
(逻辑模型–>DBMS的实现)
(物理模型–>由DBMS负责完成)
将实体转化为数据模型:首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界

1.2.2 概念模型
1. 信息世界的基本概念
  1. 实体:客观存在并可相互区别的事物

  2. 属性:实体所具有的某一特性

  3. 码:唯一标识实体的属性集

  4. 实体型:用实体名及其属性名集合来抽象和刻画同类实体

  5. 实体集:同一类型实体的集合

  6. 联系:分为实体内部和实体之间,实体内部通常是属性之间的联系,实体之间的联系通常是指不同实体集之间的联系
    实体之间的联系通常有一对一、一对多、多对多等多种类型

2. 概念模型的一种表示方法:实体–联系方法
实体–联系方法,使用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型
1.2.3 数据模型的组成要素
数据模型:由数据结构,数据操作和数据的完整性约束条件三部分组成
  1. 数据结构

    • 描述数据库的组成对象和对象之间的关系
  2. 数据操作

    • 是指对于数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
  3. 数据的完整性约束条件

    • 这是一组完整性规则
1.2.4 常用的数据模型

层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型(这些都是逻辑模型)

格式化模型:层次模型和网状模型的统称
在该模型中:实体–>记录,实体的属性–>记录的数据项(字段),实体之间的联系–>记录的两两联系
数据结构的单位:基本层次联系(即两个记录之间一对一or一对多的联系)

层次模型

层次模型使用树形结构来表示各类实体以及实体间的联系

  1. 层次模型的数据结构
    在数据库中,定义满足下面两个条件的基本层次联系的集合为层次模型

    • 有且只有一个节点没有双亲结点,这个节点称为根节点
    • 根以外的其他节点有且只有一个双亲结点

    每个节点表示一个记录类型,记录类型之间的联系使用节点之间的连线(有向边)表示,层次数据库系统只能处理一对多的实体联系
    每个记录类型可包含若干个字段,记录类型表示的是实体,字段描述实体的属性,记录类型和字段必须明明且不能重名(同类之间),每个记录类型可以定义一个排序字段,又称为码字段,如果定义该排序字段的值是唯一的,则他能唯一的标识一个记录值。
    在层次模型中的节点名称(根,兄弟,叶和数据结构里面相同)

层次模型像一颗倒立的树,节点的双亲是唯一的
基本特点:任何一个给定的记录值只能按其层次路径查看,子女记录值不能脱离双亲记录值而独立存在

  1. 层次模型的数据操纵和完整性约束
    数据操纵主要有:增删改查
    进行增删改的时候要满足层次模型的完整性约束条件:
  • 插入:如果没有相应的双亲结点值,就不能插入他的子女节点值
  • 删除:如果删除双亲结点值,则相应的子女节点值也被删除
  1. 层次模型的优点

    1. 层次模型的数据结构比较简单清晰
    2. 层次数据库的查询效率较高:层次数据库的性能优于关系数据库,不低于网状数据库
    3. 层次数据模型提供了良好的完整性支持
  2. 层次模型的缺点

    1. 现实中很多联系是非层次性的,如多对多的联系,不适合用层次模型表示
    2. 如果一个节点拥有多个双亲结点等,用层次模型表示这类联系较为笨拙,只能通过引入冗余数据(易产生不一致性),或者创建非自然的数据结构(引入虚拟节点)来解决,对于增删操作的限制比较多,因此应用程序的编写较为复杂
    3. 查询子女节点必须通过双亲结点
    4. 由于结构严密,层次命令趋于机械化
1.2.6 网状模型

网状数据模型的典型代表是DBTG系统,亦称CODASYSL系统

  1. 网状模型的数据结构
    定义:在数据库中,把满足如下两个条件的基本层次联系集合称为网状模型

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

特点:网状模型比层次模型更具有普遍性。它取出来层次模型的两个限制(在定义),允许多个节点没有双亲结点,允许结点有多个双亲结点,允许两个结点之间有多种联系(称为复合联系)。
每个结点表示一个记录类型,每个记录类型可以有多个字段,节点间的连线表示一对多的父子联系

区别: 层次模型中子女结点和双亲结点间的联系是唯一的,而在网状模型中这种联系不唯一
(因此,要为每个联系命名,并指出该联系所关联的子女记录和双亲记录)

注:网状模型也无法直接表达多对多的关系,他是加上个作为中间层的联系来间接的表达多对多的关系(自我理解)(比较接近平时设计的思路)(也就是说这些模型都是平时设计时候对于关系的不同特点的抽象的一个总结?)(不同的模型只是选用不同的设计来表达)

  1. 网状模型的数据操纵和完整性约束
    网状模型一般来说没有层次模型那样严格的完整性约束条件,但是具体的网状数据库系统对于数据操纵加了一些限制,提供了一定的完整性约束
    以DBGT为例:
  • 支持记录码的概念,码即唯一标识记录的数据项的集合
  • 保证一个联系中双亲记录和子女记录之间是一对多的联系
  • 可以支持双亲记录和子女记录之间的某些约束条件,为此,DBTG提供了属籍类别的概念
  1. 网状模型的优点

    • 可以更为直接的描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系
    • 具有良好的性能,存储效率较高
  2. 网状模型的缺点

    • 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
    • 网状模型的DDL,DML复杂,并且要嵌入某一种高级语言(C
      、COBOL)中,用户不易于掌握与使用
    • 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据是必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担

1.2.7 关系模型

  1. 关系模型的数据结构
    关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表
    相关术语:

    • 关系:一张表
    • 元组:表中的一行
    • 属性:表中的一列
    • 码:也称码键,可以唯一确定一个元组的属性组
    • 域:是一组具有相同数据类型的值得集合,属性的取值范围来自某个域
    • 分量:元组中的某个属性值
    • 关系模式:对于关系的描述。如 关系名(属性1,属性2……属性n)

关系模型要求关系必须是规范化的
关系的每一个分类必须是是一个不可分的数据项

  1. 关系模型的数据操纵和完整性约束
    关系模型的数据操纵:增删改查
    关系模型的完整性约束条件:实体完整性,参照完整性,用户定义的完整性

关系模型中的数据操作都是集合操作,操作对象和操作结果都是关系
关系模型把存取路径向用户隐蔽起来,用户只要指出干什么或者找什么,不必详细说明怎么干或者是怎么找

  1. 关系模型的优缺点

    1. 关系模型不同于格式化模型,它是建立在严格的数学概念的基础上的
    2. 关系模型的概念单一。数据结构简单清晰,用户易懂易用
    3. 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作

1.3 数据库系统的结构

1.3.1 数据库系统模式的概念

在数据模型中,有型和值的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值
模式是数据库中全体数据的逻辑结构和特征的描述,他仅仅涉及型的描述。模式的一个具体值成为模式的一个实例
(模式针对的是某一个特定的库,比如学生选课数据库模式,下面有2013年选课库实例等等)
模式是相对稳定的,而实例是相对变动的

1.3.2 数据库系统的三级模式结构
  1. 模式
    模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
  2. 外模式
    外模式也称子模式或者用户模式,他是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库系统的数据视图,是于某一应用有关的数据的逻辑表示
  3. 内模式
    内模式也称存储模式,一个数据库只有一个内模式,他是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式
1.3.3 数据库的二级映像功能与数据独立性

数据库的两层映像,用于在系统内部实现这三个抽象层次的联系和转换。保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性

  1. 外模式/模式映像
    (对于每一个外模式,都有一个这个映像)
    当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据和程序的逻辑独立性,简称数据的逻辑独立性。
  2. 模式/内模式映像
    它定义了数据全局逻辑结构与存储结构之间的对应关系,是唯一的。
    当数据库的存储结构改变的时候(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称为数据的物理独立性
graph LR 
内模式--依赖-->模式 
模式--独立-->内模式 
内模式--独立-->外模式 
外模式--依赖-->模式 
外模式--独立-->内模式 
模式--独立-->外模式 

特定的应用程序依赖于特定的外模式。由此数据库的二重映像保证了数据库外模式的稳定性,在底层保证了应用程序的稳定性

数据与程序之间的的独立性使得数据的定义和描述可以从应用程序中分离出去。由于数据的存取由数据库管理系统管理,从而简化了应用程序的编制,大大减少了应用程序的编制和修改

1.4 数据库系统的组成

组成成分:

-   硬件平台和数据库
-   软件
-   人员

数据库管理员的职责:

  • 决定数据库中的信息内容和结构
  • 决定数据库的存储结构和存储去测路
  • 定义数据的安全性要求和完整性约束条件
  • 监控数据库的使用和运行
  • 数据库的改进和重组、重构