上一篇文章我们在文末介绍了数据库物理设计的索引,本文我们继续介绍数据库的物理设计

索引技术分类

有序索引
索引文件机制,利用索引文件(索引记录组成)实现记录域(查找码,排序域)取值到记录物理地址间的映射关系。
数据文件(主文件)和索引文件(索引记录或索引项的集合)是有序索引技术中的两个主体,数据文件常采用顺序文件结构。

散列索引
哈希(Hash)索引机制,利用散列函数实现记录域取值到记录物理地址间的直接映射关系。

几种主要的有序索引

(1)聚集索引(索引项与数据记录排列顺序一致,索引顺利文件)和非聚集索引。一个数据文件只可建立一个聚集索引,但可建立多个非聚集索引。
(2)稠密索引(数据文件中每个查找码都对应索引么记录)和稀疏索引(部分查找码的值对应索引记录)。
(3)主索引(主码属性集上建立的索引)与辅索引(非主属性上建立的索引)。
(4)唯一索引(索引列不包含重复值)
(5)单层索引(线性索引,每个索引项顺序排列直接指向数据文件中的数据记录)和多层索引(大数据量文件中的采用多层树型(B,B+树)索引快速定位)。

数据库物理设计的目标
目标是得到存储空间占用少,数据访问效率高和维护代价低的数据库物理模式。数据库底层物理存储与存取,与DBS所依赖的硬件环境、操作系统和DBMS密切相关。目前绝大部分DBS都是关系数据库系统。
环节
数据库物理设计主要包括5个环节。

(1)数据库逻辑模式描述
根据数据库逻辑结构信息设计目标DBMS可支持的关系表(这里称为基本表)的模式信息,这个过程称为数据库逻辑模式描述。
关系模式及其视图转换成基本表和视图,利用完整性机制(如触发器)设计面向应用的业务规则。
SQL Server 采用T-SQL语言。
为基本表选择合适的文件结构(堆文件、顺序文件、聚集文件、索引文件和散列文件)。

(2)文件组织与存取设计
基本原则
根据应用情况将易变部分与稳定部分、存取频率较高部分与存取频率较低部分分开存放,以提高系统性能。
分析理解数据库事务访问特性:使用事务-基本表交叉引用矩阵;估计各事务执行频率;汇总每张基本表各事务操作频率信息;根据结果设计文件结构。

注意:可以考虑将表和索引分别放在不同的磁盘上。在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。

影响数据文件存储结构的因素
存取时间
存储空间利用率
维护代价
这三个方面常常是相互矛盾的
解决办法
适当冗余
增加聚簇功能
必须进行权衡,选择一个折中方案。

什么是存储路径

在关系数据库中,选择存取路径主要指确定如何建立索引。
对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。
物理设计的第一个任务就是要确定选择哪些存取方法。

DBMS常用存取方法
索引方法,目前主要是B+树索引方法
聚簇(Cluster)方法
HASH方法

建立索引原则
一个(组)属性经常在操作条件中出现。
一个(组)属性经常在连接操作的连接条件中出现。
一个(组)属性经常作为聚集函数的参数。

建立聚集索引原则
检索数据时,常以某个(组)属性作为排序、分组条件。
检索数据时,常以某个(组)属性作为检索限制条件,并返回大量数据。
表中某个(组)的值重复性较大。

(3)数据分布设计
不同类型数据的物理分布
将应用数据(基本表)、索引、日志、数据库备份数据等合理安排在不同介质中。

应用数据的划分与分布
根据数据的使用特征划分(频繁使用分区和非频繁使用分区)
根据时间、地点划分(时间或地点相同的属于同一分区)
分布式数据库系统(DDBS)中的数据划分(水平划分或垂直划分)
派生属性数据分布(增加派生列或不定义派生属性)
关系模式的去规范化(降低规范化提高查询效率)

水平划分
将基本表划分为多张具有相同属性、结构完全相同的子表,子表包含的元组是基本表中元组的子集。
例如,对商品按照商品的生产年份进行划分就属于水平划分

垂直划分
将基本表划分为多张子表,每张子表包含的属性是原基本表的子集
例如,商品表(商品编号、品名、单价、库存量、销售单价、备注)
可垂直划分为两张子表:
商品表(商品编号、品名、销售单价)
商品表(商品编号、单价、库存量、备注)

(5)物理模式评估
对数据库物理设计结果从存取时间、存储空间、维护代价等方面进行评估,重点是时间和空间效率。
如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。

每文一语

不要把flag立在焦虑的时间上

