oracle11g数据库管理与开发第5章答案

合集下载

《数据库技术与应用》第5章 习题答案

《数据库技术与应用》第5章 习题答案

第5章数据库完整性与安全性1. 什么是数据库的完整性?什么是数据库的安全性?两者之间有什么区别和联系?解:数据库的完整性是指数据库中数据的正确性、有效性和相容性,其目的是防止不符合语义、不正确的数据进入数据库,从而来保证数据库系统能够真实的反映客观现实世界。

数据库安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。

数据的完整性和安全性是两个不同的概念,但是有一定的联系:前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。

后者是保护数据库防止恶意的破坏和非法的存取。

也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据.2。

什么是数据库的完整性约束条件?完整性约束条件可以分为哪几类?解:完整性约束条件是指数据库中的数据应该满足的语义约束条件。

一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束.静态列级约束是对一个列的取值域的说明,包括以下几个方面:①数据类型的约束,包括数据的类型、长度、单位、精度等;②对数据格式的约束;③对取值范围或取值集合的约束;④对空值的约束;⑤其他约束.静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。

静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。

常见的静态关系约束有:①实体完整性约束;②参照完整性约束;③函数依赖约束.动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:①修改列定义时的约束;②修改列值时的约束。

动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件.动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。

3. 试述DBMS如何实现完整性控制.解:为了维护数据库的完整性,DBMS提供了以下三种机制:①完整性约束条件定义完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件.SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。

数据库系统原理课后答案 第五章

数据库系统原理课后答案 第五章

5.1 名词解释(1)SQL模式:SQL模式是表和授权的静态定义。

一个SQL模式定义为基本表的集合。

一个由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。

(2)SQL数据库:SQL(Structured Query Language),即‘结构式查询语言’,采用英语单词表示和结构式的语法规则。

一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。

(3)基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(Base Table)。

基本表是实际存储在数据库中的表,对应一个关系。

(4)存储文件:在SQL中,把传统的关系模型中的存储模式称为存储文件(Stored File)。

每个存储文件与外部存储器上一个物理文件对应。

(5)视图:在SQL中,把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)其他视图构造出来的表。

(6)行:在SQL中,把传统的关系模型中的元组称为行(row)。

(7)列:在SQL中,把传统的关系模型中的属性称为列(coloumn)。

(8)实表:基本表被称为“实表”,它是实际存放在数据库中的表。

(9)虚表:视图被称为“虚表”,创建一个视图时,只把视图的定义存储在数据词典中,而不存储视图所对应的数据。

(10)相关子查询:在嵌套查询中出现的符合以下特征的子查询:子查询中查询条件依赖于外层查询中的某个值,所以子查询的处理不只一次,要反复求值,以供外层查询使用。

(11)联接查询:查询时先对表进行笛卡尔积操作,然后再做等值联接、选择、投影等操作。

联接查询的效率比嵌套查询低。

(12)交互式SQL:在终端交互方式下使用的SQL语言称为交互式SQL。

(13)嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL。

(14)共享变量:SQL和宿主语言的接口。

共享变量有宿主语言程序定义,再用SQL 的DECLARE语句说明, SQL语句就可引用这些变量传递数据库信息。

ORACLE11g试题答案

ORACLE11g试题答案

. .. .目录第一章Oracle 11g 介绍 (2)第二章ORACLE 11g 的体系结构 (4)第三章ORACLE 11g 的数据库管理 (8)第四章ORACLE 11g 的表空间管理 (10)第五章ORACLE 11g 的表管理 (13)第六章ORACLE 11g 的数据查询 (18)第七章ORACLE 数据的基本操作 (23)第八章索引 (28)第九章视图 (33)第十章PL/SQL基础 (37)第十一章存储过程与函数 (43)第十二章触发器 (48)第十三章游标 (51)第十四章安全管理 (54)第十五章数据库备份与恢复 (57). .资料. ..第一章Oracle 11g 介绍一、选择题1.在数据库系统中,将满足以下两个条件的基本层次联系集合称为层次模型:( B )。

①有一个结点无双亲②其它结点无双亲③有且仅有一个结点无双亲④其它结点有且仅有一个双亲⑤允许其它结点有多个双亲A.①和②B.③和④C.③和⑤D.②和⑤2.下列有关数据库的描述,正确的是( C )A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件3.根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:( B )A.只存在一对多的实体关系,以图形方式来表示。

