2018年下半年试题四:论NoSQL数据库技术及其应用

论文库链接:系统架构设计师论文


论文题目

随着互联网web2.0网站的兴起,传统关系数据库在应对web2.0 网站,特别是超大规模和高并发的web2.0纯动态SNS网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

NOSQL(Not on SQL)的产生就是为了解)决大规模数据集合及多种数据类型带来的挑战,尤其是大数据应用难题。目前NOSQL数据库并没有一个统一的架构,根据其所采用的数据模型可以分为4类:键值(Key-alue)存储数据库、列存储数据库、文档型数据库和图(Graph)数据库。

请围绕"NOSQL数据库技术及其应用"论题,依次从以下三个方面进行论述

1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。

2.详细论述常见的NOSQL数据库技术及其所包含的主要内容,并说明NOSQL数据库的主要适用场景。

3.结合你具体参与管理和开发的实际项目,说明具体采用哪种NOSQL数据库技术,并说明架构设计过程及其应用效果。

论文参考

论软件系统架构评估及其应用

摘要

2024年1月,我作为系统架构设计师参与了某公司OA系统的设计与改良,该项目的目标是解决之前系统采用传统关系数据库在应对新型网站时暴露出了很多难以克服的问题:近段时间网站上涌现了很多不同数据类型,传统的关系数据库已经显得捉襟见肘,迫切需要从技术方面进行解决。在经过团队对技术进行严格选型后,最终确定采用NoSQL解决大规模数据集合及多种数据类型带来的挑战。本文以该项目为例,主要论述非关系型数据库NoSQL在该项目的具体应用:键值存储数据库、列存储数据库、文档型数据库和图数据库在OA系统中的应用。最终于2024年6月成功上线并获得了同事和用户的一致好评,同时也希望OA系统能够继续为公司创造价值。

正文

2024年1月,我作为系统架构设计师参与了某公司OA系统的设计与改良,之前系统采用传统关系数据库在应对web2.0网站时暴露出了很多难以克服的问题:近段时间网站上涌现了很多不同数据类型,传统的关系数据库已经显得捉襟见肘,迫切需要采用新技术方面对OA系统进行改良。在经过团队对技术进行严格选型后,最终确定采用非关系型数据库NoSQL解决大规模数据集合及多种数据类型带来的挑战,尤其是大数据应用难题。通过对OA系统数据库进行改良设计,使传输到系统的数据类型不再受约束,不论接收到什么类型的数据该系统都能够顺利运行,提高了系统的可用性。解决了技术难题后,经过编程工作人员的不懈努力,最终于2024年6月成功上线并获得了同事和用户的一致好评,同时也非常感谢单位领导给予我这次宝贵的机会,让我在使用非关系数据库NoSQL解决问题上更加娴熟。

常见的NoSQL数据库技术有键值(Key-Value)存储数据库、列存储数据库、文档型数据库和图(Graph)数据库。键值(Key-Value)存储数据库指根据键值对数据进行存储的数据库,如身份证作为公民的唯一标识,可利用这一特点将关于人物的相关信息根据身份证号进行存储。列存储数据库指利用xlsx、xml等表格数据将信息进行存储,需要处理大量的表格信息。文档型数据库指运用docx、txt等文本数据将信息进行存储,需要对文本内容进行处理。图(Graph)数据库指将jpg、png等图形数据进行处理,从图形中找出物体的矢量图,根据其特征进行存储,如人脸识别系统。NoSQL数据库主要适用于需要处理超大规模数据集合、而且对并发操作要求很高的大型系统。如:双十一期间需要抢红包的购物系统、春运期间需要抢票的购票系统、需要处理各种数据并得出思考结论的大数据分析系统等。

在我参与管理和开发的OA系统中,采用了键值(Key-Value)存储数据库、列存储数据库、文档型数据库和图(Graph)数据库等数据库技术。下文将对这几种NoSQL数据库技术的架构设计过程及其应用效果进行具体阐述。

键值(Key-Value)存储数据库在OA系统中的应用。这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Kevvalue就显得效率低下了。例如:Tokyo Cabinet/Tyrant, Redis, Voldemort. Oracle BDB。针对公司人员数据信息存储管理模块,我们采用了键值存储数据库进行存储,根据身份证号唯一标识的特征,先将公司所有员工的身份证号进行收集,再按照员工进入公司的先后顺序编排工号,把身份证号与工号进行唯一绑定,之后对工号进行处理即可,可以有效防止身份证号信息泄露问题,便于有效管理公司员工信息。即便公司在短时间内需要对员工信息进行完善也可以高效地开展维护,确保数据的及时性。根据身份证号对工作人员进行管理的方法有效地减轻了维护信息数据的负担。

