大型数据库复习大纲

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

⼤型数据库复习⼤纲
⼤型数据库复习⼤纲
绪论部分
1、了解其他⼤型数据库系统
a)IBM公司的DB2
b)Informix
c)Sybase
d)SQL Server
2、Oracle 11g 中的“g”的含义是什么?Oracle 9i 中的“i”的含义是什么?g:Grid⽹格i :Internet互联⽹
Oracle的体系结构和数据库操作
1、图⽰Oracle的物理数据库、逻辑数据库、⽤户之间的逻辑关系。

答:⼀个Oracle数据库有⼀个物理存储结构和⼀个逻辑存储结构。

逻辑存储结构是数据概念上的组织,主要有表空间、表、数据段、区和数据块等概念组成;物理存储结构是实现数据的存储单元,主要有数据⽂件、重写⽇志⽂件和控制⽂件组成。

⽤户虽然不是数据库中的⼀个物理结构,但它与数据库中的对象有着重要的关系,这是因为⽤户拥有数据库的对象。

2、段是什么概念?如何组成的。

段包括哪⼏种?各功能是什么?
答:依照不同的数据处理性质,可能需要在数据表空间内划分出不同区域,以存放不
同数据,将这些区域称之为“段”(SEGMENT)。

段包括数据段、索引段、临时段、回滚段。

(1)数据段:是存储在数据库中⽤户建⽴的表对象,在很⼤程度上包括了组成模式的和。

(2)索引段:是存储在数据库中⽤户建⽴的索引对象。

(3)临时段:当⼀个SQL语句需要临时⼯作区时,由Oracle建⽴。

当语句执⾏完毕,退回给系统。

(4)回滚段:回滚段⽤于存放数据修改之前的值(包括数据修改之前的位置和值)。

回滚段的头部包含正在使⽤的该回滚段事务的信息。

⼀个事务只能使⽤⼀个回滚段来存放它的回滚信
息,⽽⼀个回滚段可以存放多个事务的回滚信息。

回滚段主要完成两项任务:
(1)回滚段通过保存恢复或“先前映象”信息(对于DML语句所作的所有修改),提供取消事务的⽅法。

这些信息⾮常重要,可以完成从事务语句失败、程序失败和媒介失败中恢复。

(2)为事务提供读⼀致性,特别是对运⾏时间长的作业。

3、Oracle的存储空间的基本单位是什么?与OS的基本存储单位的关系。

答:Oracle的存储空间的基本单位是块Block。

与OS的基本存储单位的关系是它的整数倍。

4、Oracle的常⽤表空间有哪些?各功能是什么?
答:Oracle的常⽤表空间:
(l) 系统表空间
系统表空间(System Tablespace )是每个Oracle数据库都必须具备的部分。

在系统表空间中存放的是诸如表空间名称、表空间所含数据⽂件这类管理数据库⾃⾝所需的信息。

(2)临时表空间( Temp tablespace)
是Oracle⽤于存储其所有临时表的所在。

(3)⼯具表空间( Tools Tablespace )
⽤于保存数据库⼯具软件所需的数据库对象,如像Oracle Reports 这样的⼯具软件在⼯作时有⾃⼰的⼀组专⽤表。

像其他Oracle应⽤⼀样,Oracle Reports把这些表存放在数据库中。

⼤多数DBA都将⽀持⼯具运⾏所需的表放在这个表空间中。

(4)⽤户表空间(Users Tablespace )
⽤于存放⽤户的私有信息。

⽤户表空间是DBA (数据管理员)许可⽤户放数据库对象的地⽅。

(5) 数据及索引表空间
在Oracle数据库中,索引是专⽤的数据库对象,可以帮助Oracle迅速找出表中存放的数据。

(6) 回滚表空间
所有Oracle数据库都需要在⼀个地⽅保存恢复( Undo )信息。

这个⽤于保存回滚段( Rollback Segment )的表空间称作rollback(回滚)或简称rbs。

6、为什么要给⽤户指定默认表空间和临时表空间?
①USERS表空间是Oracle系统建议⽤户使⽤的表空间。

