数据库程序员面试分类真题4.docx
《数据库程序员面试分类真题4.docx》由会员分享,可在线阅读,更多相关《数据库程序员面试分类真题4.docx(17页珍藏版)》请在优知文库上搜索。
1、数据库程序员面试分类真题4筒答题1. 什么是反范式?反范式有什么优缺点?正确答案:数据库设计要严格遵守范式,这样设计出来的数据库,虽然思路很清晰,结构也很合理,但是,有时候却要在一定程度上打破范式(江南博哥)设计。因为范式越高,设计出来的表可能越多,关系可能越复杂,但是性能却不一定会很好,因为表一多,就增加了关联性。特别是在高可用的O1.TP数据库中,这一点表现得很明显,所以就引入了反范式。不满足范式的模型,就是反范式模型。反范式与范式所要求的正好相反,在反范式的设计模式中,可以允许适当的数据冗余,用这个冗余可以缩短查询获取数据的时间。反范式其本质上就是用空间来换取时间,把数据冗余在多个表中,
2、当查询时就可以减少或者避免表之间的关联。反范式技术也可以称为反规范化技术。反范式的优点:减少了数据库咨询时表之间的连接次数,可以更好地利用索引进行筛选和排序,从而减少了I/O数据量,提高了查询效率。反范式的缺点:数据存在重复和冗余,存在部分空间浪费.另外,为了保持数据的一致性,必须维护这部分冗余数据,因此增加了维护的复杂性。所以,在进行范式设计时,要在数据一致性与查询之间找到平衡点,因为符合业务场景的设计才是好的设计。范式和反范式的对比见下衣。模型优点缺点鸟式化模数据没有冗余,更新容易当表的数量比较多,查询设计需要很多关联模型(Join)时,会导致查询性能低下需要维护冗余数据,从目前NoSQ1
3、.的发展可以看到,对磁盘空间的消耗是11r以接受的数据冗余将带来很好的读取性能反范式化(因为不需要关联很模型多表,而且通常反范式模型很少做更新操作)考点反范式2. 常见的数据库反范式技术有哪些?正确答案:在RDBMS模型设计过程中,常常使用范式来约束模型,但在N。SQ1.模型中则大量采用反范式。常见的数据库反范式技术包括:1)增加冗余列。在多个表中保留相同的列,以减少表连接的次数。冗余法以空间换取时间,把数据冗余在多个表中,当查询时可以减少或者避免表之间的关联。2)增加派生列。表中增加可以由本表或其他表中数据计算生成的列,减少雀询时的连接操作并避免计兑或使用集合函数。3)表水平分割。根据一列或
4、多列的值将数据放到多个独立的表中,主要用于表的规模很大、表中数据相对独立或数据需要存放到多个介质的情况。4)表垂直分割。对表按列进行分割,将主键和一部分列放到一个表中,主键与其他列放到另一个表中,在查询时减少I/O次数。例如,有学生表与课程表,假定课程表要经常被查询,而且在查询中要显示学生的姓名,则查询语句为SE1.ECTCODE,NAME,SUBJECTI-ROMCOURSEC,STUDENTSWHERES.ID=C.CODEWHERECODE=?如果这个语句被大范围、高频率地执行,那么可能会因为表关联造成定程度的影响,现在,评估到学生改名的需求是非常少的,那么,就可以把学生姓名冗余到课程表
5、中。注意:这里并没有省略学生表,只不过是把学生姓名冗余在了课程表中,如果万一有很少的改名需求,只要保证在课程表中改名正确即可。那么,修改以后的语句11J以简化为SE1.ECTCODE,NAME,SUBJECTFROMCOURSECWHERECODE=?考点反范式3. 事务可以分为哪几类?正确答窠:从事务理论的角度来看,可以把事务分为以下几种类型:1)扁平事务(FIatTransactions)o2)带有保存点的扁平事务(FIatTransactionswithSavepoints)o3)链事务(ChainedTransactions)o4)嵌套事务(NeStedTransactions)05)
6、分布式事务(DiStribUtedTransactions)0考点分类4. 什么是XA事务?正确答案:XA(extendedArehiteCtUre)是指由X0pen组织提出的分布式交易处理的规范。XA是一个分布式事务协议,由TUXedo提出,所以,分布式事务也称为XA事务。XA协议主要定义了事务管理器(TranSaCtionManager,TM,协调者)和资源管理器(RCSoUrCCManager,RM,参与者)之间的接口。其中,资源管理器往往由数据库实现,例如OraCIe、DB2、MySQ1.,这些商业数据库都实现了XA接口,而事务管理器作为全局的调度者,负责各个本地资源的提交和回滚。XA
7、事务是基于两阶段提交(TWo-PhaSeCommit,2PC)协议实现的,可以保证数据的强一致性,许多分布式关系型数据管理系统都采用此协议来完成分布式。阶段一为准备阶段,即所有的参与者准备执行事务并锁住需要的资源。当参与者准备好时,向TM汇报自己已经准备好。阶段二为提交阶段。当Tv确认所有参与者都准备好后,向所有参与者发送COMMlT命令。XA事务允许不同数据库的分布式事务,只要参与在全局事务中的每个节点都支持XA事务。Oracle.MySQ1.和SQ1.Server都支持XA事务。XA事务由一个或多个资源管理器(RV)、一个事务管理器(TM)以及一个应用程序(APPliCationPrOgr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 程序员 面试 分类
