【系统分析师之路】第十五章 复盘数据库系统(数据库案例分析)

本文回顾了数据库系统案例分析在系统分析师考试中的重要性,详细解析了历年真题中涉及的数据库技术,如分区存储、分布式数据库、索引优化、数据备份与恢复等,并探讨了数据库设计与性能调优的最佳实践。

【系统分析师之路】第十五章 复盘数据库系统(数据库案例分析)

前言部分 历年真题考点分析
1)考点分析

从数据库章节历年真题的分值来看,它绝对是系统分析师考试中的重点中的重点了。
首先说说论文,数据库的论文一共考查过两回,分别考查了非关系数据库和数据库集群,但对于数据库的考查更多还是偏向新技术来考查(考查的年份看,当年该技术就是数据库的新技术)。
接下来说说数据库的案例分析,数据库的案例几乎是年年考,一上来就是考查个25分,只有两年是没有单独考查数据库的,有一年还考查了两道大题。每一个大题考查一块知识点,其中1-2小题偏向基础概念,1-2小题侧重案例背景的实际运用。从最新的趋势来看,为了适应高并发,数据的缓存与分区应该是数据库考查的一个倾向。

2)重要知识点

2007下案例真题:主要考查数据库物理分区存储,表空间的概念,分区存储的好处有哪些。
2008上案例真题:主要考查分布式数据库的基本概念,优缺点,数据库分片技术,分布式数据库设计原则
2008下案例真题:数据库性能相关的真题,SQL语句性能优化,主要优化方法(建立索引,物化视图,增加冗余,缓存数据等)
2009上案例真题:数据库的备份与恢复,数据库安全策略(对内对外攻击应对),数据库故障的三种类型,冷备与热备的优缺点;
2010上案例真题四:联邦数据库和数据仓库的概念与特征;
2011上案例真题四:非关系数据库的概念,NoSQL支持的数据类型,NoSQL存在的问题和优势;
2013上案例真题四:逆规范化的概念,非规范模式存在的问题,逆规范化的五种方法,逆规范化的优点及不足之处;
2016上案例真题:数据库并发控制,锁机制;
2017上案例真题二:数据库设计的基本概念;三个设计阶段;
2017上案例真题四:数据库反规范化,物理数据分区技术,三种数据分区技术的比较;
2018上案例真题四:视图的概念,视图的优点和缺点;关系数据库与NoSQL的同步问题;物化视图的概念;
2019上案例真题四:数据库读写分离,主从复制技术;NoSQL数据库的特点;不用数据库数据同步的方法;
2020下案例真题四:数据库索引技术的优缺点,主从复制的原理基本步骤;

第二部分 案例分析历年真题

2007下案例分析历年真题(25分)

2007年下案例分析试题五(数据库系统)
阅读以下关于数据库审计建设方面的叙述,在答题纸上回答问题1至问题3。
当前许多国家对数据库应用系统提出了明确的审计要求,要求数据库应用系统的DBA为财政、商业和卫生保健数据库保留审计跟踪信息,美国政府甚至要求保证长达7年的审计跟踪信息在线。
一般在数据库中只是插入审计跟踪信息。审计跟踪数据在正常操作期间(不管是OLTP还是数据仓库)从不获取,主要作为一种事后证据存放在磁盘上,占据一定甚至很大的磁盘空间,而且必须每个月或每年(或者间隔固定的一段时间)对其净化或归档。
当前的数据库审计功能主要采用了分区和段空间压缩技术。利用这些技术,数据库审计不仅是可以忍受的,而且很容易管理,并且将占用更少的空间。
按月对审计跟踪信息分区的方法是:在第一个业务月中,只是向分区表中插入审计信息,这个月结束后,向表中增加一个新的分区,以容纳下个月的审计信息并将上一个月的分区从可读写表空间移动到一个只读的表空间中。采用这种方式,就可以一个月备份一次该只读表空间。
【问题1】(9分)
请用200字以内的文字叙述分区技术的概念及采用分区技术后带来的好处。
【问题2】(10分)
如果采用本题所述的按月分区方法,请用300字以内的文字描述审计建设的表空间有哪些,并简述其作用,同时请说明段压缩技术在表空间创建中的具体应用。
【问题3】(6分)
请用150字以内的文字简述此种按月分区方式的优点

【问题1标准答案】
该过程是将一个表或索引物理地分解为多个更小,更可管理的部分。就访问数据库的应用而言,逻辑上讲只有一个表或者一个索引,但在物理上这个表或索引可能由数十个物理分区组成。每个分区都是一个独立的对象。可以独自处理也可以作为一个更大对象的一部分进行处理。
分区的好处:
1)提高数据可用性
无论在数据仓库还是OLTP系统中都提高了数据的可用性。可用性的提高来源于每个分区的独立性。
2)减少管理负担
由于从数据库中去除了大段,相应的减轻了管理的负担,在一个100GB的表上管理操作肯定比在各个10GB的表上执行10次相同的操作负担要大得多。
3)改善某些查询的性能
主要是在大型仓库环境中有此好处。通过使用分区,可以消除很大的数据区间,从而不必考虑它们,相应的不必访问这些数据,但在事务性系统中并不适用。因为在这些系统中本身就只是访问少量的数据。
4)减少大容量OLTP系统上的竞争
可以把修改分布到多个单独的分区上,从而减少大容量OLTP系统的竞争,如果一个段遭遇了激烈的竞争,可以把它分为多个段,从而成比例的减少竞争。
【问题2标准答案】
表空间的创建包括的表空间有:当月审计信息表空间,当年历史审计表空间和历年审计信息表空间。其中历年审计信息表空间为一年一个表空间。
表空间的作用:
1)当月审计信息表空间
一个当前在线的读写表空间。像系统中每一个正常的表空间一样,得到备份。审计跟踪信息不会被压缩,只是向其中插入当前月份的审计跟踪数据。
2)当年审计信息表空间
一个只读表空间。其中包含当前一年的审计跟踪信息分区。在此采用一种压缩格式,在每个月的月初,置该表空间为可读写,向这个表空间中移入上个月的审计信息,并进行压缩,再使之称为只读表空间,并完成备份。
3)历年审计信息表空间
用于去年前年等一系列表空间,这些都是只读表空间。甚至可以放在很慢的廉价存储介质上,如果出现介质故障,只需要进行备份恢复。
段压缩技术的作用:主要用于当年审计信息表空间和历年审计信息表空间中,对数据进行压缩,以减少磁盘占用的空间
【问题3标准答案】
采用这种方法的好处:
1)很容易的完成净化(即删除一个分区)
2)归档也很轻松,只需先重新复制一个备份的表空间后再恢复。
3)通过实现压缩可以减少空间的占用,备份的工作量会减少。

2008上案例分析历年真题(25分)

