Share to: share facebook share twitter share wa share telegram print page

面向文檔的數據庫

面向文档的数据库(英語:Document-oriented database)或文档存储,是用于存储、检索和管理面向文档的信息的一种计算机程序。这里称为文档的是半结构化数据英语Semi-structured data[1],它是不完全形式的结构化数据,不服从于与关系数据库或其他形式数据表有关联之数据模型的形式结构,然而却包含标签或其他标记,用以在数据内分割语义元素和强制记录和字段的层级,因此它也叫做「自我描述结构」。

概述

面向文档的数据库是NoSQL数据库的主要类别之一,且“面向文档的数据库”一词的普及程度也因术语NoSQL的使用而有所增长[2]XML数据库英语XML database是针对XML文档做了优化的面向文档的数据库的子类。图数据库与之相似,但其添加了一个连接各文档的“联系”层,以便进行快速遍历。一些搜索引擎(也称为信息检索)系统如Elasticsearch提供了足够的对文档的核心操作从而已经满足了面向文档数据库的定义。

键-值数据库是NoSQL数据库的另一概念,面向文档的数据库是键-值数据库的子类。它们的差别在于处理数据的方式:在键值数据库中,数据是对数据库不透明的;而面向文档的数据库系统依赖于“文档”的内部结构来获取元数据,数据库引擎使用这些元数据进行更深层次的优化。虽然由于系统中的工具使这一差别不甚明显,[a]但在设计概念上,这种文档存储方式利用了现代程序技术来提供更丰富的体验。现代键-值存储经常包括处理元数据的特征,模糊了它与文档存储之间的界线。

文档数据库[b]与传统的关系数据库差异显著。关系数据库通常将数据存储在相互独立的表中,这些由程序开发者定义,一个单一的对象可能散布在若干表中。 对于一个给定对象,文档数据库将其所有信息存储在数据库内某个单一实例中,并且存储的每一个对象可以不同于任一其它对象。这简化了将对象装载入数据库的过程,通常能消除对对象关系映射等类似方案的需求。文档数据库不同于关系数据库,关系数据库基于了关系模型,而文档数据库采用了半结构化模型英语Semi-structured model,没有在数据和模式(schema)之间的分离,使用的结构的数量依赖于目标用途。在半结构化数据中,属于相同实体可有不同的特性英语Variable and attribute (research),即使它们被分组在一起,并且属性的次序是不重要的。

文档

面向文档数据库的中心概念是“文档”这个概念。尽管每个面向文档数据库实现在这个定义的细节上都有所不同,一般而言,它们都假定文档以某种标准格式编码来封装和编码数据(或信息)。面向文档数据库使用的编码包括XMLYAMLJSONBSON,有的实现还可以存储二进制文档格式如PDF和Microsoft Office文档(MS WordExcel之类)。

在文档存储中的文档粗略的等价于对象这个编程概念。不要求它们遵守标准模式(schema),也不要求它们都有同样的章节、插槽(slot)、部分(part)或键。一般地说,使用对象的程序有很多不同的对象类型,而这些对象经常有很多可选的字段(field)。每个对象,即使是同类的,也可以看起来非常不同。文档存储类似于此,它们在一个单一存储中允许不同类型的文档,运行在文档中的字段是可选的,并且经常允许它们使用不同的编码系统来编码。例如,下面是一个文档,采用JSON编码:

{
    "FirstName": "Bob", 
    "Address": "5 Oak St.", 
    "Hobby": "sailing"
}

第二个文档可以采用XML来编码:

  <contact>
    <firstname>Bob</firstname>
    <lastname>Smith</lastname>
    <phone type="Cell">(123) 555-0178</phone>
    <phone type="Work">(890) 555-0133</phone>
    <address>
      <type>Home</type>
      <street1>123 Back St.</street1>
      <city>Boys</city>
      <state>AR</state>
      <zip>32225</zip>
      <country>US</country>
    </address>
  </contact>

这两个文档相互共享一些结构性元素,但每个都有唯一性元素。在文档内部的结构和正文及其他数据通常被称为文档的“内容”,并可以通过通过检索或编辑方法(见下文)来引用。关系数据库中,所有记录包含同样的字段,保留未使用字段为空;不同于关系数据库,在上述例子的这两个文档(记录)中都没有空“字段”。这种方式允许向某些记录增加新信息而不要求在数据库中的所有其他记录共享相同结构。

文档数据典型的提供了关联于文档内容并与之一起存储的额外的元数据。这种元数据还可以与增进数据存储有关,提供组织文档,提供安全性,或其他特定于实现的特性。

CRUD操作

面向文档数据对文档提供类似于其他数据库的核心操作,尽管术语未完全标准化,大多数实践者将它们认可为CRUD

  • 建立(或插入)
  • 检索(或查询、查找、读取或寻找)
  • 更新(或编辑)
  • 删除(或移除)

在数据库的文档通过代表这个文档的唯一的“键”来寻址。键是一个简单的标识符(简写为ID),典型的是字符串URI路径。键可以用来从数据中检索文档。数据库典型的在键上保有索引来加速文档检索,并且在某些情况下要求用键来把文档建立或插入到数据库中。

检索

面向文档数据的另一个定义特征,使之超越可用来检索文档的简单的键到文档查找,就是数据库提供允许用户基于内容(或元数据)来检索文档的API或查询语言。例如,你可能需要一个查询,检索特定字段被设置为特定值的所有文档。可获得的查询API或查询语言的特征的集合,还有查询的预期性能,在不同实现之间有显著差异。类似的,可获得的索引选项和配置的特有集合随着不同实现而有着巨大差异。

文档存储和键-值存储有很大差异。在理论上,在键-值存储中值对于存储是不透明的,它们本质上是黑箱子。它们可以提供类似于文档存储的的查找系统,但是对内容的组织有着更少的理解。文档存储使用在文档中的元数据来分类内容,例如允许它们理解一个数字序列是电话号码,而另一个是邮政编码。这允许它们在这种类型的数据上进行查找,例如,包含555的所有电话号码,但忽略邮编 55555。

编辑

文档数据典型的提供某种机制来更新或编辑文档的内容(或元数据),替换要么允许在整个文档上,要么在文档的个别结构片段上。

组织

文档数据库实现提供各种方式来组织文档,包括如下概念:

  • 收集(Collection):成组的文档,依赖于具体实现,文档可以被强制存留在一个收集内部,也可以被允许存留在多个收集之内。
  • 标签(Tag)和不可见元数据:在文档内容之外的附加数据。
  • 目录层级:组织成树状结构的成组文档,典型的基于路径或URI。

有时这些组织概念在它们是逻辑的还是物理的、(比如在磁盘上还是在内存中)、表示等方面有一些变化。

实现

