数据库系统

数据库模式与范式

数据库的结构与模式

在这里插入图片描述
数据库系统划分为三个抽象级

  1. 用户级数据库:用户级数据库对应于外模式,是最接近用户的一级数据库,是用户可以看到和使用的数据库,又称用户视图。
  2. 概念级数据库:概念级数据库对应于概念模式,介于用户级和物理级之间,是所有用户视图的最小并集,是数据库管理员可看到和使用的数据库,又称 DBA(DataBase Administrator,数据库管理员)视图。
  3. 物理级数据库。物理级数据库对应于内模式,是数据库的低层表示,它描述数据的实际存储组织,是最接近于物理存储的级,又称内部视图。

数据库系统的三级模式

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

两级独立性

  1. 物理独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。当数据的物理存储改变时,应用程序不需要改变。
  2. 逻辑独立性。逻辑独立性是指用户的应用程序与数据库中的逻辑结构是相互独立的。当数据的逻辑结构改变时,应用程序不需要改变。

数据模型

概念数据模型
       按照用户的观点来对数据和信息建模,主要用于数据库设计。概念模型主要用实体—联系方法(Entity-Relationship Approach)表示,所以也称 E-R 模型。

基本数据模型
       按照计算机系统的观点来对数据和信息建模,主要用于 DBMS 的实现。基本数据模型是数据库系统的核心和基础。

关系代数

关系代数的基本运算主要有并、交、差、笛卡尔积、选择、投影、连接和除法运算

  1. 并:计算两个关系在集合理论上的并集,即给出关系 R 和 S(两者有相同元/列数),R∪S 的元组包括 R 和 S 所有元组的集合。
  2. 差:计算两个关系的区别的集合,即给出关系 R 和 S(两者有相同元/列数),R-S的元组包括 R 中有而 S 中没有的元组的集合。
  3. 交:计算两个关系集合理论上的交集,即给出关系 R 和 S(两者有相同元/列数),R∩S 的元组包括 R 和 S 相同元组的集合。显然,R∩S = R-(R-S) 和 R∩S = S-(S-R)成立
  4. 笛卡尔积:计算两个关系的笛卡尔乘积,令 R 为有 m 元的关系,S 为有 n 元的关系,则 R×S 是 m+n 元的元组的集合,其前 m 个元素来自 R 的一个元组,而后 n 个元素来自 S 的一个元组。
  5. 投影:从一个关系中抽取指明的属性(列)。
  6. 选择:从关系R中抽取出满足给定限制条件的记录。
  7. θ连接:θ连接从两个关系的笛卡儿积中选取属性之间满足一定条件的元组
  8. 除:设有关系 R(X,Y)与关系 S(Z),Y 和 Z 具有相同的属性个数,且对应属性出自相同域。关系 R(X,Y)÷S(Z)所得的商关系是关系 R 在属性 X 上投影的一个子集,该子集和 S(Z)的笛卡尔积必须包含在 R(X,Y)中,记为 R÷S,其具体计算公式为:
    在这里插入图片描述

数据的规范化

       关系模型满足的确定约束条件称为范式,根据满足约束条件的级别不同,范式由低到高分为 1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BCNF(BC 范式)、4NF(第四范式)等。

  1. 第一范式
    1NF 是最低的规范化要求。如果关系 R 中所有属性的值域都是简单域,其元素(即属性)不可再分,是属性项而不是属性组,那么关系模型 R 是第一范式的
  2. 第二范式
    如果一个关系 R 属于 1NF,且所有的非主属性都完全依赖于主属性,则称之为第二范式
  3. 第三范式
    如果一个关系 R 属于 2NF,且每个非主属性不传递依赖于主属性,这种关系是 3NF

反规范化

       数据库中的数据规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的 I/O 次数减少,同时加快了增、删、改的速度,但是对完全规范的数据库查询,通常需要更多的连接操作,从而影响查询速度。因此,有时为了提高某些查询或应用的性能而破坏规范规则,即反规范化(非规范化处理)。
常见的反规范化技术包括:

  1. 增加冗余列
    增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作
  2. 增加派生列
    增加派生列指增加的列可以通过表中其他数据计算生成。它的作用是在查询时减少计算量,从而加快查询速度。
  3. 重新组表
    重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
  4. 分割表
    有时对表做分割可以提高性能。表分割有两种方式,水平分割和垂直分割

