Oracle大型数据库课后简答题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简述表空间和数据文件之间的关系。

答:每一个数据文件都必须隶属于某个表空间,但一个表空间可以由多个数据文件组合而成。

tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。

概述Oracle数据库体系的物理结构。

答:Oracle数据库体系的物理结构是指数据库上实际的、可以从操作系统看到的文件,可以利用操作系统指令进行管理作业,物理存储结构组成文件如下所列:数据文件(Data File):实际存储数据的地方;在线重做日志文件(Online Redo Log File):记录曾经发生过的动作,当数据库受损时,可利用在线重做日志文件进行必要的恢复动作;控制文件(Control File):记录数据库必要的信息,以验证及维护数据库的完整性的信息;初始化参数文件(Parameter File):当数据库开启时,用来架构出Oracle内存结构的文件;密码文件(Password File):验证哪些帐号能开启、关闭Oracle数据库。

简要介绍表空间、段、区和数据块之间的关系。

答:Oracle的逻辑存储单元从小到大依次为:数据块、区、段和表空间。

表空间又由许多段组成,段由多个区组成,区又由多个数据块组成。

简述Oracle实例系统中各后台进程的作用。

答:(1)DBWRn(Database Writer)的主要工作是将数据缓冲区中被改过的数据写回到数据文件里。

(2)LGWR(Log Writer)主要的工作是将Redo Log Buffer里的记录写到在线重做日志文件中。

(3)SMON(S ystem Monitor)有两个主要的功能。

<1>执行Instance Recovery:当数据库不正常中断后再度开启时,SMON会自动执行Instance Recovery,也就是会将在线重做日志里面的数据回写到数据文件里面。

<2>收集空间:将表空间内相邻的空间进行合并的动作。

(4)PMON(Process Monitor):监视数据库的用户进程。

若用户的进程不当而被中断,PMON 会负责清理任何遗留下来的资源,并释放失效的进程所保留的锁,然后从Process List中移除,以终止Process ID。

(5)CKPT(Checkpoint)主要负责更新数据库的最新状态,CKPT当Checkpoint完成时,会更新控制文件和数据库文件的文件头。

(6)ARCn(Archiver).当Oracle数据库设定为ARCHIVELOG Mode时,ARCn 会在Log Switch 时自动将Redo Log File复制一份到指定的目录下称为归档日志文件(Archivedredologs)。

共享和专用操作模式的工作过程有什么区别?在专用服务器操作模式中,Oracle为每个连接到数据库实例的用户进程启动一个专门的服务进程,其用户进程数与服务器进程数的比例为1:1因为在用户进程空闲期间,对应的服务器进程始终存在,数据库的效率比较低。

共享服务器操作模式可以实现只运行少量的服务器进程,由少量的服务器进程为大量用户提供服务。

在此模式下,数据库实例启动的同时也将启动一定数量的服务进程,在调度进程Dnnn的调度下位任意数量的用户进程提供服务。

简述oracle的初始化参数文件?
答:在传统上,Oracle在启动实例时将读取本地的一个文本文件,并利用从中获取初始化参数对实例和数据库进行设置,这个文本文件称为初始化参数文件(简称为PFILE)。

简述如何修改初始化参数文件?
答:如果要对初始化参数进行修改,必须先关闭数据库,然后在初始化参数文件中进行编辑,再重新启动数据库使修改生效。

简述启动数据库时的状态。

答:开启数据库分成4种状态。

SHUTDOWN状态:数据库是关闭的。

NOMOUNT状态:Instance被开启的状态,会去读取初始化参数文件。

MOUNT状态:会去读取控制文件。

数据库被装载。

OPEN状态:读取数据文件、在线重做日志文件等,数据库开启。

简述数据库的各种关闭方式。

答:(1)正常关闭(SHUTDOWN NORMAL):不允许新的USER连进来。

(2)事务关闭(SHUTDOWN TRANSACTIONAL):等待所有未提交的事务完成后再关闭数据库(3)立即关闭(SHUTDOWN IMMEDIA TE):任何未提交的事务均被回退。

(4)终止关闭(SHUTDOWN ABORT):立即终止当前正在执行的SQL语句,任何未提交的事务均不被回退。

