数据库 频道

数据库的非功能性需求

  数据库的功能需求是大家比较关注的,其实除了功能需求之外,还有一些非功能需求也值得我们去关注。就像我们在开发一个系统的时候,首先我们要关注功能性需求,不过同时也要关注非功能性需求。如果我们在开发一个应用系统的时候,只关心功能性需求忽视了非功能性需求,那么系统上线之后可能会遇到一些很难解决的问题。比如对并发的支持能力、性能方面的需求、数据归档的需求等。这些非功能性需求在系统上线之初可能对系统总体影响还不大。随着系统的运行这些非功能需求所带来的影响会越来越大。

  上回和一个数据库厂商的朋友谈到数据库产品是否存在非功能需求的时候,他当时愣了一下,觉得数据库产品难道还有非功能性需求吗?所有的需求都应该是功能方面的吧。在一个应用系统里面,某种并发下的性能可能属于非功能性需求,某个系统的数据量的变化情况也可能会归纳为非功能性需求。不过这些对于数据库产品来说都应该属于功能需求。一款合格的数据库系统不仅仅是能够很好地执行出各种标准的SQL,而且应该能够在高并发大数据量情况下高质量、高性能、低延时地完成这些SQL语句的执行。这些都是数据库的功能需求。

  很多数据库厂商对于数据库的非功能性需求往往都不太重视,甚至有些厂商根本不知道除了数据库产品的功能性能做好之外,还需要做点什么。数据库的非功能性需求是数据库产品本身之外的需求。比如产品文档,产品文档虽然是数据库产品的一部分,不过与数据库实现的功能并无直接关系,但是如果文档写得不好,用户在使用数据库的时候就会遇到很多麻烦,用户用不好数据库产品,就会增加用户的使用成本,会间接影响数据库厂商的售后成本。

  与文档类似的还有最 佳实践、使用经验、操作小技巧等一系列的零散的,比文档还难搞的知识库。这些知识库可以以文字、视频、音频、培训教材、认证考试等多种方式出现。不过对于数据库厂商来说,这些都不是可有可无的,而是用户对数据库产品提出的必备的非功能性需求。

  一个更为重要的非功能性需求是线上服务平台,也就是很多数据库厂商内部所说的技服平台,其实如果把线上服务平台称为“技服平台”的数据库厂商对服务的定义还是有些过于片面了,服务并不一定是面向自己的数据库技术的,而是面向客户的,客户对于数据库的一切服务需求,应该都能够在线上服务平台上提供。

  技术与生态社区建设也是数据库产品的非功能性需求之一,而且是更为重要的需求。目前几乎所有的国产数据库厂商都在谈社区和生态,但是几乎所有的国产数据库厂商都不会真正去重视社区与生态。大家的做法不外乎拿出一点经费来搞一些活动,其实这种生态是最为原始的生态。真正的生态是要让所有参与者有所收益的,客户学到了技术、服务商获得了商业利益,目前国产数据库的技术与生态还浮于表面,想做到让生态参与者都受益还有很远的距离。其实有些时候,生态的其他参与者没有受益之前,数据库厂商想从生态中受益还是很难。

  其实今天我谈的数据库的非功能性需求,Oracle都已经做得相当好了,国产数据库厂商目前想要学习O记,不过力不从心,因此只能学个皮毛。我也衷心希望国产数据库厂商能够把这些非功能性需求重视起来,尽快补上这些短板。

0
相关文章