32
Database Concepts Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere Academiejaar 2019-2020 Handelswetenschappen en bedrijfskunde

Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Database Concepts

Arne Vandenbussche, Marc Desplenter, Luc De TollenaereAcademiejaar 2019-2020

Handelswetenschappen en bedrijfskunde

Page 2: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Legende van de gebruikte iconen

Database Concepts 1

Legende van de gebruikte iconen

Denkvraag

Leerdoelen

Extra informatie

Niet vergeten

Opdracht/Oefening

Presentatie (PowerPoint)

Samenwerking

Studeeraanwijzingen

Beeld-/geluidsfragment

Voorbeeld

Tools/Apps

Website

Zelfstudie

(Zelf)toets

Page 3: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inhoudsopgave

Database Concepts 2

Inhoudsopgave

Legende van de gebruikte iconen .................................................................................................. 1

Inhoudsopgave ............................................................................................................................. 2

Hoofdstuk 1: Inleiding ................................................................................................................... 6

1.1 Data versus informatie ............................................................................................................. 6

1.2 Gegevensdragers door de eeuwen heen .................................................................................. 7

1.3 Databasemanagementsystemen .............................................................................................. 8

1.4 Het toenemend belang van gegevens en informatie ............................................................. 12

1.5 Datawarehouses ..................................................................................................................... 13

1.6 Business Intelligence ............................................................................................................... 14

1.7 Artificial Intelligence – Machine Learning .............................................................................. 15

1.8 Big Data ................................................................................................................................... 17

1.9 Internet of Things - IoT ........................................................................................................... 19

Hoofdstuk 2: Het relationele model ............................................................................................ 21

2.1 Inleiding .................................................................................................................................. 21

2.2 Bouwstenen van relationele gegevensbanken ....................................................................... 22

2.2.1 Relaties.................................................................................................................................... 22

2.2.2 Attributen ................................................................................................................................ 23

2.2.3 Domeinen ................................................................................................................................ 25

2.2.4 Tupels ...................................................................................................................................... 25

2.2.5 Nulwaarden (nulls) .................................................................................................................. 26

2.3 Sleutels .................................................................................................................................... 26

2.3.1 Kandidaatsleutels.................................................................................................................... 26

2.3.2 Primaire sleutel (Primary Key) ................................................................................................ 27

2.3.3 Verwijssleutel (Foreign Key) .................................................................................................... 27

2.3.4 Datastructuurdiagram/ERD .................................................................................................... 28

2.4 Integriteit ................................................................................................................................ 31

2.4.1 Entiteit-integriteit (Entity integrity) ........................................................................................ 31

2.4.2 Referentiële integriteit (Referential integrity) ........................................................................ 32

Page 4: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inhoudsopgave

Database Concepts 3

2.4.3 Domeinrestricties (Domain constraints) ................................................................................. 32

2.5 Relationele algebra ................................................................................................................. 32

2.5.1 Selectie .................................................................................................................................... 33

2.5.2 Projectie .................................................................................................................................. 35

2.5.3 Join .......................................................................................................................................... 35

2.5.4 Vereniging (Union) .................................................................................................................. 38

2.5.5 Doorsnede (Intersect) ............................................................................................................. 38

2.5.6 Verschil (minus) ....................................................................................................................... 39

2.5.7 Views ....................................................................................................................................... 39

2.6 Oefeningen ............................................................................................................................. 41

2.6.1 Begrippen ................................................................................................................................ 41

2.6.2 IQ – lengte - leeftijd ................................................................................................................ 41

2.6.3 Studenten en hun vakken ........................................................................................................ 42

2.6.4 Bestellingen in de bistro .......................................................................................................... 43

2.6.5 Handbalcompetitie ................................................................................................................. 43

2.6.6 Relationele algebra en de VIVES-database. ............................................................................ 44

2.6.7 Studiecontracten ..................................................................................................................... 45

2.6.8 CAR-PASS................................................................................................................................. 46

2.6.9 Hotelreservaties ...................................................................................................................... 47

2.6.10 De eenvoudige bibliotheek ...................................................................................................... 48

Hoofdstuk 3: Een relationele database ontwerpen door normalisatie. ......................................... 50

3.1 Inleiding .................................................................................................................................. 50

3.2 Normaliseren .......................................................................................................................... 51

3.3 Repeterende groepen ............................................................................................................. 52

3.4 Functionele afhankelijkheden in relatieschema’s. ................................................................. 53

3.4.1 Functionele afhankelijkheid. ................................................................................................... 53

3.4.2 Volledige functionele afhankelijkheid. .................................................................................... 53

3.4.3 Transitief functionele afhankelijkheid. .................................................................................... 54

3.5 Stappen bij het normaliseren. ................................................................................................ 56

3.5.1 Van nulde naar eerste normaalvorm. ..................................................................................... 56

3.5.2 Tweede normaalvorm. ............................................................................................................ 57

Page 5: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inhoudsopgave

Database Concepts 4

3.5.3 Derde normaalvorm. ............................................................................................................... 57

3.5.4 Voorbeeld ................................................................................................................................ 57

3.6 Domein-sleutelnormaalvorm .................................................................................................. 59

3.7 Oefeningen op normaliseren .................................................................................................. 61

3.7.1 Inleidende oefeningen............................................................................................................. 61

3.7.2 Studentenhuizen ..................................................................................................................... 65

3.7.3 Monitoraat .............................................................................................................................. 65

3.7.4 Studentenhuizen (2) ................................................................................................................ 65

3.7.5 Archeologische vondsten ........................................................................................................ 66

3.7.6 Lijst uitleningen ....................................................................................................................... 66

3.7.7 Inkooporders. .......................................................................................................................... 67

3.7.8 Vrachtwagenverhuur .............................................................................................................. 69

3.7.9 Vakken in een hogeschool....................................................................................................... 69

3.7.10 Informatica-afdeling. .............................................................................................................. 70

3.7.11 Voorraadbeheer ...................................................................................................................... 70

3.7.12 Bibliotheek .............................................................................................................................. 71

3.7.13 Garagebedrijf. ......................................................................................................................... 72

3.8 Denormalisatie en optimalisatie. ............................................................................................ 73

Hoofdstuk 4: Evaluatiecriteria voor volwaardige Relationele Database Management Systemen. .. 75

4.1 Criterium 1: 3-lagenstructuur ................................................................................................. 76

4.2 Criterium 2: Standaard SQL .................................................................................................... 79

4.2.1 Wat is SQL? ............................................................................................................................. 79

4.2.2 SQL: declaratieve taal met procedurele extensies. ................................................................. 79

4.2.3 SQL: interactief versus embedded .......................................................................................... 81

4.2.4 SQL: impedance mismatch en ORM-frameworks ................................................................... 83

4.2.5 SQL: soorten instructies .......................................................................................................... 84

4.3 Criterium 3: Query Optimizer ................................................................................................. 84

4.3.1 De taak en werking van de query optimizer ........................................................................... 84

4.3.2 Indexen .................................................................................................................................... 86

4.4 Criterium 4: Data Dictionary ................................................................................................... 88

4.5 Criterium 5: Integriteitscontrole ............................................................................................. 90

Page 6: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inhoudsopgave

Database Concepts 5

4.6 Criterium 6: Transactiegeoriënteerd ...................................................................................... 92

4.7 Criterium 7: concurrency control en read consistency........................................................... 93

4.8 Criterium 8: Selective access control ...................................................................................... 97

4.9 Criterium 9: Backup en Recovery faciliteiten ......................................................................... 99

4.10 Criterium 10: Auditing ............................................................................................................ 99

4.11 Criterium 11: Import/Export utilities .................................................................................... 100

4.12 Opgaven ................................................................................................................................ 100

Hoofdstuk 5: NoSQL-databases ..................................................................................................103

5.1 Wat zijn NoSQL-databases? .................................................................................................. 103

5.2 Waarom NoSQL-databases? ................................................................................................. 105

5.3 Soorten NoSQL-databases? .................................................................................................. 106

5.4 Een voorbeeld: MongoDB ..................................................................................................... 107

5.5 Embedden of verwijzen ........................................................................................................ 109

5.6 Replication and sharding ...................................................................................................... 110

