第六课(一)|学习笔记

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

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

课程地址: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.页内偏移量。

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

相关文章
|
存储 SQL 算法
第六课(二)|学习笔记
快速学习第六课(二)
115 0
第六课(二)|学习笔记
|
存储 SQL Oracle
第六课(三)|学习笔记
快速学习第六课(三)
121 0
第六课(三)|学习笔记
|
存储 数据采集 人工智能
第七课(三)|学习笔记
快速学习第七课(三)
134 0
第七课(三)|学习笔记
|
存储 数据库 开发者
第七课(二)|学习笔记
快速学习第七课(二)
150 0
第七课(二)|学习笔记
|
存储 NoSQL 算法
第八课(三)|学习笔记
快速学习第八课(三)
100 0
第八课(三)|学习笔记
|
存储 算法 数据库
第八课(二)|学习笔记
快速学习第八课(二)
第八课(二)|学习笔记
|
存储 机器学习/深度学习 数据库
第七课(一)|学习笔记
快速学习第七课(一)
182 0
第七课(一)|学习笔记
|
存储 机器学习/深度学习 算法
第八课(一)|学习笔记
快速学习第八课(一)
110 0
第八课(一)|学习笔记
|
关系型数据库 数据库 开发者
第五课(二)|学习笔记
快速学习第五课(二)
100 0
第五课(二)|学习笔记
|
存储 数据库 开发者
第五课(三)|学习笔记
快速学习第五课(三)
141 0
第五课(三)|学习笔记