Databases: Difference between revisions

    From Consumerium development wiki R&D Wiki
    (add info to intro + important w:NoSQL introduced)
    (moved content from SPARQL and fixed the headings once again)
    Line 5: Line 5:
    '''Known types of databases'''
    '''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:Relational database|Relational database]] provided by a [[w:RDBMS|RDBMS]] and queried with [[w:SQL|SQL]]. Track-proven technology.
    * Subject-predicate-object database are provided 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:NoSQL]] variates:
    * [[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.
    ** Subject-predicate-object database are provided 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:Object database|Object database]]s are old but on the rise with [[w:NoSQL|NoSQL]]-based thinking and the modern needs, like leanness, real-time need  and scaleability for which the other solutions might be too limiting.
    ** [[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.


    == Relational database ==
    == Relational database ==
    Line 16: Line 17:
    * [[w:PostgreSQL]] powering the https://media.consumium.org [[w:GNU MediaGoblin]]
    * [[w:PostgreSQL]] powering the https://media.consumium.org [[w:GNU MediaGoblin]]


    == Subject-predicate-object database ==
    == NoSQL databases ==
    {{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]]}}
     
    All the following database types can be considered variations of NoSQL.
     
    === 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.


    These networks may be queried with a suitable query language such as [[w:SPARQL]] which in practice allows you to compose semantic queries.
    These networks may be queried with a suitable query language such as [[w:SPARQL]] which in practice allows you to compose semantic queries.


    === Relevant subject-predicate-object database powered systems to interoperate with ===
    {{Q|'''SPARQL''' is a [[w:recursive acronym|recursive acronym]] and stands for '''SPARQL Protocol and RDF Query Language'''). It is an [[w:RDF query language|RDF query language]], that is, a [[w:Semantic_Query|semantic]] [[w:query language|query language]] for [[w:database|database]]s, able to retrieve and manipulate data stored in [[w:Resource Description Framework|Resource Description Framework (RDF)]] format.|Wikipedia|[[w:SPARQL|SPARQL]]}}
     
    {{Q|A '''triplestore''' or '''RDF store''' is a purpose-built [[w:database|database]] for the storage and retrieval of [[w:Resource Description Framework#Overview|triples]] through [[w:Semantic Query|semantic queries]].|Wikipedia|[[w:Triplestore]]}}
     
    ==== Relevant subject-predicate-object database powered systems to interoperate with ====
    * [[Semantic MediaWiki]]
    * [[Semantic MediaWiki]]
    * [[DBpedia]]
    * [[DBpedia]]
    * [[Wikidata]]
    * [[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]]}}
     


    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.
    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 ====
    * [[w:List of subject-predicate-object databases|Wikipedia's list of subject-predicate-object databases]]
    * [[w:List of subject-predicate-object databases|Wikipedia's list of subject-predicate-object databases]]
    * [[w:List of SPARQL implementations|Wikipedia's list of SPARQL implementations]]
    * [[w:List of SPARQL implementations|Wikipedia's list of SPARQL implementations]]


    == Graph database ==
    === Graph database ===
    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).  
    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).  


    * [[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]]


    == Object database ==
    === Object database ===
    * [[w:Object_database#Timeline|Wikipedia's chronological list of object databases]]
    * [[w:Object_database#Timeline|Wikipedia's chronological list of object databases]]

    Revision as of 16:18, 26 August 2016

    This article is about choice of database models and implementations.

    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.

    Known types of databases

    • Relational database provided by a RDBMS and queried with SQL. Track-proven technology.
    • w:NoSQL variates:
      • Subject-predicate-object database are provided by graph databases, specialized native triplestores and piggy-packing solutions that use an RDBMS to store and query the triplets and the networks they compose.
      • 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 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.

    Relational database

    Together Consumerium and Consumium run all the 3 major free full fledged RDBMS there are:

    NoSQL databases

    “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.”

    All the following database types can be considered variations of NoSQL.

    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.

    These networks may be queried with a suitable query language such as w:SPARQL which in practice allows you to compose semantic queries.

    SPARQL is a recursive acronym and stands for SPARQL Protocol and RDF Query Language). It is an RDF query language, that is, a semantic query language for databases, able to retrieve and manipulate data stored in Resource Description Framework (RDF) format.”

    “A triplestore or RDF store is a purpose-built database for the storage and retrieval of triples through semantic queries.”

    Relevant subject-predicate-object database powered systems to interoperate with

    Things to consider in selection of triplestore

    “Some subject-predicate-object databases (also known as triplestores) 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).”


    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

    Graph database

    A graph database stores and queries 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).

    Object database