Grundlagen Datenbanken Datenbankentwicklung und Anpassung Einführung - Daten sind wichtiger Aktivposten eines Unternehmens. Datenbanksysteme ermöglichen die anwendungsübergreifende Nutzung von Daten. Stichwort: 'data sharing'. Ein Datenbanksystem isoliert Anwenderprogramme von Hardware und Betriebssystem (und deren Änderungen). Datenbank Einheitlich beschriebene Darstellung eines Weltausschnittes mittels diskreter Daten auf externen und persistenten Speichermedien (typischerweise Magnetplatten). Eine Datenbank ist eine Sammlung von nicht-redundanten Daten, die von mehreren Applikationen benutzt werden. Probleme bei der konventionellen Datenverwaltung: Datei 1 Redundanz: dieselben Daten werden mehrfach gespeichert Inflexibilität: wenn Programm1 verändert wird, muß auch Programm 2 angepaßt werden Inkonsistenz: keine einheitliche Datenspeicherung, jedes Programm organisiert seine eigene Speicherung Daten-Programm-Abhängigkeit: Datenveränderungen machen Veränderungen an den Programmen notwendig und umgekehrt Programm 1 Programm 2 Datei 2 Programm 3 Datei 3 Seite 1 Grundlagen Datenbanken Datenbank-Management-System (DBMS) Durch den Einsatz moderner Datenverarbeitungssysteme (DBMS) werden diese Probleme minimiert! Datei 1 Programm 1 DBMS Datei 2 (Datenbankmanagementsystem) Programm 2 Programm 3 Datei 3 Unter einem Datenbank-Management-System wird ein Softwarepaket verstanden, welches in der Lage ist, (Anwender-) Daten in einem Computersystem zu verwalten. Softwaresystem, das die einheitliche Beschreibung und sichere Bearbeitung einer Datenbank ermöglicht. Merkmale eines DBMS: Daten sind eigenständig (unabhängig von Programmen) Daten werden einmal definiert und für alle User (Programme) zentral verwaltet die Kontrolle der Daten liegt allein beim DBMS das DBMS ist die Software, die die Beziehung zwischen User und Datenbank (im Sinne von Sammlung der Dateien) organisiert Vorteile des Einsatzes von DBMS: Verringerung der Redundanz Datenbankreparatur bei Fehlern möglich vereinfachte Anwendungsprogrammierung (Programmierer muß nicht die spezielle Organisation der Daten kennen) Konsistenzprobleme (Einheitlichkeit) entfallen, da kaum Redundanz auftritt Abhängigkeiten zwischen Daten und Programmen werden verringert Datenauswertung ist flexibler DBMS kann Korrektheit der Daten sichern Seite 2 Grundlagen Datenbanken Je nach Aufgabe des Anwenders entstehen unterschiedliche Blickwinkel (Sichten) auf die Datenbank: Benutzer-Sicht Lagerbestand (Formular 1) Umsätze (Formular 2) Logische-Sicht Lagerbestand (Abfrage 1) Umsatz pro Kunde (Abfrage 2) Interne Sicht Artikeltabelle (Access-DB) Kundentabelle (Oracle-DB) Rechnungen (Access-DB) Vorteile der Abgrenzung verschiedener Sichten bei DBMS: Benutzer müssen nichts von der physikalischen Anordnung wissen, ihre Änderungen werden automatisch umgesetzt die Datenstruktur der logischen Sicht kann auf den Benutzer zugeschnitten werden auf interner Ebene können unterschiedliche Datenbanksysteme (Access, Oracle, DBASE...) verwendet werden, der Benutzer sieht nur die von ihm benötigten Daten Sichten: Jede Anwendung erhält eine eigene Sicht des gemeinsamen Datenbestandes. DBMS garantiert: - Korrektheit der Daten (Einhaltung der definierten Konsistenzregeln). Korrektheit im Mehrbenutzerbetrieb (concurrency control). Datensicherheit, d.h. Korrektheit bei fehlerhaftem Ablauf einzelner Anwendungen und Systemabsturz. DBMS bietet feinkörnige Zugriffskontrolle. Die Daten in der Datenbank können nur über das Datenbank-Management-System (DBMS) eingefügt, gelesen, geändert oder gelöscht werden. Seite 3 Grundlagen Datenbanken Datenbank-System Ein Datenbanksystem besteht aus einem einheitlich definierten Datenbestand, der vom DBMS (Datenbankmanagementsystem) verwaltet wird. Zugriff ist nur über das DBMS und nach dessen Korrektheitskriterien für Inhaltskontrolle, Datensicherheit und Parallelität möglich. DBS = DB + DBMS DatenModell Struktur, Operationen und Konsistenzregeln werden durch ein Datenmodell definiert. Konsistenz = korrekter Ablauf einer Transaktion Transaktion = minimale Datenbank-Prozesseinheiten Eigenschaften eines Datenbanksystems Datenunabhängigkeit Datenunabhängigkeit (nach Date): "Data independence is the immunity of applications to change in storage and access strategy." (Daten Unabhängigkeit ist die Immunität von Anwendungen, um in Lagerung und ZugangStrategie-< zu verändern) Physische Datenunabhängigkeit: Änderungen an den Speicherstrukturen und Zugriffspfaden sind für Anwenderprogramme und ad-hoc Queries (zu diesen Zweck Anfragen) unsichtbar. Logische Datenunabhängigkeit: Änderungen an der logischen Sicht sind für AP und Queries (Anfragen) unsichtbar. Datenbankmodelle bzw. Typen von DBMS Hierarchisches Datenbankmodell die Datenstruktur ist in Baumform strukturiert die Daten unterliegen der sequentiellen Datenorganisation IMS von IBM ist ein Datenbanksystem, das auf dem hierarchischem Datenmodell aufbaut Beispiel: Abteilung 1:n Mitarbeiter 1:n Tätigkeit 1:n 1:1 Ausbildung Seite 4 Gehalt Grundlagen Datenbanken Netzwerkdatenbankmodell (Anfang der 80er Jahre) ist komplexer als das hierarchische Datenbanksystem es können neben 1 : n und 1 : 1 auch n : m Zuordnungen realisiert werden durch Vernetzung von Daten kann man auch komplexe Datenstrukturen abbilden Nachteil: starre, komplexe und verwirrende Gesamtstruktur Beispielsysteme: UDS, IDMS Beispiel: n:m Abteilung Tätigkeit 1:n 1:m Mitarbeiter (n : m Beziehung) Abteilung 1 Abteilung 2 Tätigkeit x Tätigkeit y Mitarbeiter a Mitarbeiter b Mitarbeiter c Mitarbeiter d (Netzwerkstruktur) Relationales Datenbankmodell (wichtigstes Datenbankmodell in der heutigen Zeit) Beispielsysteme: Oracle, Access, Informix, DBASE, Paradox, Xbase, DB/2 In relationalen Datenbanken werden Daten in gleichartig aufgebauten Datensätzen , die in Tabellen organisiert sind gespeichert. Zwischen den Tabellen können Beziehungen (Relationen bestehen) Aktenschrank-Prinzip: Seite 5 Grundlagen Datenbanken Häufig verwendete, gleichwertige Begriffe: Tabelle, Datensatz, Feld, Relation, Datei, File Tupel, Zeile, Record Spalte, Attribut Beispiel 1: relationale Datenbank Name Bleßmann Dax ............ Vorname Anschrift Jörg Altestr. 46 Erwin Schulstr. 37 PLZ 53173 51147 Ort Bonn Köln Telefon 0228/777200 0221/753159 Fax 0228/777201 0221/753456 Begriffsbestimmung: Entitätsmenge Mitarbeiter Kunden Produkte Entitäten Herr Müller, Frau Groß,.... Herr Klein, Meier & Co Mosch-Bohrmaschinen, Asram.Leuchten,... Zusammenfassung gleichartiger Objekte Attribute, Merkmale Personal-Nr, Name, Vorname, GebDatum,... Kunden-Nr, Name/Firma, Vorname, Anschrift Artikel-Nr., Hersteller, Bezeichnung,... Konkrete Objekte, die Gegenstand der Daten einer Tabelle sind Seite 6 1002344, Mosch, el. Bohrmaschine, 400 W,... Spaltenüberschriften Darstellung von Datenbanken mit Hilfsprogrammen ist gut möglich: Beispiel 2: relationale Datenbank Attributwerte 1047, Müller, Joseph, 14.05.1955 7145, Meier & Co, Holzweg 5,.... Grundlagen Datenbanken MA-Nr Name () Vorname PLZ Wohnort Anschrift Geb-Datum Telefon 1007 1574 1984 3045 2556 4711 Hans Heinz Karl Carola Laura Ferdi 53171 50644 57126 40212 57153 51107 Bonn Köln Siegen Düsseldorf Wilnsdorf Köln Friesdorf 2 Kartäuserhof 1 Am Kampen 3 Königsallee 1 Heipel 17 Eiler Str. 1 11.11.1940 12.05.1956 21.04.1949 15.06.1960 15.08.1975 06.12.1948 Riek Reissdorf Flick Quandt Flick Mühlens 0228/353796 0221/456411 0211/112233 0271/82345 02739/8866 0221/860001 Folgende Eigenschaften müssen bei der relationalen DB erfüllt sein: Tabelle (Entitätsmenge) besitzt eindeutigen Namen (z.B. Mitarbeiter) die Bezeichnungen der Attribute (Spaltenüberschriften) sind eindeutig eines der Attribute (oder eine Kombination aus mehreren Attributen) identifiziert eindeutig einen Datensatz (Schlüssel oder Primärschlüssel), hier z.B. MA-Nr alle Daten eines Attributs sind aus einem vorgegeben Wertebereich (Domäne), hier z.B. MA-Nr ganze Zahl, Name Text (20), PLZ Text (8), Geb.Datum Datum (8-stellig) . Datenschutz DBMS kontrolliert den Zugriff zu den Daten und deren Sichtbarkeit. Gesetzgebung regelt erlaubte Nutzung und Veröffentlichung von Daten. Datensicherheit DBMS garantiert: - daß Datenbank immer in einen konsistenten Zustand gebracht werden kann, daß Transaktionen (minimale DB-Prozesseinheiten) atomar und dauerhaft verlaufen. atomar = alles oder gar nichts (Effekte unvollständiger Transaktionen sind nicht sichtbar) Dauerhaftigkeit = Die Effekte vollständig und korrekt abgelaufener Transaktionen sind permanent Concurrency Control DBMS garantiert, daß parallele Transaktionen isoliert und konsistent abgearbeitet werden. Isolation = Illusion einer Transaktion, allein Zugriff auf die Datenbank zu haben. Eine Transaktion sieht nur einen konsistenten Zustand der Datenbank. Seite 7 Grundlagen Datenbanken Integritätskontrolle DBMS garantiert, daß ihm bekannte Integritätsregeln (Konsistenzregeln) eingehalten werden. Ad-hoc Queries DBMS unterstützt spontane Anfragestellung. Anfragen werden (meistens) vom System optimiert. Verteilte Datenbanksysteme Client-Server Architektur Ein Datenbank-Rechner (Server) u. n vernetzte Arbeitsplatzrechner ohne Datenbankspeicher - Benutzer sieht volle DBMS Funktionalität im Arbeitsplatzrechner System verhält sich wie zentrales Datenbanksystem Kommunikation ist für Benutzer transparent Homogene verteilte Datenbanksysteme - jeder Knoten hat volle Datenbankfunktionalität Daten können disjunkt oder repliziert gespeichert werden Verteilung der Daten und Zugriff sind für den Benutzer transparent Kommunikation ist für Benutzer transparent alle Datenbankrechner sind stark miteinander gekoppelt alle Datenbankrechner stehen unter einem verteilten DBMS und befolgen ein Protokoll alle Transaktionen werden ausschließlich über das verteilte DBMS abgewickelt wenn ein Knoten ausfällt (oder unerreichbar wird) kann Konsistenz nicht mehr garantiert werden, daher blockiert das System Heterogene verteilte Datenbanksysteme - Verteilung und Kommunikation wie oben. Datenbankrechner können unterschiedliche lokale DBMS Software benutzen. lokale Datenbankrechner können verschiedene Autonomiegrade besitzen Datenbankrechner sind nur schwach gekoppelt lokale Transaktionen müssen nicht über das globale DBMS abgewickelt werden schwer Konsistenz und globale Korrektheit zu wahren. Die jetzige Entwicklung zeichnet sich z.Z. in dieser Richtung ab. Seite 8 Grundlagen Datenbanken Vor- und Nachteile von Datenbanksystemen Vorteile: - - integrierter Datenbestand --> Redundanzfreiheit, data sharing Verwaltung der Daten durch DBMS --> Konsistenz, höhere Qualität des Datenbestandes einheitliche Mechanismen für Datenschutz, Datensicherheit (Recovery) und Nebenläufigkeit (Concurrency Control) vom System garantierte Korrektheit bei parallelem Transaktionsablauf und Systemfehlern anwendungsbezogene Sichten der gleichen physischen Daten Physische und logische Datenunabhängigkeit leichtere und schnellere Programmentwicklung und Wartung durch einheitliche und explizite Strukturdarstellung, geringeren Programmieraufwand, Nutzung von Form- und Reportgeneratoren optimierbare Anfragesprachen (query language) Nachteile: - general-purpose Software oft weniger effizient als spezialisierte Software bei konkurrierenden Anforderungen kann DBS nur für einen Teil der AP optimiert werden Kosten: DBMS und zusätzliche Hardware hochqualifiziertes Personal (DatenbankAdministrator notwendig , DBA) Verwundbarkeit durch Zentralisierung --> Verteilung . Historischer Überblick Datenverwaltung 1950-1960 "Vorgeschichte" Daten in nichtmagnetischen Medien (z.B. Lochkarten) gespeichert Daten in sequentiellen magnetischen Medien (Magnetband) Daten sind der programmgesteuerten Bearbeitung untergeordnet (z.B. Berechnung von Flugbahnen) 1960-1965 "Steinzeit" Plattenspeicher und Trommeln erlauben direkten Zugriff auf Daten über deren Adresse. Große Datenmengen weiterhin auf Magnetband Datensätze werden als anwendungsspezifische Dateien gespeichert Zugriffsmechanismen werden in Anwendungen eingebettet. Stapelverarbeitung (Batch) dominiert Erster Dialogbetrieb Strukturen: Sätze feste Länge variable Länge Zugriff sequentiell direkt mit einem Schlüssel index sequentiell mit einem Schlüssel . Seite 9 Grundlagen Datenbanken 1965-1970 "Altertum" Datenverwaltung wird wichtiger als Verarbeitung/Berechnung Datenzugriffscode wird aus Anwendungen entfernt und als Service von Dateisystemen geboten Synchronisierung (falls vorhanden) im Anwenderprogramm Strukturen: Sätze feste Länge variable Länge Zugriff sequentiell direkt mit einem Schlüssel index sequentiell mit einem Schlüssel sekundäre Indizes (mehrere Schlüssel) keine Inhaltskontrolle: unkontrollierte Redundanz keine Datenunabhängigkeit (Datenstrukturänderung im AP) keine Datensicherheit (Recovery, Backup im AP) kein Datenschutz mit feinerer Granularität als vom BS geboten (Anwenderprozess und Datei) 1970- 1980 "Mittelalter" Dateiverwaltung mit Data Dictionary (Zwischenlösung auf dem Weg zur integrierten Datenbank) Gleiche Dateistrukturen wie zuvor, aber Data Dictionary kontrolliert Redundanz beschreibt Datensichten im Anwenderprogramm beschreibt nichtbindende Benutzerberechtigung 1980 - Heute "Moderne" Standard DBMS Strukturen: Sätze feste Länge variable Länge Felder, Records, Recordtypen, Tupel, Relationen Zugriff sequentiell indiziert (verschiedene Indexvarianten) inhaltsorientiert mengenorientiert Stapel und interaktiv Inhaltskontrolle (durch Schema) Redundanz größtenteils eliminiert Integrität (syntaktisch: Format, key-uniqueness,...): minimale semantische Integrität Korrektheit unter paralleler Nutzung (Nebenläufigkeit - concurrency control) Datenunabhängigkeit Seite 10 Grundlagen Datenbanken Externe Schemata = Benutzersichten Konzeptuelles Schema = globale (standarisierte) Sicht Internes Schema = physische Abbildung . Datensicherheit Recovery und Back-up durch System Datenschutz Benutzerberechtigung durch System verwaltet Feine Granularität Kontrolle von Inhalt, Datensicherheit und Datenschutz durch DBA (Datenbankadministrator) Ein Datenbanksystem besteht aus einem einheitlich definierten Datenbestand, der vom DBMS (Datenbankmanagementsystem) verwaltet wird. Zugriff ist nur über das DBMS und nach dessen Korrektheitskriterien für Inhaltskontrolle, Datensicherheit und Parallelität möglich. 1985 - ? Objektorientierte Datenverwaltung 1. Generation (Prototypen) 2. Generation in Entwicklung, erste Produkte, aktive Forschung Strukturen: Objektdarstellungen in Typenhierarchie angeordnet elementare Objekte komplexe Objekte Anwendungsbezogene Objekte Objekte vereinen Datenstrukturen und objektspezifische Operationen Inhaltskontrolle Redundanz und Konsistenz durch Vererbung und Typenhierarchie kontrollierbar. Bei Mißbrauch besteht Gefahr von unkontrollierter Redundanz durch benutzerspezifische Objekte. Datenunabhängigkeit durch Objektverkapselung und einheitliche externe Schnittstellen, Message-passing. . Datensicherheit Wie bei Standard DBMS mit Potential zu verbesserter oder anwendungspezifischer Datensicherheit Datenschutz Mindestens wie Standard DBMS mit zusätzlicher Kontrolle über Sichtbarkeit von Strukturen und Operationen. Tendenz zu höherer Kontrolle durch Eigentümer und weniger durch DBA. Ausrichtung auf "nichtstandard Anwendungen" (CAD/CAM/CIM, GIS, multimediale Informationssysteme, etc.) Wir unterscheiden: - betriebliche Informationssysteme - Literaturinformationssysteme (Retrievalsysteme) - Mathematisch-Naturwissenschaftliche-Technische Datenverarbeitung - Nicht-Standard Anwendungen. Seite 11