名称 发行商 许可证 支持语言 注释 RESTful API
AllegroGraph Franz, Inc. 专有 Java, Python, Common Lisp, Ruby, Scala, .NET, Perl 数据库平台在一个单一数据内支持文档存储和图数据模型。支持JSON, JSON-LD, RDF, 全文查找, ACID, 二阶段提交, 多主复制, PrologSPARQL [3]
ArangoDB ArangoDB Apache License C, .NET, Java, Python, Node.js, PHP, Scala, Go, Ruby, Elixir 数据库系统以一个数据库和统一的查询语言AQL(ArangoDB 查询语言)支持文档存储以及键/值和图数据模型。 [4]
BaseX BaseX Team BSD License Java, XQuery 支持 XML, JSON 和二进制格式;基于客户/服务器的体系;并发结构化和全文查找及更新。
Caché InterSystems 公司 专有 Java, C#, Node.js 常用于健康, 商务和政府应用。
Cloudant Cloudant, Inc. 专有 Erlang, Java, Scala, 和 C 基于BigCouch的分布式数据库服务,这家公司对Apache背景的CouchDB计划的开源仿制。 使用JSON模型。
Clusterpoint Database Clusterpoint Ltd. 专有,有免费下载 JavaScript, SQL, PHP, .NET, Java, Python, Node.js, C, C++, 分布式面向文档XML/JSON数据库平台,有着服从ACID事务高可用性数据复制分片;带有相关性排名的内建全文查找引擎;JS/SQL查询语言GIS;可获得为每使用付费云数据库或作为一个on-premise免费软件下载。
Couchbase Server Couchbase, Inc. Apache License C, .NET, Java, Python, Node.js, PHP, SQL, Go, Spring Framework, LINQ 分布式NoSQL文档数据库, JSON模型和基于SQL的查询语言。 [5]
CouchDB Apache软件基金会 Apache License 可以发起HTTP请求的任何语言 JSON于REST/HTTP上,有着多版本并发控制和有限的ACID特性。对视图和查询使用mapreduce[6] [7]
CrateIO CRATE Technology GmbH Apache License Java 对跨越集群的实时分布式查询使用类似SQL语法。基于了Lucene/Elasticsearch生态系统带有对二进制对象(BLOB)的内建支持。 [8]
Cosmos DB Microsoft 专有 .NET, Java, Python, Node.js, JavaScript, SQL 提供Platform-as-a-Service,是Microsoft Azure的一部分。建造于早期Azure DocumentDB之上并进行了扩展。
DocumentDB Amazon Web Services 专有在线服务 各种, REST 完全管理的MongoDB v3.6-兼容数据库服务
Elasticsearch Shay Banon Apache License Java JSON, 查找引擎。
eXist eXist LGPL XQuery, Java XML在REST/HTTP之上, WebDAV, Lucene全文查找, 二进制数据支持, 验证, 版本控制, 集群, 触发器, URL重写, 收集, ACLS, XQuery更新 [9]
Informix IBM 专有, 带有非付费版本[10] 各种(兼容于 MongoDB API) RDBMS 带有 JSON, 复制, 分片和 ACID遵守。
Jackrabbit Apache基金会 Apache License Java Java Content Repository实现 ?
Lotus Notes (IBM Lotus Domino) IBM 专有 LotusScript, Java, Lotus @Formula MultiValue
MarkLogic MarkLogic 公司 免费开发者许可证或商业[11] Java, JavaScript, Node.js, XQuery, SPARQL, XSLT, C++ 分布式面向文档数据库,对于 JSON, XML, 和RDF triples。内建全文查找, ACID事务, 高可用性灾难恢复, 证书安全性。
MongoDB MongoDB, Inc 对DBMS为服务器端公共许可证, 对客户驱动程序为Apache2许可证[12] C, C++, C#, Java, Perl, PHP, Python, Go, Node.js, Ruby, Rust[13], Scala[14] 文档数据库带有复制和分片, BSON存储(二进制格式JSON)。 [15]
MUMPS 数据库 ? ProprietaryAffero GPL[16] MUMPS 常用于健康应用。 ?
ObjectDatabase++ Ekky 软件 专有 C++, C#, TScript 二进制原生C++类结构 ?
OpenLink Virtuoso OpenLink 软件 GPLv2[1]和专有 C++, C#, Java, SPARQL 中间件数据库引擎混合
OrientDB Orient 技术 Apache License Java JSON在HTTP之上, SQL支持, ACID事务
PostgreSQL PostgreSQL PostgreSQL Free License[17] C HStore, JSON存储(9.2+), JSON函数(9.3+), HStore2 (9.4+), JSONB (9.4+)
Qizx Qualcomm 专有 REST, Java, XQuery, XSLT, C, C++, Python 分布式面向文档XML数据库带有集成的全文查找;支持JSON, 文本和二进制。
RethinkDB ? 对DBMS为GNU AGPL,对客户驱动程序为Apache 2 License C++, Python, JavaScript, Ruby, Java 分布式面向文档JSON数据库带有复制和分片。
SAP HANA SAP 专有 SQL语言 ACID事务支持, 唯JSON
Sedna sedna.org Apache License C++, XQuery XML数据库
SimpleDB Amazon Web Services 专有在线服务 Erlang ?
Solr Apache Apache License Java 查找引擎
TokuMX Tokutek GNU Affero General Public License C++, C#, Go MongoDB带有分形树索引 ?

XML数据库实现

大多数XML数据库是面向文档数据库。

注释

  1. ^ 面向文档数据库和键值数据库系统通常能在应用时相互替换。
  2. ^ 以及键值数据库(一般来说)。