简述Oracle数据库的特殊状态?
答:静默状态:只有具有管理员权限的用户(SYS、SYSTEM)才能在数据库中执行查询、更新操作和运行PL/SQL程序挂起状态:数据库所有的物理文件(控制文件、数据文件和重做日志文件)的I/O操作都被暂停,这样能够保证数据库在没有任何I/O 操作的情况下进行物理备份。

利用这两种数据库状态,数据库管理员可以完成一些特殊的管理和维护操作。

如何设置SQL*Plus的运行环境?
答:通过设置环境变量PAUSE为ON来控制SQL*Plus在显示完一页后暂停显示,直到按回车键后才继续显示下一页数据;使用命令SET PAGESIZE 来改变默认一页显示的大小;通过设置LINESIZE可以修改系统默认的每行打印80个字符;用NUMFORMAT设置超过10字符的处理值;设置TIMING为ON来显示命令所消耗的系统时间。

如何使用SQL*Plus来设置缓存区?
答:设置记事本作为用户的编辑器,就可以使用EDIT命令来执行编辑操作了,还可使用SA VE命令把当前SQL缓存区中的内容保存到指定的文件中,用CLEAR BUFFER命令清除SQL*Plus缓存区中的内容,若要获取通过SA VE保存的内容就要使用GET命令。

如何使用SQL*Plus帮助命令获知某命令的解释信息
在不知道具体命令的时候,先用help index 查找出所有的命令,然后使用help [topic] 其中topic为该命令进行查询。

比较内连接和外连接?
答:在内连接的检索结果中,都是满足连接条件的数据;外连接的特点是某些不满足条件的数据也可以出现在检索结果中。

外连接的语法和内连接的语法规则相似,区别在于外连接中用LEFT OUTER JION、RIGHT OUTER JOIN或FULL OUTER JOIN 关键字,而不使用INNER JOIN关键字。

其中OUTER是可选的。

比较子查询和连接查询
连接查询效率高,但是会导致重复数据。

如果确定连接查询不会重复,那么用连接查询会比较好。

子查询效率低,但是可以避免重复数据。

如果要到子查询,尽量使用索引提高效率。

有些情况必须避免重复数据,那就只能用子查询。

但是具体问题还是要具体分析。

如果主表很小,子表很大,并且有索引,是可以使用子查询的,如果主表很大,那就尽量避免子查询了。

显示游标的使用过程
CURSORcursor_name [return ruturn_type] ISselect_statement;打开游标:OPEN cursor_name;提取游标:FETCH cursor_name INTO
variables_list; 关闭游标:CLOSE CURSOR_NAME;
使用带参数显式游标的4个步骤是
1.声明游标:CURSOR cursor_name [(parameter[,parameter]…)] [return ruturn_type]
IS select_statement; 2.打开游标:OPEN cursor_name [(parameter[,parameter]…)] ;3.提取游标:FETCH cursor_name INTO variables_list; 4.关闭游标:CLOSE CURSOR_NAME;
描述游标的各个属性?
答:%FOUND布尔型属性,如果sql语句至少影响到一行数据,则该属性为true,否则为
false;%NOTFOUND布尔型属性,与%FOUND相反;%ISOPEN布尔型属性,当游标已经打开时返回true,游标关闭时则为false;%ROWCOUNT数字型属性,返回受sql语句影响的行数。

如何处理用户自定义异常?
答:用户自定义异常是通过显示使用RAISE语句来引发的,当引发一个异常时,控制就转到EXCEPTION异常处理部分执行异常处理语句。

步骤如下:定义异常处理;触发异常处理;处理异常。

如何处理非预定义异常?
答:在为非预定义异常命名时,使用语句PRAGMA EXCEPTION_INIT为错误号关联一个名称,随后就可以像对待系统预定义异常一样进行处理。

说明使用游标FOR循环如何对游标进行处理?答:游标FOR循环是显式游标的一种快捷使用方式,它使用FOR循环依次读取结果集中的数据。

当FOR循环开始时,游标会自动打开(不需要使用OPEN方法),每循环一次系统自动读取游标当前行的数据(不需要使用FETCH),当退出FOR 循环时,游标被自动关闭(不需要使用CLOSE)select语句的基本作用是什么
SELECT 语句可以从数据库中按用户要求检索数据,并将查询结果以表格的形式返回。

1.检索单表数据,2.过滤数据,3.排序数据,4.多表检索,
简述正规表达式
Oracle 10g正则表达式提高了SQL灵活性。

