Struktur und Abfragen der Datenbank für Funktionsorte (Funcloc)
Diese Sektion beschreibt die Tabellen und die SQL-Abfragen, die zur Ermittlung von Funktionsorten (Funcloc) auf Basis spezifischer Kriterien verwendet werden.
Beteiligte Tabellen und ihre Attribute
Nachfolgend sind die beteiligten Tabellen aufgeführt, die in den Abfragen verwendet werden:
- gis_flc_e (Entitätstabelle)
- id: Eindeutige Identifikationsnummer der Entität
- type_cat_id: Fremdschlüssel zur Kategorietabelle (gis_flc_tc)
- gis_flc_tc (Typ-Kategorietabelle)
- id: Eindeutige Identifikationsnummer des Typs
- name: Name der Kategorie (z.B. "Sicherheitsabsperrventil")
- gis_flc_a (Attribut-Tabelle)
- entity_id: Fremdschlüssel, der auf die Entitätstabelle (gis_flc_e) verweist
- attrib_type_cat_id: Fremdschlüssel zur Attribut-Typ-Kategorietabelle (gis_flc_atc)
- value: Wert des Attributs
- gis_flc_atc (Attribut-Typ-Kategorietabelle)
- id: Eindeutige Identifikationsnummer des Attributtyps
- name: Name des Attributtyps (z.B. "Rezertifizierung")
- type_cat_id: Fremdschlüssel zur Typ-Kategorietabelle (gis_flc_tc)
SQL-Abfragen zur Ermittlung von Funktionsorten
Nachfolgend sind die zunehmend komplexeren SQL-Abfragen dargestellt, die verschiedene Joins und Filterkriterien verwenden, um relevante Daten zu extrahieren:
-- Einfache Auswahl
SELECT tc.name FROM gis_flc_tc tc WHERE tc.name LIKE '%ventil%';
-- Erweiterte Joins
SELECT * FROM gis_flc_e e
JOIN gis_flc_tc tc ON e.type_cat_id = tc.id
WHERE tc.name LIKE '%ventil%' AND ROWNUM < 5;
Diese Abfrage verbindet Entitäten mit ihren Typen und filtert nach Typnamen.
-- Attribute einer spezifischen Entität
SELECT attrib.* FROM gis_flc_e e
JOIN gis_flc_a attrib ON attrib.entity_id = e.id
WHERE e.id = 3901808;
Hier werden alle Attribute einer spezifischen Entität angezeigt.
-- Verbindung von Attributen, Attribut-Typen und deren Kategorien
SELECT atc.ID, atc.name, atc.type, atc.type_cat_id, attrib.value, attrib.attrib_type_cat_id
FROM gis_flc_e e
JOIN gis_flc_a attrib ON attrib.entity_id = e.id
JOIN gis_flc_atc atc ON attrib.attrib_type_cat_id = atc.id
WHERE e.id = 3901808;
Diese Abfrage zeigt, wie Attribute über ihre Typen zu ihren Kategorien in Beziehung stehen und enthält auch die Werte der Attribute.
-- Optimale SQL-Abfrage (Hibernate)
SELECT f FROM Funcloc f
JOIN f.attributes attribs
WHERE f.typeCat.name = 'SAV'
AND attribs.attribTypeCat.name = 'Rezertifizierung'
AND trunc(:lastRenewalReminderLeadTimeEnd) < trunc(safe_to_date(attribs.value))
AND trunc(safe_to_date(attribs.value)) <= trunc(:renewalReminderLeadTimeEnd);
Diese Abfrage verknüpft die Funktionsorte (Funcloc) über ihre Attribute, wobei gefiltert wird nach Typ-Kategorienamen und Attribut-Typ-Kategorienamen. Sie nutzt zudem Datumsfunktionen, um zu ermitteln, welche Zertifizierungsdaten in einem spezifischen Zeitfenster ablaufen.
Zusammenfassung
Durch die Verwendung der beschriebenen Abfragen können relevante Funktionsorte/Fachobjekte/Funclocs basierend auf bestimmten Typ-Kategorien und Attributen effizient identifiziert und verwaltet werden. Die SQL-Abfragen nutzen Datumsfunktionen, um zu ermitteln, welche Zertifizierungsdaten in einem spezifischen Zeitfenster ablaufen, was für die Rezertifizierungsprozesse von entscheidender Bedeutung ist.