论文部分内容阅读
1970年关系模型被提出之后,关系型数据库便开始出现,基于日趋成熟的关系代数理论以及多年的演化和改进,关系型数据库已经具备强大的存储和管理结构化数据的能力。然而随着互联网技术的不断发展以及大数据时代的到来,关系型数据库在处理海量规模、不同结构类型的数据时已经体现出自身的劣势,主要包括扩展性差、灵活性差等方面。而以MongoDB、HBase、Redis等为代表的非关系型数据库由于具有扩展性好、成本低、灵活性高等特点,逐渐被应用于各大企业的后台应用以及云存储系统中。关系型数据库经过多年的发展,已经形成一套较为完善的理论基础,在对关系型数据库进行设计时也有相关的范式化设计准则作为依据,而相比之下,非关系型数据库在实际使用的过程中,尚未形成一套较为完善的存储模型设计准则。尽管非关系型数据库本身的一个特点就是具备灵活的存储模型,然而具备灵活的存储模型并不意味着在使用的过程中不需要进行存储模型的设计,不同的业务场景下使用不同的存储模型,对整个后台存储系统的性能会产生较大影响。而由于非关系型数据库与传统的关系型数据库在数据组织等方面的差异,将关系型数据库的范式化设计准则直接应用于非关系型数据库的存储模型设计中,不具备较高的可行性。本论文选取非关系型数据库中的文档型数据库作为研究对象讨论不同业务情景下的存储模型,探讨一个适用于文档型数据库的存储模型设计方案。本文针对文档型数据库中的增删查改等操作进行复杂度分析,对具体的操作给出相应的量化公式;然后定义一个M_To_N场景模型,基于该模型可以更加形式化地描述各类关系场景,并且利用该模型以及对各个操作的复杂度量化分析,对各类独立的关系场景给出一个适用于文档型数据库的存储模型设计策略;本文同时提出一个存储模型设计算法(Model_Design),该算法用于处理多个具有关联关系的关系场景,利用前期工作中制定的独立关系场景的存储策略,为多个具有关联关系的关系场景规划出一个整体性能较高的存储方案;最后,本文通过设计对比实验的方式对研究结果进行验证,实验表明,按照本文的方法进行文档型数据库的存储模型设计,可以有效提高存储系统的整体性能。