Bijlagen 112

Page 7: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 6

Hoofdstuk 1: Inleiding

De student(e) kan een aantal basisbegrippen in verband met gegevens, informatie

en databanken, databasemanagementsystemen uitleggen en in een context correct

gebruiken.

Hij/zij kan de rol van een databasemanagementsysteem toelichten.

Hij/zij kent het onderscheid tussen een operationele database en een

datawarehouse en kan de rol van een datawarehouse en verwante begrippen

uitleggen.

Hij/zij kan het belang van kennis van databanken aantonen en de invloed dan data

science op ons leven situeren.

In dit eerste hoofdstuk van de cursus Database Concepts wordt een heel brede inleiding gegeven:

gaande van de historiek van gegevensdragers over de evolutie van data tot de evolutie van systemen

om data te beheren en te analyseren. Daarenboven worden ook een aantal gerelateerde

functieprofielen uit het werkveld vermeld waarvoor de vraag veelal het aanbod van mensen met

gepaste competenties ruimschoots overtreft.

In de afgelopen jaren is steeds meer duidelijk geworden dat het belang van data spectaculair stijgt.

Gegevens zijn immers de primaire grondstof geworden voor het functioneren van bedrijven en van

onze samenleving.

Terecht wordt dan ook dikwijls de stelling geponeerd: ‘data is the new oil’.

1.1 Data versus informatie

Computersystemen worden tegenwoordig gebruikt voor de automatisering van allerlei aspecten van

menselijke activiteit. Een belangrijke activiteit, die niet meer weg te denken is uit de huidige

informatiemaatschappij, is het automatisch beheren van informatie met het oog op latere

verwerking en hergebruik. In eenvoudige gevallen komt dit louter neer op het bijhouden van

gegevens voor later onderzoek. In meer geavanceerde toepassingen mondt dit uit in complexe taken

voor de ondersteuning van diverse activiteiten binnen een onderneming. Naast het doorzoeken, zijn

het toevoegen, verwijderen, aanpassen en consistent houden van gegevens typische basistaken die

voorkomen bij gegevensbeheer.

Doorheen deze cursus maken we een duidelijk onderscheid tussen de termen data (of gegevens) en

informatie. Met data bedoelen we ‘gegeven feiten’. Zo vormen getallen, symbolen, woorden,

berichten, foto’s, video’s,.. op zich data. Voorbeelden van gegevens of data zijn dan: 45; ‘Piet’; 12,5;

Pas wanneer een gebruiker of een groep gebruikers betekenis aan deze data kan toekennen spreken

we van informatie. 45 wordt dan de leeftijd van een sollicitant. ‘Piet’ wordt de voornaam van een

Page 8: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 7

werknemer. 12,5 wordt de gemiddelde temperatuur op 11 janauari 2019. Een foto is een

verzameling pixels. Dat is pure data. Wanneer een persoon op een foto in facebook getagd wordt

ontstaat er extra ‘informatie’.

In de context van informatiebeheer is het verschil tussen de concepten data en informatie

belangrijk. De meeste computersystemen zijn vrijwel enkel in staat om op een efficiënte manier data

te beheren, betekenis wordt toegevoegd door de gebruikers. Dit heeft rechtstreeks geleid tot de

term database die we als volgt kunnen omschrijven: een database is een collectie van persistente

data. Het woord ‘persistent’ geeft hierbij aan dat de data gedurende een zekere tijd worden

opgeslagen in het permanent geheugen van een computersysteem.

De huidige databasetechnologie, die ingezet wordt voor bedrijfsdatabases, is overwegend gericht op

het beheer van data (gegevens), eerder dan op het beheer van de betekenis van de data. Op het

wereldwijd web zien we dat er steeds meer betekenis in de data herkend wordt, denk maar aan

intelligente zoekmachines zoals Google. Men spreekt in dit verband over semantische databases. De

data worden vergezeld van betekenis en context en die informatie kan zowel door mensen als

machines geïnterpreteerd worden.

Een computersysteem voor het beheer van databases wordt een databasemanagementsysteem

genoemd.

1.2 Gegevensdragers door de eeuwen heen

Gegevensbeheer is een zeer oude activiteit. Vrijwel alle moderne beschavingen danken hun bestaan

grotendeels aan hun vermogen om gegevens en kennis fysiek te registreren met het oog op bewaring

en kennisoverdracht. Sinds de codex van Hammoerabi (een van de oudste schriftelijke wetten,

ongeveer 4000 jaar geleden) waren steen, hout, perkament en papier achtereenvolgens de

dominante informatiedragers. Aanvankelijk deed men weinig moeite om de geregistreerde

informatie te structureren, later begon de mens het nut te erkennen van het groeperen van data

volgens een vaste structuur: men kan gestructureerde data veel efficiënter doorzoeken en bewaren.

Eén van de eerste voorbeelden van een gestructureerde informatiedrager: in het begin van de

negentiende eeuw werden de besturingsinstructies van het automatisch Jacquard-weefgetouw

voorgesteld door gestructureerde perforaties in kartonnen kaarten. Herman Hollerith gebruikte ook

soortgelijke kaarten bij de machine die hij ontwierp voor de statische verwerking van de

Amerikaanse volkstellingsgegevens van 1890. Een nieuwe gegevensdrager, de ponskaart, was

geboren.

Het duurde tot de jaren 1970-1980 voordat ponskaarten geleidelijk aan werden verdrongen door

sneller toegankelijke en gemakkelijker te hanteren magnetische gegevensdragers met veel grotere

opslagcapaciteit. Aanvankelijk waren dat vooral magneetbanden. Die hadden het nadeel dat de

gegevens sequentieel (de een na de ander) benaderd moesten worden. Dat was niet erg efficiënt .

Page 9: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 8

Daarna kwamen de magneetschijven. Zij hadden het voordeel dat de leeskop sneller naar een

bepaald blok op de schrijf kon bewegen. Dit kennen we nog van de meeste harde schrijven op onze

PC’s en servers.

Later volgden de optische gegevensdragers (CD, DVD, Blu-ray). Deze werden en worden gebruikt

voor de archivering van gegevens en voor het afspelen van multimediaal materiaal.

Deze laatste categorie is stilaan aan het verdwijnen ten voordele van flashgeheugen (SSD, USB, SD-

kaart). Deze zijn veel sneller dan de klassieke magneetschijven omdat er geen mechanische

bewegingen (draaiende schijven, leeskoppen) nodig zijn, maar alles elektronisch gebeurt. De prijs per

MB van flashgeheugen is veel duurder dan dat van een klassieke magneetschijf, maar die prijs is snel

aan het dalen. De invoering van deze snelle gegevensdragers maakt onze PC’s en servers vele malen

sneller dan voorheen.

We kennen intussen ook al de zogenaamde “in memory databases”. Hier worden de gegevens in

eerste instantie in het heel snelle, maar vluchtige werkgeheugen gehouden en gebeurt de stockering

op een permanente gegevensdrager slechts in tweede instantie.

Een niet te stuiten evolutie is dat data steeds meer en meer in de cloud opgeslagen wordt. De cloud

staat voor een netwerk dat met alle computer die erop aangesloten zijn een soort ‘wolk van

computers’ vormt, waarbij de eindgebruiker niet weet op hoeveel of welke computers de software

draait, de data staat en waar die computers precies staan.

De gebruiker hoeft op deze manier geen eigenaar meer te zijn van de gebruikte hard- en software en

is dus ook niet verantwoordelijk voor het onderhoud.

Cloud computing is het via een netwerk – vaak het internet – op aanvraag beschikbaar stellen van

hardware, software en gegevens, ongeveer zoals elektriciteit uit het lichtnet.

1.3 Databasemanagementsystemen

Oorspronkelijk werden data bijgehouden in aparte bestanden. We hadden databasetoepassingen die

toegang kregen tot die gegevens, daar betekenis aan gaven en die gegevens beheerden. Met een

databasetoepassing bedoelen we hier een webapplicatie, een mobiele app, een desktoptoepassing

of back-endsoftware die toegang heeft tot de gegevens in de database. Enkele decennia geleden

zaten die gegeven in geïsoleerde bestanden. Geîsoleerde toepassingen hadden toegang tot die