试题四
阅读以下关于分布式数据库的叙述,在答题纸上回答问题1至问题3。
随着传统的数据库技术的成熟和计算机网络技术的发展,分布式数据库系统的研究与开发受到人们越来越多的关注。分布式数据库支持数据独立性和分布透明性。用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心副本的一致性问题。
【问题1】(9分)
请用200字以内的文字叙述分布式数据库的主要特性和优缺点。
【问题2】(7分)
在数据库中,某个业务表中的数据量很大,急速膨胀,在这样的情况下,为了保持高的数据响应速度,根据数据的(1)和(2)原则,可以对数据表进行分片设计。一般有两种分片方法:(3)和(4) 。
请在空(1)、(2)、(3)和(4)处填写恰当的内容,并用200字以内的文字叙述数据表分片满足的条件并给出简要说明。
【问题3】(9分)
分布式数据库中各局部数据库应满足集中式数据库的基本需求,除此以外还应保证数据库的数据全局(5)、并发操作的(6)和故障全局(7) 。
请在空(5)、(6)和(7)处填写恰当的内容并用300字以内的文字简述保持数据库一致性的方法

【问题1标准答案】
分布式数据库具有物理分布性,位置自治性与协作性,支持数据独立性,集中与自治相结合的控制,适度数据冗余度,分布的事务管理。
优点:
具有灵活的体系结构
分布式的管理和控制
系统具有高可靠性和可用性
高扩展性
局部处理
响应速度快
经济性能优越
缺点:
系统通信开销较大
复杂的存取结构
保持数据一致性的算法比较复杂
数据的安全性和保密性要求高
【问题2标准答案】
1)时间局部性
2)空间局部性
3)水平分片
4)垂直分片
数据表分片满足的条件
1)完备性条件
必须把全局关系的所有数据映射到片段中,绝不允许有属于全局关系的数据却未被映射到任何一个片段。
2)可重构条件
必须保证能够由同一个全局关系的各个片段来重建该全局关系。对于水平分片,可用并操作重构全局关系。对于垂直分片,可用联接操作重构全局关系。
3)不相交关系
要求一个全局关系被分割后,所得的各个数据片段互不重叠,对垂直分片的主键除外)。
【问题3标准答案】
1)一致性
2)可串行性
3)可恢复性
保持数据库一致性的方法:数据副本的一致性,保证分布式事务的ACID属性,故障恢复的一致性。

2008下案例分析历年真题(25分)

试题四
阅读以下关于数据库性能优化方面的叙述,在答题纸上回答问题1 至问题4。
公司核心业务系统运行性能不佳,尤其是针对数据库的操作,响应时间过长。为此,该企业专门召开了解决该问题的专家研讨会。在会上刘工指出,当前硬件设备的价格比较低廉,只需要对数据库服务器的硬件设备进行升级,同时对数据库管理系统和操作系统中的相应参数进行调整就可以了;王工建议对应用系统中使用的 SQL 语句进行调优,针对每条 SQL 语句都建立对应的索引;张工认为该业务系统中存在大量的数据查询操作,更新操作不多,尤其是存在大量的只读查询操作,应该针对这一点进行优化。
公司采取了专家的部分建议,但优化的结果仍然不尽人意,通过专门的监控,发现数据库管理系统中建立的索引存在问题。
【问题1】(5 分)
对上述专家意见和建议进行评价;给出自己的建议,并说明其中包含的内容。
【问题2】(6分)
简要说明王工建议中SQL语句优化的基本策略。
【问题3】(8分)
王工提出的针对每条 SQL 语句都建立索引的建议是否合适?简要说明还可以考虑的其它索引调整的原则。
【问题4】(6分)
请简要说明针对大量只读查询操作进行优化的主要方法

【问题1标准答案】
上述各个专家的建议均不完整。
基于数据库的业务系统一般在进行调优的时候,需要具体问题具体分析。全面的分析方案应该包括以下三方面的内容。
1)对系统中的业务数据进行搜集,判断当前硬件设备是否足够。
2)对应用系统进行分析,对业务系统的类型进行确认,如联机事务处理和数据仓库对数据库的要求差异很大。
3)对应用系统中的SQL语句,索引等进行分析
【问题2标准答案】
SQL语句常见的优化操作有:
1)经常提交Commit,以尽早释放锁
2)只检索需要的列
3)用带条件IN的子句替代OR子句
4)以不相干子查询替代相关的子查询
5)建立物化视图或尽可能减少多表查询
【问题3标准答案】
不合适。一般来讲针对查询语句,建立适当的索引以提高查询效率。但是索引调整时还需要考虑如下原则:
1)如果更新操作成为了系统的瓶颈,因为每次更新操作都会重建表的索引,因此需要考虑删除某些索引。
2)选择适当的索引类型。如果经常使用范围查询,则B树索引比散列索引更加高效。
3)将有利于大多数数据查询和更新的索引设置为聚簇索引。
同时需要对建立的索引进行实际的测试,因为索引的使用是由数据库管理系统决定的。如果建立索引不当,数据库管理系统将会不利用已经建立的索引,而采取全表扫描。
【问题4标准答案】
1)数据量小的数据,可以考虑不存储在数据库中,而是通过程序常量的方式来解决
2)需要存储在数据库中的数据,可以考虑采用物化视图
3)数据存储时可以考虑适当的数据冗余,以减少数据库表之间的连接操作,提高查询效率
4)针对数据的特点,采取特定的索引类型,例如位图索引等

2009上案例分析历年真题(25分)

试题四
银行金融系统对数据库中的数据安全要求很高,必须在技术层面上采用必要的措施,以保证数据的有效和不丢失。数据库的备份与恢复是保证数据安全的一种基本方法,一般将数据库备份划分为冷备份、热备份和数据导出,而数据导出根据导出数据的范围,又可以分为完全导出、增量导出和累计导出。
该金融系统上线初期,整个业务系统采用了内网方式运行,不与外网发生联系。为了保证数据库内部数据的安全,该银行信息中心的刘工提出的备份方案如表4-1所示。
在这里插入图片描述
信息中心的李工对刘工的方案提出了异议,认为数据库一旦发生故障,刘工的方案无法做到数据库的实时恢复,会导致业务数据的丢失,银行应该采用数据库冷备份和热备份相结合的方式来完成数据库的备份。
【问题1】
针对金融数据库安全,从技术层面上分析应重点考虑哪些因素?
【问题2】
请用200字以内的文字评价刘工的备份策略的优缺点。
【问题3】
请分别说明冷备份和热备份的概念,并补充下表中的空(1)〜(6)。
在这里插入图片描述
【问题4】
银行金融系统需要支持数据库的实时/秒级恢复(即恢复到故障之前的时间点上),请设计合理的备份策略,并说明其基本恢复过程。

