Datenbanken Klausur ws 13/14

Quelle: H.W. Lang FH Flensburg lang@fh-flensburg.de Karteien zur Vorbereitung auf die Klausur in Datenbanken.

Quelle: H.W. Lang FH Flensburg lang@fh-flensburg.de Karteien zur Vorbereitung auf die Klausur in Datenbanken.


Philip Schulze
Diese Lernkarten bieten einen umfassenden Überblick über die Grundlagen von relationalen Datenbanken auf Universitätsniveau. Sie decken Themen wie Tabellen, Attribute, Relationen, Transaktionen und SQL-Anweisungen ab, einschließlich Selektion, Projektion und Verbundoperationen. Die Karteikarten erklären auch Normalformen, Schlüsselkonzepte und die Bedeutung von Indizes. Ideal für Studierende der Informatik, die sich auf Datenbankklausuren vorbereiten, vermitteln sie die notwendigen Konzepte und Techniken für das Verständnis und die Arbeit mit relationalen Datenbanken.
Flashcards
21
Students
0
Language
German
Category
Computer Science
Level
University
Created / Updated
20.01.2014 / 20.01.2014

Lernkarten

Was ist der Vorteil einer Datenbank gegenüber der Speicherung der Daten in unterschiedlichen Dateien?

Geben Sie die mathematische Definition einer Relation an. Was ist die Gemeinsamkeit einer Relation und einer Datenbanktabelle?

-Eine Relation ist eine Teilmenge des karthesischen Produktes von mindestens 2 Mengen, eine Menge von n-Tupeln.

-Allgemein: die Beziehung zwischen Dingen / Elementen.

-Wenn nicht anders angegeben ist immer die binäre Relation, also zwischen 2 Dingen / Elementen --gemeint. Diese bilden geordnete Paare. 3. Was versteht man unter einem Schlüssel

Was versteht man unter einem Schlüssel? Was ist ein Fremdschlüssel?

Schlüssel

Ein Schlüssel identifiziert die Tupel einer Relation eindeutig. Er besteht aus einer Gruppe von Attributen dieser Relation

Fremdschlüssel

Ein Sekundärschlüssel einer Relation, der Primärschlüssel oder Schlüsselkandidat in der Bezugs- / Mutterrelation ist. Dient als Verweis zwischen 2 Relationen

Geben Sie die SQL-Anweisungen zu folgenden Aufgaben an: 

- Fügen Sie den Autor "Schmidt" der Tabelle autor hinzu.

INSERT INTO autor(name) VALUES = "Schmidt";

Geben Sie die SQL-Anweisungen zu folgenden Aufgaben an:

- Erhöhen Sie die Auflage des Buches "Algorithmen in Java"

UPDATE buch SET auflage = auflage + 1 WHERE titel = "Algorithmen in Java";

Geben Sie die SQL-Anweisungen zu folgenden Aufgaben an:

- Löschen Sie die Bücher mit dem fehlerhaften Erscheinungsjahr 2110

DELETE FROM buch WHERE jahr = 2110;

Erläutern Sie den Begriff Boyce-Codd Normalform für Datenbanktabellen.

Warum ist es vorteilhaft, diese Normalform anzustreben?

Eine Tabelle ist in der Boyce-Codd-Normalform, wenn keine Projektion der Tabelle einen eigenen echten Schlüssel hat.

Ein Ziel im Konzept relationaler Datenbanken ist die redundanzfreie Speicherung von Daten. Dies ist gewährleistet, wenn sich die Datentabellen in der sog. Boyce-Codd-Normalform befinden.

Die BCNF erfüllt alle Eigenschaften der ersten drei Normalformen, und stellt eine Verschärfung der 3. Normalform dar.

1. NF: jedes Attribut der Relation muss einen atomaren Wertebereich haben. Das heißt, zusammengesetzte, mengenwertige oder geschachtelte Wertebereiche (relationenwertige Attributwertebereiche), wie z.B. komma-separierte Listen sind nicht erlaubt. Stattdessen werden (je nach Umfang oder Variabilität) seperate Attribute oder abhängige Tabellen verwendet.