bestanden.

Page 10: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 9

Die softwaretoepassingen (client-toepassingen) moesten exact weten waar de bestanden waren

opgeslagen en welke interne structuur ze hadden. Op die manier konden zij die gegevens inlezen en

wegschrijven en daar betekenis aan geven. De betekens van de gegevens was beschreven in de

toepassingen, niet in de bestanden zelf. Dit had duidelijke nadelen:

• Gegevens worden gescheiden opgeslagen. Klantgegevens zitten in andere bestanden dan

factuurgegevens.

• Er ontstaat duplicatie. Bepaalde gegevens over klanten zullen zowel in het klantenbestand als

in het facturenbestand voorkomen.

• De applicaties moeten de interne structuur van de bestanden kennen.

o Dat maakt de applicaties complexer.

o Als de interne structuur van een bestand wijzigt of het bestand wordt verplaatst ,

moet ook de applicatie herschreven worden

• De gegevens zijn niet goed geïntegreerd. Het vraagt soms toegang tot diverse bestanden om

alle gegevens over een verkoop of een klant te verzamelen.

• Buiten de applicaties om, is het nagenoeg onmogelijk om een betekenisvolle toegang tot de

gegevens te krijgen.

In de jaren 1970 ontstaan er geïntegreerde databases. Dit betekent dat we de diverse gegevens in

één database stoppen

Een databasemanagementsysteem (DBMS) is de softwarecomponent van een databasesysteem die

instaat voor het beheer van de databases. Het DBMS heeft als doel het beheren en bewaren van data

in de database en gebruikers toe te laten om, via een databasetoepassing, deze data te manipuleren

en te doorzoeken.

Gebruikers

DBMS Database

Database

toepassing

Page 11: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 10

Het DBMS neemt dus alle beheerstaken omtrent de opgeslagen data op zich:

• het regelt de fysieke opslag van de gegevens,

• controleert de juistheid en de volledigheid van de gegevens,

• zorgt voor het zo snel mogelijk doorzoeken van de data (performantie)

• en beschermt de gegevens tegen ongeautoriseerd gebruik.

Deze taken worden dus bijgevolg uit de applicaties gelicht waardoor deze minder complex worden.

Het DBMS houdt in de database ook een beschrijving van de structuur van alle opgeslagen data bij:

• welke soort data wordt er opgeslagen,

• welke verbanden zijn er tussen de data,

• welke waarden kunnen er opgeslagen worden,

• welke gebruikers zijn er geregistreerd,

• wie is de eigenaar van bepaalde data,

• welke rechten hebben ander gebruikers t.o.v. bepaalde data (lezen/wijzigen/schrappen).

Deze beschrijving wordt meta-data genoemd (data omtrent de data) en wordt in de database

opgeslagen in een onderdeel dat de data dictionary genoemd wordt.

De voordelen van een geïntegreerde database beheerd door een DBMS zijn duidelijk:

• De informatie wordt in één database bewaard waardoor het evidenter is om relaties tussen

gegevens te leggen (bijv. een verkoop en een factuur).

• Wanneer de database goed ontwerpen is (cf. normalisatie uit hoofdstuk 3), dan worden

gegevens niet gedupliceerd, maar slechts één keer bijgehouden. Er kan immers vanuit een

factuurgegeven een verwijzing gemaakt worden naar de klantengegevens. Dat verlaagt de

kans op fouten.

• De betekenis van de gegevens zit vervat in de database (in de data dictionary). Dat maakt het

gemakkelijker om nieuwe applicaties te bouwen die deze data gebruiken.

• De applicaties moeten zich geen (of minder) zorgen maken over de interne structuur van de

gegevens, de performantie van de databasebevragingen, de controle op bepaalde facturen

die de gegevens correct houden, gebruikerstoegang en beveiliging. Dit wordt door de DBMS

afgehandeld op een eenduidige manier.

• De DBMS voorziet ook een gestructureerde, afgeschermde toegang tot de gegevens buiten

de applicaties om, bijv. via SQL.

Momenteel zijn de meest gebruikte databasesystemen voor de dagdagelijkse verwerking van

operationele taken binnen bedrijven en organisaties de zogenaamde relationele

databasemanagementsystemen (RDBMS).

Page 12: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 11

Volgens het relationeel databasemodel worden databases logisch gezien als verzamelingen van

samenhangende tabellen. Alle relationele databasesystemen werken met een standaard

datadefinitie- en datamanipulatietaal, namelijk SQL (Structured Query Language).

De meest bekende RDBMS-systemen zijn het open-source systeem MySQL en de commerciële

systemen Oracle RDBMS, Microsoft SQL Server, IBM DB2 en MS Access.

Belangrijke functies in verband met databases en DBMS’en zijn:

Data modeler

Een data modeler is in staat om een bedrijfsproces te analyseren en hieruit af te leiden

welke data en in welke structuur deze data dient opgeslagen te worden. Hieronder ziet u

bijvoorbeeld een visueel model van de structuur van een database, een zogenaamd entiteit-

relatiediagram of ERD.

Vermits data voorkomt is in vrijwel elke IT-toepassing en app vormt het datamodelleren een

essentiële basiscompetentie voor elke informaticus.

Datamodellering vormt het hoofdthema van deze cursus Database Concepts.

Database administrator (DBA)

Een database administrator is iemand binnen een onderneming die technisch

verantwoordelijk is voor de implementatie en het onderhoud van de databases. Enkele

belangrijke taken van een DBA zijn:

Page 13: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 12

• het plannen van initiële benodigde opslagruimte voor nu en in de toekomst, ten bate van zowel het databasemanagementsysteem als de van data zelf;

• het modificeren van de databasestructuur naar de eisen en wensen van de applicatieontwikkelaar(s);

• het instaan voor de kwaliteit van de data;

• het beheren van toegangsrechten van de verschillende gebruikers;

• het herstellen na falen (backup & restore);

• het observeren en het controleren van de performantie en het goed functioneren van het hele databasesysteem en het optimaliseren van die performantie.

1.4 Het toenemend belang van gegevens en informatie

Steeds meer gegevens worden op een digitale manier gecreëerd, beheerd en gebruikt. In het begin

van het informatie hadden we grote mainframecomputer die hun eigen bestanden en databases

hadden en die gegevens gebruikten binnen het kader van één bedrijf.

Met de spectaculaire groei van het internet vanaf de jaren ’90 van de vorige eeuw worden gegevens

toegankelijk van overal ter wereld. Verkopen kunnen op afstand worden gedaan, gegevens worden

beschikbaar gemaakt en gemanipuleerd via toepassingen die van overal ter wereld toegankelijk zijn

en databanken gebruiken die zich waar ook ter wereld kunnen bevinden.

Gordon Moore heeft in de jaren 1960 al voorspeld dat computers elke twee jaar zouden verdubbelen

in snelheid. Dit en de beschikbaarheid van het wereldwijde web zorgt voor een explosieve toename

van het computergebruik en van het gebruik van gegevens.

De connectiviteit van gebruikers neemt nog toe met de komst van de smartphone. In de 21ste eeuw

heeft iedereen een computer op zak. We zijn permanent verbonden met het internet, niet alleen op

kantoor, maar ook thuis, op de trein, op vakantie, tijdens een muziekfestival, enzovoort. Overal

gebruiken we gegevens en sturen we via sociale media zelf gegevens de wereld in. We laten een

permanent spoort van gegevens achter.

Dit heeft gezorgd voor een disruptie. Met disruptie bedoelen we dat bestaande economische en

maatschappelijke modellen op hun kop gezet worden. De voortdurende connectiviteit, de steeds

grotere beschikbaarheid van gegevens van allerlei aard en het steeds intelligentere gebruik van deze

gegevens maakt dat hele bedrijfstakken verdwijnen of op hun kop gezet worden.

We kunnen hier tal van voorbeelden geven:

• De klassieke brievenpost is marginaal geworden in vergelijking met het gebruik van e-mail,

whatsappberichten, sms, enzovoort.

• Zeldzame producten zijn nu voor iedereen van overal beschikbaar (cf. The long Tail).

