Databases

    From Consumerium development wiki R&D Wiki
    Revision as of 20:36, 26 August 2016 by Jukeboksi (talk | contribs) (moved info to its own heading == Factors affecting database systems selections ==)

    This article is about choice of database models and implementations.

    Types of databases of interest

    • Relational database provided by a RDBMS and queried with SQL. Track-proven technology.
    • w:NoSQL, ( "Not Only SQL" or have your pick on the other supposed significations ) variates:
      • w:Subject-predicate-object databases are implemented 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.

    Factors affecting database systems selections

    • 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 database

    Relational databases work by storing data in tabular form where columns represent data items of predetermined type and rows represent the values each "item" has. Relational databases are accessed mainly with SQL ( Structured Query Language ). However the RDBMS converts that into relational algebra and optimizes that and the relational algebra query actually returns the result table that has those columns and rows you requested.

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


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

    “Honestly 'Not Only SQL' sounds best from what I've read.”

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

    Lists and comparisons of subject-predicate-object databases and SPARQL implementations


    Graph database

    A graph database stores and queries graphs.

    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

    Free reading on graph databases


    Object database

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

    Lists of object databases