数据库技术-数据库索引相关推荐

  1. Sybase数据库技术,数据库恢复---分享Sybase数据库知识(博客文章索引@51cto)

    Sybase数据库技术,数据库恢复 分享Sybase数据库知识 博客文章列表,更新时间:2014-12-14 Sybase数据库技术,数据库恢复 站点地图 最新文章 ASE使用with ignore_ ...

  2. Sybase数据库技术,数据库恢复---分享Sybase数据库知识(博客文章索引)

    Sybase数据库技术,数据库恢复 分享Sybase数据库知识 博客文章列表,更新时间:20141218 Sybase数据库技术,数据库恢复 » 站点地图 最新文章 ASE使用with ignore_ ...

  3. 数据库技术-数据库需求分析、数据流概念

    目录 需求分析 数据流 结构化分析案例-教材销购案例 例题讲解 每文一语 需求分析 1.需求分析的概念与意义 需求是指用户对软件的功能和性能的要求,就是用户希望软件能做什么事情,完成什么样的功能,达到 ...

  4. 数据库技术-数据库系统设计

    系统设计 如果需求分析阶段的任务是解决"干什么"的问题,那么系统设计阶段的任务是确定"怎么干". 系统设计包括: 概念设计:数据库概念模型设计.系统总体设计 逻 ...

  5. 数据库技术与应用 学习笔记1

    1.软件的安装 SQL Server 2019 安装教程 大佬的安装教程链接: https://blog.csdn.net/CHQC388/article/details/104550963. 2.数 ...

  6. 计算机数据库技术应用了什么,2018年全国计算机三级数据库技术考试考什么内容...

    根据<全国计算机等级考试三级数据库技术考试大纲(2018年版)>,全国计算机三级数据库技术考试内容主要包括:数据库应用系统分析及规划.数据库设计及实现.数据库存储技术.数据库编程技术等7项 ...

  7. 计算机三级数据库应用题设计题,2017年计算机三级《数据库技术》模拟应用题及答案...

    2017年计算机三级<数据库技术>模 拟应用题及答案 二.应用题(每空2分,共30分) 1.如果数据文件中数据记录排列顺序与索引文件中索引项的排列顺序一致,则此种索引被称为[1]索引. 2 ...

  8. 直击阿里新一代数据库技术:如何实现极致弹性能力?

    阿里妹导读:张瑞,阿里巴巴研究员,阿里集团数据库技术团队负责人,经历阿里数据库技术变革历程,连续六年作为数据库总负责人参与双11备战工作.今天,我们邀请他来分享新一代数据库技术在双11中的应用. 阿里 ...

  9. 腾讯TDSQL提出三个“数据库之问”,数据库技术未来重点在哪?

    李海翔,网名"那海蓝蓝",腾讯金融云数据库技术专家.中国人民大学信息学院工程硕士企业导师.著有<数据库事务处理的艺术:事务管理和并发访问控制>.<数据库查询优化器 ...

最新文章

  1. NOIP2010-普及组复赛模拟试题-第一题-手机
  2. 常用的PL/SQL开发原则 by dbsanke
  3. OpenGL编程指南14:混合半透明Blend
  4. 下游传递唯一序列号如何实现幂等性?
  5. 预留空间过大的OutOfMemoryError
  6. mysql 学习笔记10 常用数学函数
  7. 知新 | koa框架入门到熟练第一章
  8. 微信小程序------开发测试
  9. pclint html报告,PC-lint 9 + 中文手册
  10. L298n电机驱动模块(芯片)快速入门
  11. python3 中文乱码 锟斤_乱码问题解决之“锟斤拷”
  12. Albert Einstein—一个真正值得敬仰的伟人(什么超级什么星什么一班都靠边站兼滚蛋!)
  13. 史鉴使人明智;诗歌使人巧慧;数学使人精细;博物使人深沉;伦理之学使人庄重;逻辑与修辞使人善辩
  14. 07 linux 一个完整的shell脚本调试工具
  15. jvm性能分析工具之-- Eclipse Memory Analyzer tool(MAT)
  16. aaai2020相关论文
  17. 农产品商城毕业设计,农产品销售系统毕业设计,农产品电商毕业设计论文方案需求分析作品参考
  18. 我的30个Firefox扩展推荐
  19. MATLAB求解函数的零点+代码演示
  20. Flutter Downloading CanvasKit 报错

热门文章

  1. Cache中的比较器个数和位数
  2. IP地址分类(A,B,C,D,E类)
  3. Linux的命令——“cd”(内附Linux命令格式,相对路径和绝对路径)
  4. HDU1753—大明A+B(大正小数相加)
  5. Android RecoverSystem 类
  6. Flutter 移动端介绍与实践
  7. CC++QT开发知识总结
  8. 企业大数据的发展与应用
  9. 浏览器急速模式跟兼容模式导致网站显示不同的问题
  10. 链表回文(牛客网:OR36 链表的回文结构)