Masterarbeit Regelsysteme zur Datenqualitäts

Werbung
..
..
....
...........
..
............
...
...
..
Regelsysteme zur Datenqualitätsverbesserung medizinischer
Informationssysteme: Frontend
..
...
....
............
Masterarbeit
Mihael Gorupec
............
....
...
..
Lehrstuhl für Informatik 6
(Datenmanagement)
Department Informatik
Technische Fakultät
Friedrich AlexanderUniversität
Erlangen-Nürnberg
..
.
..
..
..
..
..
..
..
..
...
..
.
...
...
...
...
...
..
....
..
.
.
....
.
...
....
...
....
......
.....
.......
......
........
.......
.
.
.
.
.
.
.........
.
.............
.........
......................................................
Regelsysteme zur Datenqualitätsverbesserung medizinischer
Informationssysteme: Frontend
Masterarbeit im Fach Informatik
vorgelegt von
Mihael Gorupec
geb. 13.03.1987 in München
angefertigt am
Department Informatik
Lehrstuhl für Informatik 6 (Datenmanagement)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Betreuer: Prof. Dr. Richard Lenz
Dipl.-Inf. Gregor Endler
Beginn der Arbeit: 07.03.2013
Abgabe der Arbeit: 31.01.2014
Erklärung zur Selbständigkeit
Ich versichere, dass ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer als der
angegebenen Quellen angefertigt habe und dass diese Arbeit in gleicher oder ähnlicher
Form noch keiner anderen Prüfungsbehörde vorgelegen hat und von dieser als Teil einer
Prüfungsleistung angenommen wurde. Alle Ausführungen, die wörtlich oder sinngemäß
übernommen wurden, sind als solche gekennzeichnet.
Der Universität Erlangen-Nürnberg, vertreten durch den Lehrstuhl für Informatik 6
(Datenmanagement), wird für Zwecke der Forschung und Lehre ein einfaches, kostenloses, zeitlich und örtlich unbeschränktes Nutzungsrecht an den Arbeitsergebnissen der
Masterarbeit einschließlich etwaiger Schutzrechte und Urheberrechte eingeräumt.
Erlangen, den 31.01.2014
(Mihael Gorupec)
Kurzfassung
Regelsysteme zur Datenqualitätsverbesserung
medizinischer Informationssysteme: Frontend
In dieser Arbeit wurde die Bedeutung von Datenqualität analysiert und untersucht wie
diese gemessen und verbessert werden kann. Dazu wurde auf Basis von TDQM ein
konkretes Konzept herausgearbeitet und hinsichtlich seiner praktischen Umsetzbarkeit
bewertet.
Als Referenz wurde in dieser Arbeit der Kontext medizinischer Versorgungszentren angenommen. Eine Analyse von Referenzunternehmen aus diesem Bereich zeigte erhebliche
Mängel in der Verfolgung effektiver Datenqualitätsstrategien auf. Zur Verbesserung dieses
Zustands wurde prototypisch ein Datenqualitätswerkezug konzipiert, dass Anwendern,
ohne informatischem Fachwissen, ermöglicht eigenständig Datenqualitätsregeln aufzustellen. Das Werkzeug erlaubt die Integrierung von in den Referenzunternehmen bestehenden
sowie die Formulierung von neuen komplexeren Regeln. Es ermöglicht eine kontinuierliche und automatisierte Überprüfung der Datenqualitätsregeln, die Spezifizierung von
Aktionen bei Erfüllung der Regeln sowie die Betrachtung regelverletzender Datensätze.
Durch die fortlaufende Überwachung wird ein erneutes unbemerktes Absinken der Qualität verhindert und eine nachhaltige Verbesserung der Datenqualität ermöglicht. Das
Werkzeug bietet den Anwendern in allen Phasen des TDQM Unterstützung und trägt so
zu einem effektiven Datenqualitätsmanagement bei.
Abstract
Rule systems for data quality improvement of
medical informationsystems: Frontend
This thesis analyzed the importance of data quality and described methods for its
assessment and improvement. A concrete concept for the improvement of data quality
was developed on the basis of TDQM and evaluated according to its practicability.
The context of medical supply centers was assumed as practical reference for this
thesis. Analysis of representative organizations in the mentioned area showed significant
challenges with data quality problems and a lack of effective data quality policies. A
prototypical application was developed as part of this thesis, to propose a solution to
the aforementioned problems in the analyzed medical supply centers. The developed
data quality tool enables users without computer science background to specify data
quality rules. It allows the integration of existing data quality rules in the representative
organizations as well as the specification of more complex new rules. It further allows for
a continuous monitoring of data quality, the definition of actions triggered by violation of
the rules, as well as the inspection of rule-violating data records. This approach prevents
a new unnoticed regression and allows for a sustainable improvement of data quality.
The tool provides support in all phases of TDQM and contributes to an effective data
quality management.
Inhaltsverzeichnis
1 Einführung
1.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Datenqualität in medizinischen Informationssystemen . . . . . . . . . . .
1.3 Methodik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Datenqualität
2.1 Dimensionen . . . . . . . . . . . . . . . .
2.1.1 Genauigkeit . . . . . . . . . . . .
2.1.2 Vollständigkeit . . . . . . . . . .
2.1.3 Konsistenz . . . . . . . . . . . . .
2.1.4 Zeitbezogene Dimensionen . . . .
2.1.5 Weitere Dimensionen . . . . . . .
2.1.6 Zusammenfassung . . . . . . . . .
2.2 Managementansätze . . . . . . . . . . .
2.2.1 Total Data Quality Management
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Regelsysteme
3.1 Business Rules . . . . . . . . . . . . . . . . . .
3.2 Regelbasierte Systeme . . . . . . . . . . . . .
3.2.1 Architektur . . . . . . . . . . . . . . .
3.2.2 Bewertung von regelbasierten Systemen
3.3 Regeln in Relationalen Datenbanken . . . . .
3.3.1 Schlüsselintegrität . . . . . . . . . . . .
3.3.2 Referenzielle Integrität . . . . . . . . .
3.3.3 Typintegrität . . . . . . . . . . . . . .
3.3.4 CHECK-Beschränkungen . . . . . . . .
3.3.5 Assertions . . . . . . . . . . . . . . . .
3.3.6 Aktive Regeln . . . . . . . . . . . . . .
3.4 Regeln in NoSQL Datenbanken . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
.
.
.
.
.
.
.
.
.
5
5
6
7
8
8
9
10
11
12
.
.
.
.
.
.
.
.
.
.
.
.
15
15
16
17
19
20
22
22
23
24
24
25
28
I
4 Datenqualitätsverbesserung
4.1 Definition und Messung von Datenqualität . . . . . . . .
4.1.1 Auswahl von Dimensionen . . . . . . . . . . . . .
4.1.2 Metriken zur Messung von Datenqualität . . . . .
4.1.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Analyse und Verbesserung von Datenqualität . . . . . . .
4.2.1 Maßnahmen zur Verbesserung von Datenqualität
4.2.2 Verbesserung von Datenqualitätsdimensionen . .
4.3 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . .
5 Entwicklung eines Prototypen
5.1 Anforderungsanalyse . . . . . . . . . . .
5.1.1 Fragebögen . . . . . . . . . . . .
5.1.2 Interviews . . . . . . . . . . . . .
5.1.3 Funktionale Anforderungen . . .
5.1.4 Nicht Funktionale Anforderungen
5.2 Architektur . . . . . . . . . . . . . . . .
5.2.1 Programmiersprache . . . . . . .
5.2.2 Grobarchitektur . . . . . . . . . .
5.2.3 Anfragehandling . . . . . . . . .
5.2.4 Regelerstellung und Verwaltung .
5.2.5 Regelmonitoring und Ausführung
5.2.6 Benutzerschnittstelle . . . . . . .
5.3 Evaluation . . . . . . . . . . . . . . . . .
5.3.1 Funktionsanalyse . . . . . . . . .
5.3.2 Laufzeitanalyse . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
29
30
31
39
40
40
48
50
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
53
53
55
56
58
59
60
60
63
64
66
70
74
75
77
6 Zusammenfassung und Ausblick
85
Literaturverzeichnis
87
Abbildungsverzeichnis
2.1
Der TDQM-Kreis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.1
3.2
Architektur eines Regelsystems . . . . . . . . . . . . . . . . . . . . . . .
Ein Fremdschlüsselverweis . . . . . . . . . . . . . . . . . . . . . . . . . .
17
23
4.1
4.2
Maßnahmen Portfolio [Red97] . . . . . . . . . . . . . . . . . . . . . . . .
Das Verbesserungs-Konzept . . . . . . . . . . . . . . . . . . . . . . . . .
47
50
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
Vorkommen von Datenqualitätsproblemen . . . . . . . . . .
Auswirkungen von Datenqualitätsproblemen . . . . . . . . .
Eine Regel im medizinischen Versorgungszentrum . . . . . .
Das MVC-Architekturmuster [Wik] . . . . . . . . . . . . . .
Grobarchitektur . . . . . . . . . . . . . . . . . . . . . . . . .
Anfragehandling . . . . . . . . . . . . . . . . . . . . . . . . .
Aufbau von Regeln . . . . . . . . . . . . . . . . . . . . . . .
Regelerstellung . . . . . . . . . . . . . . . . . . . . . . . . .
Regelmonitoring . . . . . . . . . . . . . . . . . . . . . . . . .
Quartzmanagement . . . . . . . . . . . . . . . . . . . . . . .
Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . . .
Die Formulierung der Kondition . . . . . . . . . . . . . . . .
Das Spezifizieren einer Aktion . . . . . . . . . . . . . . . . .
Ein Validierungsfehler . . . . . . . . . . . . . . . . . . . . .
Regelerstellung . . . . . . . . . . . . . . . . . . . . . . . . .
Laufzeit bei 100 Regeln (SQL-basiert) . . . . . . . . . . . . .
Laufzeit bei 300.000 Tupeln (SQL-basiert) . . . . . . . . . .
Dauer der Faktenbasis-Initialisierung . . . . . . . . . . . . .
Laufzeit bei 100 Regeln (Drools-basiert) . . . . . . . . . . .
Laufzeit bei 10.000 Tupeln (Drools-basiert) . . . . . . . . . .
Speicherauslastung der JVM bei 100 Regeln (Drools-basiert)
Vergleich der Laufzeiten bei 100 Regeln . . . . . . . . . . . .
54
54
56
61
62
63
64
65
66
68
71
72
73
73
74
79
79
80
80
81
82
82
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
III
5.23 Vergleich der Laufzeiten bei 10.000 Tupeln . . . . . . . . . . . . . . . . .
83
Tabellenverzeichnis
2.1
Datenqualitätsdimensionen nach Wang und Strong [WS96] . . . . . . . .
10
4.1
Voraussetzungen für die Messbarkeit von Datenqualitätsdimensionen
. .
39
5.1
5.2
5.3
Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Logische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Andere Möglichkeiten bei der Formulierung von Konditionen . . . . . . .
75
76
76
V
Abkürzungsverzeichnis
API
Application Programming Interface
Ajax
Asynchronous JavaScript and XML
ACID
Atomicity, Consistency, Isolation, Durability
DBMS
Datenbankmanagementsystem
ECA
Event-Condition-Action
JVM
Java Virtual Machine
MVC
Model-View-Controller
SMTP
Simple Mail Transfer Protocol
TDQM
Total Data Quality Management
TIQM
Total Information Quality Management
VII
1 Einführung
Elektronische Daten sind heutzutage allgegenwärtig und spielen eine kritische Rolle bei
der Planung von Strategien und dem Treffen von Entscheidungen sowohl in wirtschaftlichen, wissenschaftlichen als auch in staatlichen Bereichen [BCFM09]. Datenqualität
hat weitreichende Bedeutung für die Effizienz und Effektivität von Organisationen und
Unternehmen [BS06]. Damit verbunden ist die zunehmende Bedeutung in der Bewertung
und Sicherstellung von Qualitätsstandards in Zusammenhang mit elektronischen Daten.
Trotz der offensichtlichen Wichtigkeit von elektronischen Daten geht aus einer Studie
der Omikron Data Quality GmbH hervor, dass sich in den Kundendaten der meisten
Unternehmen Fehler im großen Umfang verbergen [Omi07]. An der Studie aus dem
Jahre 2007 nahmen 400 Unternehmen mit mehr als 50 Millionen Euro Jahresumsatz
teil. Die Hälfte der Befragten gab eine Fehlerquote von mindestens 20% an. Bei jedem
sechsten Unternehmen überstieg die Fehlerquote dabei 30%. Nur 7% der Teilnehmer
gaben an, vollständige und fehlerfreie Kundeninformationen zu besitzen. Als Grund
für diesen Zustand wurde an erster Stelle, unter rund 70% der Befragten, mangelndes
Datenqualitätsbewusstsein genannt. An zweiter Stelle lag mit rund 66% Nennungen das
Nichtvorhandensein einer zentralen verantwortlichen Instanz für Datenpflege. Mit 60%
als drittwichtigster Grund wurde das Nichtvorhandensein technischer Lösungen für eine
automatisierte Datenpflege angegeben.
Diese Ergebnisse zeigen, dass große Defizite bei der Einhaltung von Datenqualitätsstandards bestehen. Dabei können Datenqualitätsfehler bedeutende Folgen nach sich
ziehen. Allein in den USA verursachen Datenqualitätsprobleme jährlich Kosten in Höhe
von 600 Milliarden Dollar [Eck02].
1.1 Zielsetzung
Aufgrund der beschriebenen Problematik soll im Rahmen dieser Arbeit ein Konzept zur
Messung und Verbesserung von Datenqualität gefunden werden sowie ein Datenqualitätswerkzeug zur automatisierten Datenpflege entworfen und implementiert werden.
1
1 Einführung
Dabei werden medizinische Informationssysteme als Domäne angenommen. Das Datenqualitätswerkzeug wird daher speziell auf die Anforderung dieses Bereiches angepasst.
Der Bezug auf medizinische Informationssysteme ist allerdings beispielhaft zu verstehen.
Das zu entwickelnde Konzept und das Datenqualitätswerkzeug sollen auch in anderen
Kontexten unter minimalen Anpassungen anwendbar sein.
Die spezifische Problematik der Datenqualität in medizinischen Informationssystemen
soll folgend kurz vorgestellt werden.
1.2 Datenqualität in medizinischen
Informationssystemen
Im Gesundheitswesen besteht der gegenwärtige Trend des Zusammenschließens mehrerer individueller Praxen zu medizinischen Versorgungszentren [HAE09]. Dies hat die
Erhöhung der Konkurrenzfähigkeit zum Ziel. Die Versorgungszentren können durch die
Zusammenlegung von Ressourcen unter anderem Kosten einsparen und Kunden einen
vielfältigeren Service anbieten [EBL13].
Diese Zusammenschlüsse führen zu der Notwendigkeit einer zentralen administrativen Instanz, den Praxismanagern. Praxismanager sind für die Ressourcenplanung
und Unternehmenssteuerung verantwortlich. Außer an das Personal ergeben sich auch
neue Herausforderungen an die informationstechnologische Infrastruktur. Praxismanager benötigen für ihre Aufgaben einen einheitlichen Blick auf alle Daten der einzelnen
Verbundspartner. Durch die Zusammenführung von heterogenen Daten aus unterschiedlichen Quellen ergeben sich aber Herausforderungen bei der Einhaltung von gemeinsamen
Datenqualitätsstandards.
Erschwerend kommt hinzu, dass es in der informationstechnologischen Landschaft
von medizinischen Versorgungszentren zu ständigen Änderungen kommt. Durch die
Hinzunahme von neuen Mitgliedern, durch Änderungen von Budgets und Verträgen oder
durch neue Gesetzgebung müssen Datenqualitätsanforderungen ständig neu evaluiert
und angepasst werden [ELPL11, End12].
Diese speziellen Gegebenheiten müssen im Rahmen dieser Arbeit und im Besonderen
bei der Entwicklung des Datenqualitätswerkzeugs berücksichtigt werden.
2
1.3 Methodik
1.3 Methodik
Die Arbeit ist in einen theoretischen sowie einen praktischen Teil gegliedert.
Im ersten Teil der Arbeit wird die vorliegende Problemstellung aus einem theoretischen Blickwinkel betrachtet. Es wird eine Literaturrecherche durchgeführt, um ein
grundlegendes Verständnis über die Gebiete der Datenqualität und der Regelsysteme zu
schaffen. Basierend auf den durch die Literaturrecherche gewonnenen Erkenntnissen wird
anschließend ein theoretisches Konzept zur Messung und Verbesserung von Datenqualität
beschrieben und bewertet.
Der zweite Teil der Arbeit beschäftigt sich mit dem Entwurf und der prototypischen
Implementierung einer Software-Applikation zur Messung und Verbesserung von Datenqualität in der Domäne medizinischer Versorgungszentren.
Dazu werden anfangs Fragebögen ausgewertet und Interviews mit verantwortlichen
Personen aus Referenzunternehmen geführt, um bestehende Datenqualitätsmängel und
bestehende Maßnahmen zur Behandlung dieser zu identifizieren. Aus den gewonnenen
Informationen werden anschließend funktionale sowie nicht funktionale Anforderungen
an das zu entwickelnde Werkzeug abgeleitet. Nach Ableitung der Anforderungen folgen
der Entwurf sowie die praktische Implementierung des Werkzeugs. Abgeschlossen wird
die Arbeit mit einer Evaluation des entwickelten Werkzeugs.
3
2 Datenqualität
Datenqualität wird oft als fitness for use definiert, d.h. die Eigenschaft einer Datenmenge,
den Ansprüchen ihrer Benutzer zu genügen [WZL01, SMB05]. Datenqualität spielt eine
zunehmend wichtige Rolle sowohl in kommerziellen als auch staatlichen Bereichen. So
wurden von verschiedenen Regierungen zahlreiche Initiativen gestartet, die Datenqualitätsverbesserung im Vordergrund haben, wie die Richtlinie 2003/98/EG des europäischen
Parlaments zur „Weiterverwendung von Informationen des öffentlichen Sektors“ [Eur03]
oder die Verabschiedung des „Data Quality Act“ der US-Amerikanischen Regierung im
Jahre 2002 [Off06, BCFM09, SMB05].
Dies liegt in den hohen Kosten und Problemen begründet, welche durch mangelnde Datenqualität verursacht werden. Fehler, die durch Datenqualitätsprobleme hervorgerufen
werden, reichen von der Verursachung von zusätzlichen Kosten durch das doppelte Zustellen von Werbebriefen, durch Duplikate in einer Kundendatenbank bis zu schwerwiegenden
Katastrophen wie dem Absturz des „Space Shuttle Challenger“ [FK01].
Angesichts dessen ist es offensichtlich, dass die Verbesserung und die Kontrolle von
Datenqualität einen hohen Stellenwert haben. Um Datenqualität verbessern zu können muss es allerdings möglich sein, diese zu messen und effektiv zwischen validen
und invaliden Daten zu unterscheiden. Da Daten allerdings sehr divers sind und in
verschiedenen Formaten und Zusammenhängen vorkommen, ist es oftmals schwierig zu
definieren was Datenqualität ausmacht [Los02]. Verstärkt wird dieses Problem durch den
Trend des vermehrten Zusammenschließens von ehemals monolithischen Datenquellen zu
netzwerkartigen Systemen im Bereich der Informationssysteme [BCFM09, SMB05].
Durch Aufteilung des komplexen Begriffs der Datenqualität in Dimensionen, welche
verschiedene Facetten dieses Begriffs beschreiben, wird dieses Konzept greifbarer und
leichter messbar [CFP04].
2.1 Dimensionen
Forschungen haben gezeigt, dass es sich bei Datenqualität um ein mehrdimensionales
Konzept handelt. Eine Dimension beschreibt eine bestimmte Facette des Datenqualitäts-
5
2 Datenqualität
begriffs [CFP04]. Verschiedene Dimensionen beschreiben verschiedene messbare Bereiche
der Datenqualität [Los10, S.130]. In der Literatur wurden zahlreiche Dimensionen erkannt
und klassifiziert. Allerdings herrscht kein Übereinkommen darüber, welche Dimensionen den Datenqualitätsbegriff definieren sowie über die Definition der Dimensionen
selbst. Durch Betrachtung der Literatur können dennoch grundlegende Dimensionen
erkannt werden, welche von zahlreichen Autoren schwerpunktmäßig behandelt wurden
[BCFM09, SMB05]. Diese sollen im Folgenden vorgestellt und charakterisiert werden.
2.1.1 Genauigkeit
Der Begriff der Datenqualität wird häufig nur auf die Dimension der Genauigkeit reduziert.
Dies sind beispielsweise Schreibfehler oder schlichtweg falsche Daten, wie ein falsches
Geburtsdatum oder eine falsche Adresse. Die Dimension der Genauigkeit alleine reicht
aber nicht aus, um Datenqualität vollständig zu beschreiben [SMB05]. Folgend ein
Überblick über eine Auswahl von Definitionen der Dimension der Genauigkeit:
• „The extent to which data are correct, reliable and certified [WS96].“
• „Data are accurate when the data values stored in the database correspond to
real-world values [BP85].“
• „Measure of the proximity of a data value, v, to some other value, v’, that is
considered correct [Red97].“
Bei den obigen Definitionen lässt sich eine grundlegende Übereinstimmung erkennen.
Im Kontext einer relationalen Datenbank ist Genauigkeit demzufolge der Grad, zu dem
Daten mit ihren Entsprechungen in der realen Welt übereinstimmen.
Genauigkeit kann in zwei verschiedene Kategorien aufgeteilt werden: syntaktische und
semantische Genauigkeit. Syntaktische Fehler sind beispielsweise Tippfehler. Semantische
Fehler hingegen sind schlichtweg falsche Werte, wie etwa eine nicht mehr existierende
Telefonnummer oder ein falsches Alter in einer Tabelle, die Personendaten beschreibt. Ein
Wert kann syntaktisch genau, aber semantisch falsch sein. Dies wäre ein grammatikalisch
genauer Wert für einen Namen, der aber von dem Namen der zu beschreibenden Person
in der realen Welt abweicht, beispielsweise „Franz“ anstatt „Peter“. Genauso kann ein
Wert semantisch genau, aber syntaktisch falsch sein. Dies wäre, um beim obigen Beispiel
zu bleiben, wenn zwar der richtige Name der Person aufgezeichnet wurde, aber ein
Tippfehler bei der Speicherung des Namens unterlaufen ist, dementsprechend „Petr“
anstatt „Peter“.
6
2.1 Dimensionen
2.1.2 Vollständigkeit
Bei der Betrachtung von Definitionen der Vollständigkeit von verschiedenen relevanten
Autoren, kann im Wesentlichen ebenfalls ein Konsens erkannt werden. Folgend ein
Überblick über eine Auswahl von Definitionen:
• „Ability of an information system to represent every meaningful state of a real
world system [WW96].“
• „Degree to which values are included in a data collection [Red97].“
• „Percentage of real-world information entered in data sources and/or the data
warehouse [JLVV03].“
• „Ratio between the number of non-null values in a source and the size of the
universal relation [Nau02].“
Demnach ist Vollständigkeit der Grad, zu dem die zu beschreibende Menge von RealWelt-Objekten eine Entsprechung in der Datenmenge einer bestimmten Datensammlung
hat [BCFM09, S.7].
In relationalen Datenbanken kann Vollständigkeit über das Vorhandensein und die
Bedeutung von NULL-Werten charakterisiert werden. Ein NULL-Wert bezeichnet in einer
relationalen Datenbank einen nicht aufgezeichneten Wert. „NULL“ kann allerdings verschiedene Bedeutungen haben, welche verschiedene Auswirkungen auf die Vollständigkeit
mit sich bringen. Um Vollständigkeit messen zu können, muss verstanden werden, warum
ein gegebener NULL-Wert vorkommt. Ein möglicher Grund für das Nichtvorhandensein
eines Wertes in der Datenbank kann sein, dass schlicht keine Real-Welt-Entsprechung
existiert. So könnte ein NULL-Wert in Kundendaten beispielsweise charakterisieren, dass
ein bestimmter Kunde keine E-Mail-Adresse besitzt. In diesem Fall hat der NULL-Eintrag
keine negative Bedeutung für die Vollständigkeit der Datenbank.
Die zweite Alternative ist, dass ein Wert nicht aufgezeichnet wurde obwohl bekannt ist,
dass dieser in der realen Welt vorhanden ist. Ein solcher Wert repräsentiert mangelnde
Vollständigkeit.
Eine dritte mögliche Interpretation für einen NULL-Eintrag ist, ein Wert für den nicht
bekannt ist, ob er in der realen Welt existiert oder nicht existiert. In diesem Fall kann
keine Aussage über die Vollständigkeit getroffen werden [BCFM09, SMB05].
7
2 Datenqualität
2.1.3 Konsistenz
Konsistenz bezeichnet die Einhaltung von semantischen Regeln, die für eine Datenmenge
definiert wurden. In relationalen Datenbanken geschieht dies durch Integritätsregeln wie
Primärschlüssel, CHECK-Constraints oder Trigger. Konsistenzregeln können aber auch
für nicht-relationale Daten formuliert werden [BCFM09, SMB05]. Auf Regeln wird in
Kapitel 3 näher eingegangen.
2.1.4 Zeitbezogene Dimensionen
Zeitbezogene Dimensionen beschreiben, wie temporale Aspekte die Qualität von Daten
beeinflussen. Die in der Literatur am häufigsten genannten zeitbezogenen Dimensionen
sind Aktualität (eng. currency) und Zeitgerechtigkeit (eng. timeliness). Bei den Definitionen dieser Dimensionen herrscht allerdings keine Übereinstimmung. Aktualität und
Zeitgerechtigkeit werden oft benutzt, um die gleichen Konzepte zu beschreiben [BCFM09,
S.8f].
2.1.4.1 Aktualität
Bei der Definition von Aktualität sind in der Literatur wie folgend dargestellt Diskrepanzen zu erkennen:
• „Currency describes when the information was entered in the sources and/or the
data warehouse [JLVV03].“
• „Currency is a measure of how old the information is, based on how long ago it
was recorded [BSM03].“
• „Currency is the degree to which a datum is up-to-date. A datum value is up-to-date
if it is correct in spite of possible discrepancies caused by time related changes to
the correct value [Red97].“
Ausgehend von den Definitionen von Jarke und Bovee misst Aktualität schlicht das Alter
von Daten. Dazu wird aufgezeichnet, zu welchem Zeitpunkt die letzte Aktualisierung
vollzogen wurde. Bei kritischer Betrachtung dieser Definitionen stellt sich die Frage,
inwiefern es sich dabei um eine Qualitätsdimension handeln kann, da keine Aussage über
den Grad an „fitness for use“ getroffen wird. Redman dagegen definiert Aktualität als
zeitbezogene Genauigkeit. Ein Datum ist aktuell, wenn es genau ist und nicht aktuell,
wenn es bedingt durch zeitliche Veränderung von einem genauen Zustand in einen
8
2.1 Dimensionen
ungenauen Zustand übergegangen ist. Bezieht ein Angestellter beispielsweise anfänglich
ein Gehalt von 20.000€ und wird dieses nach einem Jahr um 1.000€ erhöht, dann ist
21.000€ ein aktueller Wert, während 20.000€ einen inaktuellen Wert darstellt. Alle
anderen Werte, wie etwa 23.000€, sind weder aktuell noch inaktuell, sondern schlichtweg
ungenau.
2.1.4.2 Zeitgerechtigkeit
Die Dimension der Zeitgerechtigkeit ist nötig, um Daten zu beschreiben, die zwar aktuell
sind, aber für bestimmte Zwecke trotzdem nicht brauchbar sind, weil sie nicht rechtzeitig
bereitgestellt wurden. Beispielsweise ist ein Busfahrplan, der veröffentlicht wird, nachdem
alle Busse schon abgefahren sind, nicht zeitgerecht. Er kann aber trotzdem aktuell sein,
wenn noch keine neueren Informationen über Abfahrtszeiten existieren. Nachfolgend eine
Auswahl an Definitionen aus der Literatur:
• „Timeliness is the extent to which the age of data is appropriate for the task at
hand [WW96].“
• „Timeliness is the extent to which data are sufficiently up-to-date for a task [LC02].“
• „Timeliness is the average age of the data in a source [Nau02].“
Liu sowie Wand/Wang definieren Zeitgerechtigkeit als das Ausmaß, in dem Daten für
einen bestimmten Zweck ausreichend aktuell sind. Im Unterschied zur Dimension der
Aktualität ist also ein klarer Zweckbezug zu erkennen. Naumann definiert Zeitgerechtigkeit
als das durchschnittliche Alter von Daten. Die Dimension wird also im Gegensatz zu
den vorherigen Definitionen als multivariat gesehen. Außerdem fehlt ein Zweckbezug.
Im Rahmen dieser Masterarbeit soll daher im Folgenden den Definitionen von Liu und
Wand/Wang der Vorzug gegeben werden.
2.1.5 Weitere Dimensionen
Die bisher vorgestellten Dimensionen stellen den Schwerpunkt in der Datenqualitätsliteratur dar. Allerdings wurden von vielen Autoren noch einige weitere Dimensionen
beschrieben [BS06]. Die meistzitierte Aufstellung von Datenqualitätsdimensionen stammt
von den Autoren Wang und Strong [Nau07]. Wang und Strong beschreiben darin 15
Qualitätsdimensionen, die aus einer Befragung von Datenkonsumenten in größeren Unternehmen destilliert wurden. Sie gruppieren die 15 Dimensionen in vier Klassen [WS96]:
Intrinsische, kontextuelle und repräsentationale Datenqualität sowie Zugriffsqualität,
9
2 Datenqualität
siehe Tabelle 2.1. Intrinsische Datenqualität beschreibt inhärente Merkmale der Daten.
Um diese Dimensionen messen zu können, müssen die Daten selbst untersucht werden.
Kontextuelle Datenqualität hängt mit der Nutzung der Daten zusammen. Ob Daten
ausreichend nutzbar sind, hängt stark vom Ziel einer Aufgabe ab. Repräsentationale
Datenqualität bezieht sich auf die Darstellung der Daten. Zugriffsqualität beschreibt das
Niveau an Sicherheit und die Verfügbarkeit von Daten. Diese Klasse von Dimensionen
ist also systemabhängig und beschreibt Qualitäten des Informationssystems, welches die
Daten verwaltet [BS06, HGHM11, WS96].
2.1.6 Zusammenfassung
Die in der Literatur am häufigsten genannten Dimensionen sind Genauigkeit, Vollständigkeit, Konsistenz sowie die zeitbezogenen Dimensionen Aktualität und Zeitgerechtigkeit.
Dimensionen definieren einzelne Bereiche der Datenqualität und machen sie messbar,
welches es wiederum ermöglicht, die Datenqualität zu verbessern. Die Datenqualitätsdimensionen sind allerdings nicht unabhängig voneinander. Die Bevorzugung einer Dimension kann sich negativ auf eine andere auswirken. Eine Fokussierung auf Aktualität
kann sich so negativ auf die Genauigkeit oder Vollständigkeit von Daten auswirken. Ein
Beispiel dafür wäre die Veröffentlichung von Gerüchten, also Daten, deren Genauigkeit
nicht sicher verifiziert werden kann. In bestimmten Domänen kann die möglichst zeitnahe
Klasse
Intrinsische Datenqualität
Kontextuelle Datenqualität
Repräsentationale Datenqualität
Zugriffsqualität
Datenqualitäts-Dimension
Glaubhaftigkeit
Genauigkeit
Objektivität
Reputation
Mehrwert
Relevanz
Zeitgerechtigkeit
Vollständigkeit
Angemessener Umfang
Interpretierbarkeit
Verständlichkeit
Konsistenz der Darstellung
Knappheit der Darstellung
Zugänglichkeit
Zugriffssicherheit
Tabelle 2.1: Datenqualitätsdimensionen nach Wang und Strong [WS96]
10
2.2 Managementansätze
Bereitstellung von Informationen aber wichtiger sein als die vollkommene Genauigkeit
oder Vollständigkeit der Informationen. Je nach Anwendungsfall muss unterschieden
werden, welche Dimensionen wichtiger sind [SMB05].
2.2 Managementansätze
Um eine nachhaltige und effektive Datenqualitätssteigerung sicherzustellen, ist ein kontinuierliches Datenqualitätsmanagement nötig. Punktuelle Datenreinigungen haben nur
einen kurzfristigen Effekt. Die dadurch erzielten Verbesserungen gehen gerade bei sich
häufig ändernden Daten schnell verloren. Das Thema Datenqualität darf daher nicht
als eine einmalige Aktion betrachtet werden. Um Datenqualität effektiv zu verbessern,
bedarf es ganzheitlicher Methoden, die Daten über ihren gesamten Lebenszyklus hinweg
betrachten, um ein definiertes Niveau an Qualität zu garantieren. In der Literatur wurden
dazu verschiedene Ansätze zur kontinuierlichen Datenverbesserung vorgeschlagen. Ihre
Wurzeln liegen meist in alt-bewährten Methoden des Qualitätsmanagements, die für die
Belange der Datenqualität angepasst und erweitert wurden [HGHM11]. Das von Wang
vorgeschlagene Total Data Quality Management (TDQM) basiert auf der Betrachtung
von Daten ähnlich zu Produkten in der Fertigungsindustrie. Die in diesem Bereich weitverbreitete Qualitätssicherungs-Methodik des Demingkreises [Dem86] wurde dabei auf
Daten übertragen. Der Demingkreis beschreibt eine iterative Problemlösungsmethodik
die aus vier Phasen besteht: Planen, Umsetzen, Überprüfen, Handeln [WZL01].
Ein weiterer iterativer Managementansatz, das Total Information Quality Management
(TIQM), wurde von Larry English vorgeschlagen [Eng99]. Er entwickelte TIQM basierend
auf der im Qualitätsmanagement populären Six-Sigma-Methodik, einem Managementsystem zur Prozessoptimierung unter Anwendung analytischer und statistischer Methoden
[Ten01]. TIQM besteht aus sechs Prozessen, die in drei sich wiederholende Phasen
gegliedert werden können. Die Phasen beschreiben Prozesse zur Erfassung der gegenwärtigen Situation, zur Einleitung von Verbesserungsmaßnahmen und zur Evaluation der
abgeschlossenen Verbesserungen [BCFM09].
Neben diesen Ansätzen existieren noch eine Reihe weiterer. Alle Ansätze haben aber
eine Messungs- und Verbesserungs-Phase gemeinsam. Daraus ist zu schließen, dass diese
beiden Phasen eine zentrale Rolle bei nachhaltiger Datenqualitätsverbesserung einnehmen. In der Messungs-Phase wird das Datenqualitäts-Niveau relevanter Dimensionen
quantifiziert. Die Verbesserungs-Phase beinhaltet die Anhebung der Datenqualität unter
Verwendung verschiedener Strategien und Maßnahmen [BCFM09].
11
2 Datenqualität
In diesem Abschnitt soll ein ausgewählter Managementansatz, Wangs TDQM, näher
vorgestellt werden. TDQM war die erste in der Literatur veröffentlichte ganzheitliche
Datenqualitätsmanagement-Methode und kommt in der Praxis bei Initiativen zur Datenqualitätsverbesserung weitverbreitet zur Anwendung. Eine ausführlichere Übersicht über
weitere verschiedene existierende Managementansätze findet sich in [BCFM09].
2.2.1 Total Data Quality Management
TDQM definiert analog zum Demingkreis vier Phasen, welche kontinuierlich durchlaufen werden müssen, um eine nachhaltige Datenqualitätsverbesserung zu erreichen. Die
Phasen sind in Abbildung 2.1 dargestellt. Es hat eine ganzheitliche Unterstützung des
Datenqualitätsverbesserungs-Prozesses zum Ziel. Der kontinuierliche TDQM-Kreislauf
beinhaltet Phasen der Definition, Messung, Analyse und Verbesserung. Diese Phasen
Bild 2.1: Der TDQM-Kreis
sollen folgend näher beschrieben werden [WZL01, HGHM11]:
1. Definition:
In der Definitions-Phase müssen relevante Datenqualitätsdimensionen
ausgewählt und entsprechende Anforderungen an diese definiert werden.
Die Anforderungen können in Form von Geschäftsregeln (eng. Business
Rules) ausgedrückt werden. Geschäftsregeln sollen im anschließenden
Kapitel 3 ausführlich behandelt werden.
12
2.2 Managementansätze
2. Messung:
Nach der Formulierung der Anforderungen folgt deren Anwendung auf
die Daten. Es wird untersucht, inwiefern die Daten den Anforderungen
genügen. Dies wird mit Hilfe von verschiedenen Metriken quantifiziert.
Mögliche Beispiele sind die absolute Anzahl nicht vorhandener E-MailAdressen in Kundendaten oder der Zeitpunkt der letzten Aktualisierung
bestimmter Daten.
3. Analyse:
In der Analyse-Phase werden Ursachen mangelnder Datenqualität festgestellt. Die Ursachen können vielfältig sein, unter anderem können
fehlerhafte Anwendungen, menschliche Fehler oder schlecht gestaltete
Prozesse verantwortlich sein.
4. Verbesserung:
In der Verbesserungs-Phase sollen die Fehler und deren Ursachen nachhaltig beseitigt werden. Dazu gilt es permanent qualitätssichernde Maßnahmen zu implementieren, wie etwa durch die Umgestaltung von Prozessen.
Einmalige Datensäuberungsmaßnahmen können davor initial zur Anwendung kommen.
Nach Abschluss aller Phasen erfolgt stets eine neue Iteration und die erneute Definition
von Anforderungen. Durch die fortlaufende Überwachung wird ein erneutes unbemerktes
Absinken der Qualität verhindert und eine kontinuierliche und nachhaltige Verbesserung
der Datenqualität ermöglicht.
13
3 Regelsysteme
Im Folgenden Teil der Arbeit sollen Regelsysteme vorgestellt werden. Zuerst soll definiert
werden, was unter Regeln bzw. Geschäftsregeln zu verstehen ist. Anschließend werden
regelbasierte Systeme vorgestellt sowie beschrieben wie Geschäftsregeln in relationalen
Datenbanken und NoSQL-Datenbanken realisiert werden.
Dies ist in Bezug auf Datenqualität relevant, da Anforderungen an Datenqualität in
Form von Geschäftsregeln ausgedrückt werden können, welche wiederum die Grundlage
für die Messung von Datenqualität stellen [HGHM11].
Zur Erfüllung der Anforderungen und dadurch bedingt zur Verbesserung der Datenqualität können Geschäftsregeln ebenfalls eingesetzt werden. In welchem Maße wird im
Kapitel 4 genauer diskutiert.
3.1 Business Rules
„Business Rules“ oder zu Deutsch „Geschäftsregeln“ sind Regeln, welche das Geschäftsverhalten bestimmen. Die Business Rule Group1 definiert Geschäftsregeln folgendermaßen:
„A business rule is a statement that defines or constrains some aspect of the
business. It is intended to assert business structure or to control or influence
the behaviour of the business [Hay00].“
Demnach sollen Business Rules einen bestimmten Teil des Geschäfts einschränken,
um einen vorgegeben Prozessablauf zu garantieren oder das Geschäftsverhalten zu
kontrollieren. Einige Beispiele für Geschäftsregeln sind:
• Eine Auszahlung von über 5.000€ muss vom Filialleiter genehmigt werden
• Das minimale Gehalt eines Abteilungsleiters beträgt 4.000€
• Der Lagerbestand muss aufgefüllt werden, wenn er unter 100 Stück fällt
1
http://www.businessrulesgroup.org
15
3 Regelsysteme
Die Literatur unterscheidet drei verschiedene Arten von Geschäftsregeln [Hay00]:
• Strukturelle Regeln:
Strukturelle Beschränkungen können durch das Entity-RelationshipModell ausgedrückt werden. Eine typische strukturelle Regel wäre z.B.:
„Ein Kunde kann ein oder mehrere Konten haben, aber ein Konto nur
genau einen Kunden.“
• Beschränkungen:
Beschränkungen beschäftigen sich mit den dynamischen Aspekten eines
Geschäfts. Sie beschränken Geschäftsaktionen, so z.B.: „Ein Kunde kann
nur ein Buch ausleihen, wenn er seinen aktuellen Jahresbeitrag schon
gezahlt hat.“
• Derivative Regeln:
Derivative Regeln beschreiben, welche Fakten durch andere Fakten abgeleitet werden müssen, z.B.: „Das Alter einer Person wird berechnet
durch die Subtraktion des Geburtsdatums vom heutigen Datum.“
3.2 Regelbasierte Systeme
Regelbasierte Systeme (eng. Rule-Engine) sind Applikationen die Problemlösungs-KnowHow automatisieren, indem sie Expertenwissen mit Hilfe von Regeln einfangen [HR85].
Regeln bestehen in regelbasierten Systemen aus Wenn-Dann-Sätzen. Dies beruht
darauf, dass menschliche Experten ihre Problemlösungs-Techniken für gewöhnlich in
Form von Situations-Aktions-Regeln ausdrücken. Der Wenn-Teil einer Regel besteht
aus einer Bedingung, welche definiert, wann die Regel ausgelöst wird. Der Dann-Teil
beschreibt die Aktion, welche ausgelöst wird, wenn die Bedingung der Regel erfüllt ist.
Ein Beispiel für eine Regel die Expertenwissen repräsentiert ist:
„WENN der Patient sich über gereizte Augen UND andauerndes Nießen
beklagt UND momentan Pollenflug herrscht DANN unterziehe den Patienten
einer Prüfung auf Pollenallergie.“
Regelbasierte Systeme drücken also domänenspezifisches Expertenwissen als eine Menge
von Wenn-Dann-Regeln aus. Sie lösen automatisiert Probleme, indem sie überprüfen
ob die ihnen zur Verfügung stehende Regelmenge Bedingungen enthält, welche durch
16
3.2 Regelbasierte Systeme
das gegebene Problem erfüllt werden. Danach werden mögliche Konflikte in der Menge
der anwendbaren Regeln gelöst und eine optimale Reihenfolge der Regelausführung
determiniert. Schließlich folgt die Auslösung der Aktionen, welche die Regeln spezifizieren.
[HR85]
3.2.1 Architektur
Regelbasierte Systeme bestehen aus drei Komponenten, einer Regelbasis, einer Faktenbasis
und einer Inferenzmaschine (siehe Abbildung 3.1). Die einzelnen Komponenten agieren
Bild 3.1: Architektur eines Regelsystems
folgendermaßen [SRR+ 07, FH03, Sta07]:
1. Faktenbasis:
Die Faktenbasis enthält die Daten, auf welche die Regeln angewandt
werden. Der Typ der Daten kann je nach Anwendung unterschiedlich
sein, z.B. können Fakten als Java Objekte oder auch als Tupel in einer
relationalen Datenbank repräsentiert werden.
2. Regelbasis:
In der Regelbasis werden alle dem System bekannten Regeln aufbewahrt.
Die Regeln repräsentieren das Wissen, das über die Domäne bekannt
ist. Sie können als einfache Zeichenketten abgelegt werden oder in ein
Format umgewandelt sein, das der Ausführungseinheit eine schnellere
17
3 Regelsysteme
Anwendung erlaubt. Die Regelbasis kann sich physisch sowohl innerhalb
des regelbasierten Systems als auch extern z.B. in einer relationalen Datenbank befinden. Die Anwendung von relationalen Datenbanken erlaubt
die Ausnutzung von inhärenten Funktionalitäten von Datenbankmanagementsystemen, wie unter anderem die Verwaltung von Nutzerrechten,
wodurch die Selektion von Regeln je nach Anwender angepasst werden
kann.
3. Inferenzmaschine:
Die Hauptaufgabe eines regelbasierten Systems ist die Anwendung von
Regeln auf Daten, wofür die Inferenzmaschine zuständig ist. Die Anwendung der Regeln erfolgt iterativ in drei Phasen:
• Zuerst werden in einer Mustererkennungsphase (eng. PatternMatching) alle Regeln mit der Faktenbasis verglichen. Es wird festgestellt, welche Regeln durch die gegebenen Fakten zu aktivieren sind.
Dazu werden die Prämissen aller Regeln evaluiert. Spezielle zu diesem Zweck entwickelte Algorithmen optimieren hierbei den nötigen
Aufwand, indem z.B. Prämissen, die in mehreren Regeln vorkommen
nur einmal evaluiert werden oder bei mehrmaligen Iterationen nur
sich geänderte Fakten neu evaluiert werden. Alle aktivierten Regeln
werden schließlich, nach Abschluss der Bedingungsevaluierung, in
einer sogenannten Konfliktmenge (eng. Conflict Set) gespeichert.
• Anschließend wird in einer Konfliktbehandlungsphase, aus der Menge der aktivierten Regeln, eine Ausführungsreihenfolge ermittelt
(eng. Conflict Resolution). Für die Priorisierung der Regeln bestehen
verschiedene Lösungsstrategien. Die einfachste Möglichkeit ist die
Selektierung nach Zeitstempeln, eine weitere häufig angewandte Option ist die Priorisierung anhand der Komplexität der Bedingungen
der Regeln.
• In der letzten Phase wird die beschriebene Aktion jeder Regel in der
vorher determinierten Reihenfolge ausgeführt. Die ausgeführte Aktion kann die Faktenbasis beeinflussen und ihren Zustand verändern.
Dadurch eingetretene Änderungen müssen re-evaluiert werden. Dies
kann dazu führen, dass vorhergehend deaktivierte Regeln aktiviert
werden oder umgekehrt. Regeln, die innerhalb einer Iteration aus-
18
3.2 Regelbasierte Systeme
geführt wurden, werden dabei aber nicht noch einmal ausgeführt.
Die Inferenzmaschine stellt also sicher, dass keine Zyklen entstehen.
Dieser Prozess wird fortgeführt bis keine Regel mehr gefeuert werden kann. Nach Anwendung aller Regeln beginnt wieder eine neue
Iteration mit dem Vergleich von Regeln und Fakten.
3.2.2 Bewertung von regelbasierten Systemen
Regelbasierte Systeme basieren auf deklarativen Regeln. Im Aktionsteil der Regel wird
dem System mitgeteilt, was es machen soll, aber nicht wie. Dies steht im Gegensatz zu
dem prozeduralen Ansatz, in welchem explizit beschrieben werden muss, welche Schritte
in welcher Reihenfolge durchlaufen werden müssen.
Dank der Deklarativität der Regeln und der Architektur von regelbasierten Systemen
ergeben sich einige Vorteile im Gegensatz zu traditionellen Applikationen mit prozeduraler
Regelformulierung [Los02, SRR+ 07, Bal09]:
• Wiederverwendbarkeit:
Durch die Trennung des Systems in Inferenzmaschine, Faktenbasis und
Regelbasis kann eine größere Wiederverwendbarkeit erreicht werden. Es
ergibt sich die Möglichkeit verschiedene Faktenbasen an einen kompatiblen Regelsatz zu binden oder umgekehrt.
• Fokussierung auf Businesslogik:
Experten können sich auf die Analyse der Domäne und die Formulierung
geeigneter Regeln fokussieren, anstatt auf deren Umsetzung. Denn das
Regelsystem kann die formulierten Regeln dynamisch in ausführbaren
Quellcode übersetzen und auf Daten anwenden.
• Veränderbarkeit:
Die Anforderungen an die Businesslogik ändern sich häufiger als die Anforderungen an die anderen Teile eines Informationssystems. AnforderungsDefinitionen sind selten vollständig und entwickeln sich mit der Zeit
weiter. In prozeduralen Informationssystemen bedingt jede Anforderungsänderung auch eine Änderung des Quellcodes der Applikation, was
zusätzlichen Aufwand bedeutet und die Wahrscheinlichkeit für Fehler
erhöht. Da deklarative Geschäftsregeln vom Ausführungscode getrennt
sind, kann dieses Problem in regelbasierten Systemen umgangen werden
19
3 Regelsysteme
und bestehende Regelsätze von Domänen-Experten leichter erweitert
oder verändert werden.
• Wartbarkeit:
Regelbasierte Systeme verhindern das Vermischen von Ausführungscode
mit Geschäftsregeln, dadurch verbessert sich die Übersichtlichkeit des
Quellcodes und somit die Wartbarkeit des Systems.
• Selbst-Dokumentation:
Die Geschäftsregeln sind in einer festgelegten Syntax formuliert und nicht
in den Quelltext eingebettet. Sie können so leichter analysiert werden und
erlauben Aussagen über den Zweck der Applikation, die sie verwendet.
Einem Regelsatz kann man so z.B. die Ansprüche, die an Datenqualität
gestellt wurden, entziehen.
Die Nachteile von regelbasierten System liegen vor allem im Implementierungsaufwand.
Sie haben ihre Stärken in Domänen mit oft wechselnden Anforderungen und einer großen
Anzahl an Geschäftsregeln. Bei Projekten mit weniger als 20 Regeln oder Umgebungen, in
denen sich die Businesslogik selten ändert, können der nötige Implementierungsaufwand
sowie mögliche Performanceeinbußen durch den gewonnen Nutzen nicht gerechtfertigt
werden [Bal09, S.13].
3.3 Regeln in Relationalen Datenbanken
In diesem Abschnitt soll betrachtet werden, welche interne Sprachkonstrukte Datenbankmanagementsysteme (DBMS) bieten, um die in relationalen Datenbanken gespeicherten
Daten, auf die Einhaltung von Regeln hin zu überprüfen. Die Verwendung von internen
Regelmechanismen ist dazu allerdings nicht die einzige Möglichkeit.
In externen Applikationen mit Datenbankzugriff können beliebige Regeln realisiert
werden. Eine Möglichkeit ist dabei, die Daten in regelmäßigen Abständen auszulesen
und auf Einhaltung der Regeln hin zu überprüfen. Je kürzer die Abstände zwischen
den Auslesungen, desto mehr wird aber die Leistung des Systems beeinträchtigt und je
länger die Abstände, desto später werden Mängel erkannt. Wie festzustellen ist, werden
Regelverletzungen dadurch immer erst nachträglich entdeckt. Die andere Alternative ist
es, in jeder Anwendung, welche die Datenbank modifizieren könnte, Regelüberprüfungen
zu implementieren. Eine derartige Dezentralität beeinträchtigt aber die Skalierbarkeit und
20
3.3 Regeln in Relationalen Datenbanken
bedeutet einen zusätzlichen softwaretechnischen Aufwand bei der Anpassung von Anwendungen. Bei diesem Ansatz besteht außerdem ebenfalls keine Garantie, dass nur Daten in
die Datenbank gelangen, welche die Regeln befriedigen. Es besteht kein Mechanismus um
zu verhindern, dass Anwendungen, welche keine Regelüberprüfung implementieren, oder
diese falsch implementieren, verändernt auf die Datenbank zugreifen, falls Schreibrechte
für den Anwendungsfall nötig sind [HW92, MS02]. Externe Applikationen könne die
Einhaltung von Regeln also nicht erzwingen und eignen sich daher nur zur Evaluierung
des Datenbestands.
Soll eine Einhaltung der Regeln erzwungen werden, muss auf interne Datenbankregeln
zurückgegriffen werden. Das DBMS garantiert die Überprüfung der Regeln bei jeder relevanten Veränderung der Daten. Die Wahrung dieser Bedingungen gehört zu den zentralen
Aufgaben eines DBMS. Im SQL-Standard existiert eine Vielzahl an Sprachkonstrukten,
welche die Formulierung von internen Datenbankregeln ermöglichen. Die Regeln lassen
sich auf verschiedene Weisen klassifizieren, so unter anderem [SH97, S.419]:
• Attributsbezogen, Relational oder Interrelational (Granularität)
• Statisch oder Dynamisch (zeitlicher Kontext)
• Modellinhärent oder Modellunabhängig
Die erste erwähnte Möglichkeit ist die Klassifikation von Regeln anhand ihrem Geltungsbereich. Regeln können entweder nur für einzelne Attribute und Tupel, aber auch für
ganze Tabellen oder über mehrere Tabellen hinweg gültig sein.
Die zweite Möglichkeit ist die Gliederung von Regeln nach ihrem zeitlichen Kontext.
Dynamische Regeln betreffen hier Zustandsübergänge oder langfristige Abläufe (temporale Integritätsbedingungen). Statische Regeln dagegen garantieren korrekte Zustände.
So sind zum Beispiel die Zustände „Ledig“ und „Verwitwet“ beides korrekte Werte für
ein Attribut „Familienstand“, allerdings wäre der Zustandsübergang von „Ledig“ zu
„Verwitwet“ invalide. Ein Beispiel für eine temporale Bedingung wäre z.B. die Miete darf
innerhalb von drei Jahren maximal um 20% erhöht werden [MS02, S.256f.]. In relationalen
Datenbanken können statische Bedingungen beispielsweise über CHECK-Constraints
implementiert werden, während dynamische Bedingungen über Trigger realisiert werden
können.
Die dritte Klassifikationsalternative ist die Kategorisierung von Regeln nach Modellinhärenz bzw. Modellunabhängigkeit. Dabei werden Regeln danach unterschieden, ob
sie aus der Strukturbeschreibung des Datenmodells hervorgehen (modellinhärenz) oder
21
3 Regelsysteme
nicht. Beispiele für modellinhärente Bedingungen sind Typintegrität, Schlüsselintegrität
und referenzielle Integrität.
Folgend sollen die verschiedenen im SQL-Standard definierten Arten von Integritätsbedingungen detaillierter vorgestellt werden.
3.3.1 Schlüsselintegrität
Grundlegende Voraussetzung des relationalen Datenmodells ist, dass jedes Tupel einer
Relation eindeutig identifizierbar sein muss. Es dürfen also keine Tupel mit identischen
Werten in einer Relation vorkommen. Um dies zu realisieren wird für jede Relation ein
Primärschlüssel ausgewählt. Ein Primärschlüssel ist entweder ein Attribut oder eine
Menge von Attributen, deren Felder innerhalb einer Tabelle keine Duplikate enthalten.
Dies könnte beispielsweise eine Personalnummer oder Matrikelnummer sein.
Innerhalb einer Tabelle können mehrere Attribute oder Kombinationen von Attributen vorkommen, die eine eindeutige Identifizierung erlauben. Jede dieser eindeutigen
Attributsmengen wird als Schlüsselkandidat bezeichnet, sofern sie minimal ist. Ein
Schlüsselkandidat ist minimal wenn keine Teilmenge innerhalb des Schlüsselkandidaten
existiert, welche Tupel eindeutig identifiziert.
Aus der Menge der erkannten Schlüsselkandidaten muss anschließend für jede Tabelle
ein Kandidat als Primärschlüssel ausgewählt werden. Das Datenbanksystem garantiert,
dass in den Primärschlüssel einer Tabelle keine Duplikate eingesetzt werden können.
Änderungsoperationen, welche die Integrität des Primärschlüssels verletzen, werden
abgelehnt.
Um vom Datenbanksystem ebenfalls die Eindeutigkeit von Schlüsselkandidaten schützen zu lassen, können diese mit dem Schlüsselwort UNQIUE versehen werden [GMUW09,
S.25] [SH97, S.90] [MS02, S.376ff.].
3.3.2 Referenzielle Integrität
Referenzielle Beschränkungen garantieren, dass Verweise in einer Datenbank zu existierenden Daten führen [MS02, S.379]. Referenzielle Beschränkungen werden in SQL über
Fremdschlüssel realisiert. Fremdschlüssel werden als zusätzliches Attribut in eine Relation
eingefügt. Sie beinhalten die Werte des Primärschlüssels einer fremden Relation. Der
Fremdschlüssel eines Tupels enthält also einen Verweis auf ein anderes Tupel. Betrachtet
man beispielsweise eine Tabelle „Personal“, in der alle personenbezogenen Daten eines
Angestellten gespeichert sind und eine Tabelle „Gehalt“, in der separat alle gehaltsbezo-
22
3.3 Regeln in Relationalen Datenbanken
genen Daten eines Angestellten gespeichert sind, können die beiden Tabellen über einen
Fremdschlüsselverweis zusammengeführt werden, um herauszufinden welcher Angestellte
welches Gehalt bezieht, siehe Abbildung 3.2. Neben Verweisen zwischen Tabellen sind
Bild 3.2: Ein Fremdschlüsselverweis
auch rekursive Verweise möglich, dabei beinhaltet das Fremdschlüssel-Attribut die Werte
des Primärschlüssels der eigenen Relation [GMUW09, S.312]. Fremdschlüssel müssen
immer auf einen Schlüsselkandidaten oder auf einen Primärschlüssel verweisen, um zu
gewährleisten, dass die Referenz eindeutig ist [MS02, S.383].
3.3.3 Typintegrität
Typbeschränkungen bestimmen den Wertebereich, welchen ein gegebenes Attribut annehmen kann. Ein Wertebereich ist eine Menge von atomaren Werten und besteht aus
einem Namen, einem Datentyp und gegebenenfalls einem Format. SQL bietet zahlreiche
Standarddatentypen an, so unter anderem verschiedene Typen zur Darstellungen von
ganzen Zahlen, reellen Zahlen, Währungen oder Zeitdaten. Der Benutzer hat aber auch
die Möglichkeit, eigene komplexe Datentypen zu formulieren [EN94, S.169ff.].
Um beispielsweise IPv4-Adressen in einer Datenbank zu speichern, ist ein Datentyp
nötig, der Ganzzahlen zwischen 0 und 255 zulässt. Das Format wird definiert als vier mit
einem Punkt getrennte Blöcke, die jeweils eine Instanz dieses Datentyps beinhalten, z.B.:
103.0.213.135
Dadurch ergibt sich eine Menge von 4.294.967.296 eindeutigen atomaren Werten, die
diesen Wertebereich bilden. Typbeschränkungen werden immer augenblicklich geprüft.
Ein Attribut kann nie einen Wert annehmen, welcher dem Wertebereich nicht entspricht,
sofern das DBMS Typbeschränkungen implementiert [Dat03, S.267].
23
3 Regelsysteme
Eine besondere Typbeschränkung wird durch das Schlüsselwort NOT NULL definiert,
welches der Attributsdeklaration in einer CREATE TABLE Anweisung folgen kann, z.B.:
CREATE TABLE Person(
...,
Nachname VARCHAR(50) NOT NULL
);
Dadurch wird sichergestellt, dass keine NULL Werte in die Zellen des Attributs eingesetzt
werden können. In dem obigen Beispiel wird durch das Schlüsselwort NOT NULL sichergestellt, dass jede Zeile der Tabelle „Person“ einen Eintrag für das Attribut „Nachname“
besitzt [GMUW09, S.319] [MS02, S.360].
3.3.4 CHECK-Beschränkungen
CHECK-Anweisungen ermöglichen es, eine Reihe verschiedener Bereichseinschränkungen
für Attribute zu formulieren, darunter [KE11, S.162] [MS02, S.365ff.] [GMUW09, S.320ff.]:
• Bestimmung eines Minimal- oder Maximalwerts:
CHECK (birthdate < TODAY)
• Bestimmung eines erlaubten Intervalls:
CHECK (wage BETWEEN (800 AND 2000))
• Aufzählung von erlaubten Werten:
CHECK (type IN (’Programmer’, ’Architect’, ’Manager’))
Dem Schlüsselwort „CHECK“ folgt der Name eines Attributs, gefolgt von der Kondition
welche dieses Attribut einhalten muss. Vor der Materialisierung jeder Änderungsoperation
an dem genannten Attribut wird vom Datenbanksystem sichergestellt, dass die formulierte
Kondition zu TRUE evaluiert. Ansonsten wird die Änderungsoperation zurückgewiesen
[KE11, S.162].
24
3.3 Regeln in Relationalen Datenbanken
3.3.5 Assertions
Assertions erlauben es, CHECK-Anweisungen über mehrere Tabellen hinweg zu definieren.
Assertions werden mit einer CREATE-Anweisung, gefolgt von einer CHECK-Bedingung
definiert. Die boolesche Kondition innerhalb der CHECK-Bedingung muss jederzeit zu
TRUE evaluieren, vom Zeitpunkt der Definition bis zur Entfernung der Assertion. Die
Syntax einer Assertion sieht folgendermaßen aus:
CREATE ASSERTION {Name} CHECK ( {Kondition} );
Innerhalb der CHECK-Bedingung ist eine tabellenübergreifende Unteranfrage erlaubt,
beispielsweise:
CREATE ASSERTION max_klassen_groesse CHECK (
SELECT COUNT(*) FROM Schüler <
SELECT COUNT(*) FROM Lehrer * 30
);
Alle Datenbank-Elemente, die in einer Unteranfrage spezifiziert wurden, werden bei jeder
Änderung auf die Einhaltung der Assertion hin überprüft. Jede Datenbank-Modifikation,
welche die Assertion verletzen würde, wird abgelehnt.
Assertions können theoretisch für denselben Zweck wie attributsbezogene CHECKBeschränkungen eingesetzt werden. Allerdings sind Assertions wesentlich ineffizienter als
diese. Attributsbezogene CHECK-Beschränkungen müssen nämlich nur evaluiert werden,
wenn in das Attribut, auf das sie sich beziehen, neue Werte eingefügt oder bestehende
modifiziert werden. Während Assertions für jede Änderung an der erwähnten Tabelle
ausgewertet werden müssen [GMUW09, S.328]. Daher sollten Assertions ausschließlich
für tabellenübergreifende Bedingungen verwendet werden.
3.3.6 Aktive Regeln
Aktive Regeln können auf Ereignisse in der Datenbank reagieren. Dies können temporale
Ereignisse oder Änderungen an der Datenbank sein, die beispielsweise durch UPDATE-,
DELETE- oder CREATE-Operationen hervorgerufen werden. Seit dem SQL:99 Standard
werden für die Implementierung solcher Regeln Trigger zur Verfügung gestellt.
Eine Abstraktion dieser Regeln kann mit dem ECA-Model (Event-Condition-Action)
erreicht werden. Dieses Model spezifiziert ein Ereignis, eine Bedingung und eine Aktion,
25
3 Regelsysteme
die ausgelöst wird, falls das beschriebene Ereignis eintritt und die Bedingung erfüllt ist
[GMUW09, S.328] [EN94, S.787ff.] [Dat03, S.278]:
• Das Ereignis ist üblicherweise eine Änderungsoperation an der Datenbank. Es
können aber auch temporale oder externe Ereignisse definiert werden.
• Die Bedingung ist ein boolescher Ausdruck, welcher zu TRUE evaluieren muss,
damit die nachfolgende Aktion ausgeführt wird. Ist keine Bedingung spezifiziert,
wird immer zu TRUE evaluiert.
• Die Aktion ist für gewöhnlich eine Prozedur, bestehend aus einer Reihe von
SQL-Anweisungen. Es kann stattdessen aber auch die Ausführung eines externen
Programms veranlasst werden.
3.3.6.1 Trigger
Trigger sind vom Benutzer geschriebene Prozeduren, die in der Datenbank gespeichert
sind und durch die Erfüllung bestimmter Bedingungen ausgelöst werden [KE11, S.167]
[Dat03, S.277].
Trigger bestehen aus einem Ereignis, einer Bedingung und einer Folgeaktion. Daher
gelten Trigger als ECA-Regeln, wie oben beschrieben [Dat03, S.278]. Im Gegensatz zu
ECA-Regeln können Trigger allerdings nur durch Datenbankmodifikationen ausgelöst
werden, während ECA-Regeln auch durch Zeitereignisse (z.B. explizite oder relative
Zeitpunktangaben) oder externe Ereignisse (z.B. Aufrufe von Anwendungsmethoden)
aktiviert werden können [SH97, S.401]. Trigger beziehen sich immer auf eine bestimmte
Relation, die bei ihrer Definition bestimmt werden muss. Sie werden danach ausgelöst,
wenn bestimmte Ereignisse an der spezifizierten Relation eintreten. Die Syntax nach
SQL:1999 sieht folgendermaßen aus:
CREATE TRIGGER {Trigger Name}
{Zeitpunkt der Auslösung} {Ereignis das zur Auslösung führt}
ON {Name der Tabelle} [REFERENCING {Liste von Variablen}]
{Ausgelöste Aktion}
Als mögliche Ereignisse zur Auslösung des Triggers können CREATE, UPDATE und
DELETE-Operationen angegeben werden [KE11, S.168]. Außerdem muss ein Aktivierungszeitpunkt definiert werden, welcher festlegt wann die Aktion des Triggers ausgeführt
26
3.3 Regeln in Relationalen Datenbanken
wird. Die Aktion kann vor (BEFORE), nach (AFTER) oder anstelle (INSTEAD OF) des
eingetretenen Ereignisses ausgeführt werden [Dat03, S.278] [EN94, S.634] [SH97, S.398f.].
In der durch das Ereignis ausgelösten Aktion sind neben den üblichen Konsistenzsicherungsmaßnahmen, wie dem Ablehnen der Änderung an der Relation, auch andere
Nutzungen denkbar. So ist ebenfalls die Formulierung von Aktionen zur Durchführung
von Auditing, Leistungsmonitoring oder Debugging möglich. Eine weitere Alternative
ist beispielsweise das Versenden von Warnungen an einen bestimmten Nutzer, falls eine
bestimmte Kondition eintritt, wie z.B. das Überschreiten eines Schwellwerts [KE11,
S.168] [Dat03, S.277].
3.3.6.2 Kritik an Triggern
In der Literatur wird von zahlreichen Autoren vor der Benutzung von Triggern gewarnt.
Nachfolgend sind die häufigsten in der Literatur beschriebenen Probleme genannt, die
durch die Benutzung von Triggern auftreten können [Dat03, S.277ff.] [KE11, S.168]
[SH97, S.402] [EN94, S.635]:
• Ein Ereignis könnte mehrere Trigger auslösen, deren Ergebnisse sich dann gegenseitig beeinflussen. Dadurch ergibt sich ein Konfluenzproblem:
„Ein Regelsystem ist konfluent, wenn der Effekt auf die Datenbank bei
gleichzeitig aktivierten Regeln immer unabhängig von der Reihenfolge
der Abarbeitung dieser Regeln ist [SH97, S.402].“
• Es können Kettenreaktionen entstehen, Trigger werden durch andere Trigger aktiviert. Ein bestimmter Trigger könnte sich außerdem mehrmals selbst rekursiv
auslösen. Es könnten also Endlosschleifen entstehen. Je mehr Trigger geschrieben werden, desto größer ist die Wahrscheinlichkeit dafür. Dies beschreibt ein
Terminierungsproblem.
• Bei schlechtem Programmierstil können durch Trigger gänzlich andere Ergebnisse eintreten als es der Benutzer erwarten würde. Gerade durch die Anwendung
von INSTEAD-OF-Triggern können ansonsten unabhängigen Datenbankaktionen
aktiviert werden.
Nach Date sollte der Einsatz von Triggern wegen der oben genannten Probleme möglichst
vermieden und komplett darauf verzichtet werden, falls Alternativen existieren [Dat03].
Auf der anderen Seite stellen Trigger strukturiert eingesetzt ein sehr mächtiges Werkzeug
zur Einhaltung von Integritätsregeln dar. Ihr Einsatz ist wünschenswert, wenn die inhärenten Gefahren beherrscht werden können [SH97, S.402]. Dies stellt sich aber schwierig
27
3 Regelsysteme
dar, da zurzeit keine ausreichenden Konzepte zu Analyse, Design, Debugging oder Monitoring zur Verfügung stehen, wodurch ihr Potential erheblich beschränkt wird [SH97,
S.402] [EN94, S.635]. In der Praxis konnten einige dieser Probleme allerdings verringert
werden. Zum Beispiel ist durch die Vergabe von Prioritäten in Oracle-Datenbanken
eine eindeutige Abarbeitungsreihenfolge von Trigger-Aktionen garantiert. Durch diese
Priorisierung wird das Problem der Konfluenz behoben [Stü93].
3.4 Regeln in NoSQL Datenbanken
Seit der Vorstellung des relationalen Datenbankmodells durch Edgar Codd im Jahre
1970 ist dies bis heute der deutlich am weitesten verbreitete Standard im Bereich der
Datenbanken [SI05]. Im Gegensatz dazu stehen NoSQL-Datenbanken. NoSQL ist ein
Sammelbegriff für Datenbanken, die ein nicht-relationales Datenmodell implementieren
und daher keine oder zumindest keine vollkommene Unterstützung für die relationale
Anfragesprache SQL besitzen. Diese Art von Datenbanken sind mit dem Eintreten des
Web 2.0 Zeitalters verstärkt in den Fokus gerückt. Die Hauptanwender von NoSQLDatenbanken sind heutzutage Web 2.0 Unternehmen wie Google, Facebook oder Amazon,
die enorme und ständig wachsende Datenmengen verarbeiten müssen.
NoSQL-Datenbanken legen ihren Schwerpunkt auf hohe Leistung und Skalierbarkeit.
Ihr Hauptvorteil ist neben ihrer Skalierbarkeit und Leistung, dass sie im Gegensatz
zu relationalen Datenbanken, gut mit unstrukturierten Daten wie verschiedenen Dokumenten, E-Mails oder multimedialen Daten umgehen können. Diese Vorteile werden
ermöglicht durch die Verwendung von simplen Datenmodellen, primitiver Anfragesprache, Nichtverfügbarkeit von Integritätssicherungsmechanismen, wie z.B. Fremdschlüsseln
oder mangelnder Unterstützung von Sicherheitsmechanismen auf Datenbank-Niveau.
Außerdem wird zur Erhöhung von Verarbeitungsgeschwindigkeit im Allgemeinen auf die
Wahrung von ACID-Eigenschaften (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit)
verzichtet.
Relationale Datenbanken sowie ihre Alternativen haben Stärken und Schwächen auf
verschiedenen Gebieten. Daher haben sowohl das relationale als auch nicht-relationale Datenbankmodelle ihre Daseinsberechtigung. Es sollte je nach den gegebenen Anforderungen
abgewägt werden, welches Modell am geeignetsten ist [NLIH13] [OGOG+ 11].
Abschließend lässt sich feststellen, dass der Einhaltung von Geschäftsregeln in NoSQLDatenbanken nur eine untergeordnete Rolle zukommt, die Priorität liegt auf der Realisie-
28
3.4 Regeln in NoSQL Datenbanken
rung hoher Leistung über der Wahrung von Konsistenz. Aus diesem Grund soll auf eine
tiefergehende Betrachtung von Regeln in NoSQL-Datenbanken verzichtet werden.
29
4 Datenqualitätsverbesserung
In diesem Kapitel soll untersucht werden wie Datenqualität verbessert werden kann. Die
Betrachtungen sollen dabei auf relationale Datenbanken beschränkt werden. Diese Einschränkung wird getroffen, da das relationale Datenmodell das am weitesten verbreitete
in der Wirtschaft darstellt [SI05] und von den Referenzunternehmen, welche im Rahmen
dieser Masterarbeit analysiert wurden, verwendet wurde. Ausgangsbasis für dieses Kapitel
soll das von Wang vorgestellte Datenqualitätsmanagement-Konzept TDQM sein. Wie
bereits im Abschnitt 2.2 beschrieben, ist kontinuierliches Datenqualitätsmanagement
eine Grundvoraussetzung für eine nachhaltige und effektive Datenqualitätssteigerung.
TDQM besteht aus vier Phasen: Definition, Messung, Analyse, Verbesserung. Folgend
soll untersucht werden wie jede dieser Phasen praktisch umgesetzt werden kann. Es
soll ein konkretes Konzept zur automatisierten Verbesserung von Daten in relationalen
Datenbanken herausgearbeitet werden.
4.1 Definition und Messung von Datenqualität
Messung von Datenqualität ist unverzichtbar, um einschätzen zu können inwieweit Daten
mangelnder Qualität Entscheidungen beeinflussen und um den Erfolg von Verbesserungsmaßnahmen prüfen zu können [Nau07, PLW02]. Auch im Feld der Datenqualität hat die
folgende Aussage des britischen Physikers Lord Thomas Kelvin ihre Gültigkeit [Los10]:
„Was man nicht messen kann, kann man auch nicht verbessern.“
Um eine effektive Messung der Datenqualität durchführen zu können, müssen in der
Definitions-Phase zuerst relevante Dimensionen ausgewählt werden und Anforderungen an Daten in Form von Geschäftsregeln formuliert werden. Von Domänenexperten
muss bestimmt werden, welche Daten was für ein Niveau an Datenqualität in welchen
Dimensionen zu erfüllen haben.
Anschließend muss jede ausgewählte Dimension mit einer oder mehreren konkreten Metriken assoziiert werden, um festzustellen inwieweit die Anforderungen an Datenqualität
erreicht werden [BCFM09, LPFW09].
31
4 Datenqualitätsverbesserung
Die Aufgabe dieses Abschnitts soll es nun sein, geeignete Metriken zur automatisierten
Messung von Datenqualität zu finden. Dazu soll zuerst untersucht werden, welche
Dimensionen dafür grundsätzlich in Frage kommen.
4.1.1 Auswahl von Dimensionen
Nicht alle Dimensionen sind rein technisch messbar, wie etwa unter anderem die „Reputation“ von Daten. Es muss zwischen objektiven und subjektiven Dimensionen unterschieden
werden. Objektive Qualitätsmerkmale sollen an dieser Stelle als technisch Messbar definiert werden, während subjektive Qualitätsmerkmale durch Befragung von Nutzern oder
Experten ermittelt werden müssen. Objektive Dimensionen erlauben die Verwendung
von quantitativen Metriken während subjektive Dimensionen nur qualitativ gemessen
werden können.
Zur Ermittlung qualitativer Messwerte sind einfache Fragebögen oder Kontrollmatrizen
geeignet, welche von Experten auszufüllen sind [Pie04, Nau07]. Die Ermittlung von
subjektiven Messwerten ist unter anderem nützlich, um eventuelle Diskrepanzen im
Vergleich zu objektiv gemessenen Werten festzustellen. Dies erlaubt nützliche Rückschlüsse
über das Niveau an Datenqualität und die Erkennung von verbesserungsbedürftigen
Bereichen [PLW02]. Die Einbindung von qualitativen Dimensionen geht jedoch über
den Rahmen dieser Masterarbeit hinaus. Außerdem ist die Ermittlung von qualitativen
Messwerten nicht automatisierbar.
Daher sollen folgend objektiv messbare Dimensionen zur genaueren Betrachtung
identifiziert werden. Wie bereits in Kapitel 2 diskutiert, gehören Genauigkeit, Konsistenz,
Zeitgerechtigkeit und Vollständigkeit zu den in der akademischen Fachliteratur am meisten
behandelten Dimensionen [SMB05]. Aber auch in der Praxis werden diese Dimensionen
als besonders wichtig erachtet. Sie fanden sich in einer Studie, in der die 25 größten
Unternehmen in Deutschland, Österreich und der Schweiz befragt wurden, unter den 5
am meisten genannten Dimensionen [Hel02]. Alle diese Dimensionen sind zudem objektiv
messbar und sollen daher im Folgenden betrachtet werden.
Eine Dimension für die Messung von Redundanzen wurde bisher noch nicht erwähnt.
Duplikate gehören aber zu den kostspieligsten und wichtigsten Datenfehlern in relationalen Datenbanken [Nau07]. Wegen ihrer Relevanz in relationalen Datenbanken und ihrem
offensichtlichen Einfluss auf die Gesamtqualität der Daten sollen Möglichkeiten zu ihrer
Messung bzw. Erkennung trotzdem angesprochen werden.
Folgend sollen für die ermittelten objektiven Dimensionen Metriken gefunden werden,
um den Datenqualitätsgehalt einer relationalen Datenbank bestimmen zu können. Au-
32
4.1 Definition und Messung von Datenqualität
ßerdem soll diskutiert werden, inwiefern die gefundenen Metriken in dem Kontext einer
relationalen Datenbank automatisierbar und praktisch anwendbar sind.
4.1.2 Metriken zur Messung von Datenqualität
Voraussetzung für die Anwendbarkeit der Metriken ist eine Normalisierung der Ergebnisse.
Dafür bietet sich das Intervall [0,1] an, wobei der Wert 1 das optimale Ergebnis darstellen
soll. Dies ermöglicht sowohl den Vergleich zwischen den Metriken in einer Datenquelle als
auch zwischen verschiedenen Datenquellen. Außerdem ist dies nötig für die Errechnung
von kombinierten oder Gesamtqualitätswerten [Nau07].
Objektive Metriken kommen üblicherweise in drei verschiedenen funktionalen Formen
vor. Diese lauten [PLW02]:
• Einfaches Verhältnis:
Diese Metriken messen das Verhältnis zwischen gewünschten Ergebnissen
und der gesamten Anzahl an Ergebnissen.
• Minimum oder Maximum:
Minimum- oder Maximaloperatoren werden benutzt bei Dimensionen
welche die Aggregation einer Vielzahl an Datenqualitäts-Indikatoren
fordern. Um die Qualität einer bestimmten Dimensionen zu messen, wird
bei dieser Art von Metriken, der Minimal- oder Maximalwert aus allen
gemessenen Einzelwerten ausgewählt.
• Gewichteter Durchschnitt:
Der gewichtete Durchschnitt bietet eine Alternative zur Auswahl eines
Maximal- oder Minimalwertes aus einer Vielzahl von Indikatoren. Diese
Form ist angebracht, wenn ein klares Verständnis über die Wichtigkeit
der einzelnen Indikatoren herrscht.
4.1.2.1 Konsistenz
In relationalen Datenbanken steht Konsistenz für die Einhaltung von Integritätsregeln, die
für bestimmte Felder, Tupel, Attribute oder Relationen definiert wurden. Die spezifizierte
Regelmenge definiert logische Zusammenhänge, welche von der geprüften Datenmenge
eingehalten werden müssen [HGHM11]. Integritätsregeln wurden im Kapitel 3.3 diskutiert.
Das DBMS garantiert jederzeit die Einhaltung der formulierten Integritätsregeln. Daher
33
4 Datenqualitätsverbesserung
ist eine Messung eines Konsistenzgrades nach dieser Prämisse zwecklos, da diese immer
zu 100% erfüllt wäre.
Um aber die Konsistenz von Geschäftsregeln zu messen, die nicht als DatenbankIntegritätsregeln aktiviert sind, kann folgendes Maß verwendet werden [LPFW09]:
Grad an Konsistenz = 1 −
Anzahl der inkonsistenten Einheiten
Anzahl überprüfter Einheiten
Ein Beispiel für eine Geschäftsregel die Konsistenz beschränkt wäre:
„Das Attribut Alter darf nur Integer-Werte zwischen 0 und 120 beinhalten“.
Um den Grad an Konsistenz für diese Regel zu erhalten, müssen alle Felder dieses Attributs
auf die Einhaltung der Regeln hin überprüft werden. Die Anzahl aller konsistenten Felder
dividiert durch die Anzahl der überprüften Felder ergibt dann, von 1 subtrahiert, den
Grad an Konsistenz.
4.1.2.2 Vollständigkeit
Die Dimension der Vollständigkeit kann in relationalen Datenbanken in drei Bereiche
untergliedert werden [PLW02]:
• Tupel-, Attribut- und Relationenvollständigkeit:
Das Ausmaß, in dem Werte in Tupeln, Attributen oder Relationen nicht
enthalten sind.
• Schemavollständigkeit:
Das Ausmaß, in dem benötigte Relationen und Attribute im Schema
nicht enthalten sind.
• Populationsvollständigkeit:
Das Ausmaß, in dem benötige Datensätze im Vergleich zu einer Referenz nicht enthalten sind [BS06], z.B.: Eine Relation die alle Staaten
der Europäischen Union beschreibt, aber keine Einträge für Polen und
Slowenien enthält, besitzt eine mangelnde Populationsvollständigkeit.
Jede der aufgezählten Vollständigkeiten kann mit folgendem einfachen Verhältnis gemessen werden [LPFW09]:
Grad an Vollständigkeit = 1 −
34
Anzahl unvollständiger Einheiten
Anzahl überprüfter Einheiten
4.1 Definition und Messung von Datenqualität
Das Messen von Schemavollständigkeit oder Populationsvollständigkeit, welches einen
Abgleich zu Realweltobjekten erfordern würde, ist in der Regel nicht automatisierbar. Bei
Anwendung auf relationale Datenbanken kann Vollständigkeit aber auch als das Nichtvorkommen von NULL-Werten angesehen werden [BCFM09]. Unter dieser Betrachtung kann
Tupel- oder Attributvollständigkeit am Anteil der NULL-Werten in den beinhalteten
Feldern gemessen werden. Dadurch ergibt sich die folgende angepasste Metrik:
Grad an Tupel/Attributvollständigkeit = 1 −
Anzahl an NULL-Werten
Anzahl überprüfter Felder
Durch entsprechende Aggregation kann zusätzlich die Relationenvollständigkeit ermittelt
werden, siehe Abschnitt 4.1.2.6. Dabei ist zu beachten, dass wie bereits diskutiert,
NULL-Werte verschiedene Bedeutungen haben können. Nicht jedes Vorkommen eines
NULL-Wertes signalisiert automatisch eine Unvollständigkeit. Ein NULL-Wert kann
die Repräsentation für einen Wert sein, der in der Realwelt nicht existiert. In diesem
Fall repräsentiert ein NULL-Wert eine wertvolle Information und keinen fehlenden Wert.
Daher ist eine Voraussetzungen für eine zuverlässige Messung der Vollständigkeit nach
diesem Prinzip, dass in der Realwelt nicht vorkommende Angaben nicht mit NULL-Werten
gekennzeichnet werden, sondern mit eindeutigen, unmissverständlichen Werten. Eine
nicht-existierende Telefonnummer könnte beispielsweise mit der Zeichenkette „Existiert
nicht“ anstatt mit NULL repräsentiert werden [SMB05].
Ein weiteres Problem stellen sogenannte Dummy-Werte dar. Um Eingabekontrollen
oder entsprechende Integritätsregeln zu umgehen, können Nutzer Standard-Werte eintragen, z.B. bei einer unbekannten Telefonnummer „000-0000000“. Ein solcher Dummy-Wert
stellt somit ebenfalls Unvollständigkeit dar [HGHM11].
Die Daten müssen vor der Anwendung einer Vollständigkeitsmetrik auf das Vorhandensein der erwähnten Probleme untersucht werden. Dummy-Werte können entsprechend
markiert werden und in der Metrik als Repräsentation für Unvollständigkeit berücksichtigt werden. NULL-Werte als Repräsentation für Nichtexistenz in der Realwelt sind zu
beseitigen.
4.1.2.3 Genauigkeit
Genauigkeit ist definiert als der Abstand eines in der Datenbank gespeicherten Wertes v
zu einem genauen Wert v’. Häufig ist v’ ein Realweltobjekt, das beschrieben werden soll.
Eine mögliche Metrik, um Genauigkeit zu messen ist:
Grad an Genauigkeit = 1 −
Anzahl ungenauer Einheiten
Anzahl überprüfter Einheiten
35
4 Datenqualitätsverbesserung
Hierbei muss definiert werden, was konkret eine genaue bzw. ungenaue Einheit ausmacht.
Es ist vorstellbar, dass in bestimmten Fällen kleine Abweichung tolerierbar sind und
nicht ein ungenaues Datum bedeuten. Die Metrik ist also kontextabhängig [LPFW09].
Zur Messung der syntaktischen Genauigkeit einzelner Felder kann beispielsweise ein
Distanzmaß verwendet werden, welches beschreibt, wie entfernt das gespeicherte Datum
von seinem genauen Gegenstück ist. Ein mögliches Distanzmaß für die Untersuchung
von Zeichenketten ist beispielsweise der Editierabstand. Mit dem Editierabstand kann
gemessen werden wie viele Löschungen, Verschiebungen oder Ersetzungen nötig sind,
um eine ungenaue Zeichenkette in eine genaue Zeichenkette zu transformieren. Um
beispielsweise die Zeichenkette „Erlangn“ zu korrigieren, ist die Einsetzung eines „e“
nötig, damit beträgt das Distanzmaß „1“.
Bei der Messung von semantischer Genauigkeit macht ein Distanzmaß weniger Sinn,
hierbei ist eine boolesche Aussage angebracht. Stimmt ein Wert mit seinem Gegenstück
nicht überein, ist er schlicht semantisch ungenau [BS06].
Die eindeutige Messung von Genauigkeit fordert also immer einen Abgleich mit einem
genauen Wert, entweder in einer anderen Datenbank oder in der Realwelt. In der Praxis
gestaltet sich dies schwierig. Der Abgleich des gesamten Datenbestands mit Werten in der
Realwelt ist in der Regel zu teuer und aufwendig bzw. gar unmöglich. Eine Alternative
ist die Anwendung von Stichprobenuntersuchungen. Durch Extrapolation kann dann ein
Schätzwert für die Genauigkeit des untersuchten Datensatzes abgegeben werden. Bei
der Annahme, dass Fehler selten sind, kann die Verwendung von Outlier-Analysen eine
Alternative sein. Dabei werden Werte, die sich stark von den durchschnittlichen Werten
unterscheiden, markiert und einem Experten zu weiteren Untersuchen vorgelegt. Dadurch
können unter anderem auch Genauigkeitsprobleme aufgedeckt werden. Diese Methode
kann aber nicht für alle Daten angewandt werden. Daten, die in einer Datenbank in der
Regel eindeutig sind, wie z.B. E-Mail-Adressen oder Telefonnummern, können damit nicht
auf Genauigkeit geprüft werden. Außerdem erfordern beide vorgestellten Alternativen
signifikanten manuellen Einsatz und sind nicht vollständig automatisierbar.
Eine Möglichkeit dennoch zumindest einen Anteil an syntaktischen Genauigkeitsfehlern
automatisch aufzudecken, ist die umfangreiche Anwendung von Integritätsregeln. Diese
können die Einhaltung von bestimmten Formaten verifizieren oder über Bereichseinschränkungen z.B. die Plausibilität von bestimmten Werten überprüfen. Semantische
Fehler sind aber auch über diesen Weg nicht zu erkennen. Daraus folgt, dass eine zuverlässige und automatisierte Überprüfung der Genauigkeit nur möglich ist, wenn eine
Referenzdatenbank mit genauen Werten zum Abgleich zur Verfügung steht.
36
4.1 Definition und Messung von Datenqualität
4.1.2.4 Zeitgerechtigkeit
Zeitgerechtigkeit misst, wie aktuell Daten sind, um für einen bestimmten Zweck brauchbar
zu sein. Ballou et al. bringen Zeitgerechtigkeit in folgenden mathematischen Zusammenhang [BWPT98]:
n
Zeitgerechtigkeit = max
h
1−
Aktualität
Gültigkeitsdauer
ios
,0
Die Metrik enthält drei einzusetzende Variablen:
1. Aktualität:
Aktualität ist hier definiert als das Alter der Daten vom Ermittlungszeitpunkt bis zum Zeitpunkt ihrer Nutzung. Der Ermittlungszeitpunkt
beschreibt den Zeitpunkt des Erhalts von Daten, dieser ist dabei nicht
zwangsläufig derselbe wie der Zeitpunkt der Aufzeichnung der Daten im
System.
2. Gültigkeitsdauer:
Gültigkeitsdauer ist die Zeitspanne in der Daten valide bleiben. Sie beschreibt, wie oft sich Daten ändern. Ein Geburtsdatum hat beispielsweise
eine unbeschränkte Gültigkeitsdauer, da es sich nie ändert - während
Börsenkurse eine sehr kurze Gültigkeitsdauer haben. Zeitgerechtigkeit ist
normalisiert auf das Intervall [0,1], 1 entspricht dem besten während 0
dem schlechtesten Wert entspricht. Daten mit einer niedrigen Gültigkeitsdauer müssen entsprechend eine hohe Aktualität bzw. ein niedriges Alter
aufweisen, um einen hohen Zeitgerechtigkeits-Wert zu erhalten. Je länger
die Gültigkeitsdauer, desto älter bzw. inaktueller können Daten sein. Die
Gültigkeitsdauer ist in der Metrik von Ballou et al. außerdem eine harte
Grenze. Egal, ob das Alter der Daten die Gültigkeitsdauer um 1% oder
100% überschreitet, es ergibt sich stets der niedrigste ZeitgerechtigkeitsWert 0. Die Gültigkeitsdauer kann über empirische Untersuchungen oder
Expertenschätzungen ermittelt werden.
3. s:
Der Exponent s (s ≥ 0) erlaubt eine Einstellung der Sensitivität, er
ist kontextabhängig und muss von einem Domänenexperten festgelegt
werden. Liegt die errechnete Zeitgerechtigkeit beispielsweise bei 0.7, wird
diese unter Anwendung einer Sensitivität von 2 auf 0.49 reduziert. Bei
37
4 Datenqualitätsverbesserung
Anwendung eines Faktors von 0.5 dagegen, wird die Zeitgerechtigkeit auf
0.84 erhöht. Ein höherer Faktor beschreibt also einen schnelleren Verfall
der Daten während eine niedrigerer Faktor bedeutet, dass Daten länger
aktuell bleiben [PLW02].
Die oben vorgestellte Metrik von Ballou et al. ist abhängig von der Aufzeichnung des
Ermittlungszeitpunkts von Daten als Metainformation. Dies stellt einen zusätzlichen
Aufwand an den Nutzer dar und bedingt ein hohes Bewusstsein für die Wichtigkeit von
Datenqualität.
Nicht alle Organisationen und Domänen benötigen aber derart präzise Metriken.
Ist bekannt, dass kein signifikanter Unterschied zwischen Ermittlungszeitpunkt und
Eintragungszeitpunkt besteht, ist die Errechnung der Aktualität der Daten aus Eintragungszeitpunkt und Zeitpunkt der Nutzung ausreichend präzise. Ein Indikator für die
Verfallsdauer könnte aus der Update-Häufigkeit der Daten ermittelt werden. Verändern
sich z.B. Felder in einem Attribut durchschnittlich 10 Mal im Jahr während ein Feld seit
einem Jahr unverändert geblieben ist, ist dies ein Hinweis für eine mögliche Veralterung.
Diese Methode kann allerdings nur angewandt werden, wenn davon ausgegangen werden
kann, dass inaktuelle Daten selten vorkommen. Je größer der Anteil an inaktuellen
Feldern in einem Attribut, desto ungenauer und unbrauchbarer ist diese Methode, um
die absolute Zeitgerechtigkeit ableiten zu können. Der Domänenexperte muss abschätzen
können, welcher Grad an Präzision nötig ist. In einigen Fällen kann auch schon das
einfache Alter der Daten ein ausreichender Indikator für die Zeitgerechtigkeit der Daten
sein [BS06, LPFW09].
Abschließend ist festzuhalten, dass die vorgestellten Vereinfachungen zu der Metrik von
Ballou et al. nur Indikatoren für Zeitgerechtigkeit darstellen können. Um die Zeitgerechtigkeit präzise zu berechnen, muss die Metrik von Ballou et al. mit sorgfältig ermittelten
Werten für Ermittlungszeitpunkt und für die Gültigkeitsdauer angewandt werden.
4.1.2.5 Redundanzfreiheit
Duplikate kommen vor, wenn ein und dasselbe Realweltobjekt mehrmals in einer Datenbank gespeichert wird. Ein typisches Beispiel für zusätzliche Kosten, die mit Duplikaten
verbunden sind, ist das mehrfache Zustellen eines Briefes zum gleichen Kunden für
den fälschlicherweise mehrere Datensätze geführt werden [BS06]. Potentiell kostspieliger
als die Verursachung unnötiger Portokosten für Briefe wäre das doppelte Versenden
von Industriemaschinen oder die Gewährung einer ungewünschten Überziehung eines
Kreditrahmens durch einen Dublettenfehler.
38
4.1 Definition und Messung von Datenqualität
Ein naiver Ansatz zur Duplikatserkennung wäre der paarweise Vergleich aller Tupel in
einer Datenbank. Der damit verbundene quadratische Aufwand wäre nur bei sehr kleinen
Datenbanken tolerierbar. Es bedarf Algorithmen, die dies umgehen [Nau07]. Dies kann
beispielsweise mit einem Sorted-Neighbourhood-Algorithmus erreicht werden. Hierbei
werden Tupel zuerst nach Ähnlichkeit sortiert und danach nur die Tupel miteinander
verglichen, die innerhalb eines bestimmten Maximalabstands zueinander stehen [HS98].
Das Aufspüren von 100% Duplikaten, also Tupeln mit identischen Feldern, ist über
eine einfache SQL-Anfrage realisierbar [LPFW09]:
SELECT COUNT (DISTINCT eMail)
FROM CUSTOMER;
Durch die Differenz zwischen der Anzahl aller Einträge und der eindeutigen Einträge
lässt sich somit die Anzahl der Dubletten ermitteln. Eine entsprechend einfache Metrik
für Redundanzfreiheit ist:
Redundanzfreiheit = 1 −
Anzahl der Dubletten
Anzahl überprüfter Einheiten
In den meisten Fällen ist die Suche nach identischen Feldern allerdings nicht ausreichend.
Nicht alle Dubletten sind auf diese Weise erkennbar, auch leicht abweichende Einträge
können auf Duplikate hinweisen. Dubletten können dasselbe Realweltobjekt repräsentieren
sich aber dennoch in einigen Feldern unterscheiden. Es kann beispielsweise vorkommen,
dass durch Tipp- oder Hörfehler bei Erfassung von Namen, Kunden mehrfach angelegt
werden. Auch das Verwenden von uneinheitlichen Abkürzungen kann zu Dubletten führen,
z.B. „Frankfurt a.M.“ und „Frankfurt am Main“ [HGHM11].
Zur effektiven Erkennung von Duplikaten muss daher ein Ähnlichkeitsmaß bestimmt
werden. Übersteigen zwei Tupel einen Schwellwert an Ähnlichkeit werden sie als potentielles Duplikat markiert. Die Bestimmung eines geeigneten Ähnlichkeitsmaßes ist
stark domänenabhängig und muss von einem Experten vollzogen werden [Nau07]. Ein
mögliches Ähnlichkeitsmaß ist der schon erwähnte Editierabstand.
4.1.2.6 Aggregierung der Metriken
Alle bisher vorgestellten Metriken, bis auf Redundanzfreiheit, können sowohl auf Attributsals auch Tupelebene angewandt werden. Durch entsprechende Aggregierung der Attributsoder Tupelebene können Messwerte für die Relations- und Datenbankebene bestimmt
39
4 Datenqualitätsverbesserung
werden. Die Prüfung auf Dubletten macht nur auf Attributs-, Relations- oder Datenbankebene Sinn.
Das Vorgehen zur Aggregierung soll am Beispiel der Metrik für Zeitgerechtigkeit gezeigt
werden:
n
Zeitgerechtigkeit = max
h
1−
Aktualität
Gültigkeitsdauer
ios
,0
In diesem Fall bezieht sich die vorgestellte Metrik auf ein einzelnes Feld. Durch Summierung der Einzelwerte kann die Zeitgerechtigkeit pro Attribut oder Tupel wie folgt
errechnet werden:
Zeitgerechtigkeit je Attribut/Tupel =
Pn
i=1
M (Fi )
n
Die erwähnte Metrik für Zeitgerechtigkeit je Feld wird hier als M zusammengefasst,
während Fi für ein bestimmtes Feld steht. Um die Zeitgerechtigkeit je Attribut zu
bestimmen, werden hier also die Zeitgerechtigkeits-Werte aller n-Felder eines Attributs
summiert und durch die Anzahl aller Felder im Attribut geteilt. Analog kann auch die
Zeitgerechtigkeit je Tupel errechnet werden.
Die Zeitgerechtigkeit je Relation lässt sich durch Aggregierung der aggregierten Tupeloder Attributszeitgerechtigkeits-Werte wie folgt bestimmen:
Zeitgerechtigkeit je Relation =
Pm
j=1
A(Sj )
m
Hierbei steht A für die Metrik zur Aggregierung von Zeitgerechtigkeit auf Tupeloder Attributsebene und Sj für ein bestimmtes Tupel oder Attribut. Es werden also
alle Attributszeitgerechtigkeits-Werte oder Tupelzeitgerechtigkeits-Werte summiert und
durch die Anzahl der m-Attribute oder Tupel in einer Relation geteilt.
Die Ermittlung der Zeitgerechtigkeit für die gesamte Datenbank erfolgt auf dieselbe
Weise durch Aggregierung der Zeitgerechtigkeits-Werte je Relation. Analog können alle
in diesem Unterkapitel vorgestellten Metriken aggregiert werden.
Zusätzlich dazu kann man bei der Aggregierung jedes Attribut, Tupel oder Relation
mit einem Gewicht zwischen 0 und 1 versehen. Dadurch lässt sich die Relevanz einer jeden
Einheit bestimmen. Bei Untersuchung von Daten für eine telefonische Kundenumfrage
wäre z.B. das Attribut „Telefonnummer“ von höchster Wichtigkeit, dem Nachnamen und
der Anrede des Ansprechpartners würde ebenfalls hohe Relevanz zukommen. Attribute
bezüglich Adressdaten wären dagegen unwichtig.
40
4.1 Definition und Messung von Datenqualität
4.1.3 Fazit
Das Messen von Datenqualität ist unverzichtbare Grundlage für ihre nachhaltige Verbesserung. Die Ergebnisse dieses Abschnitts haben aber gezeigt, dass nicht alle Dimensionen
objektiv erfassbar und quantifizierbar sind. Auch die Messung von objektiven Dimensionen ist nicht immer ohne weiteres möglich und bedarf Voraussetzungen, siehe Tabelle 4.1.
Die Dimension der Genauigkeit ist praktisch am schwierigsten messbar, da das VorhanDimension
Genauigkeit
Zeitgerechtigkeit
Konsistenz
Tupel-, Attribut- und Relationenvollständigkeit
Populations- und Schemavollständigkeit
Redundanzfreiheit
Voraussetzungen
Genaue Referenzdaten
Genaue Metadaten
Vollständiger Regelsatz
Vollständiges Schema und Klarheit über
Bedeutung von NULL-Werten
Genaue Referenzdaten
Genaues Ähnlichkeitsmaß
Tabelle 4.1: Voraussetzungen für die Messbarkeit von Datenqualitätsdimensionen
densein umfangreicher genauer Referenzdaten nicht vorrausetzbar ist. Als Alternative
bleibt die Bewertung durch manuelle Stichprobenuntersuchungen.
Kennzahlen für die Bewertung der Zeitgerechtigkeit sind stark von genauen Metadaten
abhängig, welche das Alter der Daten und ihre Gültigkeitsdauer beschreiben. Je ungenauer
die Metadaten, desto ungenauer ist die sich ergebende Messung.
Die Güte der Messung für Konsistenz hängt von der Vollständigkeit der Regelmenge ab,
welche die logischen Zusammenhänge in den Daten beschreibt. Der Grad der Einhaltung
der Regelmenge ist in relationalen Datenbank aber vollständig automatisiert messbar.
Voraussetzung für die Messung von Populations- oder Schemavollständigkeit ist das
Vorhandensein genauer Referenzdaten, wodurch das automatisierte Messen in der Regel
nicht möglich ist. Unter der Annahme, dass Vollständigkeit als das Vorhandensein
von NULL-Werten betrachtet wird, ist aber die automatische Messung von Tupel-,
Attribut- und Relationenvollständigkeit möglich. Die Güte der Messung ist hierbei vom
Vorhandensein aller nötigen Attribute und Relationen im Schema und einem klaren
Verständnis über die Bedeutung der enthaltenen NULL-Werte abhängig.
Zur Messungen oder Beseitigung von Redundanzen existiert eine Vielzahl von automatisierten Methoden. Ihre Effektivität hängt üblicherweise von der genauen Definition
eines Ähnlichkeitsmaßes ab. Eine vollständige Bewertung der Methoden zur Beseitigung
41
4 Datenqualitätsverbesserung
von Redundanzen geht über den Rahmen dieser Masterarbeit hinaus. Eine umfangreiche
Zusammenfassung aktueller Methoden findet sich in [BS06].
Abschließend ist festzustellen, dass sich zahlreiche Hindernisse für die automatisierte
Messung der ausgewählten Dimensionen ergeben. Allerdings ist nach Redman kein
Messungssystem perfekt. Es existieren immer wichtige Kennzahlen, die nicht erfasst
werden können. Dennoch sind Messungen bei Datenqualitätsprojekten unverzichtbar.
Ein Messungssystem kann eine sachliche Basis für Managemententscheidungen schaffen.
Durch umfangreiches Domänenwissen können Daten aus Messwerten interpretieren und
ergänzt werden. Messungen können Ungewissheiten reduzieren und Domänenexperten
nützliche Hinweise und eine Richtung vorgeben [Red97].
4.2 Analyse und Verbesserung von Datenqualität
Nach der Festlegung von Anforderungen und der Anwendung von geeigneten Metriken gilt
es, die gewonnenen Erkenntnisse zu analysieren. Wurden qualitative Mängel identifiziert,
muss zur Verbesserung dieser gezielt analysiert werden, wodurch die Fehler entstanden
sind. Danach müssen die geeignetsten Maßnahmen, zu deren Beseitigung oder zukünftigen
Verhinderung ausgewählt werden. Eine aktive Verbesserung ist allerdings nicht immer
möglich, wenn z.B. Daten aus externen Quellen stammen und keine volle Kontrolle über
die Daten besteht. Die Alternative ist dann der bewusste Umgang mit Datenmängeln
[Nau07, HGHM11].
Nachfolgend sollen Möglichkeiten zur aktiven Verbesserung der Daten betrachtet
werden.
4.2.1 Maßnahmen zur Verbesserung von Datenqualität
Es existieren zwei verschiedene grundlegende Maßnahmenkategorien zur Verbesserung
von Datenqualität. Unter die erste Kategorie fallen datengetriebene Maßnahmen, welche
die Bereinigung bereits existierender Fehler zum Ziel haben. Die zweite Kategorie dagegen
beinhaltet prozessgetriebene Maßnahmen, welche die Verhinderung zukünftiger Fehler
zum Ziel haben [BCFM09]. Folgend sollen beide Kategorien charakterisiert werden.
42
4.2 Analyse und Verbesserung von Datenqualität
4.2.1.1 Datengetriebene Maßnahmen
Datengetriebene Maßnahmen haben gemeinsam, dass ein Abgleich von Daten zu Referenzobjekten stattfindet, die als korrekt erachtet werden. Daten können mit der Realwelt,
anderen Daten oder Regeln abgeglichen werden [Red97]:
• Vergleich zu Realweltobjekten:
Ein Abgleich von Daten mit ihren Realweltentsprechungen muss zur
Datenqualitätsverbesserung zwangsläufig angewandt werden, wenn es
keine Möglichkeit zur automatischen Ermittlung oder Ausbesserung der
inkorrekten Daten gibt. Werden Datenqualitätsmängel beispielsweise
durch fehlende Kunden-Adressen hervorgerufen, werden diese in den
meisten Fällen über direkte Kontaktaufnahme mit den betreffenden
Kunden beschafft werden müssen. Die Verbesserung von Daten durch
Vergleich zu Realweltobjekten lässt sich schwierig automatisieren und
bringt daher einen relativ großen manuellen Aufwand mit sich.
• Vergleich zu Datenbankobjekten:
Bei dieser Technik werden Datenbankobjekte mit anderen internen oder
externen Datenbankobjekten verglichen, um auf diese Weise Inkonsistenzen ausfindig zu machen.
Der Vergleich mit internen Datenbankobjekten ist vor allem zur Deduplizierung geeignet. Tupel werden hierbei mit anderen Tupeln innerhalb
derselben Datenbank verglichen. Duplikate werden bei diesem Vergleich
mit Hilfe von Ähnlichkeitsmaßen ausfindig gemacht.
Der Abgleich zu externen Datenbankobjekten kann zur generellen
Beseitigung von Mängeln genutzt werden. Hier findet ein Abgleich
zwischen den Objekten in einer Datenbank mit Objekten in einer
Referenzdatenbank statt, welche die gleichen Realweltobjekte beschreibt. Es handelt sich um eine relativ schnelle und effiziente
Methode. Unterscheidet sich ein Eintrag zwischen den Datenbanken kann dieser markiert und später einer genaueren Untersuchung
unterzogen werden oder direkt aus der Referenzdatenbank übernommen werden. Dabei besteht aber das Risiko, dass die Referenzdatenbank möglicherweise ebenfalls Daten mangelnder Qualität speichert.
43
4 Datenqualitätsverbesserung
• Vergleich zu Regeln:
Durch den Abgleich von Daten zu Regeln können vor allem inkonsistente
Daten erkannt werden. Die Möglichkeiten zur Anwendung von Regeln
sind vielfältig. Durch Anwendung von Datenbank-Integritätsregeln und
der Untersuchung von Abhängigkeiten, lassen sich die Korrektheit der
Daten oder die Einhaltung von Geschäftsregeln überprüfen. Es bedarf
Expertenwissens und einer genauen Analyse der Daten, um eine Menge
von Regeln zu entwickeln, welche den Großteil möglicher Fehler abdeckt.
Diese Regeln können sowohl bei prozessgetriebenen als auch bei datengetriebenen Maßnahmen verwendet werden. Bei datengetriebenen
Maßnahmen wird die Regelmenge auf die Daten angewandt, um fehlerhafte Daten zu erkennen und zu markieren. Die markierten Daten
werden dann von Experten betrachtet und korrigiert.
Das Prinzip von datengetriebenen Maßnahmen ist der Vergleich von Daten zu anderen
Objekten. Daten, die beim Vergleich auffallen, werden markiert und anschließend korrigiert. Bei dieser Klasse von Maßnahmen handelt es sich aber immer um eine nachträgliche
Korrektur bestehender Fehler.
4.2.1.2 Prozessgetriebene Maßnahmen
Zur Ergänzung datengetriebener Maßnahmen bietet sich die Kategorie der prozessgetriebene Maßnahmen an. Im Gegensatz zu datengetriebenen Maßnahmen, welche
eine nachträgliche Beseitigung von Fehlern beabsichtigen, beschreiben prozessgetriebene
Maßnahmen Möglichkeiten zur Verhinderung zukünftiger Fehler.
Diese Kategorie beinhaltet Maßnahmen zur Umgestaltung von Prozessen, Verbesserung
von Systemen und den Einsatz von Regeln und Abhängigkeiten [Red97, BCFM09,
HGHM11]:
• Verwendung von Integritätsregeln:
Datenbankregeln und Prozeduren können sicherstellen, dass Daten definierte Geschäftsregeln einhalten. Als Grundlage dafür können dieselben
Datenqualitätsregeln wie zur Datenqualitätsmessung benutzt werden.
Regeln erlauben die Einhaltung von Bedingungen verschiedener Komplexität, darunter:
– Formatsbeschränkungen (z.B. Das Attribut PLZ muss aus 5 Ziffern
bestehen)
44
4.2 Analyse und Verbesserung von Datenqualität
– Bereichsbeschränkungen (z.B. Das Attribut Alter darf nur Werte
zwischen 0 und 120 beinhalten)
– Datenfeldkombinationen und Abhängigkeiten (z.B. Zur Markierung
unwahrscheinlicher Daten wie [Alter=21, Größe=120cm])
Daten welche die formulierte Regelmenge nicht befriedigen, werden vom
DBMS abgewiesen. Daten mangelnder Qualität werden so in der Datenbank gar nicht erst gespeichert. Bei Eingabe von unbefriedigenden Daten
wird der Nutzer dazu aufgefordert seine Eingaben anzupassen oder die
Eingabedaten zu überprüfen. Eine Korrektur ist zu diesem Zeitpunkt
effektiver und kostengünstiger durchzuführen als nachträglich. Der Kontext der Erfassung ist zu diesem Zeitpunkt noch aktuell, welches eine
einfachere Klärung von Zweifeln erlaubt. Besonders wenn zum Zeitpunkt
der Dateneingabe Kundenkontakt besteht, z.B. bei einem telefonischen
Verkaufsgespräch, ist es wesentlich effektiver eventuelle Inkonsistenzen
direkt zu klären als durch eine nachträgliche Recherche.
• Verwendung von Abhängigkeiten:
Aktuell besteht in der Literatur ein gesteigertes Interesse bei der Erforschung von Abhängigkeiten zur Verbesserung von Datenqualität. Resultat
davon ist eine Erweiterung der klassischen funktionalen Abhängigkeiten,
um eine größere Anzahl an Fehlern und Mängeln einzufangen [Fan08].
Funktionale Abhängigkeiten stellen Bedingungen an mögliche gültige
Ausprägungen des Datenbankschemas dar [KE11]. In einer Relation die
beispielsweise Adressen aufzeichnet ist der Name der Stadt funktional
von der Postleitzahl abhängig. Funktionale Abhängigkeiten werden wie
folgt dargestellt:
α→β
Alpha und Beta repräsentieren Mengen von Attributen. Die Werte in einer
Menge von Attributen bestimmen, welche möglichen Ausprägungen die
Werte in der anderen Menge besitzen dürfen. Wenn zwei Tupel identische
Werte in α besitzen, dann müssen auch ihre Werte in β übereinstimmen.
Funktionale Abhängigkeiten sind ein zentrales Konzept in der relationalen
Entwurfstheorie. Die funktionalen Abhängigkeiten in Daten spielen eine
entscheidende Rolle bei Schemaentwurf und der Normalisierung von
Relationen [KE11, GMUW09].
45
4 Datenqualitätsverbesserung
Abhängigkeiten sind auch zum Zwecke der Datenqualitätsverbesserung
hilfreich. Sie erlauben es, die Semantik von Daten deklarativ zu beschreiben. Inkonsistenzen und Fehler können als Verletzungen der Abhängigkeiten erkannt werden [Fan08].
Die oben vorgestellten funktionalen Abhängigkeiten wurden allerdings
hauptsächlich zum Schemaentwurf entwickelt. Sie sind im Kontext von
Datenqualität nicht ausdrucksstark genug und bieten häufig nicht ausreichende Mittel um alle relevanten Probleme zu beschreiben. Im obigen
Beispiel wurde P LZ → Stadt als mögliche funktionale Abhängigkeit
vorgestellt. In Großbritannien bestimmt die PLZ neben der Stadt aber
auch die Straße. Da funktionale Abhängigkeiten für alle Tupel in einer Tabelle gelten, ist diese Abhängigkeit nicht ausdrückbar, falls in
dieser Relation nicht ausschließlich großbritannische Adressen vorkommen. Die Lösung für dieses Problem stellt die Einführung konditionaler
funktionaler Abhängigkeiten dar, diese gelten nur für eine Untermenge
einer funktionalen Abhängigkeit [BFG+ 07]. Dadurch lässt sich die vorher
erwähnte Abhängigkeit nun folgendermaßen ausdrücken:
[P LZ, Land = GB] → [Straße, Stadt]
Auch komplexere Geschäftsregeln wie „Alle Kunden, die für über 100€
einkaufen, bekommen 10% Rabatt“ lassen sich auf diese Weise deklarativ
formulieren:
[Einkauf ssumme > 100€] → [Rabatt = 10%]
Durch Anwendung von konditionalen Abhängigkeiten können Datenmängel erkannt und verhindert werden. Domänenexperten können auf dieser Basis Regeln formulieren die Eingaben von Benutzern einschränken. Offensichtlich inkonsistente Einträge wie
z.B.: [P LZ = 12345] → [Stadt = Erlangen] können direkt abgelehnt werden. Einträge, die unwahrscheinlich sind, wie z.B.:
[Alter = 17] → [Jahresgehalt > 50.000] können als solche markiert und einem Experten zu näheren Untersuchung vorgelegt werden
[CM08]. Diese Abhängigkeiten können in einer relationalen Datenbank
über Trigger implementiert werden. Sie müssen entweder von Domänenexperten erkannt werden oder können über bestimmte Werkzeuge zur
46
4.2 Analyse und Verbesserung von Datenqualität
Datenanalyse ausfindig gemacht werden.
• Erhöhung der Benutzerfreundlichkeit:
Eine weitere Gruppe von Möglichkeiten zur Systemoptimierung sind Maßnahmen zur Verbesserung der Gebrauchstauglichkeit von Eingabeprozeduren. Darunter fällt die Verbesserung von Anwendungsprogrammen
zur Eingabe von Daten oder auch die Vermeidung manueller Eingaben
durch z.B. die Verwendung von Barcode-Lesern. Eine unübersichtliche
Gestaltung der Nutzeroberflächen oder eine unlogische Anordnung von
Eingabefeldern in Anwendungsprogrammen kann zu Datenfehlern beitragen. Fragt ein Eingabedialog zur Aufnahme von Patientendaten zum
Beispiel zuerst den Vornamen und dann den Nachnamen des Patienten
ab, während ein weiterer Eingabedialog im selben System die Namensdaten in umgekehrter Reihenfolge abfragt, kann dies unnötig Fehler
provozieren.
• Prozessoptimierung:
Maßnahmen zur Prozessoptimierung beschäftigen sich mit der Umgestaltung von Prozessen, die zu unbefriedigenden Daten geführt haben. Dazu
gehören unter anderem:
– Die Umgestaltung von Verantwortungen
– Die räumliche Umverteilung von zusammenarbeitenden Organisationseinheiten
– Die Erhöhung der zur Verfügung stehenden Ressourcen
– Die Ergreifung von Schulungsmaßnahmen für Mitarbeiter
Die Optimierung von Prozessen ist die aufwendigste Gruppe von Maßnahmen zur Verbesserung von Datenqualität. Allerdings werden Fehler damit
an ihrer Wurzel beseitigt und es besteht die Chance eine Reihe positiver
Nebenwirkung zu realisieren. Die Prozessoptimierung hat das Potential die Produktivität von Organisationen zu erhöhen, Prozesskosten zu
senken und Durchlaufzeiten zu verbessern.
47
4 Datenqualitätsverbesserung
4.2.1.3 Bewertung der Maßnahmen
Die Anwendung datengetriebener Maßnahmen ist kurzfristig gesehen kostengünstiger als
die Anwendung von prozessgetriebenen Maßnahmen. Die Analyse von möglichen Ursachen
für Fehler, die Umgestaltung von Prozessen sowie der Entwurf eines Regelsatzes, der in
der Lage ist, zukünftige Fehler zu vermeiden, stellen alles Aktivitäten dar, die wesentlich
anspruchsvoller und aufwändiger sind als einmalige punktuelle Reinigungen. Aus diesen
Gründen entstehen durch prozessgetriebene Maßnahmen in der Regel höhere Kosten
als durch datengetriebene Maßnahmen. Prozessgetriebene Ansätze sind im Allgemeinen
dafür deutlich effektiver als datengetriebene Ansätze, da sie das Problem an der Wurzel
angehen. Je nach Art und Weise der Fehler muss abgewägt werden, welche Gruppe von
Maßnahmen am besten geeignet ist.
Für die beschriebenen Maßnahmen können drei verschiedene Vorgehensweise im Management von Datenqualitätsprojekten erkannt werden:
• Proaktives Vorgehen:
Beim proaktiven Vorgehen werden neben einer initialen Bereinigung
von Mängeln auch Maßnahmen zur Verhinderung der Entstehung der
Fehler getroffen. Es findet eine kontinuierliche Überwachung auf mögliche
Mängel statt sowie eine kontinuierliche Ergreifung von Maßnahmen zu
deren Beseitigung und Verhinderung.
• Reaktives Vorgehen:
Reaktives Vorgehen bedeutet die einmalige Bereinigung eines bestimmten
Datenqualitätsproblems. Es werden keine Maßnahmen zur Verhinderung
der Fehler getroffen.
• Laissez-Faire:
Bei der Laissez-Faire Vorgehensweise werden keine besonderen Maßnahmen ergriffen, um Fehler zu beseitigen. Fehler werden unsystematisch
korrigiert wenn sich die Gelegenheit dazu ergibt oder wenn konkrete
Beschwerden eintreffen. Dann werden nur speziell die Fehler beseitigt
welche die Beschwerde hervorgerufen haben [Red97].
Ein proaktives Vorgehen ist offensichtlicherweise die sicherste Methode, um eine hohe Datenqualität zu garantieren. Je nach Art der Fehler können zufriedenstellende Ergebnisse
allerdings auch mit den weniger kostspieligen und aufwendigen reaktiven oder LaissezFaire Vorgehensweisen erreicht werden. Es ist nötig, mögliche Verbesserungsmaßnahmen
48
4.2 Analyse und Verbesserung von Datenqualität
zu bewerten. Die Wahl des optimalen Vorgehens hängt von der Änderungshäufigkeit
der Daten und ihrer Bedeutung für den Nutzer ab, wie in Abbildung 4.1 dargestellt.
Die Bedeutung der Daten wird von den spezifischen Geschäftsprozessen einer Orga-
Bild 4.1: Maßnahmen Portfolio [Red97]
nisation bestimmt. Quantifizieren lässt sich diese z.B. durch die Summe an Kosten,
welche durch eventuelle Qualitätsmängel in diesen Daten hervorgerufen würden. Datenfehler können je nach ihrer Art unter anderem zu Imageschäden, Zusatzaufwänden oder
Fehlentscheidungen führen.
Aus der Änderungshäufigkeit der Daten kann abgeleitet werden, wie lange es dauert
bis Daten nach einer initialen Bereinigung wieder bei dem mangelnden anfänglichen
Datenqualitätsniveau angelangt sind.
Die Abbildung 4.1 zeigt, dass eine proaktive Vorgehensweise umso lohnender ist,
je häufiger sich Daten ändern. Die kumulierten Kosten für punktuelle Bereinigungen
steigen mit der Frequenz von Datenänderungen. Je häufiger diese angewandt werden
müssen, desto geringer ist der dadurch ersparte Zeit- und Kostenaufwand gegenüber
einer proaktiven Vorgehensweise. Wohingegen bei statischen und unkritischen Daten
selbst eine Laissez-Faire-Vorgehensweise ausreichend sein kann.
Die Entscheidung für den Einsatz einer bestimmten Vorgehensweise muss von einem
Domänenexperten getroffen werden, welcher mit den Geschäftsprozessen seiner Orga-
49
4 Datenqualitätsverbesserung
nisation vertraut ist und bewerten kann, in wie fern Qualitätsmängel diese negativ
beeinflussen würden [Red97, BCFM09, Eng99, HGHM11].
4.2.2 Verbesserung von Datenqualitätsdimensionen
Folgend soll untersucht werden wie die in diesem Kapitel beschriebenen Maßnahmen
zur Verbesserung der vorher ausgewählten Dimensionen in relationalen Datenbanken
praktisch umgesetzt werden können.
4.2.2.1 Zeitgerechtigkeit
Um Zeitgerechtigkeit messen und verbessern zu können müssen in der Datenbank Metadaten hinterlegt sein, welche das Alter von Daten beschreiben. DBMS welche den
SQL:2011-Standard erfüllen, bieten dazu interne Sprachkonstrukte an [KM12]. In DBMS
welche diesem neuesten Standard nicht gerecht werden, bleibt die Implementierung
von zeitlichen Aspekten über die Applikationslogik. Sind diese Voraussetzungen erfüllt,
können Daten, die Gefahr laufen obsolet zu werden, durch kontinuierliche Messungen
erkannt und markiert werden. Zur Ausbesserung der markierten Daten bieten sich dann
die Möglichkeiten der Aktualisierung über Vergleiche mit Referenzdatenbanken oder der
Aufnahme von Daten aus der Realwelt.
4.2.2.2 Vollständigkeit
Unter der Annahme, dass Vollständigkeit als das nicht vorkommen von NULL-Werten
betrachtet wird, können zur Verhinderung dieser Integritätsregeln angewandt werden.
Mit der Definition von NOT NULL-Bedingungen können Benutzer dazu gezwungen
werden, Werte für bestimmte Attribute anzugeben. Dies empfiehlt sich aber nur bei
essentiell wichtigen Attributen, ohne die ein Datensatz nutzlos wäre.
Eine andere Möglichkeit bietet sich, falls funktionale oder konditionale Abhängigkeiten
für eine Menge von Attributen existieren. In diesem Fall können die Werte für die
abhängige Menge von Attributen automatisch bestimmt werden.
Können keine Abhängigkeiten erkannt werden, bleibt als Alternative die Vollständigkeit
über Datenermittlung aus der Realwelt oder Referenzdatenbanken auszubessern.
4.2.2.3 Konsistenz
Konsistenz beschreibt logische Zusammenhänge zwischen Daten in einer Datenbank. Die
Sicherung der Konsistenz kann vollständig über Datenbankregeln umgesetzt werden. Die
50
4.2 Analyse und Verbesserung von Datenqualität
Herausforderung hierbei besteht darin, eine Menge von Regeln zu formulieren die alle
Zusammenhänge abdeckt. Dazu ist umfangreiches Expertenwissen nötig.
Sind Integritätsbedingungen bereits vor ihrer Definition verletzt, müssen Daten zuerst gereinigt werden. Dazu eignet sich wiederum das Ausbessern durch Vergleich mit
Realweltobjekten oder Referenzdatenbanken.
4.2.2.4 Genauigkeit
Datenbankregeln können die Genauigkeit von Werten nicht garantieren [Red97]. Ein Wert,
der alle gestellten Formatsvorgaben, Bereichseinschränkungen und Probabilitätsbedingungen erfüllt, kann dennoch ungenau sein. Die Verwendung von Datenbankregeln kann
aber die Wahrscheinlichkeit für das Eintreten ungenauer Werte verringern. Wird z.B. die
Postleitzahl einer Münchner Adresse in eine Relation, die Adressen beschreibt, eingefügt,
kann der Bereich der möglichen genauen Werte durch Anwendung von Datenbankregeln
auf ein Intervall zwischen 80331 und 81929 beschränkt werden. Werden keine Regeln
angewandt, können beliebige Werte eingesetzt werden, womit die Wahrscheinlichkeit für
eine ungenaue Angabe deutlich wächst. Dennoch besteht beim obigen Beispiel auch bei
umfangreicher Anwendung von Regeln die Möglichkeit für die Eingabe von 1597 falschen
Werten.
Ungenaue Werte, die durch Datenbankregeln nicht erkannt werden können, müssen
über den Abgleich mit Referenzdatenbanken oder den Abgleich mit Realweltobjekten
aufgespürt und beseitigt werden.
4.2.2.5 Redundanzfreiheit
Das Einsetzen von Dubletten kann teilweise über den Einsatz von Schlüsselbedingungen
für identifizierende Attribute vermieden werden, beispielsweise durch den Einsatz von
UNIQUE-Bedingungen für eindeutige Attribute wie z.B. E-Mail-Adressen. Ist eine Kombination von Tupeln identifizierend, wie z.B. Vorname, Nachname und Adresse, können
zur Einhaltung der Eindeutigkeit dieser Kombination, Trigger verwendet werden.
Dubletten, die z.B. durch Tippfehler oder inkonsistente Verwendung von Abkürzungen
entstehen, können damit nicht verhindert werden. Zur Bereinigung bereits existierender
Dubletten stehen verschiedene automatische Methoden, wie z.B. das bereits erwähnte
Sorted-Neighbourhood-Verfahren zur Verfügung, welche Tupel unter Verwendung von
Ähnlichkeitsmaßen vergleichen, um mögliche Dubletten zu identifizieren [HS98].
51
4 Datenqualitätsverbesserung
4.3 Zusammenfassung
In diesem Kapitel wurde untersucht, auf welche Weise die Phasen des TDQM zur
Verbesserung der Datenqualität in einer relationalen Datenbank, praktisch angewandt
werden können. Es wurden zuerst Dimensionen identifiziert, die für eine automatisierbare
Messung geeignet sind. Danach wurden quantitative Metriken für die Messung der
Dimensionen gefunden und diskutiert, welche Voraussetzungen erfüllt werden müssen, um
die Metriken praktisch umsetzen zu können. Anschließend wurden mögliche Maßnahmen
zur Verbesserung von Datenqualität vorgestellt und wie diese auf die ausgewählten
Dimensionen anzuwenden sind. Außerdem wurden Vorgehensmodelle zur Implementierung
der Verbesserungsmaßnahmen diskutiert. Es wurde erklärt, wie unter Berücksichtigung
der vorher ermittelten Messwerte zu bewerten ist welches Vorgehensmodell sich in welchen
Fällen am besten eignet.
In Abbildung 4.2 sind die Ergebnisse des Kapitels übertragen auf die Phasen des
TDQM, grafisch dargestellt. In der ersten Phase müssen Dimensionen ausgewählt und
die Anforderungen an ihr gewünschtes Niveau an Datenqualität definiert werden. In der
Bild 4.2: Das Verbesserungs-Konzept
52
4.3 Zusammenfassung
zweiten Phase werden Messungen anhand der ermittelten Metriken durchgeführt und
die Ergebnisse dem Nutzer zur Verfügung gestellt. In der nachfolgenden Phase muss der
Nutzer anhand der Kennzahlen bewerten, welches Vorgehen am geeignetsten ist, um die
Datenqualität der ausgewählten Dimensionen zu sichern. In der vierten Phase werden
die ausgewählten Maßnahmen ausgeführt. Nach Abschluss aller Phasen erfolgt stets eine
neue Iteration.
53
5 Entwicklung eines Prototypen
Nachdem das Thema „Datenqualität“ im bisherigen Verlauf aus einem theoretischen Blickwinkel eingehend beleuchtet wurde, soll im nachfolgenden praktischen Teil dieser Arbeit
eine Applikation zur automatisierten Verbesserung von Datenqualität entwickelt werden.
Der Prototyp im Folgenden auch „ruleDQ“ soll bisher beschriebene Konzepte praktisch
umsetzen. Dafür wird beispielhaft das Szenario von medizinischen Verbundsdatenbanken
angenommen.
Die Idee hinter ruleDQ ist es, Praxismanagern ein Regelsystem zur Verfügung zu
stellen, welches es ihnen ermöglicht, selbständig die Qualität ihrer Daten zu messen und
zu analysieren
5.1 Anforderungsanalyse
In diesem Kapitel sollen nötige Anforderungen an ruleDQ gefunden wurden.
5.1.1 Fragebögen
Ein Jahr vor Anfang dieser Arbeit wurden Fragebögen an Praxismanager von medizinischen Verbünden verschickt. Diese sollen an dieser Stelle analysiert werden, um eine
Ausgangsbasis für die Formulierung von Anforderungen zu schaffen. In den Fragebögen wurden die Praxismanager über Datenqualitätsprobleme in ihrem Verbund und
Maßnahmen zur Messung und Beseitigung dieser befragt.
Die erste Gruppe von Fragen richtete sich an Datenqualitätsprobleme. Darin stellte
sich heraus, dass alle Befragten Praxen häufig auf Datenqualitätsmängel stoßen, siehe
Abbildung 5.1. Wie aus der Abbildung zu erkennen ist, ergaben sich vor allem Probleme
mit unvollständigen und falschen Daten. Probleme mit der Zeitgerechtigkeit von Daten
kamen derweilen seltener vor. Wie in Abbildung 5.2 dargestellt ist, wurden unvollständigen
Daten hierbei größere negative Auswirkungen zugeschrieben als falschen Daten.
Die zweite Gruppe von Fragen richtete sich an bestehende Maßnahmen zur Messung
und Verbesserung von Datenqualität. Zwei der drei Befragten gaben an, keine Messungen
55
5 Entwicklung eines Prototypen
Bild 5.1: Vorkommen von Datenqualitätsproblemen
Bild 5.2: Auswirkungen von Datenqualitätsproblemen
durchzuführen. Bei der Person, die angab Messungen durchzuführen, konnte durch
spätere Nachfrage durch den Autor dieser Arbeit festgestellt werden, dass es sich dabei
um manuelle Überprüfungen nach dem Laissez-Faire Vorgehen handelte. Daraus ergibt
sich, dass bei der Messung von Datenqualität großer Verbesserungsbedarf besteht. Bei
Fragen zu Verbesserungsmaßnahmen gaben alle Befragten an, Mitarbeiterschulungen
und manuelle Verbesserungen durchzuführen.
Die dritte und letzte Kategorie von Fragen richtete sich an das Vorhandensein von
Regeln. Alle Befragten gaben darin an, dass sie daran interessiert wären, ein System
einzusetzen, dass es ihnen erlauben würde, selbstformulierte Regeln automatisch zu
evaluieren. Zwei Drittel der Befragten waren zudem nach eigenen Angaben mit boolescher
Algebra vertraut.
56
5.1 Anforderungsanalyse
Zusammenfassend lässt sich feststellen, dass alle Befragten deutlich von Datenqualitätsmängeln betroffen waren. Sie verfügten über keine Systeme zur automatisierten
Messung von Datenqualität aber gaben an, daran interessiert zu sein.
5.1.2 Interviews
Im Rahmen dieser Arbeit wurden zusätzlich zu den vorher erwähnten Fragebögen Interviews mit drei ausgewählten Verantwortlichen in medizinischen Versorgungszentren
geführt. Die Interviews hatten den Zweck, die Erkenntnisse, die aus den Fragebögen gewonnen wurden, zu vertiefen. Es wurden dabei offene Fragen zu Datenqualitätsproblemen,
bestehenden Maßnahmen zur Behebung dieser sowie zur Entwicklung der Situation seit
Erhebung der Fragebögen gestellt. Besonderer Fokus der Gespräche war die Identifizierung
von bestehenden Regeln und Mustern zur Behandlung von Datenqualitätsproblemen.
Die Interviews konnten die Ergebnisse der Fragebögen bestätigen. Die befragten
Personen gaben an, regelmäßig auf Fehler in ihrem Datenbestand zu stoßen und Fehlerbehebungen nach der Laissez-Faire Vorgehensweise durchzuführen. Es existierten weiterhin
keine automatisierten Systeme zur Überwachung und Messung der Datenqualität. Alle
Befragten gaben an, Interesse an softwaretechnischen Lösungen zur Verbesserung der
Datenqualitätssituation zu besitzen. Es konnte also festgestellt werden, dass sich die
Situation seit Erhebung der Fragebögen in Bezug auf Datenqualitätsmaßnahmen nicht
verbessert hatte.
Zusätzlich zu den Erkenntnissen aus den Fragebögen konnten Regeln erkannt werden,
welche die Praxen regelmäßig auf ihren Datenbestand anwendeten. Im Besonderen
handelte es sich dabei um konditionale und funktionale Abhängigkeiten, die sich aus
gesetzlichen Vorgaben und Verträgen ergaben.
Einer der befragten Praxen setzte eine Praxissoftware ein, die es unter Verwendung
einer grafischen Oberfläche ohne SQL-Wissen erlaubte boolesche Konditionen zu formulieren, aus denen einfache SELECT-Anfragen generiert wurden. Die Praxissoftware
erlaubte die Prüfung auf Gleichheit bzw. Ungleichheit sowie ob ein Wert vorhanden ist
oder nicht. Desweiteren bestand die Möglichkeit der Spezifikation von Anfragezeiträumen
und Klammerung der Vergleiche. Die Vergleiche konnten zudem per UND-Operator oder
ODER-Operator verknüpft werden. Die Praxis erstellte mit Hilfe dieser Funktion eine
Basis von 119 Abfragen, in denen die erwähnten Vorgaben mit Hilfe von booleschen
Konditionen abgebildet wurden. Diese Abfragen dienten zur Überprüfung von Abrechnungen. Die Software erlaubte allerdings keine Formulierung von Aktionen bei Eintreffen
der Konditionen. Die Anfragen mussten einzeln ausgeführt werden und die Ausführung
57
5 Entwicklung eines Prototypen
manuell ausgelöst werden. Eine automatisierte Überprüfung der Datenqualität war damit
nicht möglich.
In Abbildung 5.3 ist eine der verwendeten Anfragen dargestellt. Mit dieser Regel
Bild 5.3: Eine Regel im medizinischen Versorgungszentrum
wurde überprüft, ob die Leistungsziffern 40224 und 40220 von der Leistungsziffer 05230
gefolgt wurden. Die Ziffern 40224 und 40220 stehen für eine Abrechnung von Reisekosten,
während die Ziffer 05230 einen Patientenbesuch codiert. Logischerweise kann ein Patient
nur besucht werden, wenn der Arzt unterwegs war. Diese Abhängigkeit wurde über keine
Integritätsregeln sichergestellt und lediglich über manuelle Ausführung dieser Anfrage
überprüft. Die weiteren Regeln in der Regelbasis waren mit dem Beispiel in der Abbildung
vergleichbar. Es wurde stets sichergestellt, dass bestimmte Leistungsziffer-Kombinationen
in einer Abrechnung vorkommen oder nicht vorkommen. Die Regeln unterschieden sich
dabei nur in ihrer Länge. Die Komplexität der Regeln wurde durch die limitierten
Möglichkeiten der Praxissoftware eingeschränkt.
Aus den gewonnenen Informationen sollen im Folgenden Anforderungen an den zu
entwickelnden Prototypen abgeleitet werden.
5.1.3 Funktionale Anforderungen
Aus den Fragebögen und Interviews ergab sich, dass vor allem Verbesserungspotential
bei der Messung von Datenqualität besteht. Die Befragten sind außerdem an der Verwendung eines Systems zur Evaluierung automatisierter Regeln interessiert. Aus diesen
Gründen wird die Entwicklung einer Rule-Engine zu diesem Zweck als geeignet gesehen.
Rule-Engines sind Applikationen welche sich mit der unabhängigen Verwaltung und Abwicklung von Geschäftsregeln beschäftigen. Diese Art von Applikationen wurden bereits
58
5.1 Anforderungsanalyse
im Abschnitt 3.2 vorgestellt. Sie fordern die Trennung von Regeln, Daten und Prozessen.
Geschäftsregeln werden unabhängig vom Ausführungscode formuliert und verwaltet. Die
Rule-Engine kann diese Regeln dann dynamisch in ausführbaren Quellcode übersetzen
und auf Daten anwenden. Nach [Los02] besteht eine Rule-Engine aus folgenden drei
Modulen:
1. Einem Benutzerinterface zur Erstellung und Verwaltung von Regeln
2. Einer persistenten Regelbasis
3. Einem Modul zur Ausführung von Regeln
Analog zu dieser Definition sollen nun die funktionalen Anforderungen an ruleDQ
formuliert werden:
• Regelerstellung:
Den Benutzern von ruleDQ muss die Möglichkeit gegeben werden, selbständig Datenqualitätsregeln zu erstellen. Dabei sollen Wertsüberprüfungen sowie Formatsüberprüfungen realisiert werden. Der Nutzer soll die
Möglichkeit besitzen, boolesche Ausdrücke beliebiger Länge zu schachteln
und zu konkatenieren. Für den Fall, dass eine Regel zutrifft, muss der
Nutzer die Möglichkeit haben, automatische Aktionen zu spezifizieren.
Im Rahmen dieser Arbeit ist eine Benachrichtigungsfunktion vorgesehen.
In späteren Arbeiten ist die Integrierung von z.B. einer automatischen
Reinigung denkbar.
• Regelverwaltung:
Der Nutzer soll in der Lage sein, eine Sicht auf schon bestehende Regeln
zu erhalten. Er muss die Möglichkeit haben, einzelne Details bestehender
Regeln einzusehen sowie Regeln aus dem System wieder zu entfernen.
• Regelauswertung:
Nachdem Regeln erstellt wurden, muss das System die Möglichkeit bieten,
Regeln sowohl automatisch als auch auf manuellen Befehl hin auszuführen. Die vorher vom Nutzer spezifizierten Aktionen werden dabei nach
der Evaluierung der Regeln ausgeführt, falls die definierte Kondition
erfüllt wurde. Die Ergebnisse der Auswertungen müssen unmittelbar
sichtbar sein, damit Nutzer auf eventuelle Missstände schnell reagieren
können. Neben einem absoluten Messwert soll der Nutzer alle eine Regel
verletzenden Tupel betrachten können.
59
5 Entwicklung eines Prototypen
• Eingabevalidierung:
Da alle Regeln aus Benutzereingaben generiert werden, ist eine Validierung der Eingaben nötig, um sicherzustellen, dass alle Regeln syntaktisch
korrekt sind. Neben Sicherstellung einer höheren Usability ist dies auch
aus Sicherheitsaspekten nötig.
5.1.4 Nicht Funktionale Anforderungen
Als nächstes sollen Anforderungen an die Softwarequalität beschrieben werden. Der
ISO-9126-Standard definiert sechs Qualitätsmerkmale für Softwarequalität (Funktionalität, Zuverlässigkeit, Benutzerfreundlichkeit, Effizienz, Wartungsfreundlichkeit und
Übertragbarkeit) [Bal11, S.468ff.]. Alle diese Merkmale sind wichtige Faktoren für Erfolg
des Datenqualitätswerkzeugs. Im Folgenden sollen aber Benutzerfreundlichkeit, Übertragbarkeit, Änderbarkeit sowie Zuverlässigkeit im Besonderen hervorgehoben werden. Diese
Priorisierung ergibt sich aus der vorgehenden Problemdefinition. Benutzerfreundlichkeit
und Zuverlässigkeit werden fokussiert, da auf Seiten der zukünftigen Benutzer kein
technisches Wissen vorausgesetzt werden kann, während Übertragbarkeit und Änderbarkeit besondere Erwähnung finden, da zukünftig Veränderungen im Einsatzgebiet und
Erweiterungen an der Funktionalität des Werkzeugs zu erwarten sind.
• Benutzerfreundlichkeit:
Es wird davon ausgegangen, dass die zukünftigen Benutzer von ruleDQ
über keine Kenntnisse von Datenbankanfragesprachen oder sonstiges
informatisches Fachwissen verfügen. Dies stellt vor allem eine Herausforderung für die Regelerstellung dar, welche auf einfache und leicht
verständliche Weise gestaltet werden und ohne Fachbegriffe aus dem
informatischen Bereich auskommen muss. Als einzige Voraussetzung
werden Kenntnisse über Umgang mit booleschen Regeln und Grundwissen über den Aufbau der von den Regeln betroffenen relationalen
Daten angenommen, welches unumgänglich ist, um effektiv Regeln
formulieren zu können. Da die Verwendung des zu entwickelnden Datenqualitätswerkzeugs keine Kernaufgabe der zukünftigen Nutzer darstellt,
muss ruleDQ zudem in einer intuitiven und leicht verständlichen Weise
gestaltet sein, um eine möglichst kurze Einarbeitungszeit zu ermöglichen.
60
5.2 Architektur
• Übertragbarkeit:
Das Datenqualitätswerkzeug darf von keinem festen, unveränderbaren
Schema ausgehen. Es muss nahtlos ohne vorherige Anpassungen in verschiedenen Umgebungen einsetzbar sein. Dies liegt darin begründet, dass
zukünftige Veränderungen von Schemata wahrscheinlich sind. Außerdem
ist die Betrachtung von medizinischen Versorgungszentren, wie schon in
der Kapiteleinleitung erwähnt, als beispielhaft zu verstehen. ruleDQ soll
optimalerweise auch in anderen Bereichen einsetzbar sein. Dies macht
Schemaneutralität zu einer wichtigen Voraussetzung.
• Änderbarkeit:
ruleDQ soll einen leicht erweiterbaren modularen Aufbau besitzen, der
zukünftige Funktionserweiterungen und Funktionsanpassungen problemlos ermöglicht. Dies bedarf neben einer entsprechenden Architektur auch
einer ausführlichen Dokumentation der Entwicklung. Vor allem ist dies
eine Bedingung, da davon ausgegangen wird, dass die Entwicklung an
diesem Werkzeug auch nach Abschluss dieser Arbeit fortgesetzt wird.
• Zuverlässigkeit:
Im Zentrum von ruleDQ steht die Erstellung und Ausführung von benutzerdefinierten Regeln. Es kann nicht ausgeschlossen werden, dass dabei
syntaktisch oder semantisch inkorrekte Regeln im System gespeichert
werden. Neben Lücken in der Validierungslogik können ehemals korrekte
Regeln durch Veränderungen und Schema ungültig werden. Die Benutzbarkeit des Systems darf durch vereinzelte eventuell inkorrekte Regeln
nicht beeinträchtigt werden. Der Nutzer ist zudem auf inkorrekte oder
inkorrekt gewordene Regeln hinzuweisen.
5.2 Architektur
In diesem Kapitel wird die Systemarchitektur von ruleDQ dargestellt, welche auf Basis der
vorher formulierten Funktionsanforderungen entworfen wurde. Im ersten Abschnitt wird
ein Gesamtüberblick der Architektur und des Zusammenspiels der einzelnen Komponenten
gegeben. In den nachfolgenden Abschnitten wird jede Komponente für sich im größeren
Detail vorgestellt. Die in diesem Kapitel folgenden Architekturdiagramme stellen die
61
5 Entwicklung eines Prototypen
wichtigsten Elemente der beschriebenen Module dar, erheben aber keinen Anspruch auf
Vollständigkeit.
5.2.1 Programmiersprache
ruleDQ wird in Form einer Webapplikation implementiert. Dies ermöglicht ein hohes Maß
an Plattformunabhängigkeit und setzt beim Endanwender lediglich das Vorhandensein
eines Browser voraus. Dabei wird das Java-Webframework „Grails“1 eingesetzt. Grails
verwendet die dynamische Skriptsprache „Groovy“2 . Groovy läuft auf der Java Virtual
Machine, erlaubt den Einsatz von Java-Bibliotheken und ist mit Java nahtlos integrierbar.
Im Gegensatz zu Java ermöglicht es aber unter anderem die Verwendung einer vereinfachten Syntax und dynamischer Typisierung. Durch den Einsatz dieses Frameworks
verspricht sich der Autor eine gesteigerte Produktivität und Zeiteinsparungen, da im
Gegensatz zu reinem Java unter anderem ein Großteil der Konfiguration, die für diese
Art von Webanwendung nötig wäre, wegfällt.
5.2.2 Grobarchitektur
Wie für Webanwendungen typisch, basiert ruleDQ auf dem Model-View-Controller (MVC)
Architekturmuster, siehe Abb.5.4.
MVC ist hauptsächlich für die Strukturierung der Präsentationsschicht gedacht. Die
Darstellung (View) wird von der Datenhaltung (Model) und der Ablaufsteuerung (Controller) getrennt. Durch Trennung dieser Verantwortlichkeiten wird eine höhere Flexibilität
und Erweiterbarkeit des Systems erreicht.
Views stellen für gewöhnlich die Inhalte eines Modells dar. Im Falle von ruleDQ
entsprechen sie den Servlets aus denen dynamisch HTML-Seiten gerendert werden. Sie
nehmen Benutzereingaben entgegen und leiten diese an Controller weiter.
Das Modell enthält die persistenten Daten, bei ruleDQ sind das vor allem die vom
Benutzer erstellten Regeln.
Zwischen den Daten und den Views steht die Ablaufsteuerung. Die Ablaufsteuerung
wird durch die Controller realisiert. Sie nehmen Benutzereingaben entgegen und leiten
entsprechende Antworten an den Nutzer weiter. Der Benutzer modifiziert für gewöhnlich
1
2
62
http://grails.org
http://groovy.codehaus.org
5.2 Architektur
Bild 5.4: Das MVC-Architekturmuster [Wik]
mit seinen Eingaben die Inhalte der Modelle. Controller setzen Ereignisse in DomänenOperationen um und stellen somit Zustandsmaschinen dar [Sta08, S.246ff.].
Die eigentliche Geschäftslogik ist bei ruleDQ in einer weiteren Schicht implementiert.
Diese ist in Abbildung 5.5 grob dargestellt. Controller und Views sind hier unter dem
Begriff Benutzerschnittstelle zusammengefasst. Auf die Architektur der Benutzerschnittstelle wird in Abschnitt 5.2.6 noch näher eingegangen. Wie in Abbildung 5.5 zu sehen
ist, besteht die Geschäftslogik von ruleDQ im Wesentlichen aus drei Modulen: einem
Modul zur Regelausführung, einem Modul zum Regelmonitoring und einem Modul zur
Regelverwaltung.
Auf der Persistenzebene stehen zwei Datenbanken: eine Applikationsdatenbank, in
der von ruleDQ generierte Daten gespeichert werden und eine Zieldatenbank. Die Zieldatenbank referenziert die Datenbank, auf welche die formulierten Regeln angewandt
werden. Angesprochen wird diese Datenbank über ein Anfragehandling-Modul, welches
SQL-Anfragen ausführt und Anfrageergebnisse in Objekte umwandelt. Bei Applikationsdaten übernimmt diese Aufgabe der im verwendeten Webframework integrierte
Objektrelationale-Mapper Hibernate 1 . Beim Zugriff auf die Zieldatenbank muss auf Hibernate verzichtet werden, da Hibernate von einem festen Model ausgeht. Anforderung
an ruleDQ ist aber komplette Schemaunabhängigkeit. Die eigene Implementierung er-
1
http://hibernate.org/
63
5 Entwicklung eines Prototypen
Bild 5.5: Grobarchitektur
möglicht Informationen zu in der Zieldatenbank vorhandenen Tabellen, dynamisch zur
Laufzeit zu ermitteln.
Im typischen Anwendungsfall greift der Nutzer über die Benutzerschnittstelle auf
das Regelverwaltungs-Modul zu, um eine Regel zu erstellen. Das RegelverwaltungsModul bietet zur Unterstützung bei der Regelerstellung dabei Informationen aus der
Zieldatenbank an. Zu den Informationen gehören Tabellennamen, Spaltennamen und
die Möglichkeit den Inhalt von Tabellen zu betrachten. Ist eine Regel erfolgreich erstellt,
wird sie in der Applikationsdatenbank abgelegt. Daraufhin beantragt der Nutzer über das
Regelmonitoring-Modul die Ausführung der Regel. Das Regelmonitoring-Modul schickt
die ausgewählte Regel an das Regelausführungs-Modul und generiert aus dem Ergebnis
64
5.2 Architektur
einen Evaluationsbericht für den Nutzer. Das aktuellste Ergebnis der Regelausführung
wird zudem ebenfalls in der Applikationsdatenbank persistiert.
5.2.3 Anfragehandling
Alle Zugriffe auf die Zieldatenbanken werden unter Verwendung des QuerymanagementModuls ausgeführt. Zum derzeitigen Entwicklungsstand werden nur Anfragen auf eine
MySQL-Datenbank unterstützt. Da auch die Unterstützung weiterer SQL-Dialekte zu
erwarten ist, wurde sichergestellt, dass alle dieses Modul verwendenden Klassen, vom
in Abbildung 5.6 dargestellten Interface anstatt einer konkreten Implementierung abhängig sind. Dies soll eine hohe Anpassbarkeit gewährleisten. Das Modul ist sowohl
Bild 5.6: Anfragehandling
für die Regelverwaltung als auch für die Regelausführung wichtig. Für die Regelverwaltung stellt es Informationen über in der Datenbank gespeicherte Daten bereit, die
bei der Regelerstellung hilfreich sind. Der Prozess der Regelerstellung ist in Abschnitt
5.2.6.1 näher beschrieben. Das implementierte Regelausführungsmodul evaluiert Regeln
unter der Verwendung von SQL-Anfragen. Diese Anfragen werden ebenfalls über das
Anfragehandling-Modul ausgeführt. Die Ergebnisse der Anfragen werden in geeignete
Objekte umgewandelt und an das Regelausführungsmodul zurückgegeben. Das Parsen
der vom Nutzer erstellten Regeln wurde, bedingt durch die relative Komplexität dieser
65
5 Entwicklung eines Prototypen
Aufgabe, aus der MySQLHandler-Klasse in die Hilfsklasse MySQLRuleParser ausgelagert.
Eine detailliertere Beschreibung der benutzten Anfragen findet sich im Abschnitt 5.2.5.2.
5.2.4 Regelerstellung und Verwaltung
In Abbildung 5.7 ist der Aufbau von Regeln dargestellt. Jede Regel muss sich auf eine
Tabellendefinition beziehen. Dies kann entweder eine gewöhnliche Tabelle oder eine
gejointe Tabelle darstellen. Der Nutzer erhält bei der Definition von Joins von ruleDQ
Unterstützung, indem alle Möglichkeiten für Natural Joins ermittelt werden. In späteren
Versionen ist die Unterstützung für weitere Join-Typen denkbar.
Bild 5.7: Aufbau von Regeln
Des Weiteren enthält jede Regel eine Aktion, die ausgeführt wird, falls die Bedingung
der Regel erfüllt ist. Im Rahmen dieser Arbeit wurde eine Aktion implementiert, die es
dem Nutzer erlaubt, eine E-Mail zu verschicken, falls eine Regel zu einem bestimmten
Grad erfüllt wurde. Wird vom Nutzer keine Aktion ausgewählt, wird eine manuelle
Überwachung von Evaluationsergebnissen und entsprechende Reaktion vorausgesetzt.
66
5.2 Architektur
Zur Realisierung der E-Mail-Aktion wurde das externe Plugin mail 1 angebunden. Das
Plugin stellt die Funktion sendMail zur Verfügung, welche als Parameter eine E-MailAdresse, einen Betreff und den Inhalt der E-Mail in Form von drei Strings erwartet. Zur
Konfiguration des Plugins ist die Angabe von Zugangsdaten zu einem SMTP-Server
erforderlich. Wird keine SMTP-Server Konfiguration angegeben, erwartet das Plugin
das Vorhandensein eines internen Mail-Servers unter Port 25. Regeln besitzen neben
Assoziationen zu Aktionen und Tabellen, die vom Nutzer spezifizierte Kondition, einen
identifizierenden Titel sowie gegebenenfalls, ein Wiederholungsintervall. Dieses ermöglicht
eine automatisierte Ausführung von Regeln zu vom Nutzer spezifizierten Zeitpunkten. Auf
die automatische Ausführung von Regeln wird im folgenden Abschnitt 5.2.5.1 eingegangen.
Aus Abbildung 5.8 wird der Aufbau der Regelerstellungs-Funktionalität deutlich. Die
Bild 5.8: Regelerstellung
Eingaben des Nutzers werden zuerst an die Validierungsklasse RuleValidator übertragen.
Das Ergebnis der Validierung wird innerhalb eines ErrorReport-Objektes zurückgeschickt.
Falls die Validierung fehlschlägt wird der Nutzer zur Korrektur seiner Eingaben aufgefordert. Bei erfolgreichem Durchlauf der Validierung wird innerhalb der RuleFactory
die Regel aus den Benutzereingaben generiert und persistiert. Die Validierung der Nutzereingabe wird mit einer Whitelist realisiert. Die Eingabe des Nutzers wird somit mit
einer Liste erlaubter Ausdrücke verglichen. Befindet sich in der Benutzereingabe ein
Ausdruck, der nicht in der Whitelist vorkommt, schlägt die Validierung fehl. Erlaubt
ist die Eingabe der vorgegebenen Operatoren, Funktionen und Attributsnamen sowie
von Zahlen oder von mit Anführungszeichen eingeschlossenen Strings. Alle anderen
Eingaben lösen einen Validierungsfehler aus. Dies soll auf einer Seite dem Nutzer bei
der Regelerstellung helfen und auf mögliche Eingabefehler hinweisen. Auf der anderen
1
http://grails.org/plugin/mail
67
5 Entwicklung eines Prototypen
Seite stehen Sicherheitsaspekte und die Abwehr von SQL-Injection Angriffen. Trotz der
beschriebenen Vorsichtsmaßnahmen können Fehler und Lücken nicht ganz ausgeschlossen
werden. Deswegen wurde zur zusätzlichen Erhöhung der Sicherheit ruleDQ lediglich
mit Leserechten auf die Zieldatenbank ausgestattet, da Schreibrechte beim derzeitigen
Funktionsumfang nicht notwendig sind.
5.2.5 Regelmonitoring und Ausführung
Das Application Programming Interface (API) des Regelmonitoring-Moduls bietet wie in
Abbildung 5.9 dargestellt zwei Methoden zur Regelausführung. Als Ergebnis der Regelausführung werden zwei verschiedene Berichtsarten angeboten: Report und TupleReport.
Die erste Möglichkeit ist die Generierung eines Berichtes (Report), der verschiedene
einfache Messwerte enthält. Darunter ist vor allem der Grad der Regelerfüllung relevant,
er beschreibt das Verhältnis der Gesamtanzahl der Datensätze in der untersuchten Tabelle
zu der Anzahl an Datensätzen, welche die Regel verletzen. Die zweite Berichtsklasse
beinhaltet zusätzlich die Tupel, welche die Regel verletzt haben und ermöglicht es dem
Nutzer somit das Evaluationsergebnis genauer zu analysieren. Kommt es bei der Regel-
Bild 5.9: Regelmonitoring
68
5.2 Architektur
ausführung zu Fehlern wird den Berichten ein Objekt der ErrorReport-Klasse angehängt,
die Ausführung der Regel gestoppt und der Nutzer über diesen Zustand informiert.
Die Ausführung von diesem Fehler unbetroffenen Regeln wird dadurch nicht beeinflusst.
Regeln können entweder manuell gestartet werden oder unter Verwendung des Submoduls
QuartzManagement in einem bestimmten Wiederholungsintervall automatisch ausgeführt
werden. Das Submodul Quartzmanagement soll nachfolgend beschrieben werden.
5.2.5.1 Quartzmanagement
Das Submodul QuartzManagement dient der Ablaufplanung und automatischen Ausführung von Regeln. Es wurde unter Verwendung des externen Frameworks Quartz 1
realisiert.
Quartz ist ein quelloffenes Framework für die Planung von zeitgesteuerten Aufgaben
(Jobs) in Java-Anwendungen. Jobs können beliebige Java-Klassen sein die das JobInterface implementieren. Das Job-Interface verlangt die Konkretisierung der execute()Methode, welche dann zu den festgelegten Zeitpunkten ausgeführt wird. Trigger dienen
der Definition von Zeitplänen. Es ist möglich, simple Zeitpläne sowohl unter Angabe der
Startzeit und des Wiederholungsintervalls als auch komplexere Zeitpläne zu erstellen, die
es erlauben, präzise Zeitpunkte auszuwählen, an denen Jobs ausgeführt werden sollen.
Es ist z.B. möglich, zu definieren, dass ein Job jeden Mittwoch um 24:00 ausgeführt
werden soll. Der JobScheduler verbindet Trigger mit Jobs und ist für die Ausführung der
Zeitpläne zuständig [Qua14].
Im Falle von ruleDQ implementiert die Klasse JobTemplate das Job-Interface. JobTemplate wird von QuartzService mit einer Referenz auf eine Regel instanziiert und zusammen
mit einem entsprechenden Trigger an den JobScheduler zur Ausführung des Zeitplans
übergeben. Das Job-Interface wurde nicht direkt von der Regel-Klasse implementiert, um
die Regeldaten von der Ausführungslogik zu trennen. Als Ergebnis der Regelausführung
wird ein Bericht an die Benutzerschnittstelle geliefert. Dazu wird ein Objekt der Klasse
QuartzReport instanziiert. Der Unterschied zu der bereits beschriebenen Klasse Report
liegt in zusätzlichen Daten bezüglich Jobs und Triggern. Der Benutzer erhält so zusätzlich
Informationen über den nächsten Ausführungszeitpunkt und den Status (aktiv/inaktiv)
des Jobs.
1
http://quartz-scheduler.org/
69
5 Entwicklung eines Prototypen
Bild 5.10: Quartzmanagement
5.2.5.2 Regelausführung
Zur Implementierung des Regelausführungs-Interfaces wurden zwei verschiedene Alternativen betrachtet. Die erste betrachtete Möglichkeit war die Einbindung der Open Source
Rule-Engine Drools 1 . Rule-Engines wurden im Abschnitt 3.2 diskutiert. Die zweite betrachtete Möglichkeit war eine eigene Implementierung des Regelausführungsmoduls über
direkte Ausführung von SQL-Anfragen. Hauptsächlich aus Performance-Gründen wurde
die Alternative der eigenen Implementierung ausgewählt. Die Verwendung von Drools
würde vor der Evaluierung der Regeln erst den Aufbau einer Faktenbasis erfordern. Dazu
müssten alle relevanten Daten aus der Zieldatenbank in die Java Virtual Machine (JVM)
geladen werden. Neben zeitlichen Verzögerungen und höheren Hardwareanforderungen
kommt es dadurch auch zu einer Erhöhung der Komplexität. Änderungen in der Zieldatenbank müssten mit den Daten in der Faktenbasis synchron gehalten werden. Die
zweite Möglichkeit über die direkte Ausführung von Anfragen an die Datenbank erlaubt
eine erheblich schnellere Evaluierung der Regeln und verlangt nicht die Wartung einer
1
70
http://www.jboss.org/drools/
5.2 Architektur
redundanten Datenbasis in der JVM. Die Performance der beiden Alternativen wurde
im Abschnitt 5.3 quantifiziert.
Für die konkrete Ausführung der Anfragen wird das vorher beschriebene QueryManagement-Modul benutzt, welches eine Abstraktion gegenüber den verschiedenen
SQL-Dialekten bietet. Die vom Nutzer spezifizierte Kondition wird dazu vor jeder Ausführung einer Regel in eine SQL-Anfrage geparst. Dies wurde der einmaligen Generierung
und Speicherung der Anfrage vorgezogen, um eine höhere Flexibilität und Anpassbarkeit
zu ermöglichen. Somit kann der zu verwendende SQL-Dialekt zur Laufzeit ausgetauscht
werden.
Folgend sollen die benutzten Anfragen beschrieben werden. Diese basieren auf dem
MySQL-Dialekt, welcher im Rahmen dieser Arbeit umgesetzt wurde.
Zur einfachen Ermittlung des Erfüllungsgrades einer Regel wird folgende Anfrage
benutzt:
SELECT COUNT(*)
FROM $Tabellendefinition
WHERE $Kondition;
Das Ergebnis der Anfrage wird dabei durch die gesamte Anzahl an Tupeln in der Tabelle
dividiert um den Grad zu berechnen, zu welchem die Regel erfüllt ist. Der Platzhalter
$Tabellendefinition kann entweder für die Selektierung einer einfachen Tabelle stehen
oder für eine Unteranfrage die einen Join durchführt. Der Platzhalter $Kondition steht
für die, in SQL geparste, vom Nutzer definierte Kondition.
Zur Betrachtung der die Kondition erfüllenden Tupel wird folgende Anfrage benutzt:
SELECT *
FROM $Tabellendefinition
WHERE $Kondition
ORDER BY $sortColumn $sortDirection
LIMIT $startRow, $maxRow;
Bei dieser Anfrage ist zu bemerken, dass die Anzahl der zurückgegebenen Tupel über
die zwei Variablen startRow und maxRow beschränkt wird. Die Anzahl wird zum einen
71
5 Entwicklung eines Prototypen
aus technischen Gründen beschränkt, um einen Speicherüberlauf zu verhindern und
zum anderen, um die Ladezeit auf Clientseite möglichst gering zu halten. Falls der
Nutzer weitere Tupel betrachten möchte oder das Ergebnis anderes sortiert haben will,
werden die neuen Daten über eine Ajax-Anfrage nachgeladen. Dank dieser asynchronen
Technologie kann der Nutzer ohne Nachladens der kompletten Seite nahtlos durch den
gesamten Datensatz navigieren, während auf Serverseite Ressourcen geschont werden,
da nur Daten übertragen werden, die vom Nutzer zum gegebenen Zeitpunkt tatsächlich
gebraucht werden.
Will ein Anwender zum Beispiel sicherstellen, dass bestimmte Medikamentengruppen
bei einer Diagnose nicht verschrieben werden, so kann eine Regel zu diesem Zweck etwa wie
folgt ausgedrückt werden: (Diagnose = ’R50.80’) AND (Medikation != ’Placebo’).
Die vollständig geparste Anfrage zur Betrachtung regelverletzender Tupel würde bei
diesem Beispiel folgendermaßen aussehen:
SELECT *
FROM Verschreibungen
WHERE (Diagnose = ’R50.80’) AND (Medikation != ’Placebo’)
ORDER BY Arzt ASC
LIMIT 0, 100;
5.2.6 Benutzerschnittstelle
In den vorherigen Abschnitten dieses Kapitels wurde die Architektur des Backends der
Applikation vorgestellt. Dieser Abschnitt soll nun das Frontend näher vorstellen. In den
bisherigen Klassendiagrammen wurde auf eine volle Darstellung der Benutzerschnittstelle
verzichtet, Abbildung 5.11 schließt diese Lücke. Die Abbildung stellt alle ControllerKlassen mit ihren zugehörigen Views dar. Die Hauptfunktionen der Controller und Views
können logisch in zwei Bereiche eingeteilt werden: Monitoring und Regelverwaltung.
Die Klasse RuleMonitoringController mit den zugehörigen Views ermöglicht die Regelausführung und einen Überblick über den Status aller Regeln (monitor). Des Weiteren
können einzelne Regeln ausgewählt werden (analyze), um das Ergebnis der Regelausführung und die Tupel, welche die Regel verletzen, im Detail zu betrachten (showReport).
72
5.2 Architektur
Bild 5.11: Benutzerschnittstelle
Die übrigen Controller und Views sind für die Regelverwaltung zuständig. Die Regelverwaltung ermöglicht dem Nutzer das Betrachten aller erstellen Regeln (list), die
detaillierte Betrachtung einzelner Regeln (show), das Editieren von bestehenden Regeln
(edit) sowie die Definition neuer Regeln (create). Der Controller TableBrowsing ermöglicht
das Betrachten der in der Zieldatenbank vorhanden Tabellen und stellt somit hauptsächlich eine unterstützende Funktion bei der Erstellung von Regeln dar. Der Controller
TableDefinition unterstützt den Nutzer bei der Definition von Joins, um das Kreieren
von intertabellarischen Regeln zu ermöglichen, damit realisiert dieser Controller ebenfalls
eine unterstützende Funktion bei der Regelerstellung.
5.2.6.1 Erstellung von Regeln
In diesem Unterabschnitt soll die Erstellung von Regeln aus Sicht des Endanwenders
dargestellt werden. Diese Funktion wird mit der View create des Controllers RuleController realisiert (siehe Abbildung 5.11). Beim Entwurf dieser Funktion stand vor allem
die Benutzerfreundlichkeit im Vordergrund, da keine SQL-Kenntnisse auf Seiten des
Nutzers vorausgesetzt werden können. Lediglich Vertrautheit mit boolescher Algebra
73
5 Entwicklung eines Prototypen
wird angenommen. In Abbildung 5.11 ist die Seite in ihrer Gesamtheit dargestellt. Der
Prozess der Regelerstellung ist logisch in drei Schritte aufgeteilt.
Im ersten Schritt müssen allgemeine Informationen über die Regel eingegeben werden.
Dazu gehören der eindeutige Titel der Regel, die Tabelle auf welche sich die Regel bezieht
sowie ob die Regel manuell oder automatisch ausgeführt werden soll.
Der zweite Schritt bezieht sich auf die Formulierung der Kondition der Regel. Dieser
Schritt ist in Abbildung 5.12 dargestellt. Dem Nutzer wird ein frei editierbares Textfeld
Bild 5.12: Die Formulierung der Kondition
zur Verfügung gestellt. Zur Unterstützung des Nutzers werden alle Spalten der Tabelle
aufgelistet. Bei Druck auf den zugehörigen Knopf wird der Name der Spalte in das
Textfeld eingefügt. Des Weiteren werden bestimmte Hilfsfunktionen und alle erlaubten
logischen Operatoren aufgelistet. Als Hilfsfunktion wird die Einbindung von regulären
Ausdrücken angeboten sowie die Funktion today, welche bei der Ausführung von Regeln
das aktuelle Datum bereitstellt. Benutzer können selber reguläre Ausdrücke erstellen oder
vordefinierte Ausdrücke aus einer Drop-Down-Liste auswählen, so z.B. zur Überprüfung
der Anzahl von Zeichen in Strings.
Im letzten Schritt kann eine Aktion spezifiziert werden, welche ausgeführt wird, falls
die vorher formulierte Kondition erfüllt wird. Zum Zeitpunkt der Erstellung dieser
Masterarbeit wird dabei lediglich das Versenden einer E-Mail angeboten. Die Sicht auf
die Formulierung dieser Aktion ist in Abbildung 5.13 dargestellt. Im ersten Feld kann
hierbei eingeschränkt werden, ab welchem Erfüllungsgrad die Aktion auszuführen ist.
Die weiteren Felder sind selbsterklärend und beschreiben die üblichen Informationen, die
74
5.2 Architektur
Bild 5.13: Das Spezifizieren einer Aktion
bei der Erstellung einer E-Mail nötig sind. Sind alle nötigen Informationen eingegeben,
können die Eingaben an den Server geschickt werden. Bevor die Regel erstellt wird, werden
alle Benutzereingaben einer Validierung unterzogen. Besteht eine bestimmte Eingabe die
Validierung nicht, wird der Benutzer zur Korrektur seiner Eingaben aufgefordert, siehe
Abbildung 5.14. Ansonsten wird die Regel persistiert.
Bild 5.14: Ein Validierungsfehler
75
5 Entwicklung eines Prototypen
Bild 5.15: Regelerstellung
5.3 Evaluation
Im bisherigen Verlauf dieses Kapitels wurde die Entstehung von ruleDQ von Anforderungsanalyse bis Architektur beschrieben. In diesem Abschnitt soll das entwickelte
Werkzeug bewertet werden, dazu soll es einer Funktionsanalyse sowie einer Laufzeitanalyse unterzogen werden.
76
5.3 Evaluation
5.3.1 Funktionsanalyse
Wie bereits im Unterabschnitt 5.1.2 erwähnt, setzte eines der befragten Referenzunternehmen eine Praxissoftware ein, die es erlaubte boolesche Regeln zu formulieren
aus denen SELECT-Anfragen generiert wurden. Die Praxis nutzte diese Funktion, um
eine Regelbasis anzulegen, mit Hilfe derer die Einhaltung von vertraglichen Vorgaben
und logischen Abhängigkeiten in Abrechnungen überprüft wurden. Folgend soll ein
Funktionsvergleich zwischen ruleDQ und den Regelformulierungsmöglichkeiten dieser
Praxissoftware stattfinden.
In Tabelle 5.1 sind die in den Systemen zur Verfügung stehenden Vergleichsoperatoren
dargestellt. Wie aus der Tabelle ersichtlich wird, kann bei der Praxissoftware auf Gleichheit bzw. Ungleichheit geprüft werden. Operatoren für Prüfung auf größere bzw. kleinere
Werte existieren nicht.
ruleDQ
=
Praxissoftware
gleich
!=
ungleich
>=
-
<=
-
>
-
<
-
Bedeutung
Überprüft ob die Werte von zwei Operanden gleich
sind
Überprüft ob die Werte von zwei Operanden ungleich sind
Überprüft ob der Wert des linken Operanden größer
gleich dem Wert des rechten Operanden ist
Überprüft ob der Wert des linken Operanden kleiner gleich dem Wert des rechten Operanden ist
Überprüft ob der Wert des linken Operanden größer
als der Wert des rechten Operanden ist
Überprüft ob der Wert des linken Operanden kleiner als der Wert des rechten Operanden ist
Tabelle 5.1: Vergleichsoperatoren
In Tabelle 5.2 werden die logischen Operatoren der beiden Systeme gegenübergestellt.
Beide Systeme verfügen über Operatoren zur logischen Verknüpfung von Konditionen per
UND und ODER sowie Operatoren zur Prüfung auf das Vorhandensein von Datensätzen.
In Tabelle 5.3 werden weitere Möglichkeiten bei der Formulierung von Konditionen
augelistet. Wie aus der Tabelle ersichtlich ist, können sowohl bei der Praxissoftware als
auch bei ruleDQ Zeiträume eingeschränkt werden. Bei der Praxissoftware geschieht dies
durch Angabe des Schlüsselworts „von“, gefolgt vom Anfangsdatum, einem Bindestrich
und der Angabe des Enddatums. Bei ruleDQ kann diese Funktionalität durch Benutzung
77
5 Entwicklung eines Prototypen
ruleDQ
and
or
exists
Praxissoftware
UND
ODER
vorhanden
not-exists
nicht vorhanden
Bedeutung
Logisches Und
Logisches Oder
Ist erfüllt wenn die folgende Kondition mindestens einmal zutrifft
Ist erfüllt wenn die folgende Kondition nie zutrifft
Tabelle 5.2: Logische Operatoren
der Vergleichsoperatoren kleiner, gleich und größer sowie der Nennung von DatumsFeldern abgebildet werden, z.B.: hireDate >= ’12/12/2012’. Bei der Bestimmung von
Konditionen mit Zeitwerten wird von ruleDQ außerdem zusätzlich die Hilfsfunktion today
bereitgestellt, welche bei der Konditionsauswertung das aktuelle Datum einsetzt.
ruleDQ
x >= Anfangsdatum and
x <= Enddatum
matchesRegex(Attribut,
Muster)
today
(x>y or a>b) and c>d
Praxissoftware
Bedeutung
von Anfangsdatum - End- Einschränkung des Gültigdatum
keitszeitraums
Anwendung von regulären
Ausdrücken
Verwendung des aktuellen
Datums
(x>y or a>b) and c>d
Priorisierung durch Klammerung
Tabelle 5.3: Andere Möglichkeiten bei der Formulierung von Konditionen
Der nächste Funktionsunterschied bei der Formulierung von Konditionen ergibt sich
durch die Möglichkeit der Benutzung von regulären Ausdrücken bei ruleDQ. Da nicht
davon ausgegangen wird, dass alle Anwender mit regulären Ausdrücken vertraut sind,
werden den Nutzern folgende vorgefertigte Ausdrücke zur Auswahl angeboten:
• Überprüfung auf einen positiven Ganzzahlwert
• Überprüfung auf eine bestimmte Anzahl von Zeichen
• Überprüfung auf eine Mindestanzahl von Zeichen
• Überprüfung auf eine Anzahl von Zeichen zwischen einem Intervall [x,y]
78
5.3 Evaluation
Die angebotenen regulären Ausdrücke sind dabei für eine Überprüfung von Formaten
gedacht. Daneben besteht ebenfalls die Möglichkeit der freien Formulierung von regulären
Ausdrücken.
Abseits der Spezifikation von Regelkonditionen ergeben sich weitere Funktionsdiskrepanzen. Den Anwendern wird bei ruleDQ die Option der Bestimmung von Wiederholungsintervallen geboten. Die Regeln werden dann, in den spezifizierten Abständen,
automatisch evaluiert. Als Ergebnis der Evaluierung einer Regel wird ein Messwert
zurückgeben welcher angibt, zu welchem Grad die Regel verletzt wird.
Ein weiterer Unterschied ist die Möglichkeit der Auslösung von Aktionen bei ruleDQ. Im
Rahmen dieser Masterarbeit wurde als Aktion die Versendung einer E-Mail implementiert.
Der Nutzer kann einen selbst-definierten Text und eine beliebige Empfangsadresse
hinterlegen. Nach Erreichung eines vom Nutzer spezifizierten Schwellwerts wird die
hinterlegte E-Mail dann versendet, so z.B., wenn 20% der Datensätze die Regel verletzen.
Abschließend kann festgestellt werden, dass Regeln die mit Hilfe der betrachteten Praxissoftware spezifiziert wurden ohne Funktionsverluste nach ruleDQ übertragen werden
können. Zusätzlich dazu bietet sich die Möglichkeit der Formulierung von komplexeren
Konditionen, der Spezifizierung von Wiederholungsintervallen sowie die Möglichkeit der
Bestimmung von Aktionen bei Verletzung der Regeln.
5.3.2 Laufzeitanalyse
In diesem Unterabschnitt soll die Ausführungsgeschwindigkeit und das asymptotische
Verhalten des selbstentwickelten Regelausführungs-Moduls analysiert werden. Die Ergebnisse dieser Analyse sollen anschließend mit der Leistung der Regelausführungseinheit
der quelloffenen Rule-Engine Drools verglichen werden. Während der Entwicklung von
ruleDQ wurde eine eigene Implementierung der Regelausführung der Benutzung von
Drools vorgezogen. Die in diesem Unterabschnitt folgende Analyse rechtfertigt diese
Entscheidung.
5.3.2.1 Testsystem
Die folgenden Tests wurde auf einem System mit Intel Core i7 M 620 Prozessor und 3.7
GB RAM durchgeführt. Der Prozessor verfügte über vier Kerne mit einem Takt von
2.67GHz. Das Betriebssystem war Ubuntu der Version 12.04 (64 Bit) und Linux Kernel
3.5.0. Als Datenbank wurde MySQL der Version 14.14 eingesetzt. Alle Tests der Drools
Rule-Engine wurden mit Drools 5.4.0 Final durchgeführt.
79
5 Entwicklung eines Prototypen
5.3.2.2 Testbeschreibung
Die Tests wurden auf einer Relation mit folgendem Schema ausgeführt:
CREATE TABLE employees (
emp_no
INT
birth_date DATE
first_name VARCHAR(14)
last_name
VARCHAR(16)
gender
ENUM (’M’,’F’)
hire_date
DATE
PRIMARY KEY (emp_no)
);
NOT
NOT
NOT
NOT
NOT
NOT
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
Alle Messungen stellen einen Durchschnittswert von zehn Testiterationen dar. Dies soll
den Einfluss von Anomalien möglichst gering halten. Alle Tests wurden mit den gleichen,
anfangs zufällig ausgewählten, Regeln durchgeführt.
5.3.2.3 Analyse der entwickelten Regelausführungseinheit
In diesem Unterabschnitt soll das Laufzeitverhalten der selbstentwickelten Regelausführungseinheit beschrieben werden. In Abbildung 5.16 ist das Laufzeitverhalten in
Abhängigkeit zu der Anzahl von Tupeln dargestellt. Die ermittelten Werte stellen die
Laufzeit für die gleichzeitige Evaluierung von 100 Regeln dar. Wie aus der Abbildung
abzulesen ist, erhöht sich die Laufzeit mit steigender Anzahl an Tupeln linear, wodurch
sich eine Komplexität von O(n) ergibt.
Abbildung 5.17 stellt die Laufzeit in Abhängigkeit zu einer steigenden Anzahl von
Regeln dar. Dabei wird eine Relation mit einer Größe von 100.000 Tupel angenommen.
Wie bei steigender Anzahl von Tupeln ergibt sich bei steigender Anzahl von Regeln ein
lineares Laufzeitverhalten.
Die ermittelten Werte beinhalten die Zeit vom Aufruf der Ausführaktion im Controller
durch den Benutzer, dem Parsen der Regeln in SQL, der Ausführung der Regeln in der
Datenbank bis zur Zurückgabe der Ergebnisse an den Controller. Die Ausführung der
Regeln in der Datenbank macht im Durchschnitt 83% der Laufzeit aus.
5.3.2.4 Analyse einer Drools-basierten Regelausführung
Nachdem das Laufzeitverhalten des implementierten auf SQL-basierenden Regelausführungsmoduls beschrieben wurde, soll im Folgenden alternativ eine Drools-basierte
80
5.3 Evaluation
Bild 5.16: Laufzeit bei 100 Regeln (SQL-basiert)
Bild 5.17: Laufzeit bei 300.000 Tupeln (SQL-basiert)
Regelausführung analysiert werden. Bevor Regeln mit Drools ausgeführt werden können,
muss als Erstes eine Faktenbasis in der JVM initialisiert werden. Bei dem in dieser
Masterarbeit angenommenen Szenario von medizinischen Datenbanken, bedeutet dies
das Übertragen von Tupeln aus der Datenbank in Java-Objekte. In Abbildung 5.18
ist die Dauer dieses Vorgangs auf dem Testsystem in Abhängigkeit zur Anzahl von
Tupeln dargestellt. Bei der Übertragung von Tupeln in eine in der JVM verwaltete
81
5 Entwicklung eines Prototypen
Bild 5.18: Dauer der Faktenbasis-Initialisierung
Faktenbasis, stellt sich die Problematik der Synchronisierung mit der Datenbank. Ein
seltenes Neuladen der Tupel verringert die gesamte Laufzeit, aber erhöht das Risiko von
Inkonsistenzen, während ein öfterer Abgleich der Daten die Wartezeiten vervielfacht.
In Abbildung 5.19 ist die Laufzeit der gleichzeitigen Auswertung von 100 Regeln in
Abhängigkeit zu einer steigenden Anzahl von Tupeln dargestellt.
Bild 5.19: Laufzeit bei 100 Regeln (Drools-basiert)
Die Laufzeit bei 10.000 Tupeln und einer steigender Anzahl von Regeln ist aus
Abbildung 5.20 ersichtlich.
82
5.3 Evaluation
Bild 5.20: Laufzeit bei 10.000 Tupeln (Drools-basiert)
Wie aus den beiden Abbildungen deutlich wird, verhält sich die Laufzeit bis zu einer
mittleren Anzahl an Tupeln (bis 100.000) sowie Regeln (bis 1.000) linear. Bei größeren
Mengen erhöhen sich die Laufzeiten unverhältnismäßig.
Die ermittelten Messwerte in den Abbildungen 5.19 und 5.20 beinhalten einzig die
Laufzeit der Regelausführung. Die Zeiten für die Initialisierung der Regel- und Faktenbasis
wurden nicht berücksichtigt.
In Abbildung 5.21 ist die Speicherauslastung der JVM bei einer steigenden Anzahl
an Tupeln und einer stetigen Anzahl von 100 Regeln dargestellt. Für die in diesem
Unterabschnitt ausgeführten Tests wurde die JVM mit dem Argument -Xmx3048M
ausgeführt, um den maximal zur Verfügung stehenden Speicherplatz zu erhöhen. Die
Messwerte stellen den durchschnittlichen Spitzenwert aus 10 Iterationen zum Zeitpunkt
der Regelausführung dar. Wie aus Abbildung 5.21 ersichtlich wird, benötigt die Auswertung von 100 Regeln bei einer Faktenbasis bestehend aus 300.000 Tupeln über 2.000
MB Heap-Speicher. Die Regelauswertung auf dem SQL-basierenden Ausführungsmodul
beanspruchte stets weniger als 256 MB.
5.3.2.5 Vergleich der Alternativen
Wie aus den bisherigen Ausführungen ersichtlich ist, besitzt die SQL-basierte Alternative
das überlegene asymptotische Laufzeitverhalten. In den folgenden Abbildungen 5.22
und 5.23 sind die absoluten Zeitwerte der beiden Alternativen im Verhältnis zu einer
83
5 Entwicklung eines Prototypen
Bild 5.21: Speicherauslastung der JVM bei 100 Regeln (Drools-basiert)
steigenden Anzahl von Tupeln bzw. Regeln gegenübergestellt. Aus den Abbildungen
Bild 5.22: Vergleich der Laufzeiten bei 100 Regeln
ist zu erkennen, dass die Ausführungsgeschwindigkeit des Drools-basierten Moduls bei
einer niedrigen Anzahl von Regeln (<1.000) und Tupeln (<100.000) in geringen Maßen
schneller ist. Wie die vorher ermittelte Komplexität aber erwarten lässt, ist die Laufzeit
des Drools-basierten Moduls bei einer hohen Anzahl von Regeln oder Tupeln um ein
vielfaches höher.
84
5.3 Evaluation
Bild 5.23: Vergleich der Laufzeiten bei 10.000 Tupeln
Die ermittelten Werte berücksichtigen zudem die Initialisierungszeit der Faktenbasis
nicht, wodurch sich erwarten lässt, dass der geringe zeitliche Vorteil bei einer niedrigen
Anzahl von Tupeln oder Regeln in den meisten Anwendungsfällen obsolet gemacht werden
würde.
Die ermittelten Ergebnisse zeigen, dass das Drools-basierte Modul ein schlechteres
Laufzeitverhalten sowie eine höhere Speicherauslastung als das entwickelte SQL-basierte
Modul besitzt. Dazu kommt die erhöhte Komplexität bei der Verwaltung und Synchronisierung der Faktenbasis. Zusammenfassend lässt sich also feststellen, dass die
Bevorzugung eines SQL-basierten Ausführungsmoduls gerechtfertigt ist.
85
6 Zusammenfassung und Ausblick
In dieser Arbeit wurde die Bedeutung von Datenqualität analysiert und untersucht, wie
diese mit Regelsystemen eingehalten werden kann.
Dazu wurden anfangs alle relevanten Begriffe definiert und ein grundlegendes Verständnis der Problematik geschaffen. Es konnte festgestellt werden, dass es sich bei
Datenqualität um ein multidimensionales Konzept handelt. Außerdem wurde neben der
Definition des Begriffs der Geschäftsregeln untersucht, wie Regeln in Rule-Engines sowie
in relationalen und in NoSQL-Datenbanken umgesetzt sind. Nach dieser Schaffung von
Grundlagen wurde analysiert wie Datenqualität praktisch verbessert werden kann. In der
Literatur wurden verschiedene Managementkonzepte und Vorgehensmodelle gefunden,
die eine Betrachtung von Daten über ihren gesamten Lebenszyklus hinweg fordern. Es
konnte festgestellt werden, dass eine kontinuierliche Messung von Datenqualität und
die Verfolgung von passenden Verbesserungsaktionen nötig sind, um eine nachhaltige
Einhaltung definierter Standards zu gewährleisten. Es wurde untersucht wie der von
Wang vorgeschlagene Datenqualitätsmanagement-Ansatz TDQM praktisch umsetzbar ist
und auf dieser Basis ein Konzept zur Verbesserung von Datenqualität herausgearbeitet.
Als Referenz wurde in dieser Arbeit der Kontext medizinischer Versorgungszentren
angenommen. Eine Analyse von Referenzunternehmen aus diesem Bereich zeigte erhebliche Mängel in der Verfolgung effektiver Datenqualitätsstrategien auf. Innerhalb
der Referenzunternehmen konnten zwar bestehende Datenqualitätsregeln identifiziert
werden, allerdings mangelte es an einem System zur automatisierten Überprüfung und
Überwachung der Regeln. Zur Verbesserung dieses Zustands wurde prototypisch ein
Datenqualitätswerkezug konzipiert, welches es Anwendern ohne informatisches Fachwissen ermöglicht eigenständig Datenqualitätsregeln aufzustellen. Das Werkzeug erlaubt
die Integrierung von in den Referenzunternehmen bestehenden sowie die Formulierung
von neuen komplexeren Regeln. Es ermöglicht eine kontinuierliche und automatisierte
Überprüfung der Datenqualitätsregeln, die Spezifizierung von Aktionen bei Erfüllung
der Regeln sowie die Betrachtung regelverletzender Datensätze. Durch die fortlaufende
Überwachung wird ein erneutes unbemerktes Absinken der Qualität verhindert und
eine nachhaltige Verbesserung der Datenqualität ermöglicht. Das Werkzeug bietet den
87
6 Zusammenfassung und Ausblick
Anwendern in allen Phasen des TDQM Unterstützung und trägt so zu einem effektiven
Datenqualitätsmanagement bei.
In zukünftigen Arbeiten besteht vor allem Verbesserungspotenzial in der Erweiterung
der Funktionalitäten des Datenqualitätswerkezugs. Dabei bietet sich die Erweiterung von
Möglichkeiten bei Formulierung von Regelkonditionen und Aktionen sowie die Anpassung
an weitere SQL-Dialekte an. Die Formulierung der Regelkonditionen kann so etwa durch
die Hinzunahme von Metadaten verbessert werden. Damit könnten z.B. zeitliche Aspekte
der Datenqualität überwacht werden. Die bisher implementierten Aktionen beschränken
sich auf das Versenden von Warnungen bei Identifizierung mangelnder Datenqualitätsniveaus. Zukünftig sind erweiterte Aktionen etwa zur direkten Ausbesserung mangelnder
Daten oder Abweisung unzufriedenstellender Eingaben denkbar.
88
Literaturverzeichnis
[Bal09]
Bali, Michal: Drools JBoss Rules 5.0 Developer’s Guide. Packt Publishing,
2009
[Bal11]
Balzert, H.: Lehrbuch Der Softwaretechnik: Entwurf, Implementierung,
Installation und Betrieb. Spektrum Akademischer Verlag GmbH, 2011
[BCFM09]
Batini, Carlo ; Cappiello, Cinzia ; Francalanci, Chiara ; Maurino,
Andrea: Methodologies for Data Quality Assessment and Improvement. In:
ACM Comput. Surv. 41 (2009), Juli, Nr. 3, S. 16:1–16:52
[BFG+ 07]
Bohannon, Philip ; Fan, Wenfei ; Geerts, Floris ; Jia, Xibei ; Kementsietsidis, Anastasios: Conditional Functional Dependencies for Data
Cleaning. In: ICDE, 2007, S. 746–755
[BP85]
Ballou, Donald P. ; Pazer, Harold L.: Modeling Data and Process Quality
in Multi-Input, Multi-Output Information Systems. In: Management Science
31 (1985), Nr. 2, S. 150–162
[BS06]
Batini, Carlo ; Scannapieco, Monica: Data Quality: Concepts, Methodologies and Techniques. Springer, 2006
[BSM03]
Bovee, Matthew ; Srivastava, Rajendra P. ; Mak, Brenda: A Conceptual
Framework and Belief-Function Approach to Assessing Overall Information
Quality. In: Int. J. Intell. Syst. 18 (2003), Nr. 1, S. 51–74
[BWPT98]
Ballou, Donald ; Wang, Richard ; Pazer, Harold ; Tayi, Giri K.:
Modeling Information Manufacturing Systems to Determine Information
Product Quality. In: Manage. Sci. 44 (1998), April, Nr. 4, S. 462–484
[CFP04]
Cappiello, Cinzia ; Francalanci, Chiara ; Pernici, Barbara: Data
Quality Assessment from the Users Perspective. In: IQIS, 2004, S. 68–73
89
Literaturverzeichnis
[CM08]
Chiang, Fei ; Miller, Renée J.: Discovering Data Quality Rules. In: Proc.
VLDB Endow. 1 (2008), August, Nr. 1, S. 1166–1177
[Dat03]
Date, C.J.: An Introduction to Database Systems. 8. Auflage. AddisonWesley, 2003
[Dem86]
Deming, W E.: Out of the Crisis. In: Center for Advanced Engineering
Study (1986), S. 6
[EBL13]
Endler, Gregor ; Baumgärtel, Philipp ; Lenz, Richard: Pay-as-you-go
Data Quality Improvement for Medical Centers. In: Ammenwerth, E.
(Hrsg.) ; Hörbst, A. (Hrsg.) ; Hayn, D. (Hrsg.) ; Schreier, G. (Hrsg.):
Proceedings of the eHealth2013, 2013, S. 13–18
[Eck02]
Eckerson, Wayne: Data Quality and the Bottom Line: Achieving Business Success through a Commitment to High Quality Data / The Data
Warehousing Institute. 2002. – Forschungsbericht
[ELPL11]
Endler, Gregor ; Langer, Michael ; Purucker, Jörg ; Lenz, Richard:
An Evolutionary Approach to IT Support in Medical Supply Centers. In:
(GI), Gesellschaft für Informatik e.V. (Hrsg.): Informatik 2011, 2011
[EN94]
Elmasri, Ramez ; Navathe, Shamkant B.: Fundamentals of Database
Systems. 2. Auflage. Benjamin/Cummings, 1994
[End12]
Endler, Gregor: Data Quality and Integration in Collaborative Environments. In: SIGMOD/PODS (Hrsg.) ; ACM (Hrsg.): Proceedings of the
SIGMOD/PODS 2012 PhD Symposium. New York, NY, USA, 2012, S.
21–26
[Eng99]
English, L.P.: Improving Data Warehouse and Business Information
Quality: Methods for Reducing Costs and Increasing Profits. Wiley, 1999
[Eur03]
Europäische Union: Richtlinie 2003/98/EG des Europäischen Parlaments und des Rates über die Weiterverwendung von Informationen des
öffentlichen Sektors. 2003
[Fan08]
Fan, Wenfei: Dependencies Revisited for Improving Data Quality. In:
Proceedings of the Twenty-Seventh ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems. New York, NY, USA : ACM,
2008, S. 159–170
90
Literaturverzeichnis
[FH03]
Friedman-Hill, Ernest: Jess in Action: Java Rule-Based Systems. Greenwich, CT : Manning, 2003
[FK01]
Fisher, Craig W. ; Kingma, Bruce R.: Criticality of Data Quality as
Exemplified in Two Disasters. In: Inf. Manage. 39 (2001), Dezember, Nr. 2,
S. 109–116
[GMUW09] Garcia-Molina, H. ; Ullman, J.D. ; Widom, J.: Database Systems. 2.
Auflage. Pearson Prentice Hall, 2009
[HAE09]
Hellmann, W. ; Antwerpes, T. ; Eble, S.: Gesundheitsnetzwerke
managen: Kooperationen erfolgreich steuern. MWV Medizinisch Wiss.
Verlag-Ges., 2009
[Hay00]
Hay, D. ; Healy, K (Hrsg.): Defining Business Rules ~ What Are They
Really? Final Report, 2000
[Hel02]
Helfert, M.: Planung und Messung der Datenqualität in Data-WarehouseSystemen. Universität Strassburg, 2002
[HGHM11]
Hildebrand, Knut ; Gebauer, Marcus ; Hinrichs, Holger ; Mielke,
Michael: Daten- und Informationsqualität. Auf dem Weg zur Information Excellence. 2. Auflage. Wiesbaden : Vieweg + Teubner / Springer
Fachmedien, 2011
[HR85]
Hayes-Roth, Frederick: Rule-Based Systems. In: Commun. ACM 28
(1985), September, Nr. 9, S. 921–932
[HS98]
Hernández, Mauricio A. ; Stolfo, Salvatore J.: Real-World Data is Dirty:
Data Cleansing and The Merge/Purge Problem. In: Data Min. Knowl.
Discov. 2 (1998), Januar, Nr. 1, S. 9–37
[HW92]
Hanson, Eric ; Widom, Jennifer: An Overview of Production Rules in
Database Systems. In: The Knowledge Engineering Review 8 (1992), S.
121–143
[JLVV03]
Jarke, M. ; Lenzerini, M. ; Vassiliou, Y. ; Vassiliadis, P.: Fundamentals of Data Warehouses. Springer, 2003
[KE11]
Kemper, Alfons ; Eickler, André: Datenbanksysteme - Eine Einführung.
8. Auflage. Oldenbourg, 2011
91
Literaturverzeichnis
[KM12]
Kulkarni, Krishna ; Michels, Jan-Eike: Temporal Features in SQL:2011.
In: SIGMOD Record Vol. 41, No. 3 (2012)
[LC02]
Liu, L. ; Chi, L.: Evolutionary Data Quality. In: the 7th International
Conference on Information Quality (ICIQ 02). Boston, MA, 2002
[Los02]
Loshin, David: Rule-Based Data Quality. In: Proceedings of the Eleventh
International Conference on Information and Knowledge Management. New
York, NY, USA : ACM, 2002, S. 614–616
[Los10]
Loshin, David: The Practitioner’s Guide to Data Quality Improvement.
Elsevier Science, 2010
[LPFW09]
Lee, Yang W. ; Pipino, Leo L. ; Funk, James D. ; Wang, Richard Y.:
Journey to Data Quality. The MIT Press, 2009
[MS02]
Melton, J. ; Simon, A.R.: SQL:1999: Understanding Relational Language
Components. Morgan Kaufmann, 2002
[Nau02]
Naumann, Felix: Quality-Driven Query Answering for Integrated Information Systems. Berlin, Heidelberg : Springer-Verlag, 2002
[Nau07]
Naumann, Felix: Datenqualität. In: Informatik Spektrum 30 (2007), Nr. 1,
S. 27–31
[NLIH13]
Nance, Corey ; Losser, Travis ; Iype, Reenu ; Harmon, Gary: NoSQL
vs RDBMS - Why There is Room for Both. In: Proceedings of the Southern
Association for Information Systems Conference, 2013
[Off06]
Office Of Management and Budget: Information Quality Guidelines
for Ensuring and Maximizing the Quality, Objectivity, Utility, and Integrity
of Information Disseminated by Agencies. 2006
[OGOG+ 11] Okman, Lior ; Gal-Oz, Nurit ; Gonen, Yaron ; Gudes, Ehud ; Abramov, Jenny: Security Issues in NoSQL Databases. In: International Joint
Conference of IEEE TrustCom-11/IEEE ICESS-11/FCST-11 (2011)
[Omi07]
92
Omikron Data Quality GmbH: Datenqualität in Unternehmen häufig
mangelhaft. 2007
Literaturverzeichnis
[Pie04]
Pierce, Elizabeth M.: Assessing Data Quality with Control Matrices. In:
Commun. ACM 47 (2004), Februar, Nr. 2, S. 82–86
[PLW02]
Pipino, Leo L. ; Lee, Yang W. ; Wang, Richard Y.: Data Quality
Assessment. In: Commun. ACM 45 (2002), April, Nr. 4, S. 211–218
[Qua14]
Quartz: Quartz Scheduler 2.1.x Documentation, 2014
[Red97]
Redman, Thomas C.: Data Quality for the Information Age. 1. Auflage.
Norwood, MA, USA : Artech House, Inc., 1997
[SH97]
Saake, Gunter ; Heuer, Andreas: Datenbanken: Konzepte und Sprachen.
International Thomson, 1997
[SI05]
Shuxin, Yin ; Indrakshi, Ray: Relational Database Operations Modeling
with UML. In: 2013 IEEE 27th International Conference on Advanced
Information Networking and Applications (AINA) 1 (2005), S. 927–932
[SMB05]
Scannapieco, Monica ; Missier, Paolo ; Batini, Carlo: Data Quality at
a Glance. In: Datenbank-Spektrum 14 (2005), S. 6–14
[SRR+ 07]
Sasikumar ; Ramani ; Raman ; Anjaneyulu ; Chandrasekar: A
Practical Introduction to Rule Based Expert Systems. Narosa Publishing
House, New Delhi, 2007
[Sta07]
Starke, Gernot: Regelbasierte Systeme. In: JavaSPEKTRUM (6/2007),
S. 36–38
[Sta08]
Starke, Gernot: Effektive Software-Architekturen: Ein praktischer Leitfaden. Hanser, 2008
[Stü93]
Stürner: Oracle7 - Die verteilte Datenbank. 2. Auflage. dbms publishing,
1993
[Ten01]
Tennant, G.: Six Sigma: SPC and TQM in manufacturing and services.
Gower Publishing, Ltd., 2001
[Wik]
Wikipedia: Model-View-Controller. http://en.wikipedia.org/wiki/
File:MVC-Process.svg. – [Aufgerufen: 12.01.2014]
93
Literaturverzeichnis
[WS96]
Wang, Richard Y. ; Strong, Diane M.: Beyond Accuracy: What Data
Quality Means to Data Consumers. In: J. Manage. Inf. Syst. 12 (1996),
März, Nr. 4, S. 5–33
[WW96]
Wand, Yair ; Wang, Richard Y.: Anchoring Data Quality Dimensions in
Ontological Foundations. In: Commun. ACM 39 (1996), November, Nr. 11,
S. 86–95
[WZL01]
Wang, Richard Y. ; Ziad, Mostapha ; Lee, Yang W.: Data Quality. Bd. 23.
Kluwer, 2001
94
Herunterladen