文章目录
- 一、DBMS原理
- 1.1 DB物理存储
- 1.1.1 磁盘的结构&特性
- 1.1.2 DBMS数据存储&查询原理
- 记录:磁盘块
- 1.2 DB文件组织方法
- 1.2.1 无序文件组织
- 1.2.2 有序记录文件
- 1.2.3 散列文件(Hash File)
- 1.2.4 聚簇文件(Clustering File)
- 1.3 Oracle 物理存储简介
一、DBMS原理
1.1 DB物理存储
1.1.1 磁盘的结构&特性
1.1.2 DBMS数据存储&查询原理
- 记录:磁盘块 。OS的文件存储记录表(FAT)记录 数据 在哪些磁盘块当中block
- 数据先加载到内存缓冲区中,有一个内存页page & block的对应表
- 磁盘块Block已经装载进了磁盘页Page,有一个 记录Record & 记录所在内存位置Point的映射
记录:磁盘块
数据有定长记录&变长记录(靠分隔符区分开始&结束)
一条记录在数据块中也可以是跨块的
数据库-表所占磁盘块的分配方法
- 连续分配:数据块被分配到连续的磁盘块上
- 链接分配:包含指向下一个数据库的指针(访问速度影响)
- 按簇分配:簇连续若干的磁盘块,簇内连续分配,簇之间用指针连接,
- 簇:也称为片段Stagement / 盘区extent
- 索引分配:索引块中存放指向实际数据块的指针
1.2 DB文件组织方法
数据组织要考虑更新(增删改) & 检索的需求
索引会处理整个数据库、大批量处理
**文件组织:**数据组织成记录、块、和访问结构的方式,包括把记录和块存储在磁盘上的方式,以及记录和块之间相互联系的方法
**存取方法:**对文件采取的存取操作方法,可以采用多种
1.2.1 无序文件组织
heap 或 pile file
特点:记录存储在人为有空间的位置,磁盘上存储的记录是无序的。更新效率高,检索效率低
删除时,标记一下,并不是真正的删除
多次频繁删除后,需要重新组织顺序
数据库重组: 通过移走被删除的记录使有序存放
1.2.2 有序记录文件
排序文件Sequential
顺序加入: 存储是有序的,检索效率高
排序字段(Ordering field),通常使用关系中的主码,又称为排序码
更新效率低,解决方法:
- 为可能插入的数据预留空间
- 创造一个临时的无序文件,需要数据重组(将溢出文件合并到主文件中,并恢复主文件中的记录顺序)
1.2.3 散列文件(Hash File)
特点:用散列函数来计算应该存放的位置(桶号bucket,块号或簇号),检索效率都挺高
散列字段(Hash field),也通常采用主码,又称散列码(Hash key)
1.2.4 聚簇文件(Clustering File)
聚簇:将有相同或相似属性值的记录存放在连续的磁盘簇块种
多表聚簇:多个相互关联的table存储在同一个文件中,提高多表的效率
1.3 Oracle 物理存储简介
数据库DataBase
表空间tablespace
操作系统文件Datafiledatafile
table
段segment
盘区extent
基本数据块data blocks
逻辑存储层
- 所有表的容量就是数据库的存储容量
- 系统表空间:系统自动创建,用户表空间:用户创建的表
- 表:OSFile = 1 :n
物理存储层
- 物理存储层:段segment、盘区extent、数据块data block构成
- 簇:特定数量连续的数据块。
- 盘区extent是动态的,随不同数据库存储需求而调整
- 段 一组分配了特定数据结构的盘区:数据段、索引段、临时段
- 表:段 = m : n。一个段放置多个表数据(聚簇文件)
SQL的create table的三种功能:
- 定义模式
- 定义物理存储结构
- 定义完整约束