Marklogic学习 —— 灵活的数据模型

摘要: Marklogic有很多特性,在官方网站http://www.marklogic.com/可以看到,对于关键特性key features有大量讲述,本节介绍其特性之一——灵活的数据模型Flexible Data Model

数据模型

Marklogic可以直接存贮多种数据类型:JSON、XML、RDF、坐标、二进制数据(PDF、图片、视频)。因此,你可以方便的存贮数据,并在之后对其作修改。关系型数据库需要提前定义schema和ETL,以便数据存贮在表的行列之中。使用Marklogic,你可以按照数据原来的样子存储,而免于繁重的ETL过程。Marklogic会把结构化数据和非结构化数据(数据与元数据)存储在同一个数据库中。如果在之后存储来自不同数据源的不同结构数据,都是可以的。Marklogic的使用者曾说,Marklogic灵活的数据模型就像是“释放了关系型数据技术的枷锁”(removes the shackles of relational technology)。

文档模型

Marklogic主要存储JSON和XML文档数据。在NoSQL数据库中,文档模型流行, 它可以解决许多关系型数据库无法处理的问题。文档对于多样而复杂的数据来说,很有帮助,它是可读的,可以很接近业务模型,从而避免关系型数据的阻抗失衡(impedance mismatch)问题。
由于文档模型可以很容易地将多种不同数据结构的数据存储在同一数据库中,因此数据集成变得容易而高效。因为Marklogic的“Ask Anything”通用索引,你可以很方便的在整个数据库中及时查询到数据的结构和内容。

多模型语义学

语义学使得Marklogic可以利用RDF存储图形数据,语义学可以通过一种智能的方式来存储JSON和XML数据,以增强文档模型。对于查询和数据集成来说,这一点尤为重要。
语义学可以给你的数据关联语境。例如,数据库中有很多零件,其中有一个零件被标准为42. 试想一下,你想知道这些信息:它的单位是什么?误差多少?什么时候测量的?谁测量的?谁可以看到这个信息?这些与上下文有关的数据就是语义学数据,它们可以很容易地存储在Marklogic数据库中。

强大并且可以组合

使用Marklogic的多模型方式,可以存储并管理你的所有数据。你可以充分的组合使用它们,令一个简单的查询语句去覆盖所有的数据类型。

\JSONXMLRDFJSON/XML + RDF
Usageideal for structured data that is stored as objectsideal for structured and unstructured data or textideal for facts and relationshipsideal for systems of data, text, and relationships
Description• schema-agnostic • Query with Javascript• compact and fast to parse• six kinds of values: objects, arrays, floats, strings, booleans, nulls• avoids namespaces, comments and attributes• common data format for the web• schema-agnostic• Query with xQuery• can store objects, sets, and many data * such as dates, durations, integers, and more• Uses namespaces (for embedding object *), comments, and attributes (for adding metadata)• More maturity than JsoNas a data model• Define entities and relationships• atomic structure (cannot be broken down further)• Uses universal standards for data and querying (rDF and sParQl)• Used for reference data, metadata, provenance• Documents can contain triples• triples can annotate documents• graphs of triples can contain documents• enhanced querying:- expand a document search using graphs- enhance graph search by linking to documents- restrict document search using triples

相关文章