数据库存储和索引

数据库存储和索引

导语

本科的时候,我对数据库的感觉就是:“恩,数据库就是用于处理和存储数据的,它就是所谓“数据库”。并不了解它是如何存储大量数据,如何做到快速搜索的。”
考研期间学习了文件系统,B+树,但是都和数据库联系不起来。经过研究生的课程,算是慢慢深入了解数据库了。

一、数据库的介绍

1.什么是数据库

DBS(Database system)是指带有数据库并利用数据库技术进行数据管理的计算机系统
DBMS(Database management system)是设计用于存储,管理,使用数据库的软件系统

2.为什么要用数据库

主要是普通文件系统的问题:
1)数据冗余,非结构化,高维护代价
2)当两个文件同时被写入,谁的操作被保存?
3)当更新文件时,电源断开,操作被保存了吗?答案是不确定。
需要一个专门处理数据的系统,这就是数据库系统诞生的原因。

OS处理的是通用操作,注重的是可移植性
DBMS处理的是专用操作,用于处理大量数据,可以根据需要调整页面替换策略。

二、数据库的存储

1.和普通的文件系统的相同点。

数据存储在硬盘上,有多级存储结构。
缓冲区管理(选择合适的换页策略,降低缺页率)

2.和普通的文件系统的不同点。

文件系统:数据存取基本是以记录为单位,记录内部有结构,而文件中数据是没有结构的,不能表示复杂的数据结构,而且存取效率也不高。数据通过应用程序的使用方法在磁盘中存取,而数据具体的存储由文件系统完成,造成数据的独立性差,冗余度大,一致性差等问题。

数据库系统:数据整体结构化。数据共享度高,冗余度小,应用程序和数据是分离开来的,所以数据有较高的独立性。应用程序对数据的存取必须通过数据库管理系统来进行操作,而数据的具体存储是通过内模式完成的,数据通过两层映像保证了数据的逻辑独立性与物理独立性。

内模式解释:是数据物理结构和存储方式的描述,是数据在数据库内部的表示方法,记录的存储方式(顺序存储,B树结构存储,hash存储),索引的组织方式,数据是否压缩,数据是否加密,数据存储记录结构的规定。一个数据库只有一个内模式。

两层映像解释:数据库的三级结构(外模式,概念模式,内模式)。
外模式是用户的局部逻辑结构,概念模式是数据库的整体逻辑结构,内模式是数据库的物理结构。
而两层映像就是外模式/概念模式映像,概念模式/内模式映像。

三、索引的分类

  1. 聚簇索引,非聚簇索引
    维护代价昂贵(插入时代价高)

  2. Hash索引
    只能使用于求相等的搜索,不能进行范围搜索。

  3. B+ Tree索引
    插入代价比较低,O(logm N)
    查询效率取决于B+ Tree的层数。

总结:索引一般情况下是提高检索速度的。但是创建和维护索引需要耗费时间,耗费时间的数量随着数据量的增加而增加。而且索引需要占用物理空间。


参考:
浙大寿黎旦课件

你可能感兴趣的:(【数据库】)