【问题1标准答案】
对数据库内部故障的考虑,包括了事务故障,系统故障和介质故障三种。
对数据库外部攻击的考虑,包括计算机病毒,利用软件漏洞的黑客攻击和SQL注入攻击等。
【问题2标准答案】
刘工的备份策略仅采用了数据导出的备份方式,其优点是简单易行,实现了数据的完整导出,甚至可以在运行期间做到按需备份。
其缺点是一旦发生故障,会丢失过多的数据,例如在周三的中午,数据库出现故障,则只能恢复到周二备份时的数据,周二导出后到周三中午的数据会全部丢失;如果数据量非常大,则数据导出所花费的时间和空间也会很大。
【问题3标准答案】
冷备份优点:
1.快速简单,维护方便
2.可以恢复到备份的时间点上
3. 如和热备份相互结合,可以实现实时秒级的恢复。
冷备份的缺点
1)冷备份时数据库关闭,不能同时做其他的工作。
2)单独使用时,只能恢复到备份时的时间点上
3)不能按数据库中某个表或者是某个用户来进行备份
热备份优点:
1)备份时数据库仍然可以使用
2)可以实现实时秒级恢复
3)可对几乎所有数据库的实体做恢复,恢复速度快
热备份的缺点
1)如果热备份出错,所得结果不能用于时间点的恢复
2)不能出错,否则会引起数据库无法恢复
3)维护比较困难
冷备份是在数据库关闭的情况下,对数据库中的关键文件(数据文件日志文件)进行复制。
热备份是在数据库运行的情况下,对数据库中的关键数据进行备份,要求数据库管理系统提供支持。
【问题4标准答案】
银行系统如果需要支持数据库的实时恢复或秒级回复,需要采用冷备份和热备扮相结合的方式来进行备份。基本的备份策略:周一冷备份,周二至周日热备份。
冷备份与热备份的交替间隔时间可以根据自身特点来进行调整。当数据库出现故障的时候,需要恢复时,基本的步骤是:
1)恢复最近一次的冷备份数据;
2)按照时间顺序,恢复热备份中备份的数据和日志文件。
3)找到机器上未损坏的最后一个日志文件,将数据库恢复到该日志文件对应的时间点。

2010上案例分析历年真题(50分)

【试题二】
A市经过软课题研究己经形成了一整套宏观经济指标体系,用于描述该市的经济状态,涉及包括区域GDP、人口与就业、城市建设与投资、财政收入和支出、土地、进出口贸易、社会保障、人民生活、制造业和高新技术产业等方面,并为主要指标建立了计算模型。与宏观经济指标有关的数据称为宏观经济数据,主要的宏观经济数据广泛地分布于政府统计部门、计划部门、财政部门、税收部门、教育部门、商业部门、物价部门、农业生管部门、工业信息化主管部门等等,还分布于金融部门、大中型企业等。这些部门针对自身业务,多数都有自己的管理信息系统或者办公自动化系统,主要的宏观经济数据都已经实现了电子化。
目前,A市宏观经济指标的获得还采取传统方式,即通过有关部门逐级报表汇总宏观经济数据的方式和统计调査的方式得到。统计调查方式存在系统性的误差,而报表汇总方式则存在基础数据不准确、人为影响较大、指标分析灵活性差等问题。
为准确掌握经济动态信息,进一步规范各级经济信息资源管理行为,加快信息资源共享,提髙政府的管理科学化和服务社会化水平,该市决定建设宏观经济数据库,将宏观经济数据统一管理。
【问题1】
为稳步推动A市宏观经济数据库建设,A市市政府委托咨询公司B进行项目原型研究。B公司经过调研,认为A市电子政务网络、存储和计算平台非常完善,为宏观经济数据库的建设奠定了良好的基础。请用200字以内文字指出此时B公司在进行原型分析的时候应重点做好哪几方面的工作?
【问题2】
经过分析比较,B公司确定了“物理分散,逻辑集中”的建设思路,因此未来宏观经济数据库是一个分布式数据库系统。请用200字以内文字简要分析,除了数据交换机制外,是否还需要建设一个集中的数据库?并叙述理由。
【问题3】
小张是B公司的开发经理,在开发A市宏观经济数据库原型的时候,用前端分析工具按照指标计算模型,计算“宏观投资现状”指标,该指标计算模型的输入参数包括:交易额,信息来源是市国税局和市地税局的税收征管系统;
项目立项信息,信息来源是市发改委的立项审批管理系统; 资金拨付信息,信息来源是市财政局的统一支付系统;
贷款信息,信息来源于银行的信贷管理系统等; 资源消耗信息,信息来源于电力公司、自来水公司等。
……
小张按照输入参数来源单位提供的数据接口说明取得了输入参数,经过计算得到了“宏观投资现状”指标,但发现该指标与传统方式得到的指标差别很大。
请用200字以内文字,指出存在差别的可能技术原因。

【试题四】
某互联网销售企业需要建立自己的电子商务平台,将所有产品信息集中在一起,为用户提供全方位的产品信息检索服务。但产品供应商大多数已经建有自己的电子商务平台,且数据独立存储,而且数据格式和数据平台有较大差异,有的供应商甚至没有采用数据库来存储商品信息。为此该企业专门成立专家组来论证其数据集成方案。
李工提出采用集中式集成方式把产品供应商的数据集中在一起,釆用数据仓库技术来实现与各家供应商的数据集成。而王工提出采用松耦合的联邦数据库集成方案。专家组经过激烈讨论,认为王工方案更为合理,建议采用王工提出的集成方案。
【问题1】
请结合数据仓库和联邦数据库集成方案各自的特点,简要说明专家组釆用王工提出的集成方案的原因。
【问题2】
部分供应商的产品信息没有相应的数据库,而是直接嵌入在Web页面中供用户浏览。数据集成时需要直接从供应商电子商务平台的网页上获取其产品信息。请简要给出此类数据集成的方法和基本步骤。
【问题3】
在方案评审会上,项目组针对李工和王工的方案展开了激烈的讨论。刘工指出两种方案在实施的过程中,都存在数据源之间的语义映射和转换问题,都会带来数据集成的不确定。请简要说明产生不确定的原因

【问题1标准答案】
数据仓库是把多种来源的数据集中在一起建立仓库,所有数据都驻留在单个数据库服务器上,需要配置大型处理器和存储容量。数据仓库主要是用于决策支持,在数据处理过程中强调的是分析。其特点是;
1)面向主题的
2)集成的数据
3)反映历史变化的
4)数据相对稳定的
联邦数据库集成是把多个数据库系统联合在一起,构成“联邦数据库系统”,数据库之间通过接口查询,互相通信,数据分布在不同地方的计算机或数据库服务器上,通过网络连接。它的特点是:
1)联邦数据库提供集成的数据格式,对用户提供统一的访问,屏蔽了各个数据库的复杂性和分布情况,简化了开发数据库查询和对数据统一理解的工作。这种分布的数据集成,更加符合应用系统的实际情况。
2)异构数据源不仅仅是数据库系统,通过中间件可以扩展到传感器,文件和应用程序等。
【问题2标准答案】
此类数据往往是非结构化或者是半结构化的,但同一个数据源往往有统一的页面模式,因此应该采用Web内容提取(挖掘,文本挖掘)的集成方法来获取对供应商的产品信息。其具体步骤为
1)分析页面
确定其页面中的数据模式。
2)抓取页面
通过爬虫技术获取对应的网页
3)特征提取与处理
获取相应的数据
4)数据清理
根据规则进行判断,抛弃异常数据
5)数据转换
根据预先定义好的语义映射关系,将数据转换为统一的格式。
【问题3标准答案】
无论采用联邦数据库集成方案或者数据仓库集成方案,都存在数据源之间的语义映射和转换问题,都会带来数据集成的不确定性。
数据集成系统依靠模式映射来指明数据源中的数据和中介所用的数据之间的语义关系,但映射过程中可能发生不确定性,其原因有:
1)数据源与中介模式之间的语义映射可能是近似的。
2)用户不熟悉模式或系统的域太宽,不能提供基于表单式的查询接口,需要使用关键字查询,但将关键字查询转换成一组候选的结构化查询时,会带来不确定性。
3)数据常常是使用信息获取技术从非结构化数据源获取的,而这些获取技术一般只是大致可用,所取得的数据可能是不确定的。

