Editing Databases

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
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'''
[[Copyleft]] free to modify and free in cost software is strongly preferred over other solutions. Minimal modifications required could be another preference as that means maintenance of the chosen solution is minimized in that aspect.
* [[#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.
'''Known types of databases'''
* [[w:Relational database|Relational database]] provided by a [[w:RDBMS|RDBMS]] and queried with [[w:SQL|SQL]]. Track-proven technology.
* [[w:NoSQL]] variates:
** [[w: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.
** [[w: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.
** [[w:Object database|Object database]]s 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.


For more options and information see the '''[[w:Database model|Wikipedia article on database models]]'''.
----
----


== Relational databases ==
== Relational database ==


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 translating [[w:SQL|SQL]] into [[w:relational algebra|relational algebra]] and optimizing and the relational algebra query actually returns the rows.


Together Consumerium and Consumium run all the 3 major free full fledged RDBMS:  
Together Consumerium and Consumium run all the 3 major free full fledged RDBMS:  
Line 28: Line 27:
{{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 databases ===
=== Subject-predicate-object database ===
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 46: Line 41:


==== Relevant subject-predicate-object database powered systems to interoperate with ====
==== Relevant subject-predicate-object database powered systems to interoperate with ====
* '''[[Semantic MediaWiki]]''' is system for inputting and querying semantic data within the MediaWiki and it is implemented as extension(s).
* [[Semantic MediaWiki]]
* '''[[DBpedia]]''' the original structured data harvesting effort for the MediaWiki wikis
* [[DBpedia]]
* '''[[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
* [[Wikidata]]
 


==== 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]]}}
A [[w:triplestore]] maybe a native implementation from ground up or be standing on the shoulders of a standard RDBMS system where actual [[w:SQL]] is formulated by the interpreter and then queried from SQL. This probably has upsides and downsides.


==== Lists and comparisons of subject-predicate-object databases and SPARQL implementations ====
==== Lists and comparisons of subject-predicate-object databases and SPARQL implementations ====
Line 60: Line 57:
----
----


=== Graph databases ===
=== Graph database ===
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]] which can be stored in and constructed from RDF triplets so they are quite alike and overlapping in functionality offered but the query performance varies (see talk page for more).  


These graphs may be stored in and constructed from RDF triplets readily so they are quite alike and overlapping in functionality offered but the query performance varies (see talk page for more).
''' Lists of graph databases '''
* [[w:Graph_database#List_of_graph_databases|Wikipedia's list of graph databases]]
* [[w:Graph_database#List_of_graph_databases|Wikipedia's list of graph databases]]
''' Free reading on graph databases '''
* [https://neo4j.com/graph-databases-book/ Free Graph Databases book from the great O'Reilly] kindly provided by [[w:Neo4j]]


----
----


=== Object databases ===
=== Object database ===
{{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]]}}
* [[w:Object_database#Timeline|Wikipedia's chronological list of object 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]
Please note that all contributions to Consumerium development wiki are considered to be released under the GNU Free Documentation License 1.3 or later (see Consumerium:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)

Template used on this page: