Theoretisches Wissen zu Datenbanken 1. Theoretisches Wissen zu Datenbanken Allgemeines zu Datenbanken Datenmengen verwalten Es werden im Folgenden einige Grundbegriffe der Datenbanksprache vermittelt sowie einige Hilfsmittel und Techniken bei der Datenbankentwicklung vorgestellt. In vielen Fällen ist dort, wo Arbeitsabläufe EDV-unterstützt abgewickelt werden, auch die Speicherung von großen Datenmengen erforderlich. Lohn- und Gehaltsabrechnung Zuordnungsliste: Mitarbeiter in den Abteilungen Adressliste sortiert nach Wohnort PERSONALDATEN ABTEILUNGSDATEN KUNDENVERZEICHNIS Ein Datenbankprogramm verwaltet diese Daten und ermöglicht es, diese Daten zu lesen, zu ändern, zu löschen und neue hinzuzufügen. Wie die Daten letztendlich gespeichert werden, hängt sowohl vom Datenbanktyp als auch vom Datenbanksystem selbst ab. Es gibt verschiedene Typen von Datenbanken, von denen der relationale Datenbankaufbau der bekannteste ist. © HERDT-Verlag 1 Theoretisches Wissen zu Datenbanken Datenbanktypen Datenbanktyp Bemerkungen Hierarchische Datenbanken Zwischen den Datensätzen besteht eine Rangordnung. Ein untergeordneter Datensatz gehört immer zu einem anderen, übergeordneten. Die Beziehungen zwischen den Daten sind immer vom Typ 1 : n, sodass ein gerichteter Graph entsteht, der auch als Baum bezeichnet wird. Netzwerkdatenbanken Dieses Modell ist dem hierarchischen Modell ähnlich. Die Daten sind aber nicht in einem einheitlichen Baum angeordnet, sondern in einem vom Datenbankentwickler definierten Netz. Sichten auf eine Datenbank Unterschiedlicher Informationsbedarf Unterschiedliche Personengruppen, die mit einer Datenbank arbeiten, haben je nach Aufgabe unterschiedliche Sichten auf die Datenbank. Der Personalleiter benötigt beispielsweise Informationen über Personaldaten, während der Datenbankverwalter mit der Datenspeicherung und Datensicherheit beschäftigt ist. Die Details des physischen Datenbankentwurfs sind für den Personalleiter irrelevant. Sie werden vom Datenbankadministrator festgelegt und bei Bedarf gewartet. Aus dem logischen und physischen Datenbankentwurf ergibt sich die Datenbank-Architektur: Benutzersicht (externe Sicht) Lagerbestand (Formular 1) Umsätze (Formular 2) Logische Sicht Lagerbestand (Abfrage 1) Umsatz pro Kunde (Abfrage 2) Interne Sicht 2 Artikeltabelle (Access-Datenbank) Kundentabelle (Access-Datenbank) Europäische Top-10-Kunden (Bericht) Top-10-Exportkunden (Abfrage 3) Rechnungen (Excel-Arbeitsmappe) Europäische Kunden (Abfrage 4) Ausländische Kunden (dBase-Datenbank) Interne Sicht Die interne Sicht beschäftigt sich mit der physikalischen Anordnung der Daten auf den Datenträgern. Die Daten können auf verschiedenen Rechnern in unterschiedlichen Gebäuden und Städten verteilt sein. Daten, die später zum Beispiel als eine Tabelle zu sehen sind, müssen nicht zwangsläufig gemeinsam gespeichert werden. Logische Sicht Die Gesamtheit aller Daten wird in der logischen Sicht mit ihren Beziehungen dargestellt. In der logischen Sicht setzt das Datenbankdesign ein: Welche Informationseinheiten werden wo verwaltet und welche Beziehungen bestehen zu anderen Informationen? © HERDT-Verlag Theoretisches Wissen zu Datenbanken Benutzersicht Stellt die Sicht des Anwenders dar, der nur mit einem Teil der Daten arbeitet. Er kennt weder den internen Aufbau noch die Gesamtsicht der Datenbank, sondern nur die für ihn sichtbar gemachten Daten. Diese Daten können auf andere Weise verknüpft und zusammengestellt sein als in der logischen Sicht. Vorteile der Abgrenzung von interner, logischer und Benutzersicht D Die Benutzer einer Datenbank müssen nicht wissen, wie die Daten physikalisch organisiert sind. Dadurch kann die physische Datenstruktur geändert werden, ohne dass sich das Datenbankdesign oder die Sicht der Benutzer ändert (zum Beispiel können die Daten auf mehrere Computer verteilt werden, weil die Datenmenge zu groß geworden ist). Insbesondere laufen die Anwendungsprogramme, die mit der Datenbank arbeiten, problemlos weiter. D Auf der internen Ebene können unterschiedliche Tabellenformate (z. B. Access oder MySQL) verwendet werden. Der Benutzer muss nicht wissen, woher die Daten kommen. D Die Datenstruktur einer Benutzersicht ist speziell auf die Bedürfnisse und Berechtigungen der Benutzer ausgerichtet. Der Personalchef darf beispielsweise die Gehälter der Mitarbeiter sehen, während ein Angestellter der Personalverwaltung nur eine Sicht auf die Adressdaten der Angestellten hat. Logischer Datenbankentwurf Der logische Entwurf beschreibt die Struktur der Daten und der Bindungen untereinander: D Welche Daten werden wie zusammengefasst (zum Beispiel in Tabellen)? D Wie sehen die Beziehungen zwischen den Daten aus? D Einfügen der Business-Logik: Gültigkeitsprüfungen, Eingabeformate etc. Diese Logik steht dann automatisch jedem Nutzer der Daten zur Verfügung. Dadurch ist eine konsistente Datenhaltung gewährleistet. Physischer Datenbankentwurf Der physische Entwurf beschäftigt sich mit dem Abspeichern der Daten: D Wie werden die Daten auf dem Datenträger verteilt? D Welche Zugriffsmöglichkeiten bestehen zu den Daten (Netzwerk, Internet, lokal ...)? D Optimierung der Abspeicherung der Daten für oft auftretende Suchoperationen D Automatische Sicherungsmechanismen sind einzubauen (zum Beispiel Daten mehrfach, gespiegelt abspeichern – bei Ausfall eines Datenbankrechners existiert dann ein Ersatzrechner mit den gleichen Daten). © HERDT-Verlag 3 Theoretisches Wissen zu Datenbanken Relationale Datenbanken Beschreibung des relationalen Datenbankmodells Das relationale Datenmodell wurde 1970 von dem Mathematiker E. F. Codd entwickelt und mithilfe der Mengentheorie beschrieben. Dieses Modell bildet die Basis für relationale Datenbanken. In einer Datenbank sollen Informationen über bestimmte Objekte und deren Eigenschaften (Attribute) gesammelt werden. Ein solches Objekt könnte zum Beispiel eine Person (der Kunde Müller), ein Gegenstand (der Artikel Bleistift) oder ein Ablauf (die Bestellung Nr. 22) sein. Objekte, die durch die gleichen Attribute beschrieben werden können, werden als Objektmenge zusammengefasst (Müller, Schulze und Meier bilden die Objektmenge Kunden). Attribute (Spalten, Felder) Tabellen (Relationen) In einem relationalen Datenbankdesign muss jedes Objekt in einer Tabelle gespeichert sein. Zwischen den Tabellen können Beziehungen über sogenannte Schlüssel hergestellt werden. Nummer NachName PLZ Ort Straße 1 Schulze 04173 Leipzig Sassstr. 6 2 Meier 28199 Bremen Hauptstr. 123 3 Müller 60320 Frankfurt Dorfstr. 2 Tupel (Datensatz) Attribut (Spalte, Feld) Eigenschaften (Attribute) Die jeweils zu einem Objekt vorhandenen Informationen werden in Eigenschaften aufgeteilt. Eigenschaften einer Person könnten zum Beispiel der Name oder das Geburtsdatum sein. Eine Eigenschaft (Attribut) besitzt einen Namen (z. B. Geburtsdatum) und für jede Zeile einen Wert (z. B. 25.03.1976). In der Tabelle wird die Eigenschaft durch die Spaltenüberschrift dargestellt. Wertebereiche (Domänen) Eine Domäne beschreibt den zulässigen Wertebereich eines Attributs. Das können fest vorgegebene Werte sein (z. B. Januar, Februar ...), Bereiche (z. B. von 0 bis 999, von A bis G) oder Mengenangaben bzw. Datentypangaben (z. B. natürliche Zahl, Datum). In Access wird der Begriff Domäne auch für eine Gruppe von Datensätzen in einer Tabelle oder Abfrage verwendet. Tupel Ein Tupel stellt die Menge der Attribute eines Objekts, also einen Datensatz, dar. Der Aufbau aller Tupel einer Tabelle ist gleich. In der Tabelle Mitarbeiter werden z. B. in jedem Tupel die Adressdaten Nachname, Vorname, Straße, PLZ und Wohnort einer Person immer in dieser Reihenfolge abgespeichert. Sie stellen in der Tabelle die Zeilen dar. 4 © HERDT-Verlag Theoretisches Wissen zu Datenbanken Schlüssel (Indizes) Primärschlüssel Das Relationen-Modell fordert, dass jede Tabelle ein Attribut oder eine Attributkombination enthält, über das bzw. die jeder Datensatz eindeutig identifiziert werden kann. In der Praxis kommen Attribute, die in jedem Fall eindeutig sind, selten vor. Beispiele wären Kraftfahrzeugkennzeichen oder eine Kombination aus Bankleitzahl und Kontonummer. Oft werden daher zusätzliche Attribute definiert, welche die Datensätze fortlaufend oder nach einem Nummernkreis durchnummerieren. Sie können vor dem Benutzer verborgen bleiben und nur der internen Datenbankverwaltung dienen oder sichtbar sein, wie zum Beispiel Artikel- oder Kundennummern. Solche eindeutigen Felder werden auch auf der physikalischen Ebene benötigt und dienen unter anderem dem schnellen Auffinden von Datensätzen in großen Tabellen. Sie werden Primärschlüssel genannt. Eine Tabelle kann nur einen Primärschlüssel haben. Die Tabelle wird standardmäßig nach diesem Schlüssel sortiert. Ein Primärschlüssel ändert normalerweise während der gesamten Existenz eines Datensatzes seinen Wert nicht. Sekundärschlüssel Häufig sollen die Datensätze einer Tabelle in einer anderen Reihenfolge durchlaufen werden als durch den Primärschlüssel vorgegeben, zum Beispiel nach Postleitzahlen. Dazu muss die gesamte Tabelle nach diesen Postleitzahlen sortiert werden. Bei großen Datensatzmengen kann dies eine lange Zeit in Anspruch nehmen. Um den Zugriff auf die Daten zu beschleunigen, können zusätzlich zum Primärschlüssel weitere Schlüssel angelegt werden, die auch als Sekundärschlüssel bezeichnet werden. Mit Sekundärschlüsseln ist es möglich, nach anderen Dateninhalten als dem Primärschlüssel zu suchen, ohne dass alle Datensätze einer Tabelle durchlaufen werden müssen. Fremdschlüssel Ein Fremdschlüssel ist ein Feld in einer Tabelle, welches mittels einer Beziehung einen Verweis auf den Primärschlüssel einer anderen Tabelle herstellt. Beispielsweise befindet sich in der Beispieldatenbank Buero in der Tabelle Bestellung in jedem Datensatz eine Kundennummer des Kunden, der die Bestellung ausgelöst hat. Diese Kundennummer verweist auf den Primärschlüssel der Tabelle Kundenverwaltung und identifiziert den Kunden eindeutig. Die Kundennummer in der Auftragstabelle stellt somit einen Fremdschlüssel („fremder“ Schlüssel einer anderen Tabelle) dar. Hilfsmittel und Methoden zum Datenbankentwurf Das Entwerfen einer relationalen Datenbank ist eine komplexe Aufgabe. Sie müssen sämtliche Informationen sammeln, die in der Datenbank verwaltet werden sollen, und passende Tabellen dafür anlegen. Außerdem müssen Sie Beziehungen und sogenannte Integritätsregeln definieren sowie unterschiedliche Benutzersichten realisieren. © HERDT-Verlag 5 Theoretisches Wissen zu Datenbanken Um die notwendigen Schritte beim Datenbankentwurf korrekt und übersichtlich durchzuführen, können Sie sich folgender Regelwerke bedienen: Normalisierungsprozess Der Normalisierungsprozess ist eine Methode zur redundanzfreien Speicherung (keine mehrfache Speicherung) von Daten und zur Vermeidung fehlerhafter Datenerfassung beim Löschen, Ändern und Hinzufügen von Daten. Dabei werden die Daten über mehrere Stufen, die sogenannten Normalformen, auf Tabellen verteilt, bis möglichst keine Redundanzen und Inkonsistenzen mehr vorhanden sind. Mithilfe der Normalisierung wird das relationale Datenbankdesign erreicht. Entity-RelationshipModell Mithilfe des Entity-Relationship-Modells (ER-Modell) können Sie eine grafische Darstellung der Informationen zu den definierten Tabellen und den Beziehungen zwischen ihnen anfertigen. Sie können so die ganze Datenbankstruktur mit Papier und Bleistift entwerfen, bevor Sie irgendwelche Arbeiten am Computer vornehmen. Integritätsregeln Die Integritätsregeln sind Bestimmungen, welche den logischen Aufbau und die Korrektheit der Datenbank garantieren. Datenbankmanagementprogramme können diese Regeln überwachen und die Daten bei Änderungs-, Lösch- und Einfügevorgängen überprüfen. Die erste Normalform Mehrfachwerte in einzelnen Feldern vermeiden Sie möchten Ihre CD-Sammlung in einer Datenbank verwalten. Nachdem Sie sich überlegt haben, welche Informationen in der Datenbank verwaltet werden sollen, haben Sie eine Tabelle angelegt, die alle diese Informationen beinhaltet. Der Übersichtlichkeit halber sind einige Informationen, die noch interessant sein könnten (etwa das Erscheinungsjahr einer CD), weggelassen worden. Im Beispiel die Tabelle „CDs“ ohne Normalisierung (Atomisierung). 6 © HERDT-Verlag Theoretisches Wissen zu Datenbanken Der Weg, alle Daten in einer Tabelle unterzubringen, hat unverkennbar einige Nachteile. Was zuerst auffällt, ist, dass das Feld Lieder nicht jeweils einen, sondern mehrere Werte annehmen kann. Das hat Nachteile, weil … D beim Bearbeiten der Lieder umständlich im Innern des Feldes gearbeitet werden muss; D nach den Liedern nicht sortiert werden kann; D in einem Feld Speicherplatz für eine unbekannte Zahl von Werten bereitgehalten werden muss, was nicht immer gelingen wird und bei CDs mit wenigen Liedern zur Vergeudung von Speicherplatz führt; D die spätere Speicherung von zusätzlichen Informationen zu einzelnen Liedern, etwa die Spieldauer, nicht oder nur schwer möglich wäre. Um diese Nachteile zu vermeiden, ist es sinnvoll, die Tabelle in die erste Normalform zu bringen. Definition der ersten Normalform Eine Relation befindet sich dann in der ersten Normalform, wenn alle Attribute atomar, also unteilbar sind. Eine neue Relation Die Beispieltabelle befindet sich deswegen nicht in der ersten Normalform, weil das Attribut (Spalte) Lieder nicht atomar ist. Um die erste Normalform zu erreichen, legen Sie eine neue Tabelle Lieder an, die für jedes Lied einen eigenen Datensatz enthält. Es bestehen nun eine Tabelle CDs und eine Tabelle Lieder, zwischen denen Sie eine Beziehung herstellen müssen. Die Tabelle CDs enthält alle Hauptdatensätze und stellt somit die sogenannte Mastertabelle dar. Die Tabelle Lieder enthält alle untergeordneten Datensätze und stellt daher die sogenannte Detailtabelle dar. Um eine Beziehung zu erstellen, fügen Sie in der Tabelle Lieder das Feld CDID als Fremdschlüssel hinzu. Das Feld CDID dient in der Tabelle CDs als Primärschlüssel und ist das verknüpfte Datenfeld für die notwendige 1:n-Beziehung zwischen den Tabellen CDs und Lieder. Sie haben jetzt die Möglichkeit, zu jedem einzelnen Lied weitere Informationen, wie beispielsweise die Spieldauer, zu speichern. © HERDT-Verlag 7 Theoretisches Wissen zu Datenbanken Die zweite Normalform Redundanzen vermeiden Eine CD-Sammlung beinhaltet oft mehrere CDs von jeweils dem gleichen Künstler beziehungsweise von der gleichen Band. In diesem Beispiel ist das der Interpret Rabih Abou-Khalil. Sein Name ist daher mehrfach gespeichert. Dies hat folgende Nachteile: D Wenn Sie merken, dass Sie den Namen immer falsch geschrieben haben, müssen Sie ihn an mehreren Stellen ändern. D Wenn Sie den Namen nur an einer Stelle falsch geschrieben haben, werden Sie beim Suchen und Sortieren in der CD-Tabelle kein richtiges Ergebnis erhalten. D Es ist nicht möglich, Informationen über Bands zu speichern, zu denen keine CD vorhanden ist. D Es wird unnötig Speicherplatz belegt. Das kommt insbesondere dann zum Tragen, wenn Sie noch weitere Informationen über die Interpreten speichern möchten. Definition Eine Relation befindet sich in der zweiten Normalform, wenn sie sich bereits in der ersten Normalform befindet und jedes Nichtschlüsselfeld (Felder, die nicht als Primärschlüssel dienen) funktional vom Primärschlüssel abhängt. Realisierung Sie können dieser Forderung nachkommen, indem Sie eine neue Tabelle Kuenstler anlegen. Das Feld Bandname wird dafür aus der Tabelle CDs entfernt. Die Verbindung zwischen den Tabellen kann durch das neue Schlüsselfeld KuenstlerID hergestellt werden. Dass dieses Datenmodell keine Unterscheidung zwischen Einzelkünstlern und Bands kennt, ist eine zulässige Vereinfachung. 8 © HERDT-Verlag Theoretisches Wissen zu Datenbanken Das Datenmodell kann dem Vorkommen von CD-Samplern gerecht werden, wenn Sie die neue Beziehung nicht zwischen den Tabellen Kuenstler und CDs, sondern zwischen Künstler und Lieder anlegen. Es kommt so der abzubildenden Wirklichkeit näher. Es gibt eine direkte Beziehung zwischen Künstlern und Liedern, die von der Zusammenstellung der CDs unabhängig ist. Das Datenmodell ist dennoch nicht vollständig. Die Möglichkeit, dass dasselbe Lied desselben Künstlers auf verschiedenen CDs enthalten sein kann, kann hier ohne Redundanz nicht abgebildet werden. Als Beispiel mag es dennoch genügen. Aus den gleichen Gründen wird das Feld Label aus der Tabelle CDs in eine neue Relation verschoben. In beiden neuen Tabellen können nun zusätzliche Informationen gespeichert werden, die weder von den Liedern noch von den CDs abhängen. Die dritte Normalform Abhängigkeiten zwischen Feldern vermeiden Es fällt auf, dass in der Tabelle Labels die Inhalte der beiden Felder Land-Kuerzel und Land unmittelbar voneinander abhängen. In solch einem Fall wird von transitiver Abhängigkeit gesprochen. Zugleich können Werte mehrmals vorkommen. Das hat eine Reihe von Nachteilen: D Wenn in einem Datensatz der Wert des Feldes Land-Kuerzel geändert wird, muss auch der Wert des Feldes Land geändert werden. D Die Werte für beide Felder müssen mehrfach gespeichert werden, wenn mehrere Labels aus dem gleichen Land in der Sammlung vorkommen. Definition Eine Relation befindet sich in der dritten Normalform, wenn sie sich bereits in der zweiten Normalform befindet und kein Nichtschlüsselfeld von einem anderen Nichtschlüsselfeld abhängig ist. © HERDT-Verlag 9 Theoretisches Wissen zu Datenbanken Realisierung Im vorliegenden Beispiel wird diese Forderung durch die Einführung einer neuen Tabelle Laender erfüllt. Da die Länderkürzel in der Praxis eindeutig sind, können sie als Schlüsselfeld verwendet werden. Fortgesetzter Vorgang Jede neue Information, die in eine Datenbank aufgenommen wird, kann neue Fragen hinsichtlich des geeigneten Datenmodells aufwerfen. Wenn Sie Ihre Datenbank von Anfang an bis zur dritten Stufe normalisieren, werden Ihnen spätere Änderungen und Ergänzungen wesentlich leichter fallen, als wenn Sie etwa in eine nicht normalisierte Tabelle neue Felder einfügen müssen. Weitere Normalformen Die Datenbanklehre kennt noch eine 4. und eine 5. Normalform. Diese dienen der Beseitigung von Redundanzen innerhalb zusammengesetzter Schlüssel. Sie haben jedoch in der Praxis nur eine geringe Bedeutung und kommen daher hier nicht zur Sprache. Grundlagen zum Entity-Relationship-Modell Ein Hilfsmittel zur Darstellung von Datenbanken Wenn Sie sicherstellen möchten, dass alle relevanten Informationen in einem Datenbanksystem berücksichtigt werden, ist eine Beschreibung des Anwendungsgebietes und der notwendigen Objekte hilfreich. Das bekannteste und meist verwendete grafische Hilfsmittel zu diesem Zweck ist das Entity-Relationship-Modell (kurz: ER-Modell). Mithilfe des ER-Modells kann der Abschnitt aus der realen Welt, der in der Datenbank beschrieben werden soll, abgebildet werden. In einer relationalen Datenbank werden die Sachverhalte tabellarisch dargestellt. Mit einem ER-Modell können die notwendigen Tabellen abgeleitet werden. Eine Tabelle bzw. Relation im relationalen Datenmodell ist gekennzeichnet durch: D D D D D 10 einen eindeutigen Namen, beispielsweise Abteilung; mehrere Attribute; keine bis beliebig viele Tupel (Tabellenzeilen); einen einzigen Wert pro Feld (Attribut); einen Primärschlüssel, bestehend aus einem oder mehreren Datenfeldern, der jeden Datensatz bzw. Tupel eindeutig identifiziert und dessen Wert sich während der Existenz des Datensatzes nicht ändert. © HERDT-Verlag Theoretisches Wissen zu Datenbanken Elemente und grafische Darstellung des ER-Modells Entität (Entity), Entitätstyp (Entity-Typ), Entitätsmenge (Entity-Set) In einer Datenbank sollen Informationen zu unterscheidbaren Objekten gespeichert werden. Diese Objekte werden im ER-Modell als Entität (Entity) bezeichnet. Eine Entität kann z. B. eine Person (Frau Schmidt), ein Gegenstand (Bleistift), eine Firma (Fa. Axial) oder ein Ablauf (Bestellung 112) sein. Jede Entität kann durch bestimmte Attribute (Eigenschaften) beschrieben werden. Attribute einer Person könnten zum Beispiel der Name oder das Geburtsdatum sein. Um das Datenbankmodell möglichst überschaubar zu halten, werden alle Entitäten, die man durch die gleichen Attribute beschreiben kann (z. B. Name, Geburtsdatum), übergeordneten Entitätstypen (Entity-Typ) zugewiesen. Bei der Planung einer Datenbank werden nicht die einzelnen Entitäten betrachtet, sondern der Entitätstyp. Werden alle Entitäten, die demselben Entitätstyp angehören, zusammengefasst, erhält man die Entitätsmenge (Entity-Set). Sie ist die konkrete Sammlung von Entitäten mit gleichen Attributen (z. B. Name), aber unterschiedlichen Eigenschaftswerten (Schmidt, Mayer, Müller), zu einem bestimmten Zeitpunkt. Entitätsmengen sind zeitlich veränderlich. Eine Entitätsmenge entspricht im relationalen Datenmodell einer Tabelle. Entitäten: Frau Schmidt Forschungsabteilung Projekt-1009 Attribute: Name, Geburtsdatum (Schmidt) Name, Geburtsdatum (Mayer) Mitglieder, Etat (Forschungsabteilung) Entitätstypen: Mitarbeiter Abteilung Projekt Entitätsmengen: Alle Mitarbeiter (Schmidt, Maier, Müller usw.) Alle Abteilungen (Forschungsabteilung, Personalabteilung, Rechtsabteilung usw.) Alle Projekte (Projekt-1009, Projekt-1010, Projekt1011 usw.) Überlegen Sie zuerst, welche Entitäten Ihre Datenbank verwalten soll und welche Entitätstypen sich daraus ableiten lassen. Im ER-Modell werden Entitätstypen als Rechteck dargestellt. © HERDT-Verlag 11 Theoretisches Wissen zu Datenbanken Beziehung (Relationship), Beziehungstyp Eine Beziehung ist eine Verknüpfung von Entitäten. Beziehungen unterscheiden sich voneinander durch ihre jeweiligen Eigenschaften. Der Beziehungstyp beschreibt die numerischen Zusammenhänge zwischen den einzelnen Elementen, beispielsweise wie viele Datensätze der Tabelle Mitarbeiter einem Datensatz der Tabelle Abteilung zugewiesen werden. Der Beziehungstyp wird durch folgende Angaben definiert: 0 - keine Zuordnung 1 - genau eine Zuordnung n, m - viele Zuordnungen Beziehung: Mitarbeiter Schmidt arbeitet an Projekt 1009. Beziehungstyp: 1 Abteilung besteht aus n Mitarbeitern. n Mitarbeiter arbeiten an m Projekten. ABTEILUNG ABTEILUNG M ITARBEITER MITARBEITER 1 n n besteht aus m arbeitet in M ITARBEITER MITARBEITER PROJEKT PROJEKT Die Beziehungen werden im ER-Modell durch Verbindungslinien dargestellt. In einem Symbol wird die Beschreibung der Beziehung eingetragen. Über den Linien wird die Art der Beziehung – zum Beispiel 1:n – eingefügt. Attribute (Eigenschaften), Domänen Attribute (Eigenschaften) charakterisieren einen Entitätstyp oder einen Beziehungstyp. Attributswerte charakterisieren eine Entität oder eine Beziehung. Attribute: Abteilungsname Personalnummer Projektnummer Domänen: Eine Domäne beschreibt den zulässigen Wertebereich einer Eigenschaft. Mitarbeiter: PersonalID AbteilungsID Legen Sie alle Attribute für einen Entitätstyp fest. Geburtstag Bestimmen Sie die zugehörigen Domänen (Wertebereiche) der Attribute. PersonalID 12 1 - 999 1-9 tt.mm.jj MITARBEITER Name Vorname AbteilungsID © HERDT-Verlag Theoretisches Wissen zu Datenbanken Primärschlüssel Der Primärschlüssel ermöglicht die eindeutige Identifizierung einer Entität dadurch, dass sein Wert in einer Entitätsmenge nur ein einziges Mal vorkommt. Er setzt sich aus einem oder mehreren Attributen zusammen. Bestimmen Sie für jede Relation den Primärschlüssel. Grafisch können Sie den Schlüssel durch Unterstreichung der betreffenden Felder hervorheben. Die Relation Mitarbeiter besitzt den Primärschlüssel PersonalID. MITARBEITER PersonalID Name AbteilungsID Vorname Beschreibung des ER-Modells Abbildung der Struktur In einem Unternehmen gibt es Mitarbeiter, Abteilungen und Projekte. Zur Verwaltung aller Informationen und Ereignisse soll eine Datenbank erstellt werden. In der folgenden Abbildung sind alle Elemente der Datenbank und deren Beziehungen untereinander zusammengestellt. A B T E IL U N G 1 b e s te h t a u s n M IT A R B E IT E R A b t e ilu n g s ID B e z e ic h n u n g P e r s o n a l ID n a rb e ite t a n P r o j e k t ID Nachnam e V o rn a m e A b t e i l u n g s ID m P R O JE K T P e r s o n a l ID P r o j e k t ID B e s c h r e ib u n g D Alle Informationen lassen sich in drei Entitätstypen aufteilen: Abteilung, Mitarbeiter und D D D D D Projekt. Zwischen den Entitätstypen lassen sich zwei Beziehungen erkennen: Eine Abteilung besteht aus Mitarbeitern, die in Projekten arbeiten. Da eine Abteilung aus mehreren Mitarbeitern besteht, aber ein Mitarbeiter nur einer Abteilung zugewiesen ist, besteht hier eine 1:n-Beziehung . Bei einer 1:n-Beziehung ist es erforderlich, das Schlüsselfeld der Haupttabelle in die Detailtabelle einzufügen. Die Tabelle Mitarbeiter besitzt demnach einen sogenannten Fremdschlüssel AbteilungsID. Ein Mitarbeiter kann in mehreren Projekten arbeiten, in einem Projekt können mehrere Mitarbeiter arbeiten. Hier ist eine m:n-Beziehung erkennbar . Die Entitätstypen Abteilung, Mitarbeiter und Projekt besitzen Attribute. Beispielsweise besitzt der Entitätstyp Projekt die Attribute ProjektID und Beschreibung. Das Attribut ProjektID ist eindeutig und soll als Primärschlüssel dienen, daher der Unterstrich. Eine m:n-Beziehung erfordert einen weiteren Entitätstyp, welcher die Beteiligung eines Mitarbeiters an einem Projekt beschreibt . Der neu entstandene Entitätstyp setzt sich mindestens aus den Schlüsselfeldern der beiden Entitätstypen, die in der m:n-Beziehung stehen, zusammen. Sie könnte aber auch noch andere Attribute erhalten; in diesem Beispiel etwa die Arbeitszeit eines Mitarbeiters für ein Projekt. © HERDT-Verlag 13 Theoretisches Wissen zu Datenbanken Textbeschreibung eines Datenmodells Um eine kompakte Beschreibung der Relationen sowie deren Attribute und Schlüsselfelder zu erhalten, können Sie die folgende Textform verwenden. Zu Beginn stehen der Name der Relation und in Klammern die Attribute, wobei die Primärschlüsselfelder unterstrichen sind. ABTEILUNG (AbteilungsID, Bezeichnung) MITARBEITER (PersonalID, Nachname, Vorname, AbteilungsID) PROJEKT (ProjektID, Beschreibung) PROJEKTAUSWERTUNG (ProjektID, PersonalID, GeleisteteStunden) ER-Modell in eine Datenbank umsetzen Aus dem obigen ER-Modell lassen sich für eine Access-Datenbank vier Tabellenstrukturen ableiten. Die Anzahl der Tabellen hängt von den definierten Entitätstypen und bei m:n-Beziehungen auch vom Beziehungstyp zwischen den Tabellen ab. Tabelle Abteilung Tabelle Mitarbeiter Tabelle Projekt 14 © HERDT-Verlag Theoretisches Wissen zu Datenbanken Besonderheit bei m:n-Beziehungen Eine m:n-Beziehung, wie sie zwischen den Tabellen Mitarbeiter und Projekt besteht, erzwingt Mehrfacheinträge. Damit nachträgliche Änderungen die Konsistenz der Daten nicht beeinträchtigen, entsteht aus einer m:n-Beziehung eine neue Tabelle, die sich aus den Primärschlüsseln der beiden Tabellen Projekt und Mitarbeiter zusammensetzt. Mehrfacheinträge (Datenredundanz) Fremdschlüssel Datenredundanz durch Fremdschlüssel Tabelle Projektauswertung Wurden alle notwendigen Tabellen und Beziehungen für die Datenbank erstellt, können anschließend die weiteren Objekte, wie Formulare, Abfragen und Berichte, hinzugefügt werden. Planung einer Datenbank Das Buch Grundlagen für Datenbankentwickler hilft Ihnen, anhand der Beschreibungen und Übungen die wichtigsten Funktionen einer Access-Datenbank kennenzulernen. Diese Grundlagen und die unten beschriebene Vorgehensweise unterstützen Sie bei der Entwicklung einer eigenen Datenbank. Lernen Sie zunächst Access gut kennen. Legen Sie eine Liste an mit allen Vorgängen, die in der Datenbank ausgeführt werden sollen. Planen Sie die einzelnen Tabellen. Welche Daten sollen in welche Tabellen abgelegt werden? Vermeiden Sie Redundanzen. Überlegen Sie, welche Felder Sie in den Tabellen benötigen. Legen Sie die Feldnamen, Felddatentypen, Felddateneigenschaften (wie Größe, Eingabe erforderlich, Formate oder Gültigkeitsregeln) für jede Tabelle fest. Denken Sie darüber nach, zwischen welchen Tabellen Beziehungen entstehen sollen. Überprüfen Sie die Feldeigenschaften der Felder, die miteinander in Beziehung treten. Definieren Sie Primärschlüssel für Ihre Tabellen. Überprüfen Sie die erste Normalform. Sind Ihre Daten atomar? Gibt es wiederholte Daten, die in eine neue Tabelle ausgelagert werden können? Überprüfen Sie die zweite und dritte Normalform. Sind die Daten Ihrer Tabellen eindeutig beschrieben? Überprüfen Sie, ob alle erforderlichen Primärschlüssel gesetzt wurden. Gibt es „Nicht-Schlüsselfelder“, die in Beziehung treten? © HERDT-Verlag 15 Theoretisches Wissen zu Datenbanken Planen Sie alle erforderlichen Formulare und ihre Eigenschaften. Entwickeln Sie ein Layout, das dem Corporate Design (CD) Ihres Unternehmens entspricht. Bedenken Sie dabei die Bildschirmtauglichkeit von Formularen. Planen Sie alle erforderlichen Berichte. Die Gestaltung der Berichte sollte ebenfalls dem Corporate Design entsprechen. Eine umfassende Vorbereitung kann Ihnen helfen, Mängel in der Datenbankstruktur zu vermeiden. Müssen Mängel in der Datenbankstruktur einer bestehenden und gefüllten Datenbank korrigiert werden, ist ein weit höherer Arbeitsaufwand erforderlich. Namenskonventionen Normen und Konventionen sind kein Muss, sie können jedoch den Arbeitsalltag enorm erleichtern. Im Bereich von Datenbanken wird häufig auf die sogenannte Reddick-VBA-Namenskonvention verwiesen. Sollte in einer Datenbank programmiert werden, kann das den Namen der Datenbankobjekte vorangestellte Präfix bei Unterscheidungen der Datenbankobjekte in der Programmierung hilfreich sein. Sie können diese Informationen in Ihrer Datenbankplanung bei Bedarf einbeziehen. Namenskonvention nach Reddick Objekt Präfix Beispiel Tabellen (engl. tables) tab tabKunden Abfragen (engl. queries) qry qryBestelldetails Formulare (engl. forms) frm frmKunden Berichte (engl. reports) rpt rptKatalog Makros (engl. macros) mcr mcrFunktionen Module (engl. modules) bas basFunktionen Es gibt verschiedene Namenskonventionen für Datenbanken, die sich in den Präfixen unterscheiden können. Wenn Sie Namenskonventionen verwenden möchten, überprüfen Sie zunächst, ob es bestehende Konventionen in Ihrem Arbeitsumfeld gibt. Definieren Sie Namenskonventionen bereits bei der Planung Ihrer Datenbank und verwenden Sie diese durchgängig. 16 © HERDT-Verlag