2011上案例分析历年真题(25分)

【试题四】
某软件公司欲开发一个社交网络系统,该系统能够接收多个不同种类客户端发送的信息,并将这些信息实时显示在每个客户端的页面上供客户阅读。该系统将为数以百万计的用户服务,因此,要求采用的数据库能够支持大量信息存储,能够满足并发读写要求,并要求随着数据规模的扩大,数据库系统要易于进行扩充。关于数据库架构的设计,王工和张工提出了两种模式:王工提出基于传统的关系型数据库模式,通过向上扩展(Scale-up)以满足数据库的可扩展性要求;李工提出利用新兴的NoSQL数据库模式,通过向外扩展(Scale-out)以满足数据库的可扩展性要求。项目组经过讨论,决定采用李工提出的设计方案。
【问题1】
请指出关系数据库模式和NoSQL模式在并发支持、存储与查询、扩展方式、索引方式和应用领域五个方面各自的特点,结果填入表4-1中(1)〜(10);并针对应用需求,说明项目组选择李工提出的设计方案的原因
在这里插入图片描述
【问题2】
与传统的关系型数据库相比,NoSQL数据库所支持的典型数据存储类型有哪些?
【问题3】
在实际应用中,NoSQL数据库存在的问题有哪些?

【问题1标准答案】
选择李工方案的原因:
1)高并发支持
社交网络系统对于数据库并发负载要求非常高,对于数量较大的数据库并发写要求,关系型数据库难以满足。
2)高效率存储访问支持
海量数据的高效率存储和访问需求,数百万账号信息,如果使用关系型数据库,则查询效率很低。
3)可扩展性需求支持
可以通过增加更多的服务器节点来实现扩展。
在这里插入图片描述
【问题2标准答案】
NoSQL数据库支持的数据存储类型有:
1)表格/列存储
存储稀疏表格数据,类似于传统的二维表格式存储
2)文档存储
用于存储非结构化或半结构化文件。
3)图像存储
利用节点,边,属性的方式存储图片类数据,常被用于存储社交网络服务中。
4)键值存储
类似哈希表一样存储简单的键值对,有基于内存和基于磁盘两种实现方式。
5)对象和多值存储
对象数据库存储面向对象语言中的对象,多值数据库存储表格型的数据。单个单元格中可以存储多个值。
【问题3标准答案】
NoSQL数据库存在的问题是:
1)成熟度不够,大量的关键特征有待实现
2)开源数据库产品支持力度有限;
3)数据挖掘与商务智能支持不足,现有的产品无法直接使用NoSQL数据库。
4 )NoSQL数据库专家较少,大部分都处于学习阶段。

2013上案例分析历年真题(25分)

【试题四】
某集团公司在各省均设有分公司,现欲建立全国统一的销售管理信息系统,以便总公司及时掌握各分公司的销售情况。公司成立专门的项目组进行该系统的研发工作,其中张工负责其中的数据库设计工作。
张工和需求分析小组紧密合作,在设计出数据流图和数据字典的基础上,给出了数据库关系模式和相应的索引设计。同时考虑到未规范化关系模式可能引起的各类数据错误,对关系模式进行了全面的规范化处理,使所有关系模式均达到了3NF或BCNF。
在项目实施过程中,应用开发小组认为该设计方案未考虑应用功能的实际需求。如果严格按照设计方案实施,会对应用系统的整体性能产生较大影响。主要的原因在于进行数据查询时,会产生大量的多表连接操作,影响性能。而设计方案中的索引设计,并不能完全满足数据查询的性能要求。
应用开发小组还认为,该设计方案未考虑到信息系统中核心销售数据处理的特点:各分公司在使用该信息系统时只能操作自己分公司的销售数据,无权操作其他分公司的销售数据:只有总公司有权利操作所有销售数据,以便进行统计分析。
应用开发小组要求,在数据库设计方案中,必须针对实际应用功能的实现来考虑关系模式的规范化,必要时需要采用逆规范化或解除规范化的方法来保证性能要求。
【问题1】
系统需要管理供应商和货物等信息,具体包括供应商姓名、地址以及货物名称、价格等,供应商可以提供0〜n种货物,其公司地址也可能发生变化。请以供应商关系模式
supplier(name, address, product, price)为例,解释不规范的关系模式存在哪些问题。
【问题2】
应用开发小组认为张工的规范化设计虽然解决了未规范化关系模式带来的问题,但实际实现功能时会造成系统性能的下降。请解释其原因。
【问题3】
请解释逆规范化方法,说明其优缺点。
【问题4】
针对该信息系统中核心销售数据处理的特点,如采用关系表水平分割的逆规范化方法,请给出具体的解决方案,并说明该方案存在的问题

【问题1标准答案】
1)数据冗余
如果供应商供应了多种货物,则他的地址被多次重复存储。
2)插入异常
如果某供应商未提供货物,则无法记录该供应商的姓名和地址。
3)删除异常
如果某供应商的所有货物均被删除,则丢失了该供应商的名称和地址。
4)修改异常
也叫做数据不一致。由于数据的冗余存储,当供应商的地址改变时,必须对所有的修改记录进行更新,否则会造成地址数据的不一致。
【问题2标准答案】
规范化程度是通过模式分解来实现的,因此规范化程度越高,关系模式表达的概念越单一,生成的关系模式就越多。
实际应用的数据请求往往非常复杂而多样化,经常会出现一个请求中涉及多个概念,多个数据库关系模式的情况。关系数据库通过多表连接查询来满足这种需求,而表与表之间的连接操作会带来较大的性能开销。
开发小组认为设计方案中没有考虑应用功能的实际要求,将所有关系模式均规范到3NF或BCNF,则在满足用户复杂、多样的数据操作请求时,必然会带来大量的多表连接操作,从而影响实际的数据查询性能。数据量大时,性能下降非常迅速。
【问题3标准答案】
逆规范化或解除规范化方法,指的是将一个规范化的关系模式变成非规范化的关系模式,或者是降低某个关系模式的规范标准(例如从3NF降低为1NF)的过程。
从规范化和逆规范化的定义可以看出,严格的规范化必然导致众多的关系模式,使得关系模式的结构复杂,引发频繁的连接操作,导致性能的下降。从这点上可以看出逆规范化操作的优点是改善和提高系统的性能。但反过来说,逆规范化导致了关系模式规范化程度的的下降,从而会带来数据冗余,修改异常,插入异常和删除异常等问题,因此必须根据应用自身的特点去,采用应用程序,触发器等额外手段来解决该问题。
【问题4标准答案】
在进行数据库设计时,需要考虑应用的实际需求,合理增加冗余属性,以提升系统性能。常用的措施有:
1)将常用的计算属性(例如,总计和最大值等)存储到数据库实体中;
2)重新定义实体,以减少外部属性数据或行数据的开销;
3)将关系进行水平或者垂直分割,以提升并行访问效率;
4)除了上述逻辑结构的设计外,物理设计对系统性能也起到了非常关键的作用;
5)根据本题的实际问题,可采用关系水平分割进行设计。
具体方案:
根据分公司的不同,每个不同的分公司拥有单独的数据表。这样每个分公司在处理自己的销售数据时,和其他分公司互不干扰,性能得到提高。
问题有两点:
1)当全国总公司获取全国总的销售数据时,需要对分公司的数据进行数据并操作,会带来额外的开销。
2)信息系统中执行分公司应用功能时,需要动态根据分公司来选择不同的数据库表,增加了应用程序的复杂度。

