您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 数据库高级复习提纲的参考答案
复习提纲1.你认为DBA的职责是什么?应该具备哪些技能?答:每个数据库的DBA职责和应具备的技能有所差别,下面拿oracle举例:职责:1.实时监控数据库告警日志这是必须进行的工作,并且应该根据不同的严重级别,发送不同级别的告警,及时了解数据库的变化与告警。2.实时监控数据库的重要统计信息实施监控对于数据库运行至关重要、能够表征数据库重要变化的统计信息,并且据此发送报警信息。那么应当监控哪些统计信息呢?大家可以思考一下,对于单机、RAC环境各不相同。3.部署自动的Statspack/AWR报告生成机制每天检查前日的AWR报告,熟悉数据库的运行状况,做到对于数据库了如指掌4.每天至少优化和熟悉一个TopSQL根据AWR或Statspack报告,每天至少了解或熟悉一个TopSQL,能优化的要提出优化和调整建议5.部署完善的监控和数据采样系统DBA应该对数据库部署完善的监控系统,并对重要信息进行采样,能够实时或定期生成数据库重要指标的曲线图,展现数据库的运行趋势。6.全面深入的了解应用架构不了解应用的DBA是没有前途的DBA,对应用了解不深入的DBA算不上Expert,所以一定要深入了解应用。7.撰写系统架构、现状、调整备忘录根据对数据库的研究和了解,不断记录数据库的状况,撰写数据库架构、现状及调整备忘录,不放过任何可能的优化与改进的机会。具备的技能:a.首先,必须懂ORACLE数据库。b.其次,必须让别人也知道你懂ORACLE,最好是具有认证(OCA,OCP)。c.Oracle的好处是在许多平台都可以运行,因此就是你必须明白如何让它在Solaris,HP-UX,WINDOWS,Linux,AIX,Tru64……等系统上跑起来,所以你也必须是系统管理员。d.由于ORACLE是基于网络的,所以在管理的时候,免不了用到许多网络的东西,所以DBA最好也是网络管理员,最好有个CCNA的证书。e.必须要有编程经验,编程语言最好是Java方面的。f.除了管理之外,另一方面也要协助开发人员做PROJECT,不管是B/S还是C/S那个S(server)总跑不了,所以DBA还要懂软件工程的知识。g.现在由于用ORACLE做网站的很多,因此,不管是APPLICATIONSERVER用的是ASP,JSP,ColdFusion还是别的什么,出了问题DBA要具备技能来处理以上的问题。2.为什么完整性约束的实施会极大地影响系统性能?你将在数据库应用系统中实现所有的约束吗?为什么?你对完整性约束的约束类型及其实施程度(全部实施、部分实施还是不实施)有什么样的建议?答:完整性约束用于增强数据的完整性,Oracle提供了5种完整性约束:1)Check2)NOTNULL3)Unique删除或禁用唯一性约束通常同时删除相关联的唯一索引,因而降低了数据库性能。经常删除或禁用唯一性约束有可能导致丢失索引带来的性能错误4)Primary5)Foreignkey3.一般而言,DBMS提供什么样的方法来实现完整性约束?答:分为过程性约束和非过程性约束提供非过程性约束用CREATETABLE及ALTERTABLE实现非过程性约束NOTNULLUNIQUECHECKPRIMARYKEYFOREIGNKEY在创建表的定义时提供语法支持:对于实体完整性提供的方法:创建表时定义主键,DBMS自动支持实体完整性定义表语句的基本语法CREATETABLE〈表名〉((列名数据类型[NOTNULL│NULL][UNIQUE][,列名数据类型[NOTNULL│NULL][UNIQUE]]…[,PRIMARYKEY(列名[,列名]…)][,FOREIGNKEY(列名[,列名]…)REFERENCES被参照表名]);对于参照完整性提供的方法:创建表时定义外键,DBMS自动支持参照完整性定义表语句的基本语法CREATETABLE〈表名〉((列名数据类型[NOTNULL│NULL][UNIQUE][,列名数据类型[NOTNULL│NULL][UNIQUE]]…[,PRIMARYKEY(列名[,列名]…)][,FOREIGNKEY(列名[,列名]…)REFERENCES被参照表名]);提供过程性约束用触发器实现过程性约束(由于不同的DBMS产品不同,因此没有统一的createtrigger语句)用触发器实现过程性约束4.为什么说视图是虚表?视图定义中WITHCHECKOPTION的作用是什么?视图在安全性方面有什么特别的作用?答:因为只是保存在数据库中的一段select语句,表中数据的逻辑表示,并不真正存放数据,像基表一样,所以是虚表。加强了表的安全性,用户只需访问视图,无需直接访问表。Withcheckoption的作用:如果视图定义包括条件(譬如WHERE子句)并且其意图是确保任何引用该视图的INSERT或UPDATE语句都应用WHERE子句,则必须使用WITHCHECKOPTION定义该视图。这个选项可以确保数据库中正在修改的数据的完整性。如果在INSERT或UPDATE操作期间违反了条件,则返回SQL错误。。5.视图的更新是否会破坏完整性约束?答:会。列子集视图可能破外参照完整性。行子集视图可能破坏实体完整性。6.为什么数据库系统中的安全性问题非常突出?答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或者是破坏。计算机系统都有这个问题,在数据库系统中有大量数据集中存放,为许多用户所共享,使得安全问题变得非常突出。7.数据库系统常采用哪些安全措施?这些安全措施用于解决怎样安全隐患或威胁?答:1)用户标识与认证用于解决:防止非法用户侵入系统2)存取控制用于解决:防止非授权的对模式对象的存取。防止非授权的数据库存取。3)审计用于解决:记录非法操作的人,时间和内容等。4)数据加密用于解决:防止数据在存储和传输的过程中失密。5)统计数据库用于解决:查出隐蔽的信息通道6)角色用于解决:同存取控制。8.在安全性控制方面,ORACLE、DB2与SQLSERVER分别提供哪些安全管理和控制机制?它们各有何特点?答:Oracle利用下列机制管理数据库的安全性。1)数据库用户和模式2)权限3)角色4)存储设置和空间份额5)资源限制6)审计SQLServer利用一下机制:1)授权2)用户3)角色4)许可5)使用视图和存储过程增强安全性DB2使用一下机制:1)认证2)权限和特权3)使用视图控制对对象的访问4)审计特点:ORACLE与DB2UDB都支持X/OpenSQL标准的Grant和Revoke语句的语法,只是在CASCADE|RESTRICT子句等细节方面不同ORACLE和DB2UDB都没有该必选的CASCADE|RESTRICT子句。ORACLE中语法的相应位置是一个可选的CASCADECONSTRAINTS子句,这将使系统只删除与被撤消的REFERENCES权限有关的参照完整性约束。DB2UDB中没有语法控制这种动作,当一个权限被撤消时,两个产品中与其有关的视图都缺省地变成无效的。ORACLE与DB2UDB都有很多附加权限ORACLE的安全性特征ORACLE支持角色的概念CONNECT–允许进入数据RESOURCE–允许创建数DBA–除拥有CONNECT和表的数据作操纵,并具有限自主访问控制通过角色授权通过正常方式授权审计AUDIT语句NOAUDIT语句DB2UDB的安全性特征DB2为用户赋予不同级别的权限(authorities)级和特权或权力(Privileges)数据库的4级权限SYSADM–系统管理SYSCTRL–系统控制SYSMAINT–系统维护DBADM–数据库管理数据库特权只有具有系统管理或数据库管理权限的用户才可以向其他用户授予或收回特权SQLServer2000中的安全性特征(角色):1)固定的服务器角色系统预先定义了一些服务器固有各自具有某种或某些操作SQLSe限。用户不能删除也不能创建新色。2)固定的数据库角色系统为每一个数据库预先定义数用户不能删除数据库固有角色,体的数据库中再创建新的数据库安用户定义的数据库角色9.在ORACLE、DB2与SQLSERVER中,数据字典(也就是所说的数据库中的元数据)被称为什么?包括哪些内容?主要作用是什么?以什么格式存放?以什么方式或命令查看?可以直接修改吗?答:oracle中就是数据字典,包括:1)所有oracle用户的信息2)表空间和数据文件的信息3)权限及角色的信息,如那个用户拥有那些权限4)模式对象的信息(如表,视图,过程,函数,包及触发器等)5)完整性约束的信息6)有关数据库中对象的空间分布及当前使用情况7)审计信息(如谁存取或修改过对象)8)其他一般的数据库信息。以基表和视图的形式存放,只有oracle能读写这些表,而对于一些视图对于oracle所有的用户都是可以存取的,而其他的一些视图只能是管理员(SYS)才能存取的。不能直接修改,DBMS帮我们自动修改。主要作用如下:1)Oracle通过存取数据字典以便获得有关用户模式对象以及存储结构等信息。2)当执行了DDL语句之后,oracle便自动修改数据字典。3)任何用户能够以只度读的形式获得数据库信息。通过select语句查看即可,只有三种前缀视图:DBA_USER_ALL_例如查询用户:selectusernamefromdba_users;(只有DBA才可以做这件事情。)DB2中是系统目录SQLSERVER中还是数据字典。10.在创建数据库和表时,你指定存储设备和所需的存储空间了吗?ORACLE是如何进行磁盘资源分配的?为了提高系统性能,你能在物理结构设计方面做哪些努力?答:Oracle的磁盘资源分配:ORACLE在逻辑上将保存的数据划分为一个个小单元来进行存储和维护,高一级的逻辑存储结构都是由基本的小单元构成1)块块是ORACLE用来管理存储空间的最基本单元;块是ORACLE执行I/O操作的基本单位;一个ORACLE块由一个或多个操作系统块组成;ORACLE块的大小在数据库创建时决定,以后不能再改;2)区区由一系列连续的块组成;块是ORACLE进行存储空间的分配和回收的基本单位;3)段段由多个区组成,这些区可以是连续的,也可以是不连续的;一般情况下,一个对象(数据库中保存有数据的对象,如表、索引等)只拥有一个段;不同类型的数据库对象拥有不同类型的段;表所对应的段称为数据段,索引所对应的段称为索引段;4)表空间数据库由若干个表空间组成;在创建数据库时会自动创建一个默认的SYSTEM表空间;通过使用表空间,ORACLE将所有相关的(属于某个应用的)逻辑结构和对象组合在一起;为了提高系统的性能,在物理结构设计方面可以:数据库的数据最终是存储在物理磁盘上的,对数据进行访问就是对这些物理磁盘进行读写,因此对于这些物理存储的优化是系统优化的一个重要部分。对于物理存储结构优化,主要是合理地分配逻辑结构的物理存储地址,这样虽不能减少对物理存储的读写次数,但却可以使这些读写尽量并行,减少磁盘读写竞争,从而提高效率,也可以通过对物理存储进行精密的计算减少不必要的物理存储结构扩充,从而提高系统利用率。1、磁盘读写并行优化:对于数据库的物理读写,Oracle系统本身会进行尽可能的并行优化,例如在一个最简单的表检索操作中,如果表结构和检索域上的索引不在一个物理结构上,那么在检索的过程中,对索引的检索和对表的检索就是并行进行的。2、操作并行优化:操作并行的优化是基于操作语句的统计结果,首先是统计各个表的访问频率,表之间的连接频率,根据这些数据按如下原则分配表空间和物理磁盘,减少系统进程和用户进程的磁盘I/O竞争;把需要连接的表格在表空间/物理磁盘上分开;把高频访问的表格在表空间/物理磁盘上分开;把经常需要进行检索的表格的表结构和索引在表空间/物理磁盘上分开。3、减少存储结构扩展:如果应用系统的数据库比较脆弱,并在不断地增长或缩小,这样的系统在非动态变化周期内效率合理,但是当在动态变化周期内
本文标题:数据库高级复习提纲的参考答案
链接地址:https://www.777doc.com/doc-2429113 .html