第六课(一)|学习笔记

简介: 快速学习第六课(一)

开发者学堂课程【高校精品课-西安交通大学-数据库理论与技术:第六课】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/12/detail/15862


第六课(一)

 

内容介绍

一. 顺序文件组织

二. 聚簇文件组织

三. 数据词典的存储

四. 对象到文件的映射

五. 持久性指针的管理

六. 磁盘的结构与特性

七. 基础回顾-计算机系统的存储体系

八. DBMS 数据存储与查询实现的基本思想

九. 数据库之表-记录与磁盘块的映射

十. 数据库之表-记录与磁盘块的映射

十一.Oracle DB 物理存储简介

十二.索引和散列

 

一.顺序文件组织

n 删除-利用指针链

n 插入-确定待插入记录的位置

² 若有自由空间则在该处插入

² 若无自由空间,插入到溢出块

² 两种情况都要更新指针链

n 需要不时重组文件以恢复物理存储顺序

image.png

 

二.聚簇文件组织

n 简单的文件结构将每个关系存储在一个单独的文件中

n 利用聚簇文件组织可以将多个关系存储在一个文件中 

聚簇一般是在外界的学生,可以按照学院的顺序排序。同一个学院的学生,物理上是相邻的,访问的模式是同一个学院的学生可能会一同被访问,物理上相邻效率是最高的,后面它举的例子就不详讲了,因为聚簇往往可以支持表连接。表连接操作时,经突破会加快查询速度。这里也不细讲了,因为这里用的就是存款和客户的例子。

image.png

² 有利于涉及 depositorcustomer 的查询,以及涉及单个客户和他的账户的查询

² 对只涉及 c ustomer 的查询不好(可用指针链,见下图)

² 导致变长记录

 

三. 数据词典的存储

数据字典(也称为系统目录) 保存元数据: 即关于数据的数据,如:

元数据是关于表的结构,它的访问特征要比其他信息访问的更加频繁,一般放在内存里。从存储的角度讲,跟一般的表是一样的,只不过它的管理库跟其他不太一样。以上列出的是内容包括什么,另外关于账号的信息是跟安全有关的。

n 关系的信息

² 关系名

² 关系的属性名和属性类型

² 视图名及其定义

² 完整性约束

n 用户及账号信息,包括口令

n 统计与描述数据

² 每个关系的元组数目

n 物理文件组织信息

² 关系如何存储 (顺序/散列/...)

² 关系的物理位置

ü 操作系统文件名

ü 包含关系记录的磁盘块地址

n 目录结构:可采用

² 为高效存取而设计的专门的数据结构,或者

² 关系集合,利用现有系统特性保证高效存取

² 通常采用后者

Relation-metadata =(relation-name, number-of-attributes,

storage-organization, location)

Attribute-metadata =(attribute-name, relation-name, domain-type,position, length)

User-metadata = (user-name, encrypted-password, group) Index-metadata =(index-name,relation-name, index-type,

index-attributes)

View-metadata =(view-name, definition)

元数据的东西要有数据模型,比如索引的数据,视图的数据,用户的数据,属性的数据,关系的数据,给出一种可能的目录结构。

 

四. 对象到文件的映射

n 将对象映射到文件类似于关系系统中将元组映射到文件,可以用

文件结构存储对象数据。

n OO数据库中的对象可能缺少一致性并可能非常大,管理这种对

象必须不同于管理关系系统中的记录。

一般关系数据库里的记录或者元组的长度的差异不是很大,但是特别符合对象的存储,完全要用另外一种方式来做。

n 只有少量元素的集合字段可以用链表之类的数据结构实现。

n 对象是通过对象标识符(OID)来标识的,存储系统需要一个机制来

根据给定的 OID 定位对象,此动作称为引用解析(dereferences)。

n 逻辑标识符不直接指明对象的物理位置,必须维护一个索引将

OID 映射到对象的实际位置。

标注里有些编码信息,可以用来定位,这就是关于这个映射的问题。

n 典型的物理 OID 由以下部分组成

1.卷或文件标识符。

2.卷或文件内的页标识符。

3.页内偏移量。

这里只是列举了一部分,实际情当中总有这样或那样的差异及工程实现的时候都会有,但是大概就是这些。

相关文章
|
机器学习/深度学习 C++
C/C++基础知识——数组、循环
C/C++基础知识——数组、循环
170 0
C/C++基础知识——数组、循环
el-popover 点击取消按钮,弹窗仍然无法关闭
el-popover 点击取消按钮,弹窗仍然无法关闭
|
7月前
|
算法 数据可视化 BI
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
本程序基于免疫算法实现物流仓储点选址优化,并通过MATLAB 2022A仿真展示结果。核心代码包括收敛曲线绘制、最优派送路线规划及可视化。算法模拟生物免疫系统,通过多样性生成、亲和力评价、选择、克隆、变异和抑制机制,高效搜索最优解。解决了物流仓储点选址这一复杂多目标优化问题,显著提升物流效率与服务质量。附完整无水印运行结果图示。
210 20
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
|
存储 JavaScript
Vuex的基础使用存值及异步
Vuex的基础使用存值及异步
125 0
|
机器学习/深度学习 算法
Lecture 7:策略梯度
Lecture 7:策略梯度
157 0
|
存储 Unix Linux
进阶操作系统
进阶操作系统
135 1
进阶操作系统
|
存储 安全 测试技术
容器安全是什么?
容器安全是什么?
Linux驱动分析之SPI控制器
之前对SPI驱动的整体架构做了介绍,现在来分析具体的驱动程序。之前说过,SPI驱动分为设备驱动和控制器驱动。先来分析控制器驱动。我们以RockChip的控制器来作为分析。
|
Dubbo Java 应用服务中间件
阿里巴巴服务框架三位一体的选择与实践
服务框架就像铁路的铁轨一样,是互通的基础,只有解决了服务框架的互通,才有可能完成更高层的业务互通,所以用相同的标准统一,合二为一并共建新一代的服务框架是必然趋势。Dubbo3 是Dubbo2 与 HSF 融合而来,是阿里经济体面向内部业务、商业化、开源的唯一标准服务框架。
阿里巴巴服务框架三位一体的选择与实践
|
API iOS开发
合约交易系统开发(项目方案)丨秒合约交易所系统开发(成熟技术)丨合约跟单系统开发(API一键跟单系统开发详细)
  合约交易是指买卖双方对约定未来某个时间按指定价格接收一定数量的某种资产的协议进行交易。