大型数据库复习提纲_第1页
大型数据库复习提纲_第2页
大型数据库复习提纲_第3页
大型数据库复习提纲_第4页
大型数据库复习提纲_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大型数据库复习题题型:一单选题1.5分2030分二填空题1分2020分三简答题4分315分四解答题15分分析SQL语句:改错,写结果,或按要求写SQL语句五综合知识运用题(共20分)(写SQL语句,存储过程、触发器等)绪论部分1、 了解其他大型数据库系统a) IBM公司的DB2b) Informix c) Sybased) SQLServer2、 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权限的用户登陆。启动一个数据库需要三个步骤: 启动数据库、装载数据库、打开数据库。数据库启动有STRATUP NORMAL , STARTUP MOUNT, STRATUP NOMOUNT。 对于数据库的关闭,有四种不同的关闭选项: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、备份有几种,各自的恢复特性是什么?导出有几种模式?答:备份有三种:导出备份,联机备份(热备份),脱机备份(冷备份)。方法类型恢复特性Export逻辑型可以将任何数据库对象恢复到它被导出时的状态冷备份物理型可将数据库恢复到它被关闭时的状态热备份物理型可将数据库恢复到任一时间点的状态导出有三种模式:(1)交互模式。在输入Exp命令后,根据系统的提示输入导出参数,如:用户名、口令和导出类型等参数。(2)命令行模式。命令行模式和交互模式类似,不同的是使用命令模式时,只能在模式被激活后,才能把参数和参数值传递给导出程序。(3)参数文件模式。23、在Oracle中,进行模糊查询时用什么符号代表任意长字符串,用什么符号代表任意单个字符。第二个字母为b的字符串表达式是什么?答: %代表任意长字符串、_代表任意单个字符、表示第二个字母为b的字符串表达式:_b%24、对数据库自身进行管理的信息被存储在哪里?答:系统表空间。25、数据库运行在什么模式下可以从所有类型的失败中恢复数据? 答:ARCHIVELOG归档模式。PL/SQL1、 DML、DDL、DTL、DCL各包含哪些语句。(1)数据操纵语言(DML)(2)数据定义语言(DDL)(3)数据控制语言(DCL)2、SQL*PLUS 命令包括哪些?3、TO_DATE、TO_CHAR、To_number等常用函数的使用。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、UNIONminus操作,用集合表示就是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、AVG。9、PL/SQL语言的结构,三种类型参数(IN输入参数、OUT输出参数、INOUT输入输出参数)。10、Loop ,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触发器 、 UPDATE触发器。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、触发器的分类和作用。编写简单的触发器。会在触发器中使用:OLD :NEW 例如:定义更新触发器:create or replace trigger trg_upd_stu before update on student for each row begin update score set score.sno =:NEW.sno where score.sno =:OLD.sno ; end trg_upd_stu; 例如:定义删除触发器 create or replace trigger trg_del_stu before update on student for each row begin delete from score where score.sno =:OLD.sno ; end trg_del_stu; 例如:有表course(cno,credit)表示课程号和学分数,表SC(sno,cno,grade)表示学生号,课程号和成绩,表credit(sno,sumcredit,notpass)表示学号和总学分以及不及格学科数。现要求当插入记录到SC表时,触发器同步更新credit里的记录,当插入的分数及格时,sumcredit加上这一科的学分,否则notpass加1;CREATE OR REPLACE TRIGGER TriggerOnSC AFTER INSERT ON SC FOR EACH ROWDECLARE newCredit number(8); tempCNO SC.cno%TYPE;BEGIN -判断是否及格 IF :NEW.grade = 60 THEN -取该课程学分 tempCNO := :NEW.cno; SELECT credit INTO newCredit FROM course WHERE cno = tempCNO; -更新该学生学分 UPDATE credit SET sumcredit = sumcredit + newCredit WHERE sno = tempCNO; ELSE -更新不及格次数 UPDATE credit SET notpass = notpass + 1 WHERE sno = tempCNO; END IF;END TriggerOnSC;每张基表最多可建立12个触发器。触发器的类型有三种: (1)DML触发器。Oracle可以在DML(数据操纵语句)语句进行触发,可以在D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论