在研究Key-Value Database数据库时候,不可避免地遇见了几种类型的数据库划分方式:Row-Oriented Database 、Column-Oriented Database 、Key-Value Database 、Document-Oriented Database,简单总结一下。
1、Row-Oriented Database:
行导向的数据库实际上就是传统的关系数据库(RDBMS),关系数据库的数据是按行来存储的,即把一条记录的所有属性(列)存储在一起。传统关系数据库的典型应用场合是OLTP(On-Line Transaction Processing )领域,这些领域以事务处理为主,包括数据的增加、删除、修改、查询。
2、Column-Oriented Database:
列导向的数据库的典型应用场合是OLAP(On-Line Analysis Processing),因此以列导向的架构设计非常适合于数据仓库的应用。对于大多数数据仓库的分析场景中,实际关注的数据很多时候都只有那么一列或者少数几列的数据。所以在以列为导向的设计中,大部分的分析查询都只需要读取某一个(或者几个)表的几列,而不需要像传统以行为导向的数据库那样需要扫描整个表的数据,这两者IO量的差距是非常大的。
要理解列导向的数据库可以参考下图(摘自What’s a Column-Oriented DBMS?)。
参考文章及Wikipedia的划分方法,常见的Column-Oriented Database如下(不一定准确,仅供参考)
-
http://incubator.apache.org/cassandra/(也可以归成Key-Value Store)
-
http://hadoop.apache.org/hbase/(也可以归成Key-Value Store)
-
http://hypertable.org/(也可以归成Key-Value Store)
-
http://kosmosfs.sourceforge.net/(也可以归成Key-Value Store)
-
http://www.openneptune.com/(也可以归成Key-Value Store)
3、Column-Oriented Database VS. Row-Oriented Database
4、Key-Value Store Database
在distributed key-value store 杂思对一些常见Key-Value Store数据库进行了总结,其实精确来说,不应当都叫Key-Value Store Database,而应当叫做Anti-RDBMS或NOSQL Database。
5、Document-Oriented Database
文档数据库一般用于存储半结构化的数据,在文档数据库中文档是处理信息的基本单位。文档数据库允许创建许多不同类型的非结构化的或任意格式的字段。文档数据库一般采用XML、YAML 、JSON作为存储协议。由于文档数据库中的文档也需要一个唯一的key来标识文档(当然key可以是JSON、XML结构),文档的内容可以看做value,因此一般把文档数据库也归到Key-Value Store Database中,当然所有的XML数据库其实也可以归成文档数据库。
文档数据库很适合CMS、知识库、OA系统,用于存储新闻稿件、电子邮件、书籍、Web页面、多媒体文件等半结构化的数据。
除了Lotus Notes 、Amazon SimpleDB 这样的商用文档数据库外,常见的开源文档数据库:
6、参考文档
http://ronaldbradford.com/data-store-products/
http://internetmindmap.com/database_software
http://en.wikipedia.org/wiki/Column-oriented_DBMS
http://en.wikipedia.org/wiki/Document-oriented_database
相关推荐
它提供了实时查询、数据分析和机器学习等功能,适用于数据仓库、大数据分析和推荐系统等场景。 Pinot was originally built at LinkedIn to power rich interactive real...Column-oriented: a column-oriented databas
RDD编程初级实践Tom,DataBase,80 Tom,Algorithm,50 Tom,DataStructure,60 Jim,DataBas
Oracle Database 12c 适用于Windows 64位系统, winx64_12102_database文件分割成 三个 压缩包,必须集齐 三个 文件后才能一起解压一起使用: Oracle Database 12c (winx64_12102_database.part3.rar) ...
android 9.0及其以上版本手机 操作数据库,再打开数据库db文件出现 “File opened that is not a database file file is encrypted or is not a database”android 9.0以下的版本 不会出现。 原因及解决方法。
超级好用的数据库工具,Database4
Databas-Uppgift:Windows窗体中的Uppgift数据库
Designing a database is much like designing anything else: a building, a car, a roadway through a city, or a book such as this. Much care must be taken to plan a design. If time is not taken to ...
DATABAS OVERVIEDATABAS OVERVIEDATABAS OVERVIEDATABAS OVERVIE
database_link是用来做什么JAVA
集合Java源码MySQL连接源代码 小型示例控制台源代码如何连接到MySQL,如何更新行以及如何读取表。 在Windows下运行 将此存储库克隆到您的计算机 安装MySQL (作为Docker容器) ...03-inspect-databas
ISED_details.mat - It contains the details of the data included in the databas. For easy assess of the database, the paths to all the files are provided here. It also includes the position of face, ...
工业废水排放合规性采样和报告数据库软件-Microsoft Access
If you are using MySQL Workbench Commercial Editions, see this document for licensing information, including licensing information relating to third-party software that may be included in this ...
主体网络和数据库示例这是使用Entitas,Forge Networking和MongoDB作为数据库服务的ECS后端的一个非常基本的示例要运行测试项目: 转到Unitys构建设置,将...= 0,则GameEntity被破坏如果启用了Save Databas
如图,用管理员运行,在命令行窗口输入mysqld --initialize --console,执行初始化命令,出现了mysqld: Can’t create directory ‘D: ystem tool\mysql-8.0.19-winx64\Database’ (OS errno 2 – No such
Niit 数据库账号密码
A Simple Guide to Five Normal Forms in Relational Database Theory (William Kent)
一个完整的数据库文件,可供解析,查看和编辑的相关操作
PageDataSource DataBas 数据库查询,记录增删改,数据分页