[opengeodb] SQL und andere Grundsätze

Martin Trautmann traut at gmx.de
Sam Dez 8 07:46:26 CET 2007


Lucas Mengel wrote:
> Nebenbei: Was habt ihr eigentlich gegen SQL?

Überhaupt nichts - aber ich habe einen Web-Anbieter, der mit kein SQL 
anbietet und ich habe Anwendungen, für die ich kein SQL brauche.

> SQL ist die Standard-Abfrage-Sprache für Datenbanken. Das hat eigentlich 
> nichts mit Struktur oder so zu tun.

Nur weil "Standard" in der Abkürzung drinsteckt heisst das nicht, dass 
man es für alles brauchen würde.

Meine eigene Hauptanwendung ist der Code-Generator 
fa-technik.adfc.de/code/ein, mit dem man sich aus zwei Millionen 
Strassen nach Möglichkeit jede Wohnadresse in Deutschland in den 
persönlichen EIN-Code zur Wertsachencodierung umwandeln lassen kann.

Die Menge der Strassen ist noch recht gering - für so kleine Mengen 
taugen Textdateien recht gut. Schwieriger ist dort, wie man die Daten 
aufbereiten und zusammensetzen kann. Der Anwender soll es möglichst 
einfach haben, bei der Suche nach Schloßstraße, Schlossstr., 
Schloss-Straße, schlosstr usw. die richtige Antwort zu bekommen.


> In der Praxis ist die Anwendung fast immer identisch:
> User geben über ein Web-Interface ihre Postleitzahl an, woraufhin in 
> einem für sie reservierten Datensatz die Koordinaten und
> weitere Informationen aus der openGeoDB gespeichert werden.
> 
> Nun das entscheidende: Damit später eine wirklich effiziente 
> Umkreissuche entstehen kann müssen die Koordinaten in der
> User-Datenbank der jeweiligen Community/Anwendung gespeichert werden.
> Ich glaube kaum, dass irgendeine dieser Plattformen bei jeder 
> Suchanfrage dieses beknackte Ebenen-Modull durchläuft.

Dieses Ebenenmodul sollte auch nur ein einziges Mal benötigt werden. Am 
einfachsten würden die entsprechenden Befehle direkt in den SQL-Dump 
eingebaut. Beim Einlesen der SQL-Daten würden die entsprechenden 
Tabellen dann automatisch angelegt.

Wenn SQL so leistungsfähig und standardisiert ist, wie du und ich 
glauben, dann sollte das eine einfache Geschichte sein. In meiner 
eigenen Datenbank hätte ich in wenigen Minuten ein rekursives Script 
zusammengeschrieben, das die Hierarchien erzeugt haben könnte. Meine 
Anwendung arbeitet aber nur auf Teilbeständen (ich habe die Länder nach 
Tabellen getrennt, weil ich selbst nur Deutschland brauche), ist hier 
also wenig geeignet.

Ich bin mir sicher, dass ich auch auf Basis der Textdateien mit perl 
recht einfach ein Script schreiben könnte, das die Hierarchies erzeugt - 
aber genau das ist eine Funktion, die nach meinem Glauben in eine 
relationale Datenbank selbst hineingehört.

Ansonsten zum Standard von SQL: Meine Datenbank ist angeblich in der 
Lage, SQL-Anfragen zu beantworten. Mir ist das ziemlich egal - meine 
Datenbank ist zu dämlich, .sql als Import-Format zu verwenden. Auch 
OpenOffice scheint mit einer Datenbank daherzukommen. Das scheint aber 
auch nur SQL-Anfragen beantworten zu können. Wie man die .sql-Daten 
hineinbekommen würde, keine Ahnung.

Früher pflegte Thomas auch etliche verschiedene .sql-Varianten für 
Postgres, MySQL usw. - bei einem echten Standard sollte das nicht nötig 
sein.

Mein Standard sind daher die .txt-Dateien - die lassen sich mit jedem 
Texteditor verarbeiten, in fast jede Tabellenkalkulation importieren und 
taugen als Austauschformat für fast jede einfacher gestrickte Datenbank. 
Es gibt nur wenige Anwender, schätze ich, die tatsächlich von dem 
profitieren, was opengeodb so unübersichtlich zu machen scheint: 
Versionierung, Sprachvarianten usw.

> Ganz im Gegenteil: Die Betreiber solcher Seiten zerlegen die openGeoDB 
> in ihre Einzelteile und zwar solang, bis sie exakt ihrem
> Anspruch entspricht.

Für eine schlichte Umkreissuche, was wohl die Hauptanwendunger der 
opengeodb zu sein scheint, kann man natürlich auch SQL hernehmen. Ich 
vermute, von der Performance ist meine Umkreissuche effizienter, die ich 
für fa-technik.adfc.de/code/anbieter einsetze

> Ich bin nach wie vor der Meinung, man sollte einfach eine einzelne 
> SQL-Tabelle ausliefern und den Rest den Leuten überlassen.
> Darunter sind hochbezahlte und qualifizierte Programmmierer, die dem 
> jeweiligen Betreiber eine maßgeschneiderte Lösung in sein
> vorhandenes System implentieren.

Da sind wir wohl der gleichen Meinung - sonst würde ich mir nicht die 
Mühe machen, .sql-Versionen zu erstellen.

Schönen Gruß
Martin