简答题

第一章
一、简述数据库模型经历了那些阶段,各有哪些优缺点

(1) 层次模型

优点:数据结构类似金字塔,不同层次之间的关联性直接而简单;

缺点:由于数据纵向发展,横向关系难以建立,数据可能会重复出现,造成维护不便。

(2) 网状模型

优点:容易反应实体之间的关联,同时还避免了数据的重复性。

缺点:关联错综复杂,而且当个数据库逐渐增多时,很难对结构中的关联进行维护。

(3) 关系模型

优点:结构简单、格式唯一、理论基础严格,数据表之间相互独立,可以在不影响其他数据表的情况下,进行数据的增加、修改和删除,在进行查询时,还可以根据数据表之间的关联性,从多个数据表中查询抽取相关信息。

缺点: 查询效率不如非关系模型。因此,为了提高性能,必须对用户的查询进行优化,增加了开发数据库管理系统的负担。

二、解释键、主键和候选键的区别

(1) 键

在关系中用来识别行的一列或者多列。

(2) 主键

主关键字是被挑选出来的,作为表行唯一标识的候选关键字,一个表只有一个主关键字。

(3) 候选关键字

是唯一标识表中的一行而又不含多余属性的一个属性集。

三、 简述数据库的三大范式,分别需要符合哪些条件?

(1) 第一范式:数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

指导原则:

l 数组的每个属性只能包括一个值。

l 关系中的每个数组必须包含相同数量的值。

l 关系中的每个数组一定不能相同。

(2) 第二范式

是第一范式的进阶,需要确保数据表中国的每一列都与逐渐相关,而不能只与主键的某一个部分相关。

l 在一个数据表中只能保存一种数据,不可把多种数据保存在同一张数据表中。

(3) 第三范式

需确保数据表中的每一列数据都与主键直接相关。

属性不依赖其他非主属性。

四、 基本的E-R图元素有哪几个?分别用什么形状来绘制。

(1) 实体

是实现世界中各种事物的抽象。方框表示

(2) 属性

实体一般具有若干特征,称为实体的属性。一个属性实际上相当于关系数据库中的表的一个列。椭圆表示

(3) 关系

实体之间存在各种关系。用菱形表示。

第二章

一、 简述oracle的安装及验证安装步骤

  1. 为了检验安装是否正确,最简单的方法是查看oracle的服务是否完整。在window操作系统下通过“控制面板”->“管理工具”->“服务”,打开系统服务窗口。
    

二、 简要介绍表空间的数据文件之间的关系

一个表空间在物理上可以对应一个或多个数据文件,而一个数据文件只能属于一个表空间。

三、 简要概述oracle数据库体系的物理结构

Oracle的物理存储结构指的是oracle运行时需要的屋里存储文件,分别是控制文件、数据文件、重做日志文件。

控制文件是一个很小的二进制文件,用于描述数据库的物理结构。存放有数据库中数据文件和日志文件的信息。在安装oracle时会自动创建控制文件。一个数据库通常会包含多个控制文件。

数据文件是在物理上保存数据库中数据的操作系统文件。

数据文件的特点为:

l 一个表空间由一个或多个数据文件组成。

l 一个数据文件只对应一个数据库。而一个数据库通常包含多个数据文件。

l 数据文件可以通过设置其参数,实现自动扩展功能

重做日志文件主要用于记录数据库中所有修改信息的文件,简称日志文件。通过日志文件不仅可以保证数据库的安全,还可以实现数据库的备份与恢复。为确保日志文件的安全,在实际应用中允许对日志文件进行镜像。

四、 简要介绍表空间、段、盘区和数据库之间的关系

Oracle数据库从逻辑存储结构上讲,表空间又多个段组成,段由多个区组成,区由多个数据块组成。其逻辑存储单元从小到大依次为数据块、区、段和表空间。

五、 介绍多进程oracle实例系统中,各后台进程的作用

(在多进程系统中,进程可以分为服务器进程、用户进程与后台进程)

后台进程的作用是提高系统的性能和协调多个用户。

  1. (数据库写入)DBWn进程,是oracle中采用最近最少使用算法将数据缓冲区中的数据写入数据文件的进程。
    
  2. 日志写入(LGWR)进程,负责将日志缓冲区中的日志数据写入磁盘的日志文件中。
    
  3. 系统监控(SMON)进程,用于数据库实例出现故障或系统崩溃时,通过将联机重做日志文件的条目应用于数据文件来执行崩溃恢复。
    
  4. 进程监控(PMON)进程,用于清除失效的用户进程,释放用户进程所用的资源。
    
  5. 归档进程(ARCn)进程,包含归档方式和非归档方式两种,主要用于将写满的日志文件复制到归档日志文件中,防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。
    
  6. 恢复(RECO)进程,存在于分布式数据库系统中,主要负责分布式数据库环境中自动恢复那些失败的分布式事物。
    
  7. 封锁(LCKn)进程,用于实现多个实例间的封锁,存在于并行服务器系统中。
    
  8. 调度(Dnnn)进程,用于将用户连接到服务器进程,存在于多线程服务器体系结构中。
    
  9. 快照(SNPn)用于处理数据库快照的自动刷新。
    

