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

news2024/11/17 3:45:09

文章目录

  • 数据库系统原理与实践 笔记 #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.coloradmin.cn/o/1234170.html

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

相关文章

day29_Servlet

今日内容 零、 复习昨日 一、Servlet 零、 复习昨日 一、Servlet 1.1 Servlet介绍 javaweb开发,就是需要服务器接收前端发送的请求,以及请求中的数据,经过处理(jdbc操作),然后向浏览器做出响应. 我们要想在服务器中写java代码来接收请求,做出响应,我们的java代码就得遵循tomca…

图像分类(三) 全面解读复现VGGNet

解读一 Abstract-摘要 翻译 在这项工作中,我们研究了卷积网络深度在大规模图像识别环境下对其精度的影响。我们的主要贡献是使用具有非常小(33)卷积滤波器的体系结构对增加深度的网络进行了彻底的评估,这表明通过将深度推进到16-19个权重层&#xff0…

报错注入 [极客大挑战 2019]HardSQL1

打开题目 输入1或者1",页面均回显NO,Wrong username password!!! 那我们输入1 试试万能密码 1 or 11 # 输入1 and 12 # 输入1 union select 1,2,3 # 输入1 ununionion seselectlect 1,2,3 # 输入1 # 输入1# 页面依旧回…

php字符串处理函数的使用

