数据库系统概论

Posted by Wh0ami-hy on June 25, 2024

基于《数据库系统概论》第5版 王珊 编著

1. 绪论

1.1. 数据库系统概述

1.1.1. 四个基本概念

数据Data

数据是数据库中存储的基本对象

数据的种类:文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等

DB数据库(Database)

长期储存计算机内有组织可共享的大量数据集合

数据库的基本特征

  • 数据按一定的数据模型组织、描述和储存
  • 可为各种用户共享
  • 冗余度较小
  • 数据独立性较高
  • 易扩展

DBMS数据库管理系统(Database Management System)

DBMS是位于用户与操作系统之间的一层数据管理软件,是基础软件

DBMS的用途:科学地组织和存储数据、高效地获取和维护数据

DBMS的主要功能

  • 数据定义功能
    提供数据定义语言(DDL) 定义数据库中的数据对象

  • 数据组织、存储和管理
    分类组织、存储和管理各种数据
    确定组织数据的文件结构和存取方式
    实现数据之间的联系
    提供多种存取方法提高存取效率

  • 数据操纵功能
    提供数据操纵语言(DML) 实现对数据库的基本操作(查询、插入、删除和修改)

  • 数据库的事务管理和运行管理
    数据库在建立、运行和维护时由DBMS统一管理和控制
    保证数据的安全性、完整性、多用户对数据的并发使用
    发生故障后的系统恢复

  • 数据库的建立和维护功能(实用程序)
    数据库初始数据装载转换
    数据库转储
    介质故障恢复
    数据库的重组织
    性能监视分析等

  • 其它功能
    DBMS与网络中其它软件系统的通信
    两个DBMS系统的数据转换
    异构数据库之间的互访和互操作

如:MySQL、Oracle、Microsoft SQL Server等,这些系统用来创建、管理和维护数据库

DBS数据库系统(Database System)

数据库系统的构成

  • 数据库 Database
  • 数据库管理系统(及其开发工具)Database Management System
  • 应用系统
  • 数据库管理员 Database Administrator

数据库系统的特点

  • 数据结构化
  • 数据的共享性高,冗余度低,易扩充
  • 数据独立性高
    • 物理独立性
      指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。
    • 逻辑独立性
      指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
    • 数据独立性是由DBMS的二级映像功能来保证的
  • 数据由DBMS统一管理和控制
    • (1)·数据的安全性(Security)保护·
      保护数据,以防止不合法的使用造成的数据的泄密和破坏。
    • (2)数据的完整性(Integrity)检查
      将数据控制在有效的范围内,或保证数据之间满足一定的关系。
    • (3)并发(Concurrency)控制
      对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
    • (4)数据库恢复(Recovery)
      将数据库从错误状态恢复到某一已知的正确状态。

如:电子商务网站,在线银行系统、医院的信息管理,这些系统可以使用各种类型的数据来支持业务需求和决策。

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

什么是数据管理:对数据进行分类、组织、编码、存储、检索和维护

1.2. 数据模型

1.2.1. 数据模型的概念