B.以二维表格结构来保存数据,在关系表中不允许有重复行存在。

C.能体现一对多、多对多的关系,但不能体现一对一的关系。

D.关系模型数据库是数据库发展的最初阶段。

4.Oracle 11g 是基于( A )的A.关系型B.文件系统C.层次型D.网络型5. 用二维表结构表达实体集的模型是(D )A.概念模型B.层次模型C.网状模型D.关系模型6.下列四项中说法不正确的是(C )A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性7.下列四项中,不属于关系数据库特点的是(D)A.数据冗余小B.数据独立性高C.数据共享性好D.多用户访问下面系统中不属于关系数据库管理系统的是(C )A. OracleB. MS SQL ServerC. IMSD. DB29.MS SQL Server是(D )A. 数据库B. 数据库系统C. 数据处理系统D. 数据库管理系统二、填空题1.在数据库系统中管理数据的软件称为___数据库管理系统________。

Oracle11g数据库管理与开发基础教程课后习题及答案

Oracle11g数据库管理与开发基础教程课后习题及答案

Oracle11g数据库管理与开发基础教程课后习题及答案第⼀章选择题1、Oracle数据库服务器包含的两个主要组件是(AB)A、Oracle实例B、oracle数据库C、内存结构D、后台进程2、create database 创建Oracle数据库时创建的⽂件包括(AC)A、数据⽂件B、控制⽂件C、⽇志⽂件D、初始化参数⽂件3、创建Oracle数据库时,createdatabase语句中指出了需要创建的数据⽂件、⽇志⽂件存储路径和名称,但没有指出需要创建的控制⽂件,因此创建数据库之前需要创建(D)个控制⽂件。

A、0B、1C、2D、任意数量4、调⽤shutdown命令关闭Oracle数据库后,以下(D)命令关闭的数据库处于不⼀致状态。

A、shutdown normalB、shutdown transactionalC、shutdown immediateD、shutdown abort5、作为普通⽤户,只有当数据库处于以下(C)状态下才可连接访问。

A、NUMOUNTB、MOUNTC、OPEND、CLOSE填空题1、SGA可分为以下⼏种主要区域:(SGA固定)、(数据库缓冲区缓存)、(重做⽇志缓冲区)、(共享池)等。

2、Oracle实例有多种后台进程,其中每个数据库实例上必须启动的后台进程包括(数据库写⼊进程)、(⽇志写⼊进程)、(检查点进程)、(进程监视进程)、(系统监视进程)等。

3、Oracle数据库的逻辑存储结构是(表空间)、(段)、(区)、(数据块)等。

4、Oracle数据库逻辑上的表空间结构与磁盘上的物理(数据)⽂件相关联。

5、下⾯连接字符串采⽤的是(简易连接)命名⽅式。

CONNECT Scott/tiger@dbs:1525@/doc/727db4ff03768e9951e79b89680203d8ce2f6aac.html编程题1.写出以下操作的SQL*PLUS命令语句:先启动Oracle实例到“已启动实例状态”,再修改Oracle实例到“数据库已装载状态”,最后修改Oracle实例到打开状态。

oracle11g数据库管理与开发第5章答案.

oracle11g数据库管理与开发第5章答案.

第5章重做日志管理一、选择题1.Oracle数据库重做日志由(B)后台进程写入联机重做日志文件。

A.DBWRB.LGWRC.ARCnD.SMON2.重做日志缓冲区中的重做日志在(A、B)会被写入重做日志文件。

A.事务提交时B.重做日志缓冲区达到三分之一满,或者日志缓冲区内的日志量超过1MB时C.每3秒过后D.检查点发生时3.改变Oracle数据库归档模式时,需要把数据库启动到(B)状态。

A.NOMOUNTB.MOUNTC.OPEND.CLOSE二、简答题请简述Oracle数据库重做日志从产生到归档的过程。

答:从创建数据库时,重做日志文件产生,用户在执行数据库操作时,服务器进程把重做记录从用户内存空间拷贝到SGA,它们首先被缓存在SGA的重做日志缓冲区内,之后由ORACLE数据库的后台进程写入进程把他们写入联机重做日志文件中,一个数据库至少有两个重做日志文件,一组当前处于写入状态,另一组重做日志用于归档操作。

