RelationalDatabases - Juliusmeeuwisse/blok-tech-crocmeisters GitHub Wiki

Een relationele database is een verzameling van informatie die datapunten organiseert met gedefinieerde relaties voor gemakkelijke toegang. In het relationele databasemodel blijven de datastructuren -- inclusief datatabellen, indexen en views -- gescheiden van de fysieke opslag, waardoor beheerders de fysieke dataopslag kunnen bewerken zonder de datastructuur aan te tasten (Biscobing, 2020).

Datatabellen

De datatabellen slaan informatie op over de gerelateerde objecten. Elke tabel bevat een of meer datacategorieën in kolommen/attributen. Elke tabel heeft een unieke primary key, die de informatie in een tabel identificeert. De relatie tussen tabellen kan dan worden ingesteld via het gebruik van foreign keys - een veld in een tabel dat is gekoppeld aan de primary key van een andere tabel (Biscobing, 2020).

Voordelen van relationele databases

Het belangrijkste voordeel van relationele databases is dat ze gebruikers in staat stellen om eenvoudig data te categoriseren en op te slaan die later kunnen worden opgevraagd en gefilterd om specifieke informatie op te halen. Na de oorspronkelijke aanmaak van de database kan een nieuwe gegevenscategorie worden toegevoegd zonder dat alle bestaande applicaties worden gewijzigd. Ook worden gegevens slechts één keer opgeslagen, waardoor gegevensdeduplicatie wordt geëlimineerd (Biscobing, 2020).

ERD

Een Entity-Relationship diagram is een soort stroomdiagram dat illustreert hoe "entiteiten" binnen een systeem met elkaar verbonden zijn en worden vaak gebruikt om relationele databases te ontwerpen (Lucidchart, 2021).

Entiteit

Een definieerbaar ding (een persoon, voorwerp of concept) waarover gegevens kunnen worden opgeslagen. Beschouw entiteiten als zelfstandige naamwoorden. Voorbeelden: een klant, student, auto of product (Lucidchart, 2021).

Kardinaliteit

Definieert de numerieke attributen van de relatie tussen twee entiteiten of entiteitensets. De drie belangrijkste kardinale relaties zijn een-op-een, een-op-veel en veel-veel. Als voorbeeld van een een-op-een-relatie kunnen we bijvoorbeeld een student gebruiken met één postadres. Een-op-veel-relatie (of veel-op-een, afhankelijk van de richting): Een student schrijft zich in voor meerdere cursussen, maar al die cursussen hebben een enkele lijn terug naar die student. Voorbeeld veel-op-veel-relatie: Studenten worden als groep geassocieerd met meerdere faculteitsmedewerkers en die faculteitsmedewerkers worden op hun beurt geassocieerd met meerdere studenten (Lucidchart, 2021).

Kardinaliteit

Symbolen en notatie voor ERD's (Hanepoot-/Martin-/Information Engineering-stijl)

Hanepoot-/Martin-/Information Engineering-stijl

Voorbeeld ERD

Relationele databases in onze app

Voor dit project heb ik de songs en genres een aparte tabel gegeven. Dit heb ik gedaan, zodat je niet dubbele songs en genres opslaat. Er zijn tussentabellen die de verbinding tussen user en genre/song maken. Hierdoor bespaar je opslag. Zodra een gebruiker een genre of song verwijderd, dan wordt alleen record verwijderd uit de tussentabellen. De usermatches is een tussentabel voor twee users.

Database structuur

Bronnen