⽤户表空间是DBA (数据管理员)许可⽤户放数据库对象的地⽅。

②TEMPORARY表空间。

在Oracle数据库中,临时表空间主要供⽤户临时使⽤。

7、给⽤户指定默认表空间和临时表空间后,⽤户就可以在该表空间上创建表了吗?如果不能,需要什么权限?
⼀个⽤户如果要对某⼀数据库进⾏操作,必须满⾜以下三个条件:
(1) 登录Oracle服务器时必须通过⾝份验证;
(2) 必须是该数据库的⽤户或者是某⼀数据库⾓⾊的成员;
(3) 必须有执⾏该操作的权限。

8、简述在数据库维护中如何利⽤副本和⽇志有效地实现数据库恢复功能。

数据库运⾏在archive 模式下,那么⼀旦数据库损坏则可以通过冷备份(热备份)和归档备份将数据库恢复到断点状态。

数据库控制⽂件恢复(假设所有控制⽂件均被破坏):
数据库基于⽂件系统:利⽤操作系统的tar、cp等命令即可。

数据库数据⽂件恢复:
数据及索引表空间、系统表空间的恢复:
回拷相关的数据库⽂件和该数据⽂件备份以来所有⽣成的所有逻辑⽇志⽂件并执⾏如下命令:
svrmgrl > startup mount
svrmgrl > alter database recover automatic
如果控制⽂件被破坏,则:svrmgrl > alter database recover using backup controfile; 按照提⽰输⼊log⽂件名和redolog⽂件名
svrmgrl > alter database open resetlogs;
数据库临时⽂件和回滚表空间的恢复:简单地offline drop 并重建即可。

9、数据库的启动和关闭。

数据库启动有哪⼏种形式?
要启动和关闭数据库,必须要以具有Oracle 管理员权限的⽤户登陆,通常也就是以具有SYSDBA权限的⽤户登陆。

启动⼀个数据库需要三个步骤:启动数据库、装载数据库、打开数据库。

数据库启动有STRA TUP NORMAL , STARTUP MOUNT, STRATUP NOMOUNT。

STARTUP FORCE :该命令其实是强⾏关闭数据库(shutdown abort)和启动数据库(startup)两条命令的⼀个综合。

对于数据库的关闭,有四种不同的关闭选项:
1、SHUTDOWN NORMAL
2、SHUTDOWN IMMEDIATE
3、SHUTDOWN TRANSACTIONAL
4、SHUTDOWN ABORT
10、什么是Oracle的实例?它是⼀种什么机制?
数据库实例(instance)也称作服务器(server),是指⽤来访问数据库⽂件集的存储结构(统称为系统全局区System Global Area,即SGA)及后台进程的集合。

每⼀个运⾏的ORACLE数据库与⼀个ORACLE实例相联系。

它是存取和控制⼀数据库的软件机制。

每⼀次在数据库服务器上启动⼀数据库时,称为系统全局区(SGA)的⼀内存区被分配,有⼀个或多个ORACLE进程被启动。

该SGA 和ORACLE进程的结合称为⼀个ORACLE数据库实例。

⼀个实例的SGA和进程为管理数据库数据、为该数据库⼀个或多个⽤户服务⽽⼯作。

11、Oracle系统的构成(内存结构、主要的后台进程和物理数据库来描述)。

12、各后台进程的功能
Oracle为每个实例建⽴了后台进程,⽤来增强⽤户进程运⾏Oracle程序的能⼒。

1) SMON进程:该进程实例启动时执⾏实例恢复,还负责清理不再使⽤的临时段。

2) PMON进程:该进程在⽤户进程出现故障时执⾏进程恢复,负责清理内存储区和释放该进程所使⽤的资源。

3) DBWR进程:该进程执⾏将缓冲区写⼊数据⽂件。

当缓冲区中的⼀缓冲区被修改,它被标志为“弄脏”,DBWR的主要任务是将“弄脏”的缓冲区写⼊磁盘,使缓冲区保持“⼲净”。

4) LGWR进程:⽇志写⼊进程(Log Writer , LGWR)是⼀个专门⽤于将重做项写⼊重做⽇志的进程。

