Leo Wiegerink studeerde wiskunde aan de Universiteit van Leiden. Als opleider van wiskundeleraren, als informaticadocent aan de Hogere Informaticaopleiding van de Hogeschool van Amsterdam, als docent/ cursusontwikkelaar in het bedrijfsleven en tenslotte als cursusontwikkelaar bij de Informaticafaculteit van de Open Universiteit heeft hij ruime ervaring opgedaan met lesgeven aan en cursusontwikkeling voor de doelgroepen van dit boek.
Meer over de auteursRelationele Databases en SQL
Paperback Nederlands 2021 4e druk 9789024429936Samenvatting
Dit boek behandelt de relationele databasetheorie en de relationele databasetaal SQL aan de hand van aansprekende voorbeelden en helder uitgelegde theorie. De benadering is informeel en praktisch maar tegelijkertijd conceptueel. Door de didactische benadering wordt met relatief weinig moeite een hoog niveau bereikt.
Het boek omvat de volgende delen:
Deel A behandelt de componenten van een relationeel systeem: de ‘achterkant’ (structuur en regels van een relationele database), de ‘voorkant’ (de structuur van applicaties, in relatie met die van een database) en de communicatie tussen beide via SQL. Dit deel sluit af met een informele, moderne behandeling van de normalisatietheorie.
De delen B en C bevatten een praktische en grondige cursus SQL, in voortdurende relatie met de theorie.
Deel D is verdiepend, met hoofdstukken over het methodisch aanpakken van queryproblemen, query-optimalisatie, het implementeren van databaseregels via triggers en stored procedures en metagegevens in de data dictionary.
Als databasemanagementsysteem wordt Firebird gebruikt, een open source product, waarvan de SQL nauw aansluit bij de standaard. Deze nieuwe druk maakt gebruik van de laatste versie Firebird 3.0, waardoor o.a. het datatype boolean geïntroduceerd kan worden. Ook zijn tal van verbeteringen aangebracht in de tekst, waarbij onder meer het oude hoofdstuk Autorisatie is verbreed vanuit de wat modernere invalshoek Security.
Er zijn twee websites bij het boek. De eerste is www.relationeledatabasesensql.nl, met aanvullend en ondersteunend materiaal, zoals uitwerkingen van de opgaven, scripts en diagrammen bij alle voorbeelddatabases, extra teksten en eventuele errata. Daarbij is hier het online-boek te raadplegen.
De tweede website is www.relsql.nl, hier kan de software gedownload worden. Allereerst is dat het databasemanagementsysteem Firebird. Daarnaast is er de ‘Boekverkenner’, een krachtige en gebruikersvriendelijke SQL-omgeving, geïntegreerd in een interactieve leeromgeving. Deze bevat onder meer de volledige boektekst en alle voorbeelddatabases met hun scripts en diagrammen. De SQL-query’s (in Firebird) zijn direct vanuit de tekst uit te voeren. Experimenteren wordt aangemoedigd doordat alle voorbeelddatabases met een druk op de knop zijn te (her)installeren.
Dit boek is geschikt voor databasecursussen binnen het hoger onderwijs en beginnende en gevorderde SQL-programmeurs in de praktijk.
Specificaties
Lezersrecensies
Over Jeanot Bijpost
Over Marco de Groot
Inhoudsopgave
De software. vii
Opbouw van het boek. viii
Deel A: Relationele databases. 1
1 Relationele databases: structuur 3
1.1 Informatiesystemen. 3
1.2 Relationele informatiesystemen. 4
1.3 Reijnders’ Toetjesboek. 7
1.4 Alle gegevens in één tabel 9
1.5 Verbeterde tabelstructuren. 16
1.6 Gegevens en informatie. 26
Opgaven 29
2 Relationele databases: regels. 31
2.1 Beperkingsregels. 31
2.2 Gedragsregels. 46
2.3 De OpenSchool-database (1) 54
2.4 Meer over uniciteitsregels. 56
2.5 Meer over verwijzingsregels. 60
2.6 De OpenSchool-database (2) 67
Opgaven 70
3 Communiceren met een relationele database. 73
3.1 Uitbreiding van Reijnders’ Toetjesboek. 74
3.2 SQL als ‘universele gegevenstaal’ 75
3.3 De Boekverkenner en de Interactive Query Utility. 77
3.4 Een eerste select-statement 82
3.5 Projecties en selecties. 86
3.6 Operatoren en functies. 90
3.7 Opvragingen uit meer dan één tabel: de join. 92
3.8 Tabelinhouden wijzigen. 95
3.9 Databasestructuurdefinitie. 102
3.10 Reijnders’ Toetjesboek: de applicatie. 106
Opgaven 113
4 Nulls. 117
4.1 De aard van nulls. 117
4.2 Codd-relationaliteit 125
4.3 Logische algebra. 127
Opgaven 134
5 Normalisatie. 137
5.1 De eerste normaalvorm... 137
5.2 Functionele afhankelijkheid. 139
5.3 De tweede normaalvorm... 141
5.4 De derde normaalvorm... 143
5.5 De Boyce-Codd-normaalvorm... 147
5.6 Kanttekeningen. 152
Opgaven 154
Deel B: Relationele databases bevragen en wijzigen. 157
6 Informatie uit één tabel 159
6.1 Projecties: select ... from... 160
6.2 Datatypen. 163
6.3 Operatoren. 166
6.4 Functies. 170
6.5 Selecties: where. 175
6.6 Ordening: order by. 182
6.7 Verzamelingsoperatoren. 185
Opgaven 190
7 Informatie uit meerdere tabellen: joins. 191
7.1 Inner joins. 192
7.2 Outer joins. 197
7.3 Joinoperatoren. 199
7.4 Joins over een brede sleutel 203
7.5 Samengestelde joins. 205
7.6 Autojoins. 212
7.7 Joins over een niet-sleutelverwijzing. 216
7.8 De right outer join en de full outer join. 217
Opgaven 218
8 Statistische informatie. 221
8.1 Statistische informatie: groeperen. 221
8.2 Statistieken over één groep. 222
8.3 Statistieken over meerdere groepen. 227
8.4 Statistische joinquery’s. 236
8.5 Genest groeperen. 242
8.6 Het conceptuele algoritme. 243
8.7 Groeperen en standaardisatie. 248
Opgaven 249
9 Subselects en views. 251
9.1 Subselects als oplossing van deelproblemen. 251
9.2 Subselects en joins. 258
9.3 Gecorreleerde subselects. 266
9.4 Geneste subselects. 276
9.5 De closed world assumption. 283
9.6 De operatoren all en any. 283
9.7 Views. 285
9.8 Kiezen uit alternatieven. 288
Opgaven 291
10 Wijzigen van een database-inhoud. 293
10.1 Levenswijzen van een database. 293
10.2 Transacties. 295
10.3 Integriteitsregels. 296
10.4 Het insert-statement 297
10.5 Het delete-statement 302
10.6 Het update-statement 305
Opgaven 313
Deel C: Relationele databases beheren. 315
11 Definitie van gegevensstructuren. 317
11.1 Voorbeelddatabase: Ruimtereisbureau. 317
11.2 Data definition language. 319
11.3 Levenscyclus van een database. 321
11.4 Tabellen. 323
11.5 Kolomdefinities. 328
11.6 Constraints. 332
11.7 Domeinen. 335
11.8 Views. 338
11.9 Sequences. 340
Opgaven 343
12 Security. 345
12.1 Bedreigingen van de security. 346
12.2 Realisatie van security. 347
12.3 Gebruikers. 349
12.4 Rollen en het beheer ervan. 353
12.5 Privileges. 354
12.6 Privileges verlenen. 358
12.7 Autorisatie via views. 362
Opgaven 368
13 Transacties en concurrency. 371
13.1 Transacties. 372
13.2 Transactiemanagement 377
13.3 Vier klassieke problemen. 380
13.4 Isolation levels. 386
Opgaven 394
Deel D: Verdieping. 397
14 Aanpak van queryproblemen. 399
14.1 Warming-up. 399
14.2 Probleemaanpak door vragen en antwoorden. 402
14.3 Stappenplan. 413
Opgaven 418
15 Query-optimalisatie. 419
15.1 Voorbeelddatabase: GrootOrderdatabase. 419
15.2 De optimizer. 420
15.3 Indexen. 424
15.4 Performanceverbetering door queryaanpassing. 436
15.5 Performanceverbetering door aanpassing ontwerp. 439
Opgaven 443
16 Triggers en stored procedures. 445
16.1 Triggertaal 445
16.2 Stored procedures. 446
16.3 Triggers. 449
16.4 Meer over triggers en stored procedures. 465
Opgaven 466
17 De data dictionary. 469
17.1 Metastructuren. 470
17.2 Meta-informatie over tabellen. 471
17.3 Meta-informatie over kolommen en domeinen. 473
17.4 Show commando’s in ISQL.. 475
Bijlagen. 479
Firebird: functies en contextvariabelen. 481
Firebird: data dictionary. 487
Voorbeelddatabases. 497
Register 501
Rubrieken
- advisering
- algemeen management
- coaching en trainen
- communicatie en media
- economie
- financieel management
- inkoop en logistiek
- internet en social media
- it-management / ict
- juridisch
- leiderschap
- marketing
- mens en maatschappij
- non-profit
- ondernemen
- organisatiekunde
- personal finance
- personeelsmanagement
- persoonlijke effectiviteit
- projectmanagement
- psychologie
- reclame en verkoop
- strategisch management
- verandermanagement
- werk en loopbaan