数据库系统原理与实践 笔记 #9

文章目录

  • 数据库系统原理与实践 笔记 #9
  • 存储管理与索引
    • 文件和记录的组织
      • 文件组织
      • 定长记录
      • 变长记录
      • 分槽的页结构
      • 文件中记录的组织
      • 顺序文件组织
      • 多表聚簇文件组织

数据库系统原理与实践 笔记 #9

存储管理与索引

文件和记录的组织

文件组织

  • 数据库是以一系列文件的形式存储的。每个文件再逻辑上组织称为记录的一个序列
    • 每个文件分为定长的存储单元,称为块(block)
    • 块是存储分配数据传输的基本单元,块大小一般为4~8KB

定长记录

  • 简单方案:
    • 记录i从第 n × ( i − 1 ) n\times (i-1) n×(i1)个字节开始存储,n是每个记录的大小
    • 访问记录很简单,但是一个记录可能存储于不同块,假设要求:不允许记录跨过块边界,没有记录是部分包含在一个块中
  • 删除第i个记录的可选方案
    • 将记录i+1,…,n移动到i,…,n-1
    • 将记录n移到i
    • 不移动记录,在一个空闲列表中将所有空闲记录列出

变长记录

  • 变长记录以下面几种方式出现在数据库系统中:
    • 多种记录类型存储在一个文件中
    • 允许一个或多个字段是变长的记录类型
    • 允许可重复字段的记录类型
  • 属性按照顺序存储
  • 以固定大小表示可变长度的属性(偏移量、长度),实际数据存储在所有固定长度的属性后
  • 记录末尾加上记录终止符
    在这里插入图片描述