参考文献

  1. ^ Peter Buneman. Semistructured data (PDF). Symposium on Principles of Database Systems. 1997 [2019-05-16]. (原始内容存档 (PDF)于2021-04-17).  参数|journal=与模板{{cite web}}不匹配(建议改用{{cite journal}}|website=) (帮助)
  2. ^ DB-Engines Ranking per database model category. [2016-08-22]. (原始内容存档于2021-05-16). 
  3. ^ HTTP Protocol for AllegroGraph. [2019-05-15]. (原始内容存档于2021-04-14). 
  4. ^ 存档副本. [2022-02-13]. (原始内容存档于2021-02-10). 
  5. ^ Documentation 互联网档案馆存檔,存档日期2012-08-20.. Couchbase. Retrieved on 2013-09-18.
  6. ^ CouchDB Overview 互联网档案馆存檔,存档日期October 20, 2011,.
  7. ^ HTTP_Document_API - Couchdb Wiki. [2019-05-15]. (原始内容存档于2013-03-01). 
  8. ^ Archived copy. [2015-06-22]. (原始内容存档于2015-06-22). 
  9. ^ eXist-db Open Source Native XML Database页面存档备份,存于互联网档案馆). Exist-db.org. Retrieved on 2013-09-18.
  10. ^ Compare the Informix Version 12 editions. 22 July 2016 [2019-05-15]. (原始内容存档于2020-11-09). 
  11. ^ MarkLogic Licensing. [2019-05-15]. (原始内容存档于2012-01-12). 
  12. ^ MongoDB Licensing. [2019-05-15]. (原始内容存档于2015-09-05). 
  13. ^ The New MongoDB Rust Driver. MongoDB. [2018-02-01]. (原始内容存档于2021-04-14) (美国英语). 
  14. ^ Community Supported Drivers Reference. [2019-05-15]. (原始内容存档于2016-04-11). 
  15. ^ MongoDB REST Interfaces. [2019-05-15]. (原始内容存档于2013-01-29). 
  16. ^ GT.M High end TP database engine. [2019-05-15]. (原始内容存档于2021-04-17). 
  17. ^ 存档副本. [2019-05-15]. (原始内容存档于2021-05-17). 

延伸阅读

外部链接

Read other articles:

Chinese singer and actress In this Chinese name, the family name is Ju. This article needs to be updated. Please help update this article to reflect recent events or newly available information. (July 2023) Ju JingyiJu in 2017Born (1994-06-18) 18 June 1994 (age 29)Suining, Sichuan, China[1]Other namesKikuEducationSichuan Conservatory of Music (dropped out)OccupationsSingerdanceractressMusical careerGenresMandopopInstrument(s)VocalspianoviolinYears active2013–presentLabelsS...

 

DifaliaInformasi umum Difalia, penis ganda, difalis terata, atau difalasparatus adalah kondisi medis langka yang ditandai dengan adanya dua penis pada bayi laki-laki. Kasus pertama difalia dilaporkan oleh Johannes Jacob Wecker pada tahun 1609.[1][2] Di Amerika Serikat, kondisi medis ini dialami oleh 1 dari 5,5 juta laki-laki.[3] Difalia biasanya disertai kelainan ginjal, tulang belakang, epigaster, anorektal, atau kelainan bawaan lainnya. Selain itu, penderita juga ber...

 

Coordenadas: 36° 42' 33 N 71° 34' 26 E IscaximEshkāshemIshkāshem    Localidade   Localização IscaximLocalização de Iscaxim no Afeganistão Coordenadas 36° 42' 33 N 71° 34' 26 E Província Badaquexão Características geográficas Fuso horário UTC+4:30 Iscaxim (em persa: اشکاشم; romaniz.:Ishkashim ou Eshkāshem) é uma vila na província de Badaquexão, situada no nordeste do Afeganistão, capital do distrito de Iscaxim....

Cet article est une ébauche concernant une localité chypriote. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. XylotýmvouCarte de la base britannique d'Akrotiri, présentant les enclaves chypriotes d'Ormidhia et Xylotymbou.Nom officiel (el) ΞυλοτύμβουNom local (el) ΞυλοτύμβουGéographiePays  ChypreDistrict district de LárnacaPartie de District de LárnacaExclave de District ...

 