列存储数据库和文档型数据库在OA系统中的应用。列存储数据库这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra,HBase,Riak。文档型数据库的灵感是来自于Lotus Notes的办公软件,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。针对公司项目资料数据存储模块,我们采用了列存储数据库和文档型数据库,先将项目资料根据项目重要性、立项时间顺序等对其进行编号,将建设内容、项目资金、设计公司、监理公司等信息进行补充完善。关于项目合同的数据存储方面,我们采用了文档性数据库进行存储,将纸质版项目合同电子化后存储在相应数据库中,同时做好备份存储,方便日后审计时能够快捷高效地查找项目资料相关信息。当公司需要存储大量的项目资料时,列存数据库和文档型数据库也可以帮助其进行存储,将可能存在关联的数据进行同类存储。当管理人员需要对其中数据进行检索时,可以根据关键字对大量数据进行查找,并快速从中找到有效信息,提高工作效率。

图(Graph)数据库在OA系统中的应用。图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NOSQL数据库没有标准的査询语言(SQL),因此进行数据库査询需要制定数据模型。许多NOSQL数据库都有REST式的数据接口或者查询API。如:Ne04J,InfoGrid,Infinite Graph。针对公司员工上下班考勤打卡模块,我们采用了图数据库,员工在入职时就将人脸信息录入人脸识别设备,再将该设备收集到的人脸信息实时传输到OA系统中,确保信息的一致性。如果员工在上下班时发生迟到早退现象,OA系统就可以第一时间对该员工行为做出响应,及时将信息发送给本人,经确认后按照公司相关规定对该行为进行处理。当公司有大量工作人员进入公司时也可以及时地对其人脸信息进行录入,避免人工记忆混乱造成不必要地麻烦,有效地提高了工作效率。该模块可以有效地提高员工的时间观念,养成良好的按时上下班习惯,利于公司业绩地提高。

从2024年1月立项开始,经过近半年时间的辛勤付出,于6月成功上线并得到同事的一致好评,实属不易。期间,我们利用键值(Key-Value)存储数据库、列存储数据库、文档型数据库和图(Graph)数据库等技术将传统的关系型数据库改造成了NoSQL数据库,解决了OA系统大规模数据集合及多种数据类型带来的挑战,尤其是大数据应用难题。通过这次经历,我也认识到了作为系统架构设计师,技术经验的不足将有可能直接导致系统在应对超大规模和高并发问题时发生崩溃现象,对系统的使用造成消极影响。所以我在今后也将汲取本次项目的实战经验,梳理之前项目建设存在的问题,并在以后OA系统建设过程中,要严谨细致地对技术进行选型,避免因技术选型失误造成系统问题,导致严重后果。

相关推荐
liu****5 小时前
基于websocket的多用户网页五子棋(九)
服务器·网络·数据库·c++·websocket·网络协议·个人开发
liu****5 小时前
基于websocket的多用户网页五子棋(八)
服务器·前端·javascript·数据库·c++·websocket·个人开发
文火冰糖的硅基工坊5 小时前
《投资-107》价值投资者的认知升级与交易规则重构 - 上市公司的估值,估的不是当前的净资产的价值,而是未来持续赚钱的能力,估的是公司未来所有赚到钱的价值。
重构·架构·投资·投机
文火冰糖的硅基工坊5 小时前
《投资-99》价值投资者的认知升级与交易规则重构 - 什么是周期性股票?有哪些周期性股票?不同周期性股票的周期多少?周期性股票的买入和卖出的特点?
大数据·人工智能·重构·架构·投资·投机
Elastic 中国社区官方博客5 小时前
Elasticsearch:使用推理端点及语义搜索演示
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
一水鉴天5 小时前
整体设计 逻辑系统程序 之18 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之2
docker·架构·认知科学·公共逻辑
芒果茶叶6 小时前
并行SSR,SSR并行加载
前端·javascript·架构
武子康6 小时前
Java-143 深入浅出 MongoDB NoSQL:MongoDB、Redis、HBase、Neo4j应用场景与对比
java·数据库·redis·mongodb·性能优化·nosql·hbase
数据智能老司机6 小时前
数据工程设计模式——冷热数据存储
大数据·设计模式·架构