列表

详情


阅读以下关于数据库架构设计的叙述,回答问题1至问题3
某软件公司欲开发一个社交网络系统,该系统能够接收多个不同种类客户端发送的信息,并将这些信息实时显示在每个客户端的页面上供客户阅读。该系统将为数以百万计的用户服务,因此,要求采用的数据库能够支持大量信息存储,能够满足并发读写要求,并要求随着数据规模的扩大,数据库系统要易于进行扩充。关于数据库架构的设计,王工和张工提出了两种模式:王工提出基于传统的关系型数据库模式,通过向上扩展(Scale-up)以满足数据库的可扩展性要求;李工提出利用新兴的NoSQL数据库模式,通过向外扩展(Scale-out)以满足数据库的可扩展性要求。项目组经过讨论,决定采用李工提出的设计方案。

【问题1】(11分)  
请指出关系数据库模式和NoSQL模式在并发支持、存储与查询、扩展方式、索引方式和应用领域五个方面各自的特点,结果填入表4-1中(1)~(10);并针对应用需求,说明项目组选择李工提出的设计方案的原因。 

表 4-1 关系数据库模式和NoSQL模式之间的比较


【问题2(8分)
与传统的关系型数据库相比,NoSQL数据库所支持的典型数据存储类型有哪些?
【问题3(6分)
在实际应用中,NoSQL数据库存在的问题有哪些?

 

参考答案:

【问题1】
关系数据库模式和NoSQL模式的特点比较:

 表4-1  关系数据库模式和NoSQL模式之间的比较


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

详细解析:

传统关系型数据库在需要处理大规模并发数据访问的社交网络应用场景下,暴露出了很多问题,例如需要很高的实时插入性能;需要海量的数据存储能力同时还需要非常快的查询和检索速度;需要将数据存储无缝扩展到整个集群环境下,并且能够支持在线扩展等。NoSQL数据库模式打破了传统关系型数据库的范式约束、SQL查询语言和事务一致性,实现了以键值数据格式存储的Hash数据库。
本题主要考查应试者对于关系型数据库和NoSQL数据模式的掌握情况,特别是关系型数据库和NoSQL数据库模式的特点和实现方式。本题结合一个典型的实际项目案例,首先要求应试者分析关系型数据库和NoSQL模式之间的异同,然后针对系统需求分析采用NoSQL数据库模式的原因;针对NoSQL数据库模式的典型应用,列举出其能够支持的数据存储方式及其特点;最后分析在实际应用中还需要在哪些方面进行改进以提升其应用效果。
问题1】
本题要求考生针对关系数据库模式和NoSQL模式的特点进行分析。关系数据库利用加锁机制支持并发操作,执行效率较低,利用关系表的方式存储数据,通过SQL语言和数据库进行交互,主要通过提升硬件配置等向上扩展方式提升性能,B树和哈希是常用的索引结构,其能够广泛应用于多个领域;NoSQL作为新兴的数据库模式处理并发的效率较高,支持海量数据存储和查询,利用增加分布存储的数据库节点数目扩展性能,主要以键值方式存储数据,在对于大规模并发数据处理的分布式应用中有更好的表现。根据项目的实际应用需求,所以采用NoSQL模式更为合适。
【问题2】
本题要求考生掌握NoSQL数据模式所支持的数据类型。常见的数据类型包括表格/列存储、文档存储、图像存储、键值存储、对象和多值存储等。
【问题3】
本题要求应试者分析NoSQL数据库模式在实际应用中的不足之处。作为一种新兴的数据库模式,其实现的完整性、应用范围和专业知识等与成熟的关系型数据库相比还有一定的差距。

上一题