15 Datenbankgrundlagen 15.1 Allgemeines zu Datenbanken 15.2 Relationale Datenbanken 15.3 Entity-Relationship-Modell 15.4 Normalisierung von Daten 15 Datenbankgrundlagen Inhalt 1 Allgemeines zu Datenbanken Ein Datenbankprogramm verwaltet in der Regel große Mengen von Daten und ermöglicht für diese Datensammlung folgende Funktionalität: Lesen Ändern Löschen Hinzuzufügen Lohn- und Gehaltsabrechnung PERSONALDATEN 15 Datenbankgrundlagen Zuordnungsliste: Mitarbeiter in den Abteilungen ABTEILUNGSDATEN Allgemeines zu Datenbanken Adressliste sortiert nach Wohnort KUNDENVERZEICHNIS 2 Datenbanktypen Hierarchische Datenbanken Rangordnung zwischen den Datensätzen Verarbeitung unterschiedlich langer Datensätze Netzwerk-Datenbanken Beziehungen zwischen den Daten sind immer vom Typ 1 : n Objektorientierte Datenbanken Keine Speicherung von Daten, sondern von Objekten (= Daten + Operationen auf den Objekten) Verteilte Datenbanken Datenhaltung in mehreren Datenbanken Relationale Datenbanken Daten werden als Tabellen gespeichert, zwischen denen Beziehungen bestehen können (Abfragesprache SQL) 15 Datenbankgrundlagen Allgemeines zu Datenbanken 3 Sichten auf eine Datenbank Lagerbestand (Formular 1) Umsätze (Formular 2) Lagerbestand (Abfrage 1) Umsatz pro Kunde (Abfrage 2) Artikeltabelle (Access-DB) Kundentabelle (Access-DB) Externe Sicht (Benutzersicht) 15 Datenbankgrundlagen Europäische Top 10-Kunden (Bericht 1) Top 10-Kunden (Abfrage 3) Rechnungen (Excel-Datei) Logische Sicht Allgemeines zu Datenbanken Europäische Kunden (Abfrage 4) Artikeltabelle (dBase-DB) Interne Sicht 4 Datenbankentwurf Logisch (Struktur der Daten und Bindungen untereinander) Art der Datenzusammenfassung (z.B. Tabellen) Art der Beziehungen zwischen den Daten (z.B. referenzielle Integrität) Einfügen der Business-Logik: Gültigkeitsprüfungen, Eingabeformate etc. (Gewährleistung der Konsistenz) Physisch (Speicherung der Daten) Verteilung der Daten auf dem Datenträger Zugriffsmöglichkeiten auf die Daten (Netzwerk, Internet, lokal, ..) Optimierung der Datenspeicherung für oft auftretende Suchoperationen Automatische Sicherungsmechanismen 15 Datenbankgrundlagen Allgemeines zu Datenbanken 5 Datenbankmanagementsysteme Datenbankmanagementsystem DBMS = Software zur Verwaltung der Daten Aufgaben Verarbeitung von Benutzeranfragen Lieferung der gewünschten Daten Abbildung der drei Sichten auf die Daten Berücksichtigung von Benutzerberechtigungen Protokollierung von Datenänderungen Überprüfung von Dateneingaben und Löschvorgängen Berücksichtigung eines Mehrbenutzerbetriebs 15 Datenbankgrundlagen Allgemeines zu Datenbanken 6 Hilfsmittel und Methoden zum Datenbankentwurf Relationales Datenmodell Darstellung der Daten in Tabellen, zwischen denen Beziehungen bestehen können Integritätsregeln Überprüfung der Daten bei Änderungen, Lösch- und Einfügevorgängen Direkt in den Tabellen hinterlegt Normalisierungsprozess Methode zur redundanzfreien Speicherung von Daten Vermeidung fehlerhafter Datenerfassung beim Löschen, Ändern, Hinzufügen von Daten Entity-Relationship-Modell Grafische Darstellung aller relevanten Tabellen und Beziehungen 15 Datenbankgrundlagen Allgemeines zu Datenbanken 7 Begriffe in relationalen Datenbanken Relation = Tabelle (Konstruktion aus Zeilen und Spalten) Tabelle = Speicherort für Daten Spalten = Felder bzw. Attribute Zeilen = Datensätze bzw. Tupel Schlüssel = Hauptindex (Primärschlüssel) Fremdschlüssel = Beziehung zu einem Schlüsselfeld einer anderen Tabelle 15 Datenbankgrundlagen Relationale Datenbanken 8 Entity-Relationship-Modell Entity-Relationship-Modell (ER-Modell) = Abbildung aller Elemente eines relationalen Datenbanksystems und deren Beziehungen untereinander 1 ABTEILUNG a cn besteht aus b e e AbteilungsNr n MITARBEITER a Bezeichnung PersonalNr Nachname arbeitet in b PROJEKTE a c Vorname AbteilungsNr ProjektNr 15 Datenbankgrundlagen dm Entity-Relationship-Modell e ProjektNr f Beschreibung PersonalNr 9 Elemente im ER-Modell (1 von 3) Entität (Entity) Objekt, Begriff, Ereignis, Person Entspricht einem Datensatz Besitzt Eigenschaften (= Datenfeldnamen) Beispiele: Abteilung Forschung Mitarbeiter Schmidt Projekt 1009 Entitätsmenge Sammlung von Entitäten Entspricht einer Tabelle Beispiele: Alle Abteilungen Alle Mitarbeiter Alle Projekte 15 Datenbankgrundlagen Entity-Relationship-Modell 10 Elemente im ER-Modell (2 von 3) Beziehung (Relationship) Verknüpfung von Entitäten Beispiel: Mitarbeiter Schmidt arbeitet an Projekt 1009 Beziehungsmenge Verknüpfung von Entitätsmengen Beispiel: Mitarbeiter arbeitet an Projekt Beziehungstyp 0 - keine Zuordnung 1 - genau eine Zuordnung n, m - viele Zuordnungen Beispiele: 1 Abteilung besteht aus n Mitarbeitern n Mitarbeiter arbeiten an m Projekten 15 Datenbankgrundlagen Entity-Relationship-Modell 11 Elemente im ER-Modell (3 von 3) Eigenschaften (Attribute) Charakterisieren Entitäten oder Beziehungen (= Datenfeldnamen) Beispiel: Abteilungsname Mitarbeitername Projektname Domäne Wertebereich einer Eigenschaft Beispiel: Personal-Nr (1 - 999) Primärschlüssel (= Eigenschaft) Eindeutige Identifizierung einer Entität Beispiel: Personal-Nr 15 Datenbankgrundlagen Entity-Relationship-Modell 12 Beschreibung eines Datenmodells (1 von 2) ABTEILUNG (AbteilungsNr, Bezeichnung) Abteilung AbteilungsNr Bezeichnung MITARBEITER (PersonalNr, Nachname, Vorname, AbteilungsNr) Mitarbeiter PersonalNr Nachname Vorname AbteilungsNr PROJEKT (ProjektNr, Beschreibung) Projekt ProjektNr 15 Datenbankgrundlagen Beschreibung Entity-Relationship-Modell 13 Beschreibung eines Datenmodells (2 von 2) Projektauswertung (ProjektNr, PersonalNr, Stunden) Projektauswertung (arbeitet in) ProjektNr 15 Datenbankgrundlagen PersonalNr Entity-Relationship-Modell Stunden 14 Fertiges Entity-Relationship-Modell Abteilung 1 besteht aus n Mitarbeiter m arbeitet in n Projekt 15 Datenbankgrundlagen Entity-Relationship-Modell 15 Umsetzung Tabellen, 1:1-, 1:n-Beziehungen Abteilung Mitarbeiter Projekt 15 Datenbankgrundlagen Entity-Relationship-Modell 16 Umsetzung m:n-Beziehungen Projektauswertung 15 Datenbankgrundlagen Entity-Relationship-Modell 17 Problem: Datenredundanz Datensätze oder Datenfeldinhalte werden mehrfach in verschiedenen Tabellen gespeichert => Speicherplatzverschwendung => Änderungen und Löschvorgänge der Daten an mehreren Stellen erforderlich => Gefährdung der Datenkonsistenz 15 Datenbankgrundlagen Normalisierung von Daten 18 Lösung: Normalisierung Normalisierungsprozess Daten werden auf mehrere Tabellen verteilt Regeln zur 1. - 5. Normalform (in der Praxis: bis zur 3. Normalform) 1. Normalform Keine Mehrfacheinträge in einem Feld 2. Normalform Jedes Nichtschlüsselfeld ist nur vom gesamten Schlüssel abhängig 3. Normalform Nichtschlüsselfelder sind nicht über ein anderes NichtSchlüsselfeld identifizierbar (transitive Abhängigkeit) 15 Datenbankgrundlagen Normalisierung von Daten 19 1. Normalform Keine Mehrfacheinträge in Datensätzen 15 Datenbankgrundlagen Normalisierung von Daten 20 2. Normalform Nichtschlüsselfelder vom Gesamtschlüssel abhängig 15 Datenbankgrundlagen Normalisierung von Daten 21 3. Normalform Nichtschlüsselfelder nicht über andere Nichtschlüsselfelder identifizierbar 15 Datenbankgrundlagen Normalisierung von Daten 22