数据库非功能需求分析

简介: 本文探讨了业务研发在技术设计中如何满足非功能需求,重点关注数据库系统的角色。内容涵盖数据库的可用性、可靠性、性能、可修改性、安全性及成本。文章强调了根据业务场景选择合适的数据类型(如关系型、非关系型、内存型、图数据库和时间序列数据库)以及考虑数据容量和增长速度。对于性能需求,讨论了响应时间、吞吐量和并发处理能力。此外,还提到了升级路径、兼容性、备份方案和成本控制(硬件、软件和人力成本)在数据库管理中的重要性。

作为业务研发,我们在做技术设计的时候不仅要关注到功能需求,同样也需要关注到非功能需求,在非功能需求中,常见的需要考虑的点有可靠性、可用性、性能、可修改性、可变性、安全性、成本。制约这些非功能需求一个很重要的组件就是数据库系统。下面我们就我就来来聊聊怎样来保证这些非功能需求。

一、数据库的可用性可靠性需求

我们接到需求后,我们首先要进行业务需求分析,然后分解到数据库的需求,我们首先要根据业务场景和数据库的特点来选择数据库的类型,满足功能、可用性、可靠性的诉求,下面我们就先介绍一些数据类型和一般所处理的场景。

1、1数据类型

  1. 关系型数据库主要有MySQL、Oracle、Microsoft SQL Server和PostgreSQL等,使用表中的行来存储数据,关系型数据库适用于事务处理和需要强大的数据一致性、完整性和安全性的应用,如企业应用、电子商务、金融系统等。
  2. 非关系型数据库(NoSQL)主要有MongoDB、Cassandra、Redis和Elasticsearch等,他们是采用键值对、文档、列族或图形等方式来存储数据,它们具有更灵活的数据模型和可扩展性。非关系型数据库适用于需要高可扩展性、灵活的数据模型和快速读写访问的应用,如大数据、实时分析、内容管理和社交网络等。
  3. 内存数据库主要有Redis、Memcached,他们是将数据存储在内存中,以提供快速的读写访问速度。通常用于对读取操作要求非常高、需要快速响应的应用场景,如实时数据分析、高频交易系统等。
  4. 图数据库主要有Neo4j,专门用于存储和处理图形数据结构,如节点和边。它们适用于需要进行复杂的关系分析和图形遍历的应用,如社交网络分析、推荐系统、网络关系图等。
  5. 时间序列数据库主要有InfluxDB、Prometheus和OpenTSDB,专门用于存储和处理按时间顺序排列的数据,它们提供了高效的时间序列数据存储和查询功能,适用于实时监控、物联网、日志分析和金融领域等。一些时间序列数据库包括InfluxDB、Prometheus和OpenTSDB等。

在使用以上数据类型的时候我们要考虑好数据、索引、压缩文件的容量问题。

1、2数据容量和增长量速度

我们要和业务人员核对清楚业务的增长模型和背景,根据历史数据增长趋势和同行数据做好数据量预测和数据增长速度,通常我们需要关注以下几个要素:

  1. 业务增长预测:根据业务发展趋势,预测未来数据量增长
  2. 数据类型分析:分析不同类型的数据,预测数据量增长
  3. 数据存储需求:根据数据存储需求,预测数据量增长
  4. 数据处理需求:根据数据处理需求,预测数据量增长
  5. 数据备份需求:根据数据备份需求,预测数据量增长

只有充分考虑了这些要素,才能确保数据库容量能够满足未来的需求。

二、数据库的性能需求

在满足基本的功能后,我们要考虑到性能的问题,数据库性能方面我们主要考虑响应时间、吞吐量和并发处理能力。

2、1响应时间

响应时间方面,我们要综合考虑查询速度、事务处理速度、数据加载速度、并发处理能力以及延迟。这些要素共同决定了数据库的性能和效率,我们需要充分考虑业务场景下的这些依赖要素,以确保响应时间达到预期。

2、2吞吐量

吞吐量是指单位时间内数据库能够处理的事务数量,其影响因素包括硬件配置、数据库设计和查询优化等。我们可以通过压力测试、基准测试等方法来评估数据库的吞吐量,并采用增加硬件资源、优化数据库结构和优化查询语句等方法来进行优化。

2、3并发处理能力

并发处理能力方面我们需要关注以下几个方面:并发处理能力、事务处理速度、吞吐量、并发用户数、响应时间以及资源利用率。

三、数据库可修改性等需求

在业务快速增长的情况下,我们也需要考虑到数据库的可修改性、可变性、安全性,在这方面我们主要从升级路径、兼容性和备份方案几方面考虑。

4、1升级路径

升级方面可以从硬件、软件、数据库架构、数据库分片和备份与恢复等方面进行考虑,通过升级硬件、软件、采用分布式数据库架构数据分片、定期备份数据等方式,可以提高数据库的性能和安全性。