2016上案例分析历年真题(25分)

试题四(共25分)
阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。
某航空公司要开发一个订票信息处理系统,以方便各个代理商销售机票。开发小组经过设计,给出该系统的部分关系模式如下:
航班(航班编号,航空公司,起飞地,起飞时间,目的地,到达时间,剩余票数,票价)
代理商(代理商编号,代理商名称,客服电话,地址,负责人)
机票代理(代理商编号,航班编号,票价)
旅客(身份证号,姓名,性别,出生日期,电话)
购票(购票单号,身份证号,航班编号,搭乘日期,购票金额)
在提供给用户的界面上,其核心功能是当用户查询某航班时,将该航班所有的代理商信息及其优惠票价信息,返回给用户,方便用户购买价格优惠的机票。在实现过程中发现,要实现此功能,需要在代理商和机票代理两个关系模式上进行连接操作,性能很差。为此开发小组将机票代理关系模式进行了扩充,结果为:
机票代理(代理商编号,航班编号,代理商名称,客服电话,票价)
这样,用户在查找信息时只需对机票代理关系模式进行查询即可,提高了查询效率。
【问题1】(6分)
机票代理关系模式的修改,满足了用户对代理商机票价格查询的需求,提高了查询
效率。但这种修改导致机票代理关系模式不满足3NF,会带来存储异常的问题。
1) 请具体说明其问题,并举例说明。
2)这种存储异常会造成数据不一致,请给出解决该存储异常的方案。
在这里插入图片描述
【问题2】(9分)
在机票销售信息处理系统中,两个代理商的售票并发执行,可能产生的操作序列如表4-1所示。
假设两个代理商执行之前,该航班仅剩1张机票。 1) 请说明上述两个代理商操作的结果。
2)并发操作会带来数据不一致的问题,请具体说明3种问题。
【问题3】(10分)
为了避免问题2中的问题,开发组使用库的读写锁机制,操作序列变为表4-2所示。
在这里插入图片描述

【问题1标准答案】
不满足3NF的关系模式存在存储异常问题,包括数据冗余和修改异常
1)数据冗余
如果某代理商代理100个航班的售票,那么在机票代理的关系模式中,就要出现100个元祖,该代理商的名称,客服电话也随之重复出现100次。
2)修改异常
由于上述冗余问题,当需要修改该代理商客服电话时,就要修改100个元祖中的客服电话,否则就会出现客服电话值不一致的现象。
解决存储异常的经典方案是进行模式分解,但在本题中机票代理已经是逆规范化的产物,故可使用触发器在修改时,检查并更新对应数据的方式来解决数据不一致的问题。
【问题2标准答案】
2个代理商都成功售出1张票,剩余票数为0。
数据库的并发操作会带来一些数据不一致问题,例如,丢失修改,读脏数据,不可重复读等。
1)丢失修改
事务A与事务B从数据库中读入同一数据并修改,事务B的提交结果破坏了事务A提交的结果,导致事务A的修改被丢失。
2)读脏数据
事务A修改某一数据,并将其写回磁盘,事务B读取同一数据后,事务A由于某种原因被撤销,这时事务A已修改过的数据恢复原值,事务B读到数据就与数据库中的数据不一致,是不正确的数据。
3)不可重复读
事务A读取数据后,事务B执行了更新操作,事务A使用的仍然是更新前的值,造成了数据的不一致。
【问题3标准答案】
1)加写锁
2)加读锁
3)加写锁
4)等待
5)查询剩余票数
6)加写锁
采用封锁的方法虽然可以有效防止数据的不一致性,但封锁本身也会产生一些麻烦,最主要就是死锁问题。也就是说多个事务申请不同封锁,由于申请者均拥有的部分封锁而引起的永无休止的等待。
锁机制的基本概念是读取操作之前先加锁,成功后方能读写数据。读操作加读锁,写操作加写锁。
读操作加读锁,写操作加写锁。读锁会阻塞写锁,即加了读锁的数据,在未释放读锁之前不能加写锁,可以加读锁;
同样写锁会阻塞读锁,在写锁未释放前,不能再加读锁和写锁。其实质是使得相互冲突的并发读写操作,变为串行化读写操作,来解决并发问题。

2017上案例分析历年真题(50分)

试题二(共 25 分〉
阅读以下关于系统数据分析与建模的叙述,在答题纸上回答问题1 至问题 3。
【说明】
某软件公司受快递公司委托,拟开发一套快递业务综合管理系统,实现快递单和物流信息的综合管理。项目组在系统逻辑数据模型设计中,需要描述的快递单样式如图
2-1 所示,图 2-2 是项目组针对该快递单所设计的候选实体及其属性。
在这里插入图片描述
在这里插入图片描述
【问题 1】(6 分)
数据库设计主要包括概念设计、逻辑设计和物理设计三个阶段,请用 200 字以内文字说明这三个阶段的主要任务。
【问题2】(11 分)
根据快递单样式图,请说明:

  1. 图 2-2 中三个候选实体对应的主属性 PK1、PK2 和 PK3 分别是什么?
    2)图 2-2 中应设计哪些实体之间的联系,并说明联系的类型。
    【问题 3】(8 分)
    在图 2-2中添加实体之间的联系后,该实体联系图是否满足第一范式、第二范式和第三范式中的要求(对于每种范式判定时,假定己满足低级别范式要求)。如果不满足,请用200字以内文字分别说明其原因。

