Options
2007
Diploma Thesis
Title
Generative Programmierung für Datenbanken am Beispiel MediaSeeker
Abstract
Arbeiten mehrere Personen an einem Projekt, das auf eine Datenbank zugreift, so kommt es häufig vor, dass verschiedene Entwickler auf unterschiedliche Weise auf die Datenbank zugreifen. Durch die verschiedenen Lösungsansätze ist jedoch die Wartung des Codes schwierig. Auch wenn an dem Schema der Datenbank Änderungen vorgenommen werden, so müssen oft zahlreiche Stellen im Code angepasst werden. Um diese Probleme zu umgehen, kann ein Generator verwendet werden, der mit Hilfe des Datenbankschemas Quellcode erzeugt. Der im Zuge der Diplomarbeit entwickelte Generator DBCodeGen ist in der Lage, ein beliebiges Datenbankschema aus einer Microsoft SQLServer Datenbank auszulesen und einem oder mehreren Ausgabe-Plugins zur Verfügung zu stellen. Diese werden zur Laufzeit geladen und verwaltet. Das für DBCodeGen geschriebene Ausgabe-Plugin DBCodeExporter ist in der Lage, aus Templates und dem Datenbankschema Texte zu generieren. Die Templates verwenden dafür eine spezielle Sprache, die von DBCodeExporter interpretiert wird. Die Sprache ermöglicht Schleifen über zum Beispiel alle Tabellen oder Sichten, Abfragen, ob zum Beispiel eine Spalte als Primärschlüssel fungiert und das Einfügen fester Werte wie zum Beispiel den Datenbanknamen. Aller Text, der nicht in der Sprache definiert ist, wird in die Ausgabe kopiert. Es ist möglich, jeden beliebigen Text zu generieren, zum Beispiel Quellcode, Dokumentation oder HTML-Seiten. Der in dieser Arbeit vorgestellte Code zum Zugriff auf die Datenbank ist vollständig mit DBCodeGen und DBCodeExporter generiert worden. Durch einige Maßnahmen ist es nur noch sehr schwer möglich, Code zu schreiben, der zur Laufzeit Probleme, wie zum Beispiel falsche Typen, erzeugt. Diese werden alle bereits beim Compilieren abgefangen.
;
If many developers work on a project for a database, they often use different ways to access the data. Those different solutions are hard to maintain. Another problem is the changing of the database schema. If a changing is done, big parts of the code have to be changed, too. To solve these problems, one could use a code generator which uses the database schema to produce the code. The presented generator DBCodeGen takes the schema of a running SQLServer database and passes it to one or more output plugins. These are loaded and managed at runtime. The plugin DBCodeExporter is a plugin for DBCodeGen. It produces its output with the database schema and so called templates. The templates are written in a special language which is interpreted by DBCodeExporter. With this language it is possible to create loops (i.e. for every table), branches (i.e. if a column is a primary key) and constant data (i.e. the name of the database). All text, which is not part of the language gets copied to the output. With this technique it is possible to generate simple text, source code or others which can be written as text. The presented code to access the database is generated with DBCodeGen and DBCodeExporter. If one uses this code, he can't easily write code wich doesn't work. The most possible mistakes are fetched while compiling the program.
Thesis Note
Gießen-Friedberg, FH, Dipl.-Arb., 2007
Publishing Place
Gießen
Language
German
Keyword(s)