有效的解决了数据有效性,重复词的辨认, 无关的空白检测,或者分解多个正则组成的字符串等问题。

Oracle 10g支持正则表达式的四个新函数分别是:REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、和REGEXP_REPLACE。

它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。

简述标量变量和复合变量之间的区别?
答:如果变量只能存储一个单独的值,则该变量称为标量变量。

如果变量可以存储多个值,则该变量称为复合类型的变量。

标量变量是本数据类型,而复合变量是自定义记录类型,用户可以根据需要定义其结构,也可以使用由系统自动决定的变量的结构。

简述过程和函数的区别。

答:过程被存储在数据库中,并且存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用。

函数必须有返回值,并且可以作为一个表达式的一部分,函数不能作为一个完整的语句使用,函数返回值的数据类型在创建函数时定义。

简述调用过程时传递参数值的三种方式。

答:IN参数,由调用者传入,并且只能够被存储过程读取,它可以接收一个值,但是不能在过程中修改这个值;OUT参数,由存储过程传入值,然后由用户接收参数值,它在调用过程时为空,在过程的执行中将为这参数指定一个值,并在执行结束后返回;IN OUT参数,同时具有IN和OUT参数的特性。

举例说明什么是重载?
答:PL/SQL允许重载,也就是在程序包中的过程和函数可以具有相同的名称,但只需它们的特性有所区别。

简述Oracle数据库中触发器的类型及其触发条件DDL 触发器在模式中执行 DDL 语句时执行
数据库级触发器在发生打开、关闭、登录和退出数据库等系统事件时执行DML 触发器在对表或视图执行DML语句时执行(insert、update、delete)
语句级触发器无论受影响的行数是多少,都只执行一次.默认方式行级触发器对DML语句修改的每个行执行一次。

For each row INSTEAD OF 触发器用于用户不能直接使用 DML 语句修改的视图答:行级触发器;语句级触发器;INSTEAD OF 触发器;系统事件触发器;用户事件触发器。

简述替代触发器的作用
Instead of 触发器也称替代触发器,定义instead of 触发器后,用户对表的DML操作将不再被执行,而是执行触发器主体中的操作。

Instead of 触发器是定义在视图上的,而不是在表上,它是用来替换所使用实际语句的触发器。

因为一个视图通常由多个基本表连接而成,这种视图不允许进行instead、update和delete 这样的DML操作。

当为视图编写instead of 触发器后,用户对视图的DML操作就不会被执行,而是执行触发器中的PL/SQL语句块,这样就可以通过在instead of 触发器中编写适当的代码对构成视图的各个表进行操作。

介绍创建表时常用的数据类型。

答:字符数据类型,数值数据类型,日期时间数据类型,LOB数据类型,ROWID数据类型。

简要介绍Oracle数据表的特性
当用户在Oracle中建立模式对象(如表)时,Oracle 允许用户规定该对象如何使用磁盘上的存储空间。

如果仅为表指定了表空间,而没有设置存储参数,它将自动采用所属表空间的默认存储参数设置。

然而表空间的默认存储参数设置并不一定对表空间中的每一个表都适合,因此,当表所需的存储参数与表空间的默认存储参数不同时,需要在创建表时显式指定存储参数以替换表空间的默认存储设置。

简要介绍oracle数据表的各类约束及作用。

答:非空约束,就是限制必须为某个列提供值;主键约束,用于惟一地确定表中的每一行数据;惟一性约束,强调所在的列不允许有相同的值;外键约束,外键约束可以使两个表进行关联;检查约束;默认约束
大对象数据类型?
CLOB类型;字符LOB类型可以用来存储各种字符数据,主要用于存储英语字符;
NCLOB类型,国际语言字符LOB类型,使用多字节存储各种语言的字符,主要用于存储非英语字符;
BLOB类型,二进制LOB类型主要用于存储二进制数据;
BFILE类型,二进制FILE类型,用于存储指向数据库系统外面的文件系统中文件的指针。

如何使用大对象数据类型?
在创建大对象表时,可以根据实际情况直接使用大对象类型定义某些列。

大对象定义完成之后,应该使用初始化函数初始化大对象列。

对应CLOB或NCLOB列,可以使用EMPTY_CLOB()函数进行初始化。

