Dynamische n:m-Beziehungen

<< 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