2. NF: 1.NF muß erfüllt sein. Darüberhinaus fordert die 2. NF, daß abhängige Attribute vom ganzen Primärschlüssel abhängen, und nicht nur von Teilen des Schlüssels (Primärschlüssel können aus mehreren Attributen zusammengesetzt sein).

3. NF : 2. NF muß erfüllt sein. Die dritte Normalform ist erreicht, wenn sich das Relationenschema in 2NF befindet, und kein Nichtschlüsselattribut (hellgraue Zellen in der Tabelle) von einem Schlüsselkandidaten transitiv abhängt.

BCNF: beinhaltet NF 1 bis 3. Zudem darf keine funktionale Abbildung von einem abhängigen Attribut zurück auf einen (oder Teile des )Primärschlüssels gegeben sein. Eine solche Abhängigkeit müßte in einer seperaten Tabelle dargestellt werden.

Was ist ein Index auf einem Attribut. Wozu dient er?

 

- Ein Index ist eine, von der eigentlichen Datenstruktur getrennte (Index-)Struktur, die Suche in und Sortierung nach bestimmten Attributen beschleunigt. 

- Ein Index wird auf Anweisung erzeugt. Das Attribut, das den Primärschlüssel einer Tabelle ist, wird automatisch indiziert.

Was sind Transaktionen?

Geben Sie an, was ACID in diesem Zusammenhang bedeutet.

Atomarität

Von einer atomaren Operation spricht man, wenn die Transaktion entweder ganz oder gar nicht ausgeführt wird (Alles-oder-nichts-Eigenschaft): Das DBMS verhält sich gegenüber dem Benutzer so, als ob die Transaktion eine einzelne elementare Operation wäre, die nicht von anderen Operationen unterbrochen werden kann. Praktisch werden die einzelnen Datenbankanweisungen, aus der sich die Transaktion zusammensetzt, natürlich nacheinander ausgeführt – sobald sich jedoch herausstellt, dass die Transaktion nicht abgeschlossen werden kann, wird ein Rollback durchgeführt, also werden alle bisherigen Anweisungen wieder rückgängig gemacht.

Konsistenzerhaltung

Konsistenz heißt, dass eine Transaktion nach Beendigung einen konsistenten Datenzustand hinterlässt, falls die Datenbank vor der Transaktion auch konsistent war. Nach Beendigung der Transaktion gelten die inhärenten und explizit definierten Integritätsbedingungen, insbesondere die Schlüssel- und Fremdschlüsselbedingungen.

Isolation

Durch das Prinzip der Isolation wird verhindert, dass sich in Ausführung befindliche Transaktionen gegenseitig beeinflussen. Realisiert wird dies beispielsweise durch spezielle Sperrprotokolle oder Zeitstempelverfahren.

Dauerhaftigkeit

Das Ergebnis einer Transaktion ist dauerhaft: Die Wirkung einer erfolgreich abgeschlossenen Transaktion bleibt dauerhaft (persistent) in der Datenbank erhalten, insbesondere auch nach Systemabstürzen.

Erläutern Sie "relationale Datenbank".

Die Bezeichnung "relationale Datenbank" geht auf den mathematischen Begriff der Relation zurück.

In einer relationalen Datenbank werden alle Daten als Tabellen dargestellt,

und eine Tabelle ist im wesentlichen nichts anderes als eine Relation.

was ist eine Domain?

Eine Domain ist eine Menge von Werten, d.h. ein Wertebereich.

Beispiel:  Folgende Mengen sind Domains:

  • Dbool  =  { false, true }  =  boolean
  • Dint  =  { -2147483648, ..., +2147483647 }  =  integer
  • Dstr  =  string

 

was sind Attribute?