Pusat Pendidikan Kepolisian Perairan dan Udara atau disingkat Pusdik Polairud adalah menyelenggarakan Pendidikan Diktuk Tamtama Pol Airud ,Diktuk Bintara Hibah, Diktuk Bakomsus Perawat ,Dikbangum SIP, dan Dikbangspes, serta tugas lain yang dibebankan oleh Lembaga Pendidikan Polri.PUSAT PENDIDIKAN LATIHAN POLISI PERAIRAN DAN UDARALambang Pusdik PolairudDibentuk30 Desember 1961NegaraIndonesiaCabang Kepolisian Negara Republik IndonesiaTipe unitPendidikan dan Pelatihan Polisi Perairan dan UdaraBa...

 

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Kasma Booty – berita · surat kabar · buku · cendekiawan · JSTOR Kasma Booty AMN LahirKasmah binti Abdullah1932Kisaran, Keresidenan Sumatera Timur, Hindia Timur Belanda (kini Sumatera Utara, Indonesia)Men...

Entrada de Al Khazneh. Al Khazneh (O tesouro; em árabe: الخزنة) é uma das inúmeras construções Romanas de templos na antiga Jordânia na cidade de Petra, uma tumba escavada na face do penhasco e que recebeu uma fachada helenística com pilares.[1] História Al Khazneh foi originalmente construído pelos Romanos como um mausoléu e cripta no início do primeiro século, durante o reinado de Aretas IV,[2] provavelmente como seu próprio mausoléu.[3] Existe uma urna escavada acim...

 

فولفجانج بيتيرس معلومات شخصية الميلاد 8 يناير 1929(1929-01-08)ألمانيا  تاريخ الوفاة 22 سبتمبر 2003 (عن عمر ناهز 74 عاماً) مركز اللعب وسط الجنسية ألمانيا  المسيرة الاحترافية1 سنوات فريق م. (هـ.) 1954–1963 بوروسيا دورتموند المنتخب الوطني 1957 ألمانيا 1 (0) المواقع مُعرِّف موقع football-teams 24065...

 

Jamaican rhythm section and production duo This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Sly and Robbie – news · newspapers · books · scholar · JSTOR (December 2010) (Learn how and when to remove this template message) Sly and RobbieSly Dunbar (left) and Robbie Shakespeare in the late 1970s.Background info...

Hai Malaikat dari Sorga Angels from the Realms of GloryMadonna dengan anak dan para malaikat karya Giovanni Battista Salvi da SassoferratoGenreKidungDitulis1816TeksJames MontgomeryBerdasarkanLukas 2:10Meter8.7.8.7.8.7MelodiRegent Square karya Henry Smart Hai Malaikat dari Sorga atau Angels from the Realms of Glory adalah sebuah kidung Natal yang ditulis oleh panyei Skotlandia James Montgomery.[1] Lagu tersebut mula-mula dicetak dalam Sheffield Iris pada Malam Natal 1816, meskipun baru...

 

Railway station in Marumori, Miyagi Prefecture, Japan This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Abukuma Station – news · newspapers · books · scholar · JSTOR (December 2009) (Learn how and when to remove this template message) Abukuma Stationあぶくま駅Abukuma Station, July 2003General informationLocationMawarigura,...

 

Lists of Italian films 1910s 1910 1911 1912 1913 19141915 1916 1917 1918 1919 1920s 1920 1921 1922 1923 19241925 1926 1927 1928 1929 1930s 1930 1931 1932 1933 19341935 1936 1937 1938 1939 1940s 1940 1941 1942 1943 19441945 1946 1947 1948 1949 1950s 1950 1951 1952 1953 19541955 1956 1957 1958 1959 1960s 1960 1961 1962 1963 19641965 1966 1967 1968 1969 1970s 1970 1971 1972 1973 19741975 1976 1977 1978 1979 1980s 1980 1981 1982 1983 19841985 1986 1987 1988 1989 1990s 1990 1991 1992 1993 19941995...

University in Daejeon, South Korea This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: Pai Chai University – news · newspapers · books · scholar · JSTOR (March 2015) (Learn how and when to remove this template message) Pai Chai University배재대학교MottoWhoever would be great among you must be your servant. 크고자 하거든 남을 섬기라.TypePriva...

 

