数据库物理设计

概述:

数据库物理设计其目的是为了将数据的逻辑描述转换为现实的技术规范,其目标是设计数据的存储方案。

在提供好的性能的同时,确保数据库数据的完整性,完全性,可恢复性。

根据数据量,用户需求,使用方法选择数据的存储方案,加快数据检索的速度。

在物理设计时,需要了解不同文件的组织方式,索引技术以及其使用方法。

数据库设计的物理结构:

数据库中的应用数据是以文件的形式存储在外设存储介质比如磁盘上的,文件在逻辑上被组成记录的序列,每个DB文件都可以看做是逻辑记录的集合。

其中,物理文件可以看做是由存放文件记录的一系列磁盘块组成,文件的逻辑记录与磁盘块间的映射关系是由操作系统或者DBMS管理的。

索引:

索引是一种快速的数据访问技术。

其关键是要建立记录域取值到记录域物理地址间的映射关系。

基于索引文件的索引技术,有序索引技术中包含两个主体:

数据文件**主文件** ,可以有多个查找码和索引文件 and 索引文件。

说到这里,顺带一提的是数据文件中存储的关系表通常是元组数据。

下面我们来区分有序索引中的这些索引的分类:

聚焦索引和非聚焦索引:

看索引文件中的索引项的排列顺序是否与数据文件中的数据记录相一致。如果一致,则是聚焦索引,不一致则是非聚焦索引。

稠密索引和稀疏索引:

数据文件中的每个查找码在索引文件中都有一个记录就叫做稠密索引,如果数据文件中的查找码只有部分在索引文件中存在,那就叫稀疏索引。

主索引和辅索引:

主索引:数据文件的主码属性集上建立的索引;

辅索引:数据文件上的非主属性上建立的所以。

唯一索引:

确保索引列不包含重复的值就是唯一索引。

就比如说学号就是唯一的,每个人只有一个,不会有重复的情况

多列唯一索引的情况下可以确保索引列中的每个值的组合都是唯一的。

例如表格包含订单号(order_id)和客户号(customer_id),你希望每个**订单号和客户号的组合都是唯一的**,这样可以避免同一个客户重复创建相同的订单。

单层索引和多层索引:

单层索引:索引项直接指向数据文件中的数据记录。

比如,我们按照学生姓氏进行查询学生,就可以给学生姓氏创建了一个单层索引。

CREATE INDEX idx_xingshi ON students (xingshi);

这样我们查找的时候就如下:

SELECT * FROM students WHERE xingshi = '李';

通过单层索引,数据库引擎可以快速定位到姓氏为 '李' 的所有学生记录,而不需要扫描整个表格。

多层索引复合索引:树型结构快速定位大数据量文件中的数据记录,涉及多个字段的范围查询或者组合条件查询。

散列索引 哈希索引:

利用一个散列函数(HashFunction)实现记录域取值到记录物理地址间的直接映射关系。

其中,记录域查找码又叫散列函数的散列域或排序域。

到这里我们的索引分类就算结束了。

此外,我们需要考虑两个方面的问题:

1.如何组织索引文件中的索引记录;

2.如何从索引文件出发,访问数据文件中的数据记录。

物理设计的主体:

物理环节:

数据库逻辑模式描述:

数据分布设计:

其他物理设计环节:

确定系统配置和物理模式结构。

相关推荐
龙腾AI白云11 小时前
仿真到现实(Sim-to-Real)迁移:跨越仿真与现实鸿沟
数据库·机器学习·plotly·知识图谱·tornado
freejackman13 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
.痞老板.15 小时前
mysql初阶--增删改查操作
数据库·mysql
lambo mercy20 小时前
AI智能租房助手
数据库
浮生若城21 小时前
MySQL:库与表的操作
数据库·mysql
薛定谔的悦21 小时前
光储充一体机从主控到执行单元的双层架构
数据库·mongodb·架构
数字新视界21 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
csdn_aspnet21 小时前
Redis 入门:Windows、Mac安装指南
数据库·windows·redis·缓存·mac
山甫aa1 天前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
Nturmoils1 天前
集中式与分布式怎么选:从订单读写看 KingbaseES 的架构边界
数据库