5) Dnnn进程:调度进程( Dispatcher, Dnnn)是⼀个可选的后台进程,仅在使⽤多线程服务器时出现。

6) ARCH进程:该进程将已填满的在线⽇志⽂件拷贝到指定的存储设备。

当⽇志是为ARCHIVELOG使⽤⽅式、并可⾃动地归档时ARCH进程才存在。

7) CKPT进程:校验点进程( CKPT )是⼀个可选进程。

在适当时候产⽣⼀个checkpoint事件,8)RECO进程:只有数据库运⾏在Oracle分布式选项下才能看到这个可选进程。

在分布式事务中,分布在两个或更多地点的数据必须保持同步。

9) LCKn进程:锁进程(Lock, LCKn)是⼀个可选进程。

当⽤户正在并⾏服务器模式下运⾏Oracle数据库时,将发现多个锁定进程。

13、Oracle的物理⽂件都有哪些部分组成?
答:Oracle的物理⽂件有数据⽂件、⽇志⽂件、控制⽂件、归档⽂件四部分组成。

14、Oracle的逻辑结构包括哪些部分组成?
答:逻辑存储结构是数据概念上的组织,主要有表空间、表、数据段、区和数据块等概念组成;
15、OEM的管理⼯具包括
(1) 例程管理。

(2) ⽅案管理。

(3) 安全管理。

(4) 存储管理。

16、图⽰SGA的主要组成。

简述各部分的内容。

当激活Oracle 10g数据库时,系统会先在内存内规划⼀个固定区域,⽤来存储每位使⽤者所需存取的数据以及Oracle 10g运作时必备的系统信息。

这个区域称为系统全局区(System Global Area),俗称SGA 。

(1)数据块缓存区。

数据块缓冲区为SGA 的主要成员,⽤来存放读取⾃数据⽂件的数据块复本,或是使⽤者曾经处理过的数据。

(2)字典缓存区。

数据库对象的信息存储在数据字典中,这些信息包括⽤户帐号、数据⽂件名、盘区位置、表说明和权限等。

(3)重做⽇志缓冲区:前⾯已介绍过,联机重做⽇志⽂件⽤于记录数据库的更改,以便在数据库恢复过程中⽤于向前滚动。

(4)SQL共享池:SQL共享池存储数据字典缓存区及库缓存区(library cache),即对数据库进⾏操作的语句信息。

17、读写⽇志⽂件和数据库的进程是什么?
答:(1)DBWR(数据库写⼊程序):负责将数据块缓存区内变动过的数据块回写⾄硬盘内的数据⽂件。

(2)LGWR(⽇志写⼊程序):负责将重做⽇志缓冲区内的数据变动记录循序写⼊重做⽇志⽂件。

18、何谓归档模式?解释归档和⾮归档模式之间的不同和它们各⾃的优缺点?⽇志⽂件有哪两类?
答:归档模式是指你可以备份所有的数据库事务并恢复到任意⼀个时间点。

⾮归档模式则相反,不能恢复到任意⼀个时间点。

但是⾮归档模式可以带来数据库性能上的少许提⾼。

⽇志⽂件有重做⽇志与归档⽇志两类。

19、Oracle的事务处理语句
答:Oracle的事务处理语句有Commit、Rollback、SavePoint
事务是⽤户定义的⼀个操作序列,这些操作要么全做要么全不做,是⼀个不可分割的⼯作单位。

事务的四个性质:(1)原⼦性(2)⼀致性(3)隔离性(4)持续性:持续性也称永久性。

20、建表为什么要加约束?列出你知道的⼏种约束。

3类完整性约束的应⽤。

答:建表加约束,此时,表中的每⼀⾏都必须满⾜约束条件定义所规定的条件。

可以为⼀个表列创建约束条件。

约束条件有以下5种。

①主键(Primary Key):主键是表中的⼀列或多个列。

②缺省(DEFAULT) 约束条件:在表中插⼊⼀⾏数据但没有为列指定值时⽣成⼀个在定义表时预先指定的值。

