数据库管理及应用考试题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.说明NOSQL数据库的优劣势,同学演讲中的NOSQL数据库?
答:NOSQL数据库的优劣势:版本1
NoSQL的优势:1)灵活的数据模型2)弹性扩展3)经济性
NoSQL的劣势:1)不提供对SQL的支持2)支持的特性不够丰富3)现有产品不够成熟
2.什么是细粒度数据访问?实现细粒度数据访问控制需要什么步骤或者条件?
细粒度访问控制允许限制Oracle用户,使他们只能使用你让他们访问和修改数据。使用策略函数有利于细粒度访问控制,策略函数附加到想要保护的标或者视图上,它使用动态可修改的语句将用户约束或者限制在表、视图或同义词的某些成分中。
步骤:
(1)创建给用户的DML语句动态增加一个谓词的策略函数
(2)用户输入下面的一条语句SELECT*FROM orders;
(3)Oracle将使用你创建的策略函数动态修改用户的语句;
(4)Oracle 使用SYS_CONTEXT(‘USERENV’,’SESSION_USER’)返回的用户名对原查询进行修改,从而限制从Oracle表返回的数据仅为该用户的数据。
3.什么是ARIES算法?使用了什么技术减少恢复时间
什么是ARIES算法:
它试图以概念上相对简单且系统化的方式,提供一套能确保事务原子性和持性的、具有良好性能的恢复管理算法。它能与绝大多数并发控制机制很好协调工作的。
这里使用并发封锁控制默认时都假定使用基于strict-2PL协议的封锁调度器,并假设主要基于页级封锁。少数场合,如逻辑日志中,也可能涉及元组级封锁。
使用了什么技术减少恢复时间:
采用基于‚steal/no-force‛工作模式。
使用日志顺序号(LSN)标志日志记录,在数据库页中用LSN标志哪些更新已经在数据库页上实施过。
使用脏页表最大程度地减少恢复时不必要的重做。(脏页表:该页变脏的最早LSN)
使用模糊检查点机制,只记录脏页信息和关联的信息,甚至不要求将脏页写到磁盘。
6.说明一般DBMS的层次结构和Oracle数据库体系结构
DBMS层次结构:
应用层:处理各种各样的数据库应用,是RDBMS与用户、应用程序的界面层;
语言翻译处理层:处理数据库语言,如SQL向上提供的数据接口是元组的集合;
数据存取层:介于语言层和数据存储层之间,向上提供单元借接口,向下则以系统缓冲区的存储器接口作为实现基础,处理单个元组,把集合操作化为但记录操作并执行;
数据存储层:处理数据页和系统缓冲区。
Oracle体系结构:
存储结构:由逻辑存储、物理存储组成
内存结构:由SGA、PGA组成
进程结构:由用户进程和Oracle进程(包括服务进程和后台进程)组成
其中内存结构、进程结构合称为一起被称为Oracle实例;存储部分称为数据库。
DB 服务器:由一个实例(instance)和一个数据库(database)组成
后台进程与:Database Writer (DBWn)、Log Writer (LGWR)、System Monitor (SMON)、Process Monitor (PMON)、Checkpoint (CKPT)、Archiver (ARCn)
SGA(System global area)系统全局区:在实例启动时分配,是实例基本组件,可由server processes和background processes共享;
PGA(Program global area)程序全局区:在server process启动时分配;
其中系统全局区包括shared pool 共享池、database buffer cache 数据库缓存、redo log buffer cache重做日志文件,large pool大型池和java pooljava池是可选的。
shared pool共享池包括:Library cache (库缓存)和Data dictionary cache (数据字典缓存)
数据字典缓存:最近最常使用的数据库定义的信息(表,项等属性定义)
库缓存:存储最近最常使用的SQL和PLSQL查询语句
重做日志缓存:记录数据库块所做的所有修改
7.解释explain plan输出,给出一个查询执行计划,分析查询语句的执行过程
计划中的每一步都以行集的形式返回输出到上一步
从最里面的行开始向外阅读计划
如果两个操作在缩排方面是同一级的,那么从最上面的第一个开始阅读
8.说明B+树索引、仿图索引、反向索引和函数索引的选用原则
(1)B+树索引是最常见的索引结构,默认建立的索引就是这种类型的索引。在检索高基数数据列时提供了最好的性能。当取出的行数占总行数比例比较少时,比全表检索提供了更有效的方法。
(2)位图索引适用于低基数的列数据。这意味着被索引的列只有很少的不同值。索引是压缩的,性能比B-树索引好。但如果在被索引的列上要进行许多操作,就会导致某些问题。主要用于决策支持系统或静态数据,不支持行级锁定。
(3)索引组织表特别适用于需要根据主键来查询的情况。它是以B-树索引结构存储数据的表,包括了键和非键列。
(4)拼接索引:被拼接的索引包含where列表中的所有列时使用
(5)基于函数的索引:对于经常使用的语句包含有对某个列的函数或复杂表达式的情况是非常有效的
(6)反向索引是B树索引的一个分支,运用在某些特定的环境下。在处理依次增加的列时,反向键索引提供一种有效的方式使得索引值的分布更均匀,从而改进性能。为了降低在并行服务器环境下索引页块的争用。
9.数据仓库是什么,同学演讲举了什么例子关于数据仓库和数据挖掘。什么时候使用直方图?
数据仓库就是面向主题的、集成的、稳定的、时变的数据集合,用来支持经营管理的决策制定过程。困难:缺乏组织、效率低。
1.Optimizer做些什么?Oracle提供了哪些索引来应用到不同场合?
答:Optimizer做SQL 转换、选择访问路径、选择联结方式、选择联结次序
第二问:Oracle提供以下六种索引
(1)B+树索引是最常见的索引结构,默认建立的索引就是这种类型的索引。在检索高基数数据列时提供了最好的性能。当取出的行数占总行数比例比较少时,比全表检索提供了更有效的方法。
(2)位图索引适用于低基数的列数据。这意味着被索引的列只有很少的不同值。索引是压缩的,性能比B-树索引好。但如果在被索引的列上要进行许多操作,就会导致某些问题。主要用于决策支持系统或静态数据,不支持行级锁定。
(3)索引组织表特别适用于需要根据主键来查询的情况。它是以B-树索引结构存储数据的表,包括了键和非键列。
(4)拼接索引:被拼接的索引包含where列表中的所有列时使用
(5)基于函数的索引:对于经常使用的语句包含有对某个列的函数或复杂表达式的情况是非常有效的
(6)反向索引是B树索引的一个分支,运用在某些特定的环境下。在处理依次增加的列时,反向键索引提供一种有效的方式使得索引值的分布更均匀,从而改进性能。为了降低在并行服务器环境下索引页块的争用。