通俗地讲数据模型就是现实世界的模拟

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

  • 能比较真实地模拟现实世界
  • 容易为人所理解
  • 便于在计算机上实现

    1.2.2. 两大类数据模型

  • (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
  • (2) 逻辑模型物理模型
    逻辑模型主要包括网状模型层次模型关系模型面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
    物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。

客观对象的抽象过程—两步抽象

  • 现实世界中的客观对象抽象为概念模型
  • 概念模型转换为某一DBMS支持的数据模型

1.2.3. 数据模型的组成要素

  • 数据结构

    数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,数据结构指对象和对象间联系的表达和实现,是对系统静态特征的描述,包括两个方面:
    (1)数据本身:类型、内容、性质。例如关系模型中的域、属性、关系等。
    (2)数据之间的联系:数据之间是如何相互关联的,例如关系模型中的主码、外码联系等。

  • 数据操作

    数据操作

    • 对数据库中各种对象(型)实例(值)允许执行的操作,及有关的操作规则

    数据操作的类型

    • 查询
    • 更新(包括插入、删除、修改)
  • 数据的完整性约束条件

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

1.2.4. 概念模型

信息世界中的基本概念

  • (1) 实体(Entity)
    客观存在并可相互区别的事物称为实体。
    可以是具体的人、事、物或抽象的概念。
  • (2) 属性(Attribute)
    实体所具有的某一特性称为属性。
    一个实体可以由若干个属性来刻画。
  • (3) (Key)
    唯一标识实体的属性集称为码。
    (4) (Domain)
    属性取值范围称为该属性的域。
  • (5) 实体型(Entity Type)
    实体名及其属性名集合来抽象和刻画同类实体称为实体型
  • (6) 实体集(Entity Set)
    同一类型实体的集合称为实体集
  • (7) 联系(Relationship)
    • 现实世界中事物内部以及事物之间联系在信息世界中反映为实体内部的联系和实体之间的联系。
    • 实体内部的联系通常是指组成实体的各属性之间的联系
    • 实体之间的联系通常是指不同实体集之间的联系

两个实体型之间的联系

  • 一对一联系(1:1)
  • 一对多联系(1:n)
  • 多对多联系(m:n)

概念模型的一种表示方法:实体-联系方法(E-R方法)(Entity Relationship Diagram)

联系本身也是一种实体型也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来

1.2.5. 关系模型

关系数据库系统采用关系模型作为数据的组织方式

关系模型中数据的逻辑结构是一张二维表,它由组成

几个名词解释:

  • 关系(Relation)
    一个关系对应通常说的一张表

  • 元组(Tuple)
    表中的一行即为一个元组

  • 属性(Attribute)
    表中的一列即为一个属性,给每一个属性起一个名称即属性名

  • 主码(Key)
    表中的某个属性组,它可以唯一确定一个元组

  • (Domain)
    属性的取值范围。

  • 分量
    元组中的一个属性值。

  • 关系模式
    对关系的描述
    关系名(属性1,属性2,…,属性n)
    学生(学号,姓名,年龄,性别,系,年级)

  • 规范化

    • 关系必须是规范化的,满足一定的规范条件
    • 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表

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

  • 数据操作是集合操作,操作对象和操作结果都是关系
  • 关系的完整性约束条件
    • 实体完整性
    • 参照完整性
    • 用户定义的完整性

优缺点:

  • 优点
    • 建立在严格的数学概念的基础上;
    • 概念单一:
      实体和各类联系都用关系来表示;
      对数据的检索结果也是关系;
    • 关系模型的存取路径对用户透明;
      具有更高的数据独立性,更好的安全保密性
      简化了程序员的工作和数据库开发建立的工作;
  • 缺点
    • 存取路径对用户透明导致查询效率往往不如非关系数据模型;
    • 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度;

      1.3. 数据库系统结构和组成

1.3.1. 数据库系统结构

两种角度

  • 从数据库管理系统角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构

  • 从数据库最终用户角度看(数据库系统外部的体系结构) ,数据库系统的结构分为:

    • 单用户结构
    • 主从式结构
    • 分布式结构
    • 客户/服务器
    • 浏览器/应用服务器/数据库服务器多层结构等

数据库系统模式的概念

来自张教授的解疑:模式是数据库结构的描述、关系模式是表的结构的描述;

“型” 和“值” 的概念:

  • 型(Type)
    对某一类数据的结构和属性的说明
  • 值(Value)
    是型的一个具体赋值

学生记录型:
(学号,姓名,性别,系别,年龄,籍贯)
一个记录值:
(900201,李明,男,计算机,22,江苏)

模式(Schema):

  • 数据库逻辑结构和特征的描述
  • 是型的描述
  • 反映的是数据的结构及其联系
  • 模式是相对稳定的

实例(Instance):

  • 模式的一个具体值
  • 反映数据库某一时刻的状态
  • 同一个模式可以有很多实例
  • 实例随数据库中的数据的更新而变动

例如:在学生选课数据库模式中,包含学生记录、课程记录和学生选课记录

  • 2003年的一个学生数据库实例,包含:
    2003年学校中所有学生的记录
    学校开设的所有课程的记录
    所有学生选课的记录
  • 2002年度学生数据库模式对应的实例2003年度学生数据库模式对应的实例是不同的

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

模式的地位:是数据库系统模式结构的中间层

  • 与数据的物理存储细节和硬件环境无关
  • 与具体的应用程序、开发工具及高级程序设计语言无关

模式的定义:

  • 数据的逻辑结构(数据项的名字、类型、取值范围等)
  • 数据之间的联系
  • 数据有关的安全性、完整性要求

外模式(External Schema)(也称子模式或用户模式)

  • 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
  • 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

外模式的地位:介于模式与应用之间

  • 模式与外模式的关系:一对多
    外模式通常是模式的子集;
    一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求;
    对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同;
  • 外模式与应用的关系:一对多
    同一外模式也可以为某一用户的多个应用系统所使用;
    但一个应用程序只能使用一个外模式;

外模式的用途

  • 保证数据库安全性的一个有力措施;
  • 每个用户只能看见和访问所对应的外模式中的数据;

内模式(Internal Schema)(也称存储模式)

  • 是数据物理结构和存储方式的描述
  • 数据数据库内部的表示方式:
    • 记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储)
    • 索引的组织方式
    • 数据是否压缩存储
    • 数据是否加密
    • 数据存储记录结构的规定
  • 一个数据库只有一个内模式

