1.简答题
(1)说明数据库逻辑存储结构的组成和相互关系。
Oracle9i数据库的逻辑存储结构分为数据块、区、段和表空间四种。其中,数据块是数据库中的最小I/O单元,由若干个连续的数据块组成的区是数据库中最小的存储分配单元,由若干个区形成的段是相同类型数据的存储分配区域,由若干个段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库。
(2)说明数据库表空间的种类,以及不同类型表空间的作用。
数据库表空间分为系统表空间和非系统表空间两类,其中非系统表空间包括撤销表空间、临时表空间和用户表空间等。
SYSTEM表空间主要用于存储数据库的数据字典、PL/SQL程序的源代码和解释代码、数据库对象的定义。撤销表空间专门进行回退信息的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间用于分离不同应用的数据,而且能够减少读取数据文件时产生的I/O冲突。
(3)说明数据库、表空间、数据文件以及数据库对象之间的关系。
一个数据库由一个或多个表空间构成,不同的表空间用于存放不同应用的数据,表空间的大小决定了数据库的大小。一个表空间对应一个或多个数据文件,数据文件的大小决定了表空间的大小。一个数据文件只能从属于一个表空间。一个数据库对象只能存储在一个表空间中,但可以存储在该表空间所对应的一个或多个数据文件中。
(4)数据库表空间的管理方式有几种,各有什么特点?
数据库表空间的管理方式有两种:字典管理方式和本地管理方式。在字典管理方式下,表空间使用数据字典来管理存储空间的分配,当进行区的分配与回收时,Oracle将对数据字典中的相关基础表进行更新,同时会产生回退信息和重做信息。在本地管理方式中,区的分配和管理信息都存储在表空间的数据文件中,而与数据字典无关。
(5)表空间管理时应考虑哪些问题?
表空间管理时,应该遵循以下原则:
l       将数据字典与用户数据分离;
l       将回退数据与用户数据分离;
l       将表空间的数据文件分散保存到不同的硬盘上;
l       为不同的应用创建独立的表空间。
(6)利用手动管理方式,如何有效管理数据块的使用?
DBA可以利用手动管理方式,通过为段设置PCTFREE和PCTUSED两个参数来控制数据块中空闲空间的使用。
(7)数据库中常用的段有哪几种,分别起什么作用?
根据存储对象类型不同,可以分为数据段、索引段、临时段和回退段四类。数据段用来存储表或簇的数据。索引段用来存放索引信息,包括ROWID和索引键值。临时段用来保存SQL语句在解释和执行过程中所产生的临时数据。回退段用于保存数据修改之前的信息,包括数据修改前的值及其位置,即记录数据库中所有事务修改之前信息的段。
(8)说明回退段的作用,以及回退段的管理方式。
利用回退段中保存的信息,可以实现事务回滚、数据库恢复和数据的读一致性。回退段的管理有两种方式,即自动撤销管理和手动撤销管理。
(9)说明数据库存储空间中碎片产生的原因以及如何回收碎片。
略。
(10)       说明在创建数据库时如何合理规划数据库的物理存储结构和逻辑存储结构。
略。
2.实训题
(1)使用SQL命令创建一个本地管理方式下的自动分区管理的表空间USERTBS1,其对应的数据文件大小为20MB。
create tablespace USERTBS1
datafile 'd:\oracle\oradata\orcl\usertbs1.dbf' size 50M
extent management local autoallocate;
(2)使用SQL命令创建一个本地管理方式下的表空间USERTBS2,要求每个分区大小为512KB。
create tablespace USERTBS2
datafile 'd:\oracle\oradata\orcl\usertbs2.dbf' size 50M
extent management local uniform size 512K;
(3)修改USERTBS1表空间的大小,将该表空间的数据文件修改为自动扩展方式,最大值为100MB。
alter database
datafile 'd:\oracle\oradata\orcl\usertbs1.dbf'
autoextend on next 5M maxsize 100M;
(4)为USERTBS2表空间添加一个数据文件,以改变该表空间的大小。
alter tablespace USERTBS2
add datafile 'd:\oracle\oradata\orcl\usertbs2a.dbf' size 50M;
(5)使用SQL命令创建一个本地管理方式下的临时表空间TEMPTBS,并将该表空间作为当前数据库实例的默认临时表空间。
create temporary tablespace TEMPTBS
tempfile 'd:\oracle\oradata\orcl\temptbs.dbf' size 20M
extent management local uniform size 16K;
(6)使用SQL命令对USERTBS1表空间进行联机和脱机状态转换。
alter tablespace USERTBS1 offline;
alter tablespace USERTBS1 online;
(7)创建一个回退表空间UNDOTBS,并作为数据库的撤销表空间。
create undo tablespace UNDOTBS
    datafile 'd:\oracle\oradata\orcl\undotbs.dbf' size 20M;
alter system set UNDO_MANAGEMENT=AUTO,UNDO_TABLESPACE=UNDOTBS
scope=both;
(8)删除表空间USERTBS2,同时删除该表空间的内容以及对应的操作系统文件。
drop tablespace USERTBS2 including contents and datafiles;
(9)为USERTBS1表空间创建一个回退段,其中回退段的最优大小设置为2MB。
create rollback segment undoseg
 tablespace USERTBS1
    storage (initial 100K next 100K optimal 2MB
minextents 20 maxextent 100);
(10)查询当前数据库中所有的表空间及其对应的数据文件信息。
select tablespace_name,file_name from dba_data_files;
3.选择题
(1)             C
(2)             C
(3)             B
(4)             A
(5)             C
(6)             A
(7)             B
(8)             A
(9)             B
(10)          D
(11)          D
(12)          A