在oracle数据库运行在归档模式时,发三个部分日志切换后,归档进程(ARCn,n为归档进程号,它可以是0-9,a-t,oracle中可以启动多达30个归档进程)将把填充过的联机重做日志文件复制到指定的一个或者多个位置存储,为他们创建脱机副本,归档完成。

三、实训题1.练习把Oracle数据库从非归档模式修改为归档模式,之后创造条件让数据库立即归档,并检查归档是否成功。

(1)查看数据库的归档模式archive log list;(2)关闭数据库shutdown normal/immedtate;(3)吧数据库重新启动到mount状态startup mount;(4)把数据库修改为自动归档模式alter database archivelog;(5)打开数据库,供用户访问alter database open;(6)查看数据库的归档模式archive log list(7)让数据库立即自动归档archive system switch logfile(8)查看数据库是否归档archive log list;2.查看数据库当前重做日志文件组及成员的设置情况,之后为Oracle数据库添加一组重做日志。

oracle应用开发答案

oracle应用开发答案

oracle应用开发答案【篇一:oracle10g数据库管理应用与开发课后答案】填空与选择题)填空题第二章1.oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、日志文件、控制文件。

2.到日志文件。

3.一个表空间物理上对应一个或多个4.在oracle的逻辑存储结构中,根据存储数据的类型,可以将段分为数据段、索引段、回退段、lob段和临时段。

5.在oracle的逻辑存储结构中,i/o单元。

6.在多进程oracle实例系统中,进程分为后台进程和当一个用户运行应用程序,如pro*c程序或一个oracle工具(如sql*plus),系统将为用户运行的应用程序建立一个用户进程。

第三章1.标准的sql、数据操纵语句(dml)和2.在需要滤除查询结果中重复的行时,必须使用关键字关键字all。

3.如果需要在select子句中包括一个表的所有列,可使用符号4.如果定义与组有关的搜索条件,可以把子句添加到select语句中。

5.当进行模糊查询时,就使用关键字_或百分号%。

6.where子句可以接收from子句输出的数据,而having子句则可以接收来自、from或子句的输入。

7.使下列sql语句中添加适当的表达式或子句,使语句可以正常运行。

select 供应商所在城市,count(供应商编号)from 供应商信息group by order by desc;第四章1.在sql语句中,用于向表中插入数据的语句是。

2.如果需要向表中插入一批已经存在的数据,可以在insert语句中使用语句。

3.创建一个update语句来修改artists表中的数据,并且把每一行的t_id值都改成15,应该使用的sql语句是update artists sett_id=15;。

4.使用命令可以显示表的结构信息。

5.使用sql*plus的6.当设置了多个列的显示属性后,如果清除设置的显示属性,可以使用命令,而当要清除某列具体的显示属性时,需要使用命令off/column 列名 clear。

最新Oracle11g数据库基础教程课后习题答案

最新Oracle11g数据库基础教程课后习题答案

Oracle11g数据库基础教程参考答案第5章数据库存储设置与管理P70.实训题(8)为USERS表空间添加一个数据文件,文件名为USERS05.DBF,大小为5 0MB。

ALTER TABLESPACE USERS ADD DATAFILE‘D:\ORACLE\ORADATA\ORCL\%users05.dbf’ SIZE 50M;(9)为EXAMPLE表空间添加一个数据文件,文件名为example05.dbf,大小为20MB。

ALTER TABLESPACE EXAMPLEADD DATAFILE ‘D:\ORACLE\ORADATA\ORCL\example05.dbf’ SIZE 20M;(10)修改USERS表空间中的userdata05.dbf为自动扩展方式,每次扩展5MB,最大为100MB。

ALTER DATABASE DATAFILE‘D:\ORACLE\ORADATA\ORCL\%userdata05.dbf’ AUTOEXTEND ON NEXT 5M MAXSIZE 100M;(14)为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo5a.log和redo5b.log,大小分别为5MB。

ALTER DATABASE ADD LOGFILE GROUP 5(‘D:\ORACLE\ORADATA\ORCL\redo5a.log’,‘D:\ORACLE\ORADATA\ORCL\redo5b.log’)SIZE 5M;(15)为新建的重做日志文件组添加一个成员文件,名称为redo5c.log。