• Marketing en reclame is niet enkel meer een zaak van televisie en folders, maaar is meer en

meer digitale marketing, waarbij elke individu zijn eigen persoonlijke reclame krijgt.

Page 14: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 13

• De klassieken platenindustrie werd bijna van de kaart geveegd door het streamen van

muziek, waarbij wij die muziek voorgeschoteld krijgen die het best aansluit bij onze

persoonlijke smaak.

• Klassieken reisagentschappen verdwijnen of vervulllen een totaal andere rol. Wij plannen en

boeken onze reis via diverse webtoepassingen en mobiele apps.

• ….

Het aantal voorbeelden is legio. De gemeenschappelijke factor is dat al die nieuwe industrieën en

diensten steunen op de beschikbaarheid van grote hoeveelheden gegevens en het steeds

intelligenter gebruik van deze gegevens. Naast de klassieke operationele database zien we nieuwe

fenomenen zoals data warehouses, business intelligence, data analytics, big data, the internet of

things, enzovoort.

1.5 Datawarehouses

Een klassieke RDBMS is een ideaal platform voor zogenaamde operationele of transactionele

databases. Dit zijn de databases die de dagelijkse transacties bevatten. We denken hier aan het

beheren van verkopen, het factureren van verkopen, het registreren van nieuwe personeelsleden,

enzovoort. In een dergelijke database komen er voortdurend toevoegingen, wijzigingen en

schrappingen voor. Deze databases zijn ideaal voor de dagelijke transacties, maar maken

rapportering over het verleden niet altijd eenvoudig. Daarom hebben we een datawarehouse nodig.

Het datawarehouse (DWH) is een database waar de data zo gestructureerd is dat deze rapportering

en analyse vlot toelaat, het vormt de centrale opslagplaats voor verder te analyseren data. Het

datamodel in een datawarehouse is zo opgebouwd dat de database ideaal is dat om gegevens te

raadplegen en te analyseren, maar niet geschikt is voor dagelijkse wijzigingen. Dat vraagt andere

gegevensstructuren. Een datawarehouse is gebouwd in functie van raadpleging en niet van wijziging.

Een datawarehouse zal ook gegevens groeperen uit verschillende bronnen: de operationele

databases uit verschillende systemen, bestanden hier en daar, externe gegevens, enzovoort.

Een datawarehouse moet ook gevuld worden met die gegevens uit verschillende bronnen en die

gegevens moeten gefilterd en omgezet worden naar de nieuwe structuur. Dit is een proces dat

geregeld herhaald moet worden aangezien de operationele databases voortdurend met nieuwe

gegevens gevuld worden. Dat proces van het overzetten van de gegevens uit diverse

gegevensbronnen naar een datawarehouse nomen we ETL (Extract, Transform, Load). Er bestaan

diverse ETL-tools die dat proces van het extraheren, het transformeren en het laden van data vanuit

de operationele systemen zo automatisch mogelijk laten gebeuren.

Het belang van een goed doordacht DWH mag niet onderschat worden, via het DWH moet immers

één versie van de waarheid (single version of the truth) gegarandeerd worden. In een operationeel

systeem zitten gegevens vaak verspreid over verschillende systemen: diverse RDBMS’en,

excelbestanden, enzovoort, waarbij dubbels of tegenstrijdige waarden niet uitgesloten zijn. Met een

DWH moet een eind gemaakt worden aan het bestaan van verschillende informatiesilo’s in de

Page 15: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 14

organisatie en de daarbij horende tijdrovende gegevensconsolidaties en controles op datakwaliteit

en integriteit. Gegroepeerde gegevens over een klant bevinden zich op één plaats en bevatten de

volledige en gezuiverde gegevens over die klant.

Voordelen van het gebruik van datawarehouses:

• Een “single version of the truth” wordt gegarandeerd

• Operationele systemen worden niet extra belast tijdens het uitvoeren van data-analysetaken.

• Historie (vb. wijzigingen woonplaats klant) worden bijgehouden.

• De opslagstructuur is gemodelleerd in functie van uiterst performante analyses.

Datawarehouse developer

Aangezien het doel van het opzetten van een datawarehouse erin bestaan om rapportering en

analyse te ondersteunen, worden de inhoud en het ontwerp ervan bepaald door de eisen van de

organisatie. In de praktijk betekent dit dat businessmedewerkers definiëren welke informatie hen

helpt betere beslissingen te nemen, waarna Datawarehouse-experten een datawarehouse en het

ETL-proces kunnen opzetten zodat de businessmedewerkers de juiste rapporten kunnen krijgen.

1.6 Business Intelligence

Business intelligence (BI) start met het verzamelen van gegevens binnen de eigen handelsactiviteit.

Het kan omschreven worden als het proces van gegevens omzetten in informatie, dat vervolgens zou

moeten leiden tot kennis en aanzetten tot adequate actie.

Business intelligence heeft als doel competitief voordeel te creëren en organisaties slimmer te

kunnen laten werken. Het wordt als een waardevolle kerncompetentie beschouwd.

Business intelligence is gericht op het verzamelen en analyseren van informatie over klanten,

beslissingsprocessen, concurrentie, markttoestand en algemene economische, technologische en

culturele trends, teneinde beslissingsondersteunende informatie (intelligence) te verkrijgen.

Op diverse niveaus in een organisatie hebben managers behoefte aan verschillende soorten

informatie, dit veelal op een zeer geaggregeerde wijze. Met geaggregreerde gegevens bedoelen we

gegevens die uit verschillende bronnen werden samengevoegd en vaak ook gefilterd zijn. Een

voorbeeld van geaggregeerde gegevens is het gemiddelde inkomen van mannelijke Belgen tussen 35

en 45.

Typisch voorbeeld van een methode die hiervoor ingezet kan worden is de “Balanced Scorecard”

waarin KPI’s (Key Performance Indicators) gevisualiseerd worden en het topmanagement op de

hoogte houden van de mate waarin de vooropgestelde targets al dan niet bereikt worden. Een KPI is

een precieze maatstaf die aangeeft hoe goed een onderneming presteert op een bepaald terrein.

Wanneer een manager bijvoorbeeld het percentage teruggestuurde producten uit de categorie

Page 16: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 15

kleding voor de regio Vlaanderen kent, kan hij nagaan of dit overeenkomt met de vooraf gestelde

doelen.

Op het tactisch en operationele niveau worden veelal “Dashboards” gebruikt. Een dashboard is één

pagina waarop data op een overzichtelijke manier visueel voorgesteld worden en waarop je vaak zelf

kunt filteren op diverse parameters. Via deze interface worden eveneens KPI’s voorgesteld. De focus

ligt hier eerder op de ondersteuning van dagdagelijkse operationele acties.

Bij het analyseren van gegevens, met oog op het verkrijgen van belangrijke bedrijfsinzichten die het

nemen van efficiënte beslissingen kunnen ondersteunen, wordt vaak gebruik gemaakt van OLAP-

tools (Online Analytical Processing) waarmee gegevens op een interactieve wijze gevisualiseerd

worden.

BI Analyst

Een BI Analyst analyseert data en creëert rapporten en analyses met nieuwe inzichten die door de

business gebruikt kunnen worden. Dit profiel vormt bij uitstek een brugfunctie tussen Business en

IT.

Data steward

Is een ondersteunende ICT’er, verantwoordelijk voor de kwaliteit en de consistentie van de data.

1.7 Artificial Intelligence – Machine Learning

De focus bij het analyseren van data verschuift ook steeds meer naar het kunnen voorspellen van

wat er in de toekomst zal gebeuren (predictive analytics), daar waar bij Business Intelligence de

nadruk veelal ligt op de analyse van wat voorbij is.

Page 17: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 16

Datamining is het gericht zoeken naar (statistische) verbanden in gegevensverzamelingen met als

doel profielen op te stellen voor wetenschappelijk, journalistiek of commercieel gebruik.

De naam komt voort uit de overeenkomsten tussen het zoeken naar statistische verbanden en het

graven (mining) naar iets waardevols in een grote berg. Datamining helpt bedrijven en

wetenschappers om de essentiële informatie te selecteren. Er kan een model mee gecreëerd worden

dat het gedrag van mensen of systemen kan voorspellen.

