Kapitel 1 - Einführung

Werbung
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
Herunterladen