Fundamentals of Database Systems, 7e editie, behandelt een breed scala aan sleutelconcepten in databasetheorie en -praktijk. Hier volgt een overzicht van de belangrijkste behandelde gebieden:
Ik. Kerndatabaseconcepten:
* Inleiding tot databases:
* Doel van databasesystemen
* Databasesysteemarchitecturen (client-server, enz.)
* Databasegebruikers en beheerders
* Voordelen van het gebruik van een DBMS
* Databasemodellen (relationeel, ER, EER):
* Relationeel model:
* Basisconcepten:relaties, tupels, attributen, domeinen
* Sleutels:primaire, buitenlandse, kandidaat-, supersleutels
* Integriteitsbeperkingen:entiteitsintegriteit, referentiële integriteit
* Relationele algebra:selectie-, project-, unie-, snijpunt-, verschil-, samenvoeg-, delingsoperaties.
* Entiteitsrelatiemodel (ER):
* Entiteiten, attributen, relaties
* ER-diagrammen (tekenen en interpreteren)
* Kardinaliteit en participatiebeperkingen
* Zwakke entiteiten
* Relatietypen (één-op-één, één-op-veel, veel-op-veel)
* Verbeterd ER (EER)-model:
* Subklassen en superklassen
* Specialisatie en generalisatie
* Kenmerk overerving
* Beperkingen op specialisaties/generalisaties (onsamenhangend, overlappend, totaal, gedeeltelijk)
* Categorieën (UNION-typen)
* Databaseontwerp:
* Conceptueel ontwerp (met behulp van ER- of EER-modellering)
* Logisch ontwerp (ER/EER in kaart brengen aan een relationeel schema)
* Fysiek ontwerp (opslagstructuren, indexering, query-optimalisatie)
* Normalisatie (zie hieronder)
* Relationeel databaseontwerp:
* Functionele afhankelijkheden
* Normalisatie (1NF, 2NF, 3NF, BCNF, 4NF, 5NF)
* Ontleding en ontleding zonder verlies
* Behoud van afhankelijkheid
II. SQL (gestructureerde querytaal):
* Basis SQL-query's:
* SELECT, FROM, WHERE-clausules
* Vergelijkingsoperatoren, logische operatoren
* Resultaten bestellen (ORDER BY)
* Bewerkingen instellen (UNION, INTERSECT, BEHALVE)
* Geaggregeerde functies (COUNT, SUM, AVG, MIN, MAX)
* GROUP BY- en HAVING-clausules
* Doe mee aan:
* Inner joins (equi-join, natuurlijke join)
* Buitenverbindingen (links, rechts, volledig)
* Zelf-voegt
* Subquery's:
* Gecorreleerde en niet-gecorreleerde subquery's
* Subquery's in SELECT-, FROM- en WHERE-clausules
* Data Definition Language (DDL):
* MAAK TAFEL, WIJZIG TAFEL, DROP TAFEL
* Het definiëren van beperkingen (primaire sleutel, externe sleutel, uniciteit, controle)
* Datamanipulatietaal (DML):
* INSERT, UPDATE, DELETE-instructies
* Bezichtigingen:
* Weergaven maken en gebruiken
* Gematerialiseerde weergaven
* Transacties:
* Begin transactie, commit, rollback
* ZUUR eigenschappen (atomiciteit, consistentie, isolatie, duurzaamheid)
* Ingebedde SQL: (Soms overdekt, afhankelijk van de diepte)
* SQL gebruiken binnen een hostprogrammeertaal
III. Implementatie en beheer van databasesystemen:
* Opslagstructuren:
* Bestandsorganisatie (heap, gesorteerd, gehasht)
* Indexering (primair, secundair, geclusterd, niet-geclusterd)
* B-bomen en B+-bomen
* Verwerking en optimalisatie van zoekopdrachten:
* Queryparsing, validatie, optimalisatie
* Query-uitvoeringsplannen
* Kostenraming
* Sluit je aan bij algoritmen
* Transactiebeheer:
* Gelijktijdigheidscontrole (vergrendeling, tijdstempel)
* Deadlock-afhandeling (detectie, preventie, vermijding)
* Hersteltechnieken (loggen, schaduwoproepen)
* Beveiliging:
* Authenticatie en autorisatie
* Toegangscontrole (rechten verlenen en intrekken)
* Encryptie
* Database-audit
IV. Geavanceerde databaseconcepten (vaak geïntroduceerd, maar misschien niet diepgaand):
* Objectgeoriënteerde databases:
* Objecten, klassen, overerving, polymorfisme
* Object-relationele mapping (ORM)
* Gedistribueerde databases:
* Gegevensfragmentatie en replicatie
* Gedistribueerde queryverwerking
* Gedistribueerd transactiebeheer
* Datawarehousing en OLAP:
* Datawarehouse-architectuur
* OLAP-bewerkingen (roll-up, drill-down, slicen, dicing)
* Datamining
* NoSQL-databases:
* Sleutelwaardewinkels, documentdatabases, kolomfamiliewinkels, grafiekdatabases
* CAP-stelling
* Gebruiksscenario's voor NoSQL-databases
* Big data: (kort vermeld)
* Hadoop, vonk
* Opkomende trends (afhankelijk van hoe recent de bedrukking is, kunnen deze aangestipt worden)
* Grafiekdatabases
* Blockchain en databases
* AI en databases
Samenvattend biedt het boek een uitgebreide introductie tot databasesystemen, waarin de kernconcepten van relationeel databaseontwerp, SQL en databasesysteemimplementatie worden behandeld. Het behandelt ook meer geavanceerde onderwerpen om een breder inzicht in het vakgebied te geven. De diepte van de dekking voor geavanceerde onderwerpen kan variëren. |