Beantworten Sie die folgenden Fragen:
Relationale Datenbanksysteme.
Es gibt eine mathematische Theorie zu den relationalen Datenbanken. Deren Studium ist bestens geeignet um solide Grundlagen im Wissensbereich der Datenbanken zu legen.
Ein mathematisch exakter Begriff für „Tabelle“.
IMS von IBM, die Daten sind hierarchisch strukturiert.
System von invertierte Listen, hierachisches System, Netzwerksystem.
IDMS von Computer Associates International. Datenstrukturierung : Netzwerk.
DB2 (IBM), Ingres II (Computer Associates International), Informix (Informix Software), Microsoft SQL Server (Microsoft), Oracle 8i (Oracle), Sybase Adaptive Server (Sybase).
Objektorientierte Datenbanksysteme, z.B. GemStone (GemStone) oder Versant ODBMS (Versant Object Technology)
Objekt/relationale Datenbanksysteme, z.B. erweitertes DB2- oder Informix-System.
Multidimensionale Datenbanksysteme,
Logikbasierte Datenbanksysteme.
Der Fremdschlüssel kann Bestandteil einer Tabelle in einer relationalen Datenbank sein. Dabei handelt es sich um eine Schlüsselspalte, die auf einen Primärschlüssel einer anderen oder aber derselben Tabelle verweist. Aufgrund der referentiellen Integrität, kann der Fremdschlüssel nur Werte annehmen die in der Referenztabelle vorhanden sind. Zudem kann eine beliebige Anzahl von Datensätzen den gleichen Fremdschlüsselwert aufweisen.
In Form einer Abfrage
join
Zum Schluss eine Join-Operation:
join Lieferanten and Teile over Stadt
Wir übersetzen sie in eine SQL-Anweisung:
SELECT LNr, LName, Status, TNr, TName,
Farbe, Gewicht, Lieferanten.Stadt
FROM
Lieferanten INNER JOIN Teile
ON Lieferanten.Stadt = Teile.Stadt;
Sie bekommen als Ergebnis der Join-Operation eine Tabelle. Diese zeigt an, welche Lieferanten welche Teile liefern, wobei diese Lieferanten in derselben Stadt arbeiten in der auch die Teile hergestellt werden.
Können Sie sich erklären, warum die Operation „join“ (=„verbinden“) heißt?
Es werden zwei Tabellen verbunden, indem eine Ergebnistabelle gebildet wird, die alle Felder der ersten und der zweiten Tabelle enthält. Die Verbindung wird „über“ ein Feld hergestellt, das in beiden Tabellen enthalten ist (im Beispiel das Feld „Stadt“). Die Ergebnistabelle enthält die Kombination aller Datensätze aus den beiden Ausgangstabellen, die dieselben Datenwerte im „Verbindungsfeld“ besitzen. „join“ = aus zwei Tabellen mach’ eine.
Hier ist eine -Operation (project ist englisch: projizieren):
project Lieferanten over LName, Stadt
In SQL wird sie wie folgt formuliert:
SELECT LName,Stadt
FROM Lieferanten;
Lassen Sie die SQL-Anweisung von MS-ACCESS ausführen! Beobachten Sie wieder, was geschehen ist!
Die Project-Operation wählt aus der Tabelle bestimmte Felder (Spalten, Attribute) aus. Die auszuwählenden Felder sind in der where-Klausel aufgelistet.
Können Sie den Namen „project“ für diese Operation deuten?
Wenn Sie z.B. einen Würfel auf ein Blatt Papier projizieren, entsteht eine ebene Figur. Ein dreidimensionaler Gegenstand wird auf eine zweidimensionale Figur abgebildet. Projizieren bedeutet also Verlust einer Dimension. Die Anzahl der Felder einer Tabelle ist ihre Dimension. Die Project-Operation lässt Tabellenfelder weg, verringert also die Tabellendimension. Deshalb der Name „project“.
Die Project-Operation ist der SELECT-Anweisung am ähnlichsten, sehen Sie das?
Die SELECT-Anweisung enthält eine Liste der auszuwählenden (= zu selektierenden) Tabellenfelder. Diejenigen Felder, die in dieser Liste nicht enthalten sind, werden weggelassen. Dies ist genau die Funktion der Project-Operation.
Der Primärschlüssel einer Relation kann unterschiedlich aufgebaut sein. Man unterscheidet zwischen eindeutige, zusammengesetzte und künstliche Primärschlüssel. Der Wert eines Primärschlüssels muss in einer Tabelle einmalig sein, da er jeden Datensatz eindeutig kennzeichnet
.
In der Theorie der Datenbanken versteht man unter einer Relationenalgebra oder einer relationalen Algebra eine formale Sprache, mit der sich Abfragen über einem relationalen Schema formulieren lassen. Sie erlaubt es, Relationen miteinander zu verknüpfen oder zu reduzieren und komplexere Informationen daraus herzuleiten.
Die relationale Algebra definiert Operationen, die sich auf einer Menge von Relationen anwenden lassen. Damit lassen sich beispielsweise Relationen verknüpfen, filtern oder umbenennen. Die Ergebnisse aller Operationen sind ebenfalls Relationen. Aus diesem Grund bezeichnet man die Relationenalgebra als abgeschlossen.
Einfach |
||
---|---|---|
Art |
Bereich |
Dichte |
A |
1 |
15 |
B |
1 |
5 |
C |
2 |
30 |
Einfach |
||
---|---|---|
Art |
Bereich |
Dichte |
A |
1 |
15 |
B |
1 |
5 |
C |
2 |
30 |
Einfach = ({(Art, Großbuchstabe),
(Bereich, positive Ganzzahl),
(Dichte, positive Ganzzahl)
},
{{(Art,A),(Bereich,1),(Dichte,15)},
{(Art,B),(Bereich,1),(Dichte,5)},
{(Art,C),(Bereich,2),(Dichte,30)}
}
)
Relationsvariable
Eine Relationsvariable ist ein Datenbankobjekt, dessen Wert eine Relation ist. Dieser Wert kann verändert werden. Eine ACCESS-Tabelle ist eine solche Relationsvariable. Die aktuell in einer ACCESS-Tabelle gespeicherte Datenmenge ist der Wert dieser Relationsvariablen, also eine Relation. Eine ACCESS-Tabelle muss also, da sie zu verschiedenen Zeiten verschiedene Datenmengen enthalten kann, eigentlich Tebellenvariable oder genauer Relationsvariable genannt werden.
restrict
Wir wollen nun die folgende Restrict-Operation ausführen:
restrict Lieferungen where Menge > 200
in SQL:
Schauen Sie sich das Ergebnis an! Vergleichen Sie es mit der Tabelle „Lieferungen“! Haben Sie dieses Ergebnis vorausgesehen? Was macht also eine Restrict-Operation?
Die Restrict-Operation wählt aus der Tabelle bestimmte Datensätze (Zeilen, Tupel) aus. Dazu wir die Bedingung der where-Klausel ausgewertet.
Bei der Verwendung eines gruppierten Index werden die Datensätze entsprechend der Sortierreihenfolge ihres Index-Schlüssels gespeichert. Wird für eine Tabelle beispielsweise eine Primärschlüssel-Spalte „ID“ angelegt, so stellt diese den Index-Schlüssel dar. Pro Tabelle kann nur ein gruppierter Index erstellt werden. Dieser kann jedoch aus mehreren Spalten zusammengesetzt sein.
Persistente Daten:
Die Daten, die in einer Datenbank gespeichert werden, sollen in der Regel für eine längere Zeit aufbewahrt werden: sie sind persistent. Dies bedeutet beispielsweise, dass sie erhalten bleiben, wenn ein Endbenutzer sein Terminal abschaltet.
DBS-Komponenten Skizze
Der Client kann ein Webbrowser sein, der ein CGI-Programm startet, mit dem auf die Datenbank zugegriffen wird, eine Java-Applikation mit der Schnittstelle JDBC, ein C-Programm mit der ODBC-Schnittstelle, ein Perl-Skript mit dem DBI-Modul oder auch der Datenbank-Client mysql.
Unabhängig von der Art des Zugriffes auf das DBMS verarbeitet der Server die Anfragen des Clients und schickt gesammelte Daten an ihn zurück. In der Regel ist die Sprache, mit der die Antwort kommuniziert wird SQL -> Genormte Datenbanksprache, die von jedem DBMS verstanden wird.
Auf dem Datenbankmanagementsystem, dem MySQL-Server, können mehrere Datenbanken erstellt werden. In einer Datenbank können mehrere Tabellen angelegt werden. Praktisch erstellt MySQL dabei für jede Datenbank einen Ordner auf der Festplatte, in dem Dateien für die Struktur und die Daten der einzelnen Tabellen abgelegt werden. Das genaue Format dieser Dateien hängt von der für die jeweilige Tabelle verwendeten Speicherengine ab.
Bei der referentiellen Integrität können Datensätze die einen Fremdschlüssel aufweisen nur dann gespeichert werden, wenn der Wert des Fremdschlüssels einmalig in der referenzierten Tabelle existiert. Im Falle, dass ein referenzierter Wert nicht vorhanden ist, kann der Datensatz nicht gespeichert werden.
Weil etwas, dessen Wert geändert werden kann, eine Variable ist. Tabellen in Datenbanken können verändert werden, sie sind also eigentlich Variablen: Tabellenvariablen.
Der Wert einer Tabellenvariablen ist eine bestimmte Tabelle.
Der Wert der Varablen (die in ihr gespeicherte Tabelle) verändert sich. Die Variable enthält danach eine andere Tabelle, die im Vergleich zur vorher gespeicherten einen Datensatz weniger hat.
Weil es an vielen Stellen des Theorieverständnisses sonst zu Verwechslungen und Missverständnissen kommen kann.
Relvar kurz für relation variable, Deutsch: Relvar kurz für Relationsvariable.
Nein, Date bedauert dies.
Welche
Bei Microsoft-Access gibt es Formulare und Abfragen.
Die externe Ebene enthält die Benutzersichten auf die Daten, bzw. den Ausschnitt aus den Gesamtdaten, den spezielle Benutzergruppen benötigen. Benutzersichten können hilfreich sein, um bestimmten Benutzern bzw. Benutzergruppen nur Ausschnitte des Gesamtdatenmodells zugänglich zu machen (Rechteverwaltung), oder für Umbenennungen von Attributen, um dem unterschiedlichen Vokabular von Fachabteilungen Rechnung zu tragen. Als Beispiel sei hier die Begriffe Lieferant/Kunde und Debitor/Kreditor genannt. Diese Ebene wird vom Datenbankentwickler verwaltet.
Diese Ebene hat die logische Darstellung der Gesamtsicht der Daten in einem speziellen Datenmodell, z.B. dem relationalen Datenmodell zum Inhalt. Ziel ist hier eine Unternehmensgesamtsicht zu erstellen, was ohne detaillierte Kenntinisse über relevante Informationen, Logik, Abläufe und Zusammenhänge im Unternehmen nicht gelingen kann. Diese Gesamtsicht beschreibt alle Daten, deren Beziehungen untereinander und auch die Konsistenzanforderungen in Form z.B. von Integritätsbedingungen. Die verschiedenen Unternehmensansichten aus der externen Ebene aus den verschiedenen Abteilungen werden zu einem Gesamtmodell zusammengeführt. Zentrales Ziel ist hier eine redundanzfreie Speicherung der Daten, z.B. durch Normalisierung.
Innerhalb dieser Ebene wird in der Regel zweistufig verfahren. Zuerst wird ein konzeptionelles Schema (z.B. ER-Modell, UML, ...) erstellt, welches noch unabhängig vom konkret eingesetzten Datenmodell resp. Datenbanksystem ist. Davon wird dann in einem zweiten Schritt das logische Datenbankschema abgeleitet, welches schon auf das Modell eines bestimmten Datenbanktyps (relational, objektorientiert, ...) angepasst ist. Diese Ebene wird primär vom Datenbankentwickler verwaltet.
Dies stellt die physikalische Implementierung des konzeptionellen Schemas in Abhängigkeit zum verwendeten DBS dar. Information über die Art und den Aufbau der Datenstrukturen auf dem physikalischen Speicher und Zugriffsmechanismen sind Bestandteil der internen Ebene. Diese Ebene wird vom Datenbankadministrator verwaltet. Zu seinen Aufgaben gehören insbesondere Maßnahmen zur Laufzeitverbesserung (Performance), Verwaltung von Benutzerrechten, Verfügabarkeit (Ausfallsicherheit), Datensicherheit und Datenschutz und vieles mehr. Trotz aller SQL-Standardisierungen unterscheiden sich die Hersteller wie IBM, Oracle, MySQL, Microsoft, ... hier doch teilse gravierend.
Für die sogenannten klassischen DBS, wie z.B. Netzwerk?- relationale bis hin zu objektorientierten Datenbanksystemen stellt dieses ANSI-3-Ebenenmodell wirklich ein Paradigma dar, das zwingend eingehalten wurde mit eben dem Vorteil der Datenunabhängigkeit.
AUFGABENSTELLUNGEN |
||||||
---|---|---|---|---|---|---|
Ein-heit |
Tnr |
Thema |
Anr |
LK |
Aufgabe |
B-Zeit |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
1 |
S |
Entitäten, Beziehungen und Eigenschaften |
15 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
2 |
S |
Eine Entwurfsaufgabe |
5 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
3 |
S |
Frauen und Männer |
30 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
4 |
S |
Einigung |
15 |
E IV |
2 |
Entitäten, Beziehungen und Relationen |
5 |
S |
Beziehungen sind auch Relationen |
15 |
E IV |
3 |
Relationales Datenmodell |
6 |
S |
Relationales Modell, Entwurf |
20 |
E IV |
3 |
Relationales Datenmodell |
7 |
S |
Entitäten-Beziehungsmodell, Vorschlag |
10 |
E IV |
4 |
Test des Datenbankentwurfs |
8 |
S |
ACCESS-Datenbank |
15 |
E IV |
4 |
Test des Datenbankentwurfs |
9 |
S |
Datensätze |
15 |
E IV |
4 |
Test des Datenbankentwurfs |
10 |
S |
Abfragen |
15 |
E IV |
3 |
Relationales Datenmodell |
11 |
Ü |
CD-Sammlung |
30 |
E IV |
3 |
Relationales Datenmodell |
12 |
Ü |
Entity-Relationship-Diagramm CD-Sammlung |
30 |
E IV |
3 |
Relationales Datenmodell |
13 |
Ü |
Relationales Modell CD-Sammlung |
30 |
E IV |
5 |
Meier, Relationale Datenbanken |
1 |
W |
Ein weiteres Buch |
60 |
Kardinalität 14 (Anzahl der Tupel)
7 Attribute.
Es gibt nur ein Attribut, dessen Werte Primärschlüssel sein können: Das Attribut „Aufgabe“.
7, für jedes Attribut einen Wert.
„Thema“
Ein Datenbereich ist ein Datentyp, eine Menge von Werten.
Ein benutzerdefinierte Datentyp, ist eine Menge von Werten, die vom Datenbankprogrammierer festgelegt wurde. Z.B. die Menge der möglichen Lieferantennummern oder die Menge der möglichen Werte für Gewichte.
Von den Programmiersprachen mit Typbindung (z.B. Java, Pascal, Modula2)
Ein Datentyp ist eine Menge von Werten.
Zu einem Datentyp gehören bestimmte Operationen, die auf ihn angewendet werden können. Die Denkweise, dass Datentypen nur mit bestimmten Operationen verarbeitet werden dürfen ist bekannt von den höheren Programmiersprachen.
Z.B. wenn ein Endbenutzer Daten eingeben soll und ungültige Angaben verhindert werden sollen. Dies gehört zum Aspekt der Integrität von Datenbanken.
Das ACCESS-Formular ist das MMI. Es enthält Fenster für Daten und Bedienelemente. Auch das Bild ist ein aktives Element, wenn der Mauszeiger auf das Bild kommt, wird dem Benutzer das Verlassen des Programms angeboten.
Der Datenbankindex ist eine Datenstruktur mit deren Hilfe die Abfrageoptimierung gesteigert werden kann. Mittels einer Indextabelle werden die Daten sortiert auf dem Datenträger abgelegt. Ohne Indizes auf einer Tabelle müsste die Datenbank die Informationen (Datensatz) sequentiell suchen, was selbst mit modernster Hardware und Software viel Zeit beanspruchen kann.
SELECT Ort
FROM Mitarbeiter, Abteilung
WHERE Unt=A# AND Bezeichnung=’Infomatik’
Tabelle =
project
{ restrict
{ { Mitarbeiter rename Unt as A#
} join Abteilung
} where Bezeichnung=Informatik
{ Ort }
SELECT Ort
FROM Mitarbeiter, Abteilung
WHERE Unt=A# AND Bezeichnung=’Infomatik’
Tabelle =
project
{ restrict
{ { Mitarbeiter rename Unt as A#
} join Abteilung
} where Bezeichnung=Informatik
{ Ort }
es fehlt: 5,7,8,10c,13bc,20b,22c,23,24,25,26bc,27c,28-42
..
Tabellen sind Basisrelationen, virtuelle Relationen sind Abfragen, die sich auf Basisrelationen beziehen
Aus Tabellen (Relationen) können in einer relationalen Datenbank andere Tabellen abgeleitet werden. Dazu gibt es, wie wir gesehen haben die relationalen Operationen, wie z.B. die Restrict-, die Projekt- und die Join-Operation. In einer SQL-Datenbank wie ACCESS werden diese Operationen in Form von SQL Anweisungen angegeben. Sie können als Abfragen (virtuelle Relationen) in der Datenbank gespeichert werden. Bei Bedarf können Sie von den Benutzern ausgeführt werden.
Skizze zu Veratwortlichkeiten Datenbankprogramierer und DB-Verwalter
AUFGABENSTELLUNGEN |
||||||
---|---|---|---|---|---|---|
Ein-heit |
Tnr |
Thema |
Anr |
LK |
Aufgabe |
B-Zeit |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
1 |
S |
Entitäten, Beziehungen und Eigenschaften |
15 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
2 |
S |
Eine Entwurfsaufgabe |
5 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
3 |
S |
Frauen und Männer |
30 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
4 |
S |
Einigung |
15 |
E IV |
2 |
Entitäten, Beziehungen und Relationen |
5 |
S |
Beziehungen sind auch Relationen |
15 |
E IV |
3 |
Relationales Datenmodell |
6 |
S |
Relationales Modell, Entwurf |
20 |
E IV |
3 |
Relationales Datenmodell |
7 |
S |
Entitäten-Beziehungsmodell, Vorschlag |
10 |
E IV |
4 |
Test des Datenbankentwurfs |
8 |
S |
ACCESS-Datenbank |
15 |
E IV |
4 |
Test des Datenbankentwurfs |
9 |
S |
Datensätze |
15 |
E IV |
4 |
Test des Datenbankentwurfs |
10 |
S |
Abfragen |
15 |
E IV |
3 |
Relationales Datenmodell |
11 |
Ü |
CD-Sammlung |
30 |
E IV |
3 |
Relationales Datenmodell |
12 |
Ü |
Entity-Relationship-Diagramm CD-Sammlung |
30 |
E IV |
3 |
Relationales Datenmodell |
13 |
Ü |
Relationales Modell CD-Sammlung |
30 |
E IV |
5 |
Meier, Relationale Datenbanken |
1 |
W |
Ein weiteres Buch |
60 |
AUFGABENSTELLUNGEN |
||||||
---|---|---|---|---|---|---|
Ein-heit |
Tnr |
Thema |
Anr |
LK |
Aufgabe |
B-Zeit |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
1 |
S |
Entitäten, Beziehungen und Eigenschaften |
15 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
2 |
S |
Eine Entwurfsaufgabe |
5 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
3 |
S |
Frauen und Männer |
30 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
4 |
S |
Einigung |
15 |
E IV |
2 |
Entitäten, Beziehungen und Relationen |
5 |
S |
Beziehungen sind auch Relationen |
15 |
E IV |
3 |
Relationales Datenmodell |
6 |
S |
Relationales Modell, Entwurf |
20 |
E IV |
3 |
Relationales Datenmodell |
7 |
S |
Entitäten-Beziehungsmodell, Vorschlag |
10 |
E IV |
4 |
Test des Datenbankentwurfs |
8 |
S |
ACCESS-Datenbank |
15 |
E IV |
4 |
Test des Datenbankentwurfs |
9 |
S |
Datensätze |
15 |
E IV |
4 |
Test des Datenbankentwurfs |
10 |
S |
Abfragen |
15 |
E IV |
3 |
Relationales Datenmodell |
11 |
Ü |
CD-Sammlung |
30 |
E IV |
3 |
Relationales Datenmodell |
12 |
Ü |
Entity-Relationship-Diagramm CD-Sammlung |
30 |
E IV |
3 |
Relationales Datenmodell |
13 |
Ü |
Relationales Modell CD-Sammlung |
30 |
E IV |
5 |
Meier, Relationale Datenbanken |
1 |
W |
Ein weiteres Buch |
60 |
Bei C.J. Date auf ist die mathematische Definition einer Relation auf der Seite 123 zu finden!
Mathematische Definition einer Relation:
Gegeben ist eine Folge von n Typen (oder Datenbereichen) mit den Namen Ti
(i = 1,2, … , n), die nicht unbedingt alle unterschiedlich sein müssen.
r ist eine Relation über diesen Typen, wenn sie aus zwei Teilen, einem Kopf und einem Rumpf besteht, wobei gilt:
Die Werte m wird die Kardinalität und n der Grad der Relation r genannt.
(übersetzt aus C.J. Date, An Introduction to Database Systems, S. 123)
Wir schauen uns dazu nochmals das folgende Beispiel an:
AUFGABENSTELLUNGEN |
||||||
---|---|---|---|---|---|---|
Ein-heit |
Tnr |
Thema |
Anr |
LK |
Aufgabe |
B-Zeit |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
1 |
S |
Entitäten, Beziehungen und Eigenschaften |
15 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
2 |
S |
Eine Entwurfsaufgabe |
5 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
3 |
S |
Frauen und Männer |
30 |
E IV |
1 |
Entitäten-Beziehungs-Diagramm |
4 |
S |
Einigung |
15 |
E IV |
2 |
Entitäten, Beziehungen und Relationen |
5 |
S |
Beziehungen sind auch Relationen |
15 |
E IV |
3 |
Relationales Datenmodell |
6 |
S |
Relationales Modell, Entwurf |
20 |
E IV |
3 |
Relationales Datenmodell |
7 |
S |
Entitäten-Beziehungsmodell, Vorschlag |
10 |
E IV |
4 |
Test des Datenbankentwurfs |
8 |
S |
ACCESS-Datenbank |
15 |
E IV |
4 |
Test des Datenbankentwurfs |
9 |
S |
Datensätze |
15 |
E IV |
4 |
Test des Datenbankentwurfs |
10 |
S |
Abfragen |
15 |
E IV |
3 |
Relationales Datenmodell |
11 |
Ü |
CD-Sammlung |
30 |
E IV |
3 |
Relationales Datenmodell |
12 |
Ü |
Entity-Relationship-Diagramm CD-Sammlung |
30 |
E IV |
3 |
Relationales Datenmodell |
13 |
Ü |
Relationales Modell CD-Sammlung |
30 |
E IV |
5 |
Meier, Relationale Datenbanken |
1 |
W |
Ein weiteres Buch |
60 |
(Einheit,Text), (Thema, Text), (Tnr, positive Ganzzahl), (Anr, positive Ganzzahl), (LK, LK-Typ), (Aufgabe, Text),
(B-Zeit, positive Ganzzahl)
Kopf = {(Thema, Text), (Tnr, positive Ganzzahl),
(Anr, positive Ganzzahl), (LK, LK-Typ),
(Aufgabe, Text), (B-Zeit, positive Ganzzahl),
(Einheit,Text)
}
Beispiel-Tupel = {(Thema,“Relationales Datenmodell“),
(Tnr, 3,) (Anr,6), (LK, S),
(Aufgabe, „Relationales Modell, Entwurf“),
(B-Zeit,20), (Einheit,“E IV“)
}
Gegeben sind die folgenden Relationen:
|
|
Spieler join Spiele
b. Geben Sie eine SQL-Anweisung für die Operation aus Aufgabenteil (a) an!
c.Bestimmen Sie das Ergebnis der folgenden relationalen Operation: Spieler join Spiele (rename Gegner as Name
Spieler join Spiele
Spieler join Spiele |
||||||
Name |
Straße |
Wohnort |
M# |
Gegner |
Uhrzeit |
Speilbrett |
Schulz |
Oberallee |
Unterlaufen |
M4 |
Anders |
20:00 |
3 |
Hofer |
Brahmsweg |
Oberlaufen |
M7 |
Landner |
18:00 |
1 |
Hofer |
Brahmsweg |
Oberlaufen |
M7 |
Sacher |
20:00 |
2 |
SELECT Spieler.M#, Spieler.Name, Spieler.Straße, Spieler.Wohnort Spiele.Gegner, Spiele.Uhrzeit, Spiele.Spielbrett
FROM Spieler INNER JOIN Spiele
ON Spieler.M# = Spiele.M#
Kein Ergebnis, da Namen nicht übereinstimmen???
Eine Relation ist unveränderlich. Eine Relationsvariable hat als Wert eine
Relation. Dieser Wert kann geändert werden.
Die Tabellen einer relationalen Datenbank sind Relationen. Relationen sind mathematisch definierte Objekte.
Hauptsächlich auf der mathematischen Mengenlehre und der Prädikatenlogik (eine Erweiterung der Aussagenlogik (boolsche Algebra))
E.F. Codd, im Jahr 1969. Relationale Datenbanken sind also ca. 40 Jahre alt.
Weil es mathematische Exaktheit bietet.
Ein Datensatz in einer Tabelle ist ein Tupel.
Die Datenmanipulationssprache:
Die Datenmanipulationssprache stellt Sprachelemente zur Verfügung, mit denen neue Datensätze, das Löschen und Verändern von Datensätzen sowie die Suche in Datenbanken beschrieben werden können.
SQL stellt solche Sprachelemente zur Verfügung. Typisch sind die Befehle INSERT, DELETE und – für die Suche – SELECT.
Attribut:
In der Sprache der relationalen Algebra werden Relationen – in der Regel mehrere - Attribute zugeordnet. Jedem Attribut ist wiederum ein Datenbereich zugeordnet, aus dem gültige Datenwerte gewählt werden können. Wenn eine Relation das Attribut A besitzt, muss jeder Tupel der Relation einen Wert aus dem Datenbereich von A enthalten.
Informal kann dies wie folgt ausgedrückt werden:
Ein Attribut entspricht der Spalte einer Tabelle. Hat eine Tabelle die Spalte A, muss jeder Datensatz der Tabelle in dieser Spalte einen Wert enthalten. Dieser Wert muss dem Datenbereich stammen, der dieser Spalte A zugeordnet ist.
Indexstrukturen dienen dazu, umfangreiche Datenbanken performant durchsuchen zu können. In unserem Mickey-Mouse-Beispiel brauchen wir so etwas natürlich nicht. Später werden Sie mehr darüber erfahren. Wenn Sie aber jetzt schon schauen wollen: Öffnen Sie die Tabelle Weine in der Entwurfsansicht. Zu jedem Tabellenattribut (Feld) finden Sie Parameter unter denen auch „indiziert“ gewählt werden kann. Wie das wirkt? Nun: später
Sie finden dort die Tabelle „Aufgaben“. Sie enthält die Aufgaben der Einheit IV.
Studieren Sie, welche Daten in dieser Tabelle gespeichert sind. Beantworten Sie folgende Fragen:
Die beiden einfachen Datentypen sind „Zahl (Long Integer)“ und „Text”. „Text „ entspricht dabei dem SQL-Datentyp „String“.
Die restlichen sind nicht einfach:
- „Memo” ist kein einfacher Datentyp, weil seine Länge nicht fest vorgegeben werden muss. Ein Wert dieses Datentyps kann beliebig lang sein.
In „Beschreibung lang“ kann ein beliebiges OLE-Objekt gespeichert werden. Dies bedeutet, dass die Operationen zur Veränderung oder Verarbeitung des OLE-Objektes dem DBMS selbst nicht bekannt sind. Es sind alle Operationen, die das Fremdprogramm, zu dem das OLE-Objekt gehört, bereitstellt. Z.B kann ein als OLE-Objekt gespeichertes MS-Word-Dokument mit Hilfe von MS-Word ausgedruckt oder verändert werden.
Gegeben ist eine Relationsvariable mit folgendem Inhalt:
LKW-Einsätze |
||||
LKW-Nr |
Ziel-Stadt |
Lager |
Lager- Stadt |
Tonnen |
LKW1 |
London |
L1 |
Hamburg |
6 |
LKW2 |
Paris |
L2 |
Hamburg |
30 |
LKW3 |
Frankfurt |
L1 |
Paris |
20 |
LKW-Einsätze |
||||
LKW-Nr |
Ziel-Stadt |
Lager |
Lager- Stadt |
Tonnen |
LKW1 |
London |
L1 |
Hamburg |
6 |
LKW2 |
Paris |
L2 |
Hamburg |
30 |
LKW3 |
Frankfurt |
L1 |
Paris |
20 |
Liefert nach <Ziel-Stadt>
Aus dem Lager <Lager>
in <Lager-Stadt>
die Menge Tonnen <Tonnen>
Liefert nach <London>;<Paris>;<Frankfurt>
Aus dem Lager <L1>;<L2>;<L1>
in <Hamburg>;<Hamburg>;<Paris>
die Menge Tonnen <6>;<30>;<20>
Liefert nach <Frankfurt>
Aus dem Lager <L5>
in <Koblenz>...
Integrierte Datenbank:
Eine solche Datenbank hält integrierte Daten. Dies bedeutet, dass die Menge aller Daten logisch als Einheit betrachtet werden. Der Benutzer kann nur über das Datenbankverwaltungssystem (DBMS) zugreifen (z.B. unter Verwendung von SQL). Nur das DBMS kennt das Format, in dem die Daten physikalisch (z.B. auf einer Platte) abgelegt sind. Eine Sammlung von einzelnen Dateien, die für den Benutzer sichtbar sind, ist ein Beispiel für eine nicht integrierte Datenbank.
Mengenoperationen:
spezielle Operationen
Einfach = ({(C;integer),(A;char(1)),(B;integer)};
{{(A;A) ,(B;1) ,(C;15)},
{(B;1) ,(A;B) ,(C;5) },
{(C;10),(B;2) ,(A;D) },
{(A;C) ,(C;30),(B;2) }
})
Einfach = ({(C;integer),(A;char(1)),(B;integer)};
{{(A;A) ,(B;1) ,(C;15)},
{(B;1) ,(A;B) ,(C;5) },
{(C;10),(B;2) ,(A;D) },
{(A;C) ,(C;30),(B;2) }
})
In unserem Fall nur auf die Daten, die die SQL-Abfrage des Formulars bereitstellt.
Unterschiedliche Computer sind in einem Netzwerk, wie das Internet eines ist, verbunden und bearbeiten gemeinsam eine Datenverarbeitungsaufgabe.
Mehrere Computer und ein Kommunikationsnetz.
Das Internet ist ein Kommunikationsnetz, in dem mehrere Computer gemeinsame Datenverarbeitungsaufgaben behandeln.
Es ist typisch für Datenbankanwendungen in Unternehmen, dass die Daten in verteilten Datenbanken auf mehreren Rechnern vorliegen. Es ist dann oft der Fall, dass eine Anwendung (Client) Daten, die in mehreren verschiedenen Rechnern (Servern) gespeichert sind, zusammenführen muss
Was sind die Aufgaben des DBMS?
Das Datenbankverwaltunssystem (Data Base Management System, DBMS) hat die folgenden Aufgaben (ohne Anspruch auf Vollständigkeit):
Weil sie auf dem Relationenmodell beruht, das seinerseits auf der mathematischen Theorie der Relationen aufbaut.
Eine Relation ist unveränderlich. Eine Relationsvariable hat als Wert eine Relation. Dieser Wert kann geändert werden.
Relasrionales Datenmodell Skizze:
Zahlen, Zeichenketten, Bitfolgen, Datumsangaben, Zeitangaben, Zeitstempel, Jahr- und Monatsintervalle, Tag- und Zeitintervalle.
Nein.
CREATE DOMAIN- Anweisung.
Die Relation Tab-1 ist mathematisch als geordnetes Paar (<Kopf>, <Rumpf>) wie folgt notiert:
Tab-1 = ({(Jahr, Ganzzahl),
(Ausgaben, Ganzzahl), (Einnahmen, Ganzzahl)
},
{{(Jahr,1999),(Ausgaben,1000),(Einnahen,900)},
{(Jahr,2001),(Einnahmen,2500),(Ausgaben,2000)},
{(Ausgaben,1500),(Einnahmen,1200),(Jahr,2000)}
}
)
Die Relation Tab-1 ist mathematisch als geordnetes Paar (<Kopf>, <Rumpf>) wie folgt notiert:
Tab-1 = ({(Jahr, Ganzzahl),
(Ausgaben, Ganzzahl), (Einnahmen, Ganzzahl)
},
{{(Jahr,1999),(Ausgaben,1000),(Einnahen,900)},
{(Jahr,2001),(Einnahmen,2500),(Ausgaben,2000)},
{(Ausgaben,1500),(Einnahmen,1200),(Jahr,2000)}
}
)
3
Tab-1 = ({(Jahr, Ganzzahl),
(Ausgaben, Ganzzahl), (Einnahmen, Ganzzahl)
},
|
Tab-1 |
|
Jahr |
Ausgaben |
Einnahmen |
1999 |
1000 |
900 |
2001 |
2000 |
2500 |
2000 |
1500 |
1200 |
ist ein universelles Softwaresystem,das anwendungsunabhängiges Arbeiten mit Datenbanken ermöglicht. Ein DBMS ermöglicht Daten zu speichern, wieder aufzufinden, um sie zu lesen oder zu ändern.
strukturierte und logisch organisierte Sammlung (formatierter) Daten,
die dauerhaft und weitgehend redundanzfrei gespeichert wird.
DBMS (s.o.)
b)
..Kapitel zu Normalformen lesen
In beiden Fällen handelt es sich um SQL. Diese Datenbanksprache hat DDL-Befehle, um z.B. neue Tabellen anlegen zu können, und DML-Befehle, z.B. der obige SELCT-Befehl zur Abfrage von Datenbankinhalten. ACCESS ist eben ein SQL-Datenbanksystem!
(Open Databank Connectivity) - Standartisierte Datenbankschnittstelle, die SQL als DB-Sprache verwendet. Bietet eine Programmierschnittstelle (API), die es einem Programmierer erlaubt, seine Anwendung bei existierendem ODBC Trieber relativ unabhängig vom verwendeten Datenbankmanagementsystem (DBMS) zu entwickeln.
Durch den Einsatz der ODBC-Schnittstelle bietet sich die Möglichkeit, Details für den Zugriff auf die DB z.B. Name des Datenbankservers, Port für den Netzwerkzugriff auf die Datenbank, Datenbankname, Benutzername des Datenbankbenutzers und dessen Passwort etc. unter einem bestimmten Namen )auf dem Client einzurichten.
Welche Arten von Software gibt es in einem DBS?
Anwendungsprogramme und Datenbankverwaltungsprogramme.
Die Erste Normalform (1NF) ist dann gegeben, wenn alle Informationen in einer Tabelle atomar vorliegen. Jede Information innerhalb einer Tabelle bekommt eine eigene Tabellenspalte und zusammenhängende Informationen.
VII wichtig
..
s. Präsi
Sie dürfen die Datenblätter wie in einem Karteikasten durchmustern. Sie dürfen neue Datenblätter anlegen. Sie dürfen die Daten ändern und löschen. Sie können das Programm beenden (Liste nicht vollständig). Stellen Sie sich vor, Sie müssten ein Programm mit dieser Funktionalität in C++ oder Java schreiben: Sie hätten zu tun! Bedenken Sie, dass Sie auch irgendwie auf die Datenbank aus Ihrem Code heraus zugreifen müssten. Sie sehen also, das ACCESS-Konzept „Formular“ ist wirklich einem ausgewachsenen Anwenderprogramm gleichzusetzen. Wenn übrigens das Formular beim Start automatisch geladen wird, merkt der Endbenutzer gar nicht, dass überhaupt eine Datenbank im Hintergrund arbeitet.
relationales Datenmodell:
In einem relationalen Datenmodell wird der interessierende Realitätsauschnitt ausschließlich durch Tabellen (mathematisch: Relationen) dargestellt (modelliert).
Es gibt die folgenden vier Assoziationstypen, man kann mit Ihnen beschreiben, welche Rolle eine Entitätenmenge in einer Beziehungsmenge spielt:
Typ |
Bezeichnung |
Bedeutung |
1 |
einfach |
Jede Entität ist in genau einer Beziehung vertreten. |
c |
konditionell
|
Wenn eine Entität in einer Beziehung vertreten ist, dann nur in einer. Es gibt also Entitäten, die in keiner Beziehung vorkommen. |
m |
mehrfach |
Jede Entität ist in mindestens einer Beziehung vertreten. Es gibt also keine Entität, die in keiner Beziehung vorkommt. Es kann Entitäten geben, die in mehreren Beziehungen eine Rolle spielen. |
mc |
mehrfach-konditionell |
Es kann Entitäten geben, die in mehreren Beziehungen vorkommen. Es kann aber auch Entitäten geben, die in keiner Beziehung vertreten sind. |
Der Unterschied besteht darin, dass bei c- und mc-Typ nicht jede Entität in einer Beziehung vorkommen muss. Es ist also möglich, dass es Entitäten gibt, die in keiner Beziehung enthalten sind.
Hier ein Beispiel:
Entitätenmenge 1: Pflanzenart,
Entitätenmenge 2: Artnamen für Lebewesen,
Beziehungsmenge: „hat Name“, also Pflanzenart <pflanzenart> hat den Artnamen <artname>
(<pflanzenart> und <artname> sind Platzhalter für Entitäten aus den entsprechenden Entitätenmengen).
Die Entitätenmenge „Pflanzenart“ ist mit der Beziehungsmenge „hat Name“ entsprechend dem Typ m assoziiert, denn es gibt Pflanzenarten, die mehrere Namen haben (z.B. einen lateinischen und einen deutschen).
Die Entitätenmenge „Artnamen für Lebewesen“ ist mit der Beziehungsmenge „hat Name“ entsprechend dem Typ c assoziiert, denn für jedem Namen, der eine Pflanzenart benennt, ist genau einer Pflanzenart zugeordnet. Allerdings aber gibt es Namen für Lebewesensarten, die keiner Pflanzenart zugeordnet sind, z.B. Namen für Tierarten.
Hier ein Beispiel:
Entitätenmenge 1: Brote aus einer Getreideart,
Entitätenmenge 2: Getreidearten,
Beziehungsmenge: „entält“, also Brot <brot> enthält die Getreideart <getreideart>
(<brot> und <getreideart> sind Platzhalter für Entitäten aus den entsprechenden Entitätenmengen).
Die Entitätenmenge „Brote aus einer Getreideart“ ist mit der Beziehungsmenge „enthält“ entsprechend dem Typ 1 assoziiert, denn jedes Brot, muss mindestens Getreide einer Art enthalten und dann nur Getreide einer einzigen Art.
Die Entitätenmenge „Getreidearten“ ist mit der Beziehungsmenge „enthält“ entsprechend dem Typ mc assoziiert, denn es gibt Getreidearten, aus denen man verschiedene Brote machen kann. Andererseits möchte ich nicht ausschließen, dass es Getreidearten gibt, aus denen kein Brot hergestellt wird.
Endnutzer erklären
Endnutzer sind diejenigen, die ein Datenbanksystem nutzen.
Sie haben in der Regel keine Datenbankkenntnisse. Das Datenbanksystem benötigt deshalb eine Benutzerschnittstelle (Human User Interface, siehe auch ANSI/SPARC-Architektur von Datenbanksystemen). Bei ACCESS kann man eine Benutzerschnittstelle mit Hilfe von Formularen programmieren.
Da die Endbenutzer nur diese Oberfläche sehen und bedienen, kann es sein, dass sie sich gar nicht bewusst sind, dass ihr Programm in Wirklichkeit ein Datenbanksystem ist.
B = ({(Platz;INTEGER),(P;CHAR),(Anz;INTEGER)};
{{(Platz;5),(Anz;4),(Q;INTEGER)},
{(Q;REAL),(Platz;4),(Platz;5)},
{(Anz;4),(Platz;5)}
}
)
B = ({(Platz;INTEGER),(P;CHAR),(Anz;INTEGER)};
{{(Platz;5),(Anz;4),(Q;INTEGER)},
{(Q;REAL),(Platz;4),(Platz;5)},
{(Anz;4),(Platz;5)}
}
)
B = ({(Platz;INTEGER),(P;CHAR),(Anz;INTEGER)};
{{(Platz;5),(Anz;4),(P;INTEGER)},
{(P;REAL),(Platz;4),(Anz;5)},
{(Anz;4),(Platz;5),(P;REAL)}
}
)
|
B |
|
Platz |
P |
Anz |
5 |
INTEGER |
4 |
4 |
REAL |
5 |
5 |
REAL |
4 |
relationale Datenbank
Eine relationale Datenbank implementiert die Relationale Algebra von Codd. Sie enthält als Basis-Datenbankobjekte Relationen. Die Relationale Algebra ist eine mathematische Datenbanktheorie.
Datenbankverbindungen aufzubauen und zu verwalten, SQL-Anfragen an die Datenbank weiterzuleiten und die Ergebnisse in eine für Java nutzbare Form umzuwandeln und dem Programm zur Verfügung zu stellen.
Welche Arten von Benutzern eines DBS können unterschieden werden?
Welche Aufgaben nehmen sie war?
Welche Arten von Benutzern eines DBS können unterschieden werden?
Endbenutzer, Datenbankprogrammierer, Datenbankverwalter.
Welche Aufgaben nehmen sie war?
Datenbankverwalter:
Endbenutzer:
Datenbankprogrammierer:
Eine Datenbank kann schnell in einen inkonsistenten Zustand geraten. Im ungünstigsten Fall liegt eine nicht-normalisierte Datenbank vor, die starke Redundanzen aufweist. Dabei können Anomalien im Datenbestand auftreten, die verschiedene Formen annehmen. Man spricht hier von Einfüge-, Lösch- und Änderungsanomalien. Tritt eine oder mehrerer dieser Anomalien auf, kann das zur Verfälschung oder Löschung von Informationen führen.
Java Database Connectivity (Java Datenbankverbindungsfähigkeit) - ist eine Datenbankschnittstelle der Java-Plattform, die eine einheitliche Schnittstelle zu Datenbanken verschiedener Hersteller bietet und speziell auf relationale Datenbanken ausgerichtet ist.
Einheitliche Schnittstelle zu Datenbanken verschiedener Hersteller und speziell auf relationale Datenbanken ausgerichtet
Datenbankdefinitionssprache
Die Datenbankdefinitionssprache stellt Sprachelemente zur Verfügung mit deren Hilfe man Datenbankobjekte beschreiben kann, beispielsweise, um sie neu einzurichten oder zu löschen.
SQL beinhaltet solche Sprachelemente. Typisch sind Befehle wie CREATE TABLE oder CREATE VIEW.
SQL besteht aus zwei Teilen: Datenmanipulationssprache und Datendefinitionssprache.
Formaler relationaler Begriff
|
|
Relation Tupel Kardinalität Attribut Dimension Primärschlüssel Datenbereich |
Formaler relationaler Begriff |
Informale Entsprechung |
Relation Tupel Kardinalität Attribut Dimension Primärschlüssel Datenbereich |
Tabelle Zeile oder Datensatz Anzahl der Zeilen Spalte oder Feld Anzahl von Spalten eindeutige Kennung (für einen Datensatz) Menge von gültigen Werten |
P = ({S;CHAR), (Platz;INTEGER),(R;INTEGER)};
{{(Platz;1),(R;4),(S;A)},
{(R;130),(Platz;2),(S;g)},
{(S;r),(Platz;4),(R;5)},
{(S;c),(R;130),(Platz;1)}
}
)
Q = ({(S;CHAR),(Anz;INTEGER),(Platz;INTEGER)};
{{(Platz;1),(Anz;4),(S;c)},
{(Anz;7),(Platz;1),(S;c)},
{(Platz;2),(Anz;4),(S;f)},
{(S;f),(Platz;4),(Anz;15)},
{(Platz;1),(Anz;3),(S;f)},
{(S;f),(Platz;10),(Anz;15)}
}
)
P join Q
(project (P join Q(rename S as T)){Anz,S})
where Anz>3
P join Q
P |
||
S |
Platz |
R |
A |
1 |
4 |
G |
2 |
130 |
R |
4 |
5 |
c |
1 |
130 |
Q |
||
S |
Platz |
Anz |
C |
1 |
4 |
C |
1 |
7 |
F |
2 |
4 |
F |
4 |
15 |
F |
1 |
3 |
F |
10 |
15 |
P join Q |
|||
R |
S |
Platz |
Anz |
130 |
C |
1 |
4 |
130 |
C |
1 |
7 |
Ein Anfragebaum ist die grafische Visualisierung eines Ausdrucks der Relationalen Algebra. Da jede SQL-Abfrage in einen relationalen Audruck umgesetzt werden kann, kann jede SQL-Abfrage auch durch einen Anfragebaum dargestellt werden.
Den Blättern des Baumes entsprechen die Basis-Relationen, aus denen die Information extrahiert weden soll. Den Knoten des Baumes entsprechen die relationalen Operationen, aus denen die Abfrage zusammenesetzt ist.
Es gibt immer nur einen Wurzelknoten, er entspricht der letzten Operation, die das Ergebnis der Abfrage liefert. Stammknoten kann es mehrere geben.