Kapitel 18: Datenbanksysteme (1) Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Datenbanken und Datenbanksysteme Entity/Relationship-Modell (ERM) Das Relationale Datenmodell (RDM) Abbildung ERM Æ RDM Relationale Algebra Hauptlernziele • Verständnis der Grundzüge relationaler Datenbanksysteme • ER-Modelle als Mittel zur Kommunikation zwischen Datenbank-Anwendern und Datenbank-Entwicklern verstehen • Fähigkeit, ER-Modelle lesen und selber entwickeln zu können Literatur (z.B.) Gumm & Sommer. Einführung in die Informatik. Oldenbourg. 2004. Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 1 Datenbanksysteme Datenbanktechnologie: die dieauf aufein einDatenbanksystem Datenbanksystemgestützte gestützteVerfahrensweise Verfahrensweisebei beider derSpeicherung, Speicherung, Verwaltung und Nutzung von Informationen eines Anwendungsbereiches Verwaltung und Nutzung von Informationen eines Anwendungsbereiches Schwerpunkte: Architektur von Datenbanksystemen, konzeptueller Datenbankentwurf, relationales Datenmodell, relationale Sprache, relationale Entwurfstheorie, Datenintegrität / Datensicherheit, Mehrbenutzersynchronisation, interne Datenorganisation, externe Schnittstellen, objektorientierte Datenbanken Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg Datenbanksysteme - Begriffe Datenbank (DB) Datenbankmanagementsystem (DBMS): Zusammenfassung von Datenbank und Datenbankmanagementsystem Datenmodell (DM): Softwaresystem zur Verwaltung und Bereitstellung von Datenbeständen Datenbanksystem (DBS): Sammlung von Datenbeständen einschließlich deren Beschreibung Konzepte für die Abbildung von Diskursbereichen in Datenbanken (Strukturen, Operationen, Integritätsbedingungen) z.B. Entity-Relationship-Modell, relationales Datenmodell Datenbanksprache (DL): Sprache zur Definition (DDL) sowie Manipulation und Abfrage (DML) von Datenbeständen z.B. SQL (nächste Vorlesung) Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 2 Relationale Datenbanken Relationales Datenbankmanagementsystem (RDBMS) Tabellen mit Daten Tabelleninhalt Zeile repräsentiert Fakt Attributwert repräsentiert eine Charakteristik DBMS Tabellen Relationale Datenbanken Z.B. Oracle, IBM DB2, Microsoft SQL Server, Microsoft Access, .... Opensource Datenbanken: mysql, postgres, MaxDB (SAP DB), ... Alternative Technologien: Objektorientierte DBs, deduktive DBs, XML DBs, ... accountId lastName firstName street city state zipcode balance 101 Block Jane 345 Randolph Circle Apopka FL 30458- $0.00 102 Hamilton Cherry 3230 Dade St. Dade City FL 30555- $3.00 103 Harrison Katherine 103 Landis Hall Bratt FL 30457- $31.00 104 Breaux Carroll 76 Main St. Apopka FL 30458- $35.00 Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg Grundlagen relationaler Datenbanken Das Relationale Datenmodell repräsentiert Information in Tabellen ("Relationen" genannt) Jede Tabelle repräsentiert Information über i.a. mehrere Entities Tabellenspalte enthält Attributwerte der Enitities alle Attribute sind atomar, d.h. haben einen nicht weiter dekomponierbaren Wert z.B. Strings, Zahlen; aber z.B. keine Listen Tabellenzeile enthält Information über eine Entity Relationale Datenbank = Menge von Tabellen Beispiel: Relation "Student" Matrnr Name Sem 24002 Xenokrates 18 25403 Jonas 12 26120 Fichte 10 26830 Aristoxenos 8 Kopfzeile enthält Attributnamen Zeile mit Daten über eine Entity (hier: Student) Spalte mit Attributwerten Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 3 DBMS - Qualitätsmerkmale Datenumfang: Zugriffszeit: Redundanzarmut: Nutzerfreundlichkeit: Konsistenz: Sicherheit: Effizienz: Standardisierung: Integration: Fundierung: Verwaltung von Datenbeständen praxisrelevanter Größenordnung Datenbereitstellung entspricht zeitlich den Anforderungen der Nutzer Mehrfachhaltung von Daten wird vermieden oder reduziert Nutzer können auf die Daten in einer ihnen gemäßen Form zugreifen Gewährleistung eines gültigen Abbildes der Realität Verfügbarkeit bei Fehlfunktionen von System oder Nutzer relativ geringer Aufwand zur Erfüllung der Nutzeranforderungen einheitlich definierte Anwendungsschnittstellen Anwendungsprozesse können durch gemeinsame Datenhaltung zusammenarbeiten mathematisch-theoretische Absicherung von Strukturen und Operationen Datenunabhängigkeit: Nutzer werden entlastet von Organisation der Datenverwaltung Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg Entwicklung relationaler Datenbanken: Datenmodelle auf mehreren Ebenen Konzeptuelle Datenmodelle Logische Datenmodelle in Form, die (auch) für Anwender verständlich ist helfen dem gegenseitigen Verständnis von Entwicklern und Anwendern semi-formale oder formale Beschreibungen z.B. ERM = Entity-Relationship Modell Entities, Relationships, Attribute in Form, die für relationales Datenbanksystem verständlich ist Entstehen durch Überführung konzeptueller Datenmodelle (nach festen Regeln) z.B. RDM = Relationales Datenmodell Relationsschemata, Attribute Physikalische Datenmodelle in Form, die für unterliegende Computer-Hardware und Betriebssystem verständlich ist wie Datenbankinhalte auf der Festplatte gespeichert werden i.a. automatisch aus RDM generiert Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 4 Entity-Relationship-Modell (ERM) Formalismus zur Abbildung von Diskursbereichen als Gesamtheit von Gegebenheiten (Entities), zwischen denen Beziehungen (Relationships) bestehen. Diskursbereich: Ausschnitt der Realität, der für eine bestimmte Anwendung relevant ist Beispiel: Universität mit Studenten, Assistenten, Professoren, Lehrveranstaltungen, Prüfungen Ziele: - Entwicklung eines schematischen, zeitunabhängigen Modells des Diskursbereiches - Unterstützung der frühen Entwurfsphasen - Graphische Veranschaulichung von Zusammenhängen - Kommunikationsmittel zwischen Anwendern, Entwicklern und Implementierern - Abbildbarkeit in Relationales Datenmodell Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg Entities Entity: diskrete, identifizierbare Abstraktion eines Gegenstandes der Anschauung oder des Denkens Entity-Typ: Verallgemeinerung (Klassifikation) gleichartiger, ähnlicher Entities Diagrammdarstellung: Entity-Typ als Rechteck mit Namen des Entity-Typs Entity-Typ Entity-Typ Beispiele: Student, Assistent, Professor, Lehrveranstaltung Student Student Prof. B. Jung Assistent Assistent Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 5 Attribute Attribut: Merkmal zur Beschreibung von Entities und Relationships; besitzt einen Namen und eine Merkmalswertemenge (Domäne) Diagrammdarstellung: Beispiele: Attribut als Kreis / Ellipse mit Attributnamen, durch ungerichtete Kante mit Entity- oder Relationship-Typ verbunden Name, Vorname, Adresse, Fachgebiet, Note, Titel, Semester, Matrikelnummer, … Attributname Matrnr Name Student Sem Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg Relationships Relationship: Beziehung zwischen Entities von mehreren, nicht notwendig verschiedenen Entity-Typen Relationship-Typ: Verallgemeinerung (Klassifikation) gleichartiger, ähnlicher Relationships Diagrammdarstellung: Relationship-Typ als Rhombus mit Namen des Relationship-Typs, durch ungerichtete Kanten mit korrespondierenden Entity-Typen verbunden Beispiele: lesen, höhren, prüfen, voraussetzen, arbeitenfür Student Relationship-Typ hören Vorlesung Achtung: Relationship ≠ Relation • Relationship = Beziehung zw. Entities; auf Ebene des konzeptuellen Datenmodells • Relation = Tabelle einer Datenbank; auf Ebene des relationalen Datenmodells Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 6 Schlüssel Schlüssel: Teilmenge von Attributen, - deren Werte beliebige Ausprägungen eines Entity- oder Relationship-Typs eindeutig identifizieren - und die im Hinblick auf diese Eigenschaft minimal sind Primärschlüssel: pragmatisch ausgewählter Schlüssel eines Entity- oder Relationship-Typs Der Primärschlüssel eines Relationship-Typs enthält implizit die Primärschlüssel der benachbarten Entity-Typen. Diagrammdarstellung: Beispiele: Attribut mit Unterstreichung Attributname Persnr, Matrnr, Vorlnr, (Persnr, Vorlnr), (Vorgänger, Nachfolger), ... Matrnr Name Student Matrnr Name Sem 10001 Müller 10 10002 Müller 10 10003 Müller 10 Schlüssel ist eindeutig! Sem Prof. B. Jung TU Bergakademie Freiberg Einführung in die Informatik, WS 2007/08 Zuordnungscharakteristik Charakterisierung eines Relationship-Typs R zwischen zwei Entity-Typen E1, E2: 1:1-Beziehung: In R kann ein Entity aus E2 mit höchstens einem Entity aus E1 in Beziehung stehen und umgekehrt. In R kann ein Entity aus E2 mit höchstens einem Entity aus E1 in Beziehung stehen. 1:n-Beziehung: m:n-Beziehung: Keine Einschränkung. Erweiterung auf mehrstellige Relationship-Typen möglich. Diagrammdarstellung: Beschriftung der Kanten des Relationship-Typs mit 1, m, n, ... Beispiele: Relationship-Typ y lesen (1:n), hören (m:n), prüfen (m:n:1) Student Prof. B. Jung x N hören M Einführung in die Informatik, WS 2007/08 Vorlesung TU Bergakademie Freiberg 7 Zuordnungscharakteristik Professor (Persnr) "Ein Professor kann mehrere Vorlesungen lesen" "Eine Vorlesung wird von (höchstens) einem Professor gelesen" lesen Vorlesung (Vorlnr) 5001 2125 5041 2126 5043 2127 5049 2133 5052 1:N Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg Zuordnungscharakteristik Student (Matrnr) hören Vorlesung (Vorlnr) 5001 "Ein Student kann mehrere Vorlesungen hören" "Eine Vorlesung kann von mehreren Studenten gehört werden" 24002 5041 25403 5043 26120 5049 27550 5052 N:M Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 8 ERM-Diagramm Diskursbereich: Universität voraussetzen Matrnr Vorlnr N M Name N Student Sem M hören M N lesen Persnr Assistent N arbeitenfür Persnr 1 1 Name Titel N prüfen Note SWS Vorlesung 1 Professor Gebiet Name Raum Rang Prof. B. Jung TU Bergakademie Freiberg Einführung in die Informatik, WS 2007/08 Relationales Datenmodell (RDM) Relationales Datenmodell: Relationsschema: Spezifikation der Struktur einer Relation / Tabelle Repräsentation von Informationen über Entities und Relationships in Tabellen (Relationen) Name der Tabelle Name (oft auch Typ) von jedem Attribut Deklaration des Schlüssels Überführung ERM Æ Relationsschemata … Relationsschema Vorlnr SWS Vorlesung Titel ERM Prof. B. Jung Vorlesung( Vorlnr, SWS, Titel) Relation (Tabelle mit Daten) Vorlnr SWS Titel 5001 4 Grundzüge 5041 4 Ethik 5043 3 Erkenntnistheorie 4052 4 Logik Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 9 Überführungsvorschriften ERM Æ RDM Entity-Typ: Bildung eines Relationsschemas mit dem Namen, den Attributen und den Schlüsseln des Entity-Typs Relationship-Typ m:n: Bildung eines Relationsschemas mit dem Namen des Relationship-Typs, den eigenen Attributen und den Primärschlüsseln der beteiligten Entity-Typen Relationship-Typ 1:n: Aufnahme des Primärschlüssels des 1-Entity-Typs als Fremdschlüssel und der Attribute des Relationship-Typs in das Relationsschema des n-Entity-Typs Relationship-Typ 1:1: Aufnahme des Primärschlüssels eines 1-Entity-Typs als Fremdschlüssel und der Attribute des Relationship-Typs in das Relationsschema des anderen 1-Entity-Typs (analog zu Relationship-Typ 1:n) Relationship-Typ mehrstellig: analog zu Relationship-Typ m:n Also: • Ein Entity-Typ wird immer auf ein entsprechendes Relationsschema im RDM abgebildet • Ein Relationship-Typ wird nur unter bestimmten Voraussetzungen auf ein Relationsschema abgebildet (ansonsten auf Attribut(e) ) Prof. B. Jung TU Bergakademie Freiberg Einführung in die Informatik, WS 2007/08 Überführungsvorschriften ERM Æ RDM Beispiel (1) Entity-Typ: Entity-Typ: Bildung Bildungeines einesRelationsschemas Relationsschemasmit mitdem demNamen, Namen,den denAttributen Attributen und den Schlüsseln des Entity-Typs und den Schlüsseln des Entity-Typs Vorlnr Vorlesung SWS Vorlesung( Vorlnr, SWS, Titel) Titel Relationsschema ERM Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 10 Überführungsvorschriften ERM Æ RDM Beispiel (2) Relationship-Typ Relationship-Typ1:n: 1:n: Aufnahme Aufnahmedes desPrimärschlüssels Primärschlüsselsdes des1-Entity-Typs 1-Entity-Typsals als Fremdschlüssel und der Attribute des Fremdschlüssel und der Attribute desRelationship-Typs Relationship-Typs inindas dasRelationsschema Relationsschemades desn-Entity-Typs n-Entity-Typs Vorlnr Vorlesung SWS Vorlesung( Vorlnr, SWS, Titel, Persnr) Titel N lesen Professor( Persnr, …) Persnr 1 Professor Prof. B. Jung Relationsschema … TU Bergakademie Freiberg Einführung in die Informatik, WS 2007/08 Überführungsvorschriften ERM Æ RDM Bemerkungen Vorlnr Vorlesung N SWS Titel Vorlesung( Vorlnr, SWS, Titel, Persnr) Professor( Persnr, …) lesen Persnr 1 Professor Relationsschema … Das Attribut 'Persnr' in Relationsschema 'Vorlesung' wird als Fremdschlüssel bezeichnet (da es sich auf Schlüssel einer anderen Entity bezieht) 'Persnr' ist Attribut des Relationenschemas 'Vorlesung' aber kein Attribut der Entity 'Vorlesung' (gilt allgemein für Fremdschlüssel) Zur besseren Verständlichkeit kann / sollte das Attribut 'Persnr' im Relationenschema 'Vorlesung' umbenannt werden Æ besser: Prof. B. Jung Vorlesung( Vorlnr, SWS, Titel, Leser) Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 11 Überführungsvorschriften ERM Æ RDM Beispiel (3) Relationship-Typ Relationship-Typm:n: m:n:Bildung Bildungeines einesRelationsschemas Relationsschemasmit mitdem demNamen Namendes des Relationship-Typs, den eigenen Attributen Relationship-Typs, den eigenen Attributenund undden den Primärschlüsseln Primärschlüsselnder derbeteiligten beteiligtenEntity-Typen Entity-Typen Vorlesung( Vorlnr, SWS, Titel ) voraussetzen Vorlnr N M Vorlesung voraussetzen( Vorlnr, Vorlnr ) SWS bzw. besser: voraussetzen( Vorgänger, Nachfolger ) Titel Relationsschema Prof. B. Jung TU Bergakademie Freiberg Einführung in die Informatik, WS 2007/08 Beispielrelationen 1 Assistent: Persnr Name Fachgebiet Boss 3002 3003 3004 3005 3006 3007 Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und Natur 2125 2125 2126 2127 2127 2134 Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Student: Professor: Persnr 2125 2126 2127 2133 2134 2136 2137 Prof. B. Jung Name Sokrates Russel Kopernikus Popper Augustinus Curie Kant Matrnr Name Sem 24002 25403 26120 26830 27550 28106 29120 29555 Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach Rang Raum C4 C4 C3 C3 C3 C4 C4 226 232 310 52 309 36 7 Einführung in die Informatik, WS 2007/08 18 12 10 8 6 3 2 2 TU Bergakademie Freiberg 12 Beispielrelationen 2 Vorlesung: voraussetzen: Vorlnr Titel SWS 5001 5041 5043 5049 4052 5052 5216 5259 5022 4630 4 4 3 2 4 3 2 2 2 4 Grundzüge Ethik Erkenntnistheorie Gewäsch Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Leser 2137 2125 2126 2125 2125 2126 2126 2133 2134 2137 hören: Vorgänger Nachfolger Matrnr Vorlnr 5001 5001 5001 5041 5043 5041 5052 5041 5043 5049 5216 5052 5052 5259 26120 27550 27550 28106 28106 28106 28106 29120 29120 29120 29555 25403 29555 5001 5001 4052 5041 5052 5216 5259 5001 5041 5049 5022 5022 5001 prüfen: Prof. B. Jung Matrnr Vorlnr Persnr Note 28106 25403 27550 5001 5041 4630 2126 2125 2137 1 2 2 Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg Relationenalgebra Teil des Relationalen Modells Operationen über 1 Tabelle Definition von Operationen mit 1 bzw. 2 Eingabe-Tabellen sowie 1 Ausgabe-Tabelle Projektion (π ) Æ Auswahl bestimmter Spalten der Tabelle Selektion (σ) Æ Auswahl bestimmter Zeilen der Tabelle Operationen über 2 Tabellen Verbund / Join (⋈) auch: Produkt (×) auch: Mengenverarbeitung Vereinigung (∪), Differenz ( – ), Durchschnitt (∩ ) nur anwendbar auf gleichförmige Tabellen (gleiche Anzahl, Reihenfolge, Typ von Attributen) Datenbankabfragesprache SQL ist Implementierung der Relationenalgebra Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 13 Relationenalgebra Projektion Auswahl bestimmter Spalten einer Tabelle project Student onto (Name, Sem) πName,Sem(Student) Matrnr Name Sem Name Sem 24002 Xenokrates 18 Xenokrates 18 25403 Jonas 12 Jonas 12 26120 Fichte 10 Fichte 10 26830 Aristoxenos 8 Aristoxenos 8 Prof. B. Jung TU Bergakademie Freiberg Einführung in die Informatik, WS 2007/08 Relationenalgebra Selektion Auswahl bestimmter Zeilen einer Tabelle select from Student where Sem > 10 σSem > 10(Student) Matrnr Name Sem 24002 Xenokrates 18 Matrnr Name Sem 12 24002 Xenokrates 18 25403 Jonas 12 25403 Jonas 26120 Fichte 10 26830 Aristoxenos 8 Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 14 Relationenalgebra Selektion komplexere Kriterien select from Student where Sem > 10 or Matnr > 26800 σSem > 10 or Matnr > 26000(Student) Matrnr Name Sem 24002 Xenokrates 18 25403 Jonas 12 26120 Fichte 10 26830 Aristoxenos 8 Prof. B. Jung Matrnr Name Sem 24002 Xenokrates 18 25403 Jonas 12 26830 Aristoxenos 8 TU Bergakademie Freiberg Einführung in die Informatik, WS 2007/08 Relationenalgebra Verbund (Join) Verknüfung von 2 Tabellen über Bedingung typische Bedingung: Gleichheit von Attributen (Equi-Join) join Asssistent and Professor where Assistent.Boss == Professor.Persnr Asisstent ⋈Assistant.Boss == Professor.Persnr Professor Attribute von Professor Attribute von Assistent Persnr Name Fachgebiet Boss Persnr Name Rang Raum 3002 Platon Ideenlehre 2125 2125 Sokrates C4 226 3003 Aristoteles Syllogistik 2125 2125 Sokrates C4 226 3004 Wittgenstein Sprachtheorie 2126 2126 Russel C4 232 3005 Rhetikus Planetenbewegung 2127 2127 Kopernikus C3 310 3006 Newton Keplersche Gesetze 2127 2127 Kopernikus C3 310 3007 Spinoza Gott und Natur 2134 2134 Augustinus C3 309 Prof. B. Jung Einführung in die Informatik, WS 2007/08 TU Bergakademie Freiberg 15