数据库原理

1.数据库概论

数据库以及相关概念

  1. 数据(data):信息的表现形式和载体。
  2. 数据库(database):长期存储在计算机内,有组织的,统一管理的相关数据的集合。
  3. 数据库管理系统(DBMS):位于用户与操作系统逐之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立,查询,更新及各种数据控制。
  4. 数据库系统(DBS):采用数据库技术的计算机系统。
  5. 数据库技术:研究数据库结构,存储设计管理和使用的一门软件学科。

高级数据库阶段

对象数据库技术

  • 面向对象与数据库技术结合的产物

主要特征

  1. 可以完整的描述现实数据结构,以及数据之间嵌套递归的联系。
  2. 具有封装性和继承性,提高了软件的可重用性

分布式数据库系统

主要特征:

  1. 数据物理上分布在不同场地,逻辑上是一个整体 。
  2. 每个场地可以执行局部应用,也可以执行全部应用
    3.。 各地计算机由数据通信网络联系,本地计算机不能完成的任务可以通过通信网络获取其他场地支持。

开放数据库互联技术

  • 用于单个应用程序访问不同的数据库
  1. XML数据库技术
  • 灵活

现代信息集成技术

  1. 数据仓库
  2. 连及分析处理技术
  3. 数据挖掘

数据描述

​ 数据描述有两种形式:物理数据描述和逻辑数据描述。

  1. 物理数据描述:数据在存储设备上的存储方式的描述。
  2. 逻辑数据描述:程序员或者用户用以操作的数据形式的描述,是抽象的概念化数据。

概念设计中的数据描述

  • 实体(entity)
  • 实体集 (entity set)
  • 属性(attribute)
  • 实体标识符(identifier)

逻辑设计中的数据描述

  • 字段(Field)
  • 记录(Record)
  • 文件(file)
  • 关键码(Key)