【问题1标准答案】
1)概念设计
它也称为概念结构设计,其任务是在需求分析阶段产生的需求说明是的基础上,按照特定的方法将它们抽象为一个不依赖于任何DBMS的数据模型,即概念模型。概念模型的表示形式就是ER模型。
2)逻辑设计
也称为逻辑结构设计。其主要任务是将概念模型转换为某个特定的DBMS上的逻辑模型。设计逻辑结构时,首先为概念模型选定一个合适的逻辑模型(如关系模型或层次模型),然后将其转化为由特定DBMS支持的逻辑模型,最后对逻辑模型进行优化。
3)物理模型
也称为物理结构设计。其任务是对给定的逻辑模型选取一个最适合应用环境的物理结构。所谓数据库的物理结构,主要是数据库在物理设备上的存储结构和存取方法。
【问题2标准答案】
PK1:证件号
PK2:编号
PK3:证件号
联系1:寄件人与快递单之间应有联系,联系类型:1:N。
联系2:收件人与快递单之间应有联系,联系类型:1:N。
【问题3标准答案】
寄件人和收件人均满足第三范式,因为这两个关系消除了部分函数依赖与传递函数依赖。
快递单满足第2范式,但不满足第三范式。总计是个派生属性,可由前边的保价金额,代收货款,运费,加急费,包装费,保价费等计算得出,所以存在传递函数依赖,不满足3NF。

试题四(共 25 分)
阅读以下关于数据库分析与建模的叙述,在答题纸上回答问题 1至问题 3。
【说明】
某电子商务企业随着业务不断发展,销售订单不断增加,每月订单超过了 50万笔,急需开发一套新的互联网电子订单系统。同时该电商希望建立相应的数据中心,能够对订单数据进行分析挖掘,以便更好地服务用户。王工负责订单系统的数据库设计与开发,初步设计的核心订单关系模式为:orders(order_no,customer_no
,order_date,product_no,price,. …);
考虑订单数据过多,单一表的设计会对系统性能产生较大影响,仅仅采用索引不足以解决性能问题。因此,需要将订单表拆分,按月存储。
王工采用反规范化设计方法来解决,给出了相应的解决方案。李工负责数据中心的设计与开发。李工认为王工的解决方案存在问题,建议采用数据物理分区技术。在解决性能问题的同时,也为后续的数据迁移、数据挖掘和分析等工作提供支持。
【问题 1】 (8 分)
常见的反规范化设计包括增加冗余列、增加派生列、重新组表和表分割。为解决题干所述需求,王工采用的是哪种方法?请用
300 字以内的文字解释说明该方法,并指出其优缺点。
【问题 2】 (8 分)
物理数据分区技术一般分为水平分区和垂直分区,数据库中常见的是水平分区。水平分区分为范围分区、哈希分区、列表分区等。请阅读下表,在(1)~(8)中填写不同分区方法在数据值、数据管理能力、实施难度与可维护性、数据分布等方面的特点。
在这里插入图片描述
【问题 3】(9 分)
根据需求,李工宜选择物理水平分区中的哪种分区方法?请用 300字以内的文字分别解释说明该方法的优缺点。

【问题1标准答案】
王工采用的是水平分割的方式进行反规范化设计。
表分割包括水平分割与垂直分割两种形式。
1)水平分割
根据一列或多列数据的值把数据行放到两个独立的表中。
按记录进行分割,不同的记录可以分开保存,每个子表的列数相同。分割的条件可能是某列或者多列数据的值,如时间参数。
2)垂直分割
把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。
按列进行分割,即把一条记录分开多个地方保存,每个子表行数相同。把主键和一些行放到一个表,然后把主键和另外的列放到另一个表,通过主键进行关联。
优点:
水平分割后可以降低在查询时需要读取的数据和索引的页数,同时也降低了索引的层数,提高查询速度。
缺点:
水平分割会给应用增加复杂度,在查询时需要多个表名,查询所有数据需要并操作。
【问题2标准答案】
在这里插入图片描述
【问题3标准答案】
李工宜选择范围分区方式。
范围分区优点包括:实现容易,数据管理能力强,提高查询效果,利于维护如备份恢复时间都可缩短,利于做过期处理。
1.分区表可以将表存储到多个表空间内,各个分区维护各自的本地索引,查询语句可以根据索引进行分区范围查找,提高了查询速度;
2.可以对单个分区进行备份,归档或者清除过期的数据,利于维护;
3.实现容易,而且可以方便的对表的分区进行添加,删除,拆分和合并操作。
范围分区的缺点就是分布数据的不均匀,所以它可以和哈希分区组合使用。
分区 说明
范围分区 就是根据数据库表中某一字段的值的范围来划分分区。
散列分区 散列分区是根据字段的hash值进行均匀分布,尽可能的实现各分区所散列的数据相等。
列表分区 列表分区明确指定了根据某字段的某个具体值进行分区,而不是像范围分区那样根据字段的值范围来划分

2018上案例分析历年真题(25分)

【试题四】
阅读以下关于数据库设计的叙述,在答题纸上回答问题 1 至问题 3。
【说明】
某软件企业开发一套类似于淘宝网上商城业务的电子商务网站。该系统涉及多种用户角色,包括购物用户,商铺管理员,系统管理员等。
在数据库设计中,该系统数振库的核心关系包括: 产品(产品编码,产品名称,产品价格,库存数量,商铺编码)
商铺(商铺编码,商铺名称,商铺地址,商铺邮箱,服务电话); 用户(用户编码,用户名称,用户地址,联系电话)
订单(订单编码,订单日期,用户编码,商铺编码,产品编码,产品数量,订单总价)
不同用户角色也有不同的数据需求,为此该软件企业在基本数据库关系模式的基础上,定制了许多试图。其中,有很多视图涉及到多表关联和聚集函数运算。
【问题1】 (8分)
商铺用户需要实时统计本商铺的货物数运和销售情况,以便及时补货,或者为商铺调整销售策略。为此专门设计了可实时查看当天商铺中货物销售情况和存贷情况的视图,商铺产品销售情况日报表(商铺编码,产品编码,日销售产品数量,库存数量,日期)。
数据库运行测试过程中,发现针对该视图查询性能比较差,不满足用户需求
请说明数据库视图的基本概念及其优点,并说明本视图设计导致查询性能较差的原因。
【问题 2】 (8 分)
为解决该枧图查询性能比较差的问题,张工建议为该数据建立单独的商品当天货物销售、存货情况的关系表。但李工认为张工的方案造成了数据不一致的问题,必须采用一定的手段来解决。
1)说明张工方案是否能够对该视图查询性能有所提升,并解释原因
2)解释说明李工指出的数据不一致问题产生的原因。
【问题 3】(9 分)
针对李工提出的问题,常见的解决手段有应用程序实现,触发器实现和物化视图实现等、请用300字以内的文字解释说明这三种方案。

