Relatie- en hiërarchische databases zijn twee van de meest voorkomende soorten databases.
Databases zijn computerprogramma's die gegevens of 'records' opslaan. Wat nog belangrijker is, ze beschrijven ook hoe die gegevens zich verhouden tot andere gegevens in de database. Er zijn veel verschillende soorten databases, waaronder hiërarchische, netwerk-, relationele en objectgeoriënteerde. Ze dienen allemaal verschillende doelen en laten toe dat hun gegevens op verschillende manieren worden beschreven.
Hiërarchische databases
Hiërarchische databases zijn enkele van de oudste en eenvoudigste soorten databases. Ze rangschikken gegevens in een "boom"-structuur, die vergelijkbaar is met mappen en bestanden op een computer. Net zoals een bestand op een computer zich in één map bevindt, heeft elk record in de database één 'ouder'. Hiërarchisch gerangschikte gegevens worden vaak beschreven met alleen ouder/kind-relaties.
Video van de dag
Problemen met erfelijke databases
Hoewel het hiërarchische model geschikt is voor eenvoudige structuren, is het gemakkelijk in te zien hoe problemen kunnen ontstaan, aangezien elk 'kind' maar één 'ouder' kan hebben. Als de database de namen van echte ouders en hun kinderen binnen een bedrijf bevatte, zou je niet kunnen beschrijven dat beide ouders van een alleenstaand kind voor dat bedrijf werkten bedrijf. In de taal van databases zou dit een "veel-op-een" (of "veel-op-veel" relatie als er meer dan één kind bij betrokken is) zijn, en hiërarchische databases beschrijven ze niet goed.
Relationele databases
Relationele databases hebben geen problemen met veel-op-een of veel-op-veel relaties. Hun records zijn opgebouwd als meerdere "tabellen", in plaats van boomstructuren, en elk record op een tabel heeft een unieke id. Een bedrijf zou dan een tabel kunnen hebben met de namen van alle ouders, een tabel met de namen van alle kinderen, en elk record op de bovenliggende tabel zou een relatie kunnen hebben met één (of meer of geen) van de unieke records in de onderliggende tabel - die relatie is 'de ouder van'. De mogelijkheid om records dergelijke relaties te geven, is wat relationele databases hun naam.
Voordelen van relationele databases
Relationele databases voorkomen fouten doordat één record kan worden toegepast op een willekeurig aantal andere tabellen. Een kindrecord kan worden gebruikt in een "is het kind van"-relatie, en naar hetzelfde record kan worden verwezen in een tabel met "kinderen die aanwezig zijn de bedrijfspicknick." Door dubbel werk te voorkomen, kan dezelfde informatie op veel verschillende manieren worden gebruikt, zonder dat er per ongeluk iets verandert dossier.
Ook zijn relationele databases erg goed voor het leveren van andere soorten gegevens die verborgen zijn in de records, met behulp van query's die zijn geschreven in Structured Query Language of SQL. Hierdoor kunt u de database verkennen op manieren die niet meteen duidelijk zijn, zoals het vinden van alle kinderen boven een bepaalde leeftijd of alle ouders met drie of meer kinderen.
Hiërarchische databases gebruiken
Het lijkt misschien dat relationele databases superieur zijn aan hiërarchische, en het is waar dat ze flexibeler zijn. Maar die flexibiliteit is niet altijd voor elke database nodig. Bibliotheken gebruiken hiërarchische databases voor het opnemen van hun boeken, aangezien het Dewey Decimal-systeem hiërarchisch van aard is. Een lijst met telefoonnummers van contactpersonen kan perfect worden bediend door een hiërarchische database. Een database is een hulpmiddel en het juiste hulpmiddel voor de taak hangt af van de taak die voorhanden is.