——数据库模式、外模式、内模式总结——

外模式(External Schema或User View)的例子:

  • 假设一个学校数据库,学生可以看到自己的成绩、课程信息等,这就是学生的外模式。
  • 老师可以看到所有学生的成绩信息,这就是老师的外模式。
  • 管理员可以查看和管理整个学校的所有信息,这就是管理员的外模式。

模式(Conceptual Schema或Logical Schema)的例子:

  • 概念模式描述了整个学校数据库中所有的实体,如学生、课程、老师、成绩等,以及它们之间的关系。
  • 比如学生和课程之间是多对多的关系,一个学生可以选多门课程,一门课程也可以有多个学生选修。

内模式(Internal Schema或Physical Schema)的例子:

  • 内模式描述了数据在物理存储层面的组织方式,比如使用什么样的文件组织结构、索引机制等。
  • 比如学生信息可以存储在B+树索引的文件中,成绩信息存储在hash表中。这些细节都属于内模式。

——数据库的二级映像功能——

  • 三级模式是对数据的三个抽象级别

  • 二级映象在DBMS内部实现这三个抽象层次联系转换

    • 外模式/模式映像
    • 模式/内模式映像

外模式/内模式映象定义了数据局部逻辑结构数据全局逻辑结构的对应关系。

  • 映象定义通常包含在各自外模式的描述中
  • 保证数据的逻辑独立性
    • 模式改变时(例如在模式中增加或删除了某些属性,只要不影响到各个外模式),数据库管理员修改有关的外模式/模式映象,使外模式保持不变
    • 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
  • 一个模式可以有任意多个外模式

模式/内模式映象定义了数据全局逻辑结构存储结构之间的对应关系。

  • 数据库中模式/内模式映象唯一
  • 该映象定义通常包含在模式描述中
  • 保证数据的物理独立性
    • 内模式改变时(例如把学生信息从文件存储改为数据库存储,或者把索引机制从B+树改为哈希表),数据库管理员修改模式/内模式映象,使模式保持不变
    • 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性

1.3.2. 数据库的组成

  • 数据库
  • 数据库管理系统(及其开发工具)
  • 应用系统
  • 数据库管理员
  • 硬件平台及数据库
  • 软件
  • 人员

    2. 关系数据库

2.1. 关系数据结构及形式化定义

2.1.1. 关系

给定一组域D1,D2,…,Dn

域(Domain):

是一组具有相同数据类型的值的集合。例: 整数、实数

笛卡尔积(Cartesian Product)

笛卡尔积(Cartesian Product)

  • 所有域的所有取值的一个组合(D1 x D2 x … x Dn)
  • 不能重复;

元组(Tuple) :笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组

分量(Component) :笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量;

基数(Cardinal number):如果集合A有m个元素,集合B有n个元素,那么它们的笛卡尔积A×B就有m×n个元素。笛卡尔积的基数就是构成它的集合的基数的乘积。

笛卡尔积的表示方法:

  • 笛卡尔积可表示为一个二维表;
  • 表中的每行对应一个元组,表中的每列对应一个

关系