Het basisrecept van datamining is als volgt:

1) Je neemt data uit het verleden waarvoor je de uitkomst kent

2) Deze set splits je in een zogenaamde trainingsset en een testset

3) Je bouwt een wiskundig model met de trainingsset.

4) Je checkt hoe goed het model de uitkomsten van de testset voorspelt.

Werkt dit naar behoren dan kun je met een redelijke mate van zekerheid nauwkeurige

toekomstvoorspellingen doen.

Enkele dataminingtoepassingen:

• Opmaak klantprofielen en winstgevendheid.

• Voorspellen beste tijdstip om een onderdeel te vervangen (predictive maintenance).

• Voorspellen afhakers (churn prediction).

• Winkelwagen-analyse: optimaliseren indeling (web)winkel.

• Zoekmachines, sociale netwerksites.

Dataminingalgoritmen horen tot het domein van wat men artificiële intelligentie noemt, dikwijls

wordt ook de term Machine Learning gebruikt: door het leren uit gemaakte fouten worden

dergelijke systemen immers ook steeds beter.

De supercomputer Watson van IBM heeft de onderzoekslaboratoria verlaten en wordt reeds ingezet

in verscheidene Amerikaanse ziekenhuizen. Door symptomen en medische dossiers van patiënten te

toetsen aan de enorme hoeveelheden literatuur die hij in zijn geheugen heeft opgeslagen, kan hij

een diagnose stellen. Met een hoge efficiëntie: analyse van de resultaten toonde aan dat diagnoses

van Watson voor 90 procent betrouwbaar waren, tegenover 50 procent voor menselijke artsen.

Een ander mooi voorbeeld waar Machine Learning een noodzaak vormt is dat van de zelfrijdende

auto. De grote uitdaging is hier niet het rijden op zich maar wel het extreem snel kunnen analyseren

van alle beeldmateriaal van de camera’s en hiermee telkens de juiste beslissing te kunnen nemen.

Vermits zelfrijdende wagens ook zullen geconnecteerd zijn, zullen deze ook van elkaar leren.

De mens staat machteloos tegenover de wildgroei aan data, terwijl de kracht van kunstmatige

intelligentie er precies in bestaat dat ze in fracties van seconden miljarden gegevens kan analyseren.

Page 18: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 17

Artificiële intelligentie zal wellicht uitgroeien tot een van de belangrijkste sectoren van deze eeuw!

1.8 Big Data

Men spreekt van Big Data wanneer men werkt met meerdere datasets die te groot zijn om met

reguliere databasemanagementsystemen verwerkt te worden. Hierbij zijn drie factoren belangrijk: de

hoeveelheid data, de snelheid waarmee de data binnenkomt en opgevraagd wordt en de diversiteit

van de data. In het Engels spreekt men van de drie V’s: Volume (hoeveelheid data), Velocity

(snelheid van verwerking) en Variety (diversiteit van gegevens). Soms wordt Value hieraan

toegevoegd om het objectief, de (meer)waarde die dit kan opleveren, te benadrukken.

Zo wordt er gebruik gemaakt van zowel gestructureerde data (uit databanken) als van

ongestructureerde data van bijvoorbeeld sociale netwerken (tweets, blogs, forums, audio, video,

webpagina’s, geografische info,…). In tweets bijvoorbeeld zit er weinig structuur : er is de zender en

de datum en verder 140 willekeurige tekens met veel verschillende hashtags.

De beschikbaarheid van grote hoeveelheden big data wordt veroorzaakt door een aantal elementen:

• Het intensief gebruik van mediatoepassingen zoals streamingdiensten, sociale media, …. Dat

veroorzaakt een stroom aan berichten, foto’s, filmpjes, … Dit is een gigantische stroom

ongestructureerde gegevens.

• De gigantische hoeveelheid gegevens die via het web verspreid worden, dragen ook bij tot de

steeds grotere beschikbaarheid van big data: webshops, wikipedia, blogs, discussiefora,

enzovoort.

• IoT, the internet of things. Dat begrip leggen we wat verder in detail uit. Hier krijgen we

gestructureerde gegevens die in een hoog tempo door allerlei apparaten gegenereerd

worden.

Page 19: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 18

• De steeds grotere beschikbaarheid van grote databanken die de bedrijfsprocessen

ondersteunen. We spreken hier dan over gestructureerde data in allerlei systemen. Veel van

die data worden ook via de cloud ter beschikking gesteld.

De informatie en potentie van ongestructureerde data is enorm. Bioscopen kunnen al op basis van

tweets in de week voorafgaand aan een première inschatten hoe druk het in de eerste week gaat

worden. Hoe meer positieve tweets over de film, hoe beter hij zal lopen. Goed om te weten als je

planner bent: welke film krijgt volgende week de grootste zaal?

Voor dit soort van Big Data is de laatste tijd een heel scala aan nieuwe soorten databases ontstaan.

Vaak worden die allemaal samengevat onder de noemer NoSQL. Dit is echter een slechte naam die

voornamelijk refereert aan het feit dat het niet om relationele databases gaat.

Een populair open-source softwareframework voor gedistribueerde opslag en verwerking voor grote

hoeveelheden data is Hadoop. Het draait op een cluster van computers en er wordt rekening

gehouden met een mogelijke uitval van een computer door replicatie van de data over verschillende

computers.

De hoeveelheid data neemt exponentieel toe, zo is negentig procent van alle wereldwijd beschikbare

data de afgelopen twee jaar geproduceerd.

Pas nu wordt duidelijk wat de invloed is van deze overvloed aan data. Nieuwe diensten en analyses

rond Big Data zullen onze samenleving veranderen. Alleen organisaties die slim gebruik maken van

de bergen aan gegevens over het gebruik van producten en diensten zullen overleven. Helaas ligt de

nadruk bij Big Data-initiatieven vaak nog op het genereren en opslaan van enorme hoeveelheden

data in plaats van op de analyse ervan.

Chief Data Officer

Deze persoon is binnen het managementteam verantwoordelijk voor visie en beleid ten aanzien

van data. Voorbeeld van een vraag waar een CDO zich mee bezighoudt: gaan we externe data van

Page 20: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 19

de consument die onze producten gebruikt verzamelen en daarmee nieuwe diensten

ontwikkelen?

Data Scientist

Is de centrale spil voor een data-gedreven innovatie, deze nieuwe rol wordt ook wel omschreven

als het beroep van de toekomst “the sexiest job of the 21st century”. Dit sterk profiel

combineert heel wat skills: kennis algoritmen, statistiek, business-kennis,

programmeervaardigheden en communicatieve skills. Hij is de specialist in het analyseren van

grote hoeveelheden data en het toepassen van machine learning.

Big Data Practitioner

Heeft de juiste competenties om slimme Big Data oplossingen in praktijk te brengen. De data

practitioner past bestaande algoritmes toe op data maar ontwikkelt zelf geen nieuwe algoritmes.

1.9 Internet of Things - IoT

Internet of Things (IoT) verwijst naar een concept waarbij fysieke objecten (things) verbonden

worden met het internet en waarbij deze fysieke objecten zichzelf kunnen identificeren naar andere

objecten toe. IoT verwijst dus niet op de eerste plaats naar een nieuwe technologie. Het combineert

hoofdzakelijk bestaande technologieën zoals sensortechnologie, elektronica en netwerktechnologie.

De vernieuwing zit in de toegenomen verbondenheid via het internet. Internet of Things biedt vooral

kansen voor een sterkere integratie tussen de fysieke wereld en verschillende computersystemen.

Voorspellingen gaan er van uit dat er tegen 2020 meer dan 20 miljard IoT-apparaten in gebruik zijn,

van smart tv’s, koelkasten en auto’s tot slimme elektrische meters, grasmaairobots, vochtsensoren

en beveiligingscamera’s. Allemaal uitgerust met sensoren die gebeurtenissen capteren en alle

gegevens netjes doorsturen naar het internet.

Iedereen is het erover eens dat het Internet of Things aan een ontstuitbare opmars is begonnen. Het

genereert een tsunami aan data waaruit een massa informatie kan worden gepuurd. Op voorwaarde

