数据库非功能需求分析

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

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

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

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

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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
2月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 与传统数据库的性能对比分析
【8月更文第27天】随着云计算技术的发展,越来越多的企业开始将数据管理和存储迁移到云端。阿里云的 PolarDB 作为一款兼容 MySQL 和 PostgreSQL 的关系型数据库服务,提供了高性能、高可用和弹性伸缩的能力。本文将从不同角度对比 PolarDB 与本地部署的传统数据库(如 MySQL、PostgreSQL)在性能上的差异。
80 1
|
3月前
|
SQL Linux 数据库
|
3月前
|
SQL 数据库 微服务
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
|
3天前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
12 2
|
4天前
|
XML 数据库 数据格式
数据库 校验名称唯一性,用于新增和修改功能
数据库 校验名称唯一性,用于新增和修改功能
13 1
|
1月前
|
SQL Java OLAP
Hologres 入门:实时分析数据库的新选择
【9月更文第1天】在大数据和实时计算领域,数据仓库和分析型数据库的需求日益增长。随着业务对数据实时性要求的提高,传统的批处理架构已经难以满足现代应用的需求。阿里云推出的 Hologres 就是为了解决这个问题而生的一款实时分析数据库。本文将带你深入了解 Hologres 的基本概念、优势,并通过示例代码展示如何使用 Hologres 进行数据处理。
121 2
|
2月前
|
存储 关系型数据库 MySQL
基于python django 医院管理系统,多用户功能,包括管理员、用户、医生,数据库MySQL
本文介绍了一个基于Python Django框架开发的医院管理系统,该系统设计了管理员、用户和医生三个角色,具备多用户功能,并使用MySQL数据库进行数据存储和管理。
基于python django 医院管理系统,多用户功能,包括管理员、用户、医生,数据库MySQL
|
3月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之数据库处于只读状态,如何恢复其读写功能
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB产品使用问题之数据库处于只读状态,如何恢复其读写功能
|
2月前
|
存储 测试技术 数据处理
【计算机三级数据库技术】第2章 信息系统需求分析完整知识体系--附思维导图
本文详细介绍了信息系统需求分析的知识体系,包括需求分析的概念和意义、需求获取的方法、需求分析的过程,以及需求分析方法,如DFD数据流图、IDEF0、UML等。文章通过结构化分析和功能建模方法,帮助读者理解如何标识问题、建立需求模型、描述和确认需求,并比较了DFD与IDEF0两种方法的异同,同时提供了思维导图以辅助理解。
69 12
|
2月前
|
存储 安全 测试技术
【计算机三级数据库技术】第4章 数据库应用系统功能设计与实现--附思维导图
重点介绍了数据库应用系统(DBAS)的功能设计和实现。
31 1
下一篇
无影云桌面