第三章

一、 简述使用OEM管理oracle的步骤

输入登录用户名和对应口令,使用默认的连接身份,进入“数据库实例:orcl”主页的“主目录”属性页。

在本页面中,可以对oracle系统进行一系列的管理操作:性能、可用性、服务器、方案、数据移动、以及软件和支持。

在“数据库配置”一档中,有数据库配置相关的内容,已连接的形式存在。

如果单击“安全性”一档中的“角色”或“用户”等链接,或者单击“存储”中的表空间等链接,在进入相应的页面后,还可以进行创建、编辑、查看、删除等操作。

二、 简述SQL plus连接和断开数据库连接的方法

连接:运行SQL plus有两种方式,一种通过“开始”菜单进行选择,另一种是通过命令行启动。

打开SQL plus窗口,显示登录界面。根据提示输入相应的用户名和口令后按enter键,将连接到数据库。

断开:

通过输入DISCONNECT 命令可以断开数据库连接。并保持SQL plus的运行。可以通过输入connect命令重新连接到数据库。要退出SQLplus,可以输入EXIT和QUIT命令。

三、 如何使用SQL plus执行命令,以及与文件进行交互?

分别使用START、EDIT、SPOOL等命令与文件进行交互。

四、 简述在SQL plus中使用变量的方法。

在某变量中使用&符号,表示该变量是临时变量临时变量可以使用where字句、order by字句、列表达式和表名中,甚至可以表示整个select语句。

在SQL语句中,可以在使用变量之前对变量进行定义,然后在同一个SQL语句中可以多次使用这个变量。DEFINE命令既可以用来创建一个数据类型char的变量,亦可以用来查看已经定义好的变量。

五、 SQL plus未格式化结果集提供了哪些方法?

没找到

六、 简述SQL developer创建表,以及向表添加数据的步骤。

在SQLdeveloper中使用scott用户连接到数据库,然后在connections窗格中展开连接,并右击tables表选择new table命令。打开create table对话框,在name文本框中指定表名为departments,启用advanced复选框,打开高级设置对话框。在NAME文本框输入DID,从type中选择number作为类型,在precision文本框中输入“6”在启用cannot be NULL
复选框,使列不能为空。步骤太多了,放弃

添加数据:从tables节点下单击departments表名,在右侧打开打他选项卡。单击“插入后”按钮,下方会出现一个空白行。在空白行中依次为did列、dname列和did列指定值,再单击“提交修改”按钮进行保存。

七、 简述SQL developer创建、保存、编译和运行存储过程的步骤。

太多了略

八、 简述oracle net configuration assistant工具和oracle net manager工具的作用及两者的区别。

oracle net
configuration assistant简称oracle网络配置助手,为用户提供了一个图形化的向导界面,用来配置oracle数据库的监听程序、命名方法。本地net服务名和目录配置等。

oracle net
manager简称oracle网络管理器,与oracle网络配置助手具有类似的功能,oracle网络配置助手总是以向导的模式出现,引导用户一步一步进行配置,非常适合初学者。而oracle网络管理器将所有配置步骤结合在一个界面中,更适合熟练地用户的快速操作。可以用来服务命名、监听程序、概要文件等。

第四章

(一) 要向表中添加列有哪些实现方式?

ALTER TABLE
TABLE_NAME ADD LIST_NAME DATA_TYPE

(二) 简述在列中使用空和非空的意义。

所谓非空约束,就是指限制一个列不允许有空值,与它对应的空值约束,即null与not null约束。分别表示允许列为空和不允许列为空,保证输入的字符符合规定。

(三) 简述primary key约束所受到的限制。

在一个表中,只能定义一个primary key.

定义为主键约束的列或者组合中,不能包含任何重复值,并且不能包含null值。

Oracle数据库会自动为具有主键约束的列建立一个唯一索引,以及一个not null约束。

(四) 简述创建FOREIGN KEY 约束时应遵循的基本原则。

如果某列定义为外键约束,则该列的取值只能为相关列表中引用列的值或者null值。

可以为一个字段定义外键约束,也可以为多个字段的组合定义外键约束。既可以在列级别定义,也可以在表级别定义。

定义了外键约束的外键列,与被引用的主键可以存在于同一个表中,称为“自引用”

对于同一个字段,可以同时定义外键约束和非空约束。

(五) 什么是延迟约束?

延迟约束是指执行增加和修改操作时oracle不会立即做出回应和处理,而是在规定条件下才会被执行。

