10.07.2015 Aufrufe

Grundlagen der Datenbanksysteme I - Goethe-Universität

Grundlagen der Datenbanksysteme I - Goethe-Universität

Grundlagen der Datenbanksysteme I - Goethe-Universität

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Grundlagen</strong> <strong>der</strong><strong>Datenbanksysteme</strong> IWS 2007/2008Prof. Dott. Ing. Roberto ZicariJohann Wolfgang <strong>Goethe</strong>-UniversitätFrankfurt am MainFachbereich Informatik undMathematik


EinführungJohann Wolfgang <strong>Goethe</strong>-UniversitätFrankfurt am MainInstitut für Informatikim Fachbereich Informatik und Mathematik (12)<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> IVeranstalter:Prof. Dott. Ing. Roberto ZicariZeit und Ort:Mi, 10 bis 12 Uhr im Hörsaal A (Hauptgebäude),Fr, 10 bis 12 Uhr im Hörsaal A (Hauptgebäude),Übung:Mi, 14 bis 16 Uhr im Seminarraum 612 (Robert-Mayer-Straße 10),Achtung: Auf etwaige Än<strong>der</strong>ungen wird jeweils in<strong>der</strong> Vorlesung und auf den Web Seitenhingewiesen.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-1


EinführungMitarbeiterDr. Karsten Tolle Raum 505(Robert-Mayer-Straße 10, 5. Stock)Natascha Hoebel Raum 504(Robert-Mayer-Straße 10, 5. Stock)Clemens Schefels Raum 503(Robert-Mayer-Straße 10, 5. Stock)DBIS Homepagehttp://www.dbis.informatik.uni-frankfurt.de<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-2


EinführungScheinerwerb durch schriftliche PrüfungTermin:Am Anfang <strong>der</strong> vorlesungsfreien ZeitBearbeitungszeit ca. 180 Minuten<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-3


EinführungWeitere Veranstaltung im WS 07/08<strong>Grundlagen</strong> <strong>der</strong> Programmierung (PRG-PR)(Praktikum)Veranstalter:Apl. Prof. Dr. Rüdiger Brause,Prof. Dr. Oswald Drobnik,Prof. Dr.-Ing. Detlef Krömker,Prof. Dott. Ing. Roberto Zicari,Zeit und Ort:Mi, 14 bis 16 Uhr im Magnus Hörsaal (Robert-Mayer-Straße 11-15),Im Internet:http://www.tm.informatik.uni-frankfurt.de/Plone/Lehre/14_WiSe07/prakt_gp<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-4


EinführungLiteraturEntity-Relationship-Modell:Batini, Ceri, Navathe, ‘Conceptual DatabaseDesign’, The Benjamin/Cummings Pub., 1992ISBN 0-8053-0244-1Theorie:J. Ullman, ‘Principles of Database Systems’, 2ded., Computer Science Press, 1982ISBN 0-7167-8069-0Transaktionen:Bernstein, Hadzilacos, Goodman, 'ConcurrencyControl and Recovery in Database Systems',Addison-Wesley, 1987ISBN 0-201-10715-5<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-5


EinführungWeitere empfehlenswerte Literatur:A. Kemper, A. Eickler: '<strong>Datenbanksysteme</strong> - EineEinführung', 6. Auflage Oldenburg Verlag, 2006A. Silberschatz, Henry F. Korth und S. Sudarshan,‘Database System Concepts’, 3d ed., McGraw-Hill,ISBN 0-07-114810-8Ramez Elmasri und Shamkant B. Navathe,'<strong>Grundlagen</strong> von <strong>Datenbanksysteme</strong>n', PearsonStudium, 2002Gottfried Vossen, 'Datenbankmodelle,Datenbanksprachen, Datenbankmanagement-Systeme', Oldenbourg, 2000<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-6


EinführungInhalt• Einführung• Konzeptuelles Design• Entity-Relationship-Model (ER)• Relationales Datenmodell• Relationale Algebra• SQL• Logische Optimierung• Normalformen• Transaktionen<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-7


EinführungEinführungKernaufgaben von <strong>Datenbanksysteme</strong>n ist dieSpeicherung und Verwaltung von großenDatenbeständen.Wichtig für diese Kernaufgabe sind:• Angebotene BenutzerschnittstellenWie greife ich auf die gespeicherten Daten zu?Wie kann ich gespeicherte Daten än<strong>der</strong>n?• Organisation <strong>der</strong> DatenWie effizient ist die Speicherorganisation <strong>der</strong>Daten?<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-8


EinführungBeispiel 1: Flug-ReservierungssystemDaten die gespeichert werden müssen:• Reservierungen einzelner Kunden aufeinzelnen Flügen, inklusive Sitzplatzvorliebenund Essenswünsche• Informationen über die Flüge (Start- undZielflughäfen, Abflugzeiten, Ankunftszeiten,Flugzeugtyp, Fluggesellschaft, ...)• Informationen über Ticketpreise,Voraussetzungen und Verfügbarkeit<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-9


