Oracle数据库管理与应用实例教程.doc_第1页
Oracle数据库管理与应用实例教程.doc_第2页
Oracle数据库管理与应用实例教程.doc_第3页
Oracle数据库管理与应用实例教程.doc_第4页
Oracle数据库管理与应用实例教程.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

Oracle数据库管理与应用实例教程 Oracle数据库管理与应用实例教程第2版 人民邮电出版社仅供参考,如有错误请自行纠正选择题第二章1. B 2.B 3.D 4.A第三章1. C 2.D 3.D 4.A第四章1. A 2.B 3.D 4.A 5.D第五章1. C 2.A 3.D 4.A 5.A 6.B第六章1. B 2.D 3.B 4.A 5.D第七章1. C 2.D 3.D 4.D 5.B 6.B第八章1. C 2.D 3.D 4.D 5.B 6.D 7.C第九章1. C 2.C 3.C 4.A 5.A 6.D第十章1. D 2.B 3.C 4.B 5.B第十一章1. D 2.C 3.D 4.B第十二章1. C 2.B 3.A 4.A 5.D填空题第二章1 默认情况下OEM的URL地址是https:/locahost:1158/em。 2 Oracle 9i发布于2001,其中的“i”代表Internet,oracle 11g发布于2007年,其中的“g代表grid(网格)。 3. 在oracle的内存结构中,用于保存正在执行或可能执行的代码的区是代码区。4. 在oracle的进程中,用于实现进程监控功能的进程是PMON。 第三章1Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、重做日志文件、控制文件。 2一个表在空间物理上对应一个或多数据文件。 3在oracle的逻辑存储结构中,根据存储数据的类型,可以将段分为数据段、索引段、回滚段、LOB段和临时段 。 第四章1在设计表时,对于邮政编码(固定为6位)列最适合的数据类型是CHAR。 2在alter table语句中,如果要删除列,可以指定DROP COLUMN关键字来实现。3如果需要向表中插入一批已经存在的数据,可以在insert语句中使用SELECT语句。 4创建一个UPDATE语句来修改Goods表中的数据,并且把每一行的T-ID值都改成15,应该使用的SQL语句是UPDATE SCOTT.Goods SET t_ID=15。5使用DESC命令可以显示表的结构信息。 6两个表的主关键字和外关键字的数据应对应一致,这是属于引用完整性,通常可以通过主键和外键来实现。 7. UNIQUE约束通过确保在列中不输入重复值保证一列或多列的实体完整性。 第五章 1. 在SELECT语句中选择满足条件的记录使用WHERE关键字,在分组之后进行选择使用HAVING关键字。 2. 用来返回特定字段中所有值得总和的聚合函数是SUM。3 编写查询语句时,使用%通配符可以匹配多个字符。 4 集合运算符UNION实现集合的并运算,操作符INTERSECT实现了对集合的交运算,而MINUS则实现了减运算。 第六章1. 如果要定义只读的视图,可以在创建视图时使用READ ONLY关键字。 2. 删除视图的PLSQL语句是DROP VIEW 用户方案.视图名。3. 在使用CREATE INDEX创建索引时,使用BITMAP关键字可以创建位图索引。 4. 聚集(Cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用,表中相关的列称为聚集键。5. 在为表中某个列定义PRIMARY KEY约束PK_ID后,则系统默认创建的索引名为PK_ID。6. 如果表中某列的基数比较低,则应该在该列上创建反向索引。7. 如果要获知索引的使用情况,可以通过查询DBA_INDEXES视图,而要获知索引的当前状态,可以查询INDEX_STATS视图。 第七章1. 在Oracle的PL/SQL程序中,除了可以使用Oracle规定的数据类型外,还可以使用%TYPE类型的变量,由系统根据检索的数据表列的数据类型决定该变量的类型,也可以使用%ROWTYPE类型的变量用来一次存储从数据表中检索的一行数据。 2. SYSDATE函数可以获得当前系统的日期,SUBSTR(s,start,len)函数可以实现从指定的字符串中取指定长度的字符串。 3. 用来变异存储过程的PL/SQL语句是ALTER PROCEDURE,CREATE FUNCTION语句可以用来创建函数。 第八章1. 要从服务器游标中检索特定的一行,可以使用FETCH INTO语句,使用 CLOSE 可以关闭指定的游标。 2. 一个事务所做的修改必须能够与其他事务所做的修改隔离开来,这是事务的隔离性(Isolation)特性。 3. 可以使用COMMIT语句进行显式事务的提交。 第九章 1. 根据服务器或数据库中调用触发器的操作不同,Oracle的触发器分为DML触发器、替代触发器系统事件触发器和用户事件触发器。 2. :OLD变量表用于存储DELETE和UPDATE语句所影响的行的值。 3. 查询USER_TRIGGERS数据字典可以查看触发器的类型等信息。 4. BEFORE和AFTER制定了触发器的出发时间。当为一个表配置了约束时,它们将会特别有用,BEFORE可以规定Oracle在应用约束前调用触发器,而AFTER规定在应用约束后调用触发器。 第十章1. 在Oracle数据库中将全线分为两类,即系统权限和用户权限。系统权限是指在系统级控制数据库的存取和使用机制,用户权限是指在模式对象上存取和使用的机制。 2. 角色是具有名臣的一组相关权限的组合。 3. 在用户连接到数据库后,可以查询数据字典USER_USERS了解用户所具有的的系统权限。第十一章 1. 在执行完全数据库备份之前,应该确定备份哪些文件,通过查询V$DATAFILE视图可以获取数据文件的列表。 2. 为了使用Oracle提供的EXP命令,必须为EXP命令分配IMP_FULL_DATABASE角色需要的所有特权。 3. Oracle提供RECOVER命令用于执行数据恢复操作,提供了IMP实现数据的导入。 4. 在EXP命令中通过PARFILE选项可以指定包含导出参数列表的文件名,即参数文件。第十二章 1. 在3层或多层系统中业务逻辑层可以实现数据库的存取及应用程序的商业逻辑计算功能。 2. 在JDBC的API中Statement接口提供了3种执行SQL语句的方法,其中用于产生单个结果集的方法是executeQuery () 。 3. 在ADO.NET中使用指定命令对象的类型(comm.CommandType =CommandType.StoredProcedure)方法,表示要对Oracle数据库执行的一个存储过程。简答题第1章 【简答题】1简要说明数据库设计的基本流程,并结合实例说明数据库设计各阶段的主要任务。数据库设计的基本流程:按照规范的设计方法,将数据库设计分为六个阶段:(1)需求分析;(2)概念结构设计;(3)逻辑结构设计;(4)物理结构设计;(5)数据库实施;(6)数据库的运行和维护。需要说明的是,数据库设计还包含了应用系统的设计过程。每个阶段的主要任务是:(1)需求分析:通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户需求,确定新系统的功能。(2)概念结构设计:应用E-R模型真实地反映现实世界,包括事物和相互之间的联系,能满足用户对数据的处理要求,是现实世界的一个真实模型;易于理解、易于更改、易于向关系、网状、层次等各种数据模型转换。概念结构设计有以下四种方法: 自顶向下;自底向上;逐步扩张;混合策略。(3)逻辑结构设计:逻辑结构设计的目的是把概念设计阶段的基本ER图转换成与选用的具体机器上DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式)。逻辑结构设计有如下三个步骤:将概念模型(ER图)转换为一般的关系、网状、层次模型;将关系、网状、层次模型向特定的DBMS支持下的数据模型转换;对数据模型进行优化。(4)物理结构设计:对于一个给定的逻辑数据模式选取一个最适合应用环境的物理结构的过程,称为数据库的物理设计。(5)数据库实施:建立实际数据库结构;试运行;装入数据;同时进行数据库的重新组织设计;故障恢复方案设计;安全性考虑;事务控制;(6)数据库的运行和维护:数据库的日常维护(安全性、完整性控制,数据库的转储和恢复);性能的监督、分析与改进;扩充新功能;修改错误。2依据你对数据库管理员和程序员职业岗位的了解,说明这两个岗位对数据库知识和能力的需求。请自行查阅前程无忧,智联招聘等网站第二章 【简答题】1查阅资料,了解目前主流的关系型数据管理系统有哪些,并对这些数据库管理系统进行简单比较。常见的关系型数据库管理系统产品有Oracle、SQL Server、Sybase、DB2、Access等。 (1)Oracle Oracle是1983年推出的世界上第一个开放式商品化关系型数据库管理系统。它采用标准的SQL结构化查询语言,支持多种数据类型,提供面向对象存储的数据支持,具有第四代语言开发工具,支持Unix、Windows NT、OS/2、Novell等多种平台。除此之外,它还具有很好的并行处理功能。Oracle产品主要由Oracle服务器产品、Oracle开发工具、Oracle应用软件组成,也有基于微机的数据库产品。主要满足对银行、金融、保险等企业、事业开发大型数据库的需求。 (2)SQL Server SQL即结构化查询语言(Structured Query Language,简称为SQL)。SQL Server最早出现在1988年,当时只能在OS/2操作系统上运行。2000年12月微软发布了SQL Server 2000,该软件可以运行于Windows NT/2000/XP等多种操作系统之上,是支持客户机/服务器结构的数据库管理系统,它可以帮助各种规模的企业管理数据。 随着用户群的不断增大,SQL Server在易用性、可靠性、可收缩性、支持数据仓库、系统集成等方面日趋完美。特别是SQL Server的数据库搜索引擎,可以在绝大多数的操作系统之上运行,并针对海量数据的查询进行了优化。目前SQL Server已经成为应用最广泛的数据库产品之一。 由于使用SQL Server不但要掌握SQL Server的操作,而且还要能熟练掌握Windows NT/2000 Server的运行机制,以及SQL语言,所以对非专业人员的学习和使用有一定的难度。 (3)Sybase1987年推出的大型关系型数据库管理系统Sybase,能运行于OS/2、Unix、Windows NT等多种平台,它支持标准的关系型数据库语言SQL,使用客户机/服务器模式,采用开放体系结构,能实现网络环境下各节点上服务器的数据库互访操作。技术先进、性能优良,是开发大中型数据库的工具。Sybase产品主要由服务器产品Sybase SQL Server、客户产品Sybase SQL Toolset和接口软件Sybase Client/Server Interface组成,还有著名的数据库应用开发工具PowerBuilder。 (4)DB2 DB2是基于SQL的关系型数据库产品。20世纪80年代初期DB2的重点放在大型的主机平台上。到90年代初,DB2发展到中型机、小型机以及微机平台。DB2适用于各种硬件与软件平台。各种平台上的DB2有共同的应用程序接口,运行在一种平台上的程序可以很容易地移植到其他平台。DB2的用户主要分布在金融、商业、铁路、航空、医院、旅游等各个领域,以金融系统的应用最为突出。 (5)Access Access是在Windows操作系统下工作的关系型数据库管理系统。它采用了Windows程序设计理念,以Windows特有的技术设计查询、用户界面、报表等数据对象,内嵌了VBA(全称为Visual Basic Application)程序设计语言,具有集成的开发环境。Access提供图形化的查询工具和屏幕、报表生成器,用户建立复杂的报表、界面无需编程和了解SQL语言,它会自动生成SQL代码。 Access被集成到Office中,具有Office系列软件的一般特点,如菜单、工具栏等。与其他数据库管理系统软件相比,更加简单易学,一个普通的计算机用户,没有程序语言基础,仍然可以快速地掌握和使用它。最重要的一点是,Access的功能比较强大,足以应付一般的数据管理及处理需要,适用于中小型企业数据管理的需求。当然,在数据定义、数据安全可靠、数据有效控制等方面,它比前面几种数据库产品要逊色不少。2 简要说明Oracle数据库体系的内存结构。软件代码区,系统全局区,程序全局区和排序区 3简要说明多进程Oracle实例系统中各后台进程的作用。DBWR进程:该进程执行将缓冲区写入数据文件,是负责缓冲存储区管理的一个Oracle后台进程。LGWR进程:该进程将日志缓冲区写入磁盘上的一个日志文件,它是负责管理日志缓冲区的一个Oracle后台进程。CKPT进程:该进程在检查点出现时,对全部数据文件的标题进行修改,指示该检查点。SMON进程:该进程实例启动时,执行实例恢复,还负责清理不再使用的临时段。PMON进程:该进程在用户进程出现故障时执行进程恢复,负责清理内存储区和释放该进程所使用的资源。RECO进程:该进程是在具有分布式选项时所使用的一个进程,自动地解决在分布式事务中的故障。ARCH进程:该进程将已填满的在线日志文件拷贝到指定的存储设备。LCKn进程:是在具有并行服务器选件环境下使用,可多至10个进程(LCK0,LCK1,LCK9),用于实例间的封锁。Dnnn进程(调度进程):该进程允许用户进程共享有限的服务器进程(SERVER PROCESS)。 第3章 【简答题】1简要介绍表空间和数据文件之间的关系。每一个表空间由一个或多个数据文件组成的一个数据文件只可以属于一个表空间。 2简要介绍表空间、段、盘区和数据块之间的关系。Oracle 数据库系统逻辑结构中的各种组成元素(表空间、表、段、分区、数据块)之间存在一定的联系,如下图所示。段1分区1数据块1数据块n分区n段n表1表空间1表n数据库表空间n图3-2 Oracle数据库的逻辑结构(1)表空间(Table Space)每个数据库在逻辑上由一个或多个表空间组成,每个表空间由一个或多个数据文件组成,表空间中其他逻辑结构的数据物理地存储在这些数据文件中。(2)表(Table)表是存放数据的数据库对象,它是一种二维表格结构。Oracle数据库中的表分为系统表和用户表,系统表存储数据字典,用户表存储用户的数据。(3)段(Segment)按照数据处理要求的不同,有时候需要将表空间划分为不同区域,以存放不同的数据,这些区域称为“段”。Oracle 11g数据库中有4种类型的段:数据段、索引段、回滚段和临时段。(4)分区(Extent)分区是在数据库存储空间中分配的一个逻辑单元,由多个分区组成一个段。当段中已有空间用完时,该段就获取另外的分区。(5)数据块(Data Block)数据块是Oracle数据库中数据文件的最小存储空间单位,Oracle 11g数据库常用的数据块大小可以是2KB或4KB。第4章 【简答题】1 简述DELETE语句与TRUNCATE语句的差异? 1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后自 动提交。 不同之处: 1.drop和delete只是删除表的数据(定义),drop语句将删除表的结构、被依赖的约束(constrain)、触发器 (trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态。 2.delete语句是DML语言,这个操作会放在rollback segement中,事物提交后才生效;如果有相应的触发器(trigger),执行的时候将被触发。truncate、drop是DDL语言,操作后即 生效,原数据不会放到rollback中,不能回滚,操作不会触发trigger。 3.delete语句不影响表所占用的extent、高水线(high watermark)保持原位置不动。drop语句将表所占用的空间全部释放。truncate语句缺省情况下将空间释放到minextents的 extent,除非使用reuse storage。truncate会将高水线复位(回到最初)。 4.效率方面:drop truncate delete 5.安全性:小心使用drop与truncate,尤其是在 没有备份时候,想删除部分数据可使用delete需要带上where子句,回滚段要足够大,想删除表可以用drop,想保留表只是想删除表的所有数据、 如果跟事物无关可以使用truncate,如果和事物有关、又或者想触发 trigger,还是用delete,如果是整理表内部的碎片可以用truncate跟上reuse stroage再重新导入、插入数据。 6. delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。 drop一般用于删除整体性数据 如表模式索引视图完整性限制等 delete用于删除局部性数据 如表中的某一元组 DROP把表结构都删了 DELETE只是把数据清掉 当你不再需要该表时 用 drop; 当你仍要保留该表但要删除所有记录时 用 truncate; 当你要删除部分记录时always with a WHERE clause), 用 delete. 2数据完整性通常有哪几种类型,Oracle11g通过哪些方式来进行数据完整性控制。数据完整性是指数据的精确性和可靠性。它是为防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性主要分为4类:域完整性、实体完整性、引用完整性和用户定义完整性。Oracle通过CHECK、FOREIGN KEY 约束和DEFAULT、NOT NULL等实现域完整性;Oracle通过UNIQUE、PRIMARY KEY 和IDENTITY 实现实体完整性的;Oracle通过FOREIGN KEY 约束、PRIMARY KEY实现引用完整性;Oracle提供了触发器(Trigger)等工具来帮助用户实现数据完整性。 第5章 【简答题】1什么是SQL注入式攻击?如何防范SQL注入式攻击?(1) SQL注入技术定义SQL注入(SQL Injection)技术在国外最早出现在1999年,我国在2002年后开始大量出现,目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述:(1)脚本注入式的攻击(2)恶意用户输入用来影响被执行的SQL脚本Chris Anley将SQL注入定义为,攻击者通过在查询操作中插入一系列的SQL语句到应用程序中来操作数据。Stephen Kost给出了SQL注入的一个特征,“从一个数据库获得未经授权的访问和直接检索”。利用SQL注入技术来实施网络攻击常称为SQL注入攻击,其本质是利用Web应用程序中所输入的SQL语句的语法处理,针对的是Web应用程序开发者编程过程中未对SQL语句传入的参数做出严格的检查和处理所造成的。习惯上将存在SQL注入点的程序或者网站称为SQL注入漏洞。实际上,SQL注入是存在于有数据库连接的应用程序中的一种漏洞,攻击者通过在应用程序中预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的查询。这类应用程序一般是基于Web的应用程序,它允许用户输入查询条件,并将查询条件嵌入SQL请求语句中,发送到与该应用程序相关联的数据库服务器中去执行。通过构造一些畸形的输入,攻击者能够操作这种请求语句去获取预先未知的结果。(2) 一般的SQL注入攻击防范方法SQL注入攻击防范方法目前已经有很多,总结起来有下面一些:l在服务端正式处理之前对提交数据的合法性进行检查;l封装客户端提交信息;l替换或删除敏感字符/字符串;l屏蔽出错信息。l不要用字串连接建立SQL查询,而使用SQL变量,因为变量不是可以执行的脚本;l目录最小化权限设置,给静态网页目录和动态网页目录分别设置不同权限,尽量不给写目录权限;l修改或者去掉Web服务器上默认的一些危险命令,例如ftp、cmd、wscript等,需要时再复制到相应目录;l数据敏感信息非常规加密,通过在程序中对口令等敏感信息加密都是采用md5函数进行加密,即密文md5(明文),本文推荐在原来的加密的基础上增加一些非常规的方式,即在md5加密的基础上附带一些值,如密文md5(md5(明文)123456);2请举例说明外连接的3种类型及其用法。外连接其实就是查两张表 左连接就是左边的表全有值,右边表的值可以为空(+); 右连接是左边表值可以为空(+),右边表的值全有;全连接是左连接和右连接的并集;内连接是左连接和右连接的交集。(1)左外连接(left outer join)select e.last_name, e.department_id, d.department_name from employees e left outer join departments d on (e.department_id = d.department_id);等价于 select e.last_name, e.department_id, d.department_name from employees e, departments d where e.department_id=d.department_id(+);结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。 (2)右外连接(right outer join )select e.last_name, e.department_id, d.department_name from employees e right outer join departments d on (e.department_id = d.department_id);等价于 select e.last_name, e.department_id, d.department_name from employees e, departments d where e.department_id(+)=d.department_id;结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。 3.全连接(full outer join) select e.last_name, e.department_id, d.department_name from employees e full outer join departments d on (e.department_id = d.department_id);结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。第六章【简答题】1. 举例说明使用视图有哪些优点。 (1)视点集中,减少对象大小。 (2)从异构源组织数据。 (3)隐藏数据的复杂性,简化操作。 (4)简化用户权限管理。2. 举例说明B树索引的基本组织结构。 B树索引是以B树结构组织并存放索引数据的。默认情况下,B树索引中的数据是以升序方式排列的。B树索引由根块、分支枝和叶块3部分组成,其中主要数据都集中在叶子结点。 3.什么是聚集?简要说明使用聚集的一般步骤聚集是存储表数据的可选择的方法创建聚集的步骤: 创建聚集本身,它是存储聚集表的逻辑结构; 创建聚集中的表; 创建聚集键上的索引。Oracle数据库管理与应用实例教程第七章【简答题】1. 简述过程与函的区别。 Oracle中的函数与存储过程的区别:过程被存储在数据库中,并且存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用。函数必须有返回值,并且可以作为一个表达式的一部分,函数不能作为一个完整的语句使用,函数返回值的数据类型在创建函数时定义。 2.举例说明调用过程时传递参数值的三种方法。IN参数,由调用者传入,并且只能够被存储过程读取,它可以接收一个值,但是不能在过程中修改这个值;OUT参数,由存储过程传入值,然后由用户接收参数值,它在调用过程时为空,在过程的执行中将为这参数指定一个值,并在执行结束后返回;IN OUT参数,同时具有IN和OUT参数的特性。 3.简述如何处理用户自定义异常。用户自定义异常是通过显示使用RAISE语句来引发的,当引发一个异常时,控制就转到EXCEPTION异常处理部分执行异常处理语句。步骤如下:定义异常处理;触发异常处理;处理异常。第八章【简答题】1.举例说明使用显式游

温馨提示

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

评论

0/150

提交评论