‘壹’ 什么是数据库物理结构和存储方式的描述
Log File物理结构
log block结构分为日志头段、日志记录、日志尾部
Block Header,占用12字节
Data部分
Block tailer,占用4字节
Block Header
这个部分是每个Block的头部,主要记录的块的信息
Block Number,表示这是第几个block,占用4字节,是通过LSN计算得来的,占用4字节
Block data len,表示该block中有多少字节已经被使用了,占用2字节
First Rec offet,表示该block中作为第一个新的mtr开始的偏移量,占用2字节
Checkpoint number,表示该log block最后被写入时的检查点的值,占用4字节
‘贰’ 说明在创建数据库时如何合理规划数据库的物理存储结构和逻辑存储结构
Oracle数据库的逻辑结构和物理结构
Oracle 数据库的逻辑结构是由一些数据库对象组成,如数据库表空间、表、索引、段、视图、存储过程、触发器等。数据库的逻辑存储结构(表空间等)决定了数据库的物理空间是如何被使用的,数据库对象如表、索引等分布在各个表空间中。
Oracle 数据库的物理结构从操作系统一级查看,是由一个个的文件组成,从物理上可划分为:数据文件、日志文件、控制文件和参数文件。数据文件中存放了所有的数据信息;日志文件存放数据库运行期间产生的日志信息,它被重复覆盖使用,若不采用归档方式的话,已被覆盖的日志信息将无法恢复;控制文件记录了整个数据库的关键结构信息,它若被破坏,整个数据库将无法工作和恢复;参数文件中设置了很多Oracle 数据库的配置参数,当数据库启动时,会读取这些信息。
逻辑结构的优化
逻辑结构优化用通俗的话来说就是通过增加、减少或调整逻辑结构来提高应用的效率,下面通过对基本表的设计及索引、聚簇的讨论来分析ORACLE逻辑结构的优化。
1、基本表扩展
数据库性能包括存储空间需求量的大小和查询响应时间的长短两个方面。为了优化数据库性能,需要对数据库中的表进行规范化。一般来说,逻辑数据库设计满足第三范式的表结构容易维护且基本满足实际应用的要求。所以,实际应用中一般都按照第三范式的标准进行规范化,从而保证了数据库的一致性和完整性,设计人员往往会设计过多的表间关联,以尽可能地降低数据冗余。但在实际应用中这种做法有时不利于系统运行性能的优化:如过程从多表获取数据时引发大量的连接操作,在需要部分数据时要扫描整个表等,这都消耗了磁盘的I/O 和CPU 时间。
为解决这一问题,在设计表时应同时考虑对某些表进行反规范化,方法有以下几种:一是分割表。分割表可分为水平分割表和垂直分割表两种:水平分割是按照行将一个表分割为多个表,这可以提高每个表的查询速度,但查询、更新时要选择不同的表,统计时要汇总多个表,因此应用程序会更复杂。垂直分割是对于一个列很多的表,若某些列的访问频率远远高于其它列,就可以将主键和这些列作为一个表,将主键和其它列作为另外一个表。通过减少列的宽度,增加了每个数据页的行数,一次I/O就可以扫描更多的行,从而提高了访问每一个表的速度。但是由于造成了多表连接,所以应该在同时查询或更新不同分割表中的列的情况比较少的情况下使用。二是保留冗余列。当两个或多个表在查询中经常需要连接时,可以在其中一个表上增加若干冗余的列,以避免表之间的连接过于频繁,一般在冗余列的数据不经常变动的情况下使用。三是增加派生列。派生列是由表中的其它多个列的计算所得,增加派生列可以减少统计运算,在数据汇总时可以大大缩短运算时间。
因此,在数据库的设计中,数据应当按两种类别进行组织:频繁访问的数据和频繁修改的数据。对于频繁访问但是不频繁修改的数据,内部设计应当物理不规范化。对于频繁修改但并不频繁访问的数据,内部设计应当物理规范化。有时还需将规范化的表作为逻辑数据库设计的基础,然后再根据整个应用系统的需要,物理地非规范化数据。规范与反规范都是建立在实际的操作基础之上的约束,脱离了实际两者都没有意义。只有把两者合理地结合在一起,才能相互补充,发挥各自的优点。
2、索引和聚簇
创建索引是提高检索效率最有效的方法之一,索引把表中的逻辑值映射到安全的RowID,能快速定位数据的物理地址,可以大大加快数据库的查询速度,一个建有合理索引的数据库应用系统可能比一个没有建立索引的数据库应用系统效率高几十倍,但并不是索引越多越好,在那些经常需要修改的数据列上建立索引,将导致索引B*树的不断重组,造成系统性能的下降和存储空间的浪费。对于一个大型表建立的索引,有时并不能改善数据查询速度,反而会影响整个数据库的性能。这主要是和SGA的数据管理方式有关,Oracle在进行数据块高速缓存管理时,索引数据比普通数据具有更高的驻留权限,在进行空间竞争时,Oracle会先移出普通数据,对建有索引的大型表进行数据查询时,索引数据可能会用完所有的数据块缓存空间,Oracle不得不频繁地进行磁盘读写来获取数据,所以,在对一个大型表进行分区之后,可以根据相应的分区建立分区索引。
Oracle提供了另一种方法来提高查询速度,就是聚簇(Cluster)。所谓聚簇,简单地说就是把几个表放在一起,按一定公共属性混合存放。聚簇根据共同码值将多个表的数据存储在同一个Oracle块中,这时检索一组Oracle块就同时得到两个表的数据,这样就可以减少需要存储的Oracle块,从而提高应用程序的性能。
对于逻辑结构的优化,还应将表数据和索引数据分开表空间存储,分别使用独立的表空间。因为如果将表数据和索引数据放在一起,表数据的I/O操作和索引的I/O操作将产生影响系统性能的I/O竞争,降低系统的响应效率。将表数据和索引数据存放在不同的表空间中,并在物理层面将这两个表空间的数据文件放在不同的物理磁盘上,就可以避免这种竞争了。
物理结构的优化
数据库的数据最终是存储在物理磁盘上的,对数据进行访问就是对这些物理磁盘进行读写,因此对于这些物理存储的优化是系统优化的一个重要部分。对于物理存储结构优化,主要是合理地分配逻辑结构的物理存储地址,这样虽不能减少对物理存储的读写次数,但却可以使这些读写尽量并行,减少磁盘读写竞争,从而提高效率,也可以通过对物理存储进行精密的计算减少不必要的物理存储结构扩充,从而提高系统利用率。
1、磁盘读写并行优化
对于数据库的物理读写,Oracle系统本身会进行尽可能的并行优化,例如在一个最简单的表检索操作中,如果表结构和检索域上的索引不在一个物理结构上,那么在检索的过程中,对索引的检索和对表的检索就是并行进行的。
2、操作并行优化
操作并行的优化是基于操作语句的统计结果,首先是统计各个表的访问频率,表之间的连接频率,根据这些数据按如下原则分配表空间和物理磁盘,减少系统进程和用户进程的磁盘I/O竞争;把需要连接的表格在表空间/物理磁盘上分开;把高频访问的表格在表空间/物理磁盘上分开;把经常需要进行检索的表格的表结构和索引在表空间/物理磁盘上分开。
3、减少存储结构扩展
如果应用系统的数据库比较脆弱,并在不断地增长或缩小,这样的系统在非动态变化周期内效率合理,但是当在动态变化周期内的时候,性能却很差,这是由于Oracle的动态扩展造成的。在动态扩张的过程中,Oracle必须根据存储的要求,在创建行、行变化获取缺省值时,扩展和分配新的存储空间,而且表格的扩展往往并不是事情的终结,还可能导致数据文件、表空间的增长,这些扩展会导致在线系统反应缓慢。对于这样的系统,最好的办法就是在建立的时候预先分配足够的大小和合适的增长幅度。在一个对象建立的时候要根据应用充分地计算他们的大小,然后再根据这些数据来定义对象Initial、Next和Minextents的值,使数据库在物理存储上和动态增长次数上达到一个比较好的平衡点,使这些对象既不经常发生增长,也不过多地占用数据库。
‘叁’ 请问Oracle的数据库体系的物理结构是怎样的
物理结构,即Oracle数据库使用的操作系统文件结构。
对于数据库物理结构文件,不同的oracle版本,不同的操作系统平台上有不同的存储目录结构.
数据库的物理结构文件按其作用可以分为三类:
数据文件
日志文件
控制文件
一、数据文件
数据文件用来存储数据库的数据,如表、索引等。读取数据时,系统首先从数据库文件中读取数据,并存储到SGA的数据缓冲区中。
二、重做日志文件
重做日志文件记录对数据库的所有修改信息。它是三类文件中最复杂的一类文件,也是保证数据库安全与数据库备份与恢复有直接关系的文件。
三、控制文件
控制文件是一个二进制文件,用来描述数据库的物理结构,一个数据库只需要一个控制文件,控制文件的内容包括:
数据库名及数据库唯一标识
数据文件和日志文件标识
数据库恢复所需的同步信息,即检查点号
.
Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。
‘肆’ Oracle数据库的物理结构和逻辑结构分别是怎么样的
1.Oracle数据库的物理结构Oracle物理结构包含了数据文件、重做日志文件、控制文件、参数文件、密码文件、归档日志文件、备份文件、告警日志文件、跟踪文件等等;其中数据文件、控制文件、重做日志文件和参数文件是必须的,其他文件可选。
2.Oracle数据库的逻辑结构
Oracle数据库的逻辑结构是一种层次结构,主要由表空间、段、区和数据块等概念组成。逻辑结构是面向用户的,用户使用Oracle开发应用程序使
用的就是逻辑结构。数据库存储层次结构及其构成关系,结构对象也从数据块到表空间形成了不同层次的粒度关系。
‘伍’ 数据库物理结构设计中确定数据库的物理结构怎么写
一般开发一个数据库,要进行设计.主要步骤有需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行与维护.物理结构设计就是其中的一步.
数据库的物理结构设计是对已经确定的逻辑数据结构,利用DBMS(数据库管理系统)所提供的方法、技术,以较优的数据存储结构、数据存取路径、合理的数据存放位置以及存储分配,设计出一个高效的、可以实现的物理数据结构.通俗一点说,就是对已经设计好了的逻辑结构,设计出相应的且比较优化的物理结构,设计出的物理结构可以数据存储,该结构中要有实现数据存储、数据存取路径、数据存放位置、存储分配等几个模块.
‘陆’ 数据库设计中物理结构设计怎么写
数据库的物理结构设计指的是根据数据库的逻辑结构来选定RDBMS(如Oracle、Sybase等),并设计和实施数据库的存储结构、存取方式等。 确定数据库的物理结构包含下面四方面的内容: 1、确定数据的存储结构; 2、设计数据的存取路径; 3、确定数据...
‘柒’ 数据库的物理存储结构和数据的物理物理结构
是一样的。这个不用太过纠结。数据库和数据结构本身就不是两个独立的学科。数据库书数据结构的具体应用。数据结构书里一开始用的例子就是数据库建的一个表。简单的说,数据结构是建立数据库的方法。
所以两者是相通的
‘捌’ 数据库表的物理结构是什么
Log File物理结构
log block结构分为日志头段、日志记录、日志尾部
Block Header,占用12字节
Data部分
Block tailer,占用4字节
Block Header
这个部分是每个Block的头部,主要记录的块的信息
Block Number,表示这是第几个block,占用4字节,是通过LSN计算得来的,占用4字节
Block data len,表示该block中有多少字节已经被使用了,占用2字节
First Rec offet,表示该block中作为第一个新的mtr开始的偏移量,占用2字节
Checkpoint number,表示该log block最后被写入时的检查点的值,占用4字节
‘玖’ 数据库物理结构设计怎么写
数据库逻辑甫弗颠煌郯号奠铜订扩设计是将概念设计中的ER图,抽象成关系模型,并满足第三范式如
学生(学号,姓名,性别)并在主键上用下划线标识,
数据库物理设计是将逻辑设计中的关系设计成表,并将你、表结构设计好