数据库相关概念

数据管理

image-20250512195115041

数据:能够被记录具有实际含义已知事实

大数据

元数据:描述数据的数据

数据库管理系统 DBMS

image-20250512195253000

数据库与文件系统的对比:

文件系统 数据库
定义 管理存储磁盘上数据的存储、访问和管理方式的过程 可以轻松存储、访问、管理和更新的有组织的数据集合
数据一致性 数据不一致性高 维护数据一致性
结构 简单 复杂
数据共享 困难 容易
冗余 冗余度高 冗余度低
安全性 不是很安全 更加安全
备份与恢复 没有备份和恢复过程 有备份恢复过程

数据库系统 DBS

数据库系统是高效组织管理数据的系统,由数据库数据库管理系统应用程序三部分构成。

  • 应用程序:应用程序提供了用户与数据库系统的交互界面
  • 数据库管理系统:DBMS 是一种通用的系统软件,可促进各种用户和应用程序之间数据库的组织、存储、控制和维护。
  • 数据库:数据库是一组经过组织、共享和持久化的相关数据。

DBMS特色

DBMS特色—数据独立性

数据模型:数据模型是完成数据抽象的工具,即,用来描述数据、数据联系、数据语义以及一致性约束的一套概念工具。

  • 模型:模型是对研究对象进行抽象的工具,抽象的结果通常是可视化的图形。
  • 建模:建模是对研究对象进行抽象的过程。抽象就是对事物进行简化提取特征共性,实现模型和事物之间的映射或投影,等操作

数据库设计过程:概念设计 逻辑设计 物理设计

数据模型分类:

  • 概念模型:E-R 模型,UML 类模型
  • 逻辑模型:image-20250512195912237
  • 物理模型:Heap File 模型,ISAM 模型

模式:模式是数据的定义和描述

实例:实例则是模式在某一时刻的具体数据

  • 模式是元数据
  • 数据是变化的,模式是不变的
  • 数据库设计,数据库建模,实体 - >模式
  • 数据库使用,创建数据库,模式 -> 元组
  • 模式的层次,属性模式?:关系模式,数据库模式
  • 模式= 类型 + 约束 + 联系

关系型数据库 ( SQL )

  • MySQL , Oracle , SQL Server , SQLite , DB2 , …
  • 关系型数据库以表格形式组织数据,通过行和列存储信息,并且利用外键关联来建立表与表之间的关系。这种结构化的数据存储方式使得数据的查询、更新和管理变得高效且有组织。
  • 常见的关系型数据库有 MySQL、Oracle、SQL Server、SQLite、DB2 等

非关系型数据库 ( NOSQL ) not only

  • Redis , MongoDB , …

  • 非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

  • 与关系型数据库的对比

    • 数据模型:关系型数据库采用表格形式,非关系型数据库有键值对、文档、列族、图等多种数据模型。
    • 扩展性:非关系型数据库更容易进行水平扩展,适合处理海量数据和高并发场景。
    • 一致性:关系型数据库强调强一致性,非关系型数据库通常采用最终一致性,以换取更高的性能和可扩展性。

DBMS特色——数据库语言

编程语言:SQL

  • SQL的分类:
    • DDL:数据定义语言 定义了不同的数据库,表,视图,索引等数据库对象 还可以创建修改删除等操作数据库表的结构 CREATE  ALTER  DROP  RENAME  TRUMCATE
    • DML:数据操作语言 增删改查数据库记录 INSERT  DELETE  UPDATE  SELECT
    • DCL:数据控制语言 定义数据库,表,字段,用户访问权限和安全级别的 COMMIT  ROLLBACK  SAVEPOINT
    • DQL:数据库查询语言 查询数据库中表的记录

数学语言:关系代数

  • 关系的描述称为关系模式。它可以形式化地表示为 R = (A, D, DOM, F)

    其中:

    R 为关系名

    A 为组成该关系的属性名集合

    D 为 A 中属性所来自的域

    DOM 为属性向域的映像集合

    F 为属性间数据的依赖关系集合

  • 关系代数的作用:

    • 为关系数据模型提供了操作的形式化语言
  • 能够用来做查询优化

    • 关系代数的运算和思想已经融入 SQL
    • 关系代数运算是评价 RDBMS 软件是否完备的标准
    • 关系代数明确的给出了查询的执行过程
    • 关系代数通常作为 DBMS 查询的内部实现

设计语言:E - R图

关系型数据库模式的评估:数据库的规范性设计需要分析关系中的属性在取值方面有什么依存关系?数据库设计过程中应遵循什么样的原则

数据库设计理论

  • 数据依赖理论
  • 关系范式理论
  • 模式分解理论

数据依赖:数据之间存在的各种联系和约束

image-20250512204835354
  • 定义:设 R(U) 是属性集 U 上的关系模式,X⊆U, Y⊆U。对于 R(U) 的任意关系实例中的任意两个元组 t1 和 t2,如果由 t1[X] = t2[X] 可 以推出 t1[Y]= t2[Y],则称 X 函数决定 Y,或 Y 函数依赖于 X,记作 X→Y。

  • 关系模式 SDC(Sno, Sname, Sdept, Sdean, Cno, Grade) 中的函数依赖:

    Sno → Sname:一个学号只对应一个学生姓名

    Sno → Sdept:一名学生只属于一个系

    Sdept → Sdean:一个系只有一名系主任

    Sno → Sdean:一名学生只对应一名系主任

    (Sno, Cno) → Grade:一名学生学习一门课程只有一个成绩

  • 函数依赖的关系:

    • 部分函数依赖:在关系模式 R(U) 中,如果 X → Y,且存在 X’ÌX,使得 X’ → Y,则称 Y 部分函数依赖于 X,记作 X → Y

    Ø传递函数依赖:在关系模式 R(U) 中,如果 X → Y,Y → Z,且 Y⊆X,Y → X,则称 Z 传递函数依赖于 X,记作 X → Z

关系模式的范式:

  • 范式:在关系数据库规范化理论中,根据关系模式的规范化程度不同,把关系模式划分为若干类,称作范式(normal form)

  • 范式的级别:

    image-20250512203705344
  • 在函数依赖的范畴内,我们只讨论 1NF、2NF、3NF

    • 第一范式:如果关系模式 R 的每个属性都是不可分的,则称 R 为第一范式关系模式,记作R∈1NF
    • 第二范式:如果关系模式 R∈1NF,且 R 的每个非主属性都完全函数依赖于 R 的候选键,则称 R 为第二范式关系模式,记作 R∈2NF
      • 关系模式出现问题解决方法:消除非主属性对候选键的部分函数依赖
    • 第三范式:如果关系模式 R∈2NF,且 R 的每个非主属性都不传递函数依赖于 R 的候选键,则称 R 为第三范式关系模式,记作 R∈3NF
      • 关系模式出现问题解决方法:消除非主属性对候选键的传递函数依赖

设计语言:E - R图

E-R模型:

实体-联系模型中主要有三个概念:实体集,属性,联系集

一个实体集对应数据库中的一个表,一个实体则对应数据库表中的一行,一个属性对应数据表中的一列

实体 - 联系模型(E - R 模型)是一种用于数据库设计的概念模型,主要有三个核心概念:实体集、属性和联系集。

  • 实体集:对应数据库中的一个表,代表一类具有相同属性的实体。例如,在一个学校管理系统中,“学生” 是一个实体集,它包含了所有学生的信息。

  • 属性:对应数据表中的一列,用于描述实体的特征。对于 “学生” 实体集,“学号”、“姓名”、“年龄” 等都是属性。

  • 联系集:表示实体集之间的关系。例如,“学生” 实体集和 “课程” 实体集之间存在 “选课” 联系。

E-R图:

  • 实体-联系模型:是概念数据库设计阶段使用的一种重要模型,用于将现实世界抽象为实体及实体间的联系

  • E-R 模型提供了数据建模所需的多种概念

    • 与实体(entity)相关的概念:
      • 实体 属性 键 实体型 实体集 弱实体型
      • 实体:数据库中表示的现实世界中的具体对象或事物
      • 属性:用于刻画实体的特性
        • 简单属性:具有原子属性值的属性,其属性值不可再分
        • 复合属性:由多个成分构成的属性
        • 多值属性:一个实体可具有多个值的属性
        • 派生属性:由其他属性派生出来的属性
        • 键属性:同一实体型的任意实体都具有不同值的属性
        • 复合属性和多值属性可以是相互嵌套的
    • 与联系(relationship)相关的概念
      • 联系:一个联系表示多个实体之间有意义的关联关系
      • 联系型:同一类联系共同具有的类型
      • 联系 联系型 联系集 联系型的约束 联系型的属性 多元联系
  • 实体型的 E-R 图表示:

    • 实体型表示为矩形
    • 属性表示为椭圆
      • 简单属性表示为实线椭圆
      • 多值属性表示为双实线椭圆
      • 派生属性表示为虚线椭圆
      • 键属性的属性名加下划线
    • 实体型与其属性用线连接起来
    image-20250512201853388
  • 联系型的 E-R 图表示:

    • 联系型表示为菱形

      image-20250512201842310
    • 联系型可以具有属性

      用直线将联系型与参与到联系型中的实体型连接起来

      在 E-R 图中,用直线将联系型与联系型的属性连接起来

      image-20250512202121852

      多对一举例:

      image-20250512201940249

      多对多举例:

      image-20250512201959282
  • 实体型的转换:

    • 转换规则

      实体型的名称 → 关系名

      实体型的属性集 → 关系的属性集(多值属性除外)

      实体型的主键 → 关系的主键

      实体 → 元组

      image-20250512202417693
    • M-N二元联系型的转换:

      转换规则:为联系型创建一个新的关系模式

      ​ 关系模式的属性集包括:与该联系相关的两个实体型的主键(如图中 employee 的主键 SSNproject 的主键 Number ) ,以及联系型本身的属性(图中 works_on 联系型的属性 Hours )。

      ​ 新关系模式的主键由两个实体型的主键组合而成(图中 works_on 关系模式的主键为 SSNNumber

      image-20250512202844414
      img
    • 1:1 二元联系型的转换

      image-20250512203251603
      image-20250512204048887
    • N:1 二元联系型的转换

      image-20250512203008930
      image-20250512204227234

关系数据模型

关系模型三要素:

  • 关系数据结构
  • 完整性约束
  • 关系操作
image-20250512205709773
image-20250512205715465

码:关系中某些属性集合具有区分不同元组的作用,称为码

  • 超码:如果关系的某一组属性的值能唯一标识每个元组,则称该组属性为超码(super key)。

  • 候选码:如果一个超码的任意真子集都不是超码,则称该超码为候选码。候选码是极小的超码

  • 主键:每个关系都有至少一个候选码,人为指定其中一个作为主键

  • 外码:设 F 是关系 R 的属性子集。若 F 与关系 S 的主键 K 相对应,则称 F 是 R 的外键(foreign key)。

DBMS特色——事务处理

事务是一组操作的组合,是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销,这些操作要么同时成功要么同时失败

事务四大特性:

  • 原子性A:事务是不可分割的最小操作单元,要么全成功,要么全失败
  • 一致性C:事务完成时,必须所有数据都保持一致状态
  • 隔离性I:数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下进行
  • 持久性D:事务一旦提交或回滚,他对数据库的改变是永久的