Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server in Windows
Azure SQL Managed Instance
Belangrijk
Master Data Services (MDS) wordt verwijderd in SQL Server 2025 (17.x). MdS wordt nog steeds ondersteund in SQL Server 2022 (16.x) en eerdere versies.
Afgeleide hiërarchieën (DH) geven een-op-veel-relaties weer en kunnen nu ook veel-op-veel-relaties weergeven.
Veel-op-veel-relaties (M2M)
Een veel-op-veel-relatie (M2M) tussen twee entiteiten kan worden gemodelleerd met behulp van een derde entiteit die een toewijzing tussen deze entiteiten biedt:
In het bovenstaande voorbeeld is er een M2M-relatie tussen de entiteiten Employee en TrainingClass , geleverd door de toewijzingsentiteit ClassRegistration. Een werknemer kan worden geregistreerd als leerling/student in meerdere klassen en elke klas kan meerdere leerlingen/studenten bevatten.
U kunt een afgeleide hiërarchie maken die bijvoorbeeld leerlingen/studenten per klas weergeeft of de relatie omkeren en klassen weergeven die zijn gegroepeerd op leerling/student.
Opmerking
SQL Server 2016 (13.x) heeft afgeleide hiërarchie geïntroduceerd voor M2M-relaties. Deze mogelijkheid was niet beschikbaar vóór die versie.
Ga eerst naar de pagina voor afgeleid hiërarchiebeheer en maak een nieuwe afgeleide hiërarchie:
Voeg vervolgens niveaus toe aan de nieuwe afgeleide hiërarchie, beginnend vanaf de onderkant. In dit voorbeeld willen we studenten (werknemers) per klas laten groeperen. De entiteit Werknemer is daarom het bladniveau van de hiërarchie en wordt eerst toegevoegd:
In de bovenstaande schermopname ziet u dat de entiteit Werknemer wordt weergegeven onder Huidige niveaus in het midden als het enige niveau. In de voorbeeldweergave van de afgeleide hiërarchie aan de rechterkant ziet u een lijst met alle leden van de entiteit Werknemer. In de sectie Beschikbare niveaus aan de linkerkant ziet u welke niveaus boven op het huidige hoogste niveau (werknemer) kunnen worden toegevoegd. De meeste van deze zijn op domeinen gebaseerde kenmerken (DBA's) voor de entiteit Werknemer , met inbegrip van de afdeling DBA.
Vanaf SQL Server is er een nieuw type niveau dat M2M-relaties modelleert, bijvoorbeeld: Klasse (toegewezen via ClassRegistration.Student). De niveaunaam is uitgebreider dan de anderen om de extra informatie, die nodig is om de toewijzingsrelatie ondubbelzinnig te beschrijven, weer te spiegelen. Sleep dit niveau naar het niveau Werknemer in de sectie Huidige niveaus :
In de preview worden nu werknemers weergegeven die zijn gegroepeerd op de trainingsklassen waarvoor ze zijn geregistreerd. Omdat dit een M2M-relatie is, kan elk kind lid meerdere ouders hebben. In het bovenstaande voorbeeld is werknemer 6 {Hillman, Reinout N} geregistreerd als student in twee klassen, 1 {Master Data Services 101} en 4 {Career-Limiting Moves}.
Deze toewijzingsrelatie kan ook omgekeerd worden weergegeven, waarbij klassen per student gegroepeerd worden.
Ook hier ziet u hoe een kind onder meer dan één ouder kan worden weergegeven: trainingsklasse 1 {Master Data Services 101} wordt weergegeven onder zowel 6 {Hillman, Reinout N} als 40 {Ford, Jeffrey L}.
De leden van de toewijzingsentiteit ClassRegistration worden nergens in de afgeleide hiërarchie weergegeven. Ze worden alleen gebruikt om de relaties tussen ouder- en kindleden in de hiërarchie te definiëren.
U kunt de M2M-relatie bewerken door de leden van de koppelingsentiteit te wijzigen. Dit kan door een van de volgende handelingen uit te voeren. De M2M-relatie is alleen-lezen op de pagina Afgeleide Hiërarchie Explorer.
Wijzig de leden van de toewijzingsentiteit op de pagina Entity Explorer met behulp van de invoegtoepassing Master Data Services voor Excel of met behulp van gegevensfasering.
Versleep kindknooppunten tussen ouders op de pagina Afgeleide Hiërarchie Explorer.
Met deze methode worden bestaande leden indien mogelijk gewijzigd en worden indien nodig nieuwe leden toegevoegd. Bestaande leden worden niet verwijderd.
Als u bijvoorbeeld met de ClassRegistration-toewijzingsentiteit een student naar het ongebruikte knooppunt verplaatst, wordt de klasse-attribuutwaarde van het bijbehorende lid van de mapping entiteit gewijzigd in null en wordt het lid niet verwijderd. Als je een student van het ongebruikte knooppunt naar een klas verplaatst en er bestaat een bestaand toewijzingslid dat overeenkomt met de student waarbij de klas null is, dan wordt dat lid aangepast door de klas van null naar het nieuwe bovenliggende element te wijzigen. Als er geen dergelijk lid wordt gevonden, wordt er een toegevoegd.
Dit proces voorkomt dat leden worden verwijderd om ongewenste verwijdering van andere gebruikersgegevens te voorkomen, bijvoorbeeld als de toewijzingsentiteit andere kenmerken bevat dan de twee die de relatie tussen bovenliggende en onderliggende elementen definiëren. Gebruikers moeten verwijderingen expliciet direct uitvoeren op de koppelingsentiteit.
Het nieuwe M2M-niveau kan overal in een afgeleide hiërarchie voorkomen waar een DBA-niveau (domain-based attribute) is toegestaan. Een M2M-niveau kan bovenaan staan, zoals in de bovenstaande voorbeelden. Het kan boven en/of onder een DBA-niveau zijn, inclusief recursieve niveaus. Deze kan zich onder een expliciet hiërarchieniveau (afgeschaft) bevinden. Meerdere M2M-relaties kunnen worden gekoppeld in dezelfde afgeleide hiërarchie.
M2M-niveaus kunnen worden verborgen, net als andere afgeleide hiërarchieniveaus.
M2M-relatie in voorbeeldmodel
Bekijk voor een demonstratie van een M2M-relatie de afgeleide hiërarchie Regioklimaat in het voorbeeldmodel voor klanten dat is inbegrepen bij Master Data Services.
Zoals te zien in de volgende afbeelding, is de niveau naam die deze relatie modelleert
Klimaat (toegewezen via RegionClimate.Region). De
Preview toont regio's gegroepeerd op de typen klimaat waaraan ze zijn gekoppeld. Dit is een M2M-relatie omdat er regio's (kindleden) zijn die geassocieerd zijn met meerdere klimaten (ouders).
APCR {Asia Pacific} is bijvoorbeeld gekoppeld aan
A {Tropical} en
B {Dry}.
Zie Voorbeeldmodellen en -gegevens implementeren voor instructies voor het implementeren van het klantvoorbeeldmodel en andere voorbeeldmodellen die deel uitmaken van Master Data Services.
One-Many Relatie
Een lid van een DH kan ouder van veel kindleden zijn, maar het kan over het algemeen niet meer dan één ouder hebben (zie Ledenbeveiliging). Stel dat er twee entiteiten zijn: Werknemer en Afdeling, waarbij elke werknemer tot één afdeling behoort. Deze relatie wordt gemodelleerd door toe te voegen aan de entiteit Werknemer een op een domein gebaseerd kenmerk (DBA) dat verwijst naar de entiteit Afdeling:
Dit is een een-op-veel-relatie omdat elke werknemer tot slechts één afdeling behoort, maar elke afdeling kan meerdere werknemers hebben. Er kan een afgeleide hiërarchie worden gemaakt waarin werknemers worden gegroepeerd per afdeling:
Beveiliging van leden
Een hiërarchie die duplicatie van leden toestaat (een lid mag meer dan één bovenliggende hiërarchie hebben) kan niet worden gebruikt om autorisaties voor leden toe te wijzen. Voorbeeld:
Een recursieve afgeleide hiërarchie (RDH) die geen null-recursies verankert (elk lid op recursief niveau wordt weergegeven onder zowel ROOT als het recursieve bovenliggende element).
Een recursieve afgeleide hiërarchie met een niveau boven het recursieve niveau (elk lid van het recursieve niveau wordt weergegeven onder zowel het niet-recursieve bovenliggende als het recursieve bovenliggende niveau).
Een afgeleide hiërarchie met een M2M-niveau (een kind kan worden toegewezen aan veel ouders).
Verzamelingen
Verzamelingen en expliciete hiërarchieën worden afgeschaft. De opgeslagen conversieprocedure (udpConvertCollectionAndConsolidatedMembersToLeaf) converteert verzamelingsleden naar bladleden en maakt veel-op-veel afgeleide hiërarchieën om lidmaatschapsgegevens van verzamelingen vast te leggen.