EinführungAnfor<strong>der</strong>ungen (Flug-Reservierungssystem)• Anfragen nach Flügen zu gewissen Zeitenzwischen gegebenen Flughäfen• Die Buchung einzelner Flüge, festlegen vonSitzplätzen und Vormerkung vonEssenswünschen• Gleichzeitiger Zugang und Bearbeitung <strong>der</strong>aktuellen Daten durch verschiedeneReisebüros<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-10


EinführungBeispiel 2: BankEine Bank benötigt Daten über:• Die Kunden(Namen, Anschrift, Alter, ...)• Das Personal(Name, Anschrift, Tätigkeit, Gehalt, ...)• Die Konten(Kontonummer, Buchungen, Stand, ...)• Die Zuordnung von Kunden und Konten... und vieles mehr!<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-11


EinführungVerschiedene Anwendungen müssen aufdie Bank-Daten zugreifen und sie än<strong>der</strong>nkönnen:1. Ein Geldautomat muss von KontenAbbuchungen vornehmen.2. Ein Überweisungsterminal mussAbbuchungen und auch Zugänge verarbeitenkönnen.3. Ein Bankangestellter muss neue Kundenund Konten anlegen können.4. Ein Kontoauszugsdrucker muss denKontostand und die Buchungen auslesenkönnen.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-12


EinführungAnfor<strong>der</strong>ungen an einen Geldautomaten:Wird an einem Automaten Geld ausbezahlt,muss dies unverzüglich vermerkt werden. Auchnach einem sofortigen Stromausfall darf einesolche Information nicht verloren gehen. Auf <strong>der</strong>an<strong>der</strong>en Seite darf diese Information nur dannvermerkt werden, wenn das Geld auch wirklichausbezahlt wurde.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-13


EinführungWarum ein Datenbanksystem?Als es noch kein Datenbanksystem gab wurdendie Daten für jede Anwendung in separaten Filespermanent gespeichert (Einzellösung).Anwendung 1Anwendung 2Anwendung 3ElementareZugriffsoperationenElementareZugriffsoperationenElementareZugriffsoperationenDaten(Files)Daten(Files)Daten(Files)<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-14


EinführungNachteile und Probleme dieser Einzellösung (2)• Beschränkte ZugriffsmöglichkeitenKeine Ad-hoc-Abfrage, keine Abfragesprache.Beispiel:Angenommen ein Bankangestellter benötigt dieNamen aller Kunden, die in Frankfurt wohnen.Der Bankangestellte kann nun entwe<strong>der</strong> manuellversuchen die Namen aus dem entsprechendenFile herauszusuchen o<strong>der</strong> einen Programmiererbeauftragen ein entsprechendes Programm zuschreiben.Sollte sich die Fragestellung nur leicht än<strong>der</strong>n,z.B. nur die Namen mit einem Kontostand über10.000 €, besteht das gleich Problem jedochwie<strong>der</strong>.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-16


EinführungNachteile und Probleme dieser Einzellösung (3)• Probleme des Mehrbenutzerbetriebs(Concurrency)Keine Überwachung gleichzeitiger Zugriffe.Beispiel:Um die Geschwindigkeit zu steigern, erlaubenviele Systeme, insbeson<strong>der</strong>e Banksysteme mitvielen Benutzern, den Mehrbenutzerbetrieb.Mehrere Benutzer arbeiten also gleichzeitig aufund mit den Daten.Falls gleichzeitig zwei Benutzer von demgleichen Konto (A mit 500 €) abheben möchten(z.B. 100 € und 50 €), so kann es sein, dass <strong>der</strong>Kontostand hinterher nicht stimmt. In diesem Fallkönnte Konto A hinterher 400 € o<strong>der</strong> 450 €aufweisen, anstelle <strong>der</strong> korrekten 350 €.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-17


Einführung15:00 UhrKonto A 500 €B := read(A);B := B – 50;15:0115:02 B := read(A);write(A, B);15:0315:04Konto A 400 €B := B – 100;write(A, B);Zeit<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-18


EinführungNachteile und Probleme dieser Einzellösung (4)• IntegritätsverletzungenErzwingen von Integritätsbedingungen istschwierig.Beispiel:Bei Konten möchte man den Kreditrahmen gernebegrenzen. Eine Bedingung wie ‚Kontostand darfnicht negativ werden’ ist mit Files nur sehrschwierig bzw. aufwendig zu realisieren.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-19


EinführungNachteile und Probleme dieser Einzellösung (5)• SicherheitsproblemeNicht alle Benutzer sollten die gleichenZugriffsmöglichkeiten auf die gespeichertenDaten haben.Beispiel:Ein Bankangestellter zuständig für die Gehaltsabrechnungensollte keine Einsicht in dieKundenkonten und Kundendaten haben. Bei <strong>der</strong>Einbindung neuer Anwendungen müssen dieseSicherheitsüberprüfungen jeweils wie<strong>der</strong>überprüft und entsprechend implementiertwerden.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-20