关系:笛卡尔积D1×D2×…×Dn的子集叫作在D1,D2,…,Dn上的关系`,表示为:

  • R:关系名
  • n:关系的(Degree)

元组关系中的每个元素是关系中的元组,通常用t表示

当n=1时,称该关系为单元关系(Unary relation)或一元关系 ;
当n=2时,称该关系为二元关系(Binary relation);

关系的表示:关系也是一个二维表,表的每行对应一个元组,表的每对应一个

属性

  • 关系中不同列可以对应相同的域;
  • 为了加以区分,必须对每起一个名字,称为属性(Attribute);
  • n目关系必有n个属性;

  • 候选码(Candidate key)
    若关系中的某一属性组(一个或多个属性)的值能唯一地标识一个元组,则称该属性组为候选码; 其具备唯一性和最小性。
  • 全码(All-key)
    最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key),所有的属性组合在一起才能实现唯一地标识一个元组
  • 主码
    若一个关系有多个候选码,则选定其中一个为主码(Primary key)。有多种属性组合方式可以实现唯一地标识一个元组,则随意选一种组合为主码
  • 主属性
    在一个表中,可能存在多个候选码。这时,通常会选择一个候选码作为主键(主属性) 主属性的特征包括:
    • 唯一性:每个主属性值在表中都是唯一的,不会重复。
    • 非空性:主属性不能包含空值(NULL)。
    • 最小性:候选码应该是最小的唯一标识记录的属性集,即不能去掉其中任何一个属性而仍然唯一标识记录。
  • 非主属性 不包含在任何候选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute) ;

三类关系

  • 基本关系(基本表或基表)
    实际存在的表,是实际存储数据的逻辑表示
  • 查询表
    查询结果对应的表
  • 视图表
    由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据

基本关系(二维表)的性质
① 列是同质的(Homogeneous);
② 不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名;
③ 列的顺序无所谓,列的次序可以任意交换;
④ 任意两个元组的候选码不能相同;
⑤ 行的顺序无所谓,行的次序可以任意交换;
⑥ 分量必须取原子值,这是规范条件中最基本的一条;

2.1.2. 关系模式

什么是关系模式

关系模式(Relation Schema)是 关系是 关系模式是对关系描述

定义关系模式

  • R(U,D,DOM,F)
    • R 关系名
    • U 组成该关系的属性名集合
    • D 属性组U中属性所来自的域
    • DOM 属性向域的映象集合
    • F 属性间的数据依赖关系集合

关系模式通常可以简记为 R (U) 或 R (A1,A2,…,An)

  • R: 关系名
  • A1,A2,…,An : 属性名

注:域名及属性向域的映象常常直接说明为属性的类型、长度

2.1.3. 关系模式和关系的对比

  • 关系模式
    对关系的描述
    静态的、稳定的
  • 关系
    关系模式在某一时刻的状态或内容
    动态的、随时间不断变化的
    关系模式和关系往往统称为关系

在数据库学科中可以把关系模式理解为表的结构、属性之间的关系、约束条件,把关系理解为二维表

2.1.4. 关系数据库

  • 关系数据库
    在一个给定的应用领域中,所有关系的集合构成一个关系数据库
  • 关系数据库模式包括
    若干域的定义;
    在这些域上定义的若干关系模式;
  • 关系数据库的··与
    关系数据库的关系数据库模式, 对关系数据库的描述。
    关系数据库的: 关系模式在某一时刻对应的关系的集合,简称为关系数据库

    2.2. 关系操作、关系完整性、关系代数

2.2.1. 关系操作

2.2.2. 关系完整性

关系完整性旨在确保数据库中的数据保持一致性和准确性

  • 实体完整性和参照完整性:
    关系模型必须满足的完整性约束条件;
    称为关系的两个不变性,应该由关系系统自动支持;
  • 用户定义的完整性:
    应用领域需要遵循的约束条件,体现了具体领域中的语义约束 ;

实体完整性

实体完整性确保数据库表中的每一行都有一个唯一的标识符,即主键。主键不能包含空值(NULL),并且在整个表中必须唯一。

参照完整性

参照完整性确保外键值在参照表中是有效的,即外键必须匹配参照表中的某个主键值,或为空(如果允许空值)。

考虑两个表 Students 和 Enrollments

Students 表:

StudentID Name
1 Alice
2 Bob

Enrollments 表:

EnrollmentID StudentID Course
1001 1 Math
1002 2 Science
  • StudentID 是 Students 表的主键。
  • Enrollments 表的 StudentID 列是外键,参照 Students 表的 StudentID

确保 Enrollments 表中的每个 StudentID 都存在于 Students 表中。比如,不能在 Enrollments 表中插入 StudentID 为 3 的记录,因为 Students 表中没有 StudentID 为 3 的学生。

外键 (Foreign Key):在数据库中,外键是指一个表中的字段,它引用了另一个表的主键。外键用于建立表之间的关系,确保数据的一致性和完整性

用户定义的完整性

用户定义的完整性是根据具体业务需求定义的约束。这些约束可以是任意复杂的规则,通常通过 CHECK 约束、自定义触发器等实现。

考虑一个 Employees 表:

EmployeeID Name Age Salary
1 John 30 50000
2 Jane 25 60000

假设业务规则规定员工的薪水必须大于 30000 且小于 100000。

可以通过 CHECK 约束来实现:

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT,
    Salary DECIMAL(10, 2),
    CHECK (Salary > 30000 AND Salary < 100000)
);

这确保了任何插入或更新到 Employees 表的记录都符合薪水在 30000 到 100000 之间的规则。

2.2.3. 关系代数

关系代数运算符

交、差、并、笛卡尔积、选择、投影、连接、除、与、或、非…

传统集合运算

专门的关系运算

左外连接

右外连接

外连接

3. 关系数据库标准语言SQL(略)

4. 数据库安全性

5. 数据库完整性

6. 关系数据理论

7. 数据库设计


本站总访问量