DBMS - Hochschule Trier

Werbung
Vorlesung DBMS
Thema:
Datenbanktechnologie
- Von der Realwelt zur Datenbank -
Michael Andriczka
Sommersemester 2003
Michael Andriczka
DBMS
1
Inhalt
1. Einleitung
1.1
Charakteristika
1.2
Vergleich Datenredundanz vs. Datenintegrität
1.3
Prinzipien
1.4
Eigenschaften aktueller DBS
1.5
Einige konkrete Systeme
1.6
Datenbankgrößen
1.7
Gegenwärtiger Entwicklungsstand
2. Von der Realwelt zum ER-Modell
2.1
Die sogenannte Miniwelt (1)
2.2
Entität
2.3
Attribute
2.4
Schlüssel
2.5
Beziehungen
2.6
Die sogenannte Miniwelt (2)
Michael Andriczka
DBMS
2
Inhalt
3. Vom Modell zur Datenbank
3.1
Umsetzung des ER-Modells in das relationale Datenbankschema
3.2
Normalisierung
4.
Schlussbetrachtung
Michael Andriczka
DBMS
3
1. Einleitung
1.1 Charakteristika von Datenbanken
•
•
•
Eine Datenbank hat die langfristige Aufbewahrung
von Daten als Aufgabe
Die Sicherheit vor Verlusten ist eine Hauptmotivation,
etwas „auf die Bank zu bringen“.
Eine Bank bietet Dienstleistungen für mehrere Kunden
an, um effizient arbeiten zu können.
Michael Andriczka
DBMS
4
1. Einleitung
1.2 Datenredundanz vs. Datenintegration
Ohne Datenbanken: Datenredundanz
• Basis- oder Anwendungssoftware verwaltet ihre eigenen
Daten in ihren (eigenen) Dateiformaten
- Textverarbeitung: Texte, Artikel und Adressen
- Buchhaltung: Artikel, Adressen
- Lagerverwaltung: Artikel, Aufträge
- Auftragsverwaltung: Aufträge, Artikel, Adressen
- CAD-System: Artikel, Technische Bausteine
•
Daten sind redundant: mehrfach gespeichert;
Probleme: Verschwendung von Speicherplatz,
„Vergessen“ von Änderungen; keine zentrale,
„genormte“ Datenhaltung
Michael Andriczka
DBMS
5
1. Einleitung
•
•
•
Mehrere Benutzer oder Anwendungen können nicht parallel
auf den gleichen Daten arbeiten, ohne sich zu stören
Anwendungsprogrammierer/Benutzer können Anwendungen nicht
programmieren/benutzen, ohne
- interne Darstellung der Daten
- Speichermedien oder Rechner
zu kennen (Datenunabhängigkeit nicht gewährleistet)
Datenschutz und Sicherheit sind nicht gewährleistet
Michael Andriczka
DBMS
6
1. Einleitung
1.2 Datenredundanz vs. Datenintegration
Mit Datenbanken: Datenintegration
• Die gesamte Basis- und Anwendungssoftware arbeitet auf
den selben Daten, z.B. Adressen und Artikel werden nur einmal
gespeichert
- Datenbanksysteme können große Mengen an Daten
effizient verwalten (Anfragesprachen)
- Benutzer können parallel auf Datenbanken arbeiten
(Transaktionskonzept)
- Datenschutz (kein unbefugter Zugriff) und Datensicherheit
(kein ungewollter Datenverlust) werden vom System
gewährleistet
Michael Andriczka
DBMS
7
1. Einleitung
1.3 Prinzipien
Datenbank-Management-System
Unter einem Datenbank-Management-System (DBMS) versteht man ein
Softwarepaket, welches in der Lage ist, (Anwender-) Daten in einem
Computersystem zu verwalten.
Spricht man von einem relationalen Datenbank-Management-System,
meint man damit, dass dieses DBMS für die Verwaltung der Daten intern
eine bestimmte Technologie benutzt und dass es bestimmten
Anforderungen genügt.
Datenbank-System
Unter einem Datenbank-System versteht man ein DBMS mit zusätzlich
einer oder mehreren Datenbanken zur Sammlung von nicht redundanten
Daten, die von mehreren Applikationen benutzt werden.
1. Einleitung
DB: Strukturierter, von DBMS verwalteter Datenbestand
DBS: Datenbanksystem (DBMS + Datenbank)
DBMS: Datenbank-Management-System
Michael Andriczka
DBMS
9
1. Einleitung
•
Grundmerkmale von DBMS
- verwalten persistente (langfristig zu haltende) Daten
- verwalten große Datenmengen effizient
- Datenmodell, mit dessen Konzepten alle Daten einheitlich
beschrieben werden (Integration)
- Transaktionskonzept
- Datenschutz, Datenintegrität (Konsistenz), Datensicherheit
•
Grundprinzip moderner DBS
- 3-Ebenen-Architektur
- Trennung zwischen Schema (Tabellenstruktur)
und Instanz (etwa Tabelleninhalt)
Michael Andriczka
DBMS
10
1. Einleitung
1.4 Eigenschaften aktueller Datenbanksysteme
•
•
•
•
•
3-Ebenen-Architektur nach ANSI-SPARC
– Externe Ebene (Benutzersichten)
– Konzeptionelle Ebene (Logische Gesamtsicht)
– Interne Ebene (Physische Schicht)
Einheitliche Datenbankanfragesprache SQL
Einbettung dieser Sprache in kommerzielle Programmiersprachen
Diverse Werkzeuge für die Definition, Anfrage und Darstellung von
Daten und den Entwurf von Datenbankanwendungsprogrammen
und der Benutzer-Interaktion, sowie
Kontrollierter Mehrbenutzerbetrieb, Zugriffskontrolle und
Datensicherheitsmechanismen
Michael Andriczka
DBMS
11
1. Einleitung
1.5 Einige konkrete Systeme
•
•
•
•
(Objekt-)Relationale DBMS
- Oracle 9i, DB2 V.8, Microsoft SQL-Server 2000
- MySQL, PostgreSQL, FireBird
Pseudo DBMS
- MS Access
Objektorientierte DBMS
- Poet, Versant, ObjectStore
XML-DBMS
- Tamino, eXcelon
Michael Andriczka
DBMS
12
1. Einleitung
1.6 Datenbankgrößen
•
•
•
•
•
Slolan Digital Sky Survey
40 TB
Himmelsdaten (Bilder und Objektinformationen);
WalMart Data WareHouse
24 TB
Produktinfos (Verkäufe, etc.) von 2900 Märkten;
50.000 Anfragen pro Wochen
US Libary of Congress 10-20 TB
nicht digitalisiert
Indexierbares WWW (1999)
6 TB
ca. 800 Millionen Dokumente
Microsofts TerraServer 3,5 TB
unkomprimierte Bilder und Daten (komprimiert: ca. 1 TB)
Michael Andriczka
DBMS
13
1. Einleitung
SAP R/3-Installation der Deutschen Telekom AG (1998)
•
•
•
Financial Accounting: Rechnungen, Lastschriften
Zahlungsaufforderung, Mahnungen, etc.
15 SAP R/3-Systeme; jedes
- verarbeitet 200.000 Rechnungen, 12.000 Mahnungen,
10.000 Änderungen von Kundendaten pro Tag
- bis zu jeweils 1000 Nutzer gleichzeitig
Über 13.000 Datenbanktabellen
Michael Andriczka
DBMS
14
1. Einleitung
1.7 Gegenwärtiger Entwicklungsstand
•
Unterstützung für spezielle Anwendungen
- Multimedia-Datenbanken: Verwaltung multimedialer
Objekte (Bilder, Audio, Video)
- XML-Datenbanken: Verwalten semistrukturierter Daten
- Verteilte Datenbanken: Verteilung von Daten auf
verschiedenen Rechnerknoten
- Förderierte Datenbanken: Multimedia-Datenbanken
- Mobile Datenbanken: Datenverwaltung auf Kleinstgeräten
(PDA, Handy)
Michael Andriczka
DBMS
15
2. Von der Realwelt zum ER-Modell
2.1 Die sogenannte Miniwelt (1)
Um zu einem geeigneten Modell zu gelangen, muss zunächst durch eine
Analyse der realen Welt ein zu modellierender Teilausschnitt dieser realen
Welt definiert werden. Diesen Teilausschnitt nennt man auch Miniwelt.
Beispiel:
Die Firma Mustermann handelt mit PCs und Zubehör. Aus dem Produktkatalog
der Firma Mustermann können Kunden per Telefon oder per Bestellkarte ein
oder mehrere Artikel zur Bestellung aufgeben.
Aufgrund der enormen Nachfrage nach PCs und Zubehör kann das
Geschäftsaufkommen mittlerweile nicht mehr über Karteikarten abgewickelt
werden. Somit entschließt man sich zur Einführung eines relationalen DBS und der
dazu gehörigen Anwendungsprogramme.
Beim Betrachten dieser Miniwelt erkennt man gewisse Objekte (sog. Entities)
wie Artikelnamen, Kundennamen, Bestellungen usw. Zwischen diesen
Objekten existieren Beziehungen (sog. Relationships), die bestimmte Abläufe
oder Abhängigkeiten in der Miniwelt darstellen.
Michael Andriczka
DBMS
16
2. Von der Realwelt zum ER-Modell
Um zu einem Datenmodell zu gelangen, fasst man gleichartige Objekte und
gleichartige Beziehungen zu Klassen zusammen. Somit ergeben sich:
• Objekttypen wie Artikel, Bestellung, Kunden und
• Beziehungstypen wie Bestellposition, welche die Objekte in eine
gewisse Beziehung bringen.
Jedem Objekttyp oder Beziehungstyp sind gewisse Eigenschaften zugeordnet, wie z.B. dem Objekttyp Artikel die Eigenschaften Bezeichnung und
Preis. Man nennt diese Eigenschaften eines Objekttyps oder Beziehungstyps
auch Attribute.
Zur Darstellung von Objekten (Entities) und vor allem der Beziehungen
zwischen den Objekten dienen die sogenannten ER-Diagramme.
Michael Andriczka
DBMS
17
2. Von der Realwelt zum ER-Modell
2.2 Entität
Ausgangspunkt des ER-Modells ist der Begriff der Entität. Eine Entität ist
ein individuelles und identifizierbares Exemplar von Dingen, Personen oder
Begriffen der realen oder der Vorstellungswelt. Die Entität wird durch
Attribute näher beschrieben.
Die Entitätsmenge (auch Entitytyp genannt) wird im ER-Modell durch ein
Rechteck dargestellt. In dem Rechteck steht der Name der Entität. Der
Name beschreibt die Entitätsmenge und steht im Singular.
KUNDE
Die Entität (Entity) ist also das konkrete, individuell identifizierbare Objekt
bzw. Exemplar von Dingen, Personen oder Begriffen der realen oder
der Vorstellungswelt.
Michael Andriczka
DBMS
18
2. Von der Realwelt zum ER-Modell
Beispiele:
Individuen:
Reales Objekt:
Ereignis:
Abstraktes:
Mitarbeiterin Brecht, Student Weber, Kunde Meier
Maschine 2, Raum 7, Artikel 4711....
Zahlung, Buchung, Mahnung, Start, Landung.....
Unterricht, Dienstleistung, Verarbeitungsart, Zahlungsart....
Der Kunde Meier ist also ein konkretes individuell identifizierbares Objekt, über
den Informationen abgespeichert werden müssen. Er gehört zur Gruppe der
Kunden. Man kann auch sagen, er ist vom Entitätstyp Kunde. Alle
Informationen, die über Kunden abgespeichert werden, sind von der Struktur
her gleich.
Michael Andriczka
DBMS
19
2. Von der Realwelt zum ER-Modell
2.3 Attribute
Attribute beschreiben die Entitäten.
Beispiel: Kunde (KdNr, KName, KAdresse,...)
KdNr
KUNDE
KName
Man unterscheidet zwischen
• identifizierenden Attributen, sog. Schlüssel (z.B.: KdNr, FirmenNr, PersNr...)
• beschreibenden Attributen (z.B.: KName, MitarbeiterName, ArtikelBez, ... )
Michael Andriczka
DBMS
20
2. Von der Realwelt zum ER-Modell
2.4 Schlüssel:
Eine minimale Menge von Attributen, deren Werte das zugeordnete Entity
eindeutig innerhalb aller Entities seines Typs identifiziert. Man unterscheidet
Primärschlüssel und Fremdschlüssel.
2.4.1 Primärschlüssel: Der Primärschlüssel wird benötigt, um Datensätze
eindeutig zu identifizieren, also der Datensatz darf nicht doppelt (z.B. in
einer Tabelle) vorkommen.
Der Primärschlüssel ist in einem ER-Modell anhand des unterstrichenem
Attributes zu erkennen.
Die Merkmale eines Feldes mit Primärschlüssel sind:
• Der Inhalt eines Feldes ist eindeutig
• In jedem Datensatz müssen Daten stehen
• Ein Primärschlüssel kann sich auch aus mehreren Feldern
zusammensetzen
Michael Andriczka
DBMS
21
2. Von der Realwelt zum ER-Modell
2.4.2 Fremdschlüssel: Der Fremdschlüssel ist ein Attributwert, der einen
Schlüsselwert in einer anderen Tabelle darstellt und somit als eindeutiger
Verweis auf einen Datensatz in einer anderen Tabelle zeigt. Dies wird
auch als referentielle Integrität benannt.
Beispiel Fremdschlüssel:
Fremdschlüssel
KNr
PNr
Kurs
Primärschlüssel
BereichsNr
BereichsNr
Bereich
44
15
D
1
1
Sprache
45
15
G
2
2
Geisteswissenschaften
47
6
M
6
6
Naturwissenschaften
48
6
I
6
49
6
E
1
Michael Andriczka
Referentielle Integrität
DBMS
22
2. Von der Realwelt zum ER-Modell
2.5 Beziehungen
Die Wechselwirkungen und Abhängigkeiten zwischen Entitäten werden
durch Beziehungen (relationship) dargestellt. Die
Zusammenfassung gleichartiger Beziehungen zwischen Entitäten
erfolgt durch Beziehungsmengen.
Eine Beziehung wird nach Chen graphisch durch eine Raute
dargestellt. In ihr steht der Name der Beziehung. Als Name sollte ein
Verb gewählt werden.
gibt auf
Michael Andriczka
DBMS
23
2. Von der Realwelt zum ER-Modell
Die Beziehung wird durch eine Verbindungslinie, zwischen der die
Raute steht, dargestellt.
Zwischen den Entitätstypen KUNDE und BESTELLUNG besteht ein
Beziehungstyp „gibt auf“. Wenn es einen solchen Beziehungstyp gibt,
so kann (muss) eine konkrete Beziehung zwischen einem Paar der
dazu gehörenden Entitäten bestehen
KUNDE
1
gibt auf
n
BESTELLUNG
Man liest: KUNDE gibt auf Bestellungen bzw. Bestellungen werden
aufgegeben von Kunde.
Michael Andriczka
DBMS
24
2. Von der Realwelt zum ER-Modell
2.6 Die sogenannte Miniwelt (2)
Drei der wichtigsten Objekttypen aus der Miniwelt der Firma Mustermann
werden nun mit den dazugehörigen Attributen als Datenmodell dienen. Es
handelt sich hierbei um die Objekte
Kunden:
Bestellung:
Artikel:
Michael Andriczka
alle Kunden, die Bestellungen aufgeben
die offenen Bestellungen der Kunden
alle lieferbaren Artikel
DBMS
25
2. Von der Realwelt zum ER-Modell
ER-Modell:
KdNr
KUNDE
KName
1
gibt auf
n
BestellNr
BESTELLUNG
n
Bestellposition
n
ArtikelNr
Datum
Menge
Bez
ARTIKEL
Preis
Michael Andriczka
DBMS
26
3. Vom Modell zur Datenbank
3.1 Umsetzung des ER-Modells in das relationale Datenmodell
Das ER-Modell besitzt zwei grundlegende Strukturierungskonzepte:
• Entitytypen und
• Beziehungstypen
Dem steht im relationalen Modell nur ein einziges Strukturierungskonzept –
nämlich die Relation – gegenüber. Also werden sowohl Entitytypen als auch
Beziehungstypen jeweils auf eine Relation (Tabelle) abgebildet.
Zu den Entitytypen als auch zu den Beziehungstypen aus dem vorherigen
ER-Modell werden nun Relationen gebildet.
Hierbei werden die Spalten als Attribute (Felder) bezeichnet. Die Attribute
müssen innerhalb einer Relation eindeutig benannt sein.
Die Zeilen der Tabelle entsprechen den Tupeln der Relation.
Michael Andriczka
DBMS
27
3. Vom Modell zur Datenbank
KUNDE :
BESTELLUNG :
BESTELLPOSITION :
ARTIKEL :
{KdNr, KName}
{BestellNr, Datum, KdNr}
{BestellNr, ArtikelNr, Menge}
{ArtikelNr, Bez, Preis}
ER-Modell
Entity = Objekt
Relationship = Beziehung
Entität
KUNDE
Relationales Modell
Relation = zweidimensionale
Tabelle
Schlüsselattribut
Entität
KUNDE
KdNr
KdNr
KName
Michael Andriczka
Schlüsselattribut
DBMS
KName
001112
Meier
001535
Schulz
28
3. Vom Modell zur Datenbank
3.2 Normalisierung
Unter Normalisierung versteht man das Aufteilen der Daten in Relationen
in der Art und Weise, dass sie am Ende den Normalisierungsregeln
entsprechen.
Normalisierungsgründe
• Minimierung redundanter Daten
• Vermeidung von Änderungsanomalien
• Reduzierung inkonsistenter Daten
• Entwerfen von Datenstrukturen, die eine einfache Pflege erlauben
Michael Andriczka
DBMS
29
3. Vom Modell zur Datenbank
3.2.1 0.Normalform
Die Normalformenlehre von Codd besagt, dass sich eine Relation nur dann
in der ersten Normalform befindet, wenn der Wertebereich der Attribute
elementar ist.
PNr
Vorname
15
Hugo
6
Detlef
Michael Andriczka
Name
Straße
PLZ
Wohnort
KNr
Kurs
Meier
Schulstr.1
10124
Berlin
44,
D,
G
Euler
Maiweg 5
54294
Trier
47,
49
M,
I,
E
DBMS
30
3. Vom Modell zur Datenbank
3.2.2 1.Normalform
Eine Relation ist in der ersten Normalform, wenn alle Attribute nur atomare
Werte beinhalten.
PNr
Vorname
15
Hugo
15
Name
Straße
PLZ
Wohnort
KNr
Kurs
Meier
Schulstr.1
10124
Berlin
44
D
Hugo
Meier
Schulstr.1
10124
Berlin
45
G
6
Detlef
Euler
Maiweg 5
54294
Trier
47
M
6
Detlef
Euler
Maiweg 5
54294
Trier
48
I
6
Detlef
Euler
Maiweg 5
54294
Trier
49
E
Eindeutige Identifikation durch Primärschlüssel
Redundanzfreiheit
Da hier Anomalien in der 1NF auftreten können, ist es sinnvoll, die Relation
in die 2NF zu überführen.
Michael Andriczka
DBMS
31
3. Vom Modell zur Datenbank
3.2.3 2.Normalform
Eine Relation ist in der zweiten Normalform, wenn sie sich in der ersten
Normalform befindet und jedes Nicht-Schlüssel-Attribut funktional vom
Gesamtschlüssel abhängig ist, nicht aber von einzelnen Schlüsselteilen.
PNr
Vorname
Name
Straße
PLZ
Wohnort
KNr
Kurs
15
Hugo
Meier
Schulstr.1
15
Hugo
Meier
6
Detlef
6
6
Bereich
10124
Berlin
44
D
Sprache
Schulstr.1
10124
Berlin
45
G
Geisteswissenschaften
Euler
Maiweg 5
54294
Trier
47
M
Naturwissenschaften
Detlef
Euler
Maiweg 5
54294
Trier
48
I
Naturwissenschaften
Detlef
Euler
Maiweg 5
54294
Trier
49
E
Sprache
Vermeidung der Anomalien der 1NF durch Aufteilung der Entitäten in
seperate Tabellen.
Michael Andriczka
DBMS
32
3. Vom Modell zur Datenbank
Tabelle Lehrer
PNr
Vorname
15
Hugo
6
Detlef
Name
Straße
PLZ
Wohnort
Meier
Schulstr.1
10124
Berlin
Euler
Maiweg 5
54294
Trier
Wie man sieht, entfallen somit die Zeilen mit unterschiedlichen Kursen
derselben Lehrer. Die Kurse wurden in eine andere Tabelle ausgelagert, da
sie nicht voll funktional von dem Schlüsselattribut PNR abhängen.
Tabelle Kurse
KNr
Kurs
Bereich
44
D
Sprache
45
G
Geisteswissenschaften
47
M
Naturwissenschaften
48
I
Naturwissenschaften
49
E
Sprache
Michael Andriczka
DBMS
33
3. Vom Modell zur Datenbank
Mit den Tabellen Lehrer und Kurse besitzt man nun zwei Tabellen, die
nichts miteinander zu tun haben und somit nicht mehr den Zustand der
1NF genügen. Es muss also eine Tabelle geschaffen werden, die beide
Tabellen verbindet, jedoch die Redundanzen der Tabelle in der 1NF
vermeidet.
KNr
Kurs
Bereich
PNr
44
D
Sprache
15
45
G
Geisteswissenschaften
15
47
M
Naturwissenschaften
6
48
I
Naturwissenschaften
6
49
E
Sprache
6
PNr wurde zur Herstellung der referentiellen Integrität als Fremdschlüssel
in die Tabelle Kurse eingefügt.
Michael Andriczka
DBMS
34
3. Vom Modell zur Datenbank
3.2.4 3.Normalform
Beim Betrachten der Tabelle Kurse in der 2NF treten folgende Anomalien auf:
• Bereichsnummer hat mehrmals den selben Wert, während sich der Wert
des Primärschlüssels ändert
• Bereichsnamen treten mehrfach auf und müssten Änderungen in
mehreren Datensätzen geändert werden
transitive Abhängigkeit
KNr
PNr
Kurs
Bereich
BereichsNr
44
15
D
Sprache
1
45
15
G
Geisteswissenschaften
2
47
6
M
Naturwissenschaften
6
48
6
I
Naturwissenschaften
6
49
6
E
Sprache
1
Transitive Abhängigkeit: Abhängigkeit zwischen nicht Schlüsselattributen
Michael Andriczka
DBMS
35
3. Vom Modell zur Datenbank
Codd erkannte das Problem oder möglichen Schwachpunkt der 2NF
und entwickelte die 3NF.
Eine Relation ist in der dritten Normalform, wenn sie sich in der ersten
und in der zweiten Normalform befindet. Ferner sind keine funktionalen
Abhängigkeiten zwischen Attributen erlaubt, die nicht als Schlüssel
definiert sind.
KNr
PNr
Kurs
BereichsNr
BereichsNr
Bereich
44
15
D
1
1
Sprache
45
15
G
2
2
Geisteswissenschaften
47
6
M
6
6
Naturwissenschaften
48
6
I
6
49
6
E
1
Michael Andriczka
DBMS
36
3. Vom Modell zur Datenbank
3.2.5 Normalisierte Tabellen:
Tabelle Lehrer:
PNr Vorname
Tabelle Kurse:
Tabelle Bereich:
Michael Andriczka
Name
Straße
PLZ
Wohnort
15
Hugo
Meier
Schulstr.1
10124
Berlin
6
Detlef
Euler
Maiweg 5
54294
Trier
KNr
PNr
Kurs
BereichsNr
44
15
D
1
45
15
G
2
47
6
M
6
48
6
I
6
49
6
E
1
BereichsNr
Bereich
1
Sprache
2
Geisteswissenschaften
6
Naturwissenschaften
DBMS
37
4. Schlussbetrachtung
Jede in der Datenbank gespeicherte Information wird in solchen
„einfachen“ Tabellen festgehalten. Eine Tabelle hat immer einen fest
strukturierten Aufbau aus Zeilen (Tupeln) und Spalten (Attributen), der
einmalig beim Anlegen der Tabelle definiert wird und sich während der
gesamten Lebensdauer der Tabelle nur mittels DDL-Befehlen ändern
kann.
Zur Kommunikation mit dem DBMS wird dem Endbenutzer in der Regel
ein Programm zur Verfügung gestellt, welches mit dem DBS
kommuniziert. Dieses Anwendungsprogramm bildet die Schnittstelle
zwischen dem Benutzer und dem DBMS.
Michael Andriczka
DBMS
38
Herunterladen