非关系型数据库 Is SaaS最佳存储介质
SaaS以租赁的方式向用户提供软件服务。中小型企业在资金和信息化人才缺乏的情况下,可通过向SaaS购买帐号,可以迅速实现信息化,节约成本。SaaS虽然在国内普及度不够高,但随着云计算宣传力度增大,市场广度会越来越大。
对于软件提供商,在设计SaaS平台时,难度会比传统的应用模式大的多。因为提供的服务平台,而不是一个软件应用,在多企业共用平台的背景下,必然会带来数据的压力。而数据压力不仅体现在数据量,并发性增大,还体现在可扩展性的需求加大。数据量并发性增大不难理解,由于是为多企业提供服务,就需要在服务端部署所有企业的数据,数据量自然而然就会增大。可扩展性的需求加大是因为SaaS提供的共有功能,不能像传统应用软件可进行定制开发,所以只能提供一些灵活的配置来供企业实现个性需求。而个性需求功能越大,越能体现SaaS平台的优势。
综上所述,在设计SaaS数据库需要解决以下三方面的问题:
1。海量数据
2。高并发性
3。高扩展性
下面介绍下关系型数据库对于SaaS的设计模式。提供以下三种方式:
一、多数据库,多结构。这种方式为企业提供独立的数据库,企业拥有自己的数据库服务。这种方式可以解决以上三个问题,但带来了另一个问题:随着企业用户越来越多,维护的难度越来越大。数据库需要备份,更新程序后,需要更新数据库Schema,想想成千上万的数据库更新是多么繁琐的事情。所以这种方式只适合较大规模的企业,例如政府,国企,可以提供持续资金来弥补维护成本的增加。这就又与SaaS的宗旨背道而驰了,所以这种方式不是很理想。
二、单数据库,多结构。这种方式是为不同的企业提供独立的表,共用一个数据库。这种方式也可以解决以上三个问题,但也有自身的问题。与上一个方式问题一样就是维护起来相当麻烦,但这种方式可以节约一定的服务器成本,不会因为用户增加而增加数据库,从而迫使增加服务器。所以这种方式有一定的改进。
三、单数据库,单结构。企业数据全部存储到同一张表中。这种方式虽然对后期维护成本大大的降低,但对于海量数据高并发解决不了。随着不可预期的数据量持续增大,性能会大大的降低。也不理想。
在使用关系型数据,需要选择以上三种适合自己的方式,就有了一定的局限性。所以可以考虑采用非关系型数据库,下面分析下非关系型数据库的好处。
非关系型数据没有Schema的约束,可以将原数据存储起来。例如文档型数据库mongoDB就是一个不错的选择,不论在海量数据及高并发性都优于关系型数据库。因为去除了许多约束与事务。一张表里没有了Schema的约束,每行数据的字段可以允许不同。在这种情况下,扩展性就变得相当容易。
当然,有利就有弊。由于事务性降低,为了保证数据完整性,开发难度会增大些。
但任何软件设计都要有个利弊的比较,找到一个最佳的实现方式。前期开发上投入些力度,后期维护大大降低。
非关系型数据库必定是SaaS数据存储方式。