23 可扩展的数据结构

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

water___Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值