数据库物理设计

概述:

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

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

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

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

数据库设计的物理结构:

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

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

索引:

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

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

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

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

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

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

聚焦索引和非聚焦索引:

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

稠密索引和稀疏索引:

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

主索引和辅索引:

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

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

唯一索引:

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

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

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

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

单层索引和多层索引:

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

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

CREATE INDEX idx_xingshi ON students (xingshi);

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

SELECT * FROM students WHERE xingshi = '李';

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

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

散列索引 哈希索引

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

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

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

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

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

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

物理设计的主体:

物理环节:

数据库逻辑模式描述:

数据分布设计:

其他物理设计环节:

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

相关推荐
小二·6 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手6 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌6 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
蓝天下的守望者7 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
上海云盾-小余7 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹7 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创
AllData公司负责人8 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
2603_954708319 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全
IvorySQL9 小时前
从双解析器到循环工程:IvorySQL 五年技术演进路线的深度观察
大数据·数据库·人工智能·postgresql·开源