Skip to main content

NoSQL

Studiemateriaal (essentieel)

https://www.freecodecamp.org/news/nosql-databases-5f6639ed9574/

Inleiding

Soorten databanken

Hiërarchische databank

  • Hebben een boomstructuur
  • Dit geeft redelijk wat beperkingen.
    • Een parent kan meerdere children hebben
    • Maar een child slechts 1 parent.
    • Dit leidt tot kopieën en problemen in integriteit
  • Steeds minder gebruikt
  • Vb: windows registry

Relationele databank

  • Bestaat uit tabellen die met elkaar gekoppeld worden dmv relaties

  • Relaties worden gemaakt door ‘sleutels’(keys)
    Primary Key(PK)

    Elke tabel heeft 1 PK (deze identificeert een entry)

    Foreign Key(FK)
    Elke tabel kan 0 of meerdere FK hebben

  • Deze legt een relatie naar een PK in een andere tabel

  • Niet bepaald overzichtelijker, maar wel veel flexibeler en efficiënter

  • Relationele databanken hebben enkele nadelen
    Schaalbaarheid voor heel grote databanken
    Opsplitsen van DB in verschillende DB’s werkt moeilijk
    Complexe SQL code omdat objecten in OO niet overeenkomen met tabellen in DB
    Bv. personeel(object) heeft adres en bedrijfswagen waarbij de data verspreid zijn over verschillende tabellen

NoSQLdatabank

Er zijn 4 soorten no-sql databanken:

  • Document databank
    Bv. MongoDB
  • Key Value databank
    Bv. Redis
  • Graph databank
    Bv. Neo4J
  • Column databank
    Bv. Google bigtable

NoSQL - Document databank

  • Database bevat ‘documenten’ (json objecten)
    Bv.: { Id:1, Name: ‘Janssens’ FirstName:’Jan’}
  • We kunnen queries schrijven, maar niet in SQL
    Query taal afhankelijk van databank
    Bv.: db.Klant.Find(Name:’Janssens’)
  • Documenten zullen veel data bevatten
    Bv. in aankoop db zullen alle aankopen in klanten document zitten en niet in aparte tabellen
  • Als server maximale capaciteit bereikt gewoon een extra server
    Geen schaal problemen omdat er geen relaties zijn over databanken

NoSQL - Key-value databank

  • Vergelijkbaar met document databank
    Maar geen queries mogelijk
    Enkel informatie opvragen via de sleutel(Key)
    Dit gaat bijzonder snel
  • Bv.: Twitter geschiedenis

NoSQL - Graph databank

  • Ontworpen om ‘sociale eigenschappen’ van personen op te slaan, bvb:
    persoon a is bevriend met persoon b
    Persoon a houd van product x
  • Zeer handig voor sociale media

NoSQL - (wide) Column databank

  • Gebruikt tabellen, rijen en kolommen, maar anders dan een relationele databank.
  • De namen en formaat van de kolommen kan verschillen van rij tot rij in binnen dezelfde tabel.
  • Er wordt ook wel eens gesproken over een twee dimenionale key-value store.

NoSQL
Vaak worden combinaties gebruikt van meerdere soorten DB’s en dit afhankelijk van het doel.

Ter info, hieronder een lijstje met ranking van de meest populaire databases met bijzondere aandacht voor het database model (https://db-engines.com/en/ranking).

info

Extra info
Tweakers - NoSQL, maar wat is het dan wel?

Volgende pagina’s geven ook een inzicht over wat en waarom.

Verschil tussen een no sql / document database en een relationele database wordt heel duidelijk uitgelegd in volgend filmpje.
https://www.youtube.com/watch?v=Jt_w2swkXAk

info

Verdiepend
Introduction to NoSQL (Martin Fowler)
https://www.youtube.com/watch?v=qI_g07C_Q5I