Stade lavalloisSaison 2012-2013 Généralités Couleurs Tango et noir Stade Stade Francis-Le-Basser18 467 places Président Philippe Jan Entraîneur Philippe Hinschberger Résultats Ligue 2 17e 42 points (10V, 12N, 16D)(47 buts pour, 54 buts contre) Coupe de France 8e tourÉliminé par l'EA Guingamp (1-2) Coupe de la Ligue 2e tourÉliminé par l'Angers SCO (0-2) Meilleur buteur Toutes compétitions: Julien Viale (10) En Ligue 2: Julien Viale (10) Meilleur passeur Toutes compét...

 

1980 single by The Four SeasonsSpend the Night in LoveSingle by The Four SeasonsB-sideSlip AwayReleasedDecember 1980Recorded1980GenreRockLabelWarner/CurbSongwriter(s)Judy Parker, Lenny Lee GoldsmithProducer(s)Bob Gaudio, Charlie CalelloThe Four Seasons singles chronology Down the Hall (1977) Spend the Night in Love (1980) December, 1963 (Oh, What a Night) (1994) Spend the Night in Love is a 1980 song by The Four Seasons. It was composed by Lenny Goldsmith and Judy Parker (aka Bob Gaudio) and ...

For other uses, see Scandale (disambiguation). Comune in Calabria, ItalyScandaleComuneComune di ScandaleLocation of Scandale ScandaleLocation of Scandale in ItalyShow map of ItalyScandaleScandale (Calabria)Show map of CalabriaCoordinates: 39°7′20″N 16°57′30″E / 39.12222°N 16.95833°E / 39.12222; 16.95833CountryItalyRegionCalabriaProvinceCrotone (KR)FrazioniCorazzoGovernment • MayorAntonio BarberioArea[1] • Total54.26 ...

 

1932 film directed by Phil Rosen A Man's LandOriginal film posterDirected byPhil RosenWritten byAdele BuffingtonProduced byM.H. Hoffman Jr.StarringHoot GibsonMarion ShillingRobert EllisCinematographyTom GalliganHarry NeumannEdited byMildred JohnstonProductioncompanyAllied PicturesRelease date June 11, 1932 (1932-06-11) (US)[1] Running time68 minutesCountryUnited StatesLanguageEnglish A Man's Land is a 1932 American pre-Code Western film, written by Adele Buffington ...

 

Conference convened in the presence of the Japanese emperor Gozen-kaigi January 11, 1938 In the Empire of Japan, an Imperial Conference (御前会議, Gozen Kaigi) (literally, a conference before the emperor) was an extraconstitutional conference on foreign matters of grave national importance that was convened by the government in the presence of the Emperor. History and background Emperor Meiji attends a Gozen Kaigi at the Imperial Headquarters in Hiroshima before the Sino-Japanese War Afte...

77th Infantry Divisionلشکر ۷۷ پیادهCountry IranBranch Ground Forces of Islamic Republic of Iran ArmyTypeInfantryRoleCombined armsSizeDivisionGarrison/HQMashhad, Razavi Khorasan ProvinceNickname(s)Lashkare Pirooz-e Samen-ol-A'emeh (The Victorious Division of Samen-ol-A'emeh)EquipmentM47 PattonM48M PattonBTR-50T-72S[1]Engagements1979 Kurdish rebellionIran–Iraq WarCommandersCommander in ChiefGovernor-General Yaghob-Ali NazariCurrent commanderSecond Brig. Gen. Ali Jahans...

 

American late-night talk show franchise For the current incarnation of the series, see The Tonight Show Starring Jimmy Fallon. The Tonight ShowThe title card for The Tonight Show Starring Jimmy Fallon, the current incarnation of the showGenre Talk Variety show Created by Steve Allen Dwight Hemion William O. Harbach Sylvester Pat Weaver Presented by Steve Allen Jack Paar Johnny Carson Jay Leno Conan O'Brien Jimmy Fallon Country of originUnited StatesOriginal languageEnglishNo. of episodes 2,00...

 
Kembali kehalaman sebelumnya