分槽的页结构

  • 分槽页的块头包含:
    • 块中记录条目的个数
    • 块中空闲空间的末尾处
    • 一个由包含记录位置大小的记录条目组成的数组
  • 记录可以在页中移动,来保持它们的连续存储
  • 记录相互间没有空闲的空间(若删除记录,需移动记录数据

文件中记录的组织

  • 如何在文件中组织记录:
    • 堆文件组织:一个记录可以存放在文件中的任何地方,只要那个地方有空间存储这条数据
    • 顺序文件组织:记录根据“搜索码”的值顺序存储
    • 散列文件组织:在每条记录的某些属性上计算一个散列函数,散列函数的结果确定记录应放到文件的哪个块中
  • 通常,每个关系的记录用一个单独的文件存储
  • 但是多表聚簇文件组织中,几个不同关系的记录存储在同一个文件中:目的在于同一块中存储相关记录,以将I/O代价减到最小

顺序文件组织

  • 使用于需要对整个文件进行顺序处理的应用
  • 文件中的记录按搜索码排序
  • 删除 - 使用指针链
  • 插入 - 定位插入的位置:
    • 如果有空闲空间,那么插入到空闲处
    • 如果没有空闲空间,将新纪录插入到溢出块
    • 无论哪种方式,指针链都要更新

多表聚簇文件组织

  • 用多表聚簇文件组织在一个文件中存储多个关系
  • 能够很好地处理对 d e p a r t m e n t ⋈ i n s t r u c t o r department\bowtie instructor departmentinstructor的查询以及涉及一个系和相应老师的查询
  • 对只设计department的查询效果不好
  • 可以添加指针链来链接某个关系的记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/149762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive调优

1.参数配置优化 设定Hive参数有三种方式: (1)配置Hive文件 当修改配置Hive文件的设定后,对本机启动的所有Hive进程都有效,因此配置是全局性的。 一般地,Hive的配置文件包括两部分: a&#xff…

【网络】OSI模型 与 TCP/IP模型 对比

一、OSI模型 OSI模型包含7个层次,从下到上分别是: 1. 物理层(Physical Layer) - 功能:处理与电子设备物理接口相关的细节(如电压、引脚布局、同步,等等)。 - 协议:以…

mac苹果电脑需要安装杀毒软件吗?

随着数字时代的发展,计算机安全问题变得越来越重要。而在计算机安全领域中,杀毒软件是一个被广泛讨论的话题。苹果电脑需要安装杀毒软件吗?对于苹果电脑用户来说,他们常常会疑惑自己是否需要安装杀毒软件来保护自己的电脑。本文将…

ATTCK 十大免费 工具和资源

01 eBook: Getting Started with ATT&CK 这本免费电子书将有关威胁情报、检测和分析、对手模拟和红队以及评估和工程的博客文章中的内容汇集到一个方便的软件包中。 02 CALDERA CALDERA是一个网络安全平台,旨在轻松自动化对手仿真,协助手动红队并自…

第二证券:庄家会出现在十大流通股东吗?

近年来,跟着股市投资者的增多和信息的流通,庄家这一概念备受注重。庄家是指具有健旺资金实力、掌控金融商场的财团或个人,运用商场上的信息优势,通过投机办法获取高额收益。那么,庄家会出现在十大流通股东里面吗&#…

Zabbix实现故障自愈

一、简介 Zabbix agent 可以运行被动检查和主动检查。 在被动检查模式中 agent 应答数据请求。Zabbix server(或 proxy)询求数据,例如 CPU load,然后 Zabbix agent 返还结果。 主动检查处理过程将相对复杂。Agent 必须首先从 Z…

C++初阶 | [四] 类和对象(下)

摘要:初始化列表,explicit关键字,匿名对象,static成员,友元,内部类,编译器优化 类是对某一类实体(对象)来进行描述的,描述该对象具有哪些属性、哪些方法,描述完成后就形成…

HarmonyOS ArkTS语言,运行Hello World(二)

一、认识DevEco Studio界面 进入IDE后,我们首先了解一下基础的界面。整个IDE的界面大致上可以分为四个部分,分别是代码编辑区、通知栏、工程目录区以及预览区。 代码编辑区 1、中间的是代码编辑区,你可以在这里修改你的代码,以…

安装oracle19c卡在安装界面

我在个人window10电脑上安装 Oracle 19c 时遇到问题。解压后的数据库文件放在没有中文的文件目录下面,用管理员用户启动 CMD 窗口进行安装,但随后卡在菜单上。 取消安装之后去任务管理器中的服务里停掉OracleRemExecServiceV2服务。 用管理员运行CMD…

51单片机直流电机控制

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pwm波形?1.1高低电平交互,LED亮灭。1.2 驱动电机时?1.3 怎么调节电机的速度? 二、怎么用51单片机产生PWM波形…

深度学习系列53:mmdetection上手

1. 安装 使用openmim安装: pip install -U openmim mim install "mmengine>0.7.0" mim install "mmcv>2.0.0rc4"2. 测试案例 下载代码和模型: git clone https://github.com/open-mmlab/mmdetection.git mkdir ./checkpoi…

(二)汇编语句组成

一个完整的 RISC-V 汇编程序有多条 语句(statement) 组成。 一条典型的 RISC-V 汇编 语句 由 3 部分组成: 1.标签 List item label(标签): 标签是标识程序位置的记号。通常定义一个名称然后加上":"后缀。…

2023初中生古诗文大会复赛12月2日举行,来做做全真在线模拟题吧

2023年11月19日日,上海市古诗文大会主办方通过官微发布了2023上海中学生古诗文大会(初中组)复选将于12月2日举行的通知,就初中生古诗文大会复赛(复选)的相关安排做了说明,六分成长已经为您把通知…

CSDN的文档编辑器使用

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

越南MIC新规针对ICT和ITE产品电气授权标准变更

从2024年1月1日起,所有ICT和ITE产品(如台式电脑、笔记本电脑、平板电脑、DVB-T2电视/机顶盒、DECT电话等)都需要越南MIC授权的电气安全标准——QCVN132:2022。 目前MIC仍未最终确定要求,因为这与另一个监管机构存在冲突。所以目前他们可以接受ISO 17025的…

竞赛选题 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…

macOS下如何使用Flask进行开发

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的编码爱好者 大家好,我是全栈工…

Cannot find proj.db

原因 编译GDAL完成后,我打了个包(包括.so)移动到了另外同环境的机器上。 应用gdal ogr2ogr时候提示找不到proj.db 解决办法: 把proj的share拷贝到另外环境上。 #gdal新建othershare,proj的share复制过去 mkdir -p /usr/local/gdal-3.6.2…

字符串函数详解

一.字母大小写转换函数. 1.1.tolower 结合cppreference.com 有以下结论&#xff1a; 1.头文件为#include <ctype.h> 2.使用规则为 #include <stdio.h> #include <ctype.h> int main() {char ch A;printf("%c\n",tolower(ch));//大写转换为小…

打印工具HandyPrint Pro Mac中文版软件特点

HandyPrint Pro Mac是一款打印工具&#xff0c;它支持AIrPrint协议&#xff0c;可以让用户在iPhone、iPad、iPod等设备上进行打印操作&#xff0c;只需要将这些设备连接到Mac电脑的WiFi网络中即可实现打印功能。 ​ HandyPrint Pro Mac软件特点 简单易用&#xff1a;用户只需…