4、2兼容性

兼容性包括数据库类型、版本、操作系统的平台、接口、功能以及性能等,这些因素都会对数据库的容量产生影响,因此在选择数据库时需要充分考虑这些因素。

4、3备份方案

容灾备份方案,包括备份策略、备份位置、备份介质和备份恢复等方面。此外,定期进行容灾演练,可以检验备份方案的有效性。

  1. 备份策略:定期备份、实时备份、增量备份等
  2. 备份位置:本地备份、异地备份、云备份等
  3. 备份介质:硬盘、光盘、磁带等
  4. 备份恢复:数据恢复、系统恢复等
  5. 容灾演练:定期进行容灾演练,检验备份方案的有效性

四、数据库成本需求

在做业务需求时,一般都会计算roi,其中在现在降本增效的大背景下,现在也出现了finops这样的理念,所以我们在做数据库需要的时候也要考虑数据库的成本,数据库的成本主要由硬件、软件、人力三方面成本构成。

3、1硬件成本

在选择数据库硬件时,我们需要考虑以下几个方面:服务器类型和配置;存储设备的选择,如硬盘、SSD等,以满足数据库数据量需求;网络设备的选择,确保网络带宽足够,以满足数据库数据传输需求;电源和冷却系统的稳定性和高效性;容错和冗余的需求,为了保证可用性和可靠性,可能需要做容错和冗余,以保证数据库正常运行。

3、2软件成本

软件成本我们需要综合考虑软件成本、许可证费用、维护费用、升级费用、培训费用以及定制开发费用等,以确保数据库系统的高效运行和可持续发展。

3、3人力成本

人力考虑要素包括:招聘和培训数据库管理员的成本,维护和升级数据库系统的成本,解决数据库性能问题的成本,以及确保数据安全和合规性的成本。

以上就是我们在做业务需求中关于数据库方面的非功能需求的考虑点,在做一些需求的时候,我们可能因为精力排期有限,不能考虑的很全面,但是有了上面这个分享的蓝图,我们在回头看的时候,会记录好当时留下的技术债,以便后期排期在合适的时机解决。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
5月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
444 158
|
4月前
|
SQL 关系型数据库 MySQL
阿里云RDS云数据库全解析:产品功能、收费标准与活动参考
与云服务器ECS一样,关系型数据库RDS也是很多用户上云必买的热门云产品之一,阿里云的云数据库RDS主要包含RDS MySQL、RDS SQL Server、RDS PostgreSQL、RDS MariaDB等几个关系型数据库,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,帮助您解决数据库运维的烦恼。本文为大家介绍阿里云的云数据库 RDS主要产品及计费方式、收费标准以及活动等相关情况,以供参考。
|
5月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
427 156
|
5月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
530 161
|
12月前
|
存储 NoSQL 关系型数据库
PolarDB开源数据库进阶课17 集成数据湖功能
本文介绍了如何在PolarDB数据库中接入pg_duckdb、pg_mooncake插件以支持数据湖功能, 可以读写对象存储的远程数据, 支持csv, parquet等格式, 支持delta等框架, 并显著提升OLAP性能。
894 2
|
7月前
|
SQL 存储 关系型数据库
MySQL功能模块探秘:数据库世界的奇妙之旅
]带你轻松愉快地探索MySQL 8.4.5的核心功能模块,从SQL引擎到存储引擎,从复制机制到插件系统,让你在欢声笑语中掌握数据库的精髓!
227 26
|
Cloud Native 关系型数据库 分布式数据库
让PolarDB更了解您--PolarDB云原生数据库核心功能体验馆
让PolarDB更了解您——PolarDB云原生数据库核心功能体验馆,由阿里云数据库产品事业部负责人宋震分享。内容涵盖PolarDB技术布局、开源进展及体验馆三大部分。技术布局包括云计算加速数据库演进、数据处理需求带来的变革、软硬协同优化等;开源部分介绍了兼容MySQL和PostgreSQL的两款产品;体验馆则通过实际操作让用户直观感受Serverless、无感切换、SQL2Map等功能。
444 7
|
9月前
|
存储 缓存 自然语言处理
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
279 8
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
|
11月前
|
SQL Linux 数据库
【YashanDB知识库】崖山数据库Outline功能验证
本文来自YashanDB官网,主要测试了数据库优化器在不同场景下优先使用outline计划的功能。测试环境包括相同版本新增数据、绑定参数执行、单机主备架构以及数据库版本升级等场景。通过创建表、插入数据、收集统计信息和创建outline等步骤,验证了在各种情况下优化器均能优先采用存储的outline计划。测试结果表明,即使统计信息失效或数据库版本升级,outline功能依然稳定有效,确保查询计划的一致性和性能优化。详情可见[原文链接](https://www.yashandb.com/newsinfo/7488286.html?templateId=1718516)。
【YashanDB知识库】崖山数据库Outline功能验证