A document-oriented database, or document store, is a computer program and data storage system designed for storing, retrieving and managing document-oriented information, also known as semi-structured data.[1]
Document-oriented databases are one of the main categories of NoSQL databases, and the popularity of the term "document-oriented database" has grown[2] with the use of the term NoSQL itself. XML databases are a subclass of document-oriented databases that are optimized to work with XML documents. Graph databases are similar, but add another layer, the relationship, which allows them to link documents for rapid traversal.
Document-oriented databases are inherently a subclass of the key-value store, another NoSQL database concept. The difference[contradictory] lies in the way the data is processed; in a key-value store, the data is considered to be inherently opaque to the database, whereas a document-oriented system relies on internal structure in the document in order to extract metadata that the database engine uses for further optimization. Although the difference is often negligible due to tools in the systems,[a] conceptually the document-store is designed to offer a richer experience with modern programming techniques.
Document databases[b] contrast strongly with the traditional relational database (RDB). Relational databases generally store data in separate tables that are defined by the programmer, and a single object may be spread across several tables. Document databases store all information for a given object in a single instance in the database, and every stored object can be different from every other. This eliminates the need for object-relational mapping while loading data into the database.
Documents
The central concept of a document-oriented database is the notion of a document. While each document-oriented database implementation differs on the details of this definition, in general, they all assume documents encapsulate and encode data (or information) in some standard format or encoding. Encodings in use include XML, YAML, JSON, as well as binary forms like BSON.
Documents in a document store are roughly equivalent to the programming concept of an object. They are not required to adhere to a standard schema, nor will they have all the same sections, slots, parts or keys. Generally, programs using objects have many different types of objects, and those objects often have many optional fields. Every object, even those of the same class, can look very different. Document stores are similar in that they allow different types of documents in a single store, allow the fields within them to be optional, and often allow them to be encoded using different encoding systems. For example, the following is a document, encoded in JSON:
{"firstName":"Bob","lastName":"Smith","address":{"type":"Home","street1":"5 Oak St.","city":"Boys","state":"AR","zip":"32225","country":"US"},"hobby":"sailing","phone":{"type":"Cell","number":"(555)-123-4567"}}
These two documents share some structural elements with one another, but each also has unique elements. The structure and text and other data inside the document are usually referred to as the document's content and may be referenced via retrieval or editing methods, (see below). Unlike a relational database where every record contains the same fields, leaving unused fields empty; there are no empty 'fields' in either document (record) in the above example. This approach allows new information to be added to some records without requiring that every other record in the database share the same structure.
Document databases typically provide for additional metadata to be associated with and stored along with the document content. That metadata may be related to facilities the datastore provides for organizing documents, providing security, or other implementation specific features.
CRUD operations
The core operations that a document-oriented database supports for documents are similar to other databases, and while the terminology is not perfectly standardized, most practitioners will recognize them as CRUD:
Creation (or insertion)
Retrieval (or query, search, read or find)
Update (or edit)
Deletion (or removal)
Keys
Documents are addressed in the database via a unique key that represents that document. This key is a simple identifier (or ID), typically a string, a URI, or a path. The key can be used to retrieve the document from the database. Typically the database retains an index on the key to speed up document retrieval, and in some cases the key is required to create or insert the document into the database.
Retrieval
Another defining characteristic of a document-oriented database is that, beyond the simple key-to-document lookup that can be used to retrieve a document, the database offers an API or query language that allows the user to retrieve documents based on content (or metadata). For example, you may want a query that retrieves all the documents with a certain field set to a certain value. The set of query APIs or query language features available, as well as the expected performance of the queries, varies significantly from one implementation to another. Likewise, the specific set of indexing options and configuration that are available vary greatly by implementation.
It is here that the document store varies most from the key-value store. In theory, the values in a key-value store are opaque to the store, they are essentially black boxes. They may offer search systems similar to those of a document store, but may have less understanding about the organization of the content. Document stores use the metadata in the document to classify the content, allowing them, for instance, to understand that one series of digits is a phone number, and another is a postal code. This allows them to search on those types of data, for instance, all phone numbers containing 555, which would ignore the zip code 55555.
Editing
Document databases typically provide some mechanism for updating or editing the content (or metadata) of a document, either by allowing for replacement of the entire document, or individual structural pieces of the document.
Organization
Document database implementations offer a variety of ways of organizing documents, including notions of
Collections: groups of documents, where depending on implementation, a document may be enforced to live inside one collection, or may be allowed to live in multiple collections
Tags and non-visible metadata: additional data outside the document content
Directory hierarchies: groups of documents organized in a tree-like structure, typically based on path or URI
Sometimes these organizational notions vary in how much they are logical vs physical, (e.g. on disk or in memory), representations.
Relationship to other databases
Relationship to key-value stores
A document-oriented database is a specialized key-value store, which itself is another NoSQL database category. In a simple key-value store, the document content is opaque. A document-oriented database provides APIs or a query/update language that exposes the ability to query or update based on the internal structure in the document. This difference may be minor for users that do not need richer query, retrieval, or editing APIs that are typically provided by document databases. Modern key-value stores often include features for working with metadata, blurring the lines between document stores.
Relationship to search engines
Some search engine (aka information retrieval) systems like Apache Solr and Elasticsearch provide enough of the core operations on documents to fit the definition of a document-oriented database.
In a relational database, data is first categorized into a number of predefined types, and tables are created to hold individual entries, or records, of each type. The tables define the data within each record's fields, meaning that every record in the table has the same overall form. The administrator also defines the relationships between the tables, and selects certain fields that they believe will be most commonly used for searching and defines indexes on them. A key concept in the relational design is that any data that may be repeated is normally placed in its own table, and if these instances are related to each other, a column is selected to group them together, the foreign key. This design is known as database normalization.[3]
For example, an address book application will generally need to store the contact name, an optional image, one or more phone numbers, one or more mailing addresses, and one or more email addresses. In a canonical relational database, tables would be created for each of these rows with predefined fields for each bit of data: the CONTACT table might include FIRST_NAME, LAST_NAME and IMAGE columns, while the PHONE_NUMBER table might include COUNTRY_CODE, AREA_CODE, PHONE_NUMBER and TYPE (home, work, etc.). The PHONE_NUMBER table also contains a foreign key column, "CONTACT_ID", which holds the unique ID number assigned to the contact when it was created. In order to recreate the original contact, the database engine uses the foreign keys to look for the related items across the group of tables and reconstruct the original data.
In contrast, in a document-oriented database there may be no internal structure that maps directly onto the concept of a table, and the fields and relationships generally don't exist as predefined concepts. Instead, all of the data for an object is placed in a single document, and stored in the database as a single entry. In the address book example, the document would contain the contact's name, image, and any contact info, all in a single record. That entry is accessed through its key, which allows the database to retrieve and return the document to the application. No additional work is needed to retrieve the related data; all of this is returned in a single object.
A key difference between the document-oriented and relational models is that the data formats are not predefined in the document case. In most cases, any sort of document can be stored in any database, and those documents can change in type and form at any time. If one wishes to add a COUNTRY_FLAG to a CONTACT, this field can be added to new documents as they are inserted, this will have no effect on the database or the existing documents already stored. To aid retrieval of information from the database, document-oriented systems generally allow the administrator to provide hints to the database to look for certain types of information. These work in a similar fashion to indexes in the relational case. Most also offer the ability to add additional metadata outside of the content of the document itself, for instance, tagging entries as being part of an address book, which allows the programmer to retrieve related types of information, like "all the address book entries". This provides functionality similar to a table, but separates the concept (categories of data) from its physical implementation (tables).
In the classic normalized relational model, objects in the database are represented as separate rows of data with no inherent structure beyond that given to them as they are retrieved. This leads to problems when trying to translate programming objects to and from their associated database rows, a problem known as object-relational impedance mismatch.[4] Document stores more closely, or in some cases directly, map programming objects into the store. These are often marketed using the term NoSQL.
The database system supports document store as well as key/value and graph data models with one database core and a unified query language AQL (ArangoDB Query Language).
Use familiar SQL syntax for real time distributed queries across a cluster. Based on Lucene / Elasticsearch ecosystem with built-in support for binary objects (BLOBs).
Shared nothing, horizontally scalable database with support for schema-less JSON, fixed schema tables, and key/value pairs. Also supports ACID transactions.
The database system supports document store as well as graph data models with one database core and a unified, datalog based query language WOQL (Web Object Query Language).[27]
^Drake, Mark (9 August 2019). "A Comparison of NoSQL Database Management Systems and Models". DigitalOcean. Archived from the original on 13 August 2019. Retrieved 23 August 2019. Document-oriented databases, or document stores, are NoSQL databases that store data in the form of documents. Document stores are a type of key-value store: each document has a unique identifier — its key — and the document itself serves as the value.
بوينت كوك الإحداثيات 37°54′32″S 144°45′07″E / 37.909°S 144.752°E / -37.909; 144.752 [1] تقسيم إداري البلد أستراليا[3][2] التقسيم الأعلى فيكتوريا[3] خصائص جغرافية ارتفاع 10 متر عدد السكان عدد السكان 49929 (9 أغسطس 2016)[4]66781 (10 أغسطس 2021)[5] عدد ...
2012 South Korean television series Love RainPromotional posterAlso known asLove Rides the RainGenreRomance, MelodramaCreated byOh Soo-yeonDirected byYoon Seok-hoStarringIm Yoon-ah Jang Keun-sukCountry of originSouth KoreaOriginal languageKoreanNo. of episodes20ProductionProduction locationsSouth Korea Hokkaido, JapanRunning time60 minutesProduction companyYoon's ColorOriginal releaseNetworkKorean Broadcasting SystemReleaseMarch 26 (2012-03-26) –May 29, 2012 (2012-05-29) Love...
Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Rudal Delilah adalah rudal jelajah yang dikembangkan di Israel oleh Israel Militer Industries (IMI). Rudal ini dirancang untuk menargetkan target yang bergerak dan dapat ditemukan kembali dengan - kemungkinan kesalahan melingkar (CEP) 1 meter (3 kaki 3...
Monster Front cover of MonsterAuthorFrank E. PerettiLanguageEnglishPublisherWestBow Press[1]Publication dateOctober 31, 2006[1]Pages427[1]ISBN1595541217 Monster is a novel written in 2005 by Frank E. Peretti. It tells a story of a horrifying predator who terrorizes the woods of northern Idaho. The story deals with views on evolution, beneficial mutation, and natural selection. Plot summary This article needs an improved plot summary. Please help improve the plot su...
Artikel ini perlu diwikifikasi agar memenuhi standar kualitas Wikipedia. Anda dapat memberikan bantuan berupa penambahan pranala dalam, atau dengan merapikan tata letak dari artikel ini. Untuk keterangan lebih lanjut, klik [tampil] di bagian kanan. Mengganti markah HTML dengan markah wiki bila dimungkinkan. Tambahkan pranala wiki. Bila dirasa perlu, buatlah pautan ke artikel wiki lainnya dengan cara menambahkan [[ dan ]] pada kata yang bersangkutan (lihat WP:LINK untuk keterangan lebih lanjut...
This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Dean of Limerick and Ardfert – news · newspapers · books · scholar · JSTOR (August 2020) The Dean of Limerick and Ardfert is based in the Cathedral Church of St Mary's in Limerick in the united diocese of Limerick, Killaloe and Ardfert within the Chur...
The National Hockey League (NHL)'s Toronto Maple Leafs has been the point of subject for a number of media in Canadian popular culture, including artworks, books, novels, and songs. Film Comedian Mike Myers has often included references to the Toronto Maple Leafs in his films. References to the Toronto Maple Leafs have been made typically in association with the city of Toronto, such as the case in the beginning of the 2010 spy film Fair Game. During the scene, CIA agent Valerie Plame was bei...
St John's Hill Drill HallLavender Hill, London St John's Hill Drill HallSt John's Hill Drill HallLocation within LondonCoordinates51°27′47″N 0°10′11″W / 51.46305°N 0.16975°W / 51.46305; -0.16975TypeDrill hallSite historyBuilt1882Built forWar OfficeIn use1882-Present St John's Hill Drill Hall is a military installation at Lavender Hill in London. The building on St John's Hill became the regimental headquarters for the London Regiment in 1993. Hist...
Giải Futsal HDBank Cúp Quốc gia 2020Chi tiết giải đấuQuốc gia Việt NamThời gian15 tháng 11 - 26 tháng 11 năm 2020Thành phốĐắk LắkSố đội10Vị trí chung cuộcVô địchThái Sơn NamÁ quânSanvinest Sanatech Khánh HòaHạng baSahakoThống kê giải đấuVua phá lướiPhùng Trọng Luân (Savinest Sanatech Khánh Hòa)Lưu Đông Dương (Cao Bằng)Nguyễn Thịnh Phát (Thái Sơn Nam)Từ Minh Quang (Thái Sơn Bắc) (4 bàn thắng)Cầu thủ...
French bobsledder (1932–2021) Serge GiacchiniPersonal informationNationalityFrenchBorn(1932-01-17)17 January 1932Died11 March 2021(2021-03-11) (aged 89)SportSportBobsleigh Serge Giacchini (17 January 1932 – 11 March 2021) was a French bobsledder.[1] He competed in the two-man event at the 1956 Winter Olympics.[2] References ^ Serge Giacchini. Olympedia. Retrieved 27 May 2022. ^ Evans, Hilary; Gjerde, Arild; Heijmans, Jeroen; Mallon, Bill; et al. Serge Giacchi...
American politician Brad HalbrookMember of the Illinois House of Representativesfrom the 102nd districtIncumbentAssumed office January 2017 (2017-Jan)Preceded byAdam BrownMember of the Illinois House of Representativesfrom the 110th districtIn officeApril 2012 (2012-April) – January 2015 (2015-Jan)Preceded byRoger L. EddySucceeded byReginald H. Phillips Personal detailsBorn (1961-07-22) July 22, 1961 (age 62)[1]...
لمعانٍ أخرى، طالع القرية (توضيح). قرية القرية - قرية - تقسيم إداري البلد اليمن المحافظة محافظة المحويت المديرية مديرية ملحان العزلة عزلة الروضة السكان التعداد السكاني 2004 السكان 215 • الذكور 110 • الإناث 105 • عدد الأسر 32 • عدد المساكن 30 معلو...
For the films, see Pushpanjali (1970 film) and Pushpanjali (1972 film). Pushpanjali to an Aikya Linga in Varanasi Pushpanjali (Sanskrit:पुष्पाञ्जलि, literally folded hands full of flowers) is an offering of flowers to Hindu deities. Pushpanjali is the offering of flowers to Hindu gods and goddesses. Pushpanjali is the combination of two words, pushpam and anjali. In Sanskrit, pushpam means flower and anjali means offering with folded hands. Bharatnatyam Pushpanjali is al...
لمعانٍ أخرى، طالع سيان (توضيح). سيان تقسيم إداري البلد اليمن[1] المحافظة محافظة صنعاء المديرية مديرية سنحان وبني بهلول خصائص جغرافية إحداثيات 15°10′00″N 44°19′00″E / 15.16666667°N 44.31666667°E / 15.16666667; 44.31666667 الارتفاع 2482 متر السكان التعداد السكاني 2004 السكا...
Francesc Berenguer i Mestres Francesc Berenguer i Mestres (21 July 1866[1] – 8 February 1914) was a Spanish Modernista architect from Catalonia, and an assistant and friend of Antoni Gaudí. He was born in Reus. He worked with several architectural workshops.[2] First, he worked for August Font i Carreras, former teacher at the School, and later was with Miguel Pascual i Tintorer, municipal architect of Gràcia and Josep Graner i Prat. He died in Barcelona. References ^ Cent...
Footbridge over Basinghall Street 1754 map showing Basinghall Street and surrounding area Basinghall Street (sometimes written as Bassinghall) is a street in the City of London, England. It lies chiefly in the ward of Bassishaw (originally the street and the courts and passages leading off from it) with the southern end in Cheap and Coleman Street wards. The street and ward are named after the Bassing family, who built a hall house here in the 13th century and who were given certain privilege...
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) 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: Dodge Charger 1981 – news · newspapers · books · scholar · JSTOR (September 2014) (Learn how and when ...
Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!