③检查(CHECK) 约束条件:该约束条件确保指定列中的值符合⼀定的条件。

④惟⼀性(UNIQUE)约束条件:⽤于保证应具有惟⼀性⽽⼜不是主键的⼀部分的那些列的惟⼀性。

⑤外键(Foreign Key)约束条件:该约束条件规定表间的关系性质。

3类完整性应⽤为实体完整性、域完整性、参照完整性。

21、解释冷备份和热备份的不同点以及各⾃的优点。

联机备份⼜可称为热备份或ARCHIVELOG归档备份。

联机备份要求数据库运⾏在ARCHIVELOG⽅式下,数据库不需要关闭。

进⾏联机备份可以使⽤PL/SQL语句也可以使⽤备份向导。

热备份的优点在于当备份时,数据库仍旧可以被使⽤并且可以将数据库恢复到任意⼀个时间点。

脱机备份⼜称冷备份。

冷备份是数据库⽂件的物理备份,需要在数据库关闭状态下进⾏,适⽤于所有模式的数据库。

当数据库关闭时,其使⽤的各个⽂件都可以进⾏备份。

冷备份⼀般在SQL*Plus中进⾏。

冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以⼯作在⾮归档模式下,数据库性能会⽐归档模式稍好。

22、备份有⼏种,各⾃的恢复特性是什么?导出有⼏种模式?
答:备份有三种:导出备份,联机备份(热备份),脱机备份(冷备份)。

导出有三种模式:
(1) 交互模式。

在输⼊Exp命令后,根据系统的提⽰输⼊导出参数,如:⽤户名、⼝
令和导出类型等参数。

(2) 命令⾏模式。

命令⾏模式和交互模式类似,不同的是使⽤命令模式时,只能在模式被激活后,才能把参数和参数值传递给导出程序。

(3) 参数⽂件模式。

23、在Oracle中,进⾏模糊查询时⽤什么符号代表任意长字符串,⽤什么符号代表任意单个字符。

第⼆个字母为b的字符串表达式是什么?
答:%代表任意长字符串、_代表任意单个字符、表⽰第⼆个字母为b的字符串表达式:_b%
24、对数据库⾃⾝进⾏管理的信息被存储在哪⾥?
答:系统表空间。

25、数据库运⾏在什么模式下可以从所有类型的失败中恢复数据?
答:ARCHIVELOG归档模式。

PL/SQL
1、DML、DDL、DTL、DCL各包含哪些语句。

(1) 数据操纵语⾔(DML)
(2) 数据定义语⾔(DDL)
(3) 数据控制语⾔(DCL)
2、SQL*PLUS 命令包括哪些?
3、TO_DATE函数的使⽤,计算教师年龄:
To_number(To_char(sysdate,'YYYY'))-To_number(To_char(birthday,'YYYY'))
4、哪些语句是隐式提交?哪些是显式提交?
在Oracle中,CREATE,DROP,ALTER属于隐式提交语句,是⾃动提交的(内含commit),不能回滚。

显式提交语句DML 有insert、update、delete, DCL有GRANT,REVOKE;。

这样的语句后⾯需要加⼊commit才能正式写⼊数据库。

⽽在commit之前,这些sql将存在于Oracle的回滚段中。

如果执⾏rollback,将回滚上次提交后的语句,同时回滚段中的数据将清空。

5、MINUS、INTERSECT、UNION
minus操作,⽤集合表⽰就是x-y。

如:select * from x minus select * from y; intersect操作,类似与交的操作,该操作有严重的性能问题,要少⽤,如:select * from x intersect select * from y;
union操作,添加合并相应数据,重复的算⼀次。

如:select * from x union select * from y;
6、共享锁和排他锁。

共享锁(share lock)
共享锁通过数据存取的⾼并⾏性来实现。

如果获得了⼀个共享锁,那么⽤户就可以共享相同的资源。

排他锁(exclusive lock独占锁)
排他锁防⽌共同改变相同的资源。

假如⼀个事务获得了某⼀资源上的⼀个专⽤锁,那么直到该锁被解除,其他的事务才能修改那个资源。

