D a t e n b a n k e n Eine Datenbank ist eine Sammlung von personen- oder sachbezogenen Daten, die unter einem Aspekt inhaltlich verbunden sind. Beispiele die Buchungen in einem Reisebüro, die Finanzbewegungen einer Bank, die Routenplanung einer Reederei, Patientendaten in einer Arztpraxis, Schülerdaten einer Schule (persönliche Daten, Kurswahlen, Noten, Fehlzeiten,.)
D a t e n b a n k s y s t e m e Ein Datenbanksystem ist eine systematisch strukturierte Sammlung von personen- oder sachbezogenen Daten (Datenbasis = Datenbank) einschließlich der Software, die zur Eingabe, Verwaltung und Ausgabe notwendig ist (DBMS DatenBankManagmentSystem). Datenbanksystem S.120
Datenbankemagementsystem - Aufgaben zentrale Speicherung und einheitliche Verwaltung von Daten eines Problembereiches Dienstleistungen des Datenzugriffs (Eingabe, Löschen, Ändern, Anzeigen, Sortieren, Filtern, ) Mechanismen der Datensicherheit (Kontrolle der Legalität des Zugriffs auf die Datenbasis, Maßnahmen der Datensicherheit)
Ebenen eines Datenbanksystems ANWENDER auf externer Ebene befindet sich der Anwender, der auf das Datenbanksystem mit einer Daten-Abfragesprache, einer Daten-Manipulationssprache oder einen eigenen Anwendung (Access, Word, Excel,...) zugreift
Ebenen eines Datenbanksystems ENTWICKLER beschreibt das Datenmodell, d.h. die datenmäßige Abbildung eines bestimmten Ausschnittes der Realität legt die Strukturen der Daten und ihre Beziehung zueinander fest nach der Art, wie die Beziehungen geregelt werden unterscheidet man hierarchische, vernetzte, objektorientierte, objektrelationale und relationale Datenmodelle stellt ggf. eine Benutzerschnittstelle zur Verfügung, die es dem Anwender ermöglicht, seine Aufgaben mit dem Datenbanksystem zu lösen.
Beispiele für Arten von Datenbanken Beispiel 1 hierarchische Datenbank: Datensätze in einer Baumstruktur Nachteil: "reale Welt" häufig nicht in Hierarchie darstellbar Firma Abteilung1 Abteilung2 Projekt1 Projekt2 Projekt3 Mitarbeiter 1 Mitarbeiter2 Mitarbeiter3 Mitarbeiter4 Mitarbeiter5
Arten von Datenbanken Beispiel 2 Netzwerk- Datenbanken: Datensätze in einer Graphenstruktur organisiert Firma Abteilung1 Abteilung2 Projekt1 Projekt2 Projekt3 Mitarbeiter 1 Mitarbeiter2 Mitarbeiter3 Mitarbeiter4 Mitarbeiter5
Arten von Datenbanken Beispiel 3 relationale Datenbank: Daten sind in zweidimensionalen Tabellen angeordnet, die in Beziehungen zueinander stehen. Ein jeder Attributwert einer relationalen Datenbank muss durch eine Kombination von Tabellenname, Primärschlüssel und Attributname auffindbar sein.
Relationale Datenbanken - Begriffe Datei (file) = Tabelle = Entitätenmenge = Relation Datensatz (record) = Zeile = Entität = n-tupel Datenfeld (array) = Spalte = Attribut = Attribut Aufgaben: 1. Informiere dich mit Hilfe des Lehrbuches über o.g. Begriffe. 2. Was versteht man unter Schlüsselfeldern, insbesondere Primärschlüsseln? 3. Von welchem Datentyp können Attribute einer Datenbank sein? (Warum unterscheidet man Datentypen?)
Objekte von Datenbankensystemen Objekte der Datenbasis Objekte des DBMS Datei: fasst alle personen- oder sachbezogenen Daten zusammen, Sammlung von Datensätzen Datensatz: enthält alle Daten, die zu einer Person oder Sache erfasst sind (Zeile, Tupel, Entität) Datenfeld (Feldbezeichner, Feldinhalt, Felddatentyp): Bestandteil eines Datensatzes, Eigenschaften (Attribute) der gespeicherten Personen oder Sachen Tabelle(n): bildet die Datensatzstruktur (je Datenfeld eine Spalte, je Datensatz eine Zeile) Formular: Eingabe, Anzeige, Berechnen von Daten (oft eines Datensatzes) Abfrage: Suche, Filtern, Ändern, Berechnen von Daten, können Datenquelle für Formulare und Berichte sein Bericht: übersichtliche und repräsentative Darstellung von Daten (hardcopie) Makros: Automatisierung mehrere aufeinanderfolgender Arbeitsschritte Module fassen selbst erstellte VBA-Programmsequenzen zusammen
Datenbanken entwickeln Die Entwicklung einer Datenbank erfolgt in mehreren Schritten. Datenmodellierung Was will man machen? Beschreibe die für die Aufgabenstellung relevante Objekte der realen Welt mit ihren Beziehungen. (z.b. Entity-Relationship-Modell) logisches Datenbankmodell schaffen Wie will man es machen? (auf zu verwendendes DBMS orientiert z.b. Access, MySQL-Administrationstool, ) Datenbeschreibung im zur Anwendung kommenden Datenbanksystem Ausführung des Was und Wie
Datenbanken entwickeln Vor der eigentlichen programmtechnischen Umsetzung einer Datenbank ist eine umfangreiche Vorarbeit zu leisten. Folgende Tätigkeiten sind notwendig: die Analyse des zu modellierenden Ausschnittes der Realität; die Definition der Anforderungen an die Informationsbeschaffung und ausgabe (Wer möchte welche Informationen zu welchem Zweck, wie angezeigt bekommen? Was soll das Datenbanksystem für den Anwender leisten?); die Festlegung der Struktur der Datenbank (-basis) mit allen logischen Verknüpfungen und Relationen (Datenmodellierung); die Festlegung der Nutzerverwaltung und Anforderungen an die Datensicherheit; die Auswahl des DBMS (hier MySQL-Admistrationstool) Implementation- der Entwurf des Programmcodes (z.b. mit HTML und PHP und MySQL)
Datenbanken entwickeln Aufgaben: Gib zu folgenden Anwendungsbereichen an, welche Aufgaben der Anwender mit der Datenbank erfüllen will/ soll. welche Informationen ein Anwender von einer Datenbank erwarten, bzw. in einer Datenbank speichern würde. (Attribute einer Relation) welche Datentypen die Attribute haben sollen (S.122) 1. Leihbibliothek 2. Warenlager 3. Musik- CD- Sammlung Notiere z.b. als n-tupel RELATIONSNAME (Attribut1, Attribut2,..., Attribut n)
Datenbanken entwickeln Datenmodellierung, Begriffe Ein Grundprinzip bei der Entwicklung von Informatiksystemen (i.a. Software, hier insbesondere Datenbanksysteme) ist der effiziente Umgang mit den Ressourcen. Effizienz bedeutet mit möglichst minimalem Einsatz von Ressourcen eine optimale Problemlösung zu erreichen. Wesentliche RESSOURCEN bei der Entwicklung von Software sind der verwendete SPEICHERPLATZ (im RAM, Speicher auf externen Datenträgern) und die ZEIT, die vom Rechner für die Datenverarbeitung benötigt wird. Die Datenbasis eines Datenbanksystems umfasst in der Regel eine Vielzahl von Datensätzen (je gespeichertes Individuum Person oder Sache- einen Datensatz) in den Tabellen. Das erfordert mitunter eine gewisse Zugriffszeit auf einzelne Informationen (Daten). Die Zugriffszeit auf gespeicherte Daten sollte möglichst minimiert sein.
Datenbanken entwickeln - Datenmodellierung Beachtenswerte Grundsätze bei der Datenmodellierung: Zwang zu systematischem Entwurf Vermeidung von Redundanz gewährleiste Eindeutigkeit der Daten Vermeidung von Anomalien speichere keine Prozessdaten
Datenbanken entwickeln Datenmodellierung, Begriffe Redundanz: ein Datenbestand heißt redundant, wenn ein Teil der Daten weggelassen werden kann, ohne dass Informationsverlust entsteht mehrfaches Vorhandensein einzelner Daten Gründe für die Vermeidung von Redundanz: effizienter Umgang mit der Ressource Speicherplatz Änderungen von redundanten Daten sind schwieriger zu bewältigen, sind anfälliger für Fehler Inkonsistenz der Datenbank ist möglich Beispiel: PERSON (Name; Vorname/Name; GebDat;...) Name kommt in zwei verschiedenen Attributen vor. Eine Änderung des Namen muss an beiden Stellen erfolgen.
Datenbanken entwickeln Datenmodellierung, Begriffe Eindeutigkeit: jeder Datensatz muss eindeutig identifizierbar sein ein datenbankinternes Identifikatzionsmerkmal(ein Attribut) ist ratsam, das vom DBMS automatisch vergeben wird Vorteil: die Überwachung der Eindeutigkeit obliegt nicht dem Benutzer. ein Attribut zur eindeutigen Identifikation eines Datensatzes in einer Tabelle nennt man PRIMÄRSCHLÜSSEL Bsp: PERSON (PersID, Name, Vorname,...) PersID ist Primärschlüssel der Tabelle PERSON
Datenbanken entwickeln Datenmodellierung, Begriffe Prozessdaten: sind Daten, die durch einen Rechenprozess aus gespeicherten Attributen gewonnen werden Speicherung solcher Daten verbraucht unnötig Speicherplatz, denn sie lassen sich berechnen Bsp: PERSON (PersID, Name, Vorname, GebDat, Alter,...) Attribut Alter lässt sich aus aktuellem datum und GebDat berechnen (aktdat GebDat). Spätestens nach einem Jahr muss das Alter jeder gespeicherten Person neu berechnet werden. unnötig verbrauchte(r) Speicherplatz und Zeit
Entity- Relationship- Modell ER-Modell unterstützt die Datenmodellierung unabhängig von der Datenbankart Entity (=Entität) ist ein eindeutig identifizierbares Datenobjekt (Datensatz), das durch entsprechende Attribute beschrieben ist Relation nennt man eine Beziehung zwischen Entitäten (Datensätzen) Darstellung in Diagrammform, verwendet Rechtecke für Entitättypen, Ovale für Attribute und Rauten für Beziehungen LESER entleiht BUCH LeserNr... BuchID... Name Vorname ISBN-Nr Titel BUCH (BuchID, ISBN-Nr, Titel, Autor, Verlag, Standort, Zustand) LESER (LeserNr, Name, Vorname, StrNr, PLZ-Ort, GebDat)
ER- Modell -- Beziehungen Beziehungen dienen dazu, Datensätze aus mehreren Tabellen miteinander zu verbinden. Man unterscheidet im Wesentlichen die 1:1-Beziehung, 1:n-Beziehung und die m:n- Beziehung (weiterhin gibt es eine IS-A-Beziehung und eine rekursive Beziehung). 1:1 Beziehung: Tabelle1 1:n Beziehung: Tabelle1 1 1 1 n Tabelle2 Tabelle2 Jedem Datensatz in Tabelle1 ist nur ein passender Datensatz in Tabelle2 zugeordnet und umgekehrt. Jedem Datensatz aus Tabelle1 können mehrere Datensätze aus Tabelle2 zugeordnet sein. Einem Datensatz aus Tabelle2 ist nie mehr als ein datensatz in Tabelle 1 zugeordnet. m:n Beziehung: Tabelle1 m n Tabelle2 Jedem Datensatz in Tabelle1 können mehrere Datensätze in Tabelle2 zugeordnet und umgekehrt.
ER- Modell Beziehungen -- Beispiel Welche Beziehung besteht zwischen den Tabellen LESER und BUCH? Aus der Sicht eines Lesers: Ein Leser kann mehrere Bücher ausleihen. Aus der Sicht eines Buches:Ein Buch kann zu verschiedenen Zeiten von verschiedenen Lesern ausgeliehen worden sein. m:n Beziehung LESER m entleiht n BUCH LeserNr... BuchID... Name Vorname ISBN-Nr Titel
ER- Modell Beziehungen -- Beispiele SCHULEN 1 1 SCHULLEITER Zuordnung der Primärschlüssel beider Tabellen KLASSEN 1 n SCHÜLER KURSE m n SCHÜLER
ER- Modell Beziehungen -- Realisierung Beziehungen werden über Schlüsselfelder hergestellt, wobei der Primärschlüssel der einen Relation als Fremdschlüssel in die andere aufgenommen (bei 1:1 und 1:n-Beziehungen) wird. 1 1 SCHULEN SCHULLEITER SCHULEN (SchulNr, SLNr, SBezeichnung, SArt,...) SCHULLEITER (SLNr, Name, Vorname,...) SchulNr ist Primärschlüssel in Tabelle SCHULEN, SLNr ist Primärschlüssel in Tabelle SCHULLEITER. SLNr ist Fremdschlüssel in der Tabelle SCHULEN. KLASSEN 1 n SCHÜLER KLASSEN (KNr, SNr, KBezeichnung,...) SCHÜLER (SNr, KNr Name, Vorname,...)
ER- Modell Beziehungen -- Realisierung Bei einer m:n-beziehung wird Beziehungsrelation gebildet, in der die Schlüsselfelder der Ausgangsrelationen Fremdschlüssel in dieser neuen Relation (Tabelle) sind. Diese Beziehungsrelation erhält entweder ein eigenes Primärschlüsselfeld oder aber die beiden Fremdschlüssel bilden gemeinsam den "Zusammengesetzten Schlüssel". KURSE 1 m KURSLISTEN n 1 SCHÜLER KURSE (KursNr, KArt,...) SCHÜLER (SNr, Name, Vorname,...) KURSLISTEN (KLNr, KursNr, SNr) KursNr und SNr sind Fremdschlüssel in der Tabelle KURSLISTEN. KLNr ist Primärschlüssel in der Tabelle KURSLISTEN.
ER- Modell Beziehungen -- Realisierung AusleihID LeserNr BuchID LESER 1 n n 1 AUSLEIHE BUCH LeserNr Name... Vorname EDatum RDatum BuchID ISBN-Nr Titel... BUCH (BuchID, ISBN-Nr, Titel, Autor, Verlag, Standort, Zustand) LESER (LeserNr, Name, Vorname, StrNr, PLZ-Ort, GebDat) AUSLEIHE (AusleihID, LeserNr, BuchID, EDatum, RDatum)
Datenbanken entwickeln Datenmodellierung, Begriffe Inkonsistenz: Widersprüchlichkeit zwischen Daten liegt vor bei: gleichen Daten in verschiedener Schreibweise (Bsp. r.k und röm.kat. für römisch katholisch) Verknüpfungen zwischen Tabellen sind nicht mehr eindeutig, weil der Verbindungsschlüssel auf keinen oder mehrere Datensätze in einer anderen Tabelle verweist
Datenbanken entwickeln Datenmodellierung, Begriffe Anomalien: führen zu Inkonsistenzen in Datenbanken, d.h. abgerissene Verbindungen, bzw. nicht eindeutige Verbindungen zwischen Tabellen über Schlüsselwerte. 1. Löschanomalie: wird aus einer Tabelle ein Datensetz entfernt, so gehen mehr Informationen verloren, als gewollt Bsp.LEIHBIBLIOTHEK: Informationen über Bücher und Leser in einer Tabelle Löschen eines Lesers kann zum Verlust von Buchinformationen führen. WARENLAGER: WARENLAGER (IDNr, EANNr, Bezeichnung, Hersteller, Kaufpreis, Verkaufspreis, MwStSatz, Kategorie, Lieferant, LieferantenNr, VerpackungsEinheit, BestellDatum, BestandAnzahl, Standort, Bemerkungen) - Löschen eines Lieferanten führt zum Verlust von Wareninformationen
Datenbanken entwickeln Datenmodellierung, Anomalien 2. Änderungsanomalie: tritt bei redundanten Daten in einer Tabelle auf deren Änderung muss dann an allen Stellen erfolgen 3. Einfügeanomalie: ein neuer Datensatz kann nur dann eingefügt werden, wenn alle Informationen vorliegen. Sind Nullwerte erlaubt, so kann es Probleme geben, falls die fehlende Information zu einem Schlüssel gehört. kann auftreten, wenn bei der Neueingabe von Daten in eine Datenbank Daten fälschlich hinzugefügt werden. Kennzeichen Fahrer_Vorname Fahrer_Nachname B-MD 321 Max Maier K-KJ 321 Peter Schmidt H-CH 333 Fritz Schneider B-MD 321 Max Maier
Datenbanken entwickeln Einen Ansatz bei der Datenmodellierung bietet eine Sammlung aller Attribute der für die Aufgabenstellung relevanten Objekte. Diese könnten in einer einzigen Relation (Tabelle) gespeichert werden. Gefahren: - Attribute enthalten Listen von Attributwerten Abfragen nach Attributwerten erfordern komplexe Analyseoperationen; Informationsverlust durch Löschanomalie - Mehrfachspeicherung von Daten (Redundanz)... Lösung ist eine Normalisierung der Relation: Aufgliederung einer Relationen mit einer großen Anzahl von Datenfeldern in mehrere Relationen mit kleinerer Anzahl von Datenfeldern. schrittweise Anwendung eines Regelwerkes auf unstrukturierte Relationen führt zu komplexeren Datenbankstrukturen, die jeweils hinsichtlich der gewünschten Funktionalität zu hinterfragen sind.
Datenbanken entwickeln - Normalformen 1.Normalform Jedes Feld besitzt einen eindeutigen Namen. Jedes Datenelement ist atomar und nicht weiter zerlegbar. Jede Tabelle besitzt einen Primärschlüssel. Beziehungen zwischen Entitäten werden ausschließlich über Schlüsselfelder hergestellt. "Eine Tabelle liegt in der ersten Normalform vor, wenn jeder Attributwert eine atomare, nicht weiter zerlegbare Dateneinheit ist."
2.Normalform: Datenbanken entwickeln - Normalformen Eine Entität befindet sich in der 2.Normalform, wenn sie sich in der 1.Normalform befindet und alle Nichtschlüsselattribute von allen Attributen des Primärschlüssels abhängen. 3.Normalform Eine Entität befindet sich in der 3.Normalform, wenn sie sich in der 2.Normalform befindet und die Nicht-Schlüssel-Attribute funktional unabhängig voneinander sind. ("Eine Tabelle liegt in der dritten Normalform (3NF) vor, wenn sie sich in der 2NF befindet und jedes Nichtschlüsselattribut nicht transitiv abhängig vom Primärschlüssel ist.")