数据库原理与应用幻灯片.ppt
《数据库原理与应用幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据库原理与应用幻灯片.ppt(55页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、数据库原理与应用数据库原理与应用6.*第1页,共55页,编辑于2022年,星期六第六章第六章 数据存储与查询优化数据存储与查询优化n物理存储n索引结构n查询处理过程n代数优化n物理优化第2页,共55页,编辑于2022年,星期六物理存储介质物理存储介质 n现代计算机体系结构中存在着多种存储介质,按照容量、访问速度等技术指标又可分为三级,组成一个典型的金字塔结构第3页,共55页,编辑于2022年,星期六挥发性和持久性介质挥发性和持久性介质n内存等一级存储介质只在系统运行时保存数据,一旦断电,数据全部丢失,称为挥发性介质n磁盘、磁带等二、三级存储介质则在断电之后仍能保持数据的有效性,称为持久性介质n
2、数据库中的数据必须长时间的保存,即使系统关闭也不应该影响数据库中数据的有效性。因此,数据库中的数据必须存储在二、三级持久性介质中第4页,共55页,编辑于2022年,星期六磁盘磁盘n磁盘又称为硬盘,磁盘属于第二级存储,为持久性介质,是数据库的典型存储介质n一个磁盘中包含一个或多个盘片,这些盘片由金属或玻璃等刚性介质制成,表面涂有磁性介质用来记录数据n一个盘片有上下两个盘面,可以都用来记录数据,也可以只用一个面来记录数据n对每一个用来记录数据的盘面都有一个磁盘臂,其末端的读写头通过感应或改变盘片的局部磁性来读取或写入磁盘中的数据第5页,共55页,编辑于2022年,星期六磁盘(续)磁盘(续)n一个盘
3、面被划分为多个间距很小的同心圆,这些同心圆被称为磁道(track),不同盘面上有相同直径的磁道构成一个柱面(cylinder)n磁道又可以进一步分为多个扇区(sector),现有的磁盘中一个扇区的典型容量是512字节n在工作状态时,磁盘轴带动盘片以恒定的速度旋转n磁盘与操作系统之间的交互是通过磁盘控制器完成的 第6页,共55页,编辑于2022年,星期六磁盘结构磁盘结构 第7页,共55页,编辑于2022年,星期六磁盘磁盘I/O的性能的性能 n读写磁盘数据时,磁盘内部需要进行以下的一系列动作移动磁盘臂,直到读写头位于数据所在磁道的正上方通过盘片旋转,使得读写头位于所读写数据的正上方读写头读取或写入
4、数据n磁盘进行一次数据读写操作的时间由三部分组成第一部分是移动磁盘臂所用的时间,称为寻道时间,典型值为几毫秒第二部分是旋转盘片所用的时间,称为旋转时间,典型值为5-10毫秒第三部分是读写数据所用的时间,称为传输时间,典型值为几到几十MB每秒第8页,共55页,编辑于2022年,星期六磁盘读写的优化磁盘读写的优化 n磁盘臂调度的目的是通过规划多个数据读写请求的服务顺序来减少读写头的总移动距离,从而缩短读写磁盘的平均寻道时间。一种常用的磁盘臂调度算法是电梯算法n无论读写的数据量多大,由寻道时间和旋转时间带来的额外消耗都是一定的,因此读写少量数据时的效率就比读写大量数据时的效率低得多n基于计算机系统中
5、的局部性原理,在磁盘与操作系统之间的数据交互过程中广泛使用数据预取技术,即在读取指定数据的同时也预先读取与其相邻的一定范围内的数据n典型的数据预取技术是数据的按块传输,块是一个逻辑单位,即一个磁盘从逻辑上被划分多个连续的块。目前典型的块大小在1KB-8KB之间第9页,共55页,编辑于2022年,星期六缓冲管理缓冲管理 n在系统内存中开辟一块专用空间,称为缓冲区,用来缓存经常需要访问数据nDBMS中用来对缓冲区进行管理的模块就称为缓冲区管理器当DBMS的其它模块需要读取数据时,它们向缓冲区管理器发出请求缓冲区管理器首先查看需要读取的数据是否在缓冲区中,如果在,则缓冲区管理器直接返回缓冲区中的数据
6、,从而免除了进行磁盘I/O的代价如果在缓冲区中找不到指定数据时,则缓冲区管理器先从磁盘将数据读入缓冲区,然后返回给请求者 第10页,共55页,编辑于2022年,星期六缓冲区管理器缓冲区管理器n缓冲区中的内容被划分为多个块,块大小与磁盘块一致。为了对缓冲区进行有效管理,需要为每个缓冲块记录以下内容:空闲位脏位,在读入之后被修改过的缓冲块称为脏块pin值:pin值有两个功能,一是防止缓冲区管理器替换出正在处理的块,二是可以指定某些块常驻内存。缓冲区在选择被替换的块时,如果发现某缓冲块的pin值不为0,则不会将它替换出去。n提供强制写出脏的缓冲块的功能,这是为了保证数据的持久化存储。一种典型情况是系
7、统关闭时需要强制写出所有脏的缓冲块,另外为了数据库恢复的需要也要强制写出脏的缓冲块第11页,共55页,编辑于2022年,星期六缓冲区替换策略缓冲区替换策略n缓冲区通常不足以容纳数据库中的所有数据,在需要读入新的数据时,可能出现缓冲区已满的情况,这时缓冲区管理器就要选择一个缓冲块替换出去n如何选择被替换的缓冲块将影响到数据库运行过程中进行磁盘I/O的频率,一个好的缓冲区替换策略应该能够减少磁盘I/O,提高数据库的性能nLRU(Least Recently Used)替换策略的基本思想是:系统未来对数据的访问情况可由系统过去的访问情况预期,即如果一个数据块在过去很少被访问,则将来也不太可能被访问,
8、因此在缓冲区满时可考虑将其替换出去,反之,如果一个数据块在过去经常被访问,则将来也很有可能会被再次访问,因此不应将其替换出去第12页,共55页,编辑于2022年,星期六LRU替换策略替换策略n设有一个4块的缓冲区,初始为空,以后依次访问了块1,4,8,1,5,2,3,2,4,则根据LRU替换策略缓冲区的内容如下图所示,其间共发生了三次缓冲区替换第13页,共55页,编辑于2022年,星期六记录的存储记录的存储n数据库的数据通常按记录的形式加以组织,记录又由一到多个字段组成n有些类型,如整型、浮点型、定长字符串和日期类型等,无论具体的值是什么,占用的存储空间都是一样的,称为定长类型n另一些类型,如
9、变长字符串和文本等,占用的存储空间由实际的值决定,称为变长类型n如果一条记录中只包含定长类型的字段,则该记录称为定长记录,否则称为变长记录第14页,共55页,编辑于2022年,星期六定长记录定长记录n定长记录中所有的字段都是定长的,只需将所有字段按既定的顺序连续存放,所有字段的地址相对于记录首地址的偏移都可以计算得到第15页,共55页,编辑于2022年,星期六变长记录变长记录n变长记录中每个字段相对于记录首地址的偏移是不固定的,因此除了记录所有字段的值之外,在记录中还需要包含一些附加信息,以使得在访问时可以计算出记录中各个字段的偏移量。n变长记录的内部格式通常有两种,一种是用特殊的分隔符将记录
10、中的各字段隔开,这种方法有两个缺点不能保证分隔符永远不会在字段的值中出现即使只访问记录中的某个字段,也必须从记录首部开始搜索,否则无法确定该字段的位置 第16页,共55页,编辑于2022年,星期六变长记录(续)变长记录(续)n另一种方法是在记录首部存储各个字段的偏移量,这种方法解决了特殊字符分隔法的缺点,因此在实际的系统中更为常用第17页,共55页,编辑于2022年,星期六块格式块格式 n块是内外存交互的单位,记录必须存储在块中。一般来说,记录的长度小于块大小,因此在一个块中可以存放多条记录,每个块中可以存放多条记录,其中f称为该数据文件的块因子。如果记录跨块存储,在访问该记录时就会导致多次磁
11、盘I/O操作。第18页,共55页,编辑于2022年,星期六数据文件的重整数据文件的重整n在DBMS运行过程中,每删除一条记录,就在数据文件中产生一块小的空闲空间,这些小的空闲空间难以被有效利用,随着DBMS的不断运行,就会使数据文件中产生越来越多的“碎片”,从而导致DBMS性能的降低。为解决这一问题,需要定期对数据文件进行重整n数据文件的重整可以在文件范围进行,能够完全消除数据文件中的“碎片”。但文件范围的重整会导致记录在文件范围内移动,使得整个数据文件在重整过程中无法使用,也必然会影响到建立在该数据文件上的索引结构n更为常用的重整方法是块内重整,块内重整按序处理数据文件中的每个块,将该块内的
12、记录集中存储到块尾第19页,共55页,编辑于2022年,星期六超长记录和记录的跨块存储超长记录和记录的跨块存储 n为了利用空间,可以考虑允许记录跨块存储,即当块中存不下一条完整的记录时,可以把记录的前一部分存在该块中,而把余下的部分存在后续的块中n除了为了防止空间浪费而进行跨块存储外,当记录的长度超过块的大小时,也必须进行跨块存储 第20页,共55页,编辑于2022年,星期六文件组织方式文件组织方式n堆文件:记录间没有次序关系,新加入的记录可以存储在文件中任何有空间的地方。n顺序文件:记录按某些字段的值进行排序。n哈希文件:对记录的某些字段进行哈希运算,运算的结果决定记录存储在文件中的哪一块。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 幻灯片
限制150内