WWW.ABSTRACT.XLIBX.INFO
FREE ELECTRONIC LIBRARY - Abstract, dissertation, book
 
<< HOME
CONTACTS



Pages:   || 2 | 3 | 4 | 5 |   ...   | 12 |

«Entwurf und Implementierung eines SQL-DDL-Präprozessors zur Unterstützung von Datenbankentwurfsmustern Diplomarbeit im Fach Informatik vorgelegt ...»

-- [ Page 1 ] --

Entwurf und Implementierung eines

SQL-DDL-Präprozessors zur

Unterstützung von

Datenbankentwurfsmustern

Diplomarbeit im Fach Informatik

vorgelegt von

Olivier Wirz

Basel, Schweiz

Matrikelnummer 99-051-815

Supervisor:

Prof. Dr. Carl-Christian Kanne

Database Technology Research Group

Betreuer:

Boris Glavic

Abgabe der Arbeit: 1. März 2009

Angefertigt am

Institut für Informatik

der Universität Zürich

Zusammenfassung In der Software-Entwicklung sind wiederkehrende Entwurfsstrukturen, sog.

Entwurfsmuster, unentbehrlich geworden. Sie stehen für gutes Design und definieren ein Vokabular unter Entwicklern. Auch beim Entwurf von Datenbankschemata existieren wiederkehrende Muster. Allerdings sind diese Muster weit weniger gut dokumentiert als Muster aus anderen Bereichen, wie bspw. der objektorientierten Programmierung. Unter dem Begriff Datenbankentwurfsmuster liefert diese Diplomarbeit Beispiele von bekannten Entwurfsmustern, die bei der Erzeugung von Schemata auf relationalen Datenbanksystemen verwendet werden. Durch Spezifikation, Entwurf und Implementierung von SQLPP (Structured Query Language Preprocessor), eines datenbankunabhängigen SQL-Präprozessors für die Verarbeitung von Makros (sog. Makroprozessor), wird eine Möglichkeit beschrieben, wie Datenbankentwurfsmuster gespeichert und wiederverwendet werden können. Dabei werden Datenbankentwurfsmuster als Makros definiert.