物理设计中的概念描述

  1. 物理存储介质层次,可分为以下六类
  • 高速缓冲存储器(cache
  • 主存储器(main menory
  • 快擦鞋存储器(flash memory)
  • 磁盘存储器(magnetic disk)
  • 光存储器(optical sstorage)
  • 磁带(tape storage)
  1. 物理存储中的数据描述
  • 位(bit)
  • 字节(byte
  • 字(word)
  • 块( Block)
  • 桶 (bucket)
  • 卷(volume)

数据联系的描述

联系:是实体之间的互相关系。

联系的元数:与一个联系有关的实体集个数。

  • 二元联系的三种类型
  1. 一对一联系
  2. 一对多联系
  3. 多对多联系

数据抽象过程

模型(model): 是对现实世界的抽象。使用数据模型(data model)的概念描述数据库的结构和语义,对现实世界的数据进行抽象。

  • 概念模型:用来表达用户需求观点的数据全局逻辑结构模型称为概念模型
  • 逻辑模型:表达计算机实现观点的DB全局逻辑结构的模型
  • **外部模型:**表达用户使用观点DB局部逻辑结构的模型
  • 内部模型:表达DB物理结构的模型

他们之间的关系如图所示

structure

概念模型

​ 概念模型抽象级别最高,具有以下特点:

  1. 表达了数据的整体逻辑结构,他是系统用户对整个应用项目涉及的数据的全面描述
  2. 从用户需求的观点出发对数据建模
  3. 独立于硬件和软件。
  4. 是数据库设计人员与用户之间进行交流的工具。

现在采用的概念模型主要是实体联系模型(ER)(Entity Relationship Ship)

  • ER图有三个基本成分

      1. 矩形框:表示实体类型
      2. 菱形框:表示联系类型
      3. 椭圆形框:表示实体类型和联系类型的属性
  • ER图的优点

    • 简单易理解,真实反应客户需求
    • 与计算机无关,客户容易接受
  • ER图的缺点

    • 只能说明实体间语义的练习,不能说明详细的数据结构

逻辑模型

  • 逻辑模型的特点
  1. 表达了DB整体的逻辑结构
  2. 从数据库实现的观点出发对数据建模
  3. 独立于硬件,依赖于软件(DBMS)
  4. 是数据库设计人员与应用程序猿之间进行交流的工具
逻辑模型的种类
  1. 层次模型
  2. 网状模型
  3. 关系模型
  4. 对象模型

三层模式和两级映像

  • 型和值
  1. 型:对一类数据的结构和属性的说明
  2. 值:是型的一个具体赋值
  • ==模式==

​ 定义:数据模型使用DB的数据定义语言(DDL),定义后的内容称为模式。

  1. 描述数据库逻辑结构和特征
  2. 对”型“的描述
  3. 反映数据结构及其联系
  4. 相对稳定
  5. 以某一种数据模型为基础
  • 三层模式:在数据库设计中,有时会使用三层模式来描述数据库的结构和组织方式。这通常涉及到将数据库划分为三个不同的层次或组件:外部模式、概念模式和内部模式。
  1. 外部模式(External Schema):也称为用户视图或子模式,是用户或应用程序能够直接访问和操作的部分数据库。每个外部模式都是特定用户或应用程序对数据库的定制视图。

  2. 概念模式(Conceptual Schema):也称为全局模式或逻辑模式,是数据库的整体逻辑结构和组织方式的抽象表示。它描述了数据库中的所有数据对象、它们之间的关系以及约束条件。

  3. 内部模式(Internal Schema):也称为存储模式,是数据库在物理存储层面的表示。它描述了数据在存储介质上的存储方式、索引结构等细节。

  • 两级映像

数据库管理系统

DBMS的工作模式

  1. 接受应用程序的数据请求和处理请求
  2. 将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令)3
  3. 实现对数据库的操作
  4. 从对数据库的操作中接受查询结果
  5. 对查询结果进行处理(格式转换)
  6. 将处理结果返回给用户

DBMS的主要功能

  1. 数据库的定义功能(DDL,(Data Definition
    数据库三层结构、两级映像、定义数据的完整性约anguage束、保密限制约束等
  2. 数据库的操纵功能(DML,data manipul
    ation language
    检索:查询,更新::插入、删除、更新
  3. 数据库的保护功能
    恢复,并发控制,完整性,安全性
  4. 数据库的维护功能(Utilities
    数据载入、转换、转储等
  5. 数据字典(DD

数据库系统

DBS的组成

  1. 数据库
  2. 硬件
  3. 软件
  4. 数据管理员

DBS的全局结构

image-20240311125039548

DBS结构的分类

  1. 层次数据库结构(Hierarchical Database Structure)
    • 层次数据库结构是最早期的数据库组织方式之一,它使用树状结构来组织数据。每个节点可以有一个或多个子节点,但每个节点只有一个父节点。
    • 典型的例子是IBM的IMS(Information Management System)数据库系统。
  2. 网络数据库结构(Network Database Structure)
    • 网络数据库结构扩展了层次数据库的概念,允许一个节点有多个父节点,形成一个图状结构。这种结构提供了更灵活的数据组织方式。
    • CODASYL(Conference on Data Systems Languages)标准定义了一种常见的网络数据库模型,例如IDMS(Integrated Data Management System)。
  3. 关系数据库结构(Relational Database Structure)
    • 关系数据库结构是当前最常用的数据库组织方式之一。它基于关系模型,使用表格(称为关系)来表示数据,并使用关系之间的键值关联来建立数据之间的联系。
    • 关系数据库的代表性产品包括Oracle、MySQL、SQL Server等。
  4. 面向对象数据库结构(Object-Oriented Database Structure)
    • 面向对象数据库结构将面向对象编程的思想引入数据库系统,允许将复杂数据结构和对象存储在数据库中,并支持面向对象的查询和操作。
    • 典型的面向对象数据库系统包括ObjectDB、db4o等。
  5. 文档数据库结构(Document Database Structure)
    • 文档数据库结构是一种非常灵活的数据库组织方式,它使用文档来存储数据,文档可以是JSON、XML等格式。
    • MongoDB是一种常见的文档数据库系统。
  6. 键-值存储结构(Key-Value Store Structure)
    • 键-值存储结构是一种简单的数据库组织方式,它使用键值对来存储数据,其中每个键都唯一地标识一个值。
    • Redis、Amazon DynamoDB等是常见的键-值存储数据库系统。

2.关系模型和关系运算理论

关系模型的基本概念

​ 定义:用二维表格表示实体集,用关键码表示实体之间联系的数据模型称为关系模型(Relational Model)。

  • 非平凡的函数依赖

如果X→Y,但Y不包含于X,则称 X→Y是非平凡的函数依赖。

  • 平凡的函数依赖

如果X→Y,但Y包含于X,则称 X→Y是平凡的函数依赖。

  • 决定因子

如果X→Y,则X称为决定因子。

关键码

  • 超键(super)

在关系中能唯一标识元组的属性或属性集称为关系模式的超键。

  • 候选键(Candidate)

不含有多余属性的超键称为侯选建

  • 主键(primary)

用户选作元组标识的候选键称为主键

  • 外键(foreign)

若模式R中属性K是其他模式的主键,则K在R中称为外键。

关系

定义:一个属性相同的元组的集合。

规范性限制

关系中每一个属性值都是不可分解的;

关系中不允许出现重复元组,即不允许出现相同的元组;

由于关系是一个集合,因此不考虑元组间的顺序,即没有行序;

元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。

3类完整性规则

实体完整性给规则

要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标识元组的作用。

参照完整性规则

如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。

用户定义的完整性规则

用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。

关系模式

​ 在关系模型中,记录类型称为关系模式,而关系模式的集合就是数据库的概念模式。

关系模式与关系

关系模式是型,是对关系的描述,是静态的,稳定的。关系是值,由赋予它的元组语义来确定的,是动态的,不断变化的关系是关系模式在某一时刻的状态或内容

关系代数

关系代数表达式的优化