Peter ter Braake is zelfstandig SQL Server docent/consultant. Hij is MCT sinds 2002 en SQL Server MVP sinds begin 2012.
Meer over Peter ter BraakeDatabase modelleren
Paperback Nederlands 2020 1e druk 9789024429554Samenvatting
Data(bases) zijn tegenwoordig belangrijker dan ooit. We verzamelen data om deze vervolgens te kunnen analyseren. Het succesvol inzetten van een database begint met het ontwerpen van de juiste structuur. Hoe zet je een database goed op? Vaak krijg je maar één kans om een database te ontwerpen. Dat ontwerp bepaalt in hoge mate het succes.
Database modelleren gaat in op het ontwikkelen van databases. Met het groeien van de verscheidenheid aan gegevens en de steeds geavanceerdere dingen die we met de gegevens doen, zijn ook de verschillende soorten databases gegroeid. Relationele databases vormen nog altijd het overgrote deel van de in gebruik zijnde databases. Daarnaast kom je steeds vaker zogenoemde noSQL-databases tegen.
Dit boek gaat in grote mate over het ontwerpen van relationele databases, over het maken van de juiste (tabel)structuur, met andere woorden: het bepalen welke tabellen je moet maken om een goede database op te zetten. Database modelleren gaat in op de drie grote richtingen: normaliseren, dimensioneel modelleren en Data Vault. In hoofdstuk 6 komen in wat algemenere termen noSQL-databases aan bod.
Het boek is gericht op database-ontwikkelaars en/of database-engineers. Database modelleren gaat ervan uit dat een database-ontwikkelaar of engineer zich breed richt op het opslaan en gebruik van gegevens binnen een organisatie. Hij of zij is betrokken bij het maken van keuzes met betrekking tot welke database het meest geschikt is en houdt zich bezig met de overall data-architectuur. Hij bepaalt (mede) wie welke gegevens in welke vorm krijgt aangeboden. Hij/zij zet de database op en maakt het ontwerp. Dat is wat studenten in dit boek leren.
Dit boek gaat er niet van uit dat je al data-engineer bent. Ook is voorkennis van database niet noodzakelijk. We beginnen bij het begin: wat is een database eigenlijk en waarom gebruiken wij databases? Vanaf dat startpunt word je meegenomen tot het moment dat je zelf een database-ontwerp kan maken. Voorkennis van de taal SQL is een pre, maar geen noodzaak.
Specificaties
Lezersrecensies
Inhoudsopgave
Voor wie is dit boek 7
Voorkennis 7
1 Inleiding databases 15
1.1 Het ontstaan van relationele databases 16
1.1.1 Bestanden 16
1.1.2 Relationele databases 18
1.2 Structured Query Language 19
1.2.1 Schema-on-write 21
1.3 Database-ontwerp 22
1.4 Relationele theorie 23
1.4.1 Een verzameling kent geen volgorde 23
1.4.2 Een verzameling bestaat uit unieke elementen 24
1.4.3 Sleutels 25
1.4.4 Primaire sleutels 29
1.4.5 Integriteit 32
1.4.6 Check constraint en unique constraint 35
1.5 Soorten workload 36
1.5.1 Inleiding 36
1.5.2 OLTP 37
1.5.3 OLAP 38
1.6 Tot slot 39
2 Entiteitenanalyse 41
2.1 Inleiding 41
2.2 Entiteit Relatie Diagram 42
2.3 Entiteiten 44
2.3.1 Super- en sub-entiteiten 46
2.3.2 Naamgeving 47
2.4 Relaties 48
2.4.1 Eén-op-veel-relatie 48
2.4.2 Eén-op-één-relatie 49
2.4.3 Veel-op-veel-relatie 50
2.4.4 Tekenwijze 51
2.4.5 Samenvattend 52
2.5 Een voorbeeld 53
2.6 Context van het ERD 58
2.7 Opgaven 59
3 Normaliseren 61
3.1 Inleiding 61
3.2 Achterhalen details 62
3.3 Voorkomen redundantie 63
3.3.1 Waarom redundantie voorkomen? 63
3.3.2 Hoe voorkom je redundantie? 65
3.4 De normalisatiestappen 66
3.4.1 De nulde normaalvorm 66
3.4.2 De eerste normaalvorm 69
3.4.3 De tweede normaalvorm 72
3.4.4 De derde normaalvorm 75
3.4.5 Boyce-Codd en de vierde normaalvorm 77
3.4.6 Samenvatting normaalvormen 79
3.5 Een alternatieve aanpak 80
3.5.1 Stap 1 81
3.5.2 Stap 2 81
3.5.3 Stap 3 82
3.5.4 Stap 4 83
3.6 Integreren 83
3.7 Entiteit Relatie Diagram 85
3.8 Tot slot 87
3.9 Opgaven 88
4 Dimensioneel modelleren 93
4.1 Inleiding 93
4.2 Verantwoording dimensioneel modelleren 94
4.3 Dimensioneel modelleren 98
4.3.1 Inleiding 98
4.3.2 Stermodel 99
4.3.3 Stappen 103
4.3.4 Naamgevingsconventie 105
4.4 Dimensies 106
4.4.1 Sleutel 106
4.4.2 Onbekend (Unknown) 107
4.4.3 Ster versus Snowflake 108
4.4.4 Datumdimensie 112
4.4.5 Slowly Changing Dimensions 116
4.4.6 Junkdimensie 119
4.4.7 Gedegenereerde dimensie 120
4.4.8 Tot slot 121
4.5 Feitentabellen 121
4.5.1 Soorten feiten 121
4.5.2 Soorten feitentabellen 122
4.5.3 Roleplaying dimensie 125
4.5.4 Coverage feitentabel 125
4.6 Een Kimball-datawarehouse 126
4.7 Tot slot 127
4.8 Opgave 128
5 Data Vault 131
5.1 Inleiding 131
5.2 Verantwoording voor Data Vault 132
5.2.1 Business Intelligence life cycle 132
5.2.2 Doel van datawarehouse 134
5.2.3 Single version of the facts 135
5.2.4 Agile datawarehouse 136
5.2.5 Samenvatting 137
5.3 Hubs, links en satellieten 137
5.3.1 Hubs 137
5.3.2 Links 141
5.3.3 Satellieten 143
5.3.4 Meer satellieten per hub of link 145
5.3.5 Hashsleutels 147
5.4 Een voorbeeld 149
5.4.1 De hubs 150
5.4.2 De links 152
5.4.3 De satellieten 153
5.5 Raw Vault versus Business Vault 154
5.6 Extra componenten 156
5.7 Tot slot 159
5.8 Opgave 160
6 noSQL 163
6.1 Inleiding 163
6.2 Big Data 164
6.2.1 Wat is Big Data? 164
6.2.2 Clusters 167
6.3 noSQL-databases 170
6.3.1 Document-database 170
6.3.2 Wide columnstore 176
6.3.3 Key-value-database 179
6.3.4 Graph 183
6.3.5 Blockchain 185
6.4 Enkele overwegingen 185
6.4.1 Polyglot persistence 185
6.4.2 BASE versus ACID 186
6.5 Data lake 188
6.6 Tot slot 192
6.7 Opgave 194
7 Implementatie 197
7.1 Inleiding 197
7.2 Gegevenstype 197
7.2.1 Numerieke gegevens 198
7.2.2 Alfanumerieke gegevens 199
7.2.3 Datums 200
7.2.4 Overige gegevenstypes 201
7.3 Constraints 202
7.4 Structured Query Language 204
7.4.1 Inleiding SQL 204
7.4.2 DCL 205
7.4.3 DML 206
7.4.4 DDL 207
7.5 Fysieke kenmerken 211
7.5.1 Grootte van een tabel 211
7.5.2 Indexing 212
7.5.3 Gepartitioneerde tabellen 214
7.5.4 Compressie 215
7.6 Tot slot 216
7.7 Conclusie 216
7.8 Opgaven 217
Index 219
Literatuur 223
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