数据库管理系统之存储数据:磁盘和文件

9.1 存储层次

计算机的存储是按照层次组织的。顶层是主存储器,由高速缓存和主存组成,并提供数据的快速访问。接下去是第二级存储器,由较慢的磁盘等设备组成。第三级存储器是最慢的存储设备,如光盘和磁带。

磁带是相对便宜的存储设备,能存储大容量的数据,主要缺点是磁带是顺序存取设备,必须顺序的经过所有的数据,而不能直接访问磁带的某一位置,因此磁带不适合用于存储操作型数据或频繁存取的数据,磁带主要用于阶段性的操作型数据的备份。

磁盘支持对给定地址的直接访问,被广泛用于数据库应用。数据以磁盘块为单位存储在磁盘上。磁盘块是字节的一个连续序列。是从磁盘读/写数据的单位。块分布于一张或者多张盘片的同心环型磁道上。磁盘块的大小在磁盘初始化时可以被设置成扇区大小的倍数。磁盘结构如图:

存取磁盘块的时间由以下部分组成:

a)寻道时间:用于移动磁头到达所需块所在的磁道的时间。

b)旋转延迟:所需块旋转到磁头下的等待时间,它的平均时间是旋转半圈需要的时间,通常小于寻道时间。

c)传输时间:当磁头定位后实际读或写磁盘块的时间,即磁盘旋转经过数据块的时间。

一次完整的输入输出(IO)操作的时间 = 磁盘轴旋转时间(旋转延迟)+磁盘臂移动时间(寻道时间)+数据传输时间。

三者所需时间的平均经验值为:0.004秒、0.008秒和0.0005秒。所以,一次完整的IO时间的经验值是0.0125秒,即1/80秒

磁盘结构对性能的影响

(1)DBMS的数据必须在内存中操作

(2)磁盘和主存之间数据传输的单位是块,如果只需要块上的某一项,也需要传输整个块,读/写一个磁盘块称为一次I/O操作。

(3)读/写块的时间依据数据所在的位置而变化:

存取时间 = 寻道时间 + 旋转延迟 + 传输时间

9.2 廉价冗余磁盘阵列(RAID)

磁盘阵列是把几个磁盘组织在一起的一种形式,以提高性能和改善存储系统的可靠性。

数据划分是把数据分布在多个磁盘上,用于提高性能。

冗余用于改善可靠性。可靠性是通过增加冗余信息而不是通过保存数据的简单拷贝来改善的。冗余信息经过精心组织以保证在一个磁盘出现故障时,可以使用冗余信息来重构故障磁盘上的内容。实现数据划分和冗余相结合的磁盘阵列成为独立磁盘冗余阵列,简称为RAID。

在数据划分中,数据被划分为相等大小的段,并分布到多个磁盘上,段的大小被称为划分单位。数据段通常用循环算法分布:如果磁盘阵列有D个磁盘,那么数据段i被写在i mod D磁盘上。

9.3 磁盘空间管理

磁盘空间管理器支持做为数据单元的页的概念,并且提供分配和回收及读/写页的命令。通常选择磁盘块大小作为页的大小。并且页面作为磁盘块存储起来。这样在一次磁盘的I/O操作就能够完成一页的读/写。

9.4 缓冲区管理器

缓冲区管理器是负责在必要时把页面从磁盘取到主存的软件层。它通过把缓冲区划分为页集来管理可获得的主存,这些页集通常称为缓冲池。缓冲池中的主存页称为帧,及存放页(通常驻留在磁盘或者其他二级存储上的页)的槽

除了缓冲池本身,缓冲区管理器还维护一些簿记信息和描述帧的两变量:pin-count和dirty,存放在某个帧的当前页已经被请求但是还未释放的次数,即该页的当前用户数,被记录在那个帧的pin-count变量中,布尔变量dirty表示页从磁盘中读入缓冲池后是否已经被修改。

开始时,每个帧的pin-count设置为0,dirty设置为假。当页被请求时,缓冲区做如下工作:

1.检查缓冲池是否包含被请求的页,如果缓冲池中有该页,则将该页的pin-count值增加。如果缓冲池没有该页,缓冲池管理器将按如下步骤将缺页读入缓冲池中:

a)根据替换策略选择替换真,并且增加它的pin-count;

b)如果替换帧的dirty为真,把该帧存放的页写回磁盘(即磁盘页的拷贝将由帧的内容改写)

c)把请求的页读入替换帧中

2.把替换帧的(主存)地址返回给申请者。

*缓冲区替换策略

最近最少使用策略(LRU(least recently used)) 时钟替换   先入先出(FIFO),最近经常使用策略(MRU),随机策略

时间: 2024-10-09 18:56:00

数据库管理系统之存储数据:磁盘和文件的相关文章

数据库管理系统之存储和索引