Um gezielt auf die Spalten zugreifen zu können, werden daher die Spalten benannt, die entsprechenden Bezeichnungen heißen Attribute.

was ist ein Relationenschema?

Ein Relationenschema ist ein 4-Tupel (T, A, D, S), bestehend aus

  • einem Relationennamen T
  • einer Menge von Attributen A
  • einer Zuordnung D, die jedem Attribut eine Domain zuordnet
  • einer Menge S  A, dem Primärschlüssel

Für die obige Beispielrelation R ist folgendes Relationenschema sinnvoll:

  • T  =  Person
  • A  =  { id, nachname, vorname, gebdat }
  • D(id) = integer,   D(nachname) = string,   D(vorname) = string,   D(gebdat) = date
  • S  =  { id }

 

Die wichtigsten Operationen auf Datenbanktabellen sind:

Projektion, Selektion, kartesisches Produkt und Verbund. Alle vier Operationen werden in SQL in der einheitlichen Notation

SELECT column-namesFROM table-namesWHERE condition

formuliert. Hierbei sind column-names eine oder mehrere Spaltenüberschriften, table-names eine oder mehrere Tabellen und condition eine Bedingung. Ergebnis einer Datenbankoperation ist in jedem Fall wiederum eine Tabelle.

was ist  eine Projektion?

Eine Projektion ist die Auswahl gewisser Spalten einer Tabelle.

 

R[i] ergibt eine Tabelle, die aus den Einträgen der i-ten Spalte der Tabelle R besteht. Statt einer Spaltennummer wird i.a. die Spaltenüberschrift angegeben: R[spalte]. Es können auch mehrere Spalten in beliebiger Reihenfolge angegeben werden: R[spalte0, ..., spalten-1].

was ist eine Selektion?

Eine Selektion ist die Auswahl gewisser Zeilen einer Tabelle.

R[b] ist eine Tabelle, die aus allen Zeilen der Tabelle R besteht, die der Bedingung b genügen.

was ist das kartesische Produkt?

Das kartesische Produkt RS zweier Tabellen R und S ergibt eine Tabelle, deren Zeilen aus allen Kombinationen von Zeilen aus R und S bestehen.

Schreibweise in SQL:

SELECT *FROM R, S

was ist  ein Verbund?

 Ein Verbund zwischen zwei Tabellen R und S ist eine Selektion von gewissen Zeilen des kartesischen Produkts

RS, die einer bestimmten Bedingung genügen. D.h. es werden nur bestimmte Kombinationen von Zeilen von R bzw. S gebildet.

R[b]S ist eine Tabelle mit allen Zeilen aus RS, die der Bedingung b genügen. R[b]S ist also eine andere Schreibweise für (RS)[b].

 

Schreibweise in SQL:

SELECT *FROM R, SWHERE R.c=S.c

Verbund:

SELECT *FROM R, SWHERE R.c=S.c

lässt sich auch mit SQL-Befehl join formulieren:

SELECT *FROM R JOIN SON R.c=S.c

Das Ergebnis ist dieselbe Tabelle wie oben.

Im Beispiel tragen die beiden Spalten, über die der Verbund gebildet wird, dieselbe Spaltenüberschrift, nämlich c. In einem solchen speziellen Fall lässt sich das SQL-Kommando mithilfe von USING vereinfachen:

SELECT *FROM R JOIN SUSING (c)

Das Ergebnis unterscheidet sich vom vorherigen Ergebnis dadurch, dass die Spalte c nur einmal aufgeführt wird.

was bedeutet "Schlüsselkandidat"?

Eine Menge von Attributen einer Tabelle heißt Schlüsselkandidat, wenn jede Zeile der Tabelle sich durch die Werte dieser Attribute eindeutig identifizieren lässt.

Stets ist die Menge aller Attribute der Tabelle ein Schlüsselkandidat.

was ist ein Fremdschlüssel?

Attribute, die in einer anderen Tabelle Schlüssel sind.

Lernen