dan wel dat er analytics op losgelaten worden en dit bij voorkeur real-time. IoT is één van de triggers

die heel veel big data genereren en data analytics mogelijk maken.

Dit opent meteen de weg naar een heleboel nieuwe scenario’s – denk maar aan de detailhandel waar

je in real-time boodschappen en promoties naar de klanten kan sturen op basis van ondermeer de

locatie van die klanten in de winkel.

Real-time analytics wordt mainstream, de kern van de onderneming.

Page 21: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Inleiding

Database Concepts 20

IoT architect

Een IoT Architect is in staat om innovatieve oplossingen uit te werken die IoT / Mobile-

apparaten en data samenvoegen.

De Powerpointpresentatie voor dit hoofdstuk vind je op Toledo.

Op Toledo vind je nog een aantal aanvullende artikels over Big Data.

Page 22: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 21

Hoofdstuk 2: Het relationele model

Leerdoelen

De student kan de bouwstenen van relationele gegevensbanken benoemen en bij

een concreet voorbeeld aanduiden. Het gaat hier om begrippen als relatie/tabel,

tupel/record, cartesisch product, attribuut, kenmerken van attributen in een

relationele gegevensbank, domein van een attribuut, de betekenis van de null-

waarde.

De student kan de kandidaat-sleutels, de primaire sleutel en de verwijssleutel in een

relationele databank bepalen. Hij kan voor een eenvoudige casus de relaties

(tabellen), attributen en sleutels bepalen en het datastructuurdiagram tekenen.

De student kan de begrippen redundantie, entiteit-integriteit, referentiële integriteit

en domeinrestrictie uitleggen en toepassen op een concreet voorbeeld.

