数据库物理设计

概述:

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

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

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

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

数据库设计的物理结构:

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

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

索引:

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

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

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

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

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

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

聚焦索引和非聚焦索引:

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

稠密索引和稀疏索引:

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

主索引和辅索引:

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

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

唯一索引:

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

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

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

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

单层索引和多层索引:

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

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

CREATE INDEX idx_xingshi ON students (xingshi);

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

SELECT * FROM students WHERE xingshi = '李';

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

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

散列索引 [哈希索引]

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

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

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

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

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

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

物理设计的主体:

物理环节:

数据库逻辑模式描述:

数据分布设计:

其他物理设计环节:

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

相关推荐
WHYBIGDATA1 小时前
Hive之数据定义DDL
大数据·数据库·hive·hadoop
江妍code2 小时前
数据结构:树和二叉树概念_堆篇
数据结构·数据库
2501_903238655 小时前
Spring Boot Actuator与JMX集成实战
java·开发语言·数据库·个人开发
OpenC++5 小时前
【MySQL】常用语句
数据库·经验分享·笔记·mysql·leetcode·oracle
飞翔的佩奇5 小时前
Java项目: 基于SpringBoot+mybatis+maven+mysql实现的疫苗发布和接种预约管理系统(含源码+数据库+开题报告+毕业论文)
java·数据库·vue.js·spring boot·mysql·毕业设计·疫苗预约
LUCIAZZZ6 小时前
介绍一下Mybatis的底层原理(包括一二级缓存)
java·数据库·spring boot·mybatis
smart_ljh7 小时前
k8s二进制集群之ETCD集群证书生成
数据库·k8s·etcd
look_outs9 小时前
PyQt4学习笔记1】使用QWidget创建窗口
数据库·笔记·python·学习·pyqt
机械猿--9 小时前
数据库核心操作解析:order by、group by、join、union 排序分组连接合并原理详析...
数据库·oracle
漫步者TZ10 小时前
Starrocks 对比 Clickhouse
数据库·starrocks·clickhouse