《NoSQL权威指南》——第2章 列式数据库

简介:

第2章 列式数据库

NoSQL权威指南
简介
从打孔卡和磁带的年代开始,文件就是物理设备上连续的字节,访问的方式是从文件开始(打开文件)到文件结束(文件结束的标志为TRUE)。是的,存储可以在磁盘上被分割成数据页,并且各种数据页可以通过指针链连接,但这种模型仍然与前面提到的打孔卡、磁带是相同的。后来,文件被拆分成记录(record,更多物理连续的字节),记录又被拆分成字段(field,仍然是更多物理连续的字节)。

文件被一条记录一条记录地处理(读/取一条,然后下一条)或按照物理存储位置顺序地处理(从头到文件结尾,或遵循一个指针链前进/后退n条记录,等等)。在这种模型中没有任何并行。这里还有一个假设:文件中记录(行)和记录中字段是物理排序的。为了使对这些数据的访问有效,花了大量的时间和资源来对记录进行排序。在磁带上无法做到随机存取,打孔卡上也无法做到。

到了RDBMS和SQL时代,这种文件系统模型仍然占主导地位。Codd博士也陷入了困境。首先,他必须在所有表中拥有一个主键(PRIMARY KEY),主键对应于顺序文件的排列次序;后来,他意识到键就是键,没有必要在RDBMS中让其中一个键成为特殊的字段。但是,SQL已经纳入了已有的技术特性,而且早期的SQL引擎也是建立在既有文件系统上的,所以在这个环节上卡住了。

列式模式采用了一种完全不同的方法。但它是一种可以与SQL和关系模型很好地一起工作的模型。在RDBMS中,表(bable)是一个具有完全相同类型的行(row)的无序集合。一个行是相同类型的无序列(column)的集合,每列保存与既定列相关的标量值。可以通过列名称来访问对应的列,而不是通过存储中的物理位置,当然,也可以使用"SELECT*"等简单方式来访问,以节省要输入。

对应的逻辑模型如下:表是行的集合,有且仅有一种结构;行是一组列的集合;列是取自一个且仅一个已知域的标量值。存储通常会在传统的文件系统中遵循这种模式,用文件表示表,用记录表示行,用字段表示列。但这都与物理存储无关。

在列式模型中,我们设计一个表,并且使用列式数据库特有的数据结构来存储每个列。行和表可以从这些行重新组合生成。看看平常的表的设计,可以看到为什么它们称为垂直存储模型,而不是水平存储模型。

相关文章
|
2月前
|
存储 NoSQL 关系型数据库
【赵渝强老师】什么是NoSQL数据库?
随着大数据技术的兴起,NoSQL数据库(Not Only SQL)得到广泛应用。它不局限于二维表结构,允许数据冗余。常见的NoSQL数据库包括Redis、MongoDB和HBase。Redis是基于内存的高性能数据库,采用单线程模型和多路复用I/O,支持高效的数据结构。MongoDB使用BSON格式存储文档,查询语言强大,类似关系型数据库。HBase基于HDFS,适合数据分析,采用列式存储,支持灵活的列族设计。视频讲解及更多内容见下文。
222 79
|
5月前
|
存储 监控 NoSQL
九大核心NoSQL数据库及使用场景详解
【10月更文挑战第6天】在当今大数据与云计算飞速发展的时代,NoSQL数据库以其灵活的数据模型、可扩展性和高性能,成为了众多应用场景下的首选。本文将为您详细介绍九大核心NoSQL数据库及其典型使用场景,帮助您在工作和学习中更好地选择和应用。
172 3
|
4月前
|
存储 缓存 NoSQL
常见的 NoSQL 数据库有哪些?
常见的 NoSQL 数据库有哪些?
202 59
|
5月前
|
存储 SQL JSON
介绍一下RDBMS和NoSQL数据库之间的区别
【10月更文挑战第21天】介绍一下RDBMS和NoSQL数据库之间的区别
210 2
|
5月前
|
存储 SQL NoSQL
数据库技术深度探索:从关系型到NoSQL的演变
【10月更文挑战第21天】数据库技术深度探索:从关系型到NoSQL的演变
139 1
|
5月前
|
存储 NoSQL 搜索推荐
nosql
【10月更文挑战第14天】nosql
51 2
|
5月前
|
NoSQL 前端开发 MongoDB
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。
119 0
|
5月前
|
存储 SQL 分布式计算
NoSQL 简介
10月更文挑战第10天
69 0
|
5月前
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
160 0
|
5月前
|
存储 NoSQL Java
Java中NoSql 数据库的使用
Java中NoSql 数据库的使用
61 0

热门文章

最新文章