《数据厍设计与开发》讲义 2.数据存储与数据管理 前面重点讲数据库的逻辑模式本章介绍 数据库物理模式设计中的数据存储技术 和保证数据库正常运行的安全性、完整 性控制和数据库恢复技术 2.1数据存储 2.2数据管理 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.数据存储与数据管理 • 前面重点讲数据库的逻辑模式,本章介绍 数据库物理模式设计中的数据存储技术 和保证数据库正常运行的安全性、完整 性控制和数据库恢复技术。 2.1数据存储 2.2数据管理
《数据厍设计与开发》讲义 2.1数据存储 数据存储技术的重要目标就是尽可能减 少读写数据所需的磁盘访间(O操作)次 数,尽可能使数据驻留在内存中 均衡负载,提高效率 2.1.1数据的磁盘存储 2.1.2索引 2.1.3聚簇索引与非聚簇索引 2.1.4散列(HASH)簇存储 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.1数据存储 • 数据存储技术的重要目标就是尽可能减 少读写数据所需的磁盘访问(I/O操作)次 数,尽可能使数据驻留在内存中。 均衡负载,提高效率! 2.1.1数据的磁盘存储 2.1.2索引 2.1.3聚簇索引与非聚簇索引 2.1.4散列(HASH)簇存储
《数据厍设计与开发》讲义 2.1.1数据的磁盘存储 2.1.1.1磁盘访问是面向页面(数据块)的 2.1.1.2 ORACLE的磁盘资源分配 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.1.1 数据的磁盘存储 2.1.1.1磁盘访问是面向页面(数据块)的 2.1.1.2ORACLE的磁盘资源分配
《数据厍设计与开发》讲义 2.1.1.1磁盘访问是面向页面(数据块)的 ·基本表中的行和索引是存储在磁盘上的。磁盘 由若干盘片组成,盘片有磁道、扇区,若干盘 片的磁道组成柱面。 ·一次磁盘页面访问包括: 寻道时间:磁盘臂移动到指定柱面的时间; 旋转延时:磁盘旋转到指定扇区的时间 传输时间:读写磁盘页面数据的时间。 磁盘访问时间主要是移动磁盘臂到指定位置所 需时间。 ·如果两个要连续读取的数据块在磁盘上紧挨着, 则寻到时间很短,如果两数据在同一柱面上,那 末寻到时间为零。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.1.1.1磁盘访问是面向页面(数据块)的 • 基本表中的行和索引是存储在磁盘上的。磁盘 由若干盘片组成,盘片有磁道、扇区,若干盘 片的磁道组成柱面。 • 一次磁盘页面访问包括: 寻道时间:磁盘臂移动到指定柱面的时间; 旋转延时:磁盘旋转到指定扇区的时间; 传输时间:读写磁盘页面数据的时间。 磁盘访问时间主要是移动磁盘臂到指定位置所 需时间。 • 如果两个要连续读取的数据块在磁盘上紧挨着, 则寻到时间很短,如果两数据在同一柱面上,那 末寻到时间为零
《数据厍设计与开发》讲义 2.1.1.1磁盘访问是面向页面(数据块)的 在读写磁盘的一个页面的时间里,可以执行百 万条的程序指令与内存交换数据。相对于内存 而言,磁盘访问速度是很慢的,我们要尽量减 少磁盘访问的次数。 ·磁盘访问基本都是“面向页面的”,磁盘页面 也称数据块。磁盘页面的页面地址可以是连续 的整数,也可以由设备号、柱面号、磁盘表面 号和开始扇区地址组成。 ORACLE一个页面(块)为2KB,DB2UDB标准页面 为4KB(DB2UDB还支持8KB、16KB和32KB)。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.1.1.1磁盘访问是面向页面(数据块)的 • 在读写磁盘的一个页面的时间里,可以执行百 万条的程序指令与内存交换数据。相对于内存 而言,磁盘访问速度是很慢的,我们要尽量减 少磁盘访问的次数。 • 磁盘访问基本都是“面向页面的” ,磁盘页面 也称数据块。磁盘页面的页面地址可以是连续 的整数,也可以由设备号、柱面号、磁盘表面 号和开始扇区地址组成。 • ORACLE一个页面(块)为2KB,DB2 UDB标准页面 为4KB(DB2 UDB还支持8KB、16KB和32KB)
《数据厍设计与开发》讲义 2.1.1.1磁盘访问是面向页面(数据块)的 ·数据库系统按照给定的磁盘页面(块)地址读取 磁盘页面,把数据放到内存的缓冲区(缓冲区 是在数据库系统初始化时候建立的)中。每读 入一个页面都在散列后备表中记录该页面在缓 冲区中位置,每一次读取页面时,首先在散列 后备表中查询该页面是否已在缓冲区中,如果 在缓冲区则忽略磁盘访问。 ·缓冲区采用最少使用算法(LRU)管理可用空间, 当缓冲区需要自由空间时,最少使用的页面将 被移出.最频繁使用的数据被保存在缓冲区中。 ·为了提高效率,扩大内存的同时,有必要对访问 进行组织(表的磁盘空间分配),以使所需信息 都在同一个页面上 北京邮电次学软优貌 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.1.1.1磁盘访问是面向页面(数据块)的 • 数据库系统按照给定的磁盘页面(块)地址读取 磁盘页面,把数据放到内存的缓冲区(缓冲区 是在数据库系统初始化时候建立的)中。每读 入一个页面都在散列后备表中记录该页面在缓 冲区中位置,每一次读取页面时,首先在散列 后备表中查询该页面是否已在缓冲区中,如果 在缓冲区则忽略磁盘访问。 • 缓冲区采用最少使用算法(LRU)管理可用空间, 当缓冲区需要自由空间时,最少使用的页面将 被移出.最频繁使用的数据被保存在缓冲区中。 • 为了提高效率,扩大内存的同时,有必要对访问 进行组织(表的磁盘空间分配),以使所需信息 都在同一个页面上
《数据厍设计与开发》讲义 2.1.1.20 RACLE的磁盘资源分配 ·不同商业数据库系统的磁盘空间分配体系结构不 大相同.以下说明 ORACLE中的磁盘资源分配 CREATE TABLESPACE tsname DATAFILE dfnamel[, dfname 2.1 [DEFAULT STORAGE storage [ ONLINE|OFFLⅠNE]; 联机脱机(立刻能不能用) ·表空间是 ORACLE数据库基本的分配介质,所有请 求磁盘空间的表、索引和其它对象都在表空间中 有对应的磁盘空间。表空间对应于一个或多个操 作系统文件,可跨越磁盘设备。 所有数据库产品都有类似于表空间的结构来隔离 用户和操作系统,它代表一块可以使用的磁盘空 间。DB2称为表空间, INFORMIX称为数据库空间。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.1.1.2 ORACLE的磁盘资源分配 • 不同商业数据库系统的磁盘空间分配体系结构不 大相同.以下说明ORACLE中的磁盘资源分配。 • CREATE TABLESPACE tsname DATAFILE dfname1[,dfname2…] [DEFAULT STORAGE storage] [ONLINE|OFFLINE]; • 表空间是ORACLE数据库基本的分配介质,所有请 求磁盘空间的表、索引和其它对象都在表空间中 有对应的磁盘空间。表空间对应于一个或多个操 作系统文件,可跨越磁盘设备。 • 所有数据库产品都有类似于表空间的结构来隔离 用户和操作系统,它代表一块可以使用的磁盘空 间。DB2称为表空间,INFORMIX称为数据库空间。 联机|脱机(立刻能不能用)
《数据厍设计与开发》讲义 2.1.1.20 RACLE的磁盘资源分配 ORACLE数据库应包含多个表空间. SYSTEM表空间 是在 Create Database时自动创建的, SYSTEM表 空间包含数据字典,也可包含用户对象.但DBA应 创建几个表空间分别存储相应的对象 当 CREATE TABLE时可使用子句 TABLESPACE指定 表空间 ·创建表和索引时,其表空间分配是以数据段对象 和索引段对象标识的 创建数据段和索引段时,将从表空间中分配一个 初始的磁盘空间,称为初始区域(缺省10KB).当 写满该区域后,再分配一块区域,称为下一区域 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.1.1.2 ORACLE的磁盘资源分配 • ORACLE数据库应包含多个表空间.SYSTEM表空间 是在Create Database时自动创建的,SYSTEM表 空间包含数据字典,也可包含用户对象.但DBA应 创建几个表空间分别存储相应的对象. • 当CREATE TABLE时可使用子句TABLESPACE指定 表空间. • 创建表和索引时,其表空间分配是以数据段对象 和索引段对象标识的. • 创建数据段和索引段时,将从表空间中分配一个 初始的磁盘空间,称为初始区域(缺省10KB).当 写满该区域后,再分配一块区域,称为下一区域
《数据厍设计与开发》讲义 2.1.1.2 ORACLE的磁盘资源分配 数据库存储结构示意图 库 CAP数据库 表空间 tsname1 system 文件 drill dfile2 dfile3 表段 customers agents products orders ordindx DATA DATA DATADATA INDEX 区间 每一块区域都在一个文件上,一个段可以由来 自多个文件的区域组成.每一块区域大小都是 块大小的整数倍。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.1.1.2 ORACLE的磁盘资源分配 • 每一块区域都在一个文件上,一个段可以由来 自多个文件的区域组成.每一块区域大小都是 块大小的整数倍。 CAP数据库 tsname1 system dfile1 dfile2 dfile3 customers agents products orders ordindx … DATA DATA DATA DATA INDEX … 数据库存储结构示意图 库 表空间 文件 表 段 区间
《数据厍设计与开发》讲义 2.1.1.20 RACLE的磁盘资源分配 表空间由一个或多个在 DATAFILE子句中指定的 操作系统文件组成. dataFile dfname [SIzE n [K M]] [REUSE LAUTOEXTEND OFF AUTOEXTEND ON [NEXT n [K M] [MAXSIZE UNLINITED n [K M]]] L, dfname.] 没有SIZE且数据文件存在, ORACLE使用该文件 有SIZE, ORACLE创建一新文件(以前有则覆盖) 有SIZE且有 REUSE, ORACLE重用旧文件 auTOEXTEND子句决定可否自动扩展文件大小; NEXT定每次申请区域大小, MAXSIZE定最大尺寸 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 2.1.1.2 ORACLE的磁盘资源分配 • 表空间由一个或多个在DATAFILE子句中指定的 操作系统文件组成. DATAFILE dfname [SIZE n [K|M]][REUSE] [AUTOEXTEND OFF| AUTOEXTEND ON [NEXT n [K|M] [MAXSIZE UNLINITED|n [K|M]]]] [,dfname …] 没有SIZE且数据文件存在,ORACLE使用该文件; 有SIZE,ORACLE创建一新文件(以前有则覆盖); 有SIZE且有REUSE,ORACLE重用旧文件. AUTOEXTEND子句决定可否自动扩展文件大小; NEXT定每次申请区域大小,MAXSIZE定最大尺寸