22.01.2014 Aufrufe

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

7.3 Backend 99<br />

Befehle wie z.B. INSERT INTO ... VALUES ... befüllt. Data Manipulation Language (DML)<br />

ist eine Sprache mit einer Programmiersprachen-ähnlichen Syntax, die für die Erstellung, Entfernung<br />

und Aktualisierung von Datenbestände in einer Datenbank verwendet wird.<br />

Es werden nämlich die AssetCategory und andere Relationen wie CentralElement (siehe auch<br />

Abschnitt 7.3.2) mit einem ursprünglichen Datenbasis befüllt. Durch diese ursprüngliche Befüllung<br />

wird die weitere Modellierung der Umgebung so gesehen “freigegeben” – der Wohnungseigentümer<br />

kann die vorhandene Menge an Kontext-Elementen wie z.B. die AssetCategories sehen und eventuell<br />

erweitern.<br />

Dadurch sind einige der technischen Vorbedingungen behandelt, die für die Benutzung bzw. Befüllung<br />

des ursprünglichen Datenmodells erforderlich sind. Die Beschreibung der eigentlichen Benutzung<br />

des Kontext-Modells mithilfe der mobilen Anwendungen wird im Absatz 7.4 in Detail vorgeführt.<br />

Umsetzung des “Data Liberation” Vorgangs<br />

Ein zentraler Prinzip des “Data Liberation” Vorgangs ist die Bereitstellung der exportierten Daten<br />

in ein möglichst offenes, portables Format, um die Interoperabilität des Ergebnisses gewährleisten<br />

zu können. In diesem Fall wird es von einem allgemeinen Datenexport der Datenbank gesprochen<br />

– das übliche Format ist eine SQL-Datei, die aus mehreren DDL-Befehlen wie CREATE TABLE<br />

sowie INSERT INTO besteht. Dadurch bleibt nur die Erfüllung der Interoperabilität – im Fall des<br />

PostgreSQL Datenbanksystems müssen einige Aspekte mitberücksichtigt werden, wie z.B. die Vermeidung<br />

des eigenen “COPY” (schnellere, PostgreSQL-spezifische Variante vom INSERT INTO)<br />

Befehls.<br />

Die Analyse vorhandener Lösungen zu einem Ruby-unterstützten Datenbank-Export haben gezeigt,<br />

dass entweder die Werkzeuge nur für UNIX-ähnliche Betriebssysteme anwendbar sind (wie im<br />

Fall des “Backup” 5 Gems) oder dass sie nur mit einer spezifischen ORM (in diesem Fall, ActiveRecord,<br />

bekannt als Teil des “Ruby on Rails” Web Framework 6 ) auszuführen sind (der Fall bei dem<br />

“pg_dumper” 7 Gem).<br />

Zu diesem Zweck wurde ein eigenes Kommandozeile-basiertes Ruby Programm entwickelt, welches<br />

das mit PostgreSQL mitgelieferte Werkzeug pg_dump aufruft und den Datenexport ausführt.<br />

Die Funktionsweise ist die folgende: mit der Übergabe des Namens der Datenbank (siehe auch 7.3.1)<br />

werden die Zugangsparameter bestimmt (Benutzername, Name der zu exportierenden Datenbank,<br />

welche die Datenmodell enthält). Den Pfad bis zum pg_dump wird ermittelt (ggf. wird nach einer<br />

manuellen Angabe nachgefragt, wenn den Pfad nicht automatisch ermittelt werden kann) und der<br />

Datenexport wird ausgeführt.<br />

Als Ergebnis wird eine SQL-Datei zurückgegeben, welche der Zustand der Datenbank zu dem Zeitpunkt<br />

der Ausführung widerspiegelt. Optional kann diese Datei mit dem GZip Verfahren komprimiert<br />

werden. Die Datei kann von anderen Datenbanksystemen benutzt werden oder zu einer PostgreSQL<br />

Datenbank automatisch mithilfe des pg_restore Werkzeuges wieder importiert werden.<br />

5<br />

https://github.com/meskyanichi/backup<br />

6<br />

http://www.rubyonrails.org<br />

7<br />

https://github.com/mikz/pg_dumper

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!