资源描述
Oracle 10g 数据库管理应用与开发 课后习题答案(填空与选择题)填空题第二章1. 用户对数据库的操作如果产生日志信息、则该日志信息首先被存储在日志缓冲区中,随后由LGWR进程保存到日志文件。2. 在Oracle的逻辑存储结构中,根据存储数据的类型,可以将段分为数据段、索引段、回退段、LOB段和临时段。3. 在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务器进程。当一个用户运行应用程序,如PRO*C程序或一个Oracle工具(如SQL*Plus),系统将为用户运行的应用程序建立一个用户进程。第三章1. 标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。2. 在需要滤除查询结果中重复的行时,必须使用关键字Distinct;在需要返回查询结果中的所有行时,可以使用关键字ALL。第四章1. 创建一个UPDATE语句来修改ARTISTS表中的数据,并且把每一行的T_ID值都改成15,应该使用的SQL语句是update artists set t_id=15;。2. 使用describe命令可以显示表的结构信息。3. 使用SQL*Plus的get命令可以将文件检索到缓冲区,并且不执行。4. 当设置了多个列的显示属性后,如果清除设置的显示属性,可以使用命令clear column,而当要清除某列具体的显示属性时,需要使用命令OFF/column 列名 clear。5. 使用SAVE命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Start命令运行该文件。6. 要设置SQL*Plus显示数字时的格式可以使用NumFormat命令,而要设置某个数字列的显示格式要使用Column命令。第五章1. ROWID实际上保存的是记录的物理地址,2. 在STORAGE子句中可以设置6个存储参数。其中,Initial指定为表中的数据分配的第一个盘区的大小;Next指定为存储表中的数据分配的第二个盘区大小;Pctincrease指定从第二个盘区之后,每个盘区相对于上一个盘区的增长百分比;Minextents指定允许为表中的数据所分配的最小盘区数目;Maxextents指定允许为表中的数据所分配的最大盘区数目。3. 通过数据块空间管理参数可以控制数据块中空闲空间的使用方法,其中Pctfree用于控制数据块的更新预留的空间,而Pctused用于控制数据块在删除时释放空间的门槛。4. 为Student表手动分配存储空间,并且大小由NEXT参数设置,则应使用的语句为Alter table Student allocate extent; ;如果为Student表手动分配了一个大小为128KB的新盘区,则应使用的语句为Alter table Student allocate extent(size 128k); 。5. 填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID的主键约束。Add constraint PK_CLASS_ID PRIMARY KEY(ID)6. 假设已经创建了CHAINED_ROWS表,填写下面的语句,以便对“业务员信息”表进行链接记录分析:ANALYZE TABLE 业务员信息List chained rows into chained_rows第六章。1. 自然连接为具有相同名称的列自动进行记录匹配,它不必指定任何同等连接条件。2. 集合运算符UNION实现了集合的并运算,操作INTERSECT实现了对集合的交运算,而MINUS则实现了减运算。3. 使用关键字连接子查询时,EXISTS关键只注重子查询是否返回行,第七章1. PL/SQL程序块主要包含3个主要部分:声明部分、可执行部分和异常处理部分。2. 自定义异常必须使用raise语句引发。3. 查看操作在数据表中所影响的行数,可通过游标的%RowCount属性实现。 第八章第九章1. 为了建立外部表,首先需要指示数据文件在操作系统上的位置。现在假设在操作系统的F:DATAFILE文件夹中存有一个数据文件,使用create directory exterior_data as F:DATAFILE;语句使Oracle可以访问数据文件。2. 在使用CREATE TABLE 语句创建索引组织表时,必须使用organization index子句指示创建的表为索引组织表,并且为索引组织表指定主键。3. PCTTHRESHOLD指定一个数据块的百分比,当一行中的数据占用空间大于这个百分比时,该行将被分隔到两个位置存储:主键列被存储在基本索引段中,所有其他列被存储在溢出段中。4. Oracle中的临时表可以分为事务级临时表和会话级临时表,创建事务级别的临时表,需要使用on commit delete rows子句;创建一个会话级别的临时表,则需要使用on commit preserver rows子句。5. 在创建对象类型时,用户不必特意创建构造函数,它由系统隐式创建,名称与对象类型的名称相同,并且它会接收对象类型的所有属性作为它的参数。6. 如果用户想要对对象类型的实例进行比较排序,则需要使用映射方法Map,它最重要的一个特点是:当在WHERE或ORDER BY 等比较关系子句中使用对象时会被间接地使用。7. 有两种方法向对象表添加数据:一种是像关系表一样在INSERT的VALUES子句中,为对象的每个属性提供值,隐式地创建对象类型实例,向对象表添加数据;另一种方式是显式地创建对象实例,然后再将它添加到对象表。8. Oracle数据库提供对表或索引的分区方法有5种:范围分区、散列分区、列表分区、组合范围散列分区和组合范围列表分区。9. 簇是一种用于存储数据表中数据的方法。簇实际是一组表,由一组共享相同数据块的多个表组成。第十章1. B树索引可以是唯一的或者不唯一的,唯一的B树索引可以保证索引列上不会有重复的值。2. 在为表中某个列定义PRIMART KEY约束PK_ID后,则系统默认创建的索引名为PK_ID。3. 如果表中某列的基数比较低,则应该在该列上创建位图索引。4. 如果要获知索引的使用情况,可以通过查询V$OBJECT_USAGE视图;而要获知索引的当前状态,可以查询Index_Stats视图。第十一章1. 在不为视图指定列名的情况下,视图列的名称将使用表列的名称。2. 视图与数据库中的表非常相似,用户也可以在视图进行INSERT、UPDATE、和DELETE操作。通过视图修改数据时,实际上是在修改基本表中的数据;相应地,改变基本表中的数据也会反映到该表产生的视图中。3. 视图是否可以更新,这取决于定义视图的SELECT语句,通常情况下,该语句越复杂,创建的视图可以更新的可能性也就越小。4. 下面的语句创建了一个序列对象,该序列对象的开始数为2,每次递增2,当大于1000后,序列值重新返回到2.在空白处填写适当的代码,完成上述要求。Create sequence seg_testStart with 2Increment by 2Maxvalue 1000Cycle;第十二章1. 假设有一个表TEST,它仅包含一个字段DATA。现在创建一个触发器,实现将添加的数据变大写。在下面的空白处填写适当的语句,使之可以正常运行。Create or replace trigger test_triggerAfter insert on TEST for each rowBegin :new.data:=upper(:new.data);End;2. BEFORE和AFTER指定了触发器的触发时间。当为一个表配置了约束时,它们将会特别有用,BEFORE可以规定Oracle在应用约束前调用触发器,而AFTER规定在应用约束后调用触发器。3. 假设有一个名为ACTION_TYPE的表,它记录了对STUDENT表的操作。在空白处填写适当的代码,完成上述功能。Create or replace trigger biud_student_triggerBefore insert or update or delete on studentDeclare Action action_type.type%type;Begin if inserting then action:=INSERT; elsif updating then action:=UPDATE; elsif deleting then action:=DELETE; end if; insert into action_type value(user,action);End;第十三章1.在设置事务隔离层时,需要使用关键字set transaction。3.可以用SET CONSTRAINT constraint_name DEFERRED语句,启用某个约束的延期应用,而使用SET CONSTRAINT ALL DEFERRED语句可以设置本事务中所有约束的延期应用;语句SET CONSTRAINT ALL IMMEDIATE可以设置约束的应用。4.在众多的事务控制语句中,用来撤销事务的操作的语句为ROLLBACK,用于持久化事务对数据库操作的语句是COMMIT。5.当Oracle检测到死锁后,它会选择一个事务退出。选择退出事务的原则是执行修改数目最小的事务。6.锁粒度与数据库系统的并发度和并发控制的开销密切相关。锁粒度越大,数据库中所能够使用的资源也就越少,并发度也就越小,系统开销也就越小。7.当对某个表加SRX锁时,则表中行的锁类型为DML锁。第十四章1. 如果要获取数据库中创建的配置文件的信息,可以通过查询数据字典视图DBA_profiles。2. 在Oracle数据库中将权限分为两类,即系统权限和对象权限。系统权限是指在系统级控制数据库的存取和使用机制,对象权限是指在模式对象上控制存取和使用的机制。3. 角色是具有名称的一组相关权限的组合。4. 连接到数据库的最低系统预定义角色是connect。5. 在用户连接到数据库后,可以查询数据字典role_sys_privs了解用户所具有的系统权限。第十五章1. 表空间的管理类型可以分为数据字典管理和本地化管理。2. 在Oracle的早期版本中,对撤销信息的管理采用手动管理撤销,从Oracle 9i后采用自动撤销管理方式管理撤销信息。3. 一个表空间具有离线(OFFLINE)、在线(ONLINE)、只读(READ ONLY)、读写(READWRITE)状态。4. 在创建UNDO表空间时,所使用的表空间管理方式为本地化管理,并且盘区的管理方式只允许使用AutoAllOcate方式。5. 在创建本地化管理临时表空间时,不得指定盘区的管理方式为AutoAllOcate,临时表空间的盘区管理统一使用uniform方式。选择题第二章2. 在全局存储区SGA中,哪部分内存区域是循环使用的? B A. 数据缓冲区 B.日志缓冲区 C.共享池 D.大池3. 解析后的SQL语句在SGA的哪个区域中进行缓存? C A. 数据缓冲区 B.日志缓冲区 C.共享池 D.大池4. 如果一个服务进程非正常终止,Oracle系统将使用下列哪一个进程来释放它所占用的资源? D A. DBWR B.LGWR C.SMON D.PMON5. 下列哪一个进程和数据库部件可以保证用户对数据库所做的修改在没有保存的情况下,不会发生丢失修改数据? C A. DBWR和数据文件 B.LGWR和日志文件组 C.CKPT和控制文件 D.ARCH和归档日志文件第三章5. HAVING子句的作用是 B A. 查询结果的分组条件 B.组的筛选条件 C.限定返回的行的判断条件 D.对结果集进行排序8. 当使用三角函数COS求余弦时,应以 B 为单位传递参数。A. 角度 B.弧度 C.角度和弧度均可 D.上述都不对第四章7. 以下的哪个命令可以将SQL命令保存到文件中 A 。而哪个命令可以将SQL命令的运行结果保存到文件中 B 。A. SAVE B.SPOOL C.GET D.INPUT第五章4. 下列哪一项不是伪列ROWID的作用? D A. 保存记录的物理地址 B.快速查询指定的记录 C.标识各条记录 D.保存记录的头信息7. 为了减少表中的链接记录和迁移记录,应当增大表的哪一个存储参数? A A.PCTFREE B.PCTUSED C.MAXEXTENTS D.PCTINCREASE第六章1. 下列哪一种连接与逗号分隔连接执行的效果相同? C A. 外连接 B.交叉连接 C.自然连接 D.内连接2. 如果只需要返回匹配的列,则应当使用哪种连接? A A. 内连接 B.交叉连接 C.左连接 D.全连接第七章3. 只能存储一个值的变量是哪种变量? B A. 游标 B.标量变量 C.游标变量 D.记录变量5. 下列哪一项可以正确地引用记录变量中的一个值? B A. rec_abc(1); B.rec_abc(1).col; C.rec_abc.col; D.rec_abc.first(); 第八章 8. 可以引用哪个数据字典视图来查看软件包中包含的代码? C A. USER_OBJECTS B.USER_PACKAGE_TEXT C.USER_SOURCE D.USER_TEXT10. 当满足下列哪种条件时,允许两个过程具有相同的名称? B.参数的数量或数据类型不相同时第九章3. 下列关于对象的描述哪项是错误的? B A. 为对象表添加数据时,可以在INSERT语句的VALUES子句中直接提供值,隐式创建对象类型实例,然后向表中添加数据;也可以显式创建对象实例后向表中添加数据B. 对象表与其他类型的表一样,都是作为列的集合C. 对象表中的每个对象都有一个OID,OID是全局唯一的,表示每一个对象的实例D. 查询对象表时,对象表中的数据以关系的形式显示,但也可以通过使用VALUE()函数以对象实例的形式显示4. 假设要对“商品信息”表进行分区处理,并且根据商品的产地进行分区,则应采用下列哪一种分区方法? C A. 范围分区 B.散列分区 C.列表分区 D.组合范围散列分区6. 下列哪一项是关于簇和簇表不正确的描述? D A. 簇实际上是一组表 B.因为簇将不同表的相关行一起存储到相同的数据块中,所以合理使用簇可以帮助减少查询数据所需的磁盘读取量 C.簇表是簇中某一个表 D.在创建簇和簇表之后就可以向其中添加数据第十章1. 查看下面的语句创建了哪一种索引? C CREATE INDEX test_index ON student(stuno,sname)TABLESPACE users STORAGE(INITIAL 64k,next 32k);A. 全局分区索引 B.位图索引 C.复合索引 D.基于函数的索引2. 使用ALTER INDEX.REBUILD语句不可以执行下面的哪个任务? D A. 将反向键索引重建为普通索引 B.将一个索引移动到另一个表空间C.将位图索引更改为普通索引 D.将一个索引分区移动到另一个表空间3. 下列关于约束与索引的说法中,哪一项是不正确的? D A. 在字段上定义PRIMART KEY 约束时会自动创建B树唯一索引B. 在字段上定义UNIQUE约束时会自动创建一个B树唯一索引C. 默认情况下,禁用约束会删除对应的索引,而激活约束会自动重建相应的索引D. 定义FOREIGN KEY 约束时会创建一个B树唯一索引4. 假设EMPLOYEE表包含一个MARRIAGE列,用于描述职工的婚姻状况,则应该在该字段上创建什么类型的索引? D A. B树唯一索引 B.B树不唯一索引 C.基于函数的索引 D.位图索引5. 下列关于索引的描述哪一项是不正确的? B A. 表是否具有索引不会影响到所使用的SQL编写形式B. 在为表创建索引后,所有的查询操作都会使用索引C. 为表创建索引后,可以提高查询的执行速度D. 在为表创建索引后,Oracle优化器将根据具体情况决定是否采用索引6. 如果经常执行类似于下面的查询语句: SELECT * from student where Substr(sname,0,2)=刘应当为student表中的sname列创建哪一种类型的索引? D A. B树唯一索引 B.位图索引 C.B树不唯一索引 D.基于函数的索引7. 假设在一个表的3个字段NAME、SEX和MONTH_OF_BIRTH中分别保存姓名、性别和出生的月份数据,则应当为这3个字段分别创建何种类型的索引? D A. 全部创建B树索引 B.全部创建位图索引 C.分别创建B树索引、位图索引和位图索引D.分别创建B树索引、位图索引和基于函数的索引8. 如果创建的表其主键可以自动编号,则应该为主键创建的索引是哪种类型? A A. 反向键索引 B.B树索引 C.位图索引 D.基于函数的索引第十一章1. 如果允许用户对视图进行更新和插入操作,但是又要防止用户将不符合视图约束条件的记录添加到视图,应当在定义视图时指定下列哪一个子句? C.WITH CHECK OPTION 4. 在下列各选项中,关于序列的描述哪一项是不正确的? D A. 序列是Oracle提供的用于产生一系列唯一数字的数据库对象B. 序列并不占用实际的存储空间C. 使用序列时,需要用到序列的两个伪列NEXTVAL与CURRVAL。其中,NEXTVAL将返回序列生成的下一个值,而CURRVAL返回序列的当前值D. 在任何时候都可以使用序列的伪列CURRVAL,以返回当前序列值5. 在下列各选项中,关于同义词的描述哪一项是不正确的? B A. 同义词是数据库对象的一个替代名,在使用同义词时,Oracle会将其翻译为对应的对象名称B. 在创建同义词时,所替代的模式对象必须存在C. Oracle中的同义词分为公有同义词和私有同义词D. 公有同义词在数据库中所有的用户都可以使用;私有同义词由创建它的用户所拥有第十二章2. 在使用CREATE TRIGGER语句创建行级触发器时,哪一个语句用来引用旧数据? D A. FOR EACH B.ON C.REFERENCING D.OLD4. 替代触发器可以被附加到哪一类数据库对象上? C A. 表 B.序列 C.视图 D.簇5. 下列哪个语句用于禁用触发器? C A. ALTER TABLE B.MODIFY TRIGGER C.ALTER TRIGGER D.DROP TRIGGER6. 条件谓词在触发器中的作用是 A 。A. 指定对不同事件执行不同的操作 B.在UPDATE中引用新值和旧值C.向触发器添加WHEN子句 D.在执行触发器前必须满足谓词条件7. 可以使用哪个子句来更改相关性标识符的名称? A A. REFERENCING B.WHEN C.INSTEAD-OF D.RENAME8. 下列哪个相关性标识符是可用的,并且包括了DELETE触发器中要更新的值? A A. OLD B.NEW C.REFERENCING D.以上都不是第十三章1. 下列关于提交事务的叙述哪一项是正确的? A A. 事务提交后,它对数据库所做的修改将永久保存到数据库中2. 下列哪个语句会终止事务? D.COMMIT3. 假如当前数据库有两个并发的事务,其中,第一个事务修改表中的数据,第二个事务在将修改提交约数据库前查看这些数据。如果第一个事务执行回滚操作,则会发生哪种读取现象? C A. 假读 B.非重复读取 C.错读 D.重复读4. 当一个事务基于某些搜索条件读取一个数据表,第二个事务更新表中的数据,那么,当第一个事务再次读取数据时,返回的结果会因为搜索条件而返回不同的结果。这种现象叫做什么? A A. 假读 B.非重复读取 C.错读 D.重复读5. 下列选项中,哪个选项用于设置事务的隔离层? A A. READ ONLY B.UPDATE C.LOCAL D.ISOLATION LEVEL READ COMMITTED IS6. 下列哪一个锁模式不属于Oracle? D A. 共享锁 B.排他锁 C.行级共享锁 D.死锁7. 下列关于Oracle支持的锁粒度描述正确的是? B A. 数据库级、表级、行级和列级 B.数据库级、表级、行级 C.行级、列级 D.列级、表级8. 在用SET TRANSACTION 语句设置事务的属性时,为了确保事务中不会发生非重复读取和错读,但不考虑是否会发生假读,应使用哪个隔离层? D A. READ COMMITE B.SERIALIZABLE C.READ WRITE D.REPEATABLE READ第十四章1. 假设用户USER1的默认表空间为USERS,他在该表空间的配额为10MB,则USER1在USERS表空间创建基本表时,他应具有什么权限? A A. CREATE TABLE B.CREATE USER C.UNLIMITED TABLESPACE D.LIMITED TABLESPACE2. 下列哪一项资源不能在用户配置文件中限定? B A. 各个会话的用户数 B.登录失败的次数 C.使用CPU时间 D.使用SGA区的大小3. 检查下面的SQL语句,哪一项是错误的? B Alter user tempuser identified by oracle default tablespace users default temporary tablespace temp quota 100M on users;A. default tablespace users B.default temporary tablespace temp C.quota 100M on users D.identified by oracle4. 下面哪一个不是系统权限? C A. SELECT TABLE B.ALTER TABLE C.SYSDAB D.CREATE INDEX5. 想在另一个模式中创建表,用户最少应该具有什么系统权限? B A. CREATE TABLE B.CREATE ANY TABLE C.RESOURCE D.DBA6. 用户查询下列哪一个数据字典视图,可以查看他向其他用户授予的对象权限? C A. DBA_SYS_PRIVS B.USER_TAB_PRIVS_MADEC.USER_TAB_PRIVS D.USER_OBJ_PRIVS7. 下面哪个系统预定义角色允许一个用户创建其他用户? B A. CONNECT B.DBA C.RESOURCE D.SYSDBA8. 如果要启用所有角色,则应该使用哪一个命令? A A. SET ROLE ALL B.SET ROLE ENABLE ALLC.ALTER SESSION ALL D.ALTER USER ROLE ALL第十五章2. 把一个表空间切换到OFFLINE状态时,可以使用4个参数,不包括下列哪一个选项? D A. IMMEDIATE B.NORMAL C.TEMPORARY D.FORCE3. 在设置撤销表空间的自动管理功能时,DBA通过使用相关的初始化参数对自动撤销表空间进行配置。下面的4个参数中,哪一个不是与自动撤销管理功能相关的参数? D A. UNDO_MANAGEMENT B.UNDO_TABLESPACE C.UNDO_RETENTION D.TRANSACTIONS4. 下面哪一个参数不能在STORAGE子句中进行设置? B A. INITIAL B.PCTUSED C.MINEXTENTS D.NEX5. 在设置自动撤销管理时,下列 B 参数用于设置所使用的撤销表空间, C 参数用于设置撤销数据的保留时间。 A.UNDO_MANAGEMENT B.UNDO_TABLESPACE C.UNDO_RETENTION D.ROLLBACK_SEGMENTS
展开阅读全文