Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
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