数据库设计

       数据库设计的过程是将数据库系统与现实世界密切地、有机地、协调一致地结合起来的过程。数据库的设计质量与设计者的知识、经验和水平密切相关。作为数据库应用系统的重要组成部分,数据库设计的成败往往直接关系到整个应用系统的成败。

数据库设计的方法

       基于 3NF 的数据库设计方法是数据库设计的结构化设计方法,其基本思想是在需求分析的基础上,识别并确认数据库模式中的全部属性和属性间的依赖,将它们组织成一个单一的关系模型,然后再分析模式中不符合 3NF 的约束条件,用投影和连接的办法将其分解,使其达到 3NF 条件。
在这里插入图片描述

  1. 设计企业模式
  2. 设计数据库逻辑模式
  3. 设计数据库物理模式(存储模式)
  4. 评价物理模式
  5. 数据库实现

数据库设计的基本步骤

       分步设计法遵循自顶向下、逐步求精的原则,将数据库设计过程分解为若干相互独立又相互依存的阶段,每一阶段采用不同的技术与工具,解决不同的问题,从而将问题局部化,减少了局部问题对整体设计的影响。在分步设计法中,通常将数据库的设计分为需求分析、概念结构设计、逻辑结构设计和数据库物理设计 4 个阶段,如下图所示。
在这里插入图片描述

  1. 需求分析
           需求分析是数据库设计过程的第一步,是整个数据库设计的依据和基础。需求分析的目标是通过对单位的信息需求及处理要求的调查分析得到设计数据库所必需的数据集及其相互联系,形成需求说明书,作为后面各设计阶段的基础。
    这一阶段的任务是:
           a.确认需求、确定设计目标
           b.分析和收集数据
           c.整理文档(需求说明文档/需求说明书)

  2. 概念结构设计
           概念结构设计阶段所涉及的信息不依赖于任何实际实现时的环境,即计算机的硬件和软件系统。概念结构设计的目标是产生一个用户易于理解的,反映系统信息需求的整体数据库概念结构。概念结构设计的任务是,在需求分析中产生的需求说明书的基础上按照一定的方法抽象成满足应用需求的用户的信息结构,即通常所称的概念模型。概念数据模型的作用是:提供能够识别和理解系统要求的框架;为数据库提供一个说明性结构,作为设计数据库逻辑结构,即逻辑模型的基础。

  3. 逻辑结构设计
           数据库逻辑结构设计的任务就是把概念结构设计阶段设计好的基本 E-R 图转换为与具体机器上的 DBMS 产品所支持的数据模型相符合的逻辑结构。这一阶段是数据库结构设计的重要阶段。

  4. 数据库物理设计
           数据库在实际的物理设备上的存储结构和存取方法称为数据库的物理结构。数据库物理设计是利用已确定的逻辑结构及 DBMS 提供的方法、技术,以较优的存储结构、数据存取路径、合理的数据存储位置及存储分配,设计出一个高效的、可实现的物理数据库结构。

事务管理

       数据库系统运行的基本工作单位是事务,事务相当于操作系统中的进程,是用户定义的一个数据库操作序列,这些操作序列要么全做要么全不做,是一个不可分割的工作单位。
事务具有以下特性:

  1. 原子性(Atomicity):数据库的逻辑工作单位。
  2. 一致性(Consistency):使数据库从一个一致性状态变到另一个一致性状态。
  3. 隔离性(Isolation):不能被其他事务干扰。
  4. 持续性(永久性)(Durability):一旦提交,改变就是永久性的。

       在多用户共享系统中,许多事务可能同时对同一数据进行操作,称为“并发操作”,此时数据库管理系统的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,同时避免用户得到不正确的数据。处理并发控制的主要方法是采用封锁技术。它有两种类型:排他型封锁(X 封锁)和共享型封锁(S 封锁)。

  1. 排他型封锁(简称 X 封锁)
    如果事务 T 对数据 A(可以是数据项、记录、数据集,乃至整个数据库)实现了 X 封锁,那么只允许事务 T 读取和修改数据 A,其他事务要等事务 T 解除 X 封锁以后,才能对数据 A 实现任何类型的封锁。X 封锁只允许一个事务独锁某个数据,具有排他性。
  2. 共享型封锁(简称 S 封锁)
    如果事务 T 对数据 A 实现了 S 封锁,那么允许事务 T 读取数据 A,但不能修改数据 A,在所有 S 封锁解除之前绝不允许任何事务对数据 A 实现 X 封锁。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值