跳至主要內容

数据库系统概总结

PPLong大约 10 分钟

数据库系统概总结

绪论

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

数据(data):数据库中存储的基本对象。定义:描述事务的符号记录,可以是数字也可以是文字、图形、图像.....都可以经过数字化存储后存入计算机。

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

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

  1. 数据定义 (提供数据定义语言DDL[Data Definition Language])
  2. 数据组织、存储和管理
  3. 数据操纵 (提供数据操纵语言 DML[Data Manipulation Language])
  4. 数据库的事务管理和运行管理
  5. 数据库的建立和维护功能
  6. 其他功能

数据库系统(DataBase System, DBS):由数据库、数据库管理系统、应用程序和数据库管理员(DBA) 组成的存储、管理、处理和维护数据的系统

数据库管理技术的发展

1. 人工管理阶段

数据处理方式:批处理

缺点:数据不保存、应用程序管理数据、数据不共享、数据不具有独立性

2. 文件系统阶段

特点:数据可长期保存、由文件系统管理数据
优点:数据共享性差、冗余度大、数据独立性差

3. 数据库系统阶段

特点:

  1. 数据结构化(与文件系统的本质区别

  2. 数据的共享性高、冗余度低且易扩充

  3. 数据独立性高

    1. 物理独立性:用户的应用程序与数据库中数据的物理存储是相互独立的(用户程序无需了解)
    2. 逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的(数据的逻辑结构改变时用户程序可以不变)
  4. 数据由数据库管理系统统一管理和控制

    数据库管理系统需要提供以下几个方面的数据控制功能:

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

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

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

数据模型

数据模型:对现实世界数据特征的抽象。是数据库系统的核心和基础

两类数据模型

数据模型应满足的三方面要求:

  1. 较为真实地模拟显示世界
  2. 容易被人理解
  3. 便于在计算机上实现

1. 概念模型

也是信息模型,按用户的观点来对数据和信息建模,主要用于数据库设计

信息世界的节本概念:

  1. 实体:客观存在并且可相互区别的事物
  2. 属性
  3. 实体型
  4. 实体集
  5. 联系

概念模型的表示方法: 实体联系方法(E-R方法)

2. 逻辑模型和物理模型

按计算机系统的观点对数据建模,主要用于数据库管理系统的实现
其中物理模型是对数据的最底层抽象,描述数据在系统内部的表示方式和存取方法,火灾磁盘或者磁带上的存储方式和存取方式,面向计算机系统

数据模型是数据库系统的核心和基础

数据模型的组成要素

数据模型由以下三部分组成

  1. 数据结构:描述数据库的组成对象以及对象之间的联系
  2. 数据对象:对数据库中各种对象的示例允许执行的操作的集合,包括操作及有关的操作规则
  3. 数据的完整性约束条件:一组完整性规则

常用的数据模型

  • 层次模型
    • 最早出现
    • 满足以下条件:
      • 有且只有一个节点没有双亲节点,为根节点
      • 根以外的其他的节点有且只有一个双亲节点
    • 优点:
      1. 数据结构简单清晰
      2. 查询效率高(记录之间的联系用有向边表示 ----- 指针)
      3. 提供了良好的完整性支持
    • 缺点:
      1. 现实世界中许多联系费层次,不适用层次模型表示
      2. 如果一个节点具有多个双亲节点,用层次模型表示则十分笨拙,引入冗余数据
      3. 查询子女节点必须通过双亲节点
      4. 结构严密,层次命令趋于程序化
  • 网状模型
    • 表示非树状结构的现实模型
    • 满足以下条件:
      • 允许一个以上的节点无双亲
      • 一个节点可以有多于一个的双亲
    • 网状模型中子女节点与双亲节点的联系不唯一
    • 优点:
      1. 直接描述显示世界
      2. 具有良好的性能,存取效率高
    • 缺点:
      1. 结构复杂,随着环境扩大,数据库的结构变得越来越复杂
      2. 网状模型的DDL、DML复杂,要嵌入一种高级语言,用户不容易掌握
      3. 用户必须了解系统结构的细节,记录之间的联系通过存取路径实现,应用程序在访问数据时必须选择适当的存取路径
  • 关系模型
    • 最重要的一种数据模型
    • 要求关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项
    • 关系模型中的数据操作是集合操作,操作对象和操作结果都是关系
    • 优点:
      1. 建立在严格的数学概念的基础上
      2. 概念单一、数据结构简单清晰,无论是实体还是实体之间的联系都用关系来表示,对数据的检索和更新结果也是关系
      3. 存取路径对用户透明,有更高的数据独立性,更好的安全保密性
  • 面向对象数据模型
  • 对象关系数据模型
  • 半结构化数据模型

数据库系统的结构

模式:数据库中全体数据的逻辑结构和特征的描述,仅仅设计 型(对一类数据结构和属性的说明)的描述,不涉及具体的值。模式的一个具体值成为模式的一个实例,同一个模式可以有多个实例。模式的相对稳定的,实例是相对变动的。模式反应的是数据的结构及其联系,实例反应的是数据库某一时刻的状态

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

  1. 模式(schema):

    也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。是数据库系统模式结构的中间层。
    模式实际上是数据库数据在逻辑级上的视图,一个数据库只有一个模式。
    DBMS提供模式DDL来严格定义模式

  2. 外模式(external schema):

    也叫子模式、用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

    是模式的子集,一个数据库可有多个外模式,是各个用户的数据视图。

  3. 内模式(internal schema):

    存储模式,一个数据库只有一个内模式,是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式

DBMS在三级模式之间提供两层映像:

  1. 外模式/模式映像

    对每一个外模式,DBS都有一个外模式/模式映像,定义了改外模式与模式之间的对应关系

    模式改变时,由数据库管理员对各个外模式/模式的映像做出改变,可以使得外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,即数据的逻辑独立性。

  2. 模式/内模式映像

    唯一的,定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时,由数据库管理员对模式/内模式做出相应改变,可以使得模式不变,从而应用程序也不用改变,保证了数据的物理独立性

数据库系统的组成

  • 硬件平台及数据库
  • 软件
  • 人员
    • 注意一点。用户分成三类:偶然用户(中高级管理人员)、简单用户(普通用户)、复杂用户(具有高科学技术背景的人员)

关系数据库

关系

  • 域:一组具有相同数据类型的值的集合

  • 笛卡尔积

  • 关系:

    候选码:关系中的某一属性组的值能唯一标识一个元祖,而其自己不能,则称该属性组为候选码。若一个关系有多个候选码,则选定其中的一个为主码。候选码的诸属性称为主属性,不包含在任何候选码中的属性称为非主属性或者非码属性。
    全码:候选码只包含一个属性,关系模式的所有属性是这个关系模式的候选码

    关系的三种类型:

    • 基本关系
    • 查询表
    • 视图表:虚表,不对应实际存储的数据

关系模式

关系模式是型,关系是值,关系模式是对关系的描述

关系操作、

关系完整性

关系模式中有三类完整性约束:实体完整性、参照完整性、用户定义完整性

  1. 实体完整性:若属性A是基本关系R的主属性,则A不能取空值
  2. 参照完整性:若属性F是基本关系R的外码,它与基本关系S的猪吗Ks相对应,则对于R中每个元组在F上的值必须:(谁是谁的外码)
    1. 或者取空值
    2. 或者等于S中某个元组的主码值
  3. 用户定义完整新:用户定义的完整性就是针对某一具体关系数据库的约束条件,反应某一具体应用所设计的数据必须满足的语义要求

关系代数

抽象的查询语言,用对关系的运算来表达查询

关系代数的运算按照与运算符不同可以分为传统集合运算和专门的关系运算。

  1. 传统集合运算:并、交、差、笛卡尔积
  2. 专门的关系运算:包括、投影、连接、除运算等
    • 连接:注意自然连接、外连接、左外连接、右外连接(符号如何表示)。悬浮元组是啥
    • 除:理解如何算