1 Lernfeld 2.6 – 2.8 (EBA) Datenbanksysteme und Datenbankanpassung 0. Einführung – Vom Geschäftsprozess zur Datenbankanwendung Anknüpfen an Bekanntes: PPT: DatenbankPräsi01 Daten spielen in einem modernen Unternehmen eine zentrale Rolle. Dabei handelt es sich weniger um „flüchtige“ Daten, die in einem DV-System nur während der Verarbeitung existieren, sondern um „dauerhafte“ Daten. Ihre verlässliche Speicherung und spätere Wiedergewinnung sind daher von großer Bedeutung. Datenbanken spielen beim Einsatz von Computern häufig eine zentrale Rolle. In vielen Fällen, wo Arbeitsabläufe computerunterstützt abgewickelt werden, ist die Speicherung großer Datenmengen erforderlich. Datenbanken Sind eine Menge von Daten, die durch Strukturierung als Information für ein bestimmtes Thema oder einen bestimmten Zweck verwendet werden. Kundenanschriften Artikeldaten Aufträge Telefonnummern Rechnungsdaten Unternehmensdatenbank 68615196 G. Schneider 13.05.2016 2 Typische Beispiele: Personalverwaltung großer Unternehmen Lagerwirtschaft Bestellwesen Rechnungswesen In einer Datenbank kann man Daten fast jeglicher Art speichern, verarbeiten und auswerten. Dies können Zahlen, Bilder und Textdaten sein. Datenbanken werden normalerweise mittels eines PC digital verwaltet und lösen damit die übliche Form der Ablagen von Daten in Aktenschränken, Büchern oder Ähnlichem ab. Die Gründe für die Verwendung der digitalen Speicherung von Daten sind vielfältig: Digitale Datenbanken haben einen geringen Platzbedarf Der Zugriff auf die Daten ist sehr schnell und kann im Prinzip von jedem Ort der Welt erfolgen (z.B. über das Internet) Durch PC hat man wesentlich mehr Möglichkeiten, die vorhandenen Daten auszuwerten. Mit Datenbanken können mehrere Personen gleichzeitig arbeiten, mit einer Akte aus Papier nicht. Die Frage ist: Wie lassen sich solche Daten sinnvoll, rationell und verlässlich speichern? 68615196 G. Schneider 13.05.2016 3 1. Datenorganisation und Datenmanagement 1.1 Grundlegende Begriffe Zeichen (Character): kleinste speicherbare Einheit, auf die während der Datenverarbeitung zugegriffen werden kann Datenelement (Item): Kleinste logische Dateneinheit, besteht aus einem oder mehreren Zeichen und kann nicht weiter zerlegt werden Physisch wird ein Datenelement in einem Datenfeld gespeichert. Datenfelder, deren Inhalt durch Operationen verändert werden können, heißen Variablen. Nicht veränderbare Datenfelder heißen Kostanten. Datensegment: Zusammenfassung von logisch zusammenhängenden Datenelementen (z.B. Name, Vorname, Straße, PLZ, Ort Segment: Anschrift Datensatz (Set): Zusammenfassung logisch zusammengehörender Datensegmente oder Datenelemente. Datensätze können feste (vorgegebene Anzahl von Zeichen pro Datenelement) oder variable Satzlängen haben. Formatierte Daten: Datensätze mit fester Form und Struktur Formatfreie Daten: Daten ohne bestimmte Struktur (Textverarbeitung) siehe Schaubild WiInf S. 246 unten 68615196 G. Schneider 13.05.2016 4 Datei (File): Logische Zusammenfassung von Datensätzen mit gleicher Struktur Datenbank (Data-base): Zusammenfassung logisch zusammengehöriger Dateien siehe Schaubild WiInf. S. 247 unten 68615196 G. Schneider 13.05.2016 5 1.2 Datenarten Bei betrieblichen Anwendungen der Datenverarbeitung werden folgende Datenarten unterschieden: Stammdaten: Ändern sich nur selten z.B. Name, Anschrift, Geburtsdatum Änderungsdaten: Enthalten Angaben zu Veränderungen in den Stammdaten, z. B. Anschriftenänderungen Bestandsdaten: Halten Bestände fest z. B. Lagerbestand, Kontostand Bewegungsdaten: Entsprechen den Veränderungen von Beständen z. B. Warenlieferungen, Lagerentnahme, Einzahlungen sind meistens der größte Teil der anfallenden Daten, daher muss eine schnelle und wirtschaftliche Erfassung sichergestellt werden Einteilung der Datenarten nach dem Zeitbezug Zustandsdaten: Beschreiben Zustände der realen Welt und haben eine gewisse zeitliche Gültigkeit z. B. Beschreibung von Materialien ( Bezeichnung, Preis je Einheit, Lieferant…) 68615196 entsprechen Stamm- bzw. Bestandsdaten G. Schneider 13.05.2016 6 Aktionsdaten: Beschreiben Aktionen, Ereignisse oder ähnliches als Veränderung von Zustandsdaten z. B. Begleichung einer Rechnung, Korekturen eines Textes werden meist zeitbezogen gespeichert für Analysezwecke Merke! Zustandsorientierte und aktionsorientierte Daten beschreiben Phänomene der realen Welt und sind die Daten, mit denen in IV-Systemen gearbeitet wird. Sie heißen deshalb Nutzdaten. Daneben gibt es Daten, die für die Steuerung der rechnerinternen Verarbeitungsprozesse benötigt werden. Diese Daten werden als Steuerdaten bezeichnet. Daten unterschieden nach Art der Zeichen Numerische Daten: Bestehen aus Ziffern eines Zahlensystems Alphanumerische Daten: Ziffern, Buchstaben, Sonderzeichen CLOB ( Character Large Object) Grafische Daten (BLOB: Binary Large Object): Beschreibung einer Grafik über einzelne Bildpunkte mit den dazugehörigen Koordinaten. (1 Bildpunkt = 1 Pixel (picture element)) Vektorielle Beschreibung der Grafik durch Funktionen Akustische Daten (BLOB) 68615196 Töne, gesprochene Worte,… G. Schneider 13.05.2016 7 Weitere Einteilungen Nach der Änderbarkeit: statische / dynamische Daten Nach dem Verarbeitungszustand: Eingabedaten, Zwischenergebnisse, Ausgabedaten 1.3 Schlüssel Für die Speicherung und die Wiederauffindbarkeit von Daten spielt der Schlüsselbegriff eine wichtige Rolle: siehe Praktikum ERM Primärschlüssel Fremdschlüssel Suchschlüssel: Charakterisiert alle gesuchten Datensätze Sortierschlüssel: Bestimmt die physische Reihenfolge der Datensätze innerhalb einer Datei. 68615196 G. Schneider 13.05.2016 8 1.4 Datenoperationen Für die Speicherung, Nutzung und Verwaltung von Daten werden verschiedene Operationen benutzt, die nach ihrer Wirkung auf den Datenbestand unterschieden werden: Operationen zur Verwaltung von Daten: Anlegen eines neuen Datenbestandes Kopieren eines Datenbestandes Ermittlung der Anzahl der Daten in einem Datenbestand Operationen zur Bereitstellung von Daten aus einem Datenbestand, ohne dass dieser dabei verändert wird: Lesen einzelner Dateien Auswahl von Datengruppen nach bestimmten Kriterien (Suchen) Operationen, die den Inhalt des Datenbestandes verändern: Einfügen von Daten Ändern von Daten Löschen von Daten Operationen, die die Ordnung des Datenbestandes ändern: Sortieren von Daten nach bestimmten Kriterien Zusammenfügen mehrerer Datenbestände Aufteilung eines Datenbestandes Operationen, die die Struktur von Daten verändern: Datenfelder in Datensätzen ergänzen Datenfelder löschen Länge von Datenfeldern ändern Sonstige Änderungen von Formaten 68615196 G. Schneider 13.05.2016 9 68615196 G. Schneider 13.05.2016 10 1.5 Datenorganisation Datenorganisation umfasst Die Festlegung der Datenstrukturen (Datenmodellierung) Verfahren und Vorschriften zum Speichern, Wiederauffinden und Verändern von Daten. Die Datenorganisation bezieht sich vor allem auf die Aspekte der physischen Speicherung der Daten einschließlich Hardwarefragen. Anforderungen an die Datenorganisation Kurze Zugriffs- und Übertragungszeiten zur Sicherung ausreichend schneller Verarbeitung der Daten. Minimale Datenredundanz (Mehrfachspeicherung von Daten), um Speicherplatz zu sparen und die Aktualisierung von Daten zu erleichtern. Überschaubarer innerer Aufbau des Datenbestandes, klare, logische Strukturierung Modellierung und Speicherung der Daten unabhängig von einzelnen Anwendungsprogrammen und Benutzern der Daten. siehe auch 3- Ebenen – Architektur einer Datenbank Datenflexibilität, um die Nutzung von Daten auch für zukünftige Anwendungen sicherzustellen (Erweiterung, Modifikation) Datenintegrität umfasst die Widerspruchsfreiheit (Konsistenz) der Daten, die Sicherung der Daten gegen Verlust und Verfälschung sowie die Einhaltung von Datenschutzvorschriften. 68615196 Wirtschaftlichkeit G. Schneider 13.05.2016 11 1.6 Datenmanagement Das Datenmanagement ist für die Bereitstellung von Daten bzw. Informationen An der richtigen Stelle Zur richtigen Zeit Beim richtigen Adressaten In der richtigen Form 68615196 verantwortlich. G. Schneider 13.05.2016 12 2. Dateiorientierte Datenverarbeitung versus Datenbankkonzept Am Beispiel: Provisions- und Lohn-/Gehaltsabrechnung in einem Unternehmen 2.1 Dateiorientierte Datenverarbeitung Bei der herkömmlichen Methode der Datenspeicherung in Dateisystemen werden für die verschiedenen btrieblichen Bereiche spezielle Anwendungsprogramme geschrieben. Diese Programme speichern und lesen die erforderlichen Daten in einzelnen Dateien, die für das jeweilige Programm erzeugt wurden. Sie arbeiten direkt mit den Dateien. Provisionsdatei (Artikeldaten, Umsatzdaten…) Programm Provisionsabrechnung Mitarbeiterdatei (Name, Anschrift…) Programm Lohnabrechnung Lohndatei (Arbeitszeit, Stundensatz…) Programm Verkaufsstatistik Statistikdatei (Artikeldaten, Umsatzdaten…) Es wurden bei dieser Methode der Datenspeicherung folgende Probleme erkannt: a) Redundanzen Viele Daten werden mehrfach gespeichert, was eine hohe Datenredundanz bedeutet. Dadurch werden Änderungen aufwendig (die gleichen Daten 68615196 G. Schneider 13.05.2016 13 müssen mehrmals an verschiedenen Stellen geändert werden) und der Datenbestand ist fehleranfällig (wenn z.B. Änderungen von mehrfach gespeicherten Daten nur an einer Stelle vorgenommen werden). b) Inkonsistenzen Werden die Daten von mehreren Benutzern bzw. Programmen gleichzeitig geändert, kann es zu einem widersprüchlichen Zustand der Daten kommen. Der Datenzugriff ist nicht synchronisiert. Dazu kann es z. B. kommen, wenn ein Lagerbestand von zwei Benutzern gleichzeitig aktualisiert wird. Beide Benutzer lesen die aktuelle Anzahl eines Artikels (z.B. 8000). Der erste Benutzer fügt 100 Artikel hinzu und speichert den Wert (8100). Der zweite Benutzer entnimmt 500 Artikel und speichert den Wert (7500), wobei die Änderung des ersten Benutzers überschrieben wird. Die Daten sind inkonsistent, da der richtige Wert 7600 betragen würde. c) Datenschutzprobleme Ein Lesezugriff auf die gesamten Dateien ist uneingeschränkt möglich. Greifen verschiedene Programme auf die gleiche Datei zu und benötigen die Programme entsprechend ihrer Funktion nur einen Teil der Daten, muss trotzdem der gesamte Bestand gelesen werden. (So reichen für die Provisionsmitarbeiter möglicherweise Name und Anschrift des Mitarbeiters, weitere gespeicherte Daten, wie die Höhe des Gehalts, die Bankverbindung, der Urlaubsanspruch usw. sind dagegen nicht bedeutsam.) Des weiteren muss bei der Verarbeitung zu schützender Daten in jedem Programm das Problem unberechtigter Zugriffe gelöst werden. d) Fehlende Datenunabhängigkeit Es besteht eine enge Abhängigkeit zwischen Programmen und Daten. Der Dateiaufbau wird von dem Programm, welches die Datei erzeugt, bestimmt. Ein Programm, das auf diese Datei zugreift, muss den genauen Datenaufbau kennen. Änderungen in der Dateistruktur führen zu Änderungen in allen Programmen, die diese Datei verwenden. 68615196 G. Schneider 13.05.2016 14 2.2 Datenbank-Konzept Durch die Entwicklung von Datenbanksystemen (DBS) wurden diese Probleme nach und nach gelöst. Ein Datenbanksystem speichert alle oder Teile der Unternehmensdaten unter einer zentralen Kontrolle. Es besteht aus: Dem eigentlichen Datenbestand, der in einer oder mehreren Datenbanken (DB) gespeichert ist, einem System zur Verwaltung und Kontrolle dieses Datenbestandes (Datenbankmanagementsystem – DBMS) und einer Beschreibung des Aufbaus der Datenbanken (Data Dictionary, DD) Anwendungsprogramme halten die Daten nicht mehr in „eigenen“ Dateien, sondern greifen unter der Kontrolle des DBMS auf die Daten der Datenbanken zu. Programm Provisionsabrechnung Datenbanksystem (DBS) Bestellung 1 Bestellung 1 Programm Lohnabrechnung Datenbankmanagementsystem Datenbank 2 Programm Verkaufsstatistik 68615196 Datenbank 1 G. Schneider 13.05.2016 15 Eine Datenbank weist folgende Eigenschaften auf: In Datenbanken sind Daten entsprechend ihrer natürlichen und sachlogischen Zusammenhänge gespeichert. Dabei ist es nicht entscheidend, in welcher Form die Daten in Anwendungen benötigt werden. Die Daten der Datenbank bilden einen Ausschnitt aus der realen Welt ab. Auf die Daten einer Datenbank können viele Benutzer gleichzeitig zugreifen. Das Datenbankmanagementsystem verwaltet sowohl die Daten als auch die Zugriffe darauf und sorgt dafür, dass dieselben Daten nicht gleichzeitig von mehreren Benutzern bearbeitet werden können. Auch wenn mehrere Anwendungen mit einer gemeinsamen Datenbasis arbeiten, so wird in den Anwendungsprogrammen meist nur auf einen Teil davon zugegriffen. Das Datenbankmanagementsystem ist die Software, welche die Datenbank verwaltet. Es ermöglicht Das Anlegen von Datenbanken Die Speicherung, Änderung und Löschung der Daten Das Abfragen der Datenbank Eine Verwaltung von Benutzern, Zugriffen und Zugriffsrechten Um von Anwendungsprogrammen bzw. Benutzern auf die Daten einer Datenbank zugreifen zu können, stellt das DBS ein Sprachkonzept zur Verfügung. Bei relationalen DBS ist das meist die Datenbankabfragesprache SQL (Structured Query Language – strukturierte Abfragesprache). 68615196 G. Schneider 13.05.2016 16 Die Vorteile dieses Konzepts liegen auf der Hand: Daten müssen nicht redundant gespeichert werden, da allen Anwendungsprogrammen die erforderlichen Daten zur Verfügung gestellt werden können. Die Vermeidung von Redundanz erleichtert die Datenpflege, da Datenänderungen nur an einer Stelle vorgenommen werden müssen. Gleichzeitig dient die Redundanzfreiheit der Datenkonsistenz, da widersprüchliche Werte für gleiche Einzeldaten – z.B. unterschiedliche Adressen für den gleichen Mitarbeiter – nicht möglich sind. Zusätzlich kann das DBMS eine Kontrolle der Beziehungen zwischen verschiedenen Daten übernehmen. Beispielsweise dürfen die Stammdaten eines Mitarbeiters nicht gelöscht werden, wenn für ihn noch Provisionsdaten existieren (referentielle Integrität). Die Daten werden in der Datenbank völlig unabhängig von den Anwendungsprogrammen gespeichert. Änderungen in der physischen Organisation der Daten haben keinen Einfluss auf die Anwendungsprogramme (solange das DBMS weiterhin in der Lage ist, die angeforderten Daten dem Anwendungsprogramm zur Verfügung zu stellen). Ein Zugriff auf die Daten erfolgt immer unter der Kontrolle des DBMS. Es ist damit allein für das Problem unbefugter Zugriffe oder Veränderungen von Daten zuständig. 68615196 G. Schneider 13.05.2016 17 3. Beschreibung und Modellierung von Daten 3.1 Beschreibungsformen für Daten Objekte (Entity): Daten beschreiben oder beziehen sich auf reale oder abstrakte Phänomene bzw. Gegenstände. Objektmenge(Entitätsmenge): Zusammenfassung gleichartiger Objekte und Beschreibung dieser durch einen Objekttyp. Daten beziehen sich auf die Eigenschaften (Attribute) von Objekten, sind also Informationen über Objekte. An einem konkreten Objekt kann man bestimmte Ausprägungen oder Werte von Eigenschaften (Attributwerte) feststellen. 68615196 G. Schneider 13.05.2016 18 Zwischen Objekten können Beziehungen (Relationships) bestehen. 3.2 Betrachtungsebenen von Daten wichtig für die Datenmodellierung 1) Reale Welt 2) Verbale Beschreibung der realen Welt 3) Modell, anstatt verbaler Sprache 4) Formulierung der Informationen des Modells in einem konzeptionellen Datenmodell 5) Überführung des konzeptionellen Datenmodells in ein logisches auf der Basis eines Datenbanksystems 6) Speicherung von Daten aus dem logischen Datenmodell in einem physischen Datensystem 7) Nutzung von Hardware (Speichermedien) für die Speicherung der physischen Daten. 68615196 G. Schneider 13.05.2016 19 3.3 Konzeptionelle Betrachtung von Daten mittels Entity-RelationshipModell siehe Praktikum 3.4 Logische Betrachtung von Daten Ein logisches Datenmodell oder Datenbankmodell beschreibt die logische Struktur der Daten in einer Datenbank. Man unterscheidet hauptsächlich: Hierarchisches Datenmodell Netzwerkmodell Relationales Datenmodell Objektorientierter Ansatz Der Übergang von der Nutzung des Dateisystems zur Datenbank vollzog sich schrittweise. 50er Jahre: Speicherung der Dateien auf Magnetbändern 60er Jahre: Einsatz der schnelleren Magnetplatten, Vorzug des Direkt- und Mehrfachzugriffs 70er Jahre: Datenbanksysteme der 1. Generation verwenden das hierarchische Datenmodell, Weiterentwicklungen brachten das Netzwerkmodell hervor 80er Jahre: Einleitung der nächsten Datenbank-Generation mit dem relationalen Datenmodell seit 90er Jahren: neueste Datenbank-Generation mit dem objektorientierten Datenmodell als Grundlage 68615196 G. Schneider 13.05.2016 20 3.4.1 Hierarchisches Datenmodell Im Hierarchischen Datenmodell werden Datensätze durch Knoten dargestellt und über Kanten logisch in Form einer Baumstruktur miteinander verknüpft. Dabei sind nur 1:n - Beziehungen zugelassen. Jeder Datensatz kann nur einen übergeordneten Datensatz haben. Jeder untergeordnete Knoten ist von seinem übergeordneten Knoten abhängig. Die Struktur entspricht einer Vater – Sohn – Beziehung. Ein Vater kann mehrere Söhne haben, ein Sohn aber nur einen Vater. Liegen n:m – Beziehungen vor, dann ist für die Modellierung im hierarchischen Datenmodell die Verwendung von zwei Hierarchien notwendig. Der Einstieg für die Suche im Datenbestand erfolgt grundsätzlich über die Wurzel (oberster Knoten) des Hierarchibaums. Durch den Datenbestand wird satzweise navigiert. Anwendungsfall: Beispiel eines DBMS: IMS (Information Management System) von IBM, seit Ende der 60er Jahre für Großrechner auf dem Markt. Beispiel : „Kunde kauft Artikel“ 68615196 G. Schneider 13.05.2016 21 Übungsbeispiel: Kunde – Bestellung - Posten 68615196 G. Schneider 13.05.2016 22 3.4.2 Netzwerkmodell Von der CODASYL – Gruppe (Conference on Data-System-Languages) wurde Ende der 70er Jahre das Netzwerkmodell entwickelt. Das Netzwerkmodell stellt Datenstrukturen als Netzwerke, bestehend aus Knoten für Datensätze und Kanten für Beziehungen zwischen Datensätzen, dar. Dabei werden 1:n und n:m – Beziehungen zugelassen. Der Einstiegsknoten für die Suche im Datenbestand ist beliebig. siehe gleiches Beispiel wie Hierarchiemodell Anwendungsfall: Beispiel eines DBMS: UDS (Universelles Datenbanksystem) von Siemens, seit Mitte der 70er Jahre für Großrechner auf dem Markt Übungsbeispiel: (n:m) - Beziehungen 68615196 Mitarbeiter – Projekte Studenten - Vorlesung G. Schneider 13.05.2016 23 3.4.3 Relationales Datenbankmodell siehe Praktikum 3.4.3.2 Normalisierung Das ER-Modell bildet im Rahmen der Datenbankentwicklung den Ausgangspunkt für die Überführung des konzeptionellen Schemas in ein logisches Schema einer relationalen Datenbank. Im Regelfall sind die Daten aber noch nicht optimiert. Aufgrund der Normalisierung wird die Datenbank durch Veränderung der Tabellendefinitionen schrittweise optimiert. Ziele des Normalisierungsprozesses: Erzeugen einer flexiblen, stabilen und konsistenten Datenbank, bei der Veränderungen leicht durchzuführen sind. Vermeidung von Regelwidrigkeiten (Anomalien) beim Ändern (Änderungsanomalie), Löschen (Löschanomalie) und Einfügen (Einfügeanomalie) von Datensätzen Möglichst geringe Redundanz und somit geringer Speicherplatzbedarf Die Theorie der Normalisierung, die durch E.F. Codd begründet worden ist, besteht aus Regeln die sicher stellen dass deine Datenbank konsistent, zukunftssicher und redundanzarm ist. Diese Regeln werden auch als Normalformen bezeichnet von denen die ersten 3 die wichtigsten sind. Es gibt die Normalformen 1-3 (1NF-3NF), die aus Codds Originaldefinition von 1972 hervorgegangen sind. Boyce und Codd definierten 1974 eine Boyce-CoddNormalform (BCNF). R. Fagin fügte diesen 1977 eine vierte und 1979 eine fünfte hinzu. 68615196 G. Schneider 13.05.2016 24 weiter PowerPoint „Normalisierung“ Übung Lehrbuch Datenbanken Bsp Rechnung S. 22 Einfügeanomalie (Insertanomalie): Daten für den Artikel können nur dann aufgenommen werden, wenn es eine Rechnung gibt, in der dieser Artiklel berechnet wird. Produkte des Sortiments, für die es gegenwärtig keine Bestellungen gibt, können nicht erfasst werden. Löschanomalie (Deleteanomalie): Wird aus der Tabelle die (einzige) Rechnung eines Kunden gelöscht, gehen alle Kundendaten verloren. Bei einer neuen Bestellung müssen alle Kundeninformationen neu erfasst werden. 68615196 G. Schneider 13.05.2016 25 Änderungsanomalie (Updateanomalie): Ändert sich die Anschrift eines Kunden, für den bereits mehrere Rechnungen erfasst sind, müssen in allen betroffenen Zeilen die Werte korrigiert werden. Wird dies an einer Stelle vergessen, entsteht ein konsistenter Datenbestand (Der Kunde hat zwei verschiedene Adressen, von denen nur eine richtig ist). 1. Normalform: Eine Tabelle liegt in der 1NF vor, wenn alle Attributwerte atomar sind, d. h. die Felder lassen sich nicht weiter untergliedern, und es existieren keine Wiederholungsgruppen. Tabelle Rechnung unnormalisiert: Felder Kundenname und Kundenadresse sind nicht atomar. Aufsplitten von Kundenname in Vorname und Nachname Aufsplitten von Kundenadresse in PLZ, Ort, Strasse, Hausnummer Tabelle Rechnung 1NF 68615196 G. Schneider 13.05.2016 26 Wiederholungsgruppe für 3 unterschiedliche Artikel Zerlegung in mehrere Relationen Tabelle Positionen 1NF 2. Normalform Eine Tabelle liegt in der 2. Normalform vor, wenn sie der 1. Normalform genügt und jedes Nichtschlüsselattribut voll funktional abhängig ist vom Gesamtschlüssel, nicht aber von Teilen des Gesamtschlüssels. 68615196 G. Schneider 13.05.2016 27 Tabelle Rechnung 1NF: 1NF erfüllt aber Relation Positionen 1NF: Artikelbezeichnung, PreiProEinheit ist nur von Artikelnummer abhängig, nicht aber von Rechnungsnummer 2 Tabellen anlegen Positionen 2NF Artikel 2NF 68615196 G. Schneider 13.05.2016 28 3. Normalform Eine Tabelle liegt in der 3. Normalform vor, wenn sie Der 1. und 2. NF genügt und Keine funktionalen Abhängigkeiten zwischen Attributen existieren, die nicht als Schlüssel definiert sind. d. h. alle Attribute, die nicht zum Primärschlüssel gehören, müssen direkt von diesem abhängig sein. Es dürfen keine transitiven (indirekten) Abhängigkeiten bestehen. Tabelle Rechnung 2NF: Felder Name, Vorname, Strasse, Hausnummer, PLZ. Ort sind nicht vom Primärschlüssel Rechnungsnummer abhängig Felder der Tabelle auf neue Tabelle verteilen: Tabelle Kunden 3 NF Normalisierung im praktischen Einsatz Tabellen in der 3. Normalform enthalten nur noch geringe Redundanzen (zur Herstellung der Beziehungen zwischen den Tables müssen Schlüssel mehrfach gespeichert werden) und sind robuster gegenüber Anomalien problemlose Aufnahme von Artikeldaten ohne Rechnung Löschen von Rechnungen ohne Verlust von Kundendaten Kundenadresse einmal vorhanden, keine Anpassung bei Änderungen Das Zerlegen in mehrere Tabellen führt vor allem bei Datenbankabfragen zu längeren Antwortzeiten, da diese Tabellen immer wieder miteinander zu verknüpfen sind. Deshalb ist es aus Performancegründen manchmal sinnvoll, nicht alle Bedingungen der 1. bis 3. Normalform zu berücksichtigen und statt dessen die Überwachung der Integrität dem Benutzer (= Programmierer, der auf den Datenbestand zugreift) zu überlassen. 68615196 G. Schneider 13.05.2016 29 3.4.4 Objektorientierte Datenbanken Objektorientierte Datenbanken (OODB) sind Datenbanken der neuesten Generation. Das Ziel der Entwicklung der OODB war es, ein DBS zu schaffen, in welchem Objekte unserer Umwelt mit ihren Eigenschaften und ihrem Verhalten nachgebildet (analog der objektorientierten Programmiersprachen) und ohne großen Aufwand in einer Datenbank gespeichert und verwaltet werden können. Jedes Objekt der Datenbank enthält Dateninformationen (Attribute), Verweise auf andere Objekte und Operationen (Methoden), die das Verhalten des Objekts widerspiegeln. Die Definition der Objekte (Daten, Verweise, Methoden) erfolgt über sogenannte Klassen. Durch die freie Beschreibung von Objekt-Klassen lassen sich selbst komplexeste Datenstrukturen in einer Datenbank verwalten. Beispiel: Projektverwaltung Für die Projektverwaltung werden drei verschiedene Objekt – Klassen definiert: o Abteilung o Mitarbeiter o Projekte Bestandteile der Klassendefinition sind auch die Verweise auf andere Objekte sowie die verschiedenen Methoden (Operationen). So hat ein Objekt der Klasse Abteilung einen Verweis auf eine unbestimmte Menge von Objekten der Klasse Mitarbeiter. Jeder Mitarbeiter besitzt einen eindeutigen Verweis auf seine Abteilung und einen Verweis auf eine unbestimmte Anzahl von Projekten. Jedes Projekt hat einen Verweis auf eine unbestimmte Anzahl von Mitarbeitern. Die Methoden der Klasse Abteilung könnten beispielsweise sein: 68615196 neuerMitarbeiter() umbenennen() abteilungsberichtDrucken() G. Schneider 13.05.2016 30 Klasse Abteilung Klasse Mitarbeiter // Attribute Name Nr. // Attribute Name Wohnort Straße beschäftigt // Beziehungen beschäftigt Set <Mitarbeiter> arbeitet in // Methoden umbenennen() neuerMitarbeiter() abteilungsberichtDrucken() // Beziehungen arbeitet in Set <Abteilung> arbeitet in Set <Projekt> // Methoden abteilungswechsel() entlassen() arbeiten an bearbeitet von Klasse Projekt // Attribute Name Beschreibung Kosten // Beziehungen bearbeitet von Set <Mitarbeiter> // Methoden erzeugen() abschliessen() 68615196 G. Schneider 13.05.2016 31 3.5 Physische Betrachtung von Daten 3.5.1 Suchverfahren Suchverfahren beschreiben das prinzipielle Vorgehen beim Suchen von Datensätzen in einer Datei. a) Sukzessives / Sequentielles Suchen Man geht die Datensätze einer Datei in der abgespeicherten Reihenfolge durch, bis der gesuchte Datensatz gefunden ist. Maximale Anzahl der Suchschritte: n Der Suchaufwand hängt linear von der Anzahl der Datensätze in der Datei ab. b) Binäres Suchen Beim Binären Suchen wird das zu suchende Element in der Datei schrittweise eingegrenzt: Im 1. Schritt wird der mittlere Datensatz ausgewählt und dessen Schlüssel mit dem des gesuchten Datensatzes verglichen. Hat man den gesuchten Datensatz dann schon gefunden, ist das Verfahren beendet. 68615196 G. Schneider 13.05.2016 32 Andernfalls wird festgestellt, ob der gesuchte Datensatz in der unteren oder oberen Hälfte der sortierten Datensätze liegt. Für diese Teildatei wiederholt man den „Halbierungsvorgang“ bis der gesuchte Datensatz gefunden ist. Binäres Suchen verlangt wesentlich weniger Suchschritte. Binäres Suchen ist nur anwendbar auf Dateien, die nach dem Suchschlüssel geordnet sind. c) n – Wege – Suchen Das Suchverfahren eignet sich vor allem bei großen Datenbeständen. Der sortierte Inhalt einer Datei wird dazu in Blöcke eingeteilt, die in vielen Fällen eine konstante Länge haben. Das Suchen geschieht auf folgende Art: Der Schlüssel des zu suchenden Datensatzes wird zunächst mit dem Schlüssel des letzten Datensatzes im ersten Block verglichen. Ist der gesuchte Schlüssel kleiner als diese letzte Eintragung des ersten Blocks, dann liegt der zu suchende Datensatz in diesem ersten Block. Ist das nicht der Fall, vergleicht man den zu suchenden Schlüssel mit der letzten Eintragung des 2. Blocks usw. 68615196 G. Schneider 13.05.2016 33 Auf diese Weise findet man heraus, in welchem Block der gesuchte Datensatz liegt. Innerhalb der Blöcke wird mittels Suchverfahren a) oder b) gesucht. d) indirektes Suchen In einer gesonderten Datei – Indexdatei – werden die Schlüssel der Datensätze und deren Adressen gespeichert. In der Indexdatei wird nur der Schlüssel des zu suchenden Datensatzes gesucht. Über die beim Schlüssel gespeicherte Adresse gelangt man dann zu dem gesuchten Datensatz. Innerhalb der Indexdatei wird dann mit Verfahren a) – c) gesucht. Der Vorteil des Verfahrens ist, dass in diesen „kurzen“ Datensätzen wesentlich schneller gesucht werden kann. Sie kann außerdem schnell sortiert werden. Die Zugriffszeit wird wesentlich reduziert. 68615196 G. Schneider 13.05.2016 34 4. Aufbau und Organisation einer Datenbank Unterschiedliche Personengruppen, die mit einer Datenbank arbeiten, haben je nach Aufgabe unterschiedliche Sichten auf die Datenbank. Der Personalverwalter 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 dem physischen Datenbankentwurf ergibt sich die Datenbankarchitektur. 4.1 Datenbankarchitektur nach dem 3 – Schichten Modell Am 3-Ebenen-Modell nach ANSI-SPARC 1978 (American National Standards Institute / Standards Planning und Requirements Committee) , einer entsprechende „Standardarchitektur“ eines Datenbanksystems, werden die unterschiedlichen Sichtweisen auf einen Datenbestand dargestellt. Das Prinzip der physischen und logischen Datenunabhängigkeit wird hier deutlich. siehe LB „Datenbankentwicklung…“ S. 10 Schülerselbsttätigkeit: Erarbeiten der Inhalte der einzelnen Schichten Folie: 3-Schichten-Modell 68615196 G. Schneider 13.05.2016 35 3 –Schichten – Modell nach ANSI-SPARC 1978 Externe Ebene (benutzerdefinierte Sichten) Sicht 1 Sicht 2 Sicht n Transformationsregeln Konzeptionelle Ebene (logische Gesamtsicht) Konzeptionelles Schema Transformationsregeln Internes Schema Interne Ebene Physikalische Beschreibung (Datenorganisation im Speicher) 68615196 G. Schneider 13.05.2016 36 Interne Sicht: Die interne Sicht beschäftigt sich mit der physischen 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 als eine Tabelle zu sehen sind, müssen nicht zwangsläufig gemeinsam gespeichert werden. Logische Sicht: Hier wird die Gesamtheit aller Daten mit ihren Beziehungen dargestellt. In der logischen Sicht setzt das Datenbankdesign ein: welche Informationseinheiten werden wo verwaltet und welche Beziehungen bestehen zu anderen Informationen. Benutzer – Sicht: 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. 4.2 Vorteile der Abgrenzung von interner, logischer und Benutzer-Sicht 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 (z.B. 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. Auf der internen Ebene können unterschiedliche Tabellenformate (z.B. Access, dBase, MS SQL Server oder Oracle) verwendet werden. Der Benutzer muss nicht wissen, woher die Daten kommen. Die Datenstruktur der logischen Sicht ist speziell auf die Bedürfnisse und Berechtigungen der Benutzer ausgerichtet. Der Personalchef darf z.B. die Gehälter der Mitarbeiter sehen, während ein Angestellter der Personalverwaltung nur eine Sicht auf die Adressdaten der Angestellten hat. 68615196 G. Schneider 13.05.2016 37 4.3 Das Datenbankmanagementsystem Das Datenbankmanagementsystem (DBMS) beschäftigt sich mit allen drei Sichten einer Datenbank. Versucht beispielsweise ein Benutzer, Daten zu einem Kunden abzufragen, führt das DBMS beispielsweise folgende Operationen durch: (1) Das DBMS empfängt die Anfragen, in denen Daten einer bestimmten externen Sicht angefordert werden. (2) Es liest die Definition der angeforderten Sicht und überprüft die Syntax der Anfrage (3) Nun überprüft es, ob der Benutzer die rechte besitzt, auf die Daten zuzugreifen. (4) Mit Hilfe der Transformationsregeln, die zwischen der externen Sicht und dem konzeptionellen Schema gelten, werden die benötigten Datenobjekte ermittelt. (5) Über die Transformationsregeln, die zwischen dem konzeptionellen Schema und internem Schema angewandt werden, ermittelt das DBMS die physischen Datenobjekte und die Zugriffspfade. (6) Das DBMS beauftragt das Betriebssystem zum Lesen der ermittelten Speicherbereiche (7) Das Betriebssystem legt diese gelesenen Blöcke im Systempuffer des DBMS ab (8) Die gelesenen Daten werden über die Anwendung der Transformationsregeln in entgegengesetzte Richtung umgewandelt. Dabei wird die gewünschte Auswahl der Daten zusammengestellt. (9) Das DBMS stellt sicher, dass die übergebenen Daten für andere Benutzer so lange gesperrt sind, bis die Bearbeitung der Daten beendet wird. (10) Die gesuchten Daten (im externen Format) werden an das Anwendungsprogramm bzw. den Benutzer übergeben. 68615196 G. Schneider 13.05.2016 38 siehe Übersicht S. 15 SQL – Buch von Herdt Das DBMS ist demnach für mehrere Transformationen der Sichten verantwortlich. 68615196 G. Schneider 13.05.2016 39 Durch das DBMS wird dabei noch eine Reihe von weiteren Aufgaben ausgeführt: Integrität (in sich richtige und widerspruchsfreie Daten): Durch die Anwendung der im konzeptionellen Schema vorgegebenen Integritätsbedingungen kann die logische Richtigkeit der Daten (entsprechend der Zusammenhänge in der Praxis) gewährt werden. Beispiel: In der Bankanwendung wird von einem Konto A ein bestimmter Betrag abgebucht. Damit der Gesamtbetrag für alle Konten stimmt, muss dieser Betrag einem anderen Konto B gutgeschrieben werden. Die Änderung eines Kontos muss also mit der gleichzeitigen Änderung eines zweiten Kontos verbunden sein. Datensicherung (Recovery) Das DBMS ist in der Lage, nach einem Systemabsturz, einem Absturz der Anwendung oder anderen Fehlern, die Datenbank wieder in einen konsistenten Zustand zu überführen. Zu diesem Zweck verfügt das DBMS meist über ein internes Logbuch. Synchronisation Meist arbeiten mehrere Benutzer gleichzeitig mit einer Datenbank. Das DBMS hat dann die Aufgabe, parallel ablaufende Transaktionen (Folge von Lese- und Schreib-Operationen) der Benutzer zu synchronisieren, d.h. die Zugriffe so zu verwalten, dass die Integrität der Datenbank gewahrt bleibt. Diese Aufgabe wird vom integrierten Transaktions – Manager übernommen. Beispiel: So lange das Anwendungsprogramm des Personalbüros die Daten von Frau Maier bearbeitet, kann kein anderer Benutzer mit diesem Datensatz arbeiten. Erst wenn der Datensatz gespeichert wurde, können andere Benutzer wieder darauf zugreifen. 68615196 G. Schneider 13.05.2016 40 Datenschutz: Einige Daten, wie bsp.weise die Gehälter der Angestellten, dürfen nur für bestimmte Personenkreise zugänglich sein. Das DBMS bietet die Mittel dafür, dass der Datenbankadministrator entsprechende Zugriffsrechte für jeden Benutzer bzw. für Benutzergruppen festlegen kann. Weitere Komponenten des DBMS Meist besitzen Datenbanksysteme noch weitere Komponenten: Data Dictionary / Repositories Datenlexikon, dient der Speicherung von Informationen über die Daten der Datenbank und deren Verwaltung. Es werden darin z. B. das Datenbank-Schema, die Sichten und die Zugriffsrechte auf die Datenbank abgelegt. Der Anwender kann über das Dictionary Informationen über die Datenbank erhalten. Repositories werden in großen Datenbanken verwendet und sind umfangreicher als Data Dictionarys. Sie enthalten zusätzlich noch Informationen über die Benutzer und die Anwendungsprogramme. Logbuch: Datenbanksysteme verfügen über ein Logbuch, in welchem Informationen über die Transaktionsvorgänge verzeichnet sind, wie beispielsweise der Beginn und das Ende der Transaktion und der Zustand der Daten zu Beginn der Transaktion. Treten Systemfehler auf, werden die Informationen des Logbuchs zum Wiederherstellen der Datenbank verwendet. Größere Datenbanksysteme bieten meist noch zusätzliche Komponenten, die den Anwender bzw. den Anwendungsprogrammierer bei seiner Arbeit unterstützen: Kopie (leer!!!!) an Schüler! (SQL- Buch Herdt S. 16) 68615196 G. Schneider 13.05.2016 41 Entwurfswerkzeuge zum Unterstützen den Anwender beim Entwurf der Datenbankentwurf Datenbank, so dass er nicht auf die Anwendung der Datendefinitionssprache (DLL) angewiesen ist. Abfrage – Generatoren Ermöglichen dem Anwender das Erzeugen von Datenbankabfragen, auch ohne Kenntnisse der Datenbank-Abfragesprache (DQL /DML Report – Generatoren Erzeugen Berichte über Datenbankinhalte in den verschiedensten Formen (z.B. Tabellen mit Kopf- und Fußzeilen und Zwischensummen) Tools zur Erstellung von Ermöglichen die grafische Darstellung von Daten der Business-Grafiken Datenbank in Diagramm-Form CASE-Werkzeuge (Computer Aided Software Engineering – computergestützter Softwareentwurf) dienen dem Entwurf von Datenbank-Anwendungen, wobei der Quellcode der Anwendung automatisch generiert wird. Utilities zur Fehleranalyse Helfen dem Anwender, Fehler in der Datenbankstruktur aufzufinden und zu beseitigen Funktionen zur Komprimierung Sind notwendig, wenn häufig Daten gelöscht oder und Reorganisation der geändert werden, da nicht mehr benötigter Datenbank Speicherplatz nicht automatisch freigegeben wird. Bei der Asführung dieser Funktion wird die Datenbank reorganisiert und nicht benötigter Speicher freigegeben. Archivierungsfunktionen Werden für das Kopieren und Archivieren von Datenbeständen der Datenbank eingesetzt 68615196 G. Schneider 13.05.2016 42 Komponenten eines DBMS Entwurfswerkzeuge zum Datenbankentwurf Abfrage – Generatoren Report – Generatoren Tools zur Erstellung von Business-Grafiken CASE-Werkzeuge Utilities zur Fehleranalyse Funktionen zur Komprimierung und Reorganisation der Datenbank Archivierungsfunktionen 68615196 G. Schneider 13.05.2016 43 //*********************************************************************************// siehe auch SQL-Buch von Uwe 3.4 Physische Datenbankarchitektur Die physischen Konzepte der Architektur von DBS ergeben sich aus dem logischen Konzept der Datenbankentwicklung (3 - Schichten-Modell) in Verbindung mit der Rechnerumgebung. Dabei werden verschiedene physische Datenbankarchitekturen unterschieden: Zentralisierte DBS / verteilte DBS Client / Server – Konzept Parallele DBS Skripte austeilen und Kurzvortrag von Schülern erarbeiten! SQL (Herdt) – Buch S. 17 – 21 68615196 G. Schneider 13.05.2016 44 3 Entwurf von Datenbanken siehe PowerPoint / ODBC Übersichtsdarstellung Wird bei der Konzeption von Anwendungsprogrammen festgestellt, dass für die Verwaltung der Daten eine Datenbank benötigt wird, beginnt der Planungsprozess der Datenbank, der so genannte Datenbankentwurf. Dabei handelt es sich um einen Prozess, bei dem genau festgestellt wird, welche Daten von der Anwendung benötigt werden und ob andere Anwendungen ebenfalls mit diesem und eventuell anderen Daten aus dem Bereich arbeiten sollen. Dabei werden folgende Aspekte betrachtet: Welche logische Struktur soll die Datenbank haben, d. h. welche Sichten werden auf die Datenbank benötigt und wie können diese in einem gemeinsamen Schema zusammengefasst werden? Wie soll die physische Struktur der Datenbank aussehen, d. h. in welcher Form werden die Daten gespeichert und wie soll darauf zugegriffen werden? Welche zusätzlichen Bedingungen müssen eingehalten werden, d. h. gibt es von Seiten der Anwendungen Bedingungen und Einschränkungen? Der Entwurf erfolgt nach dem 3 – Ebenen – Modell. Es müssen also die Schemen für 68615196 die externe, die konzeptionelle und die interne Ebene aufgestellt werden. G. Schneider 13.05.2016 45 Für den Entwurfsprozess kommen spezielle Techniken zum Einsatz. Die grafische Darstellung der aufgestellten Modelle erfolgt mit dem ERM, welches sich für den Datenbankentwurf durchgesetzt hat. 4.1 Der Datenbank-Lebenszyklus Bei der Entwicklung und dem Einsatz von Software werden die verschiedenen Phasen, wie z.B. Analyse, Planung, Entwicklung, Testen und Anwendung von Software unterschieden und unter dem Begriff des Software – Lebenszyklus zusammengefasst. Diese Einteilung in Entwicklungsphasen kann auch auf dem Gebiet der Datenbanken angewendet 68615196 G. Schneider 13.05.2016 46 werden. Der Datenbanklebenszyklus Anforderungsanalyse Konzeptioneller Entwurf Logischer Entwurf Entwurf der Verteilung im Netz Physischer Entwurf / Implementierung Test und Validation Anwendung und Wartung Erster Teil des Datenbank – Lebenszyklus: 4.1.1 Der Datenbankentwurf Der Entwurf der Datenbank hat einen großen Anteil an der Qualität der Datenbank. Der konzeptionelle Entwurf ist mit besonderer Sorgfalt zu erstellen. Darin werden die Sichten definiert und im konzeptionellen Schema zusammengeführt. 68615196 G. Schneider 13.05.2016 47 Bei der Modellierung des Ausschnitts aus der realen Welt (des konzeptionellen Schemas) ist besonders auf Vollständigkeit Korrektheit Lesbarkeit Minimalität Modifizierbarkeit zu achten. Der Entwurf der Datenbank beginnt bei der Analyse der Anforderungen und ist mit dem physikalischen Entwurf der Datenbank abgeschlossen. a) Anforderungsanalyse: Zusammentragen der Anforderungen aller Benutzer der zukünftigen Datenbank Klassifizieren der Anforderungen nach bestimmten Kriterien, z. B. nach Abteilungen, Benutzergruppen, Anwendungen Festlegen welche Daten gespeichert werden sollen und wie sie zu bearbeiten sind Resultat ist der Datenbankansatz b) Konzeptioneller Entwurf: Umfasst die Modellierung der Sichten und die Integration der Sichten in ein Gesamtschema Dafür werden meist ERD erstellt. Auf diesem Gebiet werden jüngst aber auch UML–Diagramme eingesetzt (UML – unified modeling language). Man kann verschieden vorgehen: o Top – Down – Methode: erst die Sichten entwerfen und dann zu einem konzeptionellen Schema zusammenfügen 68615196 G. Schneider 13.05.2016 48 o Bottom – Up – Methode: erst konzeptionelles Schema und dann Sichten definieren. Abbilden der Datenobjekte und deren Eigenschaften und Beziehungen zwischen den Datenobjekten (Entities) in ERD bzw. UML - Diagrammen Festlegen des zukünftigen DBS c) Logischer Entwurf: Transformieren der grafischen Darstellungen in das Datenmodell des Ziel – DBS (z. B. in das relationale Datenbankmodell bei Access). Aufbereiten der Datenbank, so dass eine effektive Speicherung möglich ist (Normalisierung) d) Entwurf der Verteilung im Netz Bei verteilten Datenbanken notwendig e) Physischer Entwurf / Implementierung Definition des internen Schemas Festlegen geeigneter Speicherstrukturen und Zugriffsmechanismen Erstellen der Datenbank mit Hilfe der Sprachmittel des DBMS (bei relationalen DBS in SQL) und Formulieren der Anfragen. 4.1.2 Zweiter Teil des Datenbank – Lebenszyklus f) Test und Validation Testen der Datenbank und der erstellten Abfragen Prüfen (validieren) der Testergebnisse auf Gültigkeit bezüglich der Anforderungen Ziel: Datenbank-Qualität gewährleisten g) Anwendung und Wartung 68615196 G. Schneider 13.05.2016 49 In der Phase der Anwendung muss die Datenbank ständig gewartet werden. Reorganisation der Datenbank, wenn sich Änderungen am Datenbankschema ergeben oder neue Benutzer angemeldet werden. 68615196 G. Schneider 13.05.2016