php字符串处理函数的使用 trim() trim()函数的功能用于去除字符串首尾的空白字符(包括空格、制表符、换行符等&#xff09;。它可以用于清理用户输入的数据或去除字符串中的多余空格。 <?php $char" holle world! ";echo trim($char) ?>str_repl…

IvorySQL3.0:基于PG16.0最新内核,实现兼容Oracle数据库再升级

Oracle作为全球最大的数据库厂商之一&#xff0c;具有较高的市场知名度和份额。但随着数据处理需求日益增长&#xff0c;使用Oracle的企业可能面临一些挑战&#xff0c;如数据库复杂性、高昂维护成本、数据迁移和集成问题等&#xff0c;难以满足企业实时数据处理需求&#xff0…

C++11新特性 变参模板、完美转发和emplace

#include <iostream> #include <vector> #include <deque> #include <list> #include <algorithm> using namespace std;class student { public:student() {cout << "无参构造函数被调用!" << endl;}student(int age, st…

如何使用rclone将腾讯云COS桶中的数据同步到华为云OBS

在多云策略与数据迁移趋势下&#xff0c;企业往往需要将数据在不同云服务提供商之间进行迁移。本文介绍如何使用rclone工具同步腾讯云COS&#xff08;Cloud Object Storage&#xff09;桶中的数据到华为云OBS&#xff08;Object Storage Service&#xff09;。先决条件是您已经…

【MATLAB基础绘图第17棒】绘制玫瑰图

MATLAB绘制玫瑰图 玫瑰图&#xff08;Nightingale Rose Chart&#xff09;风玫瑰图&#xff08;WindRose&#xff09;准备工作&#xff1a;WindRose工具包下载案例案例1&#xff1a;基础绘图 参考 玫瑰图&#xff08;Nightingale Rose Chart&#xff09; 玫瑰图&#xff08;Ni…

入行IC | 从小白助理级,到总监专家级,到底要经历怎样的成长阶段呢?

《中国集成电路产业人才发展报告》是业内和IC设计、IC人才都息息相关的一份报告。 &#xff08;文末可领全部报告资料&#xff09; * 从报告数据来看&#xff0c;无论在半导体产业的哪个环节&#xff0c;个人发展路径和年薪待遇都是逐级攀升的趋势。 那么从小白助理级&a…

Unity下载资源且保存

UnityWebRequest(WWW——已过时) 替代&#xff1a;Unity不再支持WWW后&#xff0c;使用UnityWebRequest完成web请求。 Unity - Scripting API: UnityWebRequest (unity3d.com)https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.html if (www.isNetworkEr…

如何理解低代码开发工具?

目录 一、低代码平台是什么 1. 数据输入 2. 数据流转 3. 数据加工 4. 数据输出 &#xff08;1&#xff09;视图&#xff1a;单表的数据的简单展示 &#xff08;2&#xff09;看板&#xff1a;提供单表、多表数据的多种图表组合展示 二、低代码能力 ➪ 全栈可视化编程&#xff1…

企业怎么进行人事管理?一篇文章带你了解!

阅读本文你将了解企业如何运用数字化工具进行人事管理&#xff1a;一、数字化、线上化&#xff0c;解放人力&#xff1b;二、规范管理流程&#xff0c;提升处理效率&#xff1b;三、数据分析可视化&#xff0c;支持并优化决策&#xff1b;四、个性化定制&#xff0c;灵活适应需…

太累了,是时候让AI数字人来帮我干活了(走,上教程)

阿酷TONY&#xff0c;原创文章&#xff0c;长沙&#xff0c;2023.11.21 关 键 词&#xff1a;AI数字人&#xff0c;生成式AI&#xff0c;智能数字分身适用场景&#xff1a;培训数字人&#xff0c;演讲授课数字人&#xff0c;直播带货数字人特别说明&#xff1a;教程用的是国内…

部署Kubernetes Dashboard

Dashboard简介 Dashboard 是基于网页的 Kubernetes 用户界面。 可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中&#xff0c;也可以对容器应用排错&#xff0c;还能管理集群资源。 Dashboard创建 #创建pods kubectl apply -f https://raw.githubusercontent.com/kub…

全栈程序员太难了,这个报表工具别再错过了!!

打开百度百科&#xff0c;全栈工程师的解释&#xff1a;是指掌握多种技能&#xff0c;可以胜任前端和后端&#xff0c;能用多种技能独立完成产品的人。 对于这个答案我是保持观望的态度。如果说能同时开发前端和后端&#xff0c;还能独立完成产品&#xff0c;它就是全栈工程师…

spark内置数据类型

在用scala编写spark的时候&#xff0c;假如我现在需要将我spark读的数据源的字段&#xff0c;做一个类型转换&#xff0c;因 为需求中要拼接出sql的create table语句&#xff0c;需要每个字段的sql中的类型&#xff0c;那么就需要去和sparksql 中的内置数据类型去比对。 写s…

去除IDEA中代码的波浪线(黄色警示线)

去除IDEA中代码的波浪线 首先是点击File—>Settings 操作如下图所示: 然后点击Editor—>Inspections—>General—>Duplicated code fragment(去掉勾选)—>Apply—>OK 即可,详情请看下图所示:

Mysql数据库管理-Innodb 内存优化分析

MySql数据库内存分析优化 1 Innodb重做日志 redo log是Innodb保障事务ACID属性的重要机制。工作原理图如下&#xff1a; 2 增加缓冲池数量&#xff0c;减少内部对缓冲池结构争用。 mysql内部线程对innodb缓存池的访问在某个阶段是互斥的&#xff0c;这种内部竞争也会产生性能…

【Java】多线程-单例模式/volatile-指令重排序

单例模式即代码中只有一个实例的模式 适用场景&#xff1a;有些场景下&#xff0c;有的类只能有一个对象&#xff0c;不能有多个 要注意&#xff1a;在单例模式下&#xff0c;要保证不能产生多个实例 1、饿汉模式 class Singleton{private static Singleton instance new …

捷诚管理信息系统 SQL注入漏洞复现

0x01 产品简介 捷诚管理信息系统是一款功能全面&#xff0c;可以支持自营、联营到外柜租赁的管理&#xff0c;其自身带工作流管理工具&#xff0c;能够帮助企业有效的开展内部审批工作。 0x02 漏洞概述 捷诚管理信息系统CWSFinanceCommon.asmx接口存在SQL注入漏洞。未经身份认…