Databases: Difference between revisions

    (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]]