Bureaucrats, developer, Administrators
9,850
edits
(→Graph database: more info and some fmt) |
|||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This article is about choice of database models and implementations. | '''This article is about choice of database models and implementations.''' | ||
[[ | ''' Types of databases of interest being evaluated''' | ||
* [[#Relational databases|Relational databases]] provided by a [[w:Relational Database Management System|RDBMS]] and queried with [[w:SQL|SQL]]. Track-proven technolog applied, since the early 70's. | |||
* [[#NoSQL databases|NoSQL]]-type databases, ( "Not Only SQL" or have your pick on the other supposed significations ) variates include among others: | |||
** [[#Subject-predicate-object databases|Subject-predicate-object databases]] are implemented by [[w:graph databases|graph databases]], specialized native [[w:Triplestore|triplestore]]s and piggy-packing solutions that use an RDBMS to store and query the triplets and the networks they compose. | |||
** [[#Graph databases|Graph databases]] would intuitively appear more advanced than using RDF-triplet composed semantic networks but are not much different on the outside. Both jump through the same hoops but with different efficiency and grace. | |||
** [[#Object databases|Object databases]] are old but on the rise with NoSQL-based thinking and the modern needs, like leanness, real-time need and scaleability for which the other solutions might be too limiting. | |||
All of these may be used to store semantic data though advantages and disadvantages vary depending on task at hand. | |||
For more options and information see the '''[[w:Database model|Wikipedia article on database models]]'''. | |||
---- | ---- | ||
== Relational | == Relational databases == | ||
Relational databases work by storing data in [[w:Table (database)|tabular form]] where [[w:column (database)|columns]] represent data items of predetermined type and [[w:row (database)|rows]] represent the values each "item" has. Relational databases are accessed mainly with [[w:SQL|SQL]] ( Structured Query Language ). However the RDBMS converts that into [[w:relational algebra|relational algebra]] and optimizes that and the relational algebra query actually returns the result table that has those columns and rows you requested. | Relational databases work by storing data in [[w:Table (database)|tabular form]] where [[w:column (database)|columns]] represent data items of predetermined type and [[w:row (database)|rows]] represent the values each "item" has. Relational databases are accessed mainly with [[w:SQL|SQL]] ( Structured Query Language ). However the RDBMS converts that into [[w:relational algebra|relational algebra]] and optimizes that and the relational algebra query actually returns the result table that has those columns and rows you requested. | ||
Line 27: | Line 28: | ||
{{Q|A '''NoSQL''' (originally referring to "non SQL" or "non relational") database provides a mechanism for storage and retrieval of data which is modeled in means other than the tabular relations used in relational databases.|Wikipedia|[[w:NoSQL|NoSQL]]}} | {{Q|A '''NoSQL''' (originally referring to "non SQL" or "non relational") database provides a mechanism for storage and retrieval of data which is modeled in means other than the tabular relations used in relational databases.|Wikipedia|[[w:NoSQL|NoSQL]]}} | ||
{{Q|Honestly 'Not Only SQL' sounds best from what I've read.|Lowest Troll|[[w:NoSQL|NoSQL]]}} | |||
All the following database types can be considered variations of NoSQL. | All the following database types can be considered variations of NoSQL. | ||
* [[#Subject-predicate-object database|Subject-predicate-object database]] | |||
* [[#Graph database|Graph databases]] | |||
* [[#Object database|Object database]] | |||
---- | ---- | ||
=== Subject-predicate-object | === Subject-predicate-object databases === | ||
Subject-predicate-object databases basically construct [[w:semantic]] networks from interlinked atomic units called a [[w:triplet]] so they are not fundamentally different from graph databases in functionality and utility offered. | Subject-predicate-object databases basically construct [[w:semantic]] networks from interlinked atomic units called a [[w:triplet]] so they are not fundamentally different from graph databases in functionality and utility offered. | ||
Line 41: | Line 46: | ||
==== Relevant subject-predicate-object database powered systems to interoperate with ==== | ==== Relevant subject-predicate-object database powered systems to interoperate with ==== | ||
* [[Semantic MediaWiki]] | * '''[[Semantic MediaWiki]]''' is system for inputting and querying semantic data within the MediaWiki and it is implemented as extension(s). | ||
* [[DBpedia]] | * '''[[DBpedia]]''' the original structured data harvesting effort for the MediaWiki wikis | ||
* [[Wikidata]] | * '''[[Wikidata]]''' is effort by the [[Wikimedia Foundation]] since 2012 to provide a central storage for data items instead of manually replicating it in various language versions | ||
==== Things to consider in selection of triplestore ==== | ==== Things to consider in selection of triplestore ==== | ||
{{Q|Some '''subject-predicate-object databases''' (also known as ''[[w:triplestore|triplestore]]s'') have been built as database engines from scratch, while others have been built on top of existing commercial relational database engines (e.g., SQL-based).|Wikipedia|[[w:list of subject-predicate-object databases|list of subject-predicate-object databases]]}} | {{Q|Some '''subject-predicate-object databases''' (also known as ''[[w:triplestore|triplestore]]s'') have been built as database engines from scratch, while others have been built on top of existing commercial relational database engines (e.g., SQL-based).|Wikipedia|[[w:list of subject-predicate-object databases|list of subject-predicate-object databases]]}} | ||
==== Lists and comparisons of subject-predicate-object databases and SPARQL implementations ==== | ==== Lists and comparisons of subject-predicate-object databases and SPARQL implementations ==== | ||
Line 57: | Line 60: | ||
---- | ---- | ||
=== Graph | === Graph databases === | ||
A [[w:graph database|graph database]] stores and queries [[w:Graph (abstract data type)|graphs]]. | A [[w:graph database|graph database]] stores and queries [[w:Graph (abstract data type)|graphs]]. | ||
Line 70: | Line 73: | ||
---- | ---- | ||
=== Object | === Object databases === | ||
* [[w:Object_database#Timeline|Wikipedia's | {{Q|An object database stores complex data and relationships between data directly, without mapping to relational rows and columns, and this makes them suitable for applications dealing with very complex data.|Wikipedia|[[w:Object_database#Comparison_with_RDBMSs|functional difference between object and relational databases]]}} | ||
''' Lists of object databases ''' | |||
* [[w:Object_database#Timeline|Wikipedia's list of object databases by publication date.]] | |||
---- | |||
== Useful resources for database related matters == | |||
* [http://swat.cse.lehigh.edu/projects/lubm/ Lehigh University Benchmark] may be useful in evaluating [[w:semantic query|semantic query]] performance | |||
* [http://www.cambridgesemantics.com/semantic-university/sparql-by-example A very good SPARQL tutorial Cambridge Semantics] |