Anwendersoftware (AS) Grundlagen von Datenbanken und Informationssystemen Holger g Schwarz Wintersemester 2009/10 Teile zu diesem Folienskript beruhen auf einer ähnlichen Vorlesung, gehalten von Prof. Dr. T. Härder am Fachbereich Informatik der Universität Kaiserslautern und Prof. Dr. N. Ritter am Fachbereich Informatik der Universität Hamburg. Für dieses Skriptum verbleiben alle Rechte (insbesondere für Nachdruck) bei den Autoren. Einführung Organisatorisches • Vorlesung: g Dr. rer. nat. habil. Holger g Schwarz Mittwoch: 11:30 - 13:00 (V38.04) Donnerstag: 8:00 - 9:30 (V38.04) • Übung: Philipp Janowski Mittwoch: 11:30 - 13:00 (V38.04) • Sprechstunde p Mittwoch:13:00 - 14:00 Zimmer 2.361 bitte vorher per Email anmelden: [email protected] holger schwarz@ipvs uni stuttgart de • Prüfung schriftlich oder mündlich als Bestandteil der Vertiefungslinie Datenbanken und Informationssysteme © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 2 Einführung Vorläufiger Zeitplan (Stand: 22.10.09) KW Mittwoch Donnerstag 43 21 10 -21.10.: 22 10 Einführung 22.10.: Ei füh 44 28.10.: Motivation, Einführung, Grundbegriffe 29.10.: Informationsmodelle 45 04.11.: Informationsmodelle 05.11.: Informationsmodelle 46 11 11 : Relationenmodell 11.11.: 12 11 : Übung (Modellierung) 12.11.: 47 18.11.: Relationenmodell 19.11.: Relationenmodell 48 25.11.: Standardsprache SQL 26.11.: Übung (ERM, Relationenalgebra) 49 02 12 : Standardsprache SQL 02.12.: 03 12 : Standardsprache SQL 03.12.: 50 09.12.: Standardsprache SQL 10.12.: Übung (SQL) 51 16.12.: Integritäts- und Zugriffskontrolle 17.12.: Integritäts- und Zugriffskontrolle 52 5 23.12.: 3 Logischer og sc e DB-Entwurf t u 24.12.: -- 1 06.01.: -- 07.01.: Übung (SQL, Integrität) 2 13.01.: Logischer DB-Entwurf 14.01.: Logischer DB-Entwurf 3 20.01.: Architektur 21.01.: Übung (FA, DB-Entwurf) 4 27.01.: Architektur 28.01.: Anwendungsprogrammierschnittstelle 5 03.02.: Anwendungsprogrammierschnittstelle 04.02.: Übung (Trigger) 6 10.02.: Transaktionsverwaltung 11.02.: Transaktionsverwaltung 7 17.02.: Informationssysteme 18.02.: Abschluss (Probeklausur) 3 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Ausbildungsstruktur im Überblick MehrrechnerDBS IngenieurDBS MultimediaDBS Transaktionssysteme Data-Warehouse, D t W h Data-Mining- und OLAP-Technologien Daten- und Wissensmod. Datenstrukturen Advanced Information Management Implementierung von on DB & IS Fachpraktikum DB (Haupt-)Seminar Grundlagen g von DB & IS ist Voraussetzung für © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 4 Einführung Literatur Bücher [KE04] Kemper, A., Eickler, A.: Datenbanksysteme - Eine Einführung, Oldenbourg 5. Oldenbourg, 5 Auflage, Auflage ISBN: 3486273922, 3486273922 2004. 2004 (6. Auflage, ISBN: 3486576909, 2006) [KW06] Kemper, A., Wimmer, M.: Übungsbuch Datenbanksysteme, Oldenbourg, ISBN: 3486579673, 2006. [Da04] Date, C.J.: An Introduction to Database Systems, Addison-Wesley Publ. Comp., Reading, Mass., 8th Ed., ISBN: 0321189566, 2004 [EN04] Elmasri, R.; Navathe, S.B.: Fundamentals of Database Systems, Benjamin/Cummings Publishing Company, 4th Ed., ISBN: 0321204484 2004 0321204484, [GU+02] Garcia-Molina, H., Ullman, J.D., Widom, J.: Database Systems. The Complete Book, Prentice Hall, ISBN: 0130319953, 2002 [SK+02] Silberschatz, A., Korth, H.F., Sudarshan, S.: Database System Concepts, 4th Ed. McGraw-Hill Book Comp., New York, ISBN: 0072283637, 00 8363 , 2002 00 5 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Literatur Weitere Bücher: [DD93] [MS99] Date, C.J., Darwen, H.: A Guide to the SQL Standard, Addison-Wesley Publ. Comp., Reading, Mass., Reading Mass 3rd Edition, Edition 1993 Melton, J., Simon, A.R.: SQL : 1999 - understanding relational language components, Morgan Kaufmann, ISBN: 1558604561, 2002 [AB+00] Abiteboul, S., Buneman, P., Suciu, D.: Data on the Web, Morgan Kaufmann Publ. San Francisco, California, 2000 [RV02] Rahm, E., Vossen, G.: Web und Datenbanken. Konzepte, Architekturen, Anwendungen dpunkt Verlag, Anwendungen, Verlag 2002 [HR01] Härder, T., Rahm, E.: Datenbanksysteme - Konzepte und Techniken der Implementierung, Springer-Verlag, 2001 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 6 Einführung Literatur ZEITSCHRIFTEN: • TODS, Transactions on Database Systems, ACM Publikation (vierteljährlich) • Information Systems, Pergamon Press (6-mal jährlich) • The VLDB Journal, Springer (vierteljährlich) • Informatik - Forschung und Entwicklung, Springer (vierteljährlich) TAGUNGSBÄNDE: g g , jährliche j Konferenz der ACM Special p Interest Group p on • SIGMOD Tagungsband, Management of Data • VLDB Tagungsband, jährliche Konferenz „Very Large Data Bases“ g g , jährliche j Konferenz „Int. „ Conf. on Data Engineering“ g g • IEEE Tagungsband, • GI Tagungsbände der Tagungen der Gesellschaft für Informatik, Tagungen innerhalb des Fachausschusses 2.5 Informationssysteme . . . und viele weitere Konferenzreihen 7 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Vorlesungskapitel Date (8th Ed.) Kemper (5. Aufl.) Elmasri/ Navathe 4th Ed. Kap 1: Motivation, Einführung, Grundbegriffe Kap 1 Kap 1 Kap 1, 2 Kap 2: Informationsmodelle Kap 14 Kap 2 Kap 3, 4 Kap 3: Grundlagen des Relationenmodells Kap 6, 7 Kap 3, 8 Kap 5, 6, 7 Kap 4: Die Standardsprache SQL Kap 3 , 4, 10 Kap 4 Kap 8 Kap 5: Integritäts- und Zugriffskontrolle Kap 9 Kap 4, 5 Kap 8 Kap 6: Logischer DB-Entwurf Kap 11 , 12, 13 Kap 6 Kap 10, 11 Kap. 7: Architektur Kap 2 Kap 1 Kap 2 Kap 8: Anwendungsprogrammierschnittstelle Kap 4 Kap 4 Kap 9 Kap. 9: Transaktionsverwaltung Kap 15, 16 Kap 9 Kap 17, 18, 19 Kap. 10: Informationssysteme © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Kap 1 8 Einführung Digitales Universum 2007 • In 2007 entstandene Daten: 281 Exabyte weltweit d.h. 41 Gigabyte pro Mensch ca. 10 Exabyte in Deutschland • 1 Gigabyte (GByte) = 1000 Megabyte = 109 Byte 1 Terabyte (TByte) = 1000 Gigabyte = 1012 Byte 1 Petabyte (PByte) = 1000 Terabyte = 1015 Byte 1 Exabyte (EByte) = 1000 Petabyte = 1018 Byte 1 Zettabyte (ZByte) = 1000 Exabyte = 1021 Byte Prognose: ca. 60% Wachstum pro Jahr 2011: 1800 Exabyte weltweit Weltbevölkerung: ≈ 6,8 Mrd. Anzahl Galaxien: ≈ 1011 Anzahl Protonen und Elektronen im Universum: ≈ 1079 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Quelle: IDC-Studie - The Diverse and Exploding Digital Universe, 2008 9 Einführung Digitales Universum 2006: Die Daten • • • • • • 150 Mrd. Fotos 6 Exabyte Email (ohne Spam) Telefon, Film, Fernsehen, Internet, … 70% der Daten werden durch Privatpersonen erzeugt 85% der Daten durch Unternehmen gespeichert verarbeitet gespeichert, verarbeitet, übermittelt übermittelt, etc. 95% der Daten sind unstrukturiert pro Tag: 100 Millionen neue Videos auf YouTube >1 Mrd. MP3-Files über Internet ausgetauscht 2 TByte neue Daten bei Energiekonzern Chevron > 220 Mio. i Transaktionen ki im i Reisebuchungssystem i b h Amadeus d © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Quelle: IDC-Studie - The Expanding Digital Universe, 2007 10 Einführung Digitales Universum 2006 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Quelle: IDC-Studie - The Expanding Digital Universe, 2007 11 Einführung Schlussfolgerungen für die künftige Entwicklung Î In wenigen Jahren sind wir in der Lage, „alles“ aufzuheben, d. h., keine Information muss weggeworfen werden. Î Die „typischen“ typischen“ Informationen werden nur noch von Rechnern aufbewahrt, gesucht und aufbereitet; der Mensch sieht weder die Daten, noch kennt er den Aufbewahrungsort und die genauen Ableitungsverfahren. bl f h Î Heute konzentriert man sich eher auf das Erfassen und Speichern von Daten, z.B. bei den „Digitalen Bibliotheken“ Bibliotheken auf die Eingabe, d.h., das Scannen, Komprimieren und OCR von Informationen. Î Morgen wird anstelle der Eingabe die „relevante Auswahl“ die wesentliche Rolle spielen: Selektion, Suche und Qualitätsbewertung von Informationen. © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 12 Einführung Übersicht 1. Motivation,, Einführung, g, Grundbegriffe g • • • Daten und Information Datenbanksysteme Informationssysteme 13 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Transiente vs. persistente Daten • Bisher bekannte Datenstrukturen • • Felder (Reihungen, Arrays, .... ) Verbunde (Sätze, Records, .... ) Listen Graphen Bäume transiente Daten: Datenstrukturen im Hauptspeicher, d. h. Bestand nur für die Dauer einer g g Programmausführung persistente Daten: Datenbestand auf Externspeicher, d.h. Werte bleiben über Programmende, Sitzungsende, Betriebssystem-Uptime, g, etc. hinaus Rechnereinschaltung, erhalten © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart AP Datenstruktur Datenstruktur Datenstruktur AP: Anwendungsprogramm 14 Einführung Datenhaltung im Dateisystem • Isolierte Datenhaltung Redundanz Konsistenz schwierig zu garantieren Integritätsbedingungen schwierig zu prüfen hohe Entwicklungskosten eingeschränkte Verarbeitungsmöglichkeiten • Gemeinsame Datenhaltung Datenhalt ng Probleme des Mehrbenutzerbetriebs Sicherheitsprobleme Produktionsplanung Verkauf Rechnungswesen AP AP AP File File File Produktinformationen Produktionsplanung Verkauf Rechnungswesen AP AP AP File File Produktinformationen 15 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Datenbanken • • • • • • • • • • große Datenmengen einfache Handhabung mächtige Auswertungsoperationen Mehrbenutzerbetrieb Datenunabhängigkeit Anwendungsneutralität explizite Integritätsbedingungen Konsistenzüberwachung Redundanzfreiheit … Produktionsplanung Verkauf Rechnungswesen AP AP AP D t b k Datenbankverwaltungssystem lt t File File File Datenbanksystem © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 16 Einführung Datenbanksystem (DBS) • Zentrales Hilfsmittel für Informationssysteme Anwendungssysteme DBS = DB + DBMS Datenbanksysteme Betriebssystem • Eine Datenbank (DB) Hardware ist eine Sammlung gespeicherter Daten, die von Anwendungssystemen benötigt werden. • Ein Datenbankverwaltungssystem (DBVS, engl. DBMS) ist ein standardisiertes Softwaresystem zur Definition, Verwaltung, Verarbeitung und Auswertung der Daten in einer DB. Es kann mittels geeigneter Parametrisierung an die speziellen Anwendungsbedürfnisse angepasst werden (hochgradig generisches System). 17 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Nutze er/Anwendu ungsprogram mme Beispiel: Universität DB-Administration Studiensekretariat Prüfungsamt DBMS Uni-DB Prüfungsdaten Studierendend daten © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Institutsdaten Mitarbeiterdaten 18 Einführung Übersicht 2. Informationsmodelle • • • DB-Entwurf und Modellierung Entity-Relationship-Modell Erweiterungen und Abstraktionskonzepte 19 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Miniwelt und Informationsmodell Gegenstände Miniwelt Zusammenhänge Tatsachen Informationen Eigenschaften Sachverhalte Objekte Formalisierung, Formalisierung Diskretisierung (Systemanalyse) Informationsmodell Attribute ein-/mehrwertig i / h ti einfach/ zusammengesetzt Vorgänge Veränderungen Beziehungen Typ, Grad optional existenzabhängig Abstraktionskonzepte Klassifikation Schlüssel Generalisierung g Aggregation Wertebereiche Assoziation Nullwerte Methoden (Verhalten) Rollen Objekte Attribute Beziehungen g © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 20 Einführung Beispiel Universität: Analyse • • Rektoramt Studiensekretariat Prüfungsamt • • Interview • • Vorlesungen werden durch eine Nummer, den Titel sowie den Prüfer beschrieben. Zu jedem Studierenden soll die Matrikelnummer, das Semester, der Name, der Wohnort sowie die zugehörige Postleitzahl gespeichert werden. Zu jeder abgelegten Prüfung wird das Datum und die Note festgehalten. Jeder Professor wird beschrieben durch Name, Fakultät, Lehrstuhl, … Jeder Fakultät sind mehrere Institute und Lehrstühle zugeordnet. … 21 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Beispiel Universität: Modell • • VorlNr Vorlesung VorlTitel Prüfer Prüfung Datum Note MatrNr Student Entity--Relationship--Modell • Vorlesungen werden durch eine Nummer, den Titel sowie den Prüfer beschrieben. Zu jedem Studierenden soll die Matrikelnummer, das Semester, der Name, der Wohnort sowie die zugehörige Postleitzahl gespeichert werden. Zu jeder abgelegten Prüfung wird das Datum und die Note festgehalten. N Name Semester PLZ Wohnort © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 22 Einführung SQL-Umsetzung SQL Umsetzung in DBS VorlNr Vorlesung CREATE TABLE Vorlesung ( VorlNr NOT NULL …) IN VorlSpace; CREATE INDEX VorlI1 … ; CREATE TABLE Student ( MatrNr NOT NULL … ); CREATE INDEX StudI1 … ; CREATE INDEX StudI2 … ; VorlTitel Prüfer Prüfung Datum Note MatrNr Student Name Semester Uni-DBS PLZ Wohnort 23 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Übersicht 3. Grundlagen g des Relationenmodells • • • Abbildungskonzepte Integritätserhaltung Relationenalgebra (Operationen, (Operationen Algebraische Optimierung) © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 24 Einführung Relationales Datenmodell Datenmodell • Legt die Modellierungskonstrukte fest zur Beschreibung der Datenobjekte (Datentypen Beziehungen, (Datentypen, Beziehungen Einschränkungen) Festlegung der anwendbaren Operatoren und deren Wirkungen. relationales Datenmodell • Datenstruktur: Relation/Tabelle / einzige Datenstruktur (neben atomaren Werten) alle Informationen ausschließlich durch Werte dargestellt 25 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Beispiel Universität: Tabellen VorlNr Vorlesung VorlTitel Prüfer Prüfung Vorlesung VorlNr VorlTitel Prüfer 02520 Grundlagen der Mitschang/Schwarz Datenbanken und Informationssysteme 02628 Data-Warehouse, Data- Mitschang/Schwarz Mining- und OLAPTechnologien h l Datum P üf Prüfung Note VorlNr MatrNr Datum Note 02520 100200 01.04.2007 1,7 02628 100300 01.03.2007 1,3 MatrNr Student Name S Semester t PLZ Wohnort © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Student MatrNr Name 100200 Albrecht 100300 Bettina 100400 Carl 100500 Daniela Semester 6 7 7 6 PLZ 70100 80100 70100 80100 Wohnort Stuttgart München Stuttgart München 26 Einführung Beispiel Universität: Operatoren Welche Vorlesungen hat Bettina prüfen lassen und was war jeweils das Ergebnis? π VorlTitel,Note (σ ( NAME = „Bettina“ (Vorlesung V l π , σ, VorlNr P üf Prüfung St Student)) d t)) MatrNr : Operatoren der relationalen Algebra Prüfung VorlNr MatrNr Datum Note 02520 100200 01.04.2007 1,7 02628 100300 01.03.2007 1,3 Vorlesung VorlNr VorlTitel Prüfer 02520 Grundlagen der Mitschang/Schwarz Datenbanken und Informationssysteme 02628 Data-Warehouse, Data- Mitschang/Schwarz Mining- und OLAP Mining OLAPTechnologien Student MatrNr Name 100200 Albrecht 100300 Bettina 100400 Carl 100500 Daniela Semester 6 7 7 6 PLZ 70100 80100 70100 80100 Wohnort Stuttgart München Stuttgart München 27 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Datenmodelle • Seit der Einführung g kommerzieller Datenbanksysteme y in den späten p 1960ern wurden verschiedenste Datenmodelle vorgeschlagen. relationales Modell (RDBMS) objekt-relationales Modell (ORDBMS) objekt-orientiertes bj kt i ti t M Modell d ll (OODBMS) Netzwerkmodell (CODASYL) hierarchisches Modell flat files seit ca. 2000: semistrukturierte Daten und XML 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 1990 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 1995 2000 28 Einführung Übersicht 4. Die Standardsprache p SQL Q • • • Datendefinition Abbildung und Warten von Beziehungen Mengenorientierte Anfragen und Datenmanipulation 5. Integritäts- und Zugriffskontrolle • • • Semantische Integritätskontrolle Aktives Verhalten Datenschutz via Zugriffskontrolle 29 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung SQL: Abfrage und Manipulation Datenmanipulation Füge Studierende im 6. Semester in die Tabelle Student ein. INSERT INTO Student VALUES ((100500,, Daniela,, 6,, 80100,, München); ); Datendefinition Anfragen CREATE TABLE Vorlesung g (VorlNr INT Welche Studierende wohnen in München? PRIMARY KEY, VorlTitel CHAR (50) NOT NULL, Prüfer CHAR(30) NOT NULL) SELECT * FROM Student WHERE Wohnort = ‘München’; U i DBS Uni-DBS © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 30 Einführung SQL: Integritätsbedingungen • Integritätsbedingungen g g g legen g fest: zulässige Wertebereiche Beziehungen e e u ge de der Daten, ate , d die e ga garantiert a te t werden müssen … Trage eine Prüfung mit Ergebnis ein. INSERT INTO Prüfung VALUES (02520, 100500, 01.03.2008, 5.3); • Aufgaben des DBMS: automatische Überwachung der Bedingungen Zurücksetzen der Änderungsoperationen aktive Folgeänderungen (TRIGGER) Uni-DBS Integritätsbedingungen CREATE ASSERTION Max-Note CHECK( (SELECT Max(Note) FROM Prüfung) ≤ 5.0); © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 31 Einführung Übersicht 6. Logischer g DB-Entwurf • • • • Formale Grundlagen Normalformenlehre Erste Normalform (1NF) (1NF), 2NF 2NF, 3NF 3NF, 4NF Synthese von Relationen © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 32 Einführung Änderungsanomalien Student MatrNr Name 100200 Albrecht 100300 Bettina 100400 Carl 100500 Daniela Semester 6 7 7 6 PLZ 70100 80100 70100 80100 Wohnort Stuttgart München Stuttgart München Student MatrNr Name 100200 Albrecht 100300 Bettina 100400 Carl 100500 Daniela Semester 6 7 7 6 PLZ 70100 80100 70100 76100 Datenmanipulation UPDATE Student SET Wohnort="Karlsruhe" WHERE MatrNr=100500; Student MatrNr Name 100200 Albrecht 100300 Bettina 100400 Carl 100500 Daniela Semester 6 7 7 6 PLZ 70100 80100 70100 80100 Postleitzahlen PLZ Wohnort 70100 Stuttgart 80100 München 76100 Karlsruhe Wohnort Stuttgart München Stuttgart Karlsruhe 33 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Normalisierung • • • Normalisierung von Relationen hilft einen gegebenen Entwurf zu verbessern lokales Verfahren auf existierenden Datenstrukturen schrittweise Eliminierung von Änderungsanomalien g 1NF 2NF 3NF BCNF 4NF PNR → ANR ANR → ANAME funktionale Abhängigkeiten R (PNR, ANR, ANAME) anfängliches Relationenschema Normalisierungsg prozess R1 (PNR, ANR) R2 (ANR, ANAME) Relationenschema in 3NF unnormalisierte und normalisierte Relationen © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 34 Einführung Übersicht 7. Architektur • • • • Anforderungen an DBS Schichtenmodelle für DBS Drei Schema Architektur Drei-Schema-Architektur Dynamischer Ablauf von DB-Operationen 35 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Anforderungen an ein DBS Kontrolle e über die operationalen Daten Leistung und Skalierbarkeit Hoher Grad an Datenunabhängigkeit DBS S © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 36 Einführung 5-Schichten-Modell 5 Schichten Modell Relationen, Sichten ab ... rec. 1 Externe Sätze 1 rec. 2 aa 2 2 xyz a bb 3 xyz xyz a 3 xyz b rec. 3 ab 3 bb 2 b Transaktionsprogramme Interne Sätze aa Logische Datenstrukturen Logische Zugriffspfade record 1 123 record 2 1 ab 456 record 3 2 bb 789 A record1 DB-Puffer record3 record2 S i h t kt Speicherungsstrukturen B C A Segment Seitenzuordnungsstrukturen Speicherzuordnungsstrukturen 3 A 1 Datei B A' 2 B 3 C C 4 C' 5 1 Externspeichermedien 3 Externer Speicher © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 4 c g f 5 e d 2 37 Einführung Übersicht 8. Anwendungsprogrammierschnittstelle g p g • • • • Kopplung von DB- und Programmiersprache Spracheneinbettung und Übersetzung Statisches und Dynamisches SQL Call-Level-Interfaces: CLI, JDBC, … © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 38 Einführung Datenbankzugriffe Anweisungen zur Datendefinition- und Manipulation Standardverarbeitung z.B. am Semesterende Vordefinierte Auswertungen Individuelle Anfragen in einer Anfragesprache Studiensekretariat DB-Administration Prüfungsamt Uni-DBS Unterschiedliche Kopplung von DB und ProgrammierProgrammier sprache notwendig. 39 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Kopplungsansätze Anwendungsprogramm con = DriverManager.getConnection(url, userid, passwd); … Statement stmt = con.createStatement(); con createStatement(); String stmtText = "SELECT projectno, manager FROM projects"; ResultSet rs = stmt.executeQuery(stmtText); … stmt = con.createStatement(); stmtText = "UPDATE projects SET budget = 10 000 000 WHERE projectno = 'PJ47'"; int rowsUpdated = stmt.executeUpdate(stmtText); stmt executeUpdate(stmtText); … while (rs.next()) { String pno = rs.getString(1); … System.out.print(" Project = " + pno); … rs close(); rs.close(); main () { exec sql begin declare section; char X[3] ; int GSum; exec sql end declare section; exec sql connect to dbname; exec sql insert into Pers (Pnr, (Pnr Name) values (4711, (4711 ‘Ernie‘); Ernie ); exec sql insert into Pers (Pnr, Name) values (4712, ‘Bert‘); printf (“Anr ? ”) ; scanf ( “ %s” , X); exec sql select sum (Gehalt) into :GSum from Pers where Anr = :X; /* Es wird nur ein Ergebnissatz zurückgeliefert! */ printf (“Gehaltssumme: %d\n” , GSum) exec sql commit work; exec sql disconnect; } SQL-Einbettung: statisch i h oder d dynamisch d i h integrierte Sprachen/ Spracherweiterungen S h i CALL-Schnittstelle: z.B. B JDBC DBS © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 40 Einführung Übersicht 9. Transaktionsverwaltung g • • • Transaktionskonzept Synchronisation Wiederherstellung im Fehlerfall 41 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Klassische Transaktionsverarbeitung UPDATE accounts SET balance = balance - 1000€ WHERE K# = 03874; UPDATE accounts SET balance = balance + 1000€ WHERE K# = 01099 01099; TransakttionsProgram mme Transaktionssystem EOT © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Karte ? PIN ? Konto ? Buchung Ausgabe Datenbanksystem # Kontostand 01099 038 874 BOT 900 -100 1500 2500 OK 42 Einführung Transaktionskonzept Transaktionskonzept mit Garantie von ACID-Eigenschaften • Atomizität (atomicity) • Konsistenz (consistency) • Isolation (isolated execution) • Dauerhaftigkeit D h fti k it (durability) (d bili ) Ausfallsicherheit • Aufzeichnung redundanter Daten im Normalbetrieb • Replikation von Datenstrukturen • automatische Reparatur der Datenbestände nach ProgrammProgramm , System System- und Gerätefehlern • Rückgängigmachen unvollständiger Transaktionen, so dass sie wiederholt werden können • Wiederherstellen der Ergebnisse vollständiger Transaktionen, so dass sie nicht wiederholt werden müssen 43 © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart Einführung Ziele Vermittlung von Kenntnissen, Fähigkeiten und Fertigkeiten g von Informations- und Datenmodellen, insbesondere • in der Nutzung Entity/Relationship-Modell und Erweiterungen, Relationenmodell und SQL, Netzwerkmodell und Hierarchiemodell • • • in der Modellierung von anwendungsbezogenen Realitätsausschnitten (Miniwelten, Diskursbereiche) in der Programmierung von DB DB-Anwendungen Anwendungen im Entwerfen, Aufbauen und Warten von Datenbanken Voraussetzungen für Übernahme Ü von Tätigkeiten: • Entwicklung von datenbankgestützten Anwendungen g von Datenbanken unter Verwendung g von • Nutzung (interaktiven) Datenbanksprachen • Systemverantwortung für Datenbanksysteme, insbesondere Unternehmens-, Datenbank-,, Anwendungs Datenbank Anwendungs- und Datensicherungsadministrator © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 44 Einführung Top 10 Signs you hired the wrong SQL DBA 10. They can’t understand why changing column names may break the application 9. Think performance tuning = buy better hardware 8. Believe a Stored Procedure which compiles is production ready 7. Forcefully argue that indexing every field in the databases is the best way to increase performance (right after buying better hardware) 6. They prefix all stored procedures with ‘sp_’ – so as to be consistent with the Microsoft naming convention 5. Thinks 9 hours to copy one million records across databases is ‘good performance’ 4. Thinks a stored procedure is the best way to copy one million records across databases 3. Is convinced that the error generated by trying to insert a duplicate primary key value, is a bug in SQL 2. Thinks adding a new column to a table is a four step process: create a new table, copy all the data over, drop the old table, and rename the new table 1. Believe that adding a foreign key constraint with the ‘Enforce Relationship’ checkbox unchecked is the best of both worlds, it defines relationships without having to deal with ‘those pesky constraint errors’ when modifying data © Prof. Dr. B. Mitschang, Dr. H. Schwarz, Universität Stuttgart 45