Klassifikationen gemäss ACM Computing Classification System (http://www.acm.org/class/1998/):

D.3.3, H.2.1, H.2.3, D.3.4, D.3.2 Abstract Design patterns have become essential in software development. They identify good design and define a vocabulary among developers. Recurring patterns also exist in database schema design but are not as well documented as design patterns of other areas in software development such as e. g. design patterns of object-oriented development. This diploma thesis provides examples of design patterns for schema creation for relational databases. We refer to this type of patterns as Database Design Patterns. We present SQLPP, a SQL preprocessor for macro processing. SQLPP enables users to store and reuse design patterns for schema creation, whereas the design patterns are defined in macros.

Classifications according to the ACM Computing Classification System (http://www.acm.org/class/1998/):

D.3.3, H.2.1, H.2.3, D.3.4, D.3.2 Categories and Subject Descriptors Matching classifications according to the ACM Computing Classification System (http://www.acm.org/class/1998/) D.3.3 [Programming Languages]: Languages Constructs and Features — Patterns H.2.1 [Database Management]: Logical Design — Schema and Subschema H.2.3 [Database Management]: Languages — Data Description Languages D.3.4 [Programming Languages]: Processors — Preprocessors D.3.2 [Programming Languages]: Language Classification — Macro and Assembly Languages Danksagung Ich möchte allen herzlich danken, die in irgend einer Form zum Gelingen dieser Diplomarbeit beigetragen haben.

Ein grosses Dankeschön geht an meinen Betreuer Boris Glavic, der immer für mich Zeit hatte und mir stets mit guten Ratschlägen zur Seite stand. Seine Kompetenz und konstruktiven Anregungen haben massgeblich zum Resultat dieser Arbeit beigetragen.

Für die Gelegenheit, dieses packende Thema überhaupt bearbeiten zu dürfen, möchte ich mich bei Prof. Carl-Christian Kanne bedanken.

Ganz besonders möchte ich meinen Eltern danken, die mich nicht nur während dieser Arbeit, sondern während meines gesamten Studiums in jeder erdenklichen Form unterstützt haben.

Des Weiteren danke ich Andri Steinmann und Werner Winkelmann sowie meinem gesamten Umfeld.

Inhaltsverzeichnis

–  –  –

IV Teil I Inhalt Kapitel 1 Einleitung

1.1 Motivation Seit dem Erscheinen des erfolgreichen Buchs von Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides [GHJV04], welche als „Gang of Four“ einen ersten umfassenden Katalog von Entwurfsmustern für objektorientierte Programmierung geschrieben haben, ist man sich bei der SoftwareEntwicklung der Bedeutung von Entwurfsmustern für wiederkehrende Entwurfsprobleme bewusst. Die Vorteile solcher Muster liegen auf der Hand: Sie definieren eine Sprache unter Entwicklern, das heisst, sie steigern die Verständlichkeit und damit die Qualität von Quellcode, sie lösen Probleme, die immer wieder auftauchen und reduzieren somit den Aufwand, sowohl beim Forward als auch beim Re- und Reverse Engineering.

Wiederkehrende Muster gibt es aber nicht nur in der objektorientierten Programmierung, auch bei der Implementierung von Datenbankschemata existieren Muster. Meist werden heute Schemata auf ein relationales Datenmodell abgebildet. Die verwendeten Muster sind meist abhängig vom Modell, auf dem sie verwendet werden. Deshalb konzentriert sich diese Arbeit auf Muster für die Umsetzung von Schemata in relationalen Datenbanken. Mir ist bisher keine Publikation bekannt, die solche Muster umfassend katalogisiert. Auch die Verfasser von [MKB05] stellen fest, dass sich viele Arbeiten damit beschäftigt haben, wie Entwurfsmuster in objektorientierten DatenMotivation banken angewendet werden können, aber es gäbe nur wenige, die von der Anwendung in relationalen Datenbanken berichten.





Einige Arbeiten beschäftigen sich damit, bekannte Muster aus der objektorientierten Programmierung auf relationale Datenbanken anzuwenden (z. B. [Amb06]). In der relationalen Welt gibt es keine Objekte, Klassen und Instanzen. Ebenso wenig sind Konzepte wie die Vererbung, Kapselung oder Polymorphie inhärent vorhanden. Durch die weite Verbreitung von relationalen Datenbanken und objektorientierten Programmiersprachen ist es sinnvoll, solche Abbildungskonzepte (sog. objektrelationales Mapping) zu dokumentieren und als wiederverwendbare Muster zur Verfügung zu stellen. Dies trifft auch auf die Umsetzung von Datawarehouse-Systemen und temporalen Datenbanken zu. In Datawarehouse-Systemen werden Daten meist multidimensional modelliert, in temporalen Datenbanken stützt man sich auf temporale Konzepte. Um diese Daten in relationalen Datenbanken zu speichern, müssen

Abbildungskonzepte verwendet werden. [Jen00] stellt fest, dass bei der Wiederverwendung von temporalen Konzepten durchaus Nachholbedarf besteht:

Accommodating the time-varying nature of the enterprise is largely left to the developers of database applications, leading to ineffective and inefficient ad-hoc solutions that must be reinvented each time a new application is developed. The result is that data management is currently an excessively involved and error-prone activity.

Die bisher erwähnten Muster haben alle den gleichen Verwendungszweck, nämlich ein Rezept für die Abbildung von unterschiedlichen Konzepten zu liefern (3.1.1). Es gibt aber auch andere Arten von Mustern, die bspw. zwecks Performancesteigerung oder wegen Platzmangel Daten reorganisieren (3.1.2) oder Muster, die die Datenbankunabhängigkeit fördern (3.1.3).

Diese Diplomarbeit wird durch den Entwurf eines Makroprozessors für DDL-Befehle zeigen, wie Muster für die Implementierung von Datenbankschemata wiederverwendet werden können. Dadurch wird nicht nur das Verständnis des Datenbankentwurfs erhöht, sondern es wird auch der Aufwand bei der Erstellung und Erweiterung solcher Entwürfe verkleinert. Das SchreiProblemstellung und Ziel dieser Arbeit ben von SQL-Skripten zur Erstellung von Tabellen, Indexen, Schlüssel- und Fremdschlüsselbeziehungen sowie anderen Constraints, Triggern und Funktionen kann sehr zeitaufwändig sein. Oft muss der gleiche Code in leicht abgeänderter Form wieder und wieder neu geschrieben werden. Zum Beispiel kann innerhalb eines Schemas zur Versionierung von Datensätzen jeweils pro Tabelle eine Archivierungstabelle erstellt werden. Die Archivierungstabelle speichert alle Daten, die aufgrund von Änderungen nicht mehr gültig sind.

Bei der Erzeugung eines solchen Schemas werden die Tabellen meist mit Triggern ausgestattet, um gelöschte und veränderte Daten in die Archivierungstabellen zu transferieren. Diese Trigger müssen für alle Tabellen definiert werden, unterscheiden sich aber kaum voneinander. Bei der Implementierung dieses Musters muss also

1. die Erzeugung der Archivierungstabelle,

2. die Erzeugung der Trigger für jede Tabelle im Schema wiederholt werden.

Deshalb besteht bei wiederkehrenden Mustern – wie in diesem Beispiel – die Gefahr, dass Code kopiert wird, was neben dem manuellen Zusatzaufwand auch zu Fehlern oder schlechter Namensgebung führt. Letzteres resultiert in einem Entwurf, der nur schwer verständlich ist und somit ein wesentliches Qualitätsmerkmal nicht erfüllt. Ausserdem erschwert duplizierter Code die Refaktorierung von Datenbankschemata [AS06]. Aus allen bisher genannten Gründen sollten Codeduplikate prinzipiell vermieden werden.

1.2 Problemstellung und Ziel dieser Arbeit In dieser Diplomarbeit soll ein Werkzeug entwickelt werden, welches es ermöglicht, Entwurfsmuster für die Erzeugung von Datenbankschemata zu speichern und wiederzuverwenden. Die Entwurfsmuster müssen in einem ersten Schritt gesammelt und analysiert werden. Diese Arbeit hat jedoch nicht den Anspruch, einen vollständigen Katalog von Entwurfsmustern zu liefern.

Vielmehr soll mit bekannten Beispielmustern gezeigt werden, dass es solche

1.3. Aufbau Entwurfsmuster gibt und dass durch ihre einmalige Definition und Speicherung mit einem Werkzeug Zeit bei der Umsetzung von Schemata eingespart werden kann. Die analysierten Beispielmuster können in der letzten Phase des Projekts dazu verwendet werden, das erstellte Werkzeug zu evaluieren.

Der zeitliche Rahmen des Projektes umfasst 6 Monate.

1.3 Aufbau

Die Ausarbeitung dieser Diplomarbeit ist in 7 Kapitel gegliedert:

1. Einleitung

2. Terminologie und Definitionen

3. Datenbankentwurfsmuster

4. Anforderungsspezifikation

5. Lösungskonzept

6. Präprozessor in Aktion

7. Diskussion und Ausblick In Kapitel 2 werden die Grundlagen und Konzepte beschrieben, die für diese Diplomarbeit relevant sind. Dieses Kapitel führt die in dieser Arbeit verwendete Terminologie ein.

In Kapitel 3 wird der Begriff Datenbankentwurfsmuster definiert. Es werden verschiedene Entwurfsmuster beschrieben und aufgezeigt, in welchem Problemkontext sie verwendet werden. Auf einer abstrakteren Ebene der zahlreichen Problemkontexte werden die Muster in verschiedene Kategorien eingeteilt. Dieses Kapitel zeigt nicht im Detail, wie die jeweiligen Muster umgesetzt werden. Die Implementierung einiger Beispielmuster findet der Leser

1.3. Aufbau

in Kapitel 6.

In Kapitel 4 folgt eine lösungsneutrale und informale Beschreibung der Anforderungen, welche das zu erstellende Werkzeug erfüllen muss. Die Anforderungen werden dabei in funktionale und nicht-funktionale Anforderungen unterteilt. Die Anforderungsspezifikation bildet die Grundlage des Lösungskonzepts, welches in Kapitel 5 beschrieben wird.

Kapitel 5 zeigt verschiedene Möglichkeiten auf, wie ein Werkzeug umgesetzt werden kann, das die Anforderungen aus Kapitel 4 erfüllt. Aufgrund der Vorund Nachteile der verschiedenen Varianten wird dann ein Lösungskonzept gewählt. Die Detaillierungstiefe dieses Konzepts wird im Detailentwurf verfeinert. Danach folgt eine Beschreibung der Implementierung der wichtigsten Komponenten des Werkzeugs. In diesem Implementierungsteil wird auch die Syntax der Sprache beschrieben, die notwendig ist, um Entwurfsmuster zu definieren.

Kapitel 6 zeigt Beispielmuster in Anwendung mit dem erstellten Werkzeug.

Es wird aufgezeigt, wie Muster in der Praxis ohne Werkzeug umgesetzt werden und welche Vorteile die Einführung eines Werkzeugs bringt. Die Umsetzung der Muster mit dem Werkzeug soll dem Leser aber auch an Beispielen veranschaulichen, weshalb für den Entwurf des Werkzeugs einige der in Kapitel 5 genannten Lösungsansätze gewählt wurden.

Kapitel 7 führt eine Diskussion über die Ergebnisse dieser Diplomarbeit und macht Vorschläge, in welche Richtung das behandelte Thema weiter erforscht werden könnte.

1.3. Aufbau Kapitel 2 Terminologie und Definitionen In diesem Kapitel werden wichtige Begriffe und Konzepte beschrieben, die in Zusammenhang mit dieser Diplomarbeit stehen. Spezifische Begriffe und Konzepte der Diplomarbeit werden auf den Grundlagen dieses Kapitels aufbauen und in den nachfolgenden Kapiteln beschrieben.

2.1 Entwurfsmuster Ein Entwurfsmuster identifiziert und beschreibt ein wiederkehrendes Problem in der Softwareentwicklung. Es bietet für das wiederkehrende Problem einen abstrahierten Lösungsvorschlag, ohne eine konkrete Implementierung zu definieren. Das Entwurfsmuster kann auf seinen Problembereich beliebig oft angewendet werden. Dabei kann die Implementierung jedes Mal anders aussehen.

In [GHJV04] wurde von der „Gang of Four“ 1 um E. Gamma erstmals ein umfassender Katalog von Entwurfsmustern für objektorientierte Programmierung zusammengestellt. Dieses Buch gilt heute als Klassiker der objektorientierten Softwareentwicklung. Die Autoren von [GHJV04] definieren vier

Grundelemente eines Entwurfsmusters:

1. Mustername: Der Name sollte das Entwurfsproblem, seine Lösungen Mit „Gang of Four“ sind die vier Autoren Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides gemeint.

2.1. Entwurfsmuster und Auswirkungen beschreiben. Der Name des Entwurfsmusters wird so zum Vokabular unter Entwicklern und hilft ihnen, sich besser zu verständigen.

2. Der Problemabschnitt beschreibt den Problemkontext, in dem das Muster angewendet werden kann.

3. Der Lösungsabschnitt beschreibt die Elemente, aus denen der Entwurf besteht, sowie deren Beziehungen, Zuständigkeiten und Interaktionen.

In der objektorientierten Programmierung sind die Elemente Klassen, in der relationalen Welt Tabellen (auch Entitätstypen oder Relationen genannt) und andere Schemaobjekte.

4. Ein Konsequenzenabschnitt zeigt die Vor- und Nachteile des Musters auf. Flexibilität, Erweiterbarkeit und Portabilität durch Einfluss des Musters können hier ebenfalls aufgezeigt werden.



Pages:   || 2 | 3 | 4 | 5 |   ...   | 12 |


Similar works:

«Copyright by Charles Nwankwo The Dissertation Committee for Charles Nwankwo Certifies that this is the approved version of the following dissertation: ACCEPTANCE OF TECHNOLOGY, QUALITY, AND CUSTOMER SATISFACTION WITH INFORMATION TECHNOLOGY DEPARTMENT IN A COMMUNITY COLLEGE: A CASE STUDY Committee: John E. Roueche, Supervisor Norvell Northcutt, Co-Supervisor Michael P. Thomas Randall M. Parker Patricia Ugwu ACCEPTANCE OF TECHNOLOGY, QUALITY, AND CUSTOMER SATISFACTION WITH INFORMATION TECHNOLOGY...»

«Электронное научное издание Альманах Пространство и Время. Т. 3. Вып. 2 • 2013 Electronic Scientific Edition Almanac Space and Time Elektronische wissenschaftliche Auflage Almabtrieb ‘Raum und Zeit‘ A p age fo r th e fu tu re ‘ Pla to s an d qu ic k th i nk in g New to n s’ С тр а ни ц а б у д ущи х «П л ато но в (M.V. Lomo no sov) / и бы с тры х р а з у мо м Н е в то но в» Die...»

«Journal for Critical Animal Studies, Volume VII, Issue II, 2009 (ISSN1948-352X) The Broken Promises of Monsters: Haraway, Animals and the Humanist Legacy Zipporah Weisberg1 Introduction Beginning in Fall 2009, Harvard University will offer its first General Education course in Animal Studies. This reflects the academic community‟s increasing recognition of Animal Studies as a legitimate scholarly discipline. However, the nascent field is as yet not fully formed, and there are different...»

«An Investigation of the Insulin Pathway and TDP-43 Based Amyotrophic Lateral Sclerosis Item type text; Electronic Thesis Authors Podolsky, Taylor Catherine Publisher The University of Arizona. Rights Copyright © is held by the author. Digital access to this material is made possible by the University Libraries, University of Arizona. Further transmission, reproduction or presentation (such as public display or performance) of protected items is prohibited except with permission of the author....»

«EFSA Journal 2012;10(2):2569 SCIENTIFIC OPINION Scientific Opinion on ammonium chloride (Amoklor) for lambs for fattening1 EFSA Panel on Additives and Products or Substances used in Animal Feed (FEEDAP)2,3 European Food Safety Authority (EFSA), Parma, Italy ABSTRACT Ammonium chloride when used in feedingstuffs reduces the urinary pH and the formation of urinary calculi of target animals. Amoklor contains 99 % ammonium chloride. Ammonium chloride in complete diet for lambs for fattening at the...»

«Eötvös Loránd Tudományegyetem Államés Jogtudományi Kar Doktori Iskola Mohácsi Barbara A szabadságelvonás határai Helyettesítő intézmények és alternatív szankciók a magyar és a német jog összehasonlításának tükrében Doktori értekezés tézisei Témavezető: dr. Kabódi Csaba habilitált egyetemi docens Budapest 1. Az értekezés témája és a kitűzött kutatási feladat A személyes szabadsághoz való jog korlátozhatóságának fontos területe a...»

«ВЕСТНИК Екатеринбургской духовной семинарии. Вып. 4 (12). 2015, 144–163 II. Publication Раздел II. Публикации ПУБЛИКАЦИИ The Census Books of the Possessions of the Vierkhoturie Saint Nicholas Monastery (1678). Part 2. The Census Book of N. I. Nesentsev (Introduction, Edition and Notes by Andrey V. Poletaev) Переписные книги владений Верхотурского Свято-Николаевского...»

«Solomon II Blog Source (Google Reader Cache): http://solomonreborn.wordpress.com Contents Welcome to The Solomon Group Proverb 1: Man Proverb 2: Level the Playing Field Proverb 3: The Bright Side of Feminism Proverb 4: The Power of No Proverb 5: Little Critters Proverb 6: The Grizzly Bear Rule Aint That A Bitch Proverb 7: Emotional and Financial Resources Proverb 8: The Myth of the Double Standard Proverb 9: Get It While the Gettin’s Good Proverb 10: Monkey See Monkey Do What a Modern Woman...»

«Henrik Kniberg & Mattias Skarin Kanban und Scrum Optimaler Einsatz beider Methoden Aus dem Englischen übersetzt von Maria Oelinger Original: „Kanban and Scrum – making the most of both“ von Henrik Kniberg & Mattias Skarin © 2010 Quelle: www.infoq.com/minibooks/kanban-scrum-minibook Kindernothilfe e. V. Referat Organisation und Datenmanagement Kanban und Scrum Referat Organisation und Datenmanagement 28 Welche Aufgaben kommen an das Board? Vorwort von Mary Poppendieck Henrik Kniberg ist...»

«ALLGEMEINE GESCHÄFTSBEDINGUNGEN – CRITEO SERVICE Die vorliegenden allgemeinen Geschäftsbedingungen und Länderverzeichnisse („Bedingungen“) werden zwischen Criteo SA und dem Kunden für die Bereitstellung des Criteo-Service festgelegt. Criteo SA schließt die vorliegenden Bedingungen auf eigene Rechnung und auf Rechnung anderer Criteo-Gesellschaften ab, von denen einige bestimmte Serviceund Fakturierungsleistungen entsprechend den Erläuterungen in den vorliegenden Bedingungen...»

«                Addressing the Electricity Access Gap                Background Paper for the World Bank Group Energy Sector Strategy    June 2010    Table of Contents Acknowledgments Abbreviations Executive Summary Access Gap Barriers to Electrification Meeting the Challenge The Way Forward 1.  Electricity Access Challenge 2.1  Access Gap 2.2  Extending Electricity Access: A Complex Task 2.3  Barriers to Rural Electrification 2.4  Urban Electricity Access...»

«Our Ref: 11767.00 BUILDING BASELINE DATA ON MAORI, WHANAU DEVELOPMENT AND MAORI REALISING THEIR POTENTIAL LITERATURE REVIEW: DEVELOPING LEADERSHIP FINAL REPORT AUCKLAND UNISERVICES LIMITED a wholly owned company of THE UNIVERSITY OF AUCKLAND Prepared for: Prepared by: Te Puni Kokiri Dr Leonie Pihama and Ms Donna Gardiner P O Box 3943 International Research Institute 143 Lambton Quay The University of Auckland Wellington Date: August 23, 2005 Page 1 Reports from Auckland UniServices Limited...»





 
<<  HOME   |    CONTACTS
2016 www.abstract.xlibx.info - Free e-library - Abstract, dissertation, book

Materials of this site are available for review, all rights belong to their respective owners.
If you do not agree with the fact that your material is placed on this site, please, email us, we will within 1-2 business days delete him.