<< Click to Display Table of Contents >> Navigation: »No topics above this level« Dynamische n:m-Beziehungen |
Um schnell und einfach durch die ganze Datenbank zu navigieren oder auch um sofort ohne Umwege schnell z.B. die Auswirkungen von Änderungen an CIs oder Auswirkungen von Störungen zu identifizieren, können sog. dynamische n:m-Beziehungen oder auch indirekte Beziehungen zwischen Tabellen definiert werden, zwischen denen keine direkte Beziehung besteht - wie z.B. Domäne und Produkte oder IT- bzw. Business-Services und IT-Infrastrukturkomponente (Switch HUB etc.).
Die dynamischen n:m-Beziehungen werden beim Aufruf der Beziehung immer neu erstellt und daher auch nicht physisch abgespeichert.
Die dynamischen n:m-Beziehungen können nicht bearbeitet, sondern nur ausgewertet werden, z.B. aus dem Kontextmenü oder eingebunden im Explorer.
Beispiel: Domäne 🡪 Produkte (über Rechner)
select distinct DOM_ID as $n, HWMPPD_PPD_ID as $m from DOM inner join HWM on HWM_DOM_ID=DOM_ID inner join HWMPPD on HWMPPD_HWM_ID=HWM_ID where HWMPPD_ZD_ID = 0 and HWMPPD_MDT_ID=1
|
Die Definition muss immer zwei Spalten zurückgeben und die zwei Spalten müssen $n und $m Aliase haben.
Benutzung von benutzerdefinierten Funktionen bei der Definition von dynamischen n:m-Beziehungen:
Bei der Definition von dynamischen Beziehungen können auch benutzerdefinierte Funktionen genutzt werden, weil z.B. sonst die Definition unübersichtlich oder zu kompliziert wird.
siehe auch Benutzerdefinierte Funktionen
select n_id as $n, m_id as $m from dbo.fnc_user_GetMatrix_STOtoHWM()
|
Definition der benutzerdefinierten Funktion „fnc_user_GetMatrix_STOtoHWM“:
create function dbo.fnc_user_GetMatrix_STOtoHWM() returns @return table(n_id int, m_id int) as begin declare @mdtid int declare @matrix table(parentid int,childid int) declare @new table(parentid int,childid int)
set @mdtid=1
insert @matrix select STO_ID, STO_ID from STO where STO_MDT_ID=@mdtid
while 1 = 1 begin delete from @new
insert @new select ret.parentid, STO_ID from @matrix ret inner join STO on STO_MDT_ID=@mdtid and STO_STO_ID=ret.childid and STO_STO_ID<>0
delete @new from @new new inner join @matrix ret on ret.parentid=new.parentid and ret.childid=new.childid
if not exists (select parentid from @new) break insert @matrix select parentid,childid from @new end
|
Erstellen / Bearbeiten von individuellen Beziehungsketten
Name
Name der dynamischen Beziehung, der zu Auswertungszwecken aus dem Kontextmenü aufgerufen werden kann bzw. im Explorer genutzt wird.
n-Tabelle und m-Tabelle
Gibt an, zwischen welchen Tabellen eine dynamische (indirekte) Beziehung erstellt werden soll.
Kontext-Untermenü
Zuordnung der Beziehung zu einem Kontext-Untermenü.
Neu: Anlegen eines neuen Kontext-Untermenüs
Durch die Zuordnung der Beziehungen zu einem Kontext-Untermenü wird im Webinterface eine weitere Detailtiefe für die Auswahl der Beziehungen im Kontextmenü erstellt (Drill Down).
Beziehungstyp
Gibt die Art des Beziehungstyps an. Diese Angabe kann bei der Festlegung von Art und Umfang der zu analysierenden Beziehungen für die unterschiedlichen Analysen wie z.B. Impact-Analyse, Fehlerursachenanalyse etc., herangezogen werden (siehe auch Analysestrukturen).
Neu: Anlegen eines neuen Beziehungstyps
Beschreibung
Dokumentation / Beschreibung der dynamischen Beziehung
Button „benutzerdefinierte Funktion“
Auswahl von benutzerdefinierten Funktionen
Beziehungskette generieren
siehe auch Maske „Assistent - Beziehungskette“
Assistent – Beziehungskette
Über den Button „Tabelle anbinden“ lässt sich durch die Vorlage der möglichen Tabellen schnell und einfach die Beziehungskette von Tabellen zusammenstellen, die für die Generierung des SQL-Scripts erforderlich sind.
Button „Testen“
Testet das SQL-Script und zeigt eine Liste von n- und m-Objekten