23 可扩展的数据结构

Posted water___Wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了23 可扩展的数据结构相关的知识,希望对你有一定的参考价值。

传统的关系数据库为了保证关系运算(通过SQL语句)的正确性,在设计数据库表 结构的时候,就需要指定表的schema——字段名称,数据类型等,并要遵循特定的设计 范式。这些规范带来的一个问题就是僵硬的数据结构难以面对需求变更带来的挑战,有 些应用系统设计者通过预先设计一些冗余字段来应对,不过显然这是一种糟糕的数据库 设计。

那么有没有办法能够做到可扩展的数据结构设计呢?无需修改表结构就可以新增字 段呢?许多NoSQL数据库使用的ColumnFamily (列族)设计就是一个解决方案。 ColumnFamily最早在Google的Bigtable中使用,这是一种面向列族的稀疏矩阵存储格式, 如表7.1所示。

这是一个学生的基本信息表,不同学生的联系方式各不相同,选修的课程也不同, 而且在将来会有更多联系方式和课程加入到这张表,如果按照传统的关系数据库设计, 无论提前预设多少冗余字段都会捉襟见肘,疲于应付。

而使用支持ColumnFamily结构的NoSQL数据库,创建表的时候,只需要指定 ColumnFamily的名字,无需指定字段(Column ),可以在数据写入时再指定,通过这种 方式,数据表可以包含数百万的字段,使得应用程序的数据结构可以随意扩展。而在查 询时,可以通过指定任意字段名称和值进行查询。

以上是关于23 可扩展的数据结构的主要内容,如果未能解决你的问题,请参考以下文章

23 可扩展的数据结构

数据库可扩展设计方案

23种设计模式之策略模式——Strategy

Oracle 19c对VARCHAR2的限制

Oracle 19c对VARCHAR2的限制

Flume概述