【问题1标准答案】
视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。
视图的优点:
1.视图能简化用户操作;
2.可以使用户以不同的方式查询同一数据
3.视图对数据库重构提供了一定程度的逻辑独立性
4.视图可以对机密的数据提供安全的保护
查询性能较差的原因是视图中日销售产品数量需要针对订单表做统计分析,订单表中有数量庞大的历史销售数据,所以这种操作极为耗时。
【问题2标准答案】
1)张工方案能够对该视图查询性能有所提升,因为这样做能极大的减少统计分析的数据量,对小数据量进行统计,性能是能得以保障的。
2)由于当日订单数据既存储在订单表中,又存储在单独的当天货物销售、存货情况表中。同一数据存储了两份,一旦出现修改,未同步修改,则会造成数据不一致。
【问题3标准答案】
1)应用程序实现
在进行订单的添加,修改删除操作时,从应用程序中控制两个数据表都进行相关的操作,以保障数据的一致性。
2)触发器实现
在应用程序中,只对订单表进行操作。但写触发器,当订单表发生变化时,把当日订单内容同步更新到当天货物销售,存货情况表中。
3)物化视图实现
建立当天货物销售,存货情况的物化视图,物化视图会把相应的数据物理存储起来,而且在订单表发生变化时会自动更新。
视图的概念:
它是从一个表或多个表(或视图)导出的表。视图与表(有时为与视图区别,也称为基本表)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。

2019上案例分析历年真题(25分)

【试题四】
阅读以下关于数据管理的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件企业开发了一套新闻社交类软件,提供常见的新闻发布、用户关注、用户推荐、新闻点评、新闻推荐、热点新闻等功能,项目采用MySQL数据库来存储业务数据。系统上线后,随着用户数量的增加,数据库服务器的压力不断加大。为此,该企业设立了专门的工作组来解决此问题。
张工提出对MySQL数据库进行扩展,采用读写分离,主从复制的策略,好处是程序改动比较小,可以较快完成,后续也可以扩展到MySQL集群,其方案如图4-1所示。李工认为该系统的诸多功能,并不需要采用关系数据库,甚至关系数据库限制了功能的实现,应该采用NoSQL数据库来替代MySQL,重新构造系统的数据层。而刘工认为张工的方案过于保守,对该系统的某些功能,如关注列表、推荐列表、热搜榜单等实现困难,且性能提升不大;而李工的方案又太激进,工作量太大,短期无法完成,应尽量综合二者的优点,采用Key-Value数据库+MySQL数据库的混合方案。
在这里插入图片描述
经过组内多次讨论,该企业最终决定采用刘工提出的方案。 问题内容:
【问题1】(8分)
张工方案中采用了读写分离,主从复制策略。其中,读写分离设置物理上不同的主/从服务器,让主服务器负责数据的(a)操作,从服务器负责数据的(b)操作,从而有效减少数据并发操作的(c),但却带来了(d)。因此,需要采用主从复制策略保持数据的(e)。
MySQL数据库中,主从复制是通过binary log来实现主从服务器的数据同步,MySQL数据库支持的三种复制类型分别是(f) 、 (g) 、 (h)。 请将答案填入(a)~(h)处的空白,完成上述描述。
【问题2】(8分)
李工方案中给出了关系数据库与NoSQL数据的比较,如表4-1所示,以此来说明该新闻社交类软件更适合采用NoSQL数据库。请完成表4-1中的(a) ~ (d)处空白。
表4-1关系数据库与NoSQL数据库特征比较
在这里插入图片描述
【问题3】(9分)
刘工提出的方案采用了Key-Value数据库+MySQL数据库的混合方案,是根据数据的读写特点将数据分别部署到不同的数据库中。但是由于部分数据可能同时存在于两个数据库中,因此存在数据同步问题。请用200字以内的文字简要说明解决该数据同步问题的三种方法。

【问题1标准答案】
1.写操作
2.读操作
3.延迟
4.不一致性
5.一致性
6.基于SQL语句的复制
7.基于行的复制
8.混合复制模式
【问题2标准答案】
a.弱一致性
b.非结构化
c.弱事务性
d.海量数据
【问题3标准答案】
1.通过定时任务机制定期做数据更新
2.通过触发器完成数据同步
3.通过数据库插件完成数据同步

2020下案例分析历年真题(25分)

2020年下系统分析师案例分析试题四(数据管理)
阅读以下关于数据管理的叙述,在答题纸上回答问题1至问题3。
【说明】
某全国连锁药店企业在新冠肺炎疫情期间,紧急推出在线口罩预约业务系统。该业务系统为普通用户提供口罩商品查询、购买、订单查询等业务,为后台管理人员提供订单查询、订单地点分布汇总、物流调度等功能。该系统核心的关系模式为预约订单信息表。
推出业务系统后,几天内业务迅速增长到每日10万多笔预约订单,系统数据库服务器压力剧增,导致该业务交易响应速度迅速降低,甚至出现部分用户页面无法刷新、预约订单服务无响应的情况。为此,该企业紧急成立技术团队,由张工负责,以期尽快解决该问题
【问题1】 (9分)
经过分析,张工认为当前预约订单信息表存储了所有订单信息,记录已达到了百万级别。系统主要的核心功能均涉及对订单信息表的操作,应首先优化预约订单信息表的读写性能,建议针对系统中的SQL语句,建立相应索引,并进行适当的索引优化。
针对张工的方案,其他设计人员提出了一些异议,认为索引过多有很多副作用。请用100字以内的文字简要说明索引过多的副作用。
【问题2】 (10分)
作为团队成员之一 ,李工认为增加索引并进行优化并不能解决当前问题,建议采用物理分区策略,可以根据预约订单信息表中“所在城市”属性进行表分区,并将每个分区分布到独立的物理磁盘上,以提高读写性能。常见的物理分区特征如表4-1所示。李工建议选择物理分区中的列表分区模式。
在这里插入图片描述
请填补表4-1中的空(a) ~ (d)处,并用100字以内的文字解释说明李工选择该方案的原因。
【问题3】 (6分)
在系统运行过程中,李工发现后台管理人员执行的订单地址信息汇总等操作,经常出现与普通用户的预约订单操作形成读写冲突,影响系统的性能。因此李工建议采用读写分离模式,采用两台数据库服务器,并采用主从复制的方式进行数据同步。请用100字以内的文字简要说明主从复制的基本步骤

【问题1标准答案】
1)会占用大量存储空间
2)更新开销,更新语句会引起相应索引更新
3)会导致查询优化器需要评估的组合增多
【问题2标准答案】
a)属性的离散值
b)周期性数据
c)能力强
d)均匀
李工建议根据预约订单所在城市进行表分区,而所在城市属性是离散值,根据所在城市建立列表分区,也方便不同城市处理自己的数据,方便数据管理。
【问题3标准答案】
1)主服务器将所做的修改通过自己的IO线程保存在本地二进制日志当中。
2)从服务器上的IO线程读取主服务器上面的二进制日志,然后写入到从服务器本地的中继日志。
3)从服务器上同时开启一个SQL线程,定期检查中继日志,如果发现有更新,则立刻把更新的内容在本机的数据库上面执行一遍。

第三部分 论文写作历年真题

2014上论文写作历年真题(75分)