7、SQL查询语⾔的深⼊掌握:Where、Group、Having、Order、Like谓词
8、SQL查询语⾔中各类函数LOWER(转⼩写)、UPPER(转⼤写)。

⼏个统计函数COUNT、SUM、A VG。

9、PL/SQL语⾔的结构,三种类型参数(IN输⼊参数、OUT输出参数、INOUT输⼊输出参数)。

10、While、For循环,IF-Elsif-End条件语句。

11、游标操作。

⽤FOR循环和其他循环使⽤游标,显式和隐式游标的区别
答:PL/SQL⽤游标(cursor)来管理SQL的SELECT语句。

分为显式和隐式游标。

显式游标⾸先要声明(Declare),在使⽤前要打开(Open),使⽤完毕后要关闭(Close)。

在PL/SQL程序段中使⽤SELECT语句(⼀定包含into⼦句)进⾏操作,PL/SQL会隐含地处理游标定义,即称作隐式游标。

这种游标就不需要像显式游标⼀样需要声明,也不需要打开和关闭。

⽤For循环编写游标程序:系统⾃动打开游标,不⽤显式地使⽤OPEN语句打开;系统隐含地定义了⼀个数据类型
为%ROWTYPE的变量,并以此作为循环的计算器。

系统重复地⾃动从游标⼯作区中提取数据并放⼊计数器变量中。

当游标⼯作区中所有的记录都被提取完毕或循环中断时,系统⾃动地关闭游标。

12、什么是存储过程,使⽤存储过程的优点是什么?存储过程和函数的区别?
在Oracle中,可以在数据库中定义⼦程序,这种程序块称为存储过程(procedure)。

它存放在数据字典中,可以在不同⽤户和应⽤程序之间共享,并可实现程序的优化和重⽤。

使⽤存储过程的优点是:
(1) 过程在服务器端运⾏,执⾏速度快。

(2) 过程执⾏⼀次后代码就驻留在⾼速缓冲存储器,在以后的操作中,只需从⾼
速缓冲存储器中调⽤已编译代码执⾏,提⾼了系统性能。

(3) 确保数据库的安全。

可以不授权⽤户直接访问应⽤程序中的⼀些表,⽽是授
权⽤户执⾏访问这些表的过程。

⾮表的授权⽤户除⾮通过过程,否则就不能访问
这些表。

(4) ⾃动完成需要预先执⾏的任务。

存储过程和函数的区别是: 过程可以返回多个值,⽽函数只能返回⼀个值。

13、DML触发器包括哪三种?
答:DML触发器包括INSERT触发器、DELETE触发器、UPDA TE触发器。

14、%TYPE %ROWTYPE
编写PL/SQL程序⽤%TYPE进⾏变量声明的作⽤是与⼀个已知变量的类型⼀致,⽽⽤%ROWTYPE的作⽤与⼀个表的数据结构保持⼀致。

%TYPE属性提供了变量和数据库列的数据类型。

在声明⼀个包含数据库值的变量时⾮常有⽤。

如:例如,在表XS中包含XH 列,为了声明⼀个变量my_xh与XH列具有相同的数据类型,格式如下:
my_xh XS.XH%TYPE;
使⽤%TYPE声明具有以下两个优点:
①不必知道XH列的确切的数据类型;
②如果改变了XH列的数据库定义,my_xh的数据类型在运⾏时会⾃动进⾏修改。

15、编写简单的存储过程。

16、触发器的分类和作⽤。

每张基表最多可建⽴12个触发器。

触发器的类型有三种:
(1) DML触发器。

Oracle可以在DML(数据操纵语句)语句进⾏触发,可以在DML
操作前或操作后进⾏触发,并且可以在每个⾏或该语句操作上进⾏触发。

(2) 替代触发器。

由于在Oracle中不能直接对有两个以上的表建⽴的视图进⾏修改操作,所以给出了替代触发器。

它是Oracle 专门为进⾏视图修改操作的⼀种处理⽅法。

(3)系统触发器。

它可以在Oracle数据库系统的时间中进⾏触发,如Oracle数据库的关闭或打开等。

