Database Lingo

Door BoredMuesli en Eloq Arch.

Inhoudsopgave

Soorten Databases en databestanden

BegripBetekenis
BlockchainBlockchain is een techniek waarmee een netwerk van gebruikers gezamenlijk een database van transacties bijhoudt. Het bijzondere is dat het moeilijk is om vals te spelen, omdat het volgende ‘block’ afhankelijk is van de vorige. Bitcoin, NFT’s en Web3 zijn voorbeelden van blockchains.
CSVCSV staat voor Comma Seperated Value. In een CSV-bestand heb je een tabel staan met komma’s tussen de verschillende waardes.

CSV-tabellen komen vaak voor als download- of uploadformaat dat wordt gebruikt bij het beheer van online systemen.
JSONJSON staat voor JavaScript Object Notation. JSON maakt gebruik van voor de mens leesbare tekst in de vorm van data-objecten die bestaan uit een of meer attributen met bijbehorende waarden.

JSON is een populair formaat bij ontwikkelaars voor de uitwisseling tussen computer systemen onderling, via de API.
Key-Value PairKey-Value Pairs bestaan altijd uit één tabel met twee kolommen: de keys en de values.

Key-Value pairs worden veel gebruikt op grote websites die vooral veel gegevens opslaan en weinig hoeven te lezen of veranderen.
Relationele Database In een relationele database sla je gegevens op in tabellen. Relaties tussen gegevens in verschillende tabellen worden gelegd door overeenkomstige keys te gebruiken.

Relationele databases vormen nog steeds het hart van de meeste computersystemen, zoals ook de WordPress-website waar je nu naar kijkt.

Relationele Database

Data Types

Je leert het onderstaande schema tussen de soort data en het data type beide kanten op. Voor elk veld in je tabellenontwerp moet je het juiste data type kunnen toewijzen. Het verschil tussen bijvoorbeeld INT en TINYINT of CHAR en TEXT maakt niet zo veel uit, das voor de echte nerds, als je maar één van de goede kiest.

Getallen Int – gehele getallen
Tinyint – kleine gehele getallen
Float – komma getallen getallen bij benadering
Decimal – komma getal met exacte precisie. Geld = decimal (10,2)
Datum en Tijddate
datetime
time
year
Stringschar
varchar
text
Boolean (Ja/Nee)TINYINT(1) met ’true’ en ‘false’ als values.
SetVerzameling waarden waarvan je er meerdere mag kiezen. De mogelijke waarden staan opgesomd in de database. Gebruik dit alleen als je je set nooit meer gaat veranderen.
primary KeyPrimary Key’s, ook wel afgekort tot PK’s, maken het mogelijk een Record uniek te maken en te identificeren en is in het simpelste geval één enkel attribuut: een uniek ID. Vaak automatisch gemaakt door Auto Increment.
Een Primary Key is in 9 van de 10 gevallen een ID-veld ofwel Integer. Bij realisatie in Adminer: Auto-Increment aan, default op 0.
foreign keyForeign Keys, ook wel afgekort tot FK’s, duiden relaties aan tussen twee tabellen in een database. DE FK in de ene tabel verwijst naar de Primary Key van een andere tabel.
Het veldtype van de FK is altijd identiek aan die van de PK waar hij naar wijst. Meestal dus Integer. Maar zet in Adminer nooit Auto-Increment of Default aan, dat geeft fouten.
Tabellen SchemaDiagram waarin het detailontwerp van een reationele database wordt vastgelegd. PK’s, FK’s en ook de datatypes worden vastgelegd.
NULLEen databaseveld heeft de waarde NULL als deze geen waarde heeft. Geen 0 (getal), geen spatie, echt niks.

Voorbeelden van data types

Veld naamVoorbeeld WaardeVeld typeWant
Geboortedatum01-11-1980datetriviaal
Telefoonnummer0612345678char(16)Een numeriek type als INT zou de 0 aan het begin opeten
Riskant bij ZwangerschapTrue of 1tinyint(1)Geen native boolean aanwezig, dus een hack met int.
Bedrag (euro)€ 12,99decimal (10,2)* INT kan alleen hele getallen
* FLOAT gaat afronden en heeft teveel getallen achter de komma. Dit geeft problemen

Entity Relationship Diagram

EntityDing / Zelfstandig Naamwoord. Hoeft niet per se een fysiek ding te zijn. Kan ook een procesmatig ding zijn, zoals een melding, Belediging of Buiging.
RelationshipDe relatie tussen de entiteiten. Je kunt nooit 2 relaties verbinden en je kunt ook geen entities verbinden zonder relationship er tussen.
.
1:1 relatieEen persoon heeft 1 fiets. Tabellen samenvoegen.
1:n relatieEen persoon heeft meerdere fietsen. Foreign key in de juiste tabel.
m:n relatieMeerdere personen hebben elk meerdere planten. Maak een tussentabel.
ternaire relatie (bijv 1:N:M)Relatie met 3 poten bijv: een leerling heeft les in een vak met docent X. Maak een tussentabel.
RecordRecord, Entry, Regel, Row, het betekend allemaal hetzelfde: een ‘ding’ in de database. Bijvoorbeeld een plant in de plantentabel. Of een fiets in de fietsentabel.
AttribuutEigenschap van een entiteit of van een relatie.
Value / Waarde / CellDe inhoud van 1 attribuut van een record.
WaaromHet tekenen van een ER-diagram als ontwerp voorafgaand aan de realisatie heeft o.a. de volgende voordelen: – aanpassingen zijn sneller te doen. – Meer overzicht dus meer duidelijkheid dan een in tabel-ontwerp of gerealiseerde database.
Auto IncrementDatabaseveld (vaak de Primary Key) dat automatisch de waarde ophoogt bij elk nieuw Record. Dit veld wordt vaak gebruikt als unieke ID.

Statically & Dynamicaly Typed languages (zie onderstaande blogpost)

Eloquent Architect 161

Eloquent Architect 161