Logisch datamodellering is een mechanisch proces waarbij de ERD (Entity Relationship Diagram) van conceptueel datamodellering wordt omgezet naar een relationeel databasemodel. Door middel van mappingregels worden entiteiten, attributen en relaties omgezet naar tabellen, kolommen en PK/FK.
Door het afhandelen van 1:1, 1:N en N:M relaties wordt de relatie tussen tabellen weergegeven. Een tussentabel wordt gebruikt om N:M relaties te verwerken.
Normalisatie is het proces van het optimaliseren van tabellen voor relationele databases. Dit gebeurt stapsgewijs via 1NF, 2NF en 3NF om partiële afhankelijkheden en transitieve afhankelijkheden te elimineren.
In vergelijking met vereistenanalyse en conceptueel datamodellering, is logisch datamodellering een meer mechanisch proces.
Het proces draait voornamelijk om het transformeren van het ERD, het resultaat van conceptueel datamodellering, naar het relationele databaseparadigma op basis van de mapping rules (Mapping Rule).
Mapping Rules
Rechthoekige entiteiten worden omgezet naar tabellen.
Circulaire attributen worden omgezet naar kolommen.
Relaties worden omgezet naar primaire sleutels (PK) of externe sleutels (FK).
Het is het gemakkelijkst om eerst tabellen weer te geven zonder FK.
Relaties
De relatie tussen tabellen wordt weergegeven rekening houdend met cardinaliteit en optionaliteit.
De eenvoudigste relatie, de 1:1-relatie, wordt eerst weergegeven, gevolgd door de 1:N-relatie en de N:M-relatie.
Verwerking van 1:1-relaties
Bij een 1:1-relatie wordt de afhankelijkheidsrelatie tussen de twee tabellen onderzocht en wordt de FK ingesteld.
Het kan worden gezien als een ouder- en kindtabel.
Verwerking van 1:N-relaties
Bij een 1:N-relatie verwijst 1 naar N, dus de FK wordt ingesteld in N.
Verwerking van N:M-relaties
Om een N:M-relatie in een relationele database te verwerken, wordt een tussentabel (ook wel mappingtabel of koppelingstabel genoemd) aangemaakt en weergegeven.
Het belangrijkste punt hierbij is dat de cardinaliteit en optionaliteit van beide tabellen die worden gerefereerd op basis van de mappingtabel moeten worden weergegeven.
Normalisatie (Normalization)
Wikipedia - Database Normalisatie
Het proces van het transformeren van een onbewerkte tabel naar een tabel die geschikt is voor een relationele database.
In de industrie wordt het normalisatieproces tot de 3e normaalvorm (3NF) toegepast, terwijl latere normalisatieprocessen voornamelijk in de academische wereld worden gebruikt.
Normalisatie moet stapsgewijs, één stap tegelijk, worden uitgevoerd.
Eerste normaalvorm (1st Normal Form, 1NF)
Kolommen in een tabel mogen alleen atomaire (Atomic) waarden bevatten.
Als we kijken naar het fundamentele principe van de eerste normaalvorm, is het moeilijk te begrijpen wat het betekent, maar het betekent simpelweg dat elke kolom slechts één waarde mag bevatten.
Als er meerdere waarden in één kolom staan, d.w.z. niet atomair, kan dit problemen opleveren, zoals problemen met het uitvoeren van JOIN-instructies in SQL.
Tweede normaalvorm (2nd Normal Form, 2NF)
Moet voldoen aan de eerste normaalvorm.
Partiële afhankelijkheden moeten worden verwijderd.
Als er dubbele waarden in de rijen van een tabel zijn, wordt de kolom waarop deze rij afhankelijk is gevonden en gescheiden.
Derde normaalvorm (3rd Normal Form, 3NF)
Moet voldoen aan de eerste normaalvorm.
Moet voldoen aan de tweede normaalvorm.
Transitieve afhankelijkheden moeten worden verwijderd.
De term transitieve afhankelijkheid is moeilijk te begrijpen. Voor zover ik begrijp, als er in een bepaalde tabel één of meer waarden zijn die impliciet de id van een andere tabel vertegenwoordigen (natuurlijk met uitzondering van FK's), wordt dit gezien als een transitieve afhankelijkheid.