Toepassen relatie gegevensobjecten

Op veel plaatsen in het VERA model worden associaties gelegd met natuurlijke, rechtspersonen en relatiegroepen (klasse Relatie).


Gebruik RelatieRol-klasse vanaf VERA versie 4.0[bewerken | brontekst bewerken]

Vanaf VERA 4.0 worden associaties met de Relatie-klasse altijd direct via de klasse Relatie gemaakt en kan via het rollen attribuut een of meer rollen worden bevraagd die van toepassing zijn op de bewuste context.

Relatie bericht met context[bewerken | brontekst bewerken]

Binnen een bepaalde context wil je een collectie met gerelateerde relaties krijgen met daarbij hun specifieke rol(len) voor die context.

Figuur 7 associatie via relatie.png

Associatie via Relatie met rollen

Vertaling naar technisch datamodel[bewerken | brontekst bewerken]

Het Logische datmodel voor Relatie is wat lastig. Daarom illustreren we hoe je deze kunt vertalen naar een technisch datamodel.

Enkelvoudige verwijzing
Bij een enkelvoudige verwijzing naar Relatie kunnen de verwijzingsattributen op de tabel worden vastgelegd.

Figuur 6 meervoudig vertaling naar technisch datamodel.png

Figuur 5 Vertaling naar technisch datamodel

In bovenstaand figuur zijn twee mogelijke implementaties getekend:

  • In de tabel XYZ wordt de sleutel relatierolId naar een record in Relatierol opgenomen. In het record binnen de tabel Relatierol is de soort rol beschikbaar én de sleutel relatieId naar een record in de tabel Relatie
  • In de tabel XYZ wordt de sleutel van de relatie relatieId én de sleutel naar de referentiedata relatierolSoort van RelatierolSoort opgenomen. Via de relatie-sleutel kan het record van Relatie opgevraagd worden en via de andere sleutel de rolsoort.


Meervoudige verwijzing
Bij een meervoudige verwijzing naar Relatie is er een koppeltabel nodig. Hiervoor zijn meerdere technische oplossingen mogelijk. Belangrijkste doel is om van een HoofdKlasse de Relatie met een specifieke Relatierol te kunnen bepalen.

Figuur 5 enkelvoudig vertaling naar technisch datamodel.png

Figuur 6 Vertaling naar technisch datamodel.

Bij een meervoudige verwijzing is in de koppeltabel XYZRelatierol de sleutel XyzId opgenomen naar een record in de tabel XYZ en kunnen er vervolgens meerdere records opgenomen worden die verwijzen naar de relatie met de specifieke soort. In bovenstaand figuur zijn twee mogelijke implementaties getekend:

  • In de tabel XYZRelatierol wordt de sleutel relatierolId naar een record in Relatierol opgenomen. In het record binnen de tabel Relatierol is de soort rol beschikbaar én de sleutel relatieId naar een record in de tabel Relatie
  • In de tabel XYZ wordt de sleutel van de relatie relatieId én de sleutel naar de referentiedata relatierolSoort van RelatierolSoort opgenomen. Via de relatie-sleutel kan het record van Relatie opgevraagd worden en via de andere sleutel de rolsoort.

Associaties met Relatie in voorgaande VERA versies[bewerken | brontekst bewerken]

In VERA versie 3.2.1 waren de associaties op verschillende manieren gemodelleerd:

Rechtstreekse associatie met Relatie[bewerken | brontekst bewerken]

In veel klassen binnen het VERA-model is een rechtstreekse associatie gelegd naar een enkele (link) of meerdere (collectie) relaties. In de klasse Eenheid waren bijvoorbeeld twee associaties opgenomen voor eigenaar van de eenheid en beheerder van de eenheid.

Figuur 1 Rechtstreekse associatie met Relatie.png

Figuur 1 rechtstreekse associatie met Relatie

Het nadeel van deze associatie was dat deze heel specifiek was voor een bepaalde rol van de relatie ten opzichte van de eenheid. Voor aanvullende rollen zoals bijvoorbeeld een verhuurmakelaar was het in deze methodiek nodig om een extra attribuut op te nemen: makelaar met type Relatie.

Associatie binnen Relatie-klasse[bewerken | brontekst bewerken]

Naast het feit dat relaties een associatie hebben met andere klassen zoals Eenheid, hebben voorkomens van Relaties onderling ook associaties met elkaar. Een bekend voorbeeld hierbij is een huishouden waarbij het huishouden een Relatiegroep is en gekoppeld is aan meerdere Natuurlijke personen. Deze verbinding tussen twee voorkomens van de Relatie-klasse is uitgewerkt in de RelatieRol-klasse. Daarmee wordt naast de associatie ook de rol en tijdlijn (binnen welke periode is de associatie actief) vastgelegd.

Figuur 2 Associatie tussen twee Relaties.png

Figuur 2 Associatie tussen twee Relaties

Associatie via RelatieRol[bewerken | brontekst bewerken]

Om verschillende rollen aan een klasse te kunnen koppelen is in een aantal gevallen besloten om een associatie te leggen via de klasse RelatieRol. Door het gebruik van RelatieRol is het niet meer nodig om specifieke rollen in de klasse op te nemen (zoals eigenaar, beheerder, enz.) maar kunnen die rollen opgenomen worden als referentiedata bij RelatieRol.

Figuur 3 associatie via RelatieRol.png

Figuur 3 associatie via RelatieRol

Door het toevoegen van referentiedata is het daarmee mogelijk om eenvoudig nieuwe associaties op te nemen.

Associatie via een aparte klasse[bewerken | brontekst bewerken]

In enkele gevallen was een specifieke associatie-klasse opgenomen waarmee de rol en tijdlijn van de relatie kon worden vastgelegd. Een bekende klasse was OvereenkomstRelatie. Doordat een overeenkomst een associatie had met (een collectie van) OvereenkomstRelatie kon in deze klasse de rollen binnen de overeenkomst worden vastgelegd.

Figuur 4 Associatie via een aparte klasse.png

Figuur 4 Associatie via een aparte klasse

Het nadeel van deze klasse was dat de rollen (OvereenkomstRelatieSoort) overlap had met rollen binnen de referentiedata RelatieRolSoort.

Deze pagina is voor het laatst bewerkt op 26 feb 2024 om 08:21.