Entwurf & Verarbeitung relationaler Datenbanken eine durchgängige und praxisorientierte Vorgehensweise Prof. Dr. Nikolai Preiß Duale Hochschule Baden-Württemberg Stuttgart & Dipl.-Ing. (BA) Holger Seubert SAP Deutschland © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 1 Datenbanksysteme Inhalt 1. Einführung • • Datenbanken und Datenbankentwurf Arbeiten mit relationalen Datenbanken 2. Entity-Relationship-Datenmodellierung • • • Entitätstyp Beziehungstyp Klassische ER-Datenmodellierung 3. Relationale Datenmodellierung • • • Grundlagen Überführung ER-Datenmodell in Relationenmodell Normalisierung im Relationenmodell 4. Datenbanksprache SQL • Datendefinition © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 2 Datenbanksysteme Literatur Connolly, T. / Begg, C. (2005): Database Systems; Addison-Wesley-Verlag, 4. Auflage, Harlow, ISBN 0-321-21025-5 Elmasri, R. / Navathe, S.B. (2004): Fundamentals of Database Systems; Addison-Wesley-Verlag, 4. Auflage, Boston, ISBN 0-321-20448-4 Heuer, A. / Saake, G. / Sattler, K.-U. (2003): Datenbanken kompakt; mitp-Verlag, 2. Auflage, Bonn, ISBN 3-8266-0987-5 Melton, J. / Simon, A.R. (2002): SQL:1999 Understanding Relational Language Components; Morgan Kaufmann - Verlag, San Francisco, ISBN 1-558-60456-1 Moos, A. (2004): Datenbank-Engineering; Vieweg-Verlag, 3. Auflage, Wiesbaden 2004, ISBN 3-528-25183-2 Preiß, N. (2007): Entwurf und Verarbeitung relationaler Datenbanken; Oldenbourg-Verlag, München, ISBN 978-3-486-58369-4 Simsion, G.C. / Witt, G.C. (2005): Data Modeling Essentials; Morgan Kaufmann – Verlag, 3. Auflage, San Francisco, ISBN 0-12-644551-6 Vossen, G. (2000): Datenmodelle, Datenbanksprachen und Datenbankmanagement-Systeme; Oldenbourg-Verlag, 4. Auflage, München, ISBN 3-486-25339-5 © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 3 1.1. Datenbanken und Datenbankentwurf → Datenbanken Anwendungsgebiete von Datenbanksystemen ‣ „Standard“: Verarbeitung einfach strukturierter Massendaten (OLTP) • • • • • • • Flugreservierung Geldautomat Buchhaltung strukturierte Datensätze (Tabelle) Personalverwaltung Ressourcenplanung mit ERP-Systemen, deren Datenteil in Form von Datenbanksystemen vorliegt Warenwirtschaft/ Lagerverwaltung etc. Artikel-Nr. Artikel Bezeichnung Preis 4711 Schreibtisch 99,99 815 Wasserbett 555,55 1234 Liegestuhl 22,22 ‣ “Non-Standard“: • • • • • • • • Struktur (Spalten) Inhalt (Zeilen) Data Warehouse (Datenanalyse, OLAP) Multimedia-Datenbanken (Bilder, Musik, Filme, …) Content Management (Wikipedia) NoSQL (Twitter, Facebook) Eingebettete Datenbanksysteme (Bereitstellung bestimmten Funktionen in ressourcenbeschränkter Umgebung) In-Memory Datenbanken Geografische Informationssysteme etc. © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 4 1.1. Datenbanken und Datenbankentwurf → Datenbanken Neue Entwicklung: Not only SQL (NoSQL) • Greift Datenbankmodelle auf, die in der Vergangenheit aus verschiedensten Gründen in Vergessenheit geraten sind • Grundlegene Idee: Verzicht auf die starren Schemata der Tabellen ihrer relationalen Pendants • NoSQL-Ausprägungen lassen sich in vier Hauptkategorien aufteilen: - dokumentenorientierte Datenbanken ("document stores") - Key-Value-Datenbanken - spaltenorientierte Datenbanken - Graphendatenbanken • Stärken in bestimmten Bereichen: flexibler Umgang mit variablen Daten (dokumentorientierte Datenbanken), das Abbilden von Beziehungen (Graphen-Datenbanken) oder auch die Reduzierung einer Datenbank auf einen Behälter für Schlüssel-Werte-Paare (Key-Value-Datenbanken). Dennoch: Für unternehmenskritische Speicheranwendungen wird das relationale SQL-Modell noch lange Zeit maßgebend sein. © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 5 1.1. Datenbanken und Datenbankentwurf → Datenbanken Vertreter von relationalen Datenbanksystemen ( = DBMS + DB) • DB2 + Informix [IBM] • Oracle + MySQL [Oracle] • SQL Server + Access [Microsoft] • SQL Anywhere + Adaptive Server + IQ [SAP] • MaxDB [SAP] • HANA [SAP] • PostgreSQL [PostgreSQL Global Development Group (Open Source)] • Ingres [Ingres (Open Source)] • etc. Da der Fachbegriff für Tabelle Relation lautet, spricht man von einem relationalen Datenbanksystem (rDBS). © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 6 1.1. Datenbanken und Datenbankentwurf → Datenbanken Vorteile von Datenbanksystemen Der hohe Verbreitungsgrad relationaler Datenbanksysteme erklärt sich aus einer Reihe von Vorteilen: ‣ konsistente Datenhaltung • Transparenz und Redundanzfreiheit • Mehrbenutzerkontrolle • Recovery ‣ hohe Verfügbarkeit und Absturzsicherheit ‣ Zugriffsschutz ‣ schneller Datenzugriff (auch bei großen Datenmengen) ‣ zentrale Datenverwaltung mit unterschiedlichen Anwendersichten ‣ einfache, umfassende und standardisierte Datenbanksprache SQL (Structured Query Language) ‣ standardisierte Zugriffsschnittstelle / Programmierschnittstelle (Programmsystem und Datenbanksystem getrennt) ‣ etc. Bevor ein rDBMS seine Vorteile ausspielen kann, muss im Vorfeld geklärt werden welche Struktur eine DB haben soll (methodisches Vorgehen)! © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 7 1.1. Datenbanken und Datenbankentwurf → Datenbanken Datenverwaltung im Unternehmen ‣ Datenbestände der Unternehmen sind historisch gewachsen und liegen oft • • • in unterschiedlichen Formen in unterschiedlichen Systemen an unterschiedlichen Orten ➡ Redundanzen (Mehrfachspeicherungen) und fehlende Datenübersicht ➡ Inkonsistenzen (Unstimmigkeiten) Beispiel 1a: In einem Unternehmen werden die Kundendaten unabhängig voneinander in zwei unterschiedlichen Systemen verwaltet: Kunde DB 1 (Marketing) Name Rainer Maier Wohnort Bahnhofstr. 5, 12121 Glückshausen Name Reiner Mayer Straße Waldweg 8 Kunde DB 2 (Vertrieb) Fragen: Beruf Wirtschaftsinformatiker Ort 45454 Piepenstadt Bei getrennter Datenhaltung bleibt normalerweise unentdeckt, dass es sich um den selben Kunden handelt. Es bleibt ungeklärt: - Handelt es sich um die gleiche Person mit Erst- und Zweitwohnsitz? - Falls ja, welcher Name ist korrekt? © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 8 1.1. Datenbanken und Datenbankentwurf → Datenbanken ‣ Datenbestände sollten zentral verwaltet werden • • • in einheitlicher Form mit zentralem Übersichtsplan mit unterschiedlichen Sichten für die verschiedenen Anwender (Marketing, Vertrieb etc.) ➡ wenig (dann kontrolliert) bis keine Redundanzen ➡ keine Unstimmigkeiten Beispiel 1b: Verwaltung der Kundendaten in einer zentralen Datenbank (mit eindeutigem Namen und zwei Wohnsitzen): Kunde Name Rainer Mayer Wohnort Bahnhofstr. 5, 12121 Glückshausen Waldweg 8, 45454 Piepenstadt © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Beruf Wirtschaftsinformatiker Datenbanksysteme – Kap. 1 Einführung 9 1.1. Datenbanken und Datenbankentwurf Datenbankentwurf ‣ zentrale Aufgabe: optimale Struktur für Datenbank finden Beispiel 3: Ein Online-Shop möchte die Bestellungen seiner Kunden in einer Datenbank verwalten und überlegt, in welcher Form die Datensätze abzulegen sind. Dabei geht es im Einzelnen um die Datenfelder Kunden-Nr, Kunden-Name, Adresse mit Straße und Ort, Artikel-Nr, ArtikelName, Preis, Bestell-Nr, Datum und Menge. Die DV-Spezialisten sehen drei mögliche Strukturierungsansätze: 1. Kunde-orientierter Datensatz 2. Artikel-orientierter Datensatz 3. Bestellung-orientierter Datensatz © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 10 1.1. Datenbanken und Datenbankentwurf → Datenbankentwurf 1. Kunde-orientierter Datensatz: Kunde K-Nr K-Name Anschrift Bestellung B-Nr 007 Bond Buckingham 008 Bean Oxford 009 Miller Stanford B-Datum Art-Nr Art-Name Preis Menge 1001 1.1.2006 4711 Stuhl 29,90 4 1002 2.1.2006 4712 Tisch 49,90 1 999 1.1.2006 4711 Stuhl 29,90 1 Fragen: Wo werden Artikel gespeichert, die derzeit nicht bestellt werden? → geht nicht ! Wo überall muss die Änderung eines Artikel-Namens durchgeführt werden? → in jedem Datensatz mit diesem Artikel ! © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 11 1.1. Datenbanken und Datenbankentwurf → Datenbankentwurf 2. Artikel-orientierter Datensatz: Artikel Art-Nr 4711 Art-Name Stuhl Preis 29,90 4712 Tisch 49,90 4713 Schrank 99,90 Bestellung B-Nr B-Datum K-Nr K-Name Anschrift Menge 999 1.1.2006 008 Bean Oxford 1 1001 1.1.2006 007 Bond Buckingham 4 1002 2.1.2006 007 Bond Buckingham 1 Fragen: Wo werden Kunden gespeichert, die derzeit nichts bestellen? → geht nicht ! Wo überall muss die Änderung einer Anschrift durchgeführt werden? → bei jedem Datensatz mit dieser Anschrift ! © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 12 1.1. Datenbanken und Datenbankentwurf → Datenbankentwurf 3. Bestellung-orientierter Datensatz: Bestellung B-Nr B-Datum K-Nr K-Name Anschrift Art-Nr Art-Name Preis Menge 999 1.1.2006 008 Bean Oxford 4711 Stuhl 29,90 1 1001 1.1.2006 007 Bond Buckingham 4711 Stuhl 29,90 4 1002 2.1.2006 007 Bond Buckingham 4712 Tisch 49,90 1 Fragen: Wo werden Artikel gespeichert, die derzeit nicht bestellt werden? → geht nicht ! Wo werden Kunden gespeichert, die derzeit nichts bestellen? → geht nicht ! Wo überall muss die Änderung eines Artikel-Namens durchgeführt werden? (einer Anschrift) → in jedem Datensatz mit diesem Artikel (mit dieser Anschrift)! © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 13 1.1. Datenbanken und Datenbankentwurf → Datenbankentwurf ➡ Fazit: alle drei Strukturierungsansätze ungeeignet Lösung: Strukturierung in drei getrennte Datensätze: Die Verbindung zwischen den Tabellen wird über die gleichnamigen Spalten hergestellt Kunde Artikel K-Nr K-Name Anschrift Art-Nr Art-Name Preis 007 Bond Buckingham 4711 Stuhl 29,90 008 Bean Oxford 4712 Tisch 49,90 009 Miller Stanford 4713 Schrank 99,90 Bestellung B-Nr 999 B-Datum 1.1.2006 K-Nr 008 Art-Nr 4711 Menge 1 1001 1.1.2006 007 4711 4 1002 2.1.2006 007 4712 1 Fragen: Wo werden Artikel gespeichert, die derzeit nicht bestellt werden? o.k.! Wo werden Kunden gespeichert, die derzeit nichts bestellen? o.k.! Wo überall muss die Änderung eines Artikel-Namens durchgeführt werden? o.k.! Wo überall muss die Änderung einer Anschrift durchgeführt werden? o.k.! © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 14 1.1. Datenbanken und Datenbankentwurf → Datenbankentwurf Datenmodell Mit schlecht strukturierten Datenbanken lassen sich keine guten Informationssysteme realisieren. Benötigt wird ein Verfahren, mit dem man zu guten Datenbankstrukturen kommt. ‣ zur Beschreibung der Struktur und der Bedeutung der Daten (-objekte) • Informationsobjekte • Beziehungen • Identifikatoren / Schlüssel • Integritätsbedingungen ‣ Vertreter • Hierarchisches Datenmodell, z.B. IMS von IBM (1968) • Netzwerk-Datenmodell, z.B. IDS von General Electric (1971) • Relationales Datenmodell (1970) • Entity-Relationship-Datenmodell (ERDM) (1976) (• Objektorientiertes Datenmodell) beschreibt Methode, mit der Zusammenhänge der Datenwelt unabhängig von DV-technischen Aspekten beschrieben werden kann ‣ mit Datenmodellen wird die optimale Form der Datenbank zur Speicherung der Daten ermittelt © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 15 1.2. Arbeiten mit relationalen Datenbanken Datenbanksprache ‣ Sprache für die Kommunikation mit dem DBS (interaktiv oder vom Programm aus) • Definition der Datenbank (externes, logisches, internes Schema) • Manipulation der Datenbank (Einfügen, Ändern, Löschen von Daten) • Suchen in der Datenbank ‣ Bekanntester Vertreter: Structured Query Language SQL (für relationale Datenbanken) • interaktiv • vom Programm aus (embedded SQL oder Call Level Interface) • erweitert als eigenständige Programmiersprache (PL/SQL bei Oracle, SQL PL bei DB2, T-SQL bei MS SQLServer) © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 16 1.2. Arbeiten mit relationalen Datenbanken → Datenbank-Architektur 3-Ebenen-Architektur (1975 nach ANSI/SPARC) Alle großen rDBMs funktionieren im Prinzip nach der 3-Ebenen-Architektur: EXTERNE EBENE Kunden-Bestellungen Artikel K-Nr Art-Nr Art-Name …….. …..... ……… Artikel-Bestellungen Art-Nr Kunden K-Nr K-Name …….. …… ………… (Datensicht für Programm 1) (Datensicht für Programm 2) Externe Schemata INTERNE EBENE KONZEPTIONELLE EBENE 1 Kunde K-Nr K-Name 2 bestellt → 0..* 4 0..* Artikel Kunde Art-Nr Art-Name K-Nr K-Name Bestell K-Nr Art-Nr Artikel Art-Nr Art-Name Konzeptionelles Schema Logisches Schema (Entity-Relationship-Datenmodell) (Relationales Datenmodell) 3 Kapitel 2 (DV-unabhängig) Kapitel 3 (DV-abhängig) Satzspeicherungsart, Speichergröße, Blockgröße, Verteilung, Indexe, Transaktionsverhalten, ….. © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Internes Schema Datenbanksysteme – Kap. 1 Einführung 17 1.2. Arbeiten mit relationalen Datenbanken → Datenbank-Architektur ‣ Vorteil der 3-Ebenen-Architektur: • logische Datenunabhängigkeit: Änderung des logischen Schemas (bspw. Datenfeld hinzufügen) ohne Auswirkung auf die Benutzersichten • physische Datenunabhängigkeit: Änderung des internen Schemas (bspw. Index löschen) ohne Auswirkung auf logisches Schema und auf die Benutzersichten ➡ erheblich vereinfachte Wartung und Weiterentwicklung der Informationssysteme ‣ Vorgehensweise für den Entwurf und die Verarbeitung relationaler Datenbanken: a) Fachliche Analyse und fachlicher Entwurf => ER-Datenmodell (Kapitel 2) b) DV-technischer Entwurf => Relationales Datenmodell (Kapitel 3) c) Codierung: => SQL-Anweisungen c1) Datendefinition (Basisrelationen, Benutzersichten, Indexe) (Kapitel 4) c2) Datenabfrage und Datenmanipulation (über Basisrelationen und/oder Benutzersichten) (Vorlesung DBProgrammierung) © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 18 1.1. Datenbanken und Datenbankentwurf Das Datenmodell als Basis einer „Informations-Lieferkette“ Transaktionsorientierte Geschäftsanwendungen, Collaborative Anwendungen Analyse Integration Rohdaten Business Analytics Applikationen Big Data Manage Master Data Cubes Streams Data Externe Quellen Data Warehouses Content Streaming Information Govern Qualität Lebenszyklus Sicherheit& Standards Privacy © Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Datenbanksysteme – Kap. 1 Einführung 19