17、PL/SQL程序块的组成部分?
答:PL/SQL程序块的组成部分:声明部分、执⾏部分、异常处理部分。

18、外连接有⼏种?
答:外连接包括三种:
左外连接(LEFT OUTER JOIN):结果表中除了包括满⾜连接条件的⾏外,还包括左表的所有⾏;
右外连接(RIGHT OUTER JOIN):结果表中除了包括满⾜连接条件的⾏外,还包括右表的所有⾏;
完全外连接(FULL OUTER JOIN):结果表中除了包括满⾜连接条件的⾏外,还包括两个表的所有⾏。

19、SQL语⾔是具有两种使⽤⽅式,分别称为交互式SQL、嵌⼊式SQL。

20、在Oracle数据库中存放⾃定义对象有哪两种⽅法?
(1)创建⼀个对象表并将对象作为⾏存放在那个表中;(2)在⼀个标准的关系型表中创建⼀个
对象列。

21.什么样的视图是可更新视图?
答:要通过视图更新基表数据,必须保证视图是可更新视图。

可更新视图满⾜以下条件:(1)没有使⽤连接函数、集合运算函数和组函数;
(2)创建视图的SELECT语句中没有聚合函数且没有GROUP BY、ONNECT BY、START WITH⼦句及DISTINCT关键字;
(3)创建视图的SELECT语句中不包含从基表列通过计算所得的列;
(4)创建视图没有包含只读属性。

⽤户和⾓⾊
1、什么是Oracle的⾓⾊?有什么优缺点?
答:⾓⾊是⼀组权限的集合,将⾓⾊赋给⼀个⽤户,这个⽤户就拥有了这个⾓⾊中的所有权限。

当数据库较⼩、访问数据库的⽤户不多时,对⽤户在每个表上要求的特定访问进⾏授权还是可以接受的。

但是,随着数据库的增⼤以及⽤户数量的增多,数据库的维护将会成为很⿇烦的事情。

基于⾓⾊管理主要优点有:①减少权限管理的⼯作量;②进⾏动态的权限管理;③特定的安全管理;④有利于应⽤程序中⽤户的管理。

2、DROP USER AUTHOR CASCADE;
这个命令是撤消⽤户,只有⼀个参数,即CASCADE,在撤消该⽤户之前,它撤消⽤户模式中的所有对象。

3、什么是⽅案(模式)?Oracle中⽅案与⽤户的关系是什么?
答:⽤户帐号拥有的对象集称为⽤户的⽅案(SCHEMA)。

⽅案(模式)是为了便于数据的管理⽽设计的数据对象的逻辑组织单位,在⽅案下包括表、索引、视图、存储过程、触发器、同义词、序列、包等数据对象。

在Oracle中⽅案与⽤户的关系是⼀⼀
对应的关系,即每⼀个⽅案有⼀对应的⽤户。

4.权限分哪两类?
答:权限分成两类:系统权限与对象权限。

系统权限是指在系统级控制数据库的存取和使⽤的机制,即执⾏某种SQL语句的能⼒。

例如,启动、停⽌数据库,修改数据库参数,连接到数据库,以及创建、删除、更改模式对象(如表、视图、索引、过程等)等权限。

系统权限是针对⽤户⽽设置的,⽤户必须被授予相应的系统权限,才可以连接到数据库中进⾏相应的操作。

在Oracle中,SYSTEM和SYS是数据库管理员,具有DBA所有系统权限。

对象权限是指在对象级控制数据库的存取和使⽤的机制,即访问其他⽤户模式对象的能⼒。

对象权限⼀般是针对⽤户模式对象的。

对象权限是⽤户之间的表、视图等模式对象的相互存取权限。

例如,以⽤户“SYSTEM”登录到数据库,可以查询该⽤户模式中的表XSB,但是如果以⽤户“SCOTT”登录数据库则不可以查询表XSB,因为表XSB不属于SCOTT⽤户,并且SCOTT⽤户没有被授予查询XSB表的权限,如图9.12所⽰。

相关文档
最新文档