Preface

要求掌握以下知识点:

  1. 信息系统综合知识:数据库管理系统的类型、结构和性能评价,常用的关系型数据库管理系统,数据库模式、数据库规范化,分布式数据库系统、并行数据库系统、数据仓库和数据挖掘技术、数据库工程、备份恢复;
  2. 系统架构设计案例分析和论文:数据库建模、数据库设计、数据库系统的备份及恢复。

认识数据库系统

数据库系统(DataBase System, DBS)是实现有组织的、动态的存储大量关联数据、方便多用户访问的计算机软件、硬件和数据资源组成的系统。一个DBS由计算机硬件、软件(应用程序)、数据库和数据库管理员(DataBase Administrator, DBA)构成。常用的DBS分为集中式、分布式、C/S式和并行式四种。

相比于文件系统阶段,数据库技术在数据管理上的特点如下:

  • 使用复杂的数据模型表述数据结构,数据冗余小、易扩充,实现数据共享;
  • 较高的数据和程序独立性;
  • 方便的用户接口;
  • 提共4个方面的数据控制功能:并发控制、恢复、完整性和安全性;
  • 增加了系统的灵活性。

数据库管理系统(DataBase Management System, DBMS)是一种负责数据库的定义、建立、操作、管理和维护的软件系统。目的是保证数据安全可靠,提高数据库应用的简明性和方便性。其工作机理是把用户对数据的操作转为对系统存储文件的操作,有效实现数据库三级之间的转化。

数据库模式

image.png

三级模式

  1. 外模式,或称子模式,用户模式,用于描述用户看到或使用的那部分数据的逻辑结构。一个数据库可以有多个外模式,但是一个程序只能使用一个外模式;
  2. 概念模式,或称模式,逻辑模式,用于描述数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据完整性约束条件及记录之间的联系,是数据项值的框架;
  3. 内模式,是整个数据库的最低层表示,不同于物理层,它假设外存是一个无限的线性地址空间,定义存储记录的类型、存储域的表示、存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织;一个数据库只能拥有一个内模式。

概念模式是数据库的中心与关键;内模式依赖于概念模式,独立于外模式和存储设备;外模式面向具体的应用,独立于内模式和存储设备;应用程序依赖于外模式,独立于概念模式和内模式。

三个级别

  1. 用户级数据库:对应于外模式,最接近于用户,又称用户视图;
  2. 概念级数据库:对应于概念模式,介于用户级与物理级之间,是所有用户视图的最小并集,是DBA看到和使用的数据库,又称DBA视图;
  3. 物理级数据库:对应于内模式,描述数据的实际存储组织,最接近于物理存储,又称为内部视图。

两级独立性

DBS的三个抽象级通过两级映射(外模式/模式映射、模式/内模式映射)进行转换。同时又具有两级独立性:

  • 物理独立性:指用户应用程序和存储在磁盘上的数据库中的数据是相互独立的,数据的物理存储改变时,用户应用程序不需要改变;存在于模式/内模式映射转换中;
  • 逻辑独立性:用户的应用程序和数据库中的逻辑结构是相互独立的,数据的逻辑结构发生改变时,用户应用程序不需要改变。

数据模型

数据模型主要有两大类,分别是概念数据模型(实体联系模型,E-R模型)和基本数据模型(结构数据模型)。基本数据模型是按照计算机系统的观点对数据和信息建模,主要用于DBMS的实现,由数据结构数据操作完整性约束三部分构成。

常用的基本数据模型有:

  • 层次模型:使用树状结构表示实体类型及其联系,优点是实体间的联系可以使用指针实现,查询效率高,但是只能表示1:n联系;
  • 网状模型:使用有向图表示实体类型及其联系,可以使用指针实现联系,也很容易实现m:n联系,查询效率高,但是编写应用程序复杂;
  • 关系模型:使用表格结构表达实体集,用外键表示实体间联系,建立在严格的数学概念基础上,概念单一,结构简单清晰,但是查询效率低;
  • 面向对象模型:用面向对象的观点描述现实世界实体的逻辑组织、对象间限制、联系等的模型。

关系模型、规范化理论和反规范化理论

基本概念

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

给定一组域D1,D2,,DnD_1, D_2, \dots, D_n,记D1×D2××Dn={(d1,d2,,dn)djDj,j=1,2,3,,n}D_1 \times D_2 \times \dots \times D_n = \{ (d_1, d_2, \dots, d_n) | d_j \in D_j, j = 1, 2, 3, \dots, n \}为它们的笛卡尔积。其中(d1,d2,,dn)(d_1, d_2, \dots, d_n)称为n元组,简称元组。笛卡尔积可以看作一个二维表,表中的每一列是一个域,每一行对应一个元组。构成笛卡尔积的域可以是相同的。

由于域可能是重复的,因此每列必须有一个名字,称为属性。

笛卡尔积的子集叫做在域D1,D2,,DnD_1, D_2, \dots, D_n上的关系,使用R(D1,D2,,Dn)R(D_1, D_2, \dots, D_n)表示。RR表示关系的名字,nn表示关系的“目”或“度”。

若关系中的某一属性组(一个或者多个列)的值可以唯一标识一个元组,则该属性组称为候选键(候选码);一个关系有多个候选键时,可以选择一个作为主键(主码),主键的所有属性称为主属性。不在任何候选键中的属性称为非码属性(非主属性)。极端情况下,关系模式的所有属性的组合构成候选键,称为全码。

关系具有三种基本类型:

  1. 基本关系,或称基本表,基表,是实际存在的表,是实际存储数据的逻辑表示;
  2. 查询表,是查询结果对应的表;
  3. 视图表,是基本关系或者其他视图表导出的表,是虚表,不对应实际存储的数据。