databases Flashcards
ongestructureerd data opslag
- tekstbestand
- word bestand
- geschreven aantekeningen
losse foto’s
gestructureerd data opslag
- SQLite database
-MySQL database
-Postrgre SQL database - Oracle database
- microsoft Access database
wat is een model?
een model is een vereenvoudigde weergave van de werkelijkheid
Wat is een entiteit
een verzamel naam voor wat beschreven kan worden of over gepraat kan worden
wat is een attribuut?
is iets waarmee een entiteit beschreven kan worden ( hoogte van een boom)
hoe schrijf je een abstracte entiteit
entiteitstype met tussen haakjes de attributen boom(soort, hoogte, leeftijd)
hoe schrijf je ene concrete entiteit
instantie van een entiteitstype
soort= Plantaan
hoogte = 4,78 m
leeftijd = 18 jaar
Doel data modellering
effectief en efficiënt opslaan van de gegevens die nodig zijn voor een bepaalde taak
stappenplan data modellering
- inventarisatie
- selectie
- normalisatie
wat te doen bij stap 1 inventarisatie
- Brainstormen welke gegevens van belang kunnen zijn
- ruim denken (schrappen is beter dan vergeten)
- papier administratie (formulieren)
- gesprekken met medewerkers
- gezond ‘boerenverstand’
wat te doen bij stap 2 selectie
- elk gegeven kost tijd voor invoeren, wijzigen, etc
- essentie: het kiezen van de kenmerken nodig voor het werk
- keuze gebaseerd op: relevantie, beschikbaarheid, wetgeving, hoeveel ruimte, hoeveelheid werk.
-resultaten: platte tabel (nulde normaalvorm - kolommen voor kenmerken/attributen (veld)
- regels voor objecten (rij, record)
Alle normaal vormen heten samen?
normalisatie
alle normaal vormen
- nulde normaalvorm
- eerste normaalvorm
- tweede normaalvorm
- derde normaalvorm
- Boyce-Codd normaalvorm
Nulde normaalvorm (0NF)
meerdere tabellen met in beide tabellen het grootste gedeelte dezelfde informatie
3 soorten anomalies
-update anomaly
- insert anomaly
- delete anomaly
update anomaly
treden op wanneer dezelfde gegevens in meerdere rijen worden herhaald en er in sommige, maar niet alle gevallen wijzigingen worden aangebracht
insert anomaly
niet mogelijk om data toe te voegen omdat er een deel van de data mist
delete anomaly
je kan geen data verwijderen van een tabel zonder de hele tabel te verwijderen
eerste normaalvorm (1NF)
zet de gegevens in de tabel zodanig dat:
1. ieder attribuut is atomair en bevat hoogstens een waarde
2. geen attribuut wordt herhaald
3. de tabelstructuur niet verandert in de tijd
4. er zijn geen volledig identike regels (=er is een primary key)
wat is een functionele afhankelijkheid
een relatie tussen twee kenmerken, meestal tussen de Primary Key en andere niet-sleutelkenmerken binnen een tabel
vb (vak, module)-> (docent, academie
superkey
een set van een of meer kenmerken die een rij in een tabel uniek kunnen identificeren
vb (vak, module)
(vak, module, docent)
(vak, module, academie)
(vak, module, docent, academie)
candidate key
een kolom of een combinatie van kolommen die elke rij in een tabel op unieke wijze identificeert
vb (vak, module)
primary key
Met een primary key (primaire sleutel) in SQL zorg je ervoor dat een rij in een tabel een unieke waarde heeft
(vak, module)
partial key
en kenmerk dat instanties van een zwak entiteitstype onderscheidt ten opzichte van een sterk entiteitstype
vb -vak
- module
partiele afhankelijkheid
is wanneer een niet-primaire sleutel afhankelijk is van een deel van een primaire sleutel, maar niet van de gehele primaire sleutel
tansitieve afhankelijkheid
wanneer A afhankelijk is van B, B afhankelijk is van C, maar B niet afhankelijk is van A
tweede normaalvorm (2NF)
een relatie voldoet aan de tweede normaalvorm als
1. de relatie voldoet aan de eerste normaalvorm
2. er zijn geen partiele afhankelijkheid
derde normaalvorm (3NF)
een relatie voldoet aan de derde normaalvorm als:
1. de relatie voldoet aan de tweede normaalvorm
2. alle attributen die niet tot een sleutel behoren niet afhangen van een niet-sleutelattribuut
Boyce-Codd normaalvorm (BCNF
een relatie volodet aan Boyce-Codd normaal als:
1. de relatie voldoet aan de derde normaalvorm
2. voor elke functionele afhankelijkheid geldt dat de determinant (gedeelte voor de pijl) een candidate key is
entiteit
persoon, ding, begrip
attribuut
eigenschap van entiteit
relatie
associatie tussen entiteiten
regels entiteit en attribuut
- Entiteit wordt met hoofdletter geschreven
- attribuut wordt met kleine letters geschreven
- zowel entiteit als attribuut ijn enkelvoud
verschillende relaties
- iets staat tot 1
-iets staat tot 1 of 0 - iets staat tot 1 of meer
- iets staat tot 0 of meer
- een special soort van iets (student speciaal soort persoon)
begrip is een entiteit als
- informatie over een bepaald begrip moet worden opgenomen. Eis:
- deze informatie kan van entiteit tot entiteit verschillen
- gevolg van deze ei: informatie ligt niet automatisch vast als het entiteitstype bepaald is
- er relaties zijn tussen het begrip en andere entiteiten
- er een 1:n relatie is met een entiteit
- het begrip bestaansrechten op zich zelf heeft (niet afhangt van een entiteit)
begrip is en attribuut als:
- het extra informatie geeft over een entiteit
- los van een entiteit geen waarde heeft
- een 1:1 relatie heeft met een entiteit
ERD staat voor
Entiteit Relatie Diagram
van ERD naar tabel
entiteit -> tabelnaam
attribuut-> kolom header
relatie -> pijlen tussen de tabellen
1:1 relatie -> tabel
bij een 1:1relatie is er geen reden om de beide entiteiten in verschillende tabellen op te nemen
1:1/0 relatie -> tabel
bij een optionele relatie is er geen reden om de beide entiteiten in verschillende tabellen op te nemen
1:n relatie -> tabel
bij een 1:n relatie bewaar je beide entiteiten in twee tabellen. link tussen beide tabellen = gemeenschappelijk attribuut
n:m relatie -> tabel
bij een n:m relatie bewaar je beide entiteiten in twee tabellen. Link tussen beide tabellen = een derde tabel
specialisatie relatie -> tabel
bij een specialisatie relatie heb je de keuze om 1 of meerdere tabellen te gebruiken
Data types Integers (gehele getallen
- INTEGER
- TINYINT [UNSIGNED] (8 bits)
-SMALLINT [UNSIGNED] (16 bits)
-MEDIUMINT [UNSIGNED] (24 bits)
-INT [UNSIGNED] (32 bits )
-BIGNIT [UNSIGNED] (64 bits)
Data types Floats (decimale getallen)
-DECIMAL [(n, d)] [UNSIGNED] ( n=totaal aantal cijfers, d= aantal cijfers achter de komma)
- FLOAT [UNSIGNED] (32 bits floating point)
- DOUBLE [UNSIGNED] (64 bits floating point)
Data types Datum en tijd
-DATe (yyyy-mm-dd)
-DATETIME (yyyy-mm-dd hh:mm:ss)
- TIMESTAMP ( aantal seconden na 01-01-1970)
- TIME (hh:mm:ss)
Date types strings
- CHAR(n) (vast aantal karakters)
- VARCHAR (n) (variabel aantal karakters, maar max n)
- TINYTEXT ( max 255 karakters)
-TEXT (max 65535 karakters)
-MEDIUMTEXT (16777215 karakters)
Wat is het doel van data types
- voorkom invoerfouten
- onmogelijk om bijvoorbeeld een postcode met meer dan 7 karakters in te typen
- onmogelijk om getallen in een tekstveld te zetten of vice-versa
- efficiënter als database weet hoeveel bytes een waarde inneemt
lokaal datases
- 1 database bestand
- simpel/ geen configuratie
- vaak maar een gebruiker tegelijkertijd
netwerk-gebaseerd databases
-vaak veel verschillende bestanden
-client/server model
- lastig/ configuratie
-meerdere gebruikers tegelijkertijd
SQL
Structured Query Language
structured
zeer stricte grammatica, iedere komma en haakje moet goed staan
Query
iedere actie (creëer tabel, voeg waarde in, haal record weg, …) wordt netjes aan de database gevraagd
Language
taal die voor zowel mens als machine leesbaar is
Data definitie (structuur van de database aanpassen)
- CREATE DATABASE
-ALTER DATABASE
-DROP DATABASE
-CREATE TABLE
-ALTER TABLE - DROP TABLE
-CREATE INDEX
-DROP INDEX
data manipulatie (data aanpassen)
-INSERT
-DELETE
-UPDATE
data bevraging (data blijft hetzelfde)
-SELECT
Welke gegevens in een cell geaccepteerd worden hangt af van;
-types (geen text in een integer veld)
- primary key/foreign ket check
-expliceite constraints
Van tabel naar SQL
CREATE TABLE persoon ( naam VARCHAR (30), adres VARCHAR(80), postcode CHAR (7), woonplaats VARCHAR(30));
SELECT
met SELECT kunnen er specifieke rijen van een tabel zichtbaar gemaakt worden
functie avg(x)
gemiddelde van alle waardes van attribuut x
functie count(x)
aantal waardes van attribuut x
functie count(DISTINCT x)
aantal verschillende waardes van attribuut x
functie max(x)
grootste waarde van attribuut x
functie min(x)
kleinste waarde van attribuut x
functie sum(x)
som van alle waardes van attribuut x
ORDER BY
een database slaat de rijen van een tabel ongesorteerd op. Om ze gesorteerd te tonen gebruik je ORDER BY
omgekeerde volgorde DESC
GROUP BY
WHERE
filtert record voordat deze gegroepeerd worden
HAVING
filtert records nadat deze gegroepeerd worden
[INNER] JOIN
voegt tabellen bij elkaar
NATURAL JOIN
-minstens 1 attribuut gemeenschappelijk
- gematched op alle gemeenschappelijke attributen
JOIN ON
voegt tabellen samen. records van tabel 1 verdwijnen als er geen match is
LEFT OUTER JOIN
handig voor optionele relaties