Variable Datenselektion für OLTP- und OLAP-Systeme

Werbung
Datenbanken
Variable Datenselektion
für OLTP- und OLAP-Systeme
Volker Ricke, POINT. Consulting GmbH
Wäre es nicht gut, eine wiederverwendbare Selektions-Komponente zu haben, die für beliebige Datenquellen eingesetzt
werden kann? Eine Antwort auf diese Fragen ist die im Rahmen eines Kundenprojekts entstandene Variable Selektion.
Wie oft haben Sie schon AbfrageDialoge für Ihren Kundenstamm geschrieben? Hier eine Suchmaske für
das Stammdaten-Modul, dort eine
Parametermaske für die Ausgabe von
Reports, dann noch ein Filter für Data-Warehouse-Auswertungen? Wie oft
haben Sie an mehreren Stellen Programmänderungen vornehmen müssen, nachdem ein wichtiges neues Kriterium gefordert wurde?
Für die Entwicklung neuer Planungs- und Auswertungssysteme hatte
ein Unternehmen großen Bedarf an
fein granulierten Abfragemöglichkeiten über Stamm- und Bewegungsdaten. Abfragen sollten vom Anwender
gespeichert und wieder verändert werden können, ihre Ergebnisse sowohl
in Online-, als auch in Batchprogrammen zur Verfügung stehen. Zusätzlich
geforderte Abfragemöglichkeiten und
Strukturänderungen an den abgefragten Tabellen waren möglichst ohne
Programmieraufwand zu implementieren.
Zielplattform war zunächst die für
die OLTP-Systeme genutzte Oracle
Datenbank, als Clients waren .NET
Windows Forms-Applikationen vorgesehen, die auch als Parameter-Formen
für Crystal-Reports dienen sollten.
Stand zunächst nur die Selektion von
Kundendaten im Fokus, wurde die Variable Selektion in der Folgezeit auch
zur Definition von Berechtigungsgruppen im HR-Bereich sowie mit
Konsumenten-Daten im KampagnenManagement eingesetzt. Auch in die
Data-Warehouse-Welt schaffte die Variable Selektion den Sprung, hier wurde sie als vorgeschalteter Datenfilter
für multidimensionale Analysen integriert.
30 | www.doag.org
Die Idee hinter der Variablen Selektion
Die Variable Selektion wird über Metadaten konfiguriert, die in einem Datenbank Repository gespeichert sind. In
ihnen ist definiert, was grundsätzlich
selektiert werden kann (Selektionsquelle) und wie es sich dem Anwender
gegenüber darstellen soll (Selektionssicht). Dank der Trennung von Quelle
und Sicht muss eine Datenbasis nur
einmal in der Quelle eingepflegt werden, während die je nach Einsatzzweck
wechselnden Anforderungen an Auswahl und Anordnung der abfragbaren
Felder in den Sichten berücksichtigt
sind.
Der Anwender speichert seine Abfragen als Selektionsregeln ebenfalls
in der Datenbank, die Regeln lassen
sich somit sowohl von Dialoganwendungen, als auch von Batchprozessen
verwenden. Aus den eingestellten Regeln und den Metadaten werden zur
Laufzeit SQL-Abfragen generiert und
als Ergebnismenge ausgegeben. Zum
Erstellen der Selektionsregeln und für
die Pflege der Metadaten existieren
Dialoganwendungen, das Generieren der dynamischen SQL Statements
und Bereitstellen der Ergebnismengen
übernimmt ein PL/SQL DatenbankPackage.
Selektionsquellen, Attribute
und Lookups
Herzstück der Variablen Selektion ist
die Selektionsquelle. Im einfachsten
Fall basiert sie auf einer Tabelle mit
einer Schlüsselspalte, die für die Selektion als Rückgabewert definiert ist.
Auch Views, Materialized Views oder
frei formulierte SQL-Abfragen können
eine Quelle bilden.
Abfragefähige Spalten oder Single
Row Functions sind als Selektionsattribute definiert, in denen neben dem
Abbildung: Informationsstruktur der Variablen Selektion
Datenbanken
Datentyp auch die Darstellung im Abfragedialog (Eingabefeld, Checkbox,
Liste etc.) oder eventuelle Formatmasken hinterlegt sind. Zur Anzeige von
Auswahllisten oder zur Validierung
von Suchkriterien lassen sich Lookups
definieren und mit Attributen verknüpfen. Aus der bisher beschriebenen Wurzel-Quelle wird das treibende
SQL für die Abfrage generiert. Es können mit ihr per JOIN-Kriterium noch
weitere Quellen verknüpft sein, deren
Attribute in eine spätere Abfrage per
Subselect eingebunden sind.
Selektionssichten
Ist in der Selektionsquelle erst einmal
die Datenbasis definiert (zum Beispiel
der OLTP-Kundenstamm mit seinen
Detail-Tabellen und einigen Bewegungsdaten), wird in den Selektionssichten zusammengestellt, welche
Attribute den Anwendern in den unterschiedlichen Anwendungen zur Suche angeboten und in welcher Struktur
sie dargestellt werden sollen. Bindet
eine Applikation die Variable Selektion
ein, verweist sie immer auf eine solche
Selektionssicht. Die selektierbaren Attribute können in der Sicht nach fachlichen Aspekten und unabhängig von
der ursprünglichen Datenbankstruktur
in einer Baumstruktur organisiert und
bezeichnet werden.
Die angebotenen Abfragekriterien
lassen sich so einfach dem jeweiligen
Anwendungszweck anpassen – der
Anwender erhält nur die gerade sinnvollen Kriterien angeboten, bei abweichendem Fachvokabular können
die Attribute unterschiedlich benannt
werden. Mit der Option einer StandardWHERE-Klausel lässt sich die Ergebnismenge der Sicht weiter einschränken,
per Verknüpfung mit einer VorschauDefinition sind Felder für einen Export
freischaltbar.
Die Selektionsregel enthält die Informationen, welche Attribute mit welchen Bedingungen (zum Beispiel „=“,
„LIKE“, „>(=)“, „<(=)“, „BETWEEN“,
„IN“ oder „IS (NOT) NULL“) und Werten der Anwender aus einer Selektionssicht abfragt. Die einzelnen Kriterien
können „UND“-, „UND NICHT“- oder
„ODER“-verknüpft sein. Auch bereits
zur gleichen Sicht gespeicherte Regeln
lassen sich hier einbinden und somit
wiederverwenden.
Variable Selektion aus Anwendersicht
Der Anwender kann den Selektionsdialog einerseits direkt starten und auswählen, über welche der verfügbaren
Sichten er eine Selektion öffnen oder
erstellen möchte.
Andererseits kann er per „Variable
Selektion“-Schaltfläche aus einer Partner-Applikation heraus, aber auch direkt in die passende Sicht wechseln
und eine Regel erstellen, deren Ergebnis er anschließend in seiner Applikation zum Filtern der Daten verwenden
kann. Zur Plausibilitätskontrolle kann
im Selektionsdialog die Anzahl der
Treffer angezeigt werden. Außerdem
steht eine in Excel exportierbare Vorschau der Daten zur Verfügung, über
die so ein eigenes Ad-hoc-Reporting
möglich ist.
Eine Selektionsregel ist standardmäßig privat, ihr Eigentümer kann sie
aber anderen Benutzern freischalten.
In den meisten Projekten wurden die
ein bis zwei gängigsten Abfragefelder innerhalb der Applikation implementiert, während die Variable Selektion als erweiterter Filter angeboten
wird.
Variable Selektion
aus Administratorsicht
Der größte Administrationsaufwand
besteht im Einrichten der Datenquellen. Hier spielt natürlich eine Rolle,
wie aktuell die abgefragten Daten sein
sollen. Greifen die Datenquellen in der
OLTP-Welt üblicherweise direkt auf die
relationalen Tabellen der operativen
Systeme zu, wird in der OLAP-Welt
meist auf leichter auswertbare Materialized Views zurückgegriffen. Da
die Datenquellen und ihre Verknüpfungen per SQL-Syntax definiert sind,
können sie aber auch nachträglich
umkonfiguriert und optimiert werden.
Das Administrationsmodul bietet Unterstützung beim Import von Tabellen- und Spaltendefinitionen sowie der
Spaltenkommentare in das Repository
der Variablen Selektion an. JOIN-Krite-
rien lassen sich aus bestehenden Foreign Key Constraints heraus ebenfalls
generieren. Im Konfigurationsdialog
für die Datenquellen können auch die
Lookups definiert und Attributen zugeordnet werden.
Setzt die Definition der Selektionsquellen noch gute SQL-Kenntnisse und
Wissen über die Datenbank-Strukturen
voraus, können Power-User oder der
Application-Support die Selektionssichten auch pflegen. Für die Sichten
steht daher ein eigener Konfigurationsdialog zur Verfügung. Hier werden die
aus einer Datenquelle benötigten Attribute zur Verfügung gestellt, in Ordnern gruppiert und – falls gewünscht
– umbenannt.
Variable Selektion aus Entwicklersicht
Dem Entwickler stehen PL/SQL- und
.NET-Schnittstellen zur Verfügung.
Über die .NET-Schnittstellen bindet er
die Variable Selektion in seinen Client
ein, per PL/SQL können Datenbankprozeduren auf Selektionsergebnisse
zugreifen. Existiert bereits die für ein
neues Projekt passende Quelle, muss
der Entwickler sie nur noch um möglicherweise zusätzlich benötigte Attribute erweitern und initial eine neue
Sicht definieren. Spätere Erweiterungen werden durch den Administrator
eingepflegt, eine Programmänderung
ist nicht erforderlich.
Fazit
Zwischen 2004 und 2008 ist die Variable Selektion mit den Projekten
gewachsen und wird in vielen seiner
Systeme als zentrale Suchkomponente eingesetzt. Der zunächst hohe Aufwand zur Entwicklung einer generischen, deklarativen Lösung hat sich
gelohnt. Als „Abfallprodukt“ ist mit
der konfigurierbaren Vorschau der Variablen Selektion ein intensiv genutztes
Ad-hoc-Reporting-Werkzeug entstanden.
Kontakt:
Volker Ricke
[email protected]
DOAG News Q3-2009 | 31
Herunterladen