一.基本概念 8.1 外部存储上的数据 在磁盘上读写存储信息的单位是页,页的大小是DBMS的一个参数,典型的值是4KB或者8KB.页I/O(从磁盘输入输入到主存和从主存输出到磁盘)的代价代表了典型的数据库操作的代价,因此优化数据库系统来减小这个代价十分重要. 谨记要点: 1. 磁盘是最重要的外存设备,它允许以一个(或多或少)固定的代价来检索每一页,但是,如果我们按照页面存储的物理顺序连续读取若干页,所花的代价可能比以任意的顺序读取同样的页面要小得多. 2. 磁带是顺序访问设备,需要我们一页一页的

Android存储数据到本地文件

xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"  

在偏好文件中存储数据

SharedPreferences对象使用常规的XML文件来存储数据,这些文件存储在应用程序的数据目录内.该XML文件的结构很简单,因为它只允许存储键/值对,不过Android API还提供了非常方便的抽象,允许开发者以类型安全的方式读写数据. 创建SharedPreferences对象最简单的方式是使用PreferenceManager.getDefaultSharedPreferences()方法,它会返回应用程序默认的偏好对象.使用该方式来存储主要的偏好设置很方便,因为框架会自动管理好文件

选择数据库管理系统(DBMS)时主要考虑的因素

选择数据库管理系统时应从以下几个方面予以考虑: (1) 构造数据库的难易程度. 需要分析数据库管理系统有没有范式的要求,即是否必须按照系统所规定的数据模型分析现实世界,建立相应的模型:数据库管理语句是否符合国际标准,符合国际标准则便于系统的维护.开发.移植:有没有面向用户的易用的开发工具:所支持的数据库容量,数据库的容量特性决定了数据库管理系统的使用范围. (2) 程序开发的难易程度. 有无计算机辅助软件工程工具CASE——计算机辅助软件工程工具可以帮助开发者根据软件工程的方法提供各开发阶段的维

Linux磁盘及文件系统管理1

RHCSA认证中的东西: Linux系统管理包括的内容有: 磁盘分区及文件系统管理 RAID LVM 网络属性管理 程序包管理 sed and awk 进程查看和管理 内核管理(编译和安装) 系统启动流程 定制.编译内核.busybox 系统安装:kickstart,dhcp,pxe shell脚本编程 linux磁盘管理及文件系统管理 先搞明白 CPU,Memory(RAM),I/O I/O设备有:Disks,Ethercard Disks:持久存储数据 磁盘的接口类型有: IDE(ata):

数据库学习笔记:第九章 存储数据:磁盘和文件

第九章 数据以磁盘块为单位存储在磁盘上.块分布于一张或多张盘片的同心环形磁道上.磁道可以在盘片的单面或双面上录制. 同一直径的所有磁道的集合称为柱面. 磁盘块的大小在磁盘初始化时可以被设置成扇区大小的倍数. 每一个记录的表面都有一个磁盘头阵列.读写一块时,磁头必须定位在块头位置. 不能并行读写的主要原因是很难保证所有磁头被精确定位在相应的磁道上. 磁盘控制器是磁盘驱动器与计算机的接口. 当数据被写到扇区时,需要计算校验和并存储在扇区上,当扇区上的数据被独处时,需要再次校验和. 寻道时间是用于移动

SharedPreferences数据、openFileOutput文件、SQLite数据库文件存储位置

在模拟器中: SharedPreferences将XML文件保存在/data/data/<package name>/shared_prefs目录下, openFileOutput方法将文件保存在/data/data/<package name>/files目录下 SQLite数据库文件存放在/data/data/<package name>/databases目录下 SharedPreferences数据.openFileOutput文件.SQLite数据库文件存储位

安卓数据持久化:文件存储、SharedPreferences存储以及数据库存储

Android系统中主要提供了三种方式用于简单的实现数据持久化功能: 文件存储(手机自带的内存).SharedPreferences存储以及数据库存储 当然还可以用sd卡存储 读入写出 下面是疯狂java讲义中的关于IO流的一些补充,回忆一下 1,文件存储 手机自带的内存,只能供当前应用程序访问,其他应用程序访问不了,程序卸载这些数据也会随着消失 原理: 基本是先获取一个文件的输出流,然后把信息write进去,最后关闭流 a,通过上下文类context的openFileOutput()方法获得一

Lunix磁盘及文件管理系统

Linux磁盘及文件系统管理 CPU,Memory(RAM),I/O I/O:Disks,Ethtercard Disk:持久存储数据 接口类型: IDE(ata):并口,133MB/s SCSI:并口,Ultrascsl320,320MB/s SATA:串口,6gbps SAS:串口,6gbps USB:串口,480MB/s 并口:同一线缆可以接多块设备: IDE:俩个,主,从 SCSI: 宽带:16-1 窄带:8-1 iops:io per second 串口:一个 硬盘:机械硬盘,固态硬盘