Skip to content

Database Infrastructuur

Veel applicaties moeten data kunnen opslaan en opvragen. Omdat het gestructureerd opslaan van informatie een veelvoorkomende taak is, zijn er veel standaard systemen voor ontwikkeld die je in samenwerking met je eigen applicatie kan gebruiken. Deze systemen worden databases genoemd.

Databases zijn vaak aparte systemen die je aanroept vanuit je applicatie. Soms draait de database op dezelfde host als je applicatie, maar vaak ook niet.

graph LR
    subgraph Host
        direction LR
        subgraph Client
            App[Chrome\nMySQLWorkbench\nEigen Applicatie\n...]
        end

        subgraph Server
            DB[MySQL\nMongoDB\nPostgresSQL\n...]
        end

        App --> DB

    end
Een database server kan draaien op dezelfde host als de applicatie die er gebruik van maakt (de client)

Er zijn veel applicaties waarbij meerdere clients gebruik maken van dezelfde database. In dat geval is het handig om de database op een aparte host te draaien.

graph TB
    subgraph Laptop
        Client1App[Chrome\nMySQLWorkbench\nEigen Applicatie\n...]
    end

    subgraph Smartphone        
        Client2App[Chrome\nMySQLWorkbench\nEigen Applicatie\n...]        
    end

    subgraph Desktop
        Client3App[Chrome\nMySQLWorkbench\nEigen Applicatie\n...]        
    end


    subgraph Server
        DB[MySQL\nMongoDB\nPostgresSQL\n...]
    end

    Client1App --> DB
    Client2App --> DB
    Client3App --> DB
Een database server die draait vaak op een andere host dan de applicatie die er gebruik van maakt (de client)

Communiceren met databases via een netwerk

Als een database server niet op dezelfde host staat als de applicatie die er gebruik van maakt, dan moet er gecommuniceerd worden over het netwerk. Dit kan op verschillende manieren:

  • Via een API
  • Via een database protocol (Bijvoorbeeld MySQL of PostgresSQL)

Waarschuwing

Het wordt afgeraden om een database server direct te benaderen vanuit een applicatie die op een andere host draait. Dit is een onveilige manier van communiceren. Het is beter om een API te gebruiken die communiceert met de database server.

API

Een API is een manier om een applicatie te laten communiceren met een database server. De API is een applicatie die op dezelfde host draait als de database server. De API communiceert met de database server en biedt een interface aan waarmee andere applicaties kunnen communiceren.

graph LR
    subgraph Host
        direction LR
        subgraph Client
            App[Chrome\nMySQLWorkbench\nEigen Applicatie\n...]
        end

        subgraph Server
            API[API]
            DB[MySQL\nMongoDB\nPostgresSQL\n...]
        end

        App --HTTP--> API
        API --> DB

    end
Een API communiceert met de database server en biedt een interface aan waarmee andere applicaties kunnen communiceren.

Oefenen

Oefening

Doe een klein onderzoek naar het gebruik van database server applicaties en API’s. Geef antwoord op de volgende vragen:

  • Zoek drie gangbare database server applicaties en beschrijf de verschillen tussen deze applicaties.
  • Zoek drie verschillende protocollen waarmee een applicatie kan communiceren met een database server applicatie. Beschrijf de verschillen tussen deze protocollen.
  • Zoek uit waarom het gebruik van een API veiliger is dan het direct communiceren met een database server applicatie.

Geef antwoord op deze vragen door een klein onderzoek de doen op het internet en leg dit vast in markdown en commit dit in je repository. Let op de juiste bronvermelding.