第九章

(一) 简述控制文件在oracle中的重要性。

在oracle数据库启动过程中,需要打开控制文件,因为它保存了oracle系统需要的其他文件的存储目录和物理数据库相关的状态信息。

控制文件是oracle数据库最重要的的物理文件,它以一个非常小的二进制文件存在,其只能更主要保存了一下内容。数据库名和标识、数据库创建时间和时间戳、表空间名、数据文件和日志文件名称和位置、当前日志文件的序列号、最近检查点信息、恢复管理器信息。

(二) 创建控制文件的步骤是什么?有哪些注意事项?

1 首先查询数据库中的数据文件和日志文件信息,了解文件的路径和名称。可以通过V$DATAFILE

2 关闭数据库

3 备份前查询出来的所有数据文件和日志文件。备份的方式有很多种,建议采用操作系统的冷备份方式。

4 使用STARTUP NOMOUNT 命令启动数据库实例,但打不开数据库

5 创建新的控制文件。在创建时指定前面查询出来的所有数据文件和日志文件。

6 修改服务器参数文件SPFILE中参数CONTROL_FILES的值,让新创建的控制文件生效。

7 使用ALTER DATABASE OPEN命令打开数据库。

(三) 简述控制文件的备份与恢复过程。

Oracle允许将控制文件备份为二进制文件或者脚本文件。

备份为二进制文件,实际就是复制控制文件,需使用alter database backup controlfile语句,并指定目标文件的位置。

备份为脚本文件,实际上就是生成创建控制文件的sql脚本。

如果数据库正在运行,我们应先关闭数据库,再将完整的控制文件复制到已经丢失或者出错的控制文件的位置,但是要更改该丢失或者出错控制文件的名字。如果存储丢失控制文件的目录也被破坏,则需要重新创建一个新的目标用于存储新的控制文件,并为该控件文件命名。

(四) 简述日志文偶件在oracle中的重要性。

Oracle中的日志文件记录了数据库的所有修改信息,如果没有日志文件,数据库的恢复操作将无法完成。而日志文件就是把用户变化的数据首先保存起来,其中LGWR 进程负责把用户更改的数据先写到日志文件中。

(五) 日志文件组的日志成员大小一致吗?为什么?

在一个日志组中,至少有一个日志文件,并且同一日志文件组的不同日志文件可以分布在不同的磁盘目录下,在同一日志组的所有日志文件大小都相同。

(六) 简述清空和删除日志文件组时应该注意哪些问题。

删除日志组时,需要注意如下几点:

1 一个数据库至少需要两个日志文件组

2 日志文件组不能处于使用状态。

3 如果数据库运行在归档模式下,应该确定该日志文件组已经被归档。

清空日志文件时,需要注意如下两点:

1 被清空的日志文件组不能处于current状态,也是说,不能清空数据库当前正在使用的日志文件组。

2 当数据库中只有两个日志文件组,不能清空日志文件组。

第十章

(一) 简单说出PL/SQL的编写规范。

标识符命名规范:当定义变量时,建议使用V-作为前缀,例如v-sal、v-job等。当定义常量时,建议使用c-作为前缀,例如从c-rate.当定义pl/sql记录类型时,建议使用-record-type作为后缀,例如emp-record-type。

大小写规则:SQL关键字采用大写格式,例如select、update、set、where等。PL/SQL关键字采用大写格式,例如declare、begin、end等。数据类型采用大写格式,例如int、varchar 2 、date等。

(二) 对于变量名命名的规则有哪些?

规则有:变量名以字母开头,不区分大小写。

变量名由字母、数字以及$、#或-和特殊字符组成。

变量长度不应该超过30个字符。

变量名中不能包含有空给。

尽可能避免出现oracle的关键字。

(三) 常量的特点是什么?

常量时声明一个不可改变的值,常量通常都是在排列pl/SQL块中声明部分声明的。

(四) 对于异常的处理机制有哪三种?

系统异常、非系统异常、自定义异常

(五) PL/SQL中经常使用到的三种循环结构是那些,其区别是什么?

LOOP循环、while循环、FOR循环

LOOP循环:statement是loop循环体中的语句块,无论是否满足条件,statements至少会被执行一次。当condition为true时,退出循环,并执行END LOOP
后的相应操作。

while循环:是在loop循环基础上添加的循环条件,只要满足while条件后,才会执行循环体的内容。当while循环时,应当定义循环控制变量,并再循环体内改变循环控制变量的值。

FOR循环:是在loop循环的基础上添加的循环次数。由于for循环中的循环变量可以由循环语句自动创建并赋值,并且循环变量的值在循环过程会自动递增或者递减,所以使用for循环语句时,不需要在使用declare语句定义循环变量,也不需要再循环体中手动控制循环变量的值。

更多推荐

oracle基础简答题复习资料