Untertitel:
HTML und Datenbanken in betrieblichen Informationssystemen.
Einleitung
Dieses HTML-Projekt dient einerseits dazu, eine in MS-Access Datenbank erstellte zu beschreiben und zu dokumentieren. Daneben werden einige Elemente bzw. Befehle der Seitenbeschreibungssprache HTML exemplarisch veranschaulicht. Schließlich gehe ich auf das Zusammenspiel zwischen Datenbanken und HTML bzw. deren Nutzung in betrieblichen Informationssystemen ein. Ferner werde ich darstellen, inwieweit ich selbst Gebrauch von dieser Technologie machen könnte.
Ich wünsche Ihnen viel Spaß beim Lesen meiner Arbeit.
Relationale Datenbanken (Überblick)
In dieser Arbeit geht es vorrangig um die Entwicklung und Beschreibung einer relationalen Datenbank in MS-Access. Kern eines solchen Datenbankmodells ist die Verknüpfung (i. e. S. also die Relation) mehrerer zweidimensionaler Tabellen. Jede dieser Tabellen besitzt zwar eine eigene Struktur, jedoch verlangt eine relationale Datenbank gewisse Schnittstellen. Diese ergeben sich aus der Verknüpfung zweier Tabellenfelder: dem Primärschlüssel (i. d. R. werden hierunter eine oder mehrere Tabellenspalten gefasst, deren Werte innerhalb einer Tabelle zwecks Zuordnung einmalig sein sollten) der Tabelle A mit dem Fremdschlüssel der Tabelle B.
Beide Tabellen können zwar zunächst unabhängig voneinander mit Daten bestückt werden, für eine Abfrage über beide Tabellen spielen jedoch die Relationen der Tabellen eine Rolle: Beispielsweise kann man eine Abfrage formulieren, die alle Datensätze aus A nebst aller eventuell verknüpfter Datensätze aus B ausgibt. Die „Regel“, nur dann Datensätze aus B anzuzeigen, wenn die Werte des Schlüsselpaares identisch sind, ergibt sich aus der Zuordnung Primärschlüssel zu Fremdschlüssel. Es kann also sein, dass bei einer solchen Abfrage überhaupt keine Datensätze aus B angezeigt werden, wenn keine Schlüsselbeziehung durch gleiche Werte besteht.
Die Verknüpfung zweier Tabellen über Primärschlüssel und Fremdschlüssel bedingt, dass ein Datensatz einmalig, also eindeutig identifizierbar, sein muss. In MS-Access wird dies schon allein dadurch erreicht, dass die Werte des Primärschlüssel-Feldes nicht doppelt vorkommen dürfen. Vergibt Access diese Werte selbst (also automatisch), ist es unwahrscheinlich, dass man jemals vor das Problem eines doppelt vorkommenden Wertes gestellt wird. Vergibt man die Werte jedoch manuell, könnte man mit einer Fehlermeldung auf einen doppelten Wert hingewiesen werden. Da nicht vorgeschrieben ist, immer die erste Spalte einer Tabelle als Primärschlüssel zu definieren, kann auch z. B. eine beliebiges anderes (eindeutiges) Feld gewählt werden; die Reihenfolge der Spalten ist überdies bei relationalen Datenbanken nicht von Belang.
Thema: CRM-System mit MS-Access
Thema dieser Arbeit ist die Umsetzung eines vereinfachten Customer-Relationship-Management-Systems (CRM-System) mittels Microsoft Access. CRM-Systeme finden heutzutage in vielen Betrieben Anwendung, da sie in der Lage sind, (größere) voneinander verschiedene Datensammlungen miteinander zu verknüpfen.
Professionelle Systeme sind weitaus komplexer als das von mir konstruierte, ich habe jedoch Wert darauf gelegt, mich auf einige wesentliche Kernfunktionen eines CRM-Systems zu konzentrieren.
Als Beispiel für ein Anwendungsgebiet habe ich die – fiktive – Weinhandlung Hauser gewählt. Wie andere Betriebe hat auch „Wein-Hauser“ eine Kartei mit Kundenstammdaten, ein Bestellwesen und – im günstigsten Fall – auch einen Kundenservice.
Für mich erscheint es sinnvoll, diese Datenbestände miteinander zu verknüpfen, denn auch heute ist es in der Praxis häufig noch so, dass man morgens im Büro nur einen Notizzettel vorfindet, auf dem irgendein Verweis X auf eine Bestellung Y gemacht worden ist. Welcher Mitarbeiter die Notiz gemacht ist häufig ebenso unklar wie der Name des betreffenden Kunden – erst recht, wenn es sich z. B. um einen „Peter Müller“ o. ä. handelt.
Eine relationale Datenbank bietet hier Vorteile, die kein Notizzettel-System der Welt erfüllen könnte: Eine keineswegs fehlertolerante Zuordnung von Kundendaten zu Bestellungen bzw. Servicefällen (wie Reklamationen, Bestellanfragen, Stornierungen, Produktanfragen etc.).
Mit meinem vereinfachten CRM-System soll es möglich sein, dass ein Mitarbeiter A ohne stundenlange Einarbeitung durch den Mitarbeiter B dessen Arbeit (zum Beispiel im Kundenservicebüro) übernehmen kann. Die Situation, dass ein Stammkunde anruft und sich über eine verspätete Weinlieferung beschwert, kann schnell geklärt sein, wenn A im CRM-System nachschaut und dort einen Eintrag vom Vortag findet, dass ein Kollege bereits eine Ersatzlieferung verschickt hat. Dieses ist nur einer von vielen Anwendungsfällen, die – so denke ich – die Vorteile einer relationalen Datenbank sehr gut beschreiben.
Tabellendefinitionen
In meinem Datenbankprojekt existieren drei Tabellen: „Kunden“, „Bestellungen“ und „Servicefälle“.
Einen kurzen Überblick über die Abhängigkeiten und den Aufbau der Datenbank gibt die folgende Grafik.
Darunter finden Sie die Tabellendefinitionen in Form von HTML-Tabellen.

Hier sehen Sie, wie die drei Tabellen „Kunden“, „Bestellungen“ und „Servicefälle“ voneinander abhängen:

Kundennummer, Bestellnummer und Servicefallnummer sind jeweils die Primärschlüssel der Tabellen Kunden, Bestellungen und Servicefälle. Die Tabelle Bestellungen enthält neben ihrem eigenen Primärschlüssel („Bestellnummer“) noch den Primärschlüssel der Tabelle Kunden. In der Tabelle Bestellungen ist er jedoch lediglich Fremdschlüssel und bezieht sich damit auf das gleichnamige Feld der Tabelle Kunden.
Die Tabelle Kunden steht somit in einer 1:n-Relation zur Tabelle Bestellungen, d. h. es können sich mehrere Datensätze aus Bestellungen auf eine und denselben Datensatz aus Kunden beziehen. Dies ist bereits dann der Fall, wenn ein Kunde zwei Bestellungen getätigt hat.
Ähnliches gilt auch für die Tabelle Servicefälle. Auch hier ist Kundennummer Fremdschlüssel und die Beziehung 1:n (in Bezug auf die Tabelle Kunden) trifft ebenfalls zu. Allerdings gibt es noch einen zweiten Fremdschlüssel, nämlich Bestellnummer, der auf den (gleichnamigen) Primärschlüssel in Bestellungen referenziert. Somit existiert auch zwischen den Tabellen Bestellungen und Servicefälle eine Beziehung: Allerdings handelt es sich um eine 1:1-Beziehung, d. h. einem Datensatz in Servicefälle, also einem Servicefall, kann maximal eine Bestellung zugeordnet werden.
Abfragedefinitionen
Für eine Weinhandlung kann es wichtig sein, zwischen Kunden vor Ort und solchen aus weiter entfernten Regionen zu unterscheiden. Möchte man zum Beispiel einen Überblick darüber bekommen, welche Servicefälle es in Bezug auf die Bremerhavener Kunden bisher gegebenen hat, ist eine Abfrage aller Servicefälle sämtlicher Bremerhavener Kunden sinnvoll.
Eine zweite von mir erstellte Abfragedefinition gibt alle Kunden aus, und zeigt sie nebst ihrer jeweiligen Bestellungen an. Hierbei handelt es sich um eine Verknüpfung zweier unterschiedlicher Tabellen, die nur durch die Relation der Primärschlüssel/Fremdschlüssel möglich ist.
Im Tagesgeschäft sollte man darauf achten, dass laufende Bestellungen zügig bearbeitet werden. Aus diesem Grund habe ich eine dritte Abfragedefinition erstellt, die alle Bestellungen anzeigt, bei denen Servicefälle vorliegen. Man könnte nun im Einzelfall überprüfen, ob es bestimmte Weine gibt, die häufig zu Servicefällen führen. Dies muss ja nicht zwingend negativ sein, denn ein Servicefall könnte ja auch eine Bestellanfrage bedeuten.
Sinn und Zweck der Datenbank
Wie ich bereits in den vorangegangenen Kapiteln beschrieben habe, habe ich die Tabellen in bestimmte Anwendungsgebiete bzw. Datenkategorien gruppiert. Kundenstammdaten werden in einer eigenen Tabelle gespeichert, Bestellungen ebenfalls. Selbstverständlich – und auch ganz offenkundig – ist ein Zusammenhang zwischen diesen beiden Bereichen erkennbar; nur gehören die Datensätze nicht in eine gemeinsame Tabelle. Der Grund dafür ist einfach: Nicht jeder Kunde muss automatisch etwas bestellt haben. Gravierender fällt dieses Argument in Bezug auf die Tabelle Servicefälle aus: Nicht jeder Kunde, wendet sich an den Kundenservice – manchmal existiert eine einfache Bestellung.
Oftmals ist aber tatsächlich so, dass einem Kunden zahlreiche Bestellungen und Servicefälle zugeordnet sind; eine Verknüpfung nach Kundennummer bzw. Bestellnummer ist hier also sehr sinnvoll.
Um auch innerhalb einer Tabelle Unterscheidungskriterien zu haben und nicht zwingend einen Bezug zu einer anderen Tabelle der Datenbank herstellen zu müssen, habe ich Felder wie z. B. „Servicefall_Typ“ eingefügt. In diese kann ein Mitarbeiter eintragen, ob es sich um eine Reklamation, eine Stornierung oder eine Produktanfrage handelt. Es wäre zwar auch denkbar gewesen, statt nur einer Tabelle „Servicefälle“ für jeden Servicefall-Typ eine eigene Tabelle anzulegen (in der Praxis ist dies – vor allem bei größeren Datenbeständen – oft auch zu empfehlen). Im Rahmen dieser Semesterarbeit habe ich jedoch der Übersichtlichkeit halber darauf verzichtet.
Was ist HTML?
HTML bedeutet HyperText Markup Language und ist wohl die am meisten verbreitete Seitenbeschreibungssprache, die im Internet Anwendung findet. Genauer gesagt: Mit HTML lassen sich Texte, Grafiken, Tabellen und weitere Gestaltungselemente formatieren und in einem Browser, also einem Anzeigeprogramm für Internetseiten, visuell darstellen. Die Bezeichnung „Sprache“ lässt im EDV-Bereich schnell auf eine Programmiersprache schließen – dies ist aber bei HTML nicht der Fall, da sie keine Kontrollstrukturen oder andere syntaktische Konstrukte besitzt, wegen derer man sie als dynamisch bezeichnen könnte.
Trotz dieses „dynamischen Defizits“ findet HTML nach wie vor Anwendung – dort, wo HTML nicht „von allein“ weiterkommt, helfen zusätzliche Sprachen wie CSS, JavaScript, PHP o. ä. aus.
Der recht simple Aufbau von HTML macht es auch Anfängern leicht, mittels einiger „Tags“ (quasi Befehlsbereiche) Texte und Bilder anschaulich auf Internetseiten darzustellen. Man benötigt im Grunde nur einen Texteditor und eine Liste gängiger Tags, um die erste Seite zu erstellen. Aufwändigeres wird durch Verschachteln der unterschiedlichen Gestaltungselemente von HTML möglich, wie z. B. das gezielte Positionieren von Tabellen oder Grafiken.
Diese Website ist von mir durchweg mittels HTML gestaltet worden – lediglich einige Formatierungen wurden entsprechend der Aufgabenstellung per CSS gesteuert.
Bilder in HTML
Im Internet findet man angesichts zunehmender Bandbreiten von Internetanschlüssen Bilder, Grafiken, Fotos und Animationen en masse. Oftmals scheint es, als würde die Präsentation von Bildern auf Webseiten keiner Regel unterliegen. Ein fest verankertes Gesetz gibt es sicherlich nicht, wohl aber einige logisch begründete Leitsätze, denen man aus gutem Grund folgen sollte.
Auch wenn die Bandbreite der Internetanschlüsse zunimmt: Große Bilder auf Internetseiten können schnell als lästig empfunden werden, besonders wenn es gleich sehr viele auf einmal sind. Der Grund: Die Ladezeit erhöht sich und warten wollen die wenigsten Besucher.
Ein weiterer Grundsatz ist noch viel simpler: Weniger ist oftmals mehr. Dieser ist nicht nur für Online-Präsentationen von Bildern gültig – denn wer hat sich nicht schon einmal enttäuscht bzw. reizüberflutet von einer mit Fotos zugepflasterten Werbeanzeige abgewendet? Passiert dies auf einer Internetseite, ist das Ziel, dem Besucher Informationen zu vermitteln, gescheitert. Aus diesem Grund sollte man auch überlegen, ob ein Bild einer Internetseite wirklich einen Mehrwert bringt. Sicherlich ist es mitunter legitim, Grafiken und Fotos allein wegen ihres dekorativen Charakters zu verwenden – nur übertreibt man es damit, tritt schnell der Gegeneffekt ein: Statt zu beeindrucken verschreckt man einen Betrachter.
Technisch sollten Bilder dergestalt verarbeitet sein, dass sie von möglichst vielen Besuchern, insbesondere aber den Adressaten einer Internetseite, betrachtet werden können. Ausgefallene Dateiformate sollte man daher nicht verwenden. Um die Ladezeit zu verkürzen oder dem Besucher selbst die Wahl zu überlassen, ob er große Bilder anschauen möchte, kann man auch kleinere Vorschaubilder auf einer Internetseite platzieren, die beim Anklicken zu einer größeren Version führen.
Es dürfte klar sein, dass die Regel des „weniger ist mehr“ auch auf Text zutreffen kann: Wo ein Bild mehr sagt als seitenweise Text und die Aussage dieselbe bleibt, spart man lieber etwas Text ein. Prinzipiell für alle (HTML-) Elemente einer Internetseite gilt: Nichts sollte zu überladen oder verschachtelt wirken, dass man beim Betrachten den roten Faden verliert. Eine ausgewogene Verteilung auf der verfügbaren Anzeigefläche ist daher meiner Meinung nach unbedingt einzuhalten.
HTML und Datenbanken in betrieblichen Informationssystemen
In betrieblichen Informationssystemen sind heutzutage – auch bedingt durch die stetig wachsende Bedeutung des Internet – Systeme, die aus dem Zusammenspiel von HTML und Datenbanken entstehen, immer häufiger anzutreffen. Es gibt Warenwirtschaftssysteme, die mittlerweile (zumindest auf Anwenderseite) vollständig im Internetbrowser funktionieren. HTML ist hier zwar nur für die Visualisierung der Lagerverwaltungs- oder Bestellsoftware zuständig, da Berechnungen und dynamische Inhalte durch PHP, ASP o. ä. realisiert werden. Trotzdem arbeiten hier HTML und Datenbanken zusammen, denn eine Datenbank, die zahlreiche Artikelinformationen enthält, muss – um sie effektiv einsetzen zu können – auf irgendeine Weise visualisiert werden. Diese Aufgabe kann HTML erfüllen, sie ist selbstverständlich nur eine von vielen Möglichkeiten, Datenbanken auf einem Rechner zu nutzen. Ein Vorteil ist aber sicherlich auch, dass man bereits im kleinen Rahmen eine praktikable Datenbanklösung erstellen kann – kleine Lagerverwaltungs- oder Bestellsysteme im Mittelstand sind mit ein wenig Kenntnis im Bereich MS-Access / HTML machbar. Und auch bei größeren Projekten kommen Datenbanken und HTML unweigerlich in Kontakt – man denke nur einmal an eine große Auktionsplattform im Internet.
Wie setze ich HTML und Datenbanken ein?
Die Anwendungsmöglichkeiten von HTML und Datenbanken erscheinen auf den ersten Blick unbegrenzt. Das direkte Zusammenspiel wird jedoch schon allein dadurch eingeschränkt, dass zur Steuerung einer Datenbank andere Sprachen oder Programme zum Einsatz kommen müssen.
Rein theoretisch betrachtet sind auch kleinere Anwendungsumgebungen denkbar: Eine Literaturverwaltung, in der ich meine studiumsbezogenen Fachbücher verwalte, hätte durchaus einen praktischen Nutzen – legt man Datenbank und HTML-Seiten auf einem Webserver ab, der über eine permanente Internetanbindung verfügt, wäre eine solche Literaturverwaltung sogar gleich deutlich flexibler. Aus eigener Erfahrung kann ich bereits über die erfolgreiche Verwendung einer Datenbank in Verbindung mit HTML berichten: Auf meiner Internetseite Blogfood.de werden Beiträge, Kommentare und Bilder in mehreren Tabellen einer Datenbank verwaltet. Dass man diese optisch aufbereitet im Browser betrachten kann, verdanke ich zu einem großen Teil HTML – und der Blogsoftware WordPress, die eigentlich den Großteil des Layouts von sich aus zur Verfügung stellt. Änderungen desselben verlangen allerdings nach ein wenig HTML-Kenntnis – und setzen natürlich ein Grundverständnis für die Funktionsweise der Datenbank voraus.
Vor diesem Hintergrund könnte man sich noch zahlreiche weitere HTML-/Datenbank-Lösungen einfallen lassen – man sollte, so finde ich, aber auch immer den Aufwand, ein solches System zu erstellen, im Vorfeld abwägen, um ggf. auf „fertige“ Alternativen zurückgreifen zu können. MS-Access zum Beispiel kommt als Datenbanklösung auch ohne HTML aus und visualisiert Daten und Eingabefelder u. a. auf Formularen, deren Handhabung vielfach sehr einfach und effektiv ist. Der Vorteil der (unabhängigeren) Nutzung über das Internet geht dadurch natürlich prinzipiell verloren.
Kommentar hinterlassen