Datenmanipulation & Abfrage Flashcards

1
Q

Wie fügt man einen neuen Datensatz in eine Tabelle ein?

A

Mit dem INSERT Befehl

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie löscht man einen Datensatz in einer Tabelle?

A

Mit dem DELETE Befehl

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was macht ON DELETE CASCADE?

A

Das Löschen eines Datensatzes führt dazu, dass alle ihn referenzierenden Datensätze ebenfalls gelöscht werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was macht ON DELETE SET NULL?

A

Das Löschen eines Datensatzes führt dazu, dass alle Zellen, in denen ein entsprechender Fremdschlüsselwert eingetragen ist, auf NULL gesetzt werden.

Dies setzt voraus, dass für das entsprechende Fremdschlüsselattribut Nullwerte erlaubt sind

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist die dritte Option wenn man beide Optionen verhindern möchte (zum löschen) und dennoch die referenzielle Integrität der Datenbasis sicherstellen will?

A

einzige Option, den Datensatz nicht zu löschen, sondern den Wert eines eigens dafür angelegten Attributs (z B active auf false zu setzen und bei Datenbankabfragen die Datensätze entsprechend zu filtern

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Woraus besteht eine Datenbankabfrage?

A

Aus den beiden Schlüsselwörtern SELECT und FROM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist SELECT?

A

Mit dem Schlüsselwort SELECT kann eine (mit Komma getrennte) Liste von Attributen der Tabelle spezifiziert werden, die im Resultat der Abfrage enthalten sein sollen.

Darüber hinaus können mathematische Ausdrücke angegeben werden, die statische Werte oder Attributwerte beinhalten mithilfe des Schlüsselworts AS wird ein Name für das daraus generierte Attribut angegeben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist FROM?

A

Mit dem Schlüsselwort FROM wird der Name der Tabelle spezifiziert, aus der die Daten abgefragt werden sollen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was macht der | | Operator?

A

Der | | Operator führt dabei eine String Konkatenation aus, also ein Aneinanderreihen von Zeichenketten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was macht WHERE?

A

Datenbankabfragen können damit um Bedingungen ergänzt werden.

Die Bedingung muss ein logischer Ausdruck sein, den das DBMS entweder zu wahr oder zu falsch
auswerten kann.

Dabei können verschiedene Operatoren angewandt werden, um eine Filterung auf Basis der Datensätze zu ermöglichen, z B Vergleich auf Gleichheit größer/kleiner als größer/kleiner als oder gleich Ungleichheit oder Nullwertüberprüfung IS [NOT] NULL.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist ORDER BY?

A

Abfrageergebnisse lassen sich damit sortieren.

ORDER BY Attributname/ASC/DESC

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist das kartesische Produkt?

A

Betrachtet man nun die Tabellen einer Datenbank als Mengen von Datensätzen, so kann analog zur
Mengenlehre ein kartesisches Produkt aus den Datensätzen mehrerer Tabellen gebildet werden.

Dabei wird jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle und dieses Ergebnis wiederum mit jeder Zeile der dritten Tabelle kombiniert usw Dies lässt sich in SQL dadurch umsetzen, im FROM Teil der Anfrage mehrere (durch Komma getrennte) Tabellen zu listen.

Verfügt Tabelle 𝑖 über 𝑛𝑖 Zeilen und sind 𝑚 Tabellen an der Bildung des kartesischen Produkts beteiligt,
so hat das Resultat demzufolge 𝑛1⋅𝑛2⋅…⋅𝑛𝑚 Zeilen.

Gerade, wenn viele große Tabellen beteiligt sind,
führt dies schnell zur so genannten kombinatorischen Explosion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist ein Inner Join?

A

Vielmehr möchte man die Tabellen entsprechend der durch die Fremdschlüsselattribute vorgesehenen Referenzen zusammenführen, beispielsweise um sich zu einer Mitarbeitenden aus der Tabelle Employees auch ihren Beruf aus der Tabelle Jobs ausgeben zu lassen.

Die dafür benötigte Operation wird im Kontext relationaler Datenbanken als innerer Verbund Inner Join bezeichnet und in SQL durch den INNER JOIN Befehl
implementiert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist ein Outer Join?

A

Ein anderer denkbarer Anwendungsfall wäre die Erstellung eines Verbundes, bei dem jedoch auch
Zeilen aus den Ausgangstabellen enthalten sein sollen, für die keine Entsprechung in der jeweils anderen Ausgangstabelle enthalten ist.

LEFT OUTER JOIN Alle Datensätze aus der zuerst benannten Tabelle sind in jedem Fall im Ergebnis erhalten, diejenigen aus der zweiten Tabelle allerdings nur, falls sie über Zuordnungen in der ersten Tabelle verfügen

RIGHT OUTER JOIN Alle Datensätze aus der zweiten Tabelle sind enthalten, jedoch nicht diejenigen aus der ersten Tabelle, die keine Zuordnung in der zweiten Tabelle haben

FULL OUTER JOIN Alle Datensätze aus beiden Tabellen sind enthalten, unabhängig davon, ob sie über eine Zuordnung in der jeweils anderen Tabelle verfügen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist ein Self Join?

A

Ein semantischer Sonderfall des Verbunds liegt vor, wenn eine Tabelle nicht mit einer anderen, sondern
mit der gleichen Tabelle verbunden wird, d h es liegt ein JOIN Befehl der Form Tabelle 1 JOIN
Tabelle 1 vor Dieser Sonderfall wird als Self Join bezeichnet, da eine Tabelle mit „sich selbst“
verbunden wird

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was bringt das Verschachteln von Abfragen?

A

Ein weiterer Anwendungsfall, der bisher nicht abgedeckt wurde, sind Abfragen, die auf den Ergebnissen vorheriger Abfragen basieren.

So könnte beispielsweise zunächst der Beruf einer bestimmten Mitarbeitenden ermittelt werden, um dann alle Angestellten mit dem gleichen Beruf abzufragen.

In solchen Fällen ist es erforderlich, verschachtelte Abfragen auszuführen Diese sind dadurch
gekennzeichnet, dass im WHERE Teil der äußeren Abfrage eine weitere Abfrage der Form SELECT
FROM WHERE enthalten ist

17
Q

Welche Aggregatfunktionen gibt es?

A

Der SQL Standard kennt fünf Aggregatfunktionen welche eine Menge von Attributwerten
unterschiedlicher Datensätze in einen skalaren d.h. atomaren Wert zusammenführen. Dabei handelt es
sich um die folgenden Funktionen:

COUNT Anzahl der vorhandenen Datensätze

MAX maximaler Attributwert aller vorhandenen Datensätze

MIN minimaler Attributwert aller vorhandenen Datensätze

SUM Summe der Attributwerte aller vorhandenen Datensätze

AVG arithmetisches Mittel aller vorhandenen Datensätze

Aggregatfunktionen werden innerhalb von SQL Abfragen stets im SELECT Teil eingesetzt

18
Q

Wie kann man etwas gruppieren?

A

Mit GROUP BY am ENDE

19
Q

Was ist eine Datensicht/View?

A

Häufig kommt es vor, dass in regelmäßigen Abständen immer wieder die gleiche SQL Anfrage ausgeführt werden muss, z B im Rahmen bestimmter betrieblicher Abläufe wie dem Erstellen von Quartalsberichten oder der Durchführung einer Inventur.

In solchen Fällen wäre es erstens mühsam und
zweitens eine potenzielle Fehlerquelle, die dafür benötigten SQL Abfragen jedes Mal neu zu erstellen.

Stattdessen bieten SQL basierte DBMS die Möglichkeit, Datensichten Views zu erstellen.

Dabei handelt es sich um Tabellen, die nicht physisch gespeichert, sondern anhand einer fest hinterlegten
Abfrage bei jedem Aufruf dynamisch aus den tatsächlich gespeicherten Daten zusammengesetzt
werden

20
Q

Wie kann man eine Datensicht erstellen?

A

CREATE VIEW Name AS SQL-Abfrage;

Dabei ist Name eine benutzerdefinierte Bezeichnung für die Datensicht und SQL Abfrage eine beliebige
konventionelle SQL Abfrage.

Der Vorteil der Datensicht gegenüber einer einfachen SQL Abfrage besteht nun darin, dass die Tabelle, die der Datensicht zugrunde liegt, im FROM Teil anderer Abfragen über ihren Namen eingebunden werden kann

21
Q

Was ist eine Transaktion in SQL?

A

Transaktionen in SQL erlauben es, mehrere SQL Operationen zu einer großen Operation
zusammenzufassen.

Das heißt konkret, dass die Effekte der Operationen erst dann eintreten, wenn alle Operationen abgeschlossen sind.

Umgekehrt bedeutet es auch, dass alle Operationen im Fehlerfall rückgängig gemacht werden können, ohne dass sich der Datenbankzustand effektiv verändert.

Solche Transaktionen werden in SQL wie folgt umgesetzt:

BEGIN TRANSACTION
Operation 1;
Operation 2;
…
COMMIT oder ROLLBACK;
22
Q

Welche Fehlerfälle gibt es?

A

Während der Ausführung der Operationen wird bemerkt, dass es nicht sinnvoll oder nicht möglich
ist, die Transaktion durchzuführen. Dies könnte z B der Fall sein, wenn versucht wird, Guthaben
vom Account einer Mitarbeitenden abzubuchen, welcher nicht über hinreichende Deckung verfügt
In diesem Fall kann im Kontrollfluss (also in der Sequenz von Operationen) ein expliziter Abbruch
der Transaktion mithilfe des Schlüsselwortes ROLLBACK herbeigeführt werden

Während der Ausführung der Transaktion kommt es zu einem globalen Problem mit der gesamten
Datenbank (z B Hardwareschaden, Stromausfall, etc In diesem Fall wird die Transaktion stets
abgebrochen bzw werden nach dem Neustart des DBMS die Operationen aller nicht vollständig
ausgeführten Transaktionen automatisch rückgängig gemacht