Analyse - logisch gegevensmodel
Data-modellering is een taak die verwarrend kan zijn door het gebruik van verschillende modellen van modellering. Drie soorten data-modellering zijn zeer populair:
- conceptuele modellen
- logische modellen
- fysieke modellen
Maar door veel overlappende principes is het gebruik deze modellen erg verward. Bij de uiteenzetting van het logisch model wordt geprobeerd om de verschillen tussen conceptuele en logische modellen op eenvoudige uit te leggen.
Video
Conceptuele gegevensmodel
In de vorige les hebben we gezien wat concepetuele gegevensmodellering (Analyse Les 3 Conceptueel gegevensmodel) is. Entiteit, attrubuut en-verwantschap vormen de basis van het conceptueel datamodel. Dit model is ontwikkeld door Peter Chen in 1976. Het wordt heden ten dage echter zelden gebruikt in zijn pure vorm.
In een conceptueel datamodel zijn er ook gegevensitems behalve entiteiten en relaties. Deze data items zijn gekoppeld aan entiteiten als attributen. Er wordt weinig 'informatie' in verwerkt over de attributen. Hoewel het conceptuele model dus relatief eenvoudig is, en heeft als bedoeling decomplexiteit van hedendaagse bedrijven weer te geven. Om een overzicht te krijgen van de entiteiten en hun verwantschappen in de context van vandaag is een zeer hoog niveau van abstractie nodig in conceptuele datamodellering.
In het eerste voorbeeld is de abstractie zeer hoog en kan dus goed dienst doen in de gesprekken met de klant:
In het tweede voorbeeld is de abstractie nog zeer hoog. Alleen de namen van de attributen worden vermeld. Maar het gebruik van kraaienpoten ligt al moelijker:
In het derde voorbeeld wordt al een deel van het logisch gegevensmodel in het conceptueel model opgenomen. Het gegevenstype van de attributen en de FK's, PK's en AK's staan er bij vermeld:
Dit maakt het uiteindelijk alleen maar verwarrend. Mijn voorkeur gaat uit naar een ERM voor het conceptueel gegevensmodel en een zeer technisch logisch gegevensmodel zoals hieronder beschreven.
Logisch gegevensmodel
Wanneer bedrijfsgegevens moeten geïmplementeerd worden in een database heeft men een logisch data-model nodig. Het logisch model lijkt dicht bij het fysieke model (de eigenlijke database) liggen. Maar het nog steeds overeenkomsten met conceptueel model. Het logisch model heeft o.a. primaire, vreemde en alternatieve sleutels, maar specificeert nog niet op welk database-platform het geïmplementeerd gaat worden.
Wat is het verschil tussen conceptueel en logisch data model?
- Zowel conceptuele als logische data-modellen zijn belangrijk voor data-modellering
- Hoewel het conceptuele datamodel de communicatie over de beschrijving van de gegevensbehoefte met de klant makkelijk maakt, maakt het logisch datamodel het mogelijk om de IT-mensen erbij te betrekken zonder dat ze moeten rekening houden met de beperkingen/mogelijkheden van een specifiek databaseplatform.
Het logisch datamodel beschrijft de structuur van en de referenties tussen de logische gegevensobjecten, die meer gelijken op tabellen dan op entiteiten. We gebruiken daarvoor een Data Structure Diagram. Alle uitleg over de DSD, dat we in deze lessen gaan gebruiken, vind je op Data Structure Diagram voor An Orm Apart.
Dat is een voorbeeld van een ander extreem waarbij het overzicht inboet ten voordele van de detailbeschrijving van de entiteiten.
Als voorbeeld geef ik hier een aanzet voor het logisch model van Identity.
Myaa
My Authoring App
ModernWays
Person
Persoon
FirstName, LastName
Column Name | Display Text | Searchable | Default Value | Unique | Type | Length | Variable | International | Required | Reference Table | Reference Column | Display Column | List | HTML element | HTML type attribute | Reserved | HTML pattern attribute | HTML title attribute | HTML placeholder attribute |
FirstName | Voornaam | NO | NO | NO | CHAR | 50 | YES | YES | YES | NA | NA | NA | YES | INPUT | TEXT | NA | NA | NA | |
LastName | Achternaam | SELECTBY | NO | NO | CHAR | 120 | YES | YES | YES | NA | NA | NA | YES | INPUT | TEXT | NA | NA | NA | |
Address | Adres | NO | NO | NO | CHAR | 255 | YES | YES | NO | NA | NA | NA | NO | INPUT | TEXT | NA | NA | NA | |
PostalCode | Postcode | NO | NO | NO | CHAR | 20 | YES | NO | NO | NA | NA | NA | NO | INPUT | TEXT | NA | NA | NA | |
City | Stad | NO | NO | NO | CHAR | 80 | YES | YES | NO | NA | NA | NA | NO | INPUT | TEXT | NA | NA | NA | |
Country | Land | NO | NO | NO | CHAR | 80 | YES | YES | NO | NA | NA | NA | NO | INPUT | TEXT | NA | NA | NA | |
SELECTBY | NO | NO | CHAR | 255 | YES | YES | NO | NA | NA | NA | NO | INPUT | NA | NA | jan.jannsens@mail.me | ||||
Gender | Geslacht | NO | NO | NO | CHAR | 1 | NO | NO | NO | NA | Id | NA | NO | INPUT | TEXT | NA | NA | NA | |
Phone1 | Telefoon 1 | NO | NO | NO | CHAR | 25 | YES | NA | NO | NA | NA | NA | NO | INPUT | TEXT | NA | NA | NA | |
Phone2 | Telefoon 2 | NO | NO | NO | CHAR | 25 | YES | NA | NO | NA | NA | NA | NO | INPUT | TEXT | NA | NA | NA | |
Id | NA | NA | PK | YES | Integer | NA | NA | NA | Yes | NA | NA | NA | YES | INPUT | HIDDEN | NA | NA | NA |
User
Gebruiker
Name
Column Name | Display Text | Searchable | Default Value | Unique | Type | Length | Variable | International | Required | Reference Table | Reference Column | Display Column | List | HTML element | HTML type attribute | Reserved | HTML pattern attribute | HTML title attribute | HTML placeholder attribute |
Name | Naam | SELECTBY | NO | YES | CHAR | 50 | YES | YES | YES | NA | NA | NA | YES | INPUT | TEXT | NA | NA | NA | |
HashedPassword | Hash | NA | NO | NO | CHAR | 255 | YES | YES | NO | NA | NA | NA | YES | INPUT | TEXT | NA | NA | NA | |
PersonId | Persoon Id | NA | NO | NO | Integer | NA | NA | NA | NO | Person | Id | FirstName, LastName | NO | SELECT | NA | NA | NA | NA | |
Role | Rol | SELECTX | NO | NO | Char | 30 | YES | YES | YES | NA | NA | NA | YES | SELECT | NA | NA | NA | NA | |
Id | NA | NA | PK | YES | Integer | NA | NA | NA | Yes | NA | NA | NA | YES | INPUT | HIDDEN | NA | NA | NA |
Opdracht
- Maak een logisch gegevensmodel voor de Organisation-gegegevens van VOS op basis van het ERM en ERD.
- Maak een logisch gegevensmodel voor de Procedures van VOS op basis van het ERM en ERD.
- Kopiëer de tabel hierboven, plak die in het Word document waarin je ERD's en ERM's staan en gebruik die als basis voor de opdracht.