FOP – die Alternative zu Access

MS Access (bzw. das OpenSource-Pendant LibreOffice Base) bietet hilfreiche Werkzeuge zum verwalten kleinerer Datenmengen: Tabellen-Ansichten, Datensätze, Formulare und Berichte.

In Zeiten des Web wird das alte Desktop-Programm aber nicht mehr den Anforderungen gerecht. Neu hinzugekommene Anforderungen sind zum Beispiel:

einige der Funktionen hat Microsoft inzwischen schon mit Office 360 nachgerüstet. Doch besonders die letzten drei Punkte, sowie alles was Individual-Erweiterungen sind, sind mit Access als Standardsoftware kaum abbildbar. Oder haben Sie schon mal die Programmierung eines OLE-Objekts in Auftrag gegeben?

Eine Alternative zu rigiden Universal-Datenbank-Programmen ist die FOP-Technologie von Launix. FOP bedeutet Feature Oriented Programming, das heißt, eine Software oder Datenbank wird über seine Features beschrieben.

Ganz praktisch sieht das so aus, dass Sie neben dem Datenschema auch noch die Zusatz-Funktionen beschreiben, die Sie mit Access nicht oder nur per Makro-Programmierung bekämen. Bei FOP wird die Beschreibung in einer formalisierten Form niedergeschrieben, sodass der Computer diese verarbeiten kann.

Anschließend greift der Computer auf eine Bibliothek von Begriffs-Definitionen wie „Routenplanung“, „Rechnungserstellung“ oder „Benutzer-Login“ zurück, um Ihre Software aus Bausteinen zusammensetzen zu können. Alles, was Sie tun müssen ist, Ihre Wünsche formulieren zu können. Doch dabei sind wir mit unserem Datenbank-Erstell-Service Ihnen behilflich.

Wie ziehen Daten um?

Sie stellen auf eine andere Software um, wollen aber die Daten aus der alten Software behalten? Dann machen Sie den Daten-Umzugs-Check!

DSCN2252

Exportieren der Daten

Zuallererst müssen Sie die Daten aus der alten Software herausbekommen.

  • Haben Sie vorher Ihre Daten in Excel oder Access verarbeitet, reicht ein Export als XML oder CSV.
  • Haben Sie eine Datenbank-basierte Anwendung (z.B. mit Web-Oberfläche) genutzt, sind SQL, besser aber XML, notfalls CSV das Exportformat der Wahl.
  • Nutzen Sie sonstige Windows-Programme, müssen Sie Glück haben: Bietet das Programm eine Export-Funktion? Wenn nicht, bleibt noch die Möglichkeit, die Programm-interne Datenbank auszulesen oder das intern verwendete Datenformat zu entschlüsseln. Doch auch da keine Bange – bestimmt findet sich ein Weg.

Importieren in die neue Software

Der Import in eine neue Software gestaltet sich kniffeliger. Die neue Software bietet idealerweise schon fertige Import-Funktionen an. Allerdings besteht die Gefahr, dass Ihre exportierten Daten nicht in dem Format sind, die Ihr neues Programm braucht. So ist XML nicht gleich XML. XML hat tausende Dialekte und um die exportierten Daten wirklich nutzen zu können, benötigen Sie ein Konvertierungsprogramm. Dieses lässt sich auch, falls nicht vorhanden, für den einmaligen Gebrauch programmieren.

Idealerweise bietet Ihre neue Software eine Web-API an, die die Einschleusung neuer Daten erlaubt, so beispielsweise bei Drupal-basierten Systemen. Auch Datenbank-basierte Systeme können einfach gefüllt werden, da Sie ja Zugriff auf die Datenbank haben. Hier hilft jeweils ein für den einmaligen Gebrauch entwickeltes Importprogramm.

IT-Know How von Launix

Haben Sie vor, zu migrieren oder haben Probleme mit geschäftskritischen Daten? Kontaktieren Sie uns! Sind Sie stattdessen an weiteren interessanten Artikeln interessiert, tragen Sie sich in den Beitrags-Verteiler von Launix ein!

Access Datenbank programmieren – Umstieg auf SQL

Sie haben einige Daten in Ihren bereits vorhandenen Access-Datenbanken und benötigen jetzt eine Anpassung oder planen einen Aus- bzw. Umstieg? Dann lesen Sie diesen Artikel!

Umstieg auf SQL-basierte Datenbank

Wie bereits im vorangegangenen Artikel beschrieben, bieten Access-Datenbanken Bequemlichkeit, allerdings auch Gefahren und Probleme bei der täglichen Handhabung. Auf der anderen Seite zieht jeder Einsatz einer SQL-basierten Datenbank eine Software-Entwicklung mit sich. Dieses Thema möchte ich in diesem Artikel genauer beleuchten, um Sie aufzuklären, was Sie erwartet:

Schritt 1: Tabellen-Entwurf

Tabellen in SQL funktionieren wie in Access. Allerdings ist man bei Access dazu geneigt, weniger Tabellen anzulegen und Fremdschlüsselbeziehungen direkt in die Tabellen aufzunehmen. Wie bereits im vorangegangenen Artikel beschrieben, verstößt das gegen die erstrebenswerte Datenbank-Normalform. Hinzukommen zu den Tabellen werden wahrscheinlich noch eine Nutzer-Liste, um Netzwerk- und Internetzugriffe auf Ihre Software mit Nutzername und Passwort gegen Fremdeingriffe abzuschirmen.

Schritt 2: Entwicklung der Geschäftslogik

Die Geschäftslogik beschreibt die Aktionen, die Anwender in der Software tun können, bzw. dürfen. Eine Aktion wäre beispielsweise das Hinzufügen eines Kundendatensatzes, eine andere das Entfernen desselben. Ebenfalls zur Geschäftslogik gehören Abfragen, wie beispielsweise die Auflistung aller Kundendatensätze, der Abruf eines einzelnen Kundendatensatzes, sowie seiner Adressen oder auch das Abrufen von statistischen Daten, die anschließend in einem Diagramm dargestellt werden sollen.

Schritt 3: Entwicklung der Oberfläche

Jede Aktion der Geschäftslogik muss in der grafischen Oberfläche irgendwo verankert werden. So wird die Aktion „Kundensatz hinzufügen“ beispielsweise durch ein Formular realisiert. Von grafischen Oberflächen kann es mehrere Varianten geben, solange alle auf dieselbe Geschäftslogik zugreifen. So kann beispielsweise eine Tablet-Version der Software angefertigt werden, die lediglich das Statistik-Diagramm anzeigt, sowie erlaubt, zum Kunden, zu dem man gerade fährt, Notizen anzulegen.

Schritt 4: Installation, Test, Nutzung und Service

Planen Sie auf alle Fälle zusätzlich zum Software-Erstellungs-Budget Rücklagen für eine Weiterentwicklung ein. Haben Sie erst einmal eine Software im Einsatz, fallen Ihnen noch viele Dinge ein, die man besser machen kann. Auch Gesetzesänderungen oder nichtkonformes Kundenverhalten können eine Weiterentwicklung erforderlich machen.

Fazit

Machen Sie sich klar, was eine Softwareentwicklung bedeutet. Lassen Sie sich nicht von den hohen Anfangskosten abschrecken. Haben Sie erst einmal eine programmierte Software im Einsatz, kommen Sie damit besser.

Unterschiede Access vs SQL-basierte Datenbanken

Es gibt viele Datenbank-Systeme. In diesem Artikel möchte ich die grafische Datenbank-Oberfläche MS Access mit den eher technischen SQL-Datenbanken vergleichen.

Vorteil von Access: Einfacher Zugang

Der entscheidenste Vorteil von Access ist, dass Sie sofort loslegen können: Tabellen anlegen, Formulare kreieren oder generieren lassen, Abfragen und Berichte zusammenklicken. SQL ist da wesentlich technischer. Sie legen die Tabellen entweder über die SQL-Schnittstelle, also mit rohem SQL, an oder bedienen sich eines grafischen Tools. Bei Formularen, Abfragen und Berichten spätestens benötigen Sie Programmierkenntnisse oder einen Programmierer. Denn SQL-Datenbanken sind vorrangig als Datenanbindung für individuell programmierte Software geeignet. SQL-Datenbanken trennen die Darstellung und Editierung der Daten klar von der Verarbeitung und Speicherung.

Vorteil von SQL: Große Datenbestände und Netzwerke

SQL-Datenbanken sind prinzipiell über ein Netzwerk mit dem Anwender bzw. der Anwendung, die die Datenbank nutzt, verbunden. Dadurch erwächst der Vorteil, dass mehrere Nutzer auf die Datenbank zugreifen können. Das ist bei MS Access zwar auch möglich über eine Windows-Ordnerfreigabe, hat sich aber bei vielen Zugriffen als problematisch herausgestellt.

Sobald größere Datenmengen ins Spiel kommen, ist SQL klar im Vorteil. SQL-Datenbanken verwenden ausgefeilte Techniken wie z.B. Indizes, Caches, materialisierte Views und vieles mehr. Moderne SQL-Datenbanken arbeiten mit Terabyte-weise Daten, die über mehrere Rechner verteilt werden können und Millionen von Anfragen pro Sekunde gleichzeitig bearbeiten können. MS Access hat hingegen schon bei mehreren tausend Einträgen Probleme mit der Performance.

Unschönes Datenbank-Design ins Access

Die direkte Anzeige von Tabellen in Access führt zu einem fatalen Anwenderverhalten: Denormalisierten Tabellen. Was sind denormalisierte Tabellen? Das Thema hier auszuführen, macht keinen Sinn. Sehen Sie sich aber den Wikipedia-Artikel zu Normalisierung an, kann man erahnen, dass normalisierte Tabellen die optimale Speicherform sind, allerdings in Access schwer zu realisieren. Da sich normalisierte Tabellen in Access schwerer ansehen lassen (man müsste alles über Formulare und zwischengeschaltete Views erledigen), tendieren viele Access-Nutzer dazu, denormalisierte Tabellen zu erstellen. Das verbraucht unnötig Speicher und nachfolgende Analysen der Daten werden erschwert.

Plattformunabhängigkeit

Auch hier hat SQL die Nase vorn: Während MS Access nur auf einigen Windows-Versionen läuft, gibt es SQL-basierte Datenbanken auf jedem Blackberry, Android-Handy und -Tablet, Apple-Produkten, PCs, Servern und sogar eingebetteten Systemen wie Heizungsreglern. Gerade wenn Sie viel mobil unterwegs sind, kann ein Zugriff auf Ihre Unternehmensdaten übers Mobilfunknetz einen klaren Vorteil für Sie bedeuten.

Aufwendigere Anwendungsentwicklung bei SQL

Eine SQL-Datenbank kann nie allein dastehen. Für jede Datenbank muss immer eine dazugehörige Software programmiert werden, die die Formulare, Tabellen-Ansichten und Diagramme bereitstellt. Sie erkaufen sich quasi Flexibilität, Plattformunabhängigkeit und Performance mit höheren Einstiegskosten.

Fazit

Der Marktanteil von Access wird weiter schrumpfen. Doch die umständlichere Entwicklung mit SQL-Datenbanken wird viele, vor allem kleinere Firmen, noch davon abhalten. Für diese Anwender wird wohl eine Standardsoftware herhalten müssen, es sei denn, der Launix Data Organizer kommt vorher auf den Markt.

Launix Data Organizer

Bei der Arbeit mit der Vermarktung der LED-Wände bin ich auf einmal vom Anwendungsprogrammierer zum Anwender geworden. Auf einmal mussten Adresslisten mit Telefonlisten verknüpft werden, Kunden ein Auftrag, sowie eine Rechnung zugeordnet werden und das alles, ohne aus den Augen zu verlieren, welche Geschäftsprozesse wann wie und wo stattgefunden haben. Dabei ist mir aufgefallen, dass es momentan noch kein Tool gibt, die täglich anfallenden Daten zu Geschäftsvorfällen mit ständig wechselnden Schemen zu organisieren. Doch warum passen die momentan verfügbaren Tools nicht?

Excel

Excel (bzw. das von mir benutzte Libreoffice Calc) ist in der Tat das geeigneteste Tool für den Übergang. Man kann sofort loslegen, Tabellen anzulegen. Allerdings schon bei Fremdschlüsselbeziehungen stößt das Tool an seine Grenzen: Will ich pro Kunde mehrere getätigte Anrufe vermerken, muss ich entweder auf mehr Spalten ausweichen, die ich aber vielleicht noch anderweitig benutzen will. Oder aber ich nehme Datenverluste in Kauf und vermerke immer den zuletzt getätigten Anruf. Ersteres ist unsauber, letzteres ist manchmal sogar ein No-Go. Fazit: Einfach, schnell, aber unzureichend.

Bare Metal SQL

Auf der reinen MySQL-Datenbank zu arbeiten, vielleicht noch mit einem PHPmyAdmin als Unterstützung hat sich für mich als komplett unpraktikabel herausgestellt. Hier gingen zwar Fremdbeziehungen, wie z.B. dass ein Kunde mehrere Anrufe hat, super abzubilden, aber die Bedienoberfläche ist einfach grottig. Man kann sich lediglich die Einzeltabellen ansehen, nicht aber einen Verbund, den man anschließend bearbeiten könnte.

Individualsoftware

Individualsoftware, eigentlich mein Hauptberuf, ist für eine Firma der Größe absolut unpraktikabel. Es wäre zwar die passendste Lösung in der Hinsicht, aber der Aufwand dafür wäre einfach zu hoch, auch wenn ich die Stunden der Programmierer nur intern abrechnen würde.

Fazit

Momentan gibt es noch kein hinreichendes Werkzeug, Daten mit komplexen Datenschemen hinreichend zu strukturieren und zu organisieren. Alle bisherigen Lösungen haben mindestens eine Schwachstelle, die die Mitarbeiter von Firmen zu suboptimalen Lösungen zwingen, notfalls sogar Papierarbeit.

Update zum Oktober 2016

Das Thema Datenverwaltung hat uns nicht mehr losgelassen. Mit dem Produkt Launix FOP glauben wir, eine Lösung auf das oben geschilderte Problem gefunden zu haben. Launix FOP verbindet die Mächtigkeit von SQL-Datenbanken, einfachen Bedienoberflächen und geringem Preis bei voller Individualisierbarkeit.