Einführung<strong>Datenbanksysteme</strong><strong>Datenbanksysteme</strong> (DBS) wurden entwickelt(seit ca. 1975), um diese Probleme zuüberwinden. Ein Datenbanksystem sollte daherfolgende Funktionalitäten bieten:• Dauerhafte Speicherung von großenDatenbeständen• Zugriffsmöglichkeit durch verschiedeneBenutzer und Anwendungen, ohneinkonsistente Zustände zu erhalten• Bereitstellung einer Anfragesprache zumeinfachen Umgang mit <strong>der</strong> Datenbank• Überwachung von Integritätsbedingungen• Sicherheit gegenüber Hard- und Softwareausfällen (backup and recovery)• Sicherheit gegenüber nicht autorisiertenDatenzugriffen (views)• ... und natürlich effizient, möglichst schnellunter Benutzung weniger Ressourcen<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-21


EinführungAnwendung 1Anwendung 2Anwendung 3ElementareZugriffsoperationenElementareZugriffsoperationenElementareZugriffsoperationenDatenbank-Managementsystem(DBMS)DBSDatenbank(DB)Kernidee: eine zentrale Datenverwaltung /Datenhaltung<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-22


EinführungFolgerungDiese Kernidee des DBS bedarf einer neuenVorgehensweise:• Erst Design <strong>der</strong> benötigten Datenstrukturen• Danach können die Anwendungen auf dengeteilten Daten (shared data) entwickelt undangewendet werdenGegenüber vorher (Einzellösungen):• Entwicklung von Anwendung 1 mit benötigtenDaten• Entwicklung von Anwendung 2 mit benötigtenDaten...<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-23


EinführungDatenabstraktion (Data Abstraction)Sehr grob unterscheidet man dreiAbstraktionsebenen in einem Datenbanksystem:• Die physische Ebene (physical level)Auf dieser Ebene ist beschrieben, wie dieDaten auf dem Sekundärspeicher abgelegtsind.• Die logische/konzeptionelle Ebene(conceptual level)Auf dieser Ebene wird mittels eines Datenbankschemasfestgelegt, welche Datenabgespeichert sind.• Die Sichten (view level)In den Sichten werden Teilmengen <strong>der</strong> Datendargestellt. Die Sichten sind auf dieBedürfnisse <strong>der</strong> Benutzer zugeschnitten.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-24


EinführungSicht 1Sicht 2.....Sicht nlogische Ebenephysikalische EbeneDie drei Abstraktionsebenen einesDatenbanksystems.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-25


EinführungDie verschiedenen Ebenen können analog zuden Konzepten in Programmiersprachen verdeutlichtwerden. Ein Kunde könnte in Modula 2z.B. wie folgt deklariert werden:TYPE Kunde = RECORDName: String;Strasse: String;Ort: String;END;Der Record Kunde hat hier drei Fel<strong>der</strong>. JedemFeld werden ein Name und ein Typezugewiesen.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-26


EinführungAuf <strong>der</strong> physikalischen Ebene kann dieSpeicherung eines Kunden als Block (von Wordso<strong>der</strong> Bytes) im Speicher beschrieben werden.Die konzeptionelle Ebene beschreibt die TypeDeklaration wie oben beschrieben und dieBeziehungen zwischen einzelnen Typen.Die einzelnen Sichten schließlich zeigen nurTeile <strong>der</strong> vorhandenen Daten. Ein Kassierer amBankschalter zum Beispiel sieht nur die für ihnrelevanten Daten und nicht auchGehaltsinformationen von Kollegen.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-27


EinführungDatenunabhängigkeit (DataIndependence)Die Möglichkeit eine dieser Ebenen zu än<strong>der</strong>n,ohne dabei Auswirkungen auf die an<strong>der</strong>enEbenen zu haben wird als Datenunabhängigkeitbezeichnet. Es wird dabei wie folgtunterschieden:• Physische Datenunabhängigkeit = Stabilität<strong>der</strong> Benutzerschnittstelle gegen Än<strong>der</strong>ungen<strong>der</strong> Datenorganisation (z.B. Datendarstellung,Feldlänge, Satzformate, Zugriffspfade), d.h.nach Än<strong>der</strong>ungen auf <strong>der</strong> physikalischenEbene müssen die Anwendungen nichtumgeschrieben werden.• Logische Datenunabhängigkeit = Stabilitätgegen Än<strong>der</strong>ungen in <strong>der</strong> logischen Ebene(z.B. die Einführung neuer o<strong>der</strong> abgeleiteterMerkmale wie Ausbildung bzw. Alter fürKunden)<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-28


EinführungBemerkungen:Das Erreichen <strong>der</strong> logischen Datenunabhängigkeitist deutlich schwerer, da Anwendungenstark auf den logischen Strukturen <strong>der</strong>benötigten Daten aufbauen.Die Idee <strong>der</strong> Datenunabhängigkeit istvergleichbar mit <strong>der</strong> Idee <strong>der</strong> abstraktenDatentypen in mo<strong>der</strong>nen Programmiersprachen.Mit beiden Ideen soll ein Information Hidingerreicht werden, damit Anwen<strong>der</strong> sich mehr aufdas eigentliche Problem konzentrieren können,anstatt sich mit den genauen Implementierungsdetailszu beschäftigen.<strong>Grundlagen</strong> <strong>der</strong> <strong>Datenbanksysteme</strong> I I-29

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!