【试题三:数据库集群技术及应用】
随着经济的高速发展,企业的用户数量数据量成爆炸式增长,对数据库管理也提出了严峻的考验。数据库系统是大多数商业信息系统的核心,因此,除了业务逻辑之外,企业对数据库系统的系统性能,系统可靠性和服务可用性都提出了较高要求。为满足企业用户的实际需求,近年来,数据库集群技术出现了飞速的发展。
按照数据库集群的架构可分为共享磁盘型和非共享磁盘型数据库集群;不同的数据库,产品采用了不同的数据同步机制,各具特点,可满足不同类型的应用需求,选择合适的数据库集成产品。
请以“数据库集群技术及应用”为题,分别从以下三个方面进行论述。
1.概要叙述你参与实施的项目以及你在其中所担任的主要工作。
2.请说明你所参与的软件项目对数据管理的分析需求,结合数据库集群技术的特点,论述你是如何应用数据库集群技术或设计数据库集群系统的。
3.简要说明数据库集群产品的应用效果及存在的问题。

【标准答案】
数据库支撑系统是利用多台数据库服务器,构成一个虚拟单一的数据库逻辑映像。如同单数据库一样,向客户端提供透明的服务。
为保证虚拟单一的数据库逻辑映像,数据库集群系统有多种实现方式。单份数据集,两份或多份相似但非实时同步的数据集,两份或多份实时同步的数据集等。
按照数据库集群的架构可分为共享磁盘型和非共享磁盘型数据库集群。
共享磁盘型
共享磁盘型的数据库集群只有一个单一的数据集,不存在节点之间的数据同步问题。
非共享磁盘型
非共享磁盘型数据库集群系统包含多个物理机器,为保持统一的逻辑数据视图,数据同步是一个核心问题。
数据库集群系统中常见的数据同步机制包括:串行数据复制分为串行异步复制和串行同步复制。
串行异步复制
主要采用数据库日志传送或者硬盘传送块传送技术来实现。主数据库完成事务处理后,生成事务日志或将数据写入到数据块中,通过FIFO队列的形式,将数据传送到备份数据库并得到一致数据。存在的主要问题有异步会存在时间差,会带来主从数据库的不一致,也可能会丢失数据;同时会带来一定的额外开销。
串行同步复制
此类集群往往由昂贵的专用软硬件构成,采用专用的高速网络和软件技术,将每个数据库的请求,通过同步复制技术,将每个数据库的请求,通过同步的方式,同步在主备两台数据库服务器执行正确后,才将结果返回给数据库客户。其主要特点是主备服务器同时处理,性能低,而且专用系统造价昂贵。
基于共享存储技术
典型的产品是数据库的双机容错技术,也包括Oracle的RAC 产品。该系统的架构是多个机器共享一个磁盘阵列,服务器通过虚拟IP提供服务,形成单一的逻辑数据库。一旦某个机器异常,则通过心跳检测或其他信息交换协议,完成主备机器的切换。主要特点是单一数据存储,存在数据同步问题,但是单一数据往往成为整个系统的单点错误源;而且只能通过数据库中常用的备份或复制方法获取第二份数据,以保证数据安全,因此,所有复制或备份方法的缺点,此类系统全部存在。另外,主备机器的切换也需要时间开销。
基于实时数据同步技术
此类集群的基本特征是节点有自己独立的存储设备,数据采用非共享存储。因此该集群一般均提供负载均衡技术,采用的负载均衡技术有基于连接的负载均衡和基于请求的负载均衡两种。在实现节点之间的数据同步上,或者通过专门的卨速数据同步技术,或者通过分布式数据库中的两阶段提交协议来实现。此类集群系统的核心特点是:
实时冗余一致的数据存储,理论上实现了数据的零丢失,可以做到很高的可用性;由于需要额外的数据同步操作,因此性能会受到一定的影响,如采用两阶段提交来实现同步,则慢一些;同时,额外的数据同步也限制了集群中的节点数目。
目前基于共享存储和基于实时数据同步技术(即非共享存储)是数据库集群中的主流技术,串行数据M制也可以算作是非共享存储中的一种,但由于性能较差,缺陷明显,在市场上采用的较少。在实际选择数据库集群产品时,需要考虑的问题包括:数据的并发/性能需求、数据容量、数据可靠性、数据可用性、实现成本等问题。

2015上论文写作历年真题(75分)

试题四 论非关系型数据库技术及应用
非关系型数据库(NoSQL数据库)在数据模型、可靠性、一致性等诸多数据库核心机制方面与关系型数据库有着显著的不同。非关系型数据库技术包括:
(1)使用可扩展的松耦合类型数据模式未对数据进行逻辑建模;
(2)为遵循CAP定理的跨多节点数据分布模型而设计,支持水平伸缩;
(3)拥有在磁盘和(或)内存中的数据持久化能力;
(4)支持多种非SQL接口来进行数据访问。非关系型数据库都具有非常高的读写性能,尤其在大数据量下,依然表现优秀,数据之间的弱关联关系使得数据库的结构简单,实现了更细粒度的缓存机制,具有更好的性能表现。
请就“非关系型数据库技术及应用力论题,依次从以下三个方面进行论述。
1.简要叙述你参与的使用了非关系型数据库的软件系统开发项目以及你所承担的主要工作。
2.详细论述非关系型数据库有哪几类不同实现方式,每种方式有何技术特点和代表性数据库产品。
3.根据你所参与的项目中使用的非关系型数据库,具体阐述使用方法和实施效果。

【标准答案】
NoSQL的主要优势:
(1)避免不必要的复杂性
(2)高吞吐量
(3)高水平扩展能力和低端硬件集群
(4)避免了昂贵的对象-关系映射
NoSQL的缺点:
(1)数据模型和查询语言没有经过数学验证
(2)不支持ACID特性
(3)功能简单
(4)没有统一的查询模型
键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表。
这个表中有一个特定的键和一个指针指向特定的数据。
键值模型对于IT系统来说优势在于简单容易部署。
但是如果DBA只对部分值进行查询和更新的时候,键值就显得效率低下了。
支持的数据库产品包括:TokyoCabinet/Tyrant,Redis,Voldemort,Oracle BDB。
列存储数据库
用来应对分布式存储海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。
数据库产品包括:Cassandra,HBase,Riak。
文档型数据库
文档型数据库的灵感来自于Lotus Notes办公软件,而且它同第一种键值存储相类似。
该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。
文档型数据库可以看作是键值数据库的升级版,允许中间嵌套键值。而且它的查询效率比KeyValue数据库的查询要来得高。
数据库产品包括:CouchDB,MongoDB,SequoiaDB。
图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它使用灵活的图形模型,并且能够扩展到多个服务器上。
NoSQL数据库没有标准的查询语言(SQL),因此进行数据库査询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。数据库产品包括:Neo4J,InfoGrid,Infinite Graph。
HBase
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
Mongo DB:
Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。
Sequoia DB:
SequoiaDB是一款分布式非关系型文档数据库,可以被用来存取海量非关系型的数据,其底层主要基于分布式,高可用,高性能与动态数据类型设计SequoiaDB可以独立作为一款高性能可扩展的NoSQL数据库使用,也可与当前主流分布式计算框架Hadoop紧密集成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值