De student kent de operatie van de relationele algebra (selectie, projectie, join

(natuurlijke join, equi-join, auto-join, outer-join (left-right), unie, doorsnede, verschil

en kan dit toepassen om concrete casussen. Hij weet wat een view is en wat de

bedoeling is van een view.

Het is wel belangrijk de theorie te begrijpen, maar probeer vooral de oefeningen

vaak te doen tot je ze nagenoeg perfect kent. Kijk ook naar voorbeelden van

databanken die je in je omgeving ziet.

2.1 Inleiding

Het relationele model werd in 1970 geïntroduceerd door de Amerikaanse wiskundige E. F. Codd.

Dit model komt zo eenvoudig over dat het lange tijd is verguisd als zijnde niet-volwassen. Het

eenvoudig concept, waarbij gegevens weergegeven worden in een verzameling gelijksoortige

tabellen, is nochtans één van de belangrijkste voordelen van het relationele model t.o.v. het

hiërarchische- en het netwerkmodel (vooral vroeger vormden deze laatste modellen de basis voor

databanken .)

Bovendien heeft het relationele model een degelijke wiskundige basis en dat heeft een aantal

voordelen bij het ontwerpen en onderhouden van relationele gegevensbanken.

Sedert de introductie in 1970 is het model regelmatig herzien en aangepast.

Het relationele model vormt momenteel dan ook de grondslag van de grootste groep DBMS-

producten.

Page 23: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 22

2.2 Bouwstenen van relationele gegevensbanken

2.2.1 Relaties

Het relationele model is gebaseerd op een tak van de wiskunde, met name de verzamelingenleer en

in het bijzonder de leer van de relaties.

Een verzameling is een ongeordende serie gelijksoortige elementen.

Een relatie op 2 of meer verzamelingen is een deelverzameling van de productverzameling van de

betreffende verzamelingen.

Stel de volgende twee verzamelingen met de opgesomde elementen.

KLEUR = {rood, geel, groen}

MAAT = {small, medium, large}

De productverzameling KLEUR x MAAT bestaat uit 9 elementen: {(rood,small),

(rood, medium), (rood, large), (geel, small), (geel, medium), (geel, large), (groen,

small), (groen, medium), (groen, large)}

Het aantal elementen v/d productverzameling is steeds het product van het aantal

elementen van de vermenigvuldigde verzamelingen, hier 3 x 3 = 9.

Men noemt een dergelijk product van verzamelingen ook een cartesisch product, het is natuurlijk

totaal verschillend van een rekenkundig product van getallen.

KLEUR MAAT

Productverzameling KLEUR x MAAT (cartesisch product)

rood geel

groen

small medium

large

(geel, large) RELATIE: ASSORTIMENT

(groen, small)

(geel, medium)

(rood, small)

{rood, small} {groen, medium}

{rood, medium} {groen, large}

{geel, small} {rood, large}

Page 24: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 23

Een voorbeeld van een relatie op de twee verzamelingen zou kunnen zijn:

{(rood, medium), (rood,large), (geel, small), (geel, medium), (geel, large)}

Als mogelijke betekenis zou deze relatie het assortiment jassen kunnen voorstellen

welke een winkel verkoopt.

In een relationele databank wordt een relatie weergegeven d.m.v. een tabel.

De vijf elementen of tupels van de relatie ASSORTIMENT worden als volgt in

tabelvorm voorgesteld:

ASSORTIMENT

KLEUR MAAT

rood medium

rood large

geel small

geel medium

geel large

Elke rij uit de tabel representeert een tupel van de relatie en correspondeert bijgevolg met een

object uit de werkelijkheid.

2.2.2 Attributen

In de theorie van relationele gegevensbanken draait dus alles om relaties, en in een relationele

gegevensbank correspondeert met elke relatie een tabel, daardoor ziet een relationele

gegevensbank er voor een gebruiker uit als een verzameling tabellen.

Voorbeeld: een vereenvoudigde gegevensbank betreffende de

personeelsadministratie van de Vives-hogeschool zou kunnen bestaan uit volgende

2 tabellen.

Page 25: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 24

PERSONEEL

Naam Voornaam Persnr Gebdat Gesl Salaris Manager Studgebnr

Acx Johan 6541 15-jan-1963 M 5222,62 7365 2

Desplenter Marc 4379 19-feb-1962 M 5202,88 7365 2

Ketels Bavo 8167 12-apr-1988 M 4602,88 7365 2

Vandenbussche Arne 7365 29-feb-1968 M 5478,94 9876 2

Haegeman Wim 1234 31-dec-1970 M 6718,40 7582 5

Hindryckx Joris 7582 01-jan-1960 M 8197,34 Null 1

Beyls Katrien 6741 Null V 4478,94 7365 2

De Langhe Johan 9876 15-apr-1969 M 6214,19 7582 2

Selis Noel 3456 20-aug-1968 M 6214,19 7582 9

Dekocker Veerle 6543 15-nov-1974 V 5966,30 7582 4

STUDIEGEBIED

Studgebnr Studgebnaam Studgebmanager Managerstartdate

5 IW&T 1234 01-sept-2013

1 VIVES 7582 01-sept-2012

9 ONDERWIJS 3456 01-jan-2015

2 HW&B 9876 01-sept-2012

4 SOCIAAL AGO 6543 01-sept-2014

Een kolom in een tabel herbergt gelijksoortige waarden welke attribuutwaarden (attributen)

genoemd worden, de kop van een kolom bevat een attribuutnaam.

In een relationele databank moeten alle attribuutwaarden atomair zijn. Elke cel bevat één waarde.

De waarden binnen een cel worden niet opgesplitst. Een cel kan geen lijst gegevens bevatten. Als een

cel bijvoorbeeld [01-02-03] bevat, dan heeft dat één betekenis.

Attributen zijn ook globaal in het relationele model, d.w.z. als een attribuutnaam voorkomt in twee

verschillende tabellen v/e relationele database, dan is de betekenis ervan in beide tabellen dezelfde.

Vb. attribuutnaam Studgebnr in de tabel Personeel en in de tabel Studiegebied.

Bovendien moeten attributen invariant zijn in de tijd, de waarden moeten in mindere of meerdere

mate tijdsonafhankelijk zijn. Vb. Sla niet de leeftijd van een persoon op in een databank, maar wel

Page 26: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 25

zijn geboortedatum, de waarde van het attribuut geboortedatum is tijdsonafhankelijk en de leeftijd

kan altijd afgeleid worden.

Het aantal attributen in een tabel wordt de graad v/d tabel genoemd, het aantal tupels de

cardinaliteit. De cardinaliteit van een tabel kan in de loop van de tijd veranderen, de graad (meestal)

niet.

Samengevat heeft elke tabel in een relationele databank volgende eigenschappen:

• Elke kolom heeft een onderscheiden naam (attribuutnaam)

• De volgorde van de kolommen is niet van belang

• Een tabel bevat niet twee dezelfde rijen (een tabel is een verzameling van tupels en een verzameling kent per definitie geen duplicaten)

• De volgorde van de rijen is niet van belang (verzamelingen zijn immers niet geordend)

• Alle attribuutwaarden in de tabel zijn atomair

2.2.3 Domeinen

Met de term domein van een attribuut wordt de verzameling waarden bedoeld die een attribuut

mag aannemen.

In de databank van Vives is het domein van het attribuut Geslacht gelijk aan de verzameling {M, V}.

Het domein van het attribuut Studgebnr is een geheel getal van 1 tot 9 (grenzen incl.)

Voor het attribuut Naam gaan we uit van een domein dat bestaat uit alle alfanumerieke waarden van

maximaal 25 karakters. Dit betekent dat een naam een combinatie kan zijn van hoofdletters, kleine

letters, leestekens, cijfers, enz. met een maximum van 25 tekens. Vb. D’haese.

Het domein van een attribuut is een enkelvoudig domein als alle elementen van het betreffende

domein atomair zijn. In een relationele databank moet elk atribuut een enkelvoudig domein hebben.

Bijgevolg kan een attribuutwaarde nooit een samenstelling van waarden zijn; repeterende groepen

zijn niet toegestaan. In elke positie van een tabel van een relationele gegevensbank staat precies één

waarde.

Het registreren van het feit dat een personeelslid van Vives verbonden is aan twee

studiegebieden van de hogeschool kan onmogelijk door in het attribuut Studgebnr

van de tabel Personeel twee studiegebiednummers op te nemen

.

2.2.4 Tupels

De gegevens in een rij van een tabel vormen samen het beeld van een object uit de werkelijkheid.

Een rij is dus een verzameling bij elkaar horende attribuutwaarden, een dergelijke verzameling

noemt men een tupel (of rij).

Een voorbeeld van een tupel uit de tabel Studiegebied is: (2,HW&B,9876,01-sept-2012).

Page 27: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 26

Gezien de attribuutwaarden geen betekenis hebben zonder kennis van de bijpassende attributen

vermelden we ook de verzameling attribuutnamen: (Studgebnr, Studgebnaam, Studgebmanager,

Managerstartdate), dit wordt het tupelschema (relatieschema) genoemd.

2.2.5 Nulwaarden (nulls)

Nulwaarden vormen een belangrijke en in bepaalde situaties vrij moeilijke problematiek in de

gegevensbanktheorie.

We geven een attribuut een NULL-waarde als:

• Een attribuutwaarde niet van toepassing is

• Een attribuutwaarde voor het moment nog onbekend is.

Een voorbeeld van de eerste situatie is de nulwaarde bij het attribuut manager van

de algemeen directeur van Vives dhr. Hindryckx. Een illustratie van het tweede geval

is het ontbreken van de geboortedatum van mevr. Beyls.

Belangrijk is dat een NULL-waarde niet verward wordt met het getal 0, dat is namelijk wel degelijk

een waarde. Ook bij alfanumerieke attributen is een NULL-waarde formeel totaal verschillend t.o.v.

leeg stuk tekst.

2.3 Sleutels

2.3.1 Kandidaatsleutels

De tupels van een tabel kunnen op een unieke manier van elkaar onderscheiden worden. Dit

betekent dat ze op één of andere manier van elkaar moeten verschillen, via één attribuut of een

groep attribuut die voor elk tupel een andere waarde heeft. De attributenverzameling die voor elk

tupel verschillend is, noemen we de kandidaatsleutel of sleutel.

De attributenverzameling bestaat uit één of meer attributen waarin geen NULL-waarden voorkomen,

bovendien mag de attributenverzameling geen overtollige attributen bevatten.

Een kandidaatsleutel heeft de eigenschap van minimaliteit.

Voor de tabel Personeel is het attribuut Naam geen kandidaatsleutel gezien meerdere

personeelsleden dezelfde naam kunnen hebben. De combinatie Naam + Persnr is geen

kandidaatsleutel omdat Naam een overtollig attribuut blijkt. De enige kandidaatsleutel die hier

overblijft is Persnr.

In de veronderstelling dat in de tabel Personeel ook het attribuut Rijksregisternummer zou bestaan

zijn er twee kandidaatsleutels: Persnr en Rijksregisternummer.

Vermits elke tupel uniek is, bestaat er altijd minstens één kandidaatsleutel.

Page 28: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 27

Als een sleutel uit één attribuut bestaat noemt men die sleutel een enkelvoudige sleutel. Een sleutel

die uit een combinatie van attributen bestaat, heet een samengestelde sleutel.

2.3.2 Primaire sleutel (Primary Key)

De sleutel die door de gegevensbankontwerper daadwerkelijk gekozen wordt (uit de

kandidaatsleutels) voor tupelidentificatie wordt de primaire sleutel genoemd.

Elke waardencombinatie van een primaire sleutel voor een tabel verwijst naar precies één tupel van

die tabel. Gezien we een tupel in een tabel alleen kunnen herkennen als alle attribuutwaarden van

de sleutel bekend zijn mag een waardencombinatie van een primaire sleutel in een tabel geen

nulwaarden bevatten.

Een kandidaatsleutel die niet verkozen is tot primaire sleutel wordt een alternatieve sleutel

(alternate key) genoemd.

Opdracht/Oefening: bepaal de primaire sleutel van de tabellen PERSONEEL en

STUDIEGEBIED. Bepaal ook eventuele alternatieve sleutels.

2.3.3 Verwijssleutel (Foreign Key)

Meestal houden de tabellen in een relationele gegevensbank verband met elkaar. Het komt bvb.

voor dat een attributenverzameling voorkomt in twee relaties en dat de attributenverzameling de

primaire sleutel is voor één van de relaties, maar niet voor beide.

Dan is er sprake van een verwijssleutel (foreign key).

Het attribuut Studgebnr is de primaire sleutel in de tabel Studiegebied, Studgebnr komt echter ook

voor in de tabel Personeel en is geen primaire sleutel in deze tabel. In de tabel Personeel vormt het

attribuut Studgebnr een verwijssleutel, dit omdat het de sleutel is van een andere tabel en naar die

tabel verwijst.

Verwijssleutels verwijzen van één tabel naar één of meerdere andere tabellen (soms naar dezelfde

tabel). Op die manier zorgen ze voor samenhang tussen de verschillende tabellen van een

gegevensbank

De attribuutwaardencombinatie van een verwijssleutel mag niet voor een gedeelte nulwaarden

bevatten, de attribuutwaardencombinatie van een verwijssleutel mag wel volledig uit nulwaarden

bestaan. Als dit laatste het geval is, verwijst de attribuutwaardencombinatie van de verwijssleutel

niet naar een andere tupel.

Zo zou in de tabel Studiegebied een studiegebied kunnen toegevoegd worden zonder aanduiding van

de manager van dat studiegebied.

Page 29: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 28

Opdracht/Oefening: bepaal alle foreign keys van de tabellen PERSONEEL en

STUDIEGEBIED. Hou ook rekening met recursieve relaties.

2.3.4 Datastructuurdiagram/ERD

De tabellen en de relaties tussen de verschillende tabellen worden visueel weergegeven in een

datastructuurdiagram of ERD (entiteit-relatiediagram). Een ERD toont de entiteiten of objecten en

hun relaties. Een voorbeeld van een entiteit is de entiteit KLANT. KLANT heeft dan een relatie met

een andere entiteit, een BESTELLING. Een klant heeft nul, een of meer bestellingen en een bestelling

werd geplaatst door één klant. Op technisch databaseniveau spreken we dan over verbanden tussen

tabellen via de foreign key.

Er zijn diverse mogelijke voorstellingswijzen van een ERD. Een bekende notatieswijze is de Chen-

notaties. Wij gebruiken echter de kraaiepootnotaties of Crow’s foot notation. Deze naam heeft te

maken met de notatieswijze van relaties zoals hieronder zal blijken.

We kunnen een ERD ontwerpen op diverse niveaus:

• Op het conceptuele niveau ontwerpen we de gegevensstructuur nog op een vrij abstract

niveau waarbij we de informatiebehoeften van onze klant en de relaties tussen entiteiten in

klaart brengen zonder rekening te houden met de beperkingen van een relationele database.

Op dat niveau zullen we bijvoorbeeld veel-op-veel-relaties toelaten en zullen we de foreign

keys en primary keys nog niet definiëren.

• Op het logische niveau zullen we wel elke entiteit/tabel en elke relatie in kaart brengen en de

attributen duidelijk definiëren met hun respectievelijke logische datatypes (tekst, geheel

getal, kommagetal, booleaanse waarde, media-object) zonder er specifiek rekening mee te

houden in welke technologie we onze relationele database zullen definiëren. We zullen dus

wel de primaire sleutels, alternatieve sleutels, verwijssleutels aanduiden, maar we zullen er

ons nog niet om bekommeren of het systeem een kommagetal definieert als numeric, float

of een ander datatype specifiek voor deze technologie.

• Op het fysieke niveau houden we rekening met de RDBMS die we zullen hanteren. Het model

bevat alle details opdat de database automatisch gegenereerd kan worden.

Wij zullen in deze cursus op ERD’s op het logische niveau tekenen.

De relatie tussen twee entiteiten wordt soms aangeduid met de term ‘ouder/kind-associatie’. De

tabel met de verwijssleutel heet dan de kindtabel, de tabel waarnaar verwezen wordt heet de

oudertabel.

Datastructuurdiagram van de Vives-databank:

Page 30: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 29

Personeel Studiegebiedheeft als hoofdis verbonden aan

heeft als chef

PERSONEEL(Persnr, Naam,Voornaam, Gebdat, Gesl, Salaris, Manager(FK), Studgebnr(FK))

STUDIEGEBIED(Studgebnr, Studgebnaam, Studgebmanager(FK), Managerstartdate)

Het datastructuurdiagram geeft, samen met een opsomming van de attributen per tabel, een

duidelijk beeld van de structuur van een database.

De naam van de relatie tussen tabellen komt tot stand door, vanuit het standpunt van de tabel met

de foreign key, de betekenis te verwoorden van de foreign key. De tabel die de foreign key bevat,

vormt dus het onderwerp van de te maken zinsconstructie.

• een Personeelslid ‘is verbonden aan’ een Studiegebied (FK: Studgebnr)

• een Studiegebied ‘heeft als hoofd’ een Personeelslid (FK: Studgebmanager)

• een Personeelslid ‘heeft als chef’ een (ander) Personeelslid (FK: Manager)

Als alternatief van het datastructuurdiagram en de opsomming van de attributen per tabel kunnen de attributen ook opgenomen worden in het datastructuurdiagram.

Voor wat de relatie ‘verbonden aan’ betreft, vormt Studiegebied de oudertabel en

Personeel de kindtabel (bevat de foreign key).

Er wordt expliciet aangegeven dat er:

• bij één rij van Studiegebied, nul of meer Personeelrijen horen.

• bij één rij van Personeel, precies één Studiegebiedrij hoort.

Deze zogenaamde cardinaliteiten moet men in het schema steeds aflezen ‘aan de andere kant’ van

de verbindingslijn, lezend van de ene tabel naar de andere.

PERSONEEL

Naam

Voornaam

Persnr

Gesl

Salaris

Manager (FK)

StudgebnrFK)

STUDIEGEBIED

Studgebnr

Studgebnaam

Studgebmanager (FK)

Managerstardateheeft als hoofd

is verbonden aan

heeft als chef

Page 31: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 30

Personeel Studiegebiedis verbonden aan

Bij één Personeel-rij hoort precies één Studiegebied-rij.

Bij één Studiegebied-rij horen nul of meer Personeel-rijen.

Dit betekent dat een personeelslid steeds moet verbonden zijn aan een

studiegebied, m.a.w. de foreign key Studgebnr in Personeel moet verplicht ingevuld

worden!

De realisatie hiervan gebeurt met een extra beperkende voorwaarde op de foreign

key (not null constraint, zie later).

Bij de relatie ‘heeft als hoofd’ vormt Personeel de oudertabel en Studiegebied de

kindtabel (bevat de foreign key).

• Bij één rij van Personeel horen nul of meer Studiegebied-rijen

• Bij één rij van Studiegebied hoort nul of één Personeel-rij

Personeel Studiegebiedheeft als hoofd

Dit betekent dat een studiegebied kan toegevoegd worden zonder aanduiding van de

studiegebiedmanager, m.a.w. de foreign key Studgebmanager mag null zijn. Gezien, volgens de

relationele theorie, een foreign key steeds (volledig) null mag zijn (zie paragraaf 2.3.3) impliceert dit

geen extra voorwaarde op deze foreign key.

Men spreekt in dit verband ook van een optionele (niet-verplichte) relatie.

De relatie ‘heeft als chef’ is in die zin speciaal dat de verwijzing naar de tabel zelf gebeurt, men

noemt dit een recursieve relatie.

• Bij één rij van Personeel hoort geen of 1 rij van Personeel die de chef aanduidt

• Bij één rij van Personeel horen 0 of meer rijen van Personeel die de ondergeschikten aanduiden.

Samenvattend worden volgende cardinaliteitsnotaties in een datastructuurdiagram gebruikt:

Page 32: Arne Vandenbussche, Marc Desplenter, Luc De Tollenaere … · 2020. 6. 9. · term database die we als volgt kunnen omschrijven: een database is een collectie van persistente data

Het relationele model

Database Concepts 31

0 of 1

precies 1

0 of meer

1 of meer

Merken we nog op dat een ‘één-of-meer’-relatie zelden voorkomt en bovendien niet direct

afdwingbaar is in een relationele database. Vermits dit ook zou aanleiding geven tot weinig

flexibiliteit zullen we verder ‘éé-of-meer’ niet gebruiken.

2.4 Integriteit

De gegevens van een gegevensbank moeten steeds consistent (met elkaar in overeenstemming) zijn.

Het mag bvb. niet zo zijn dat een gegevensbank twee tupels bevat, waarvan de ene aangeeft dat een

persoon gedomicilieerd is in Kortrijk en de andere dat dezelfde persoon gedomicilieerd is in Knokke.

De grootste bedreiging voor de consistentie van een informatiesysteem vormt de redundantie

(overtolligheid). Er moet ten allen tijde naar gestreefd worden dat een bepaald gegeven (vb. adres

v/e persoon) maar éénmalig gestockeerd wordt. Om dat te bereiken zullen we ernaar streven een

genormaliseerde database te ontwerpen. Dat wordt in het volgende hoofdstuk behandeld.

Ook het opslaan van zogenaamde afleidbare gegevens is een vorm van redundantie en dient

vermeden te worden. Indien een bedrag (excl. BTW) en het BTW-percentage opgeslagen worden is

het overbodig het bedrag inclusief BTW op te slaan. Soms wordt echter selectief besloten tot het

opslaan van redundante gegevens; vooral in gevallen waar snelheid (performance) cruciaal is, en

waarbij het steeds opnieuw berekenen of afleiden van de gewenste gegevens teveel tijd zou kosten.

Bovendien moeten de gegevens correct zijn. We willen dus dat de gegevens in een gegevensbank

volledig en correct zijn, ofwel: dat de integriteit van een gegevensbank gegarandeerd is.

Teneinde de integriteit van een gegevensbank zo goed als mogelijk te garanderen worden

integriteitsregels (constraints) opgesteld.

2.4.1 Entiteit-integriteit (Entity integrity)

In een primaire sleutel van een tabel mogen geen attributen met nulwaarden voorkomen.

Elke tupel moet uniek worden gëidentificeerd door een waardencombinatie van de primaire sleutel.

Het toestaan van een null-waarde in de primaire sleutel zou bijgevolg een contradictie betekenen

gezien een null-waarde de afwezigheid van een waarde voorstelt.

Per definitie is een primaire sleutel ook uniek.