对于BLOB列,应该使用EMPTY_BLOB()函数进行初始化。

可以在INSERT语句中使用这些
初始化函数,初始化完成后,可以使用UPDA TE 语句向大对象列加入数据。

简述B树索引的组织结构。

答:B树索引是以B树结构组织并存放索引数据的。

默认情况下,B树索引中的数据是以升序方式排列的。

B树索引由根块、分支枝和叶块3部分组成,其中主要数据都集中在叶子结点。

简述位图索引的组织结构。

答:以位图值标识索引数据,主要用于在DSS系统中执行数据统计、数据汇总等操作。

简述反向键索引的工作原理。

答:Oracle会自动为表的主键列建立索引,这个默认的索引是普通的B-Tree索引。

对于主键值是按顺序(递增或递减)加入的情况,默认的B- Tree索引并不理想。

这是因为如果索引列的值具有严格顺序时,随着数据行的插入,索引树的层级增长很快。

搜索索引发生的I/O读写次数和索引树的层级数成正比,也就是说,一棵具有5个层级的B-Tree索引,在最终读取到索引数据时最多可能发生多达5次I/O操作。

因而,减少索引的层级数是索引性能调整的一个重要方法。

简述索引组织表与普通表之间的区别。

答:对普通表而言,表、索引数据分别存放在表段、索引段中,要占用更多空间;而对于索引表而言,主键列和非主键列的数据都存放在主键索引中。

索引组织表存储结构采用索引(B-树结构)来组织表的数据的组织方式,将记录按照某个主键列进行排序后,再以B树的组织方式存放在主键索引段中。

标准表存储结构采用堆组织方式,将记录无序地存放在数据段中。

简述索引组织表的溢出存储。

答:增加溢出段,建立索引表时,既可以指定OVERFLOW关键字建立溢出段,也可以不指定OVERFLOW关键字;修改溢出段,修改索引表时,OVERFLOW选项之前的所有选项只适用于索引段,而OVERFLOW之后的选项只适用于溢出段。

外部表的局限性
答:在外部表上不能执行DML操作,也不能在外部表上建立索引。

简述什么是簇,以及什么是散列簇
答:簇是一种用于存储数据表中数据的方法,实际上是一组表,由一组共享相同数据块的多个表组成;散列簇使用散列函数定位行的位置。

通过散列簇,可以将静态的数据均匀地分布到数据块中。

举例说明with check option的作用
答:该选项用于在视图上定义check约束。

定义了check约束后,如果在视图上执行insert和update 操作,则要求新数据必须符合视图子查询的约束。

介绍本地化管理方式表空间中部高对段和盘区的管理方式
不再使用数据字典去寻找空闲空间,而使用位图的方法使用表空间中的数据块,从而避免使用SQL 语言引起系统性能的下降。

什么是大文件表空间
一个大文件表空间对应一个单一的数据文件或临时文件,但是文件可以达到4G个数据块大小。

简述数据泵导出工具和传统导出工具之间的区别。

数据泵导出是Oracle 10g新增加的功能,它使用工具EXPDP将数据库对象的元数据(对象结构)或数据导出到转储文件中。

数据泵导出包括导出表、导出模式、导出表空间和导出全数据库4中模式。

需要注意,EXPDP工具只能将导出的转储文件在的OS目录。

因此。

使用EXPDP工具时,必须首先建立DIRECTORY对象,并且需要为数据库用户授予使用DIRECTORY对象的权限。

简述不完全恢复与完全恢复的区别?
根据数据库在恢复后的运行状态不同,Oracle数据库恢复可以分为完全数据库恢复和不完全数据库恢复。

完全数据库恢复可以使数据库恢复到出现故障的时刻,即当前状态;不完全数据库恢复使数据库恢复到出现故障的前一时刻,即过去某一时刻的数据库同步状态。

简述修改建立复合控制文件的步骤
1、手动修改初始化参数CONTROL-FILES
2、关闭数据库
3、复制控制文件
4、启动数据库
补充:存储过程的优点:模块化将程序分解为逻辑模块 ,可重用性 ,可以被任意数目的程序调用 ,可维护性 ,简化维护操作, 安全性, 通过设置权限,使数据更安全触发器的功能:自动生成数据 ,强制复杂的完整性约束条件 ,提供审计和日志记录 ,启用复杂的业务逻辑。

相关文档
最新文档