ALTER DATABASE ADD LOGFILE MEMBER‘D:\ORACLE\ORADATA\ORCL\redo5c.log’ TO GROUP 5;(16)将数据库设置为归档模式,并采用自动归档方式。

SHUTDOWN IMMEDIATE STARTUP MOUNTALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;ALTER SYSTEM ARCHIVE LOG START(8)ALTER TABLESPACE USERSADD DATAFILE ‘D:\ORACLE\ORADATA\ORCL\userdata05.dbf’ SIZE 50M’;(9)ALTER TABLESPACE EXAMPLEADD DATAFILE ‘D:\ORACLE\ORADATA\ORCL\example05.dbf’ SIZE 20M’;(10)ALTER DATABASE DATAFILE ‘D:\ORACLE\ORADATA\ORCL\userdata05.dbf’ AUTOEXTEND ON NEXT 5M MAXSIZE 100M;(14)ALTER DATABASE ADD LOGFILE GROUP 5(‘D:\ORACLE\ORADATA\ORCL\redo05a.log’,’D:\ORACLE\ORADATA\ORCL\redo05b.log’)SIZE 5M;(15)ALTER DATABASE ADD LOGFILE MEMBER‘D:\ORACLE\ORADATA\ORCL\redo05c.log’ TO GROUP 5;(16)SHUTDOWN IMMEDIATESTARTUP MOUNTALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;ALTER SYSTEM ARCHIVE LOG START第6章数据库对象的创建与管理2.实训题(2)Create table exer_class(CNO number(2) primary key,CNAME varchar2(20),NUM number(3))Create table exer_student(SNO number(4) primary key,SNAME varchar2(10) unique,SAGE number,SEX char(2),CNO number(2))(3)Alter table exer_student add constraint ck_sage check (sage>0 and sage<=100);(4)alter table exer_student add constraint ck_stu check(sex='M' or sex='F')modify sex default 'M'(5)Create unique index ind_cname on exer_class(cname);(6)Create view s_c asSelect sno,sname,sage,sex,o,cname,numFrom exer_class c join exer_student sOn o=o;(7)Create sequence sequ1 start with 100000001;(8)create table exer_student_range(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by range(sage)(partition part1 values less than(20) tablespace example,partition part2 values less than(30) tablespace orcltbs1,partition part3 values less than(maxvalue) tablespace orcltbs2)(9)create table exer_student_list(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by list(sex)(partition man values('M') tablespace orcltbs1,partition woman values('F') tablespace orcltbs2)(10)Create index ind on exer_student_range(sno) local;第9章PL/SQL语言基础1.实训题(1)declarecursor c_emp is select * from employees;beginfor v_emp in c_emp loopdbms_output.put_line(v_emp.first_name||' '||v_st_name||' '|| v_emp.employee_id||' '||v_emp.salary||' '||v_emp.department_id); end loop;end;(2)declarev_avgsal employees.salary%type;beginfor v_emp in (select * from employees) loopselect avg(salary) into v_avgsal from employeeswhere department_id=v_emp.department_id;if v_emp.salary>v_avgsal thendbms_output.put_line(v_emp.first_name||' '||v_st_name||' '|| v_emp.employee_id||' '||v_emp.salary||' '||v_emp.department_id);end if;end loop;end;(3)declarecursor c_emp isselect e.employee_id eid,st_name ename,e.department_id edid,m.employee_id mid,st_name mnamefrom employees e join employees mon e.manager_id=m.employee_id;v_emp c_emp%rowtype;beginopen c_emp;loopfetch c_emp into v_emp;exit when c_emp%notfound;dbms_output.put_line(v_emp.eid||' '||v_emp.ename||' '||v_emp.edid||' '||v_emp.mid||' '||v_emp.mname);end loop;close c_emp;end;(4)declarev_emp employees%rowtype;beginselect * into v_emp from employees where last_name='Smith';dbms_output.put_line(v_emp.employee_id||' '||v_emp.first_name||' '||v_st_name||' '||v_emp.salary||' '||v_emp.department_id); exceptionwhen no_data_found theninsert into employees(employee_id,last_name,salary,email,hire_date, job_id,department_id)values(2010,'Smith',7500,'*****************.cn',to_date('2000-10-5','yyyy-mm-dd'),'AD_VP',50);when too_many_rows thenfor v_emp in(select * from employees where last_name='Smith')loopdbms_output.put_line(v_emp.employee_id||' '||v_emp.first_name||' '||v_st_name||' '||v_emp.salary||' '||v_emp.department_id);end loop;end;第10章PL/SQL程序设计(1)创建一个存储过程,以员工号为参数,输出该员工的工资。

ORACLE第5-7章 习题参考答案

ORACLE第5-7章 习题参考答案

第5章数据查询操作【填空题】1.WHERE,HAVING2.SUM3.%4.UNION,MINUS【选择题】1.C 2.A 3.D 4.A 5.A 6.B【简答题】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注入攻击防范方法目前已经有很多,总结起来有下面一些:●在服务端正式处理之前对提交数据的合法性进行检查;●封装客户端提交信息;●替换或删除敏感字符/字符串;●屏蔽出错信息。

●不要用字串连接建立SQL查询,而使用SQL变量,因为变量不是可以执行的脚本;●目录最小化权限设置,给静态网页目录和动态网页目录分别设置不同权限,尽量不给写目录权限;●修改或者去掉Web服务器上默认的一些危险命令,例如ftp、cmd、wscript等,需要时再复制到相应目录;数据敏感信息非常规加密,通过在程序中对口令等敏感信息加密都是采用md5函数进行加密,即密文=md5(明文),本文推荐在原来的加密的基础上增加一些非常规的方式,即在md5加密的基础上附带一些值,如密文=md5(md5(明文)+123456);2.请举例说明外连接的3种类型及其用法。

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

第5章重做日志管理
一、选择题
1. Oracle数据库重做日志由(B)后台进程写入联机重做日志文件。

A.DBWR
B.LGWR
C.ARCn
D.SMON
2. 重做日志缓冲区中的重做日志在(A、B)会被写入重做日志文件。

A.事务提交时
B. 重做日志缓冲区达到三分之一满,或者日志缓冲区内的日志量超过1MB时
C.每3秒过后
D.检查点发生时
3.改变Oracle数据库归档模式时,需要把数据库启动到(B)状态。

A.NOMOUNT
B. MOUNT
C. OPEN
D. CLOSE
二、简答题
请简述Oracle数据库重做日志从产生到归档的过程。

答:从创建数据库时,重做日志文件产生,用户在执行数据库操作时,服务器进程把重做记录从用户内存空间拷贝到SGA,它们首先被缓存在SGA的重做日志缓冲区内,之后由ORACLE数据库的后台进程写入进程把他们写入联机重做日志文件中,一个数据库至少有两个重做日志文件,一组当前处于写入状态,另一组重做日志用于归档操作。

在oracle数据库运行在归档模式时,发三个部分日志切换后,归档进程(ARCn,n为归档进程号,它可以是0-9,a-t,oracle中可以启动多达30个归档进程)将把填充过的联机重做日志文件复制到指定的一个或者多个位置存储,为他们创建脱机副本,归档完成。

三、实训题
1.练习把Oracle数据库从非归档模式修改为归档模式,之后创造条件让数据库立即归档,并检查归档是否成功。

(1)查看数据库的归档模式
archive log list;
(2)关闭数据库
shutdown normal/immedtate;
(3)吧数据库重新启动到mount状态
startup mount;
(4)把数据库修改为自动归档模式
alter database archivelog;
(5)打开数据库,供用户访问
alter database open;
(6)查看数据库的归档模式
archive log list
(7)让数据库立即自动归档
archive system switch logfile
(8)查看数据库是否归档
archive log list;
2.查看数据库当前重做日志文件组及成员的设置情况,之后为Oracle数据库添加一组
重做日志。

(1)查看数据库重做日志的信息
select group#,status,members from v$log;
(2)为数据库添加一组重做日志redo1a.log,大小为5MB。

alter database orcl add logfile group 6
('D:\oracle\oradata\orcl\redo01-1.log'')
size 5M
blocksize 512
reuse;
3.在上面操作的基础上,为刚添加的那组重做日志添加一个日志成员,实现重做日志的多路存储。

alter database orcl
add logfile member
'D:\oracle\oradata\orcl\redo01-2.log'
to group 6;。

相关文档
最新文档