Datenbanksysteme - Datenbanken und

Werbung
Datenbanksysteme
Datenbanken und Datenbankmanagementsystem
Iváncsy Tamás
2011
Outline
1
2
3
4
5
Grundbegriffe
Datenbanksystem
Benutzer einen Datenbank
Abstraktionsebenen
Datenmodellierung
Datenbankschema
Entität und Attribut
Beziehungen
Datenmodelle
Netzwerkdatenbankmodell
Relationales Datenbankmodell
Relationale Datenbank
Tabellen
Relationale Algebra
Planung von relationalen Datenbanken
Anomalien
Schlüssel
Normalformen
SQL
Datentypen
SQL Befehle
Transaktionen
Einige SQL Server
Iváncsy T. ()
Datenbanksysteme
2011
2 / 51
Outline
1
2
3
4
5
Grundbegriffe
Datenbanksystem
Benutzer einen Datenbank
Abstraktionsebenen
Datenmodellierung
Datenbankschema
Entität und Attribut
Beziehungen
Datenmodelle
Netzwerkdatenbankmodell
Relationales Datenbankmodell
Relationale Datenbank
Tabellen
Relationale Algebra
Planung von relationalen Datenbanken
Anomalien
Schlüssel
Normalformen
SQL
Datentypen
SQL Befehle
Transaktionen
Einige SQL Server
Iváncsy T. ()
Datenbanksysteme
2011
2 / 51
Outline
1
2
3
4
5
Grundbegriffe
Datenbanksystem
Benutzer einen Datenbank
Abstraktionsebenen
Datenmodellierung
Datenbankschema
Entität und Attribut
Beziehungen
Datenmodelle
Netzwerkdatenbankmodell
Relationales Datenbankmodell
Relationale Datenbank
Tabellen
Relationale Algebra
Planung von relationalen Datenbanken
Anomalien
Schlüssel
Normalformen
SQL
Datentypen
SQL Befehle
Transaktionen
Einige SQL Server
Iváncsy T. ()
Datenbanksysteme
2011
2 / 51
Outline
1
2
3
4
5
Grundbegriffe
Datenbanksystem
Benutzer einen Datenbank
Abstraktionsebenen
Datenmodellierung
Datenbankschema
Entität und Attribut
Beziehungen
Datenmodelle
Netzwerkdatenbankmodell
Relationales Datenbankmodell
Relationale Datenbank
Tabellen
Relationale Algebra
Planung von relationalen Datenbanken
Anomalien
Schlüssel
Normalformen
SQL
Datentypen
SQL Befehle
Transaktionen
Einige SQL Server
Iváncsy T. ()
Datenbanksysteme
2011
2 / 51
Outline
1
2
3
4
5
Grundbegriffe
Datenbanksystem
Benutzer einen Datenbank
Abstraktionsebenen
Datenmodellierung
Datenbankschema
Entität und Attribut
Beziehungen
Datenmodelle
Netzwerkdatenbankmodell
Relationales Datenbankmodell
Relationale Datenbank
Tabellen
Relationale Algebra
Planung von relationalen Datenbanken
Anomalien
Schlüssel
Normalformen
SQL
Datentypen
SQL Befehle
Transaktionen
Einige SQL Server
Iváncsy T. ()
Datenbanksysteme
2011
2 / 51
Grundbegriffe
Datenbanksystem
Datenbanksystem
Datenbank
Ein Datenbank ist die zusammenhängende, geordnete,
gespeicherte Menge der Daten, die eine Teil der reellen Welt
beschreiben. (database, DB)
Die Daten in einem Kartei sind nicht als Datenbank zu betrachten, weil die später beschriebenen
Operationen nicht durchführbar sind oder nur mit großen Schwierigkeiten.
Darum sind nur Computerdatenbanken richtige Datenbanken.
Datenbankmanagementsystem
Das Datenbankmanagementsystem ist ein Softwaresystem,
das den Zugriff zu den Daten in einen Datenbank ermöglicht.
(database management system, DBMS)
Zugriffsmöglichkeiten auf den Daten sind: erzeugen, modifizieren, löschen oder lesen . Das
Datenbankmanagementsystem ermöglicht die Handlung von gespeicherten Daten für den
Benutzer, ohne vom Prinzip der gespeicherten Daten oder von Algorithmen des
Managementystems Kentnisse haben müssen.
Iváncsy T. ()
Datenbanksysteme
2011
3 / 51
Grundbegriffe
Datenbanksystem
Die Teile eines Datenbanksystems
Iváncsy T. ()
Datenbanksysteme
2011
4 / 51
Grundbegriffe
Datenbanksystem
Einteilung der Aufgaben
Die Aufgabe des Datenbankmanagementsystems sind
die Speicherung gewisser zusammenhängender Daten
die Wartung des aktuellen Standes der Daten
die schnelle und zuverlässige Abfragung der nötigen Daten
Die Aufgabe der Datenbankplanung sind
die Definition von Logik der Datenstruktur
die Definition der physikalischen Speicherung der Daten
die Planung der durchführbaren Operationen auf der Daten
Iváncsy T. ()
Datenbanksysteme
2011
5 / 51
Grundbegriffe
Datenbanksystem
Erwartungen von einen DBS
Datensicherheit
Zuverlässige Speicherung der Daten
Die gespeicherte Daten sollen nicht beschädigt werden bzw.
verloren gehen.
redundante Speicherung
zeitliche Sicherheitskopien (Datensicherung)
Schutz gegen unbefugten Zugriff
Die Benutzer können nur auf die für sie erlaubten Daten zugreifen.
Hardwareschutz (Hardwareschlüssel)
Chipkarte und Pin (z. B. Geldautomaten)
Softwareschutz (Benutzername und Passwort)
Bei einen 10 Zeichen lange Kennwort ist die Nummer der verschiedene Möglichkeiten
6210 ≈ 8 ∗ 1017 . Wenn ein Rechner in jede Sekunde 106 Passwort versuchen kann, dann dauert
eine sichere Einbruch mit Bruteforce ≈ 8 ∗ 1011 s≈ 2.5 ∗ 104 Jahren.
Iváncsy T. ()
Datenbanksysteme
2011
6 / 51
Grundbegriffe
Datenbanksystem
Erwartungen von einen DBS
Integrität
formelle Integrität (oder Integrität des Inhalts)
Die Daten sollen in einen gewissen Bereich liegen (z. B. Schugröße oder Alter soll größer
als Null sein). Die Überprüfung ist einfach.
referenz Integrität
Zwei verschiedene Daten sollten im Zusammenhang sein (z. B. Wohnort und PLZ oder in
einem Lagerhaus die minimale und maximale Vorrat von Ware). Dies ist auch einfach zu
überprüfen.
strukturelle Integrität
Bei der Planung der Struktur der Datenbank angegebene Vorraussetzungen sollen nicht
beschädigt werden (z. B. Vorassuetzungen: eine Schule hat nur ein Direktor, eine Frau hat
nur ein Mann) Die Überprüfung der strukturelle Integrität ist nicht einfach (2 Direktoren für
eine Schule in der Datenbank verletzt diese Integrität).
Iváncsy T. ()
Datenbanksysteme
2011
7 / 51
Grundbegriffe
Datenbanksystem
Erwartungen von einen DBS
Konsistenz
Im Allgemeinen die Datenbanksysteme haben die Möglichkeit für
Mehrbenutzerbetrieb.
Wenn mehrere Benutzer zum gleichen Zietpunk auf die gleichen Daten
Operationen durchführen, dann sollten diese Operationen keine
Nebeneffekte haben.
z. B. Es gibt 100 Staubsauger auf Lager. Von zwei Verkäufern der eine verkauft 10 der
andere 12 Geräte an einem Tag. Am Ende des Tages modifizieren beide die
Datenbank. Wenn sie es zu verschiedenen Zeitpunkten machen, wird der Vorrat auf
78 sinken. Wenn aber der eine die Vorratsgröße vor der Modifizierung abfragte bzw.
der andere den Vorrat schon vorher überprüfte, sehen beide die Ausgangszahl 100.
Die endgültige Vorratszahl ist abhängig von der Reihenfolge der Modifizierung; in
diesem Fall 90 oder 88. Beide Ergebnisse sind FALSCH!
Der Datenbankmanagementsystem soll sicherstellen, daß alle
Modifizierungen korrekt durchgefürt werden!
Iváncsy T. ()
Datenbanksysteme
2011
8 / 51
Grundbegriffe
Benutzer einen Datenbank
Die möglichen Benutzer einen Datenbank
nicht gebildete Benutzer (allgemeine Benutzer)
wenige Kentnisse über den Datenbank
wenige erlaubte Operationen
Operationen nur über eine Anwendung
Anwendungsprogrammierer
kennt die Sprache der Abfrage (z. B. SQL)
kennt die Struktur der Datenbanken
kennt nicht den Inhalt der Datenbank
Datenbank Administrator
generieren von Datenbanken
Modifizerung der Struktur der Datenbank
Einstellung der Berechtigungen
Datensicherung und Datenwiederherstellung
Iváncsy T. ()
Datenbanksysteme
2011
9 / 51
Grundbegriffe
Iváncsy T. ()
Benutzer einen Datenbank
Datenbanksysteme
2011
10 / 51
Grundbegriffe
Iváncsy T. ()
Benutzer einen Datenbank
Datenbanksysteme
2011
11 / 51
Grundbegriffe
Iváncsy T. ()
Benutzer einen Datenbank
Datenbanksysteme
2011
12 / 51
Grundbegriffe
Iváncsy T. ()
Benutzer einen Datenbank
Datenbanksysteme
2011
13 / 51
Grundbegriffe
Iváncsy T. ()
Benutzer einen Datenbank
Datenbanksysteme
2011
14 / 51
Grundbegriffe
Iváncsy T. ()
Benutzer einen Datenbank
Datenbanksysteme
2011
15 / 51
Grundbegriffe
Abstraktionsebenen
Abstraktionsebenen
physikalische Datenbank
Die physikalische Anordnung der Daten im Speichersystem.
prinzipielle Aufbau der Datenbank
Es ist das Modell, wie die Datenbank der reellen Welt abbildet.
Ansicht (View)
Die Gruppe der Daten, die ein Benutzer zugreifen kann. Wenn
eine Datenbank mehrere Anwendungen hat, gibt es für jede eine
eigene Ansicht. (z.B. Datenbank einer Fluggesellschaft:
Pilotengehälter bzw. Fluggästeliste)
Iváncsy T. ()
Datenbanksysteme
2011
16 / 51
Datenmodellierung
Datenbankschema
Das Datenbankschema
Bei der Planung einer Datenbank wird ein Modell aufgestellt.
In diesem Modell wird festgelegt
welche Daten im Datenbank gespeichert werden
welchen Zweck die gespeicherte Daten haben
welchen Zusammenhang zwischen den Daten existieren
Die Datenbankschemas beschreiben die Stuktur und Zusammenhang
der gespeicherten Daten.
Iváncsy T. ()
Datenbanksysteme
2011
17 / 51
Datenmodellierung
Datenbankschema
Die Unabhängigkeit der Daten
Die Unabhängigkeit der Daten kann erreicht werden, wenn bei der
Änderung des Datenbankschemas die Daten nicht verändert werden.
physikalische Datenunabhängigkeit
Die Änderungen im physikalischen Betrieb lassen den
prinzipiellen Aufbau der Datenbank unberührt.
logische Datenunabhängigkeit
Die Änderungen im logischen Datenschema lassen die Ansichten
der Anwendungen unverändert.
Iváncsy T. ()
Datenbanksysteme
2011
18 / 51
Datenmodellierung
Entität und Attribut
Entität und Attribut
Die Entität
Als Entität wird alles bezeichnet, worüber Daten in der Datenbank
gespeichert werden können. Die Entitäten können materiell oder
immateriell, konkret oder abstrakt sein.
z. B. In einem System, wo Städte verwaltet werden, ist eine Stadt eine Entität. In einem System,
wo persönliche Daten verwaltet werden ist eine Stadt nur ein Eigenschaft.
Das Attribut (Eigenschaft)
Jede Entität hat Eigenschaften (Attribute). Die Attribute sind in der
Datenbank gespeichert. Die Attribute können nicht selbständig
existieren, da sie nur Entitäten oder Beziehungen beschreiben. Die
Attribute haben einen Bedeutung (z. B. Augenfarbe) und einen Wert
(z. B. blau).
Iváncsy T. ()
Datenbanksysteme
2011
19 / 51
Datenmodellierung
Entität und Attribut
Die Typen der Attribute
Komplexität
einfaches Attribut ist eine elementare Information.
z. B. Nachname, Augenfarbe . . .
komplexes Attribut besteht aus mehreren Teilattributen.
z. B. Wohnort, Name der Mutter . . .
Wert
Attribute mit einem Wert kann zu ener Entität nur einen Wert haben.
z. B. Name, Name der Mutter . . .
Attribute mit mehreren Werte kann zu einer Entität mehrere Werte haben.
z. B. Telefonnumer, Sprachkentnisse . . .
Schlüssel
Als Schlüssel wird das Attribut oder die Gruppe der Attributen genannt, das
oder die ein Exemplar der Entitäten eindeutig identifizieren.
Iváncsy T. ()
Datenbanksysteme
2011
20 / 51
Datenmodellierung
Beziehungen
Beziehungen
Zwischen den Exemplaren der Entitäten können Beziehungen
existieren.
Die Beziehung zwischen den Exemplaren können
eins zu einem
viel zu einem
viel zu vielem
sein.
Iváncsy T. ()
Datenbanksysteme
2011
21 / 51
Datenmodellierung
Beziehungen
eins zu einem Beziehung
Es ist eine Beziehung zwischen Exemplaren zweier Entitätsmengen, in
der die einzelne Exemplare der einen Entitätsmenge nur mit einem
einzigem Exemplar aus der anderen Entitätsmenge in Beziehung
stehen können.
Beispiele:
HEIRAT (Mensch, Mensch)
LEITER (Firma, Mensch)
Iváncsy T. ()
Datenbanksysteme
2011
22 / 51
Datenmodellierung
Beziehungen
viele zu einer Beziehung
In diesem Fall steht genau ein Exemplar der einen Entitätsmenge zu
mehreren Exemplaren der anderen Entitätsmenge in Beziehung. Die
Angehörigkeit ist in jedem Fall leicht zu bestimmen.
Beispiel:
ARBEITET (Lehrer, Lehrstuhl)
Ein Lehrer arbeitet an einem Lehrstuhl, aber an einem Lehrstuhl
arbeten mehrere Lehrer.
Iváncsy T. ()
Datenbanksysteme
2011
23 / 51
Datenmodellierung
Beziehungen
viel zu vielem Beziehung
In diesem Fall stehen mehr Exemplare der einen Entitätsmenge zu
mehr Exemplare der anderen Entitätsmenge in Beziehung.
Beispiel:
LERNT (Lehrer, Student)
Ein Lehrer kann mehrere Studenten lehren, und ein Student kann bei
mehreren Lehrern lernen.
Iváncsy T. ()
Datenbanksysteme
2011
24 / 51
Datenmodelle
Die Datenmodelle
Hierarchisch:
Die Datenobjekte können ausschließlich in einer
Eltern-Kind-Beziehung zueinander stehen. Es ist das älteste
Datenmodell von allen.
Netzwerkartig:
Die Datenobjekte werden miteinander in Netzen verbunden.
Relational:
Die Daten werden zeilenweise in Tabellen verwaltet. Es kann
beliebige Beziehungen zwischen Daten geben. Sie werden
durch Werte bestimmter Tabellenspalten festgelegt.
Objektorientiert:
Die Beziehungen zwischen Datenobjekten werden vom
Datenbanksystem selbst verwaltet. Objekte können
Eigenschaften und Daten von anderen Objekten erben.
Iváncsy T. ()
Datenbanksysteme
2011
25 / 51
Datenmodelle
Netzwerkdatenbankmodell
Netzwerkdatenbankmodell
Das Netzwerkdatenbankmodell wurde von der Data Base Task Group (DBTG) des Programming
Language Committee (später COBOL Committee) der Conference on Data Systems Language
(CODASYL) vorgeschlagen, der Organisation die auch für die Definition der Programmiersprache
COBOL verantwortlich war. Es ist auch unter den Namen CODASYL Datenbankmodell oder
DBTG Datenbankmodell bekannt und entsprechend stark von Cobol beeinflusst.
Der fertige DBTG-Bericht wurde 1971, etwa zur gleichen Zeit wie die ersten Veröffentlichungen
über das relationale Datenbankmodell, vorgestellt.
Er enthielt Vorschläge für drei verschiedene Datenbanksprachen:
1
Eine Schema Data Description Language (Schema-Datenbeschreibungssprache),
2
eine Subschema Data Description Language (Subschema-Datenbeschreibungssprache)
3
und eine Data Manipulation Language (Datenmanipulationssprache).
Das Netzwerk-Modell fordert keine strenge Hierarchie sondern kann auch m:n-Beziehungen
abbilden, d. h. ein Datensatz kann mehrere Vorgänger haben. Auch können mehrere Datensätze
an oberster Stelle stehen. Es existieren meist unterschiedliche Suchwege, um zu einem
bestimmten Datensatz zu kommen. Man kann es als eine Verallgemeinerung des hierarchischen
Datenbankmodells sehen.
Iváncsy T. ()
Datenbanksysteme
2011
26 / 51
Datenmodelle
Relationales Datenbankmodell
Relationales Datenbankmodell
Grundlage des Konzeptes relationaler Datenbanken ist die Relation.
Formale Grundlage der Relation im Sinne einer Datenbankrelation ist die
mathematische Definition.
Die Relation ist die Basis der relationalen Algebra, die von Edgar F. Codd
entwickelt wurde.
Eine Relation besteht aus Attributen und Tupeln.
Ein Attribut beschreibt den Typ eines möglichen Attributwertes und
bezeichnet ihn mit einem Attributnamen.
Ein Tupel stellt eine konkrete Kombination von Attributwerten dar und
wird im Datenbankbereich auch als Datensatz bezeichnet.
Trotz der mathematischen, abstrakten Definition des Datenbankmodells sind
relationale Datenbanken vergleichsweise einfach und flexibel zu handhaben.
Dies hatte großen Einfluss auf den Erfolg dieser Datenbanktechnik.
Iváncsy T. ()
Datenbanksysteme
2011
27 / 51
Relationale Datenbank
Tabellen
Relationale Datenbank
Tabellen einer relationale Datenbank
Im Zusammenhang mit relationalen Datenbanken ist es üblich, eine
Relation durch eine Tabelle zu beschreiben. In Tabellenform
entsprechen die Attribute den Spaltenköpfen, die Attributwerte den in
den Spalten vorhandenen Einträgen. Ein Tupel (record) entspricht
einer Zeile einer Tabelle.
Attribut 1
Wert
...
...
Iváncsy T. ()
Attribut 2
...
...
...
Datenbanksysteme
Attribut n
...
2011
28 / 51
Relationale Datenbank
Tabellen
Relationale Datenbank
Tabellen einer relationale Datenbank
Sowohl der Zusammenhang von Attributen bzw. Attributwerten innerhalb
einer Tabelle, als auch eine Verknüpfung von Tabellen durch Fremdschlüssel,
stellen eine Relation dar.
Eine Beziehung zwischen zwei Tabellen stellt mit dem Zusammenführen von
zwei Relationen letztlich eine Vergrößerung der Anzahl an Elementen dar.
Betrachtet man eine Beziehung als Relation, so stellen sich ihre Elemente als
die Vereinigung der Elemente der beiden verknüpften Relationen dar.
Oft werden Attributwerte fälschlich als Attribut bezeichnet!
Gäbe es in der Datenbanktabelle für jede mögliche Kombination von
Attributwerten eine eigene Zeile, dann würde diese Tabelle das kartesische
Produkt der Wertemengen für die Spalten darstellen. Normalerweise enthält
eine Datenbanktabelle nur eine sehr kleine Teilmenge der möglichen Tupel,
sie stellt also eine Untermenge dieses kartesischen Produkts dar.
Iváncsy T. ()
Datenbanksysteme
2011
29 / 51
Relationale Datenbank
Relationale Algebra
Grundlegendes zur relationalen Algebra
Die wesentlichen Operationen
Vereinigung (union)
Differenz (set difference)
Durchschnitt (intersection)
Projektion (projection)
Selektion (selection)
Division (division)
Kreuzprodukt oder Kartesisches Produkt (cross product, cross
join, cartesian product)
Verbund (join)
θ-Verbund (θ-join)
Iváncsy T. ()
Datenbanksysteme
2011
30 / 51
Relationale Datenbank
Planung von relationalen Datenbanken
Planung von relationalen Datenbanken
Zwei Verfahren für den Planung von relationalen Datenbanken
Planung mit ER-Modell
Auf Grund der Entitäten und Verbindungen werden die Tabellen
der relationellen Datenbank generiert. Die Entitäten und
Verbindungen erscheinen in relationalen Datenbank als
Tabellen (Relationen).
Planung mit Schemadekomposition
Theoretisch alle Eigenschaften können in eine Relation
angegeben werden. In diesem Fall ist die Datenbank eine
einzige Tabelle. Dies ist die universelle Relation. Die
universelle Relation beinhaltet viele Informationen redundant
(multipiliziert). Die Nutzung einer solchen Datenbank führt zu
Anomalien. Die Teilung der Relation auf mehrere Relationen
verringert die Redundanz und die Wahrscheinlichkeit der
Anomalien wird auch geringer.
Iváncsy T. ()
Datenbanksysteme
2011
31 / 51
Relationale Datenbank
Anomalien
Anomalien
Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt
werden.
Name
Lehrstuhl
Telefon
Lehrstuhlleiter
Michael Seifert
Merlin Blüm
Gunther Hohmann
Sandra Eggeler
Klaus Schlösser
Werkstofftechnik
Werkstofftechnik
Verkehrswesen
Werkstoffwissenschaft
Werkstoffwissenschaft
32-12345
32-12345
32-25252
32-98765
32-98765
Justin Theisen
Justin Theisen
Werner Geistefeldt
Michael Neuking
Michael Neuking
Anomalie der Speicherung
Der Lehrstuhlleiter wird mehrmals gespeichert und benutzt so unnötige Seicherkapazität.
Iváncsy T. ()
Datenbanksysteme
2011
32 / 51
Relationale Datenbank
Anomalien
Anomalien
Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt
werden.
Name
Lehrstuhl
Telefon
Lehrstuhlleiter
Michael Seifert
Merlin Blüm
Gunther Hohmann
Sandra Eggeler
Klaus Schlösser
Werkstofftechnik
Werkstofftechnik
Verkehrswesen
Werkstoffwissenschaft
Werkstoffwissenschaft
32-12345
32-12345
32-25252
32-98765
32-98765
Justin Theisen
Justin Theisen
Werner Geistefeldt
Michael Neuking
Michael Neuking
Anomalie der Speicherung
Der Lehrstuhlleiter wird mehrmals gespeichert und benutzt so unnötige Seicherkapazität.
Iváncsy T. ()
Datenbanksysteme
2011
32 / 51
Relationale Datenbank
Anomalien
Anomalien
Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt
werden.
Name
Lehrstuhl
Telefon
Lehrstuhlleiter
Michael Seifert
Merlin Blüm
Gunther Hohmann
Sandra Eggeler
Klaus Schlösser
Werkstofftechnik
Werkstofftechnik
Verkehrswesen
Werkstoffwissenschaft
Werkstoffwissenschaft
32-12345
32-12345
32-25252
32-98765
32-98765
Justin Theisen
Justin Theisen
Werner Geistefeldt
Michael Neuking
Michael Neuking
Anomalie der Änderung
Wenn die Telefonnummer eines Lehrstuhles geändert wird, sollte es in mehreren Stellen
geändert werden.
Iváncsy T. ()
Datenbanksysteme
2011
33 / 51
Relationale Datenbank
Anomalien
Anomalien
Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt
werden.
Name
Lehrstuhl
Telefon
Lehrstuhlleiter
Michael Seifert
Merlin Blüm
Gunther Hohmann
Sandra Eggeler
Klaus Schlösser
Werkstofftechnik
Werkstofftechnik
Verkehrswesen
Werkstoffwissenschaft
Werkstoffwissenschaft
32-12345
32-12345
32-25252
32-98765
32-98765
Justin Theisen
Justin Theisen
Werner Geistefeldt
Michael Neuking
Michael Neuking
Anomalie der Änderung
Wenn die Telefonnummer eines Lehrstuhles geändert wird, sollte es in mehreren Stellen
geändert werden.
Iváncsy T. ()
Datenbanksysteme
2011
33 / 51
Relationale Datenbank
Anomalien
Anomalien
Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt
werden.
Name
Lehrstuhl
Telefon
Lehrstuhlleiter
Michael Seifert
Merlin Blüm
Gunther Hohmann
Sandra Eggeler
Klaus Schlösser
Werkstofftechnik
Werkstofftechnik
Verkehrswesen
Werkstoffwissenschaft
Werkstoffwissenschaft
32-12345
32-12345
32-25252
32-98765
32-98765
Justin Theisen
Justin Theisen
Werner Geistefeldt
Michael Neuking
Michael Neuking
Anomalie der Einfügung
Wenn die Telefonnummerangabe erforderlich ist, ist es unmöglich, einen neuen Mitarbeiter ohne
Telefonnummer zu einem neuen Lehrstuhl hinzuzufügen.
Iváncsy T. ()
Datenbanksysteme
2011
34 / 51
Relationale Datenbank
Anomalien
Anomalien
Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt
werden.
Name
Lehrstuhl
Telefon
Lehrstuhlleiter
Michael Schumacher
Michael Seifert
Merlin Blüm
Gunther Hohmann
Sandra Eggeler
Klaus Schlösser
Plasmaphysik
Werkstofftechnik
Werkstofftechnik
Verkehrswesen
Werkstoffwissenschaft
Werkstoffwissenschaft
???
32-12345
32-12345
32-25252
32-98765
32-98765
Julian Schulze
Justin Theisen
Justin Theisen
Werner Geistefeldt
Michael Neuking
Michael Neuking
Anomalie der Einfügung
Wenn die Telefonnummerangabe erforderlich ist, ist es unmöglich, einen neuen Mitarbeiter ohne
Telefonnummer zu einem neuen Lehrstuhl hinzuzufügen.
Iváncsy T. ()
Datenbanksysteme
2011
34 / 51
Relationale Datenbank
Anomalien
Anomalien
Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt
werden.
Name
Lehrstuhl
Telefon
Lehrstuhlleiter
Michael Seifert
Merlin Blüm
Gunther Hohmann
Sandra Eggeler
Klaus Schlösser
Werkstofftechnik
Werkstofftechnik
Verkehrswesen
Werkstoffwissenschaft
Werkstoffwissenschaft
32-12345
32-12345
32-25252
32-98765
32-98765
Justin Theisen
Justin Theisen
Werner Geistefeldt
Michael Neuking
Michael Neuking
Anomalie der Löschung
Da ganze Zeilen nur gelöscht werden können, wenn der letzte Mitarbeiter kündigt, wird auch der
Lehrstuhl aus der Datenbank verschwinden.
Iváncsy T. ()
Datenbanksysteme
2011
35 / 51
Relationale Datenbank
Anomalien
Anomalien
Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt
werden.
Name
Lehrstuhl
Telefon
Lehrstuhlleiter
Michael Seifert
Merlin Blüm
Gunther Hohmann
Sandra Eggeler
Klaus Schlösser
Werkstofftechnik
Werkstofftechnik
Verkehrswesen
Werkstoffwissenschaft
Werkstoffwissenschaft
32-12345
32-12345
32-25936
32-98765
32-98765
Justin Theisen
Justin Theisen
Werner Geistefeldt
Michael Neuking
Michael Neuking
Anomalie der Löschung
Da ganze Zeilen nur gelöscht werden können, wenn der letzte Mitarbeiter kündigt, wird auch der
Lehrstuhl aus der Datenbank verschwinden.
Iváncsy T. ()
Datenbanksysteme
2011
35 / 51
Relationale Datenbank
Schlüssel
Der Schlüssel
Der Schlüssel
ist eine solche Gruppe der Attributen, die alle
Attribute des Tupels eindeutig bestimmen.
es gibt kein Teil der Gruppe, die alle Attributen des
Tupels eindeutig bestimmen. Mit anderen Wörtern:
es ist ein minimaler Schlüssel.
Der Superschlüssel
ist ein Schlüssel, der die zweiten Bedingung nicht erfüllt.
Dadurch können Attribute weggelassen werden, so daß
es immer noch ein Schlüssel bleibt.
Ein trivialer Superschlüssel wäre zum Beispiel die Menge aller Attribute einer
Relation gemeinsam (trivial deswegen, weil eine Relation eine Menge von
Tupeln ist. Die Elemente von Mengen müssen eindeutig sein; also darf es in
einer Relation keine zwei gleichen Tupel geben)
Iváncsy T. ()
Datenbanksysteme
2011
36 / 51
Relationale Datenbank
Schlüssel
Der Schlüssel
Eigenschaften des Schlüssels:
der Schlüssel bestimmt ein einziges Tupel der Relation
es gibt kein Teil der Attributen im Schlüssel, die auch Schlüssel
sind
die Werte in der Attributen im Schlüssel sollen nicht NULL sein
jede Relation hat ein Schlüssel
eine Relation kann mehrere Schlüssel haben
Wenn eine Relation mehrere
Schlüssel hat, dann sollte eines davon
als Primärschlüssel gewählt werden.
Die anderen möglichen Schlüsselen
sind die Schlüsselkandidaten.
(auch Kandidatenschlüsseln oder
Alternativschlüsseln genannt)
Iváncsy T. ()
Datenbanksysteme
2011
37 / 51
Relationale Datenbank
Normalformen
Normalformen
1. Normalform (1NF)
2. Normalform (2NF)
3. Normalform (3NF)
Boyce-Codd-Normalform (BCNF)
Ziel der Normalisierung
Das Ziel der Normalisierung ist die Vermeidung von den oben
genannten Anomalien.
Anders formuliert: Verringerung von Redundanz und Erhöhung von
Konsistenz.
Iváncsy T. ()
Datenbanksysteme
2011
38 / 51
Relationale Datenbank
Normalformen
1. Normalform (1NF)
Jedes Attribut der Relation muss einen atomaren Wertebereich haben.
Das heißt, zusammengesetzte, mengenwertige oder geschachtelte
Wertebereiche (relationenwertige Attributwertebereiche) sind nicht
erlaubt. Damit sind auch Wiederholungsgruppen nicht zugelassen.
Kurz: Kein Attributwertebereich kann in weitere (sinnvolle) Teilbereiche
aufgespalten werden .
Dass die Relation frei von Wiederholungsgruppen sein muss,
bedeutet, dass Attribute, die gleiche oder gleichartige Information
enthalten, in eine andere Relation ausgelagert werden müssen.
Ein Beispiel für eine Wiederholungsgruppe wäre eine Spalte Kind, die
mehrere Kindern enthält, oder mehrere Spalten benötigt Kind1, Kind2,
Kind3.
Iváncsy T. ()
Datenbanksysteme
2011
39 / 51
Relationale Datenbank
Normalformen
2. Normalform (2NF)
Eine Relation ist in der zweiten Normalform, wenn die erste
Normalform vorliegt und kein Nichtschlüsselattribut voll funktional
abhängig von einer echten Teilmenge eines Schlüsselkandidaten ist.
Anders ausgedrückt: Jedes nicht-primäre Attribut (nicht Teil eines
Schlüssels) ist jeweils von allen ganzen Schlüsseln abhängig, nicht nur
von einem Teil eines Schlüssels. Wichtig ist hierbei, dass die
Nichtschlüsselattribute wirklich von allen Schlüsseln vollständig
abhängen.
Iváncsy T. ()
Datenbanksysteme
2011
40 / 51
Relationale Datenbank
Normalformen
3. Normalform (3NF)
Die dritte Normalform ist erreicht, wenn sich das Relationenschema in
2NF befindet, und jedes Nichtschlüsselattribut von keinem
Schlüsselkandidaten transitiv abhängt.
Ein Nichtschlüsselattribut darf nicht von einer Menge aus
Nichtschlüsselattributen abhängig sein. Ein Nichtschlüsselattribut darf
also nur direkt von einem Schlüssel abhängen.
Iváncsy T. ()
Datenbanksysteme
2011
41 / 51
Relationale Datenbank
Normalformen
Boyce-Codd-Normalform (BCNF)
Eine Relation ist in BCNF, wenn sie die Voraussetzungen der 3NF
erfüllt, und jede Determinante (Attributmenge, von der andere Attribute
funktional abhängen) ein Schlüsselkandidat ist (oder die Abhängigkeit
ist trivial). Ein Schlüsselkandidat ist eine Menge von Attributen, von der
alle Attribute der Relation voll funktional abhängig sind.
Die BCNF (nach Raymond F. Boyce und Edgar F. Codd) verhindert,
dass Teile zweier aus mehreren Feldern zusammengesetzten
Schlüsselkandidaten voneinander abhängig sind.
Die Überführung in die BCNF ist zwar immer verlustfrei möglich, aber
nicht immer abhängigkeitserhaltend. Die Boyce-Codd-Normalform war
ursprünglich als Vereinfachung der dritten Normalform gedacht, führte
aber zu einer neuen Normalform, die die 3NF verschärft.
Iváncsy T. ()
Datenbanksysteme
2011
42 / 51
SQL
Die SQL Sprache
SQL:
Structured Query Language (Strukturierte Abfrage
Sprache)
im Jahr 1974-75 wurde der Entwicklung bei IBM angefangen (als
SEQUEL)
im 1979 Teil der Produkt von IBM und ORACLE
seit 1987 ANSI Norm
Iváncsy T. ()
Datenbanksysteme
2011
43 / 51
SQL
Die SQL Sprache
Bedeutung von SQL
Normalisierte Sprache, die von fast allen relationalen Datenbank
benutzt wird (mit kleinen Modifizierungen)
bündige, benutzernahe Sprache, geeignet für Kommunikation auf
Netzwerke zwischen Datenbankserver und Klient
nichtprocedurellen Sprache
Definition von SQL
Datenbeschreibungssprache (DDL Data Description Language)
Datenmanipulationssprache (DML Data Manipulation Language)
Abfragen (Queries)
Datenkontrolliersprache (DCL Data Control Language)
Iváncsy T. ()
Datenbanksysteme
2011
44 / 51
SQL
Datentypen
Elementare Datentypen
Numerische Datentypen
smallint, integer, bigint 2 byte, 4 byte, 8 byte ganze Zahlen
decimal, numeric natürliche Zahlen, Benutzer definierte Präzision
real, double 4 bytes 6 digit Präzision, 8 bytes 15 digit Präzision
serial, bigserial 4 bytes, 8 bytes automatisch steigernde ganze Zahl
Character Datentypen
char(n) Ziffern mit fixen Länge, mit Leerzeichen gefüllt
varchar(n) Ziffern mit Benutzer Definierten Länge
text Ziffern mit veränderbare unbegrenzte Länge
Date/Time Types
date Datum ohne Zeitangabe
time Zeit (mit Mikrosekunde Präzision)
timestamp Datum mit Zeitangabe
Boolean (wahr/falsch)
Spezielle Wert: NULL (leer, Attributwert nicht angegeben)
Iváncsy T. ()
Datenbanksysteme
2011
45 / 51
SQL
SQL Befehle
Einige SQL Befehle
CREATE TABLE
[ database_name . [ schema_name ] . |
schema_name . ] table_name
( { <column_definition> |
<computed_column_definition> }
[ <table_constraint> ] [ ,...n ] )
[ ON { partition_scheme_name
( partition_column_name ) | filegroup
| "default" } ]
[ { TEXTIMAGE_ON
{ filegroup | "default" } ]
[ ; ]
Iváncsy T. ()
Datenbanksysteme
2011
46 / 51
SQL
SQL Befehle
Einige SQL Befehle
CREATE VIEW [ schema_name . ]
view_name [ (column [ ,...n ] ) ]
[ WITH <view_attribute>
[ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ]
[ ; ]
Iváncsy T. ()
Datenbanksysteme
2011
47 / 51
SQL
SQL Befehle
Einige SQL Befehle
SELECT select_list [ INTO new_table ]
[ FROM table_source ] [ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
Iváncsy T. ()
Datenbanksysteme
2011
48 / 51
SQL
SQL Befehle
SQL Select (Beispiel)
SELECT p.Name AS ProductName,
NonDiscountSales = (OrderQty * UnitPrice),
Discounts = ((OrderQty * UnitPrice) * UnitPriceDiscount)
FROM Production.Product p
INNER JOIN Sales.SalesOrderDetail sod
ON p.ProductID = sod.ProductID
ORDER BY ProductName DESC ;
Iváncsy T. ()
Datenbanksysteme
2011
49 / 51
SQL
Transaktionen
Transaktionen
Ein weiterer wichtiger Teil der Datensicherheit ist das Transaktionskonzept,
das Daten gegen Wettlaufsituationen durch den parallelen Zugriff mehrerer
Benutzer schützt.
Andernfalls könnten Daten von verschiedenen Benutzern gleichzeitig
geändert werden. Das Ergebnis der Änderungen würde dann vom Zufall
abhängen.
Vereinfacht dargestellt, sperren Transaktionen Daten vorübergehend für den
Zugriff durch andere Benutzer, bis eine Transaktion durch einen Commit oder
Rollback beendet wird. Danach werden die Daten wieder freigegeben.
BEGIN { TRAN | TRANSACTION }
[ { transaction_name | @tran_name_variable }
[ WITH MARK [ ’description’ ] ] ] [ ; ]
COMMIT { TRAN | TRANSACTION }
[ transaction_name | @tran_name_variable ] ]
[ ; ]
ROLLBACK { TRAN | TRANSACTION }
[ transaction_name | @tran_name_variable
| savepoint_name | @savepoint_variable ]
[ ; ]
Iváncsy T. ()
Datenbanksysteme
2011
50 / 51
SQL
Einige SQL Server
Einige bekante SQL Server
ORACLE
MS-SQL
MySQL
SQLite
PostgreSQL
Iváncsy T. ()
Datenbanksysteme
2011
51 / 51
Good bye!
Herunterladen