Declarative Data Cleaning Vortragsgrundlage: Helena Galhardas, Daniela Florescu, Dennis Shasha, Eric Simon, Cristian-Augustin Saita: “Declarative Data Cleaning: Language, Model, and Algorithms”, in VLDB '01: Proceedings of the 27th International Conference on Very Large Data Bases, 2001 Original Version: http://www.vldb.org/conf/2001/P371.pdf Extended Version: ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/RR-4149.pdf Declarative Data Cleaning: Language, Model, and Algorithms Seminar: Digital Information Curation Sebastian Rexhausen Inhalt •Einführung Problemstellung •Declarative Data Cleaning –Konzept –Specification Language –User Interaction Data Cleaning Nur auf Grund von verlässlichen Daten können verlässliche Entscheidungen getroffen werden. Aufgabe Data Cleaning: Auch „data cleansing”, “data scrubbing”oder “Datenbereinigung” Erkennen von Inkonsistenzen und Fehlern in Datenbeständen und anschließendes Entfernen bzw. Korrigieren der Daten. Data Cleaning Nachfrage nach Data Cleaning: •Anomalien in einer Datensammlung •Überführung von unstrukturierte/teilstrukturierten Daten in strukturierte Daten •Kombination von Daten aus mehreren Quellen Probleme Referenz aus Paper1: [QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom. Making Views Self-Maintainable for Data Warehousing. In Proceedings of the Conference on Parallel and Distributed Information Systems. Miami Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as pub/papers/self-maint.ps. Referenz aus Paper2: [12] D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95 Probleme Referenz aus Paper1: [QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom. Making Views Self-Maintainable for Data Warehousing. In Proceedings of the Conference on Parallel and Distributed Information Systems. Miami Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as pub/papers/self-maint.ps. Referenz aus Paper2: [12] D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95 1. universelle ID Probleme Referenz aus Paper1: [QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom. Making Views Self-Maintainable for Data Warehousing. In Proceedings of the Conference on Parallel and Distributed Information Systems. Miami Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as pub/papers/self-maint.ps. Referenz aus Paper2: [12] D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95 1. 2. universelle ID Syntax & Formatierung Probleme Referenz aus Paper1: [QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom. Making Views Self-Maintainable for Data Warehousing. In Proceedings of the Conference on Parallel and Distributed Information Systems. Miami Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as pub/papers/self-maint.ps. Referenz aus Paper2: [12] D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95 1. 2. universelle ID Syntax & Formatierung Probleme Referenz aus Paper1: [QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom. Making Views Self-Maintainable for Data Warehousing. In Proceedings of the Conference on Parallel and Distributed Information Systems. Miami Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as pub/papers/self-maint.ps. Referenz aus Paper2: [12] D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95 1. 2. 3. universelle ID Syntax & Formatierung Konsistenz der Daten Probleme Referenz aus Paper1: [QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom. Making Views Self-Maintainable for Data Warehousing. In Proceedings of the Conference on Parallel and Distributed Information Systems. Miami Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as pub/papers/self-maint.ps. Referenz aus Paper2: [12] D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95 1. 2. 3. 4. universelle ID Syntax & Formatierung Konsistenz der Daten Fehlerhaftigkeit der Daten Probleme Referenz aus Paper1: [QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom. Making Views Self-Maintainable for Data Warehousing. In Proceedings of the Conference on Parallel and Distributed Information Systems. Miami Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as pub/papers/self-maint.ps. Referenz aus Paper2: [12] D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95 1. 2. 3. 4. 5. universelle ID Syntax & Formatierung Konsistenz der Daten Fehlerhaftigkeit der Daten Unterschiedliche Informationen Declarative Data Cleaning Ergebnisse der existierenden Verfahren unzureichend Declarative Data Cleaning •Hauptsächlich: klare Trennung von logischer Spezifikation und physischer Implementierung •Framework (Projekt AJAX) •Einbeziehung des Nutzers während des ganzen Analyseprozesses Trennung logische/physische Ebene Logische Ebene: Datenflussdiagramm welches die zur Bereinigung der Daten benötigten Transformationen spezifiziert Physische Ebene: Implementierung und Optimierung der Daten-Transformationen Framework für bibliographische Daten Logische Ebene •erweitertes SQL •eigene Datenquellen Physische Ebene Optimierungsmöglichkeiten: •Optimierung der gewählten Funktion •Wahl einer optimalen Funktion (+ evtl. Implementierung) Specification Language Operatoren •Mapping •Matching •Clustering •Merging •(View) Mapping Operator •arbeitet die Daten für die weitere Verarbeitung auf •falls kein Unique-Key vorhanden ist hinzufügen, ansonsten übernehmen CREATE MAPPING <operation-name> FROM <predicate-name> [<alias-variable>] [LET <let-clause>] [WHERE <where-clause>] <select-into-clause> Mapping Operator CREATE MAPPING AddKeytoDirtyData FROM DirtyData LET Key = generateKey(DirtyData.paper) {SELECT Key.gernerateKey AS paperKey, DirtyData.paper AS paper INTO KeyDirtyData} Matching Operator •sucht nach Einträgen, die wahrscheinlich das gleiche Objekt beschreiben •Übereinstimmungskriterium kann ein oder mehrere Einträge sein CREATE FROM [LET [WHERE INTO MATCHING <operation-name> (<predicate-name> [<alias-variable>])+ <let-clause>] <where-clause>] <predicate-name> Matching Operator CREATE FROM LET WHERE INTO MATCHING MatchDirtyAuthors DirtyAuthors a1, DirtyAuthors a2 distance = editDistanceAuthors(a1.name, a2.name) distance < maxDist(a1.name, a2.name, 15) MatchAuthors Clustering Operator •gruppiert Einträge, deren Ähnlichkeitswert einen vorgegebenen Schwellenwert übersteigt CREATE CLUSTERING <operation-name> FROM <predicate-name> [<alias-variable>] BY METHOD <method-name> WITH PARAMETERS <parameter-name> [{<parameter-name}] INTO <predicate-name> Clustering Operator CREATE CLUSTERING clusterAuthorsByTransitiveClosure FROM MatchAuthors BY METHOD transitive closure WITH PARAMETERS authorKey1, authorKey2 INTO clusterAuthors Merging Operator •fügt die durch den Clusteralgorithmus berechneten Gruppen zu jeweils einem Eintrag zusammen CREATE MERGING <operation-name> USING <predicate-name> [<alias-variable>] LET <let-clause> [WHERE <where-clause>] <select-into-clause> Merging Operator CREATE MERGING MergeAuthors USING clusterAuthors(cluster_id) ca LET name = getLongestAuthorName(DirtyAuthors(ca).name) key = generateKey() {SELECT key AS authorKey, name AS name INTO Authors} View Operator •arbeitet die Inhalte aus verschiedenen Relationen zu einer neuen Relation so auf, dass sie einem gewünschten Ausgabeformat entsprechen CREATE VIEW <operation-name> FROM (<predicate-name> [<alias-variable>])+ [WHERE <where-clause>] {<select-into-clause>} View Operator CREATE VIEW viewPublications FROM DirtyPubs p, Titles t WHERE p.pubkey AS pubKey {SELECT p.pubkey AS pubKey, t.title AS title, t.eventKey AS eventKey, p.volume AS volume, p.number AS number, p.country AS country, p.city AS city, p.pages AS pages, ... INTO Publications CONSTRAINT NOT NULL title} User Interaction Explizite Nutzer-Interaktion während des ganzen Prozesses •schrittweise Verfeinerung der Anfragen •Zurückverfolgung der Anfragen •Exceptions Ende