Door BoredMuesli en Eloq Arch.
Inhoudsopgave
- Soorten Databases en databestanden
- Relationele Databases
- Data Types
- Entity Relationship Diagram
- Statically & Dynamicaly typed languages
Soorten Databases en databestanden
Begrip | Betekenis |
---|---|
Blockchain | Blockchain 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. |
CSV | CSV 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. |
JSON | JSON 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 Pair | Key-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 Tijd | date datetime time year |
Strings | char varchar text |
Boolean (Ja/Nee) | TINYINT(1) met ’true’ en ‘false’ als values. |
Set | Verzameling 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 Key | Primary 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 key | Foreign 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 Schema | Diagram waarin het detailontwerp van een reationele database wordt vastgelegd. PK’s, FK’s en ook de datatypes worden vastgelegd. |
NULL | Een databaseveld heeft de waarde NULL als deze geen waarde heeft. Geen 0 (getal), geen spatie, echt niks. |
Voorbeelden van data types
Veld naam | Voorbeeld Waarde | Veld type | Want |
---|---|---|---|
Geboortedatum | 01-11-1980 | date | triviaal |
Telefoonnummer | 0612345678 | char(16) | Een numeriek type als INT zou de 0 aan het begin opeten |
Riskant bij Zwangerschap | True of 1 | tinyint(1) | Geen native boolean aanwezig, dus een hack met int. |
Bedrag (euro) | € 12,99 | decimal (10,2) | * INT kan alleen hele getallen * FLOAT gaat afronden en heeft teveel getallen achter de komma. Dit geeft problemen |
Entity Relationship Diagram
Entity | Ding / Zelfstandig Naamwoord. Hoeft niet per se een fysiek ding te zijn. Kan ook een procesmatig ding zijn, zoals een melding, Belediging of Buiging. | |
Relationship | De relatie tussen de entiteiten. Je kunt nooit 2 relaties verbinden en je kunt ook geen entities verbinden zonder relationship er tussen. | |
. | ||
1:1 relatie | Een persoon heeft 1 fiets. Tabellen samenvoegen. | |
1:n relatie | Een persoon heeft meerdere fietsen. Foreign key in de juiste tabel. | |
m:n relatie | Meerdere 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. | |
Record | Record, Entry, Regel, Row, het betekend allemaal hetzelfde: een ‘ding’ in de database. Bijvoorbeeld een plant in de plantentabel. Of een fiets in de fietsentabel. | |
Attribuut | Eigenschap van een entiteit of van een relatie. | |
Value / Waarde / Cell | De inhoud van 1 attribuut van een record. | |
Waarom | Het 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 Increment | Databaseveld (vaak de Primary Key) dat automatisch de waarde ophoogt bij elk nieuw Record. Dit veld wordt vaak gebruikt als unieke ID. | |