Skript für die Nutzung von relationalen Datenbanken Erstellt und © Copyright by: Karl-Heinz Zeipelt Einleitung zum Thema Datenbanken1 - am Beispiel von Microsoft Office Professionell Sollen größere Datenbestände verwaltet werden, dann reichen die üblichen Programme wie Textverarbeitung oder Tabellenkalkulationen nicht mehr aus, um effizient arbeiten zu können. Mit Word kann man seinen Datenbestand, wie z. B. Adresslisten zwar auch sortieren, bearbeiten, ergänzen - allerdings ist dies nur für kleinere Datenbestände sinnvoll. Ab ca. 250 Datensätzen wird das Arbeiten „unbequem“ (ineffizient); es gibt zwar eine Such- aber nicht eine „Filterfunktion“. Außerdem kann immer nur ein Mitarbeiter die Datei im Original öffnen - das ist für Firmen, in denen Teams und Abteilungen auf dieselben Daten zugreifen sollen, unbefriedigend. Mit Excel können Daten bis ca. 2 000 Datensätzen recht problemlos verwaltet werden, was die Sortierung und das Filtern betrifft. Auch steht z. B. eine Maske zur Verfügung, mit der Daten erfasst oder editiert werden, in der sogar Operatoren verwendet werden können wie z. B. „=“, >= etc. Dennoch sind die Möglichkeiten sehr begrenzt. Theoretisch können zwar mehrere Personen auf dieselbe Datei zugreifen und sie auch gleichzeitig verändern (falls die Datei für die Arbeit im Netz freigegeben wurde), doch können dabei zahlreiche Fehler auftreten, die relativ schlecht verhindert werden können. Deshalb werden in Firmen Datenbank-Programme eingesetzt, z. B. im Bereich der PC-Welt an den Arbeitsplatzrechnern mit Hilfe des Programms „Access“. Damit können immerhin ca. 20 000 bis 50 000 Datensätze angemessen verwaltet werden. Für aufwändigere Datenbestände werden andere Datenbankprogramme verwendet. Namen sind z. B. Informix (auf Unix-Rechnern) Oracle, Abetone, SAP - es sind jedoch mittlerweile durchgängig ERP2-Systeme, in die die Datenbankprogramme integriert sind. Solche Systeme sind in der heutigen IT-Welt gar nicht mehr wegzudenken. In vielen Firmen wird mit SAP gearbeitet. Als Kunde kennen wir sicher alle die zahlreichen Bestell-Möglichkeiten im Internet. Wenn man dort auswählen kann, was und wie viel von einem Produkt bestellt werden kann mit entsprechenden Zusatz-Infos wie Größe, Farbe, Lieferfrist etc., dann sind dort viele verschiedene Informationen (Daten) abgelegt, die möglichst rasch abgerufen werden können. Ist genug von dem gewünschten Artikel auf Lager? Kann sofort komplett geliefert werden? Entfällt eine eventuelle Versandkostenpauschale, weil ein bestimmter Bestellwert erreicht wurde? Ist der Kunde - was die Finanzen betrifft „vertrauenswürdig“? Da geschehen im Hintergrund sehr viele Abfragen und es fließen sehr unterschiedliche Daten ein. Das kann nur von solch komplexen Systemen bewerkstelligt werden. Die grundsätzliche Systematik der Datenbankprogramme ist gleich, sodass vieles am Beispiel von Access nachvollzogen werden kann. 1 2 Erklärung einer Datenbank siehe das Skript zu Excel Datenbanken Enterprise Resource Planning - gemeint damit sind komplexe Software-Systeme, die die sinnvolle, kostengünstige Nutzung der vorhandenen Firmenressourcen planen und „abbilden“ hilft. Es geht um die kompletten Geschäftsprozesse, die mittels dieser Software-Systeme optimal umgesetzt werden. Seite 1 von 9 Skript für die Nutzung von relationalen Datenbanken Erstellt und © Copyright by: Karl-Heinz Zeipelt Die unten stehende Excel-Tabelle soll verwendet werden, um die Vorgänge innerhalb einer Leihbücherei zu verwalten. Dabei sind folgende Anmerkungen zu treffen: - Es liegen unterschiedliche Schreibweisen von Namen, Straßen, Telefonnummern vor - Fehler? Zahlendreher? Es ist ein unübersichtlicher Datenbestand - vor allem, wenn davon auszugehen ist, dass pro Tag mindestens 50 Bücher entliehen werden. Ein und derselbe Kunde (Entleiher) (ebenso Buch) wird bei jedem Buch mit seinen vollständigen Daten erfasst. Das ist viel zu umständlich. In einer Zelle stehen manchmal mehrere Details, für die in derselben Zeile jedoch keine eindeutige Zuordnung vorgenommen wurde. Die eindeutigen Rückgabedaten pro Buch fehlen, stattdessen steht ein Datum, obwohl drei Bücher entliehen wurden. Was ist, wenn der Kunde nur zwei Bücher an dem Datum mitgebracht hat? Damit die Verwaltung optimiert wird, sind folgende Anforderungen zu beachten: - Jeder Name, jedes Buch darf nur einmal erfasst werden REDUNDANZ (unnötige Wiederholungen) vermeiden Nicht eindeutiger Datenbestand (Autor fehlt, unterschiedliche Schreibweise? Fehler?) – Inkonsistenzen (fehlerhafte Wiederholungen) vermeiden Seite 2 von 9 Skript für die Nutzung von relationalen Datenbanken Erstellt und © Copyright by: Karl-Heinz Zeipelt Damit diese Ziele (keine Redundanz, keine Inkonsistenzen) erreicht werden können, wird ein Prozess durchlaufen, der „Normalisierung“ heißt. Die ersten drei Schritte der Normalisierung (in der IT-Praxis werden bis zu neun Schritte realisiert) sind die grundlegendsten und wichtigsten, sodass diese nun betrachtet und umgesetzt werden sollen. 1. In einem Datenfeld darf nur EINE Angabe stehen! (z. B. ein Buch, das entliehen wird) 2. Aufteilen des Datenbestandes in mehrere Tabellen! Man unterscheidet: Stammdaten (Kunden, Bücher), die sich nur selten ändern, und Vorgangsdaten (Ausleihe und Rückgabe), wo ständig Änderungen vorkommen. 3. Für die Stammdaten muss jeweils ein Schlüsselfeld angelegt werden (Kundennummer, Buchnummer)! Bei den Vorgangsdaten kann es ebenfalls ein solches Schlüsselfeld geben (z. B. Rechnungsnummer). Alle Felder müssen direkt vom Schlüsselfeld abhängen! Die einzelnen Tabellen müssen in Beziehung gesetzt werden! Relationen Die einzelnen Schritte und deren Ergebnisse: Erreichen der 1. Normalform ist das Ziel. Zunächst muss also in die Excel-Tabelle jeweils eine eindeutige Zuordnung erfolgen, d. h. es müssen leere Zeilen eingefügt werden, in die die Detaildaten eingetragen werden, sodass folgendes Zwischenergebnis entsteht. Nun hat jeder einzelne Vorgang eine eigene Zeile. Nun müssen die bestehenden Fehler (Inkonsistenzen) bereinigt werden und eine einheitliche Schreibweise (gemäß DIN 5008) festgelegt und umgesetzt werden. Seite 3 von 9 Skript für die Nutzung von relationalen Datenbanken Erstellt und © Copyright by: Karl-Heinz Zeipelt Erreichen der 2. Normalform ist das Ziel. Der Datenbestand muss nun aufgeteilt werden auf zumindest drei Tabellen. Es gibt zwei Stammdaten-Tabellen. Kunden/Entleiher Bücher Eine Detail-Tabelle entsteht. Ausleihvorgang Nun muss in den Stammdaten-Tabellen jeweils ein Schlüsselfeld erzeugt werden, mit dem die Datensätze eindeutig verwaltet werden können: (Es darf kein Punkt im Feldnamen (Spaltenüberschrift) existieren! - Sonderzeichen sind zu vermeiden!) Die Kundentabelle erhält die Spalte „Kundennummer“. Die Büchertabelle erhält die Spalte „Buchnummer“. Die Detaildatentabelle erhält kein Schlüsselfeld. Allerdings müssen die beiden Spalten „Kundennummer“ und „Buchnummer“ aus der Stammdaten-Tabelle eingefügt werden, damit anschließend eine Beziehung (Relation hergestellt werden kann. Seite 4 von 9 Skript für die Nutzung von relationalen Datenbanken Erstellt und © Copyright by: Karl-Heinz Zeipelt Die bestehenden Excel-Tabellen können nun in das Datenbank-Programm „Access“ importiert werden, um dann die entsprechenden Beziehungen setzen zu können. Mit Excel können nur gedachte Relationen hergestellt werden, aber es entsteht keine relationale Datenbank. Deshalb wird das Programm „Access“ bemüht. Nach dem Aufruf des Programms wird ein recht leeres Programmfenster gestartet - s. u. Durch den Klick auf das weiße Blatt kann eine neue Datenbank-Datei erzeugt werden. Man muss sich dann entscheiden, wie die neue Datei angelegt werden soll, sprich welche Inhalte in dieser Datenbank enthalten sein sollen. Da sie keine Elemente enthalten soll - „Leere Datenbank“ Das Erste, das man tun muss, ist die Datei zu speichern! Erst danach lassen sich Inhalte in die Datenbank aufnehmen. Seite 5 von 9 Skript für die Nutzung von relationalen Datenbanken Erstellt und © Copyright by: Karl-Heinz Zeipelt Nun geht es darum, die leere Datenbank mit Tabellen zu füllen. Da in Excel bereits Tabellen vorhanden sind, können diese mit Hilfe eines Assistenten importiert werden. Dieser Assistent wird über DATEI - EXTERNE DATEN - IMPORTIEREN aktiviert. Nun ist zu beachten, dass der Dateityp auf Excel umgestellt wird! Anschließend muss die gewünschte Datei ausgewählt und „importiert“ werden. Seite 6 von 9 Skript für die Nutzung von relationalen Datenbanken Erstellt und © Copyright by: Karl-Heinz Zeipelt Daraufhin wird der Import-Assistent gestartet. Man kann nun die einzelnen Tabellenblätter auswählen, die Daten werden bereits unten angezeigt. Über die Schaltfläche „Weiter“ geht es zum nächsten Schritt. Dort muss angegeben werden, ob die 1. Zeile die „Überschrift“ darstellt, d. h. ob dort die Feldnamen als Spaltenüberschriften stehen. Beim dritten Fenster muss entschieden werden, ob die Daten in einer neuen Tabelle abgelegt werden sollen oder ob sie an eine bestehende Tabelle angefügt werden sollen. In der Regel werden die Daten als neue Tabelle eingefügt. 1 2 3 Nun werden die einzelnen Felder abgefragt. Wichtig: Beim Schlüsselfeld - über das EINDEUTIG verwaltet werden soll, muss „Indiziert (Ohne Duplikate) ausgewählt werden. Indiziert - heißt u. a. schneller suchen. Ohne Duplikate ein Wert darf in dieser Spalte nur EINMAL auftreten. Dann wird ein Primärschlüsselfeld festgelegt, damit später Relationen (Beziehungen) zwischen den Tabellen hergestellt werden können. Es ist quasi das „oberste“ Schlüsselfeld. Seite 7 von 9 Skript für die Nutzung von relationalen Datenbanken Erstellt und © Copyright by: Karl-Heinz Zeipelt Danach ist der Import dieser Excel-Tabelle fast fertig - Namen vergeben - Fertigstellen - Erfolgsmeldung, dass der Import geklappt hat. Nun muss für jede Excel-Tabelle, die importiert werden soll, der Assistent aufgerufen werden. Bei den Stammdaten-Tabellen (Kunden und Bücher) muss jeweils das Primärschlüsselfeld angegeben werden. Bei der Tabelle für den Ausleihvorgang ist weder eine Indizierung noch ein Primärschlüssel einzustellen. Am Ende des Importierens finden sich alle ehemaligen Excel-Tabellen in Access wieder. Seite 8 von 9 Skript für die Nutzung von relationalen Datenbanken Erstellt und © Copyright by: Karl-Heinz Zeipelt Zum Schluss müssen die importierten Tabellen in Beziehung (Relation) gesetzt werden. Auch dazu gibt es einen Assistenten. Über das Menü Extras Beziehungen… wird die Dialogbox angezeigt, in der man die Tabellen nach Windows-Regeln markieren kann. Die markierten Tabellen werden „hinzugefügt“ und die Dialogbox wird geschlossen. Das unten abgebildete Fenster erscheint. Die Tabellen werden angezeigt. Die Primärschlüsselfelder werden in fetter Schrift angezeigt. Die Tabellen können beliebig angeordnet werden, in dem auf die Titelleiste der jeweiligen Tabelle geklickt wird, die Maus festgehalten wird und dann kann das Objekt (wie Grafiken) verlagert werden. Um eine Beziehung herstellen zu können, muss man vom Primärschlüsselfeld aus die Maus bei gedrückter linker Maustaste hin zum Detailfeld ziehen. Jeweils beim Loslassen der Maus wird die Frage gestellt, was man tun möchte. Es ist jeweils darauf zu achten, dass „Referentielle Integrität“ eingestellt wird. Damit wird Access dazu aufgefordert z. B. Löschvorgänge zu überwachen. Es dürfen keine „verwaisten“ Daten entstehen, Fehler sollen also automatisch von Access verhindert werden. Die Häkchen bei „Aktualisierungs- und Löschweitergabe werden meist nicht benötigt, da sie eine zusätzliche Fehlerquelle enthalten. Zum Schluss wird dann dieses Ergebnis angezeigt im „Beziehungsfenster“: Die Art der Beziehung ist eine 1:n oder 1 zu ∞ Beziehung, d. h. EINEM Datensatz der beliebig viele Datensätze der Stammdatentabelle können Detailtabelle zugeordnet sein. Das Beziehungsfenster kann geschlossen werden, die festgelegte Beziehung muss gespeichert werden und nun kann die Eingabe von Daten erfolgen bzw. die eigentliche Arbeit hinsichtlich der Ausleihvorgänge vorgenommen werden. Seite 9 von 9