当前位置: 首页 > news >正文

SCAU期末笔记 - 数据库系统概念

我校使用Database System Concepts,9-12章不考所以跳过,因为课都逃了所以复习很仓促,只准备过一下每一章最后的概念辨析,我也不知道有没有用

第1章 引言

  • 数据库管理系统(DBMS) 由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。
  • 数据库系统应用:①高价值;②庞大;③多用户访问。
  • 联机事务处理即大量的用户使用数据库,每个用户检索相对少量的数据,进行小的更新。
  • 数据分析即审阅数据,给出结论,并推导出规则或决策程序。
  • 文件处理系统将数据永久存储在不同的文件中的管理方式。
  • 数据不一致性,即同一数据的不同副本不一致(文件处理系统的弊端,说人话就是改了一个忘了改别的)。
  • 一致性约束,就是同一类数据是否合法的自动判断(文件处理系统的弊端)。
  • 数据抽象
    • 物理层详细描述复杂的底层数据结构。
    • 逻辑层描述数据库中存储什么数据以及这些数据间存在什么联系。
    • 视图层一个数据库内有多个,使用户和系统的交互更简单。
  • 实例(instance) :特定时刻存储在数据库中的信息的集合。
  • 模式(schema) :数据库的总体设计。
    • 物理模式在物理层描述数据库的设计。
    • 逻辑模式在逻辑层描述数据库的设计。
    • 子模式:描述数据库的不同视图
  • 物理数据独立性:在数据抽象的不同层级都不需要掌握其他层级的结构。
  • 数据模型
    • 关系模型用表的集合来表示数据和数据间的联系。
    • 实体-联系模型使用称作实体的基本对象的集合,以及这些对象间的联系
    • 半结构化数据模型允许在其数据定义中某些相同类型的数据项含有不同的属性集。
    • 基于对象的数据模型可以看成对关系模型进行扩展,增加了封装、方法和对象标识等概念。
  • 数据库语言
    • 数据定义语言(DDL) 定义数据库模式。
    • 数据操纵语言(DML) 表达数据库的查询和更新。
      • 过程化DML要求用户指定需要什么数据以及如何获得这些数据。
      • 声明式DML(也称为非过程化DML)只要求用户指定需要什么数据,而不必指明如何获得这些数据。
      • 查询语言:DML中涉及信息检索的部分。
  • 数据定义语言
    • 域约束指的就是数据类型。
    • 引用完整性确保一个关系中的取值在另一个关系中也出现
    • 授权
      • 读权限:可读不能改
      • 插入权限:可加新数据不可改已有的
      • 更新权限:可改不能删
      • 删除权限
  • 元数据(metadata) 是关于数据的数据,说人话就是预处理出来的一个方便后续操作的类似目录的东西。
  • 应用程序就是用来以SQL查询来访问数据库中的数据这种方式与数据库进行交互的程序。
  • 数据库设计
    • 概念设计涉及决定数据库中应该包括哪些属性,以及如何组织这些属性到各个表中。
    • 规范化将所有属性集作为输入,生成一组关系表的算法(见第8章)。
    • 功能需求说明,用户描述将在数据之上执行的各种操作(或事务)。
    • 物理设计阶段,在这个阶段中说明数据库的物理特性,包括文件组织的形式和内部的存储结构。
  • 数据库引擎
    • 存储管理器是数据库系统中负责在数据库中存储的低层数据与应用程序以及向系统提交的查询之间提供借口的部件。
      • 权限及完整性管理器检测是否满足完整性约束,并检查视图访问数据的用户的权限。
      • 事务管理器保证即使系统发生了故障,数据库也保持在一致的(正确的)状态,并保证并发事务的执行不发生冲突。
      • 文件管理器管理磁盘存储空间的分配,管理用于表示磁盘上所存储信息的数据结构。
      • 缓冲区管理器负责将数据从磁盘上取到内存中,并决定那些数据应被缓冲存储在内存中。
      • 数据文件存储数据库自身。
      • 数据字典存储关于数据库结构的元数据,特别是数据库模式。
      • 索引提供对数据项的快速访问,就相当于很多现成能用的指针。
    • 查询处理器
      • DDL解释器解释DDL语句并将这些定义记录在数据字典中。
      • DML编译器将查询语言中的DML语句翻译为包括一系列查询执行引擎能理解的低级指令的执行方案。
      • 查询优化就是从几个候选执行计划中选出代价最小的那个执行计划。
      • 查询执行引擎执行由DML编译器产生的低级指令。
    • 事务是数据库应用中完成单一逻辑功能的操作集合。
      • 原子性:要么都发生,要么都不发生
      • 一致性:数据变化前后的正确性
      • 持久性:完成后就不会自己回退
      • 恢复管理器:保证原子性和持久性
      • 故障恢复:为保证原子性,失败要回退
      • 并发控制管理器:控制并发事物间的影响
  • 数据库体系结构
    • 集中式的:所有数据集中存储在一个中心节点,便于管理和维护,但可能受限于单个节点的性能和容量。
    • 并行的:利用多个CPU协同工作,提高数据处理能力和系统吞吐量,适用于大规模数据处理和高性能需求。
    • 分布式的:数据分散存储在多个节点上,实现跨地域的数据共享和访问,具有高可用性和易于扩展的特点。
  • 数据库应用体系结构
    • 两层的:应用程序驻留在客户机上,通过查询语言语句调用数据库功能。
    • 三层的:客户机仅作为一个前端,没有任何直接的数据库调用。
    • 应用服务器:计算在何种条件下做出何种反应。
  • 数据库管理员(DBA) 是对系统进行集中控制的人。

第2章 关系模型介绍

  • 表(table) :就是表格呗
  • 关系(relation) :表在关系模型中的高级表述
  • 元组(tuple) :行在关系模型中的高级表述
  • 属性(attribute) :列在关系模型中的高级表述
  • 关系实例(relation instance) :指代一个关系的特定实例(也就是选中某一行)
  • 域(domain) :对于关系的每个属性存在的一个允许取值的集合
  • 原子域(atomic domain) :不可再分的单元组成的域
  • 空值(null value) 是一个特殊的值,表示值未知或不存在。
  • 数据库模式(database schema) 指数据库的逻辑设计。
  • 数据库实例(database instance) 是在给定时刻数据库中数据的一个快照。
  • 关系模式(relation schema) 的概念对应于程序设计语言中类型定义的概念。
  • 是一种用来区分一个给定关系中的不同元组的方式。
    • 超码(superkey) 是一个或多个属性的集合。
    • 候选码(candidate key) 是最小的超码。
    • 主码(primary key,又称主码约束) 代表被数据库设计者选中来作为在一个关系中区分不同元组的主要方式的候选码,说人话就是每一行的主码都不一样,是对每一行来说唯一的编号之类的。
  • 外码约束
    • r 1 r_1 r1关系的 A A A属性(集)到 r 2 r_2 r2关系的主码 B B B外码约束(foreign-key constraint) 表明:在任何数据库实例中, r 1 r_1 r1中每个元组对 A A A的取值也必须是 r 2 r_2 r2中某个元组对 B B B的取值。 A A A属性集被称为从 r 1 r_1 r1引用 r 2 r_2 r2外码(foreign key) r 1 r_1 r1关系也被称为此外码约束的引用关系(referencing relation) ,且 r 2 r_2 r2被称为被引用关系(referenced relation)
    • 讲人话就是说假如现在有个公司,把员工的住址和工资分成两个表,那么这两个表里面一定都有员工姓名这一列对吧,而且这一列一定是一一对应的,那这一列就是外码了。
  • 引用完整性约束(referential integrity constraint) 要求引用关系中的任意元组在指定属性上出现的取值也必然出现在被引用关系中至少一个元组的指定属性上。
  • 模式图(schema diagram) 用来表示一个带有主码和外码约束的数据库模式。
  • 查询语言类型(query language)
    • 命令式(imperative)查询语言中,用户指导系统在数据库上执行特定的运算序列以计算出所需的结果。
    • 函数式(functional)查询语言中,计算被表示为对函数的求值,这些函数可以在数据库中的数据上运行或在其他函数给出的结果上运行。
    • 声明式(declarative)查询语言中,用户只需描述所需信息,而不用给出获取该信息的具体步骤序列或函数调用,所需的信息通常使用某种形式的数学逻辑来描述。

第3章 SQL介绍


http://www.mrgr.cn/news/78901.html

相关文章:

  • 中断基础概念 与 Linux底半部实现机制总结
  • uniapp 小程序主包使用分包的项目
  • centos搭建keepalive
  • AI潮汐日报1128期:Sora泄露引发争议、百度早期研究对AI领域Scaling Law的贡献、Meta发布系列AI开源项目
  • redis中的哨兵
  • 区块链学习笔记(2)--区块链的交易模型part1
  • 洛谷二分题
  • 鸿蒙技术分享:Navigation页面管理-鸿蒙@fw/router框架源码解析(二)
  • OpenCV_Code_LOG
  • 从0学习JavaScript(2)
  • 【大数据技术基础 | 实验十四】Kafka实验:订阅推送示例
  • Android:生成Excel表格并保存到本地
  • 书生浦语·第四期作业合集
  • 【小白学机器学习41】如何从正态分布的总体中去抽样?比较不同的取样方差的差别
  • 3分钟快速掌握——c语言【流程控制】if else选择语句,for while循环,goto语句
  • java基础概念46-数据结构1
  • Linux命令进阶·如何切换root以及回退、sudo命令、用户/用户组管理,getent命令以及解决创建用户不显示问题和Ubuntu不显示用户名只显示“$“符号问题
  • 爬虫专栏第二篇:Requests 库实战:从基础 GET 到 POST 登录全攻略
  • 长安汽车嵌入式面试题及参考答案
  • 开源鸿蒙system ability manager关键属性解析
  • 爬虫专栏第一篇:深入探索爬虫世界:基础原理、类型特点与规范要点全解析
  • linux网络抓包工具
  • PyQt6思维导图和实例(登录帝国时代)
  • Linux 35.6 + JetPack v5.1.4@DeepStream安装
  • echarts的双X轴,父级居中的相关配置
  • IDEA 配置鼠标悬浮后显示方法注释 javaDoc