Datenbanken KE2 Flashcards

1
Q

Welches Datenmodell ist heute das wichtigste unter den Verschiedenen Datenmodellen, die vom DBMS unterstützt werden?

A

Das relationale Datenmodell

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

Welche Datenmanipulationssprache hat sich zum relationalen Datenmodell durchgesetzt?

A

SQL

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

Im relationalen Modell werden die Daten der realen Welt als eine Sammlung von Relationen dargestellt.

Wie kann man sich eine Relation anschaulich vorstellen?

A

Anschaulich kann man sich eine Relation als Tabelle vorstellen.
Entities und Beziehungen werden über solche Tabellen modelliert.

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

Wie ist eine Relation mathematisch definiert?

A

Sind D_1, D_2, …, D_n Mengen von Werten, so ist
R Teilmenge von D_1 x D_2 x…x D_n eine n-Stellige Relation über den Mengen (domains) und n ist der Grad (degree) der Relation.

-> Teilmengen aus den Kartesischen Produkt von Mengen

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

Was beschreib ein Tupel einer Relation im Bezug auf ein relationale Datenmodell?

A

Ein Tupel einer Relation beschreibt ein Entity, über die Kombination seiner Werte

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

Was wird durch das Relationenschema beschrieben?

A

Die Eigenschaften einer Relation

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

Was beschreibt R(A_1,…,A_n)?

A

Ein Relationenschema R(A_1,…,A_n) spezifieziert eine Relation mit Namen R und mit den paarweise verschiedenen Attributen A_1,…, A_n . Jedem Attribut A_i ist ein Wertebereich dom(A_i) zugeordnet.

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

Geben Sie ein Beispiel für ein Relationenschema.

A

ANGEST(ANGNR, NAME, WOHNORT, BERUF, GEHALT, ABTNR)

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

Was ist der unterschied zwischen einem Relationenschema und einer Relation?

A

Die Relation ist die Ausprägung des Relationenschemas.

Beispiel:
Relationenschema: ANGEST(ANGNR, NAME, WOHNORT, BERUF, GEHALT, ABTNR)
Relation: (198, ‘SCHMIDT‘, ‘KARLSRUHE‘, ‘KAUFMANN‘, 7500, 4)

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

In der Vorstellung von Relationen in Tabellen, was entsprich
einer Zeile?
einer Spalte?

A

Zeilen: Tupel der Relation
Spalte: Namen der Attribute

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

Wie nennt man eine Relation, bei der jedes Attribut elementar ist?

A

erste Normalform (1NF)

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

Was ist das Schema der (relationalen) Datenbank?

A
  • Die Gesamtheit der Relationsschemata einer Datenbank

- Menge der Integritätsbedinungen

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

Was ist die auffälligste Eingenschaft des relationalen Datenmodells?

A

Relationsschema als einziges Konzept zur Modellierung von Daten
Entities und Beziehungen werden als Relationen ausgedrückt.

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

Was ist ein candidate key?

A
  • Eine Relation wird durch Attributmengen ausgedrückt, wenn diese minimal sind nennen wir sie Schlüssel.
  • Ein Primärschlüssel wird erklärt, wenn mehrere Schlüssel möglich sind
  • Die anderen Schlüssel sind dann die candidate keys
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Man sagt ein relationales Datenmodell ist abgeschlossen. Was meint man damit?

A

Ebenso wie alle Daten in der Datenbank als Relationen dargestellt werden, ist auch das Ergebnis einer Abfrage (Query) eine Relation

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

Welche grundlegende Ansätze gibt es für eine Datenmanipulationssprache?

A
  • Relationenalgebra

- Relationenkalkül

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

Was ist eine Relationenalgebra?

A

Spezifikation von gewünschten Relationen durch

Angabe einer Folge von Operationen, mit der die Relationen aufgebaut werden sollen.
Der Benutzer wendet spezielle Operationen auf Relationen an, um seine gewünschte Relation zu konstruieren

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

Was ist ein Relationenkalkül?

A

Spezifikation von gewünschten Relationen in
deskriptiver Weise (ohne Angabe, welche Operationen zum Aufbau der Relation verwendet werden sollen).
Mit Hilfe des Prädikatenkalküls wird die Menge der gewünschten Tupel beschrieben:
es wird ein Prädikat (eine Bedingung) angegeben, das die Tupel erfüllen müssen.

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

Was ist ein Retrieval?

A

ein Retrieval ist der Kern jeder Datenmanipulationssprache, es sind diejenigen Komponenten, die die Datenauswahl (Lesen der gewünschten Daten) betreffen.

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

Was definiert eine Relationenalgebra?

A

Eine Relationenalgebra defniert eine Menge von Operattionen auf Relationen, mit deren Hilfe neue Relationen erzeugt werden können.

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

Welches sind die Grundoperationen der relationalen Algebra?

A
  • Vereinigung (Voraussetzung vereinigungsverträglich) -> V=R U S
  • Differenz (Voraussetzung vereinigungsverträglich) ->D=R-S
  • Kartesisches Produkt -> K=R x S
  • Projektion (entfernen von Attributen aus Relationen) -> P =π_(Ril,…,Rik)
  • Selektion (jedes Tupel muss für sich nachprüfbar sein) -> S=o_B(R)

nicht relationale Algebra aber notwendig bei Namenskonflikten:
- Umbenennung U=p_R1‘,…,Rn‘

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

Welche zusätzlichen Operationen gibt es neben den Grundoperationen in der Relationenalgebra?

A
  • Verbund/Join V=R „Fliege“

- Natürlicher Verbund / Natural Join V=R „Fliege“ S

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

Welche Operation beschreibt ein Verbund/Join?

A

Mit dem Verbund werden diejenigen Tupel aus zwei Relationen kombiniert, die bzgl. jeweils eines Fledes aus beiden Relationen einem vorgegeben Vergleich genügen

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

Welche Operation beschreib der Natürliche Verbund/Natural Join?

A

MIt dem natürlichen Verbund werden diejenigen Tupel aus zwei Relationen so kombiniert, dass jeweils die Werte der Attribute gleichen Namens aus beiden Relationen übereinstimmen. Im Ergebnis sind diese Attribute nur einmal vorhanden

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

In was lässt sich der Relattionenkalkül unterteilen?

A
  • Werte-orientiertes Relationenkalkül

- Tupel-orientiertes Relationenkalkül

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

Was ist der Unterschied zwischen dem Werte-orientierten und dem Tupel-orientierten Relationenkalkül?

A

Tupel orientiert: Variablen bezeichnen ganze Tupel

Werte orientier: Variablen bezeichnen einzelne Komponenten des Tupels

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

in einem Relationenkalkül wird die Abfrage

FINDE DIE WOHNORTE ALLER ANGESTELLTEN DIE PROGRAMMIERER SIND
als
{(ANGEST.WOHNORT)|ANGEST.BERUF=‘PROGRAMMIERER‘}
ausgedrückt
Beschreibe den Syntax

A

Form {t|q}, wobei t eine Liste von Attributname (Schema der gewünschten Relation) und q ein Prädikat (Qualifikationsteil, der die gewünschten Tupel für t spezifiziert)

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

Ein Prädikat q ist ein logischer Ausdruck von beliebiger Komplexität.
Aus was wird dieser logische Ausdruck aufgebaut?

A
  • Attributnamen
  • Konstanten
  • Vergleichsoperatoren
  • boolschen Operatoren
  • Existenzquantoren
  • Allquantoren
  • Tupelvariablen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Was ist eine Tupelvariable?

A

Eine Tupelvariable ist eine Variable, die ein Tupel einer Relation bezeichnet

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

Wann ist eine Tupelvariable in einem Audruck gebunden?

A

wenn sie Quantifiziert ist (Allquantor, Existenzquantor)

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

Wann bezeichnet man eine Abfrage als relational vollständig (complete)?

A

wenn mit ihr alles ausgedrückt werden kann, was im Relationenkalkül ausgedrückt werden kann

32
Q

Codd hat 1970 den bahnbrechenden Artikel „A Relational Model of Data for Large Shared Data Banks“ veröffentlicht.
Darauf begann IBM über eine Sprache zu forschen, die zur Implementierung des Modells geeignet ist.
Wie wurde diese Sprache genannt?

A

SEQUEL = Structured English QUEry Language

33
Q

Welche Firma hat als erstes ein DBMS entwickelt, das SQL als Sprache benutzt?

A

Relational Software Inc. - heute ORACLE

34
Q

Warum is tSQL keine relational vollständige Sprache?

A

Hauptunterschied:
SQL arbeitet mit Tabellen, die Duplikate von Zeilen enthalten können. Dies entspräche Tupeln, die in allen Attributen übereinstimmen, was in Relationen nicht möglich ist.

35
Q

SQL bietet noch eine wichtige Ergänzung gegenüber dem vorgestellten Relationenmodell und bloß relational vollständigen Sprachen an, welche?

A

NULL-werte
Prinzipiell kann jedes Attribut für ein Tupel den Wert NULL annehmen, was bedeutet, dass dieser Wert zwar vorgesehen, aber (noch) nicht festgelegt ist.

36
Q

Welche Grundstruktur hat eine SQL-Abfrage?

A

SELECT A_1,…,A_n
FROM R_1,…,R_n
WHERE Prädikat(R_1,…,R_n)

A_i = Attribut
R_i =Relation

37
Q

Welches Schlüsselwort verwendet man in SQL um doppelte Zeilen auszusortieren?

A

DISTINCT

38
Q

Wo werden im SQL-Standard JOIN-Operatoren angegeben?

A

in der FROM-Klausel

Beispiel:
SELECT PNR, NAME
FROM PROJECT JOIN ANGEST
ON P_LEITER=ANGNR

39
Q

Für was wird das Schlüsselwort USING in SQL genutzt?

A

um ein Attribut für den NATURAL JOIN explizit anzugeben z.B. wenn mehrere gleichnamige Spalten vorhanden sind.

Beispiel:
SELECT NAME
FORM ANGEST JOIN ANG_PRO
USING ANGNR
WHERE PNR = 17
40
Q

Was ist ein OUTER JOIN?

A

Es bleiben die nicht in der JOIN-Bedingung entsprechenden Zeilen der Tabelle die * vom Schlüsselbegriff OUTER JOIN stehen

*links; rechts; links und rechts

Beispiel LEFT OUTER JOIN
SELECT *
FROM EINS LEFT OUTER JOIN ZWEI
ON EINS.B = ZWEI.B

41
Q

Welche Nachteile haben Outer Joins?

A
  • Syntax: in vielen System nich standardkonform
  • Null-Werte :
    Setzen sich über NOT NULL-Constraints hinweg
    NULL wert in der ursprünglichen Tabelle schon vorhanden?
  • Performance
  • Verkettung und kognitive Überlastung
42
Q

was sind korrelierte Subqueries?

A

Unterabfragen, die eine äußere Referenz enthalten.

43
Q

Was macht das Schlüsselwort „EXISTS“ in einer SQL-Abfrage?

A

EXISTS testet lediglich, ob das Ergebnis überhaupt einen Wert enthält

44
Q

Welche aggregierenden Funktionen (set functions) stellt SQL im Standard zur Verfügung?

A
  • SUM
  • AVG
  • COUNT
  • MAX
  • MIN
  • EVERY
  • ANY
45
Q

Mit welcher Klausel ist es in SQL möglich, eine Gruppierung vorzunehmen?

A

GROUP BY

46
Q

Was macht die HAVING-Klausel?

A

Ermöglicht eine gruppierte Ergebnismenge einzuschränken

47
Q

Welche Anweisungen stehen in SQL für das Einfügen, Verändern und Löschen von Zeilen in der Datenbank zur Verfügung?

A
  • INSERT
  • UPDATE
  • DELETE
48
Q

Was versteht man unter Schemamanipulation?

A

Datendefinition

49
Q

Mit welchem Befehl erzeugt man in SQL eine Tabelle?

A

CREATE TABLE

50
Q

Wie definiert man in SQL einen Primärschlüssel?

A

PRIMARY KEY(A_1,…A_n)

51
Q

Was ist ein Fremdschlüssel, und wie wird er in SQL deklariert?

A

Ein Fremdschlüssel ist ein Primärschlüssel derselben oder einer anderen Tabelle.

FOREIGN KEY(A)

52
Q

Was versteht man unter referentielle Integrität?

A

Datensätze (über ihre Fremdschlüssel) dürfen nur auf existierende Datensätze verweisen

53
Q

Mit welcher SQL-Anweisung wir eine Relation aus der Datenbank entfernt?

A

DROP TABLE

54
Q

wie nennt man die im konzeptuellen Schema defnierten und damit im System physisch realisierten Tabellen im SQL-Standard?

A

Basetables

55
Q

Mit welcher Abfrage kann in SQL eine Sicht definiert werden?

A

CREATE VIEW

56
Q

Zu welchem Zeitpunkt werden Sichten in SQL ermittelt?

A

Sichten stellen abgeleitete Tabellen dar, sie unterscheiden sich von Basistabellen dadurch, dass ihr Inhalt bzgl. des konzeptuellen Schemas redundant ist und sie nicht physisch gespeichert sind, sondern zum Zeitpunkt des aktuellen Zugriffs aus den Basistabellen ermittelt werden

57
Q

Was ist das Transaktionskonzept?

A

Das zentrale Konzept, zur Sicherung der Korrektheit der parallelen Vorgänge.

58
Q

Was versteht man unter Recovery?

A

Die konsistente Wiederherstellung der Datenbank nach einem Absturz oder Plattenfehler

59
Q

Was verstehen wir unter „Konsistenz einer Datenbank“?

A

die Korrektheit und die Vollständigkeit der darin enthaltenen Informationen

60
Q

Nenne Beispiele für Inkonsistenzen:

A
  • Referenz ins Leere
  • Buchung X ist vom Konto A abgebucht, aber nicht dem Zielkonto B gutgeschrieben
  • Ein Summenfeld gibt nicht die korrekte Summe der Einzelelemente
  • Negatives Alter
  • Bei Mehrfachspeicherung in verschiedenen Sätzen: Änderung ist an einer Stelle erfolgt, nicht an der anderen
61
Q

Nenne Ursachen für Konsistenzverletzungen

A
  • Falsche Eingabedaten
  • Fehler im Anwendungsprogramm
  • Falsche Behandlung paralleler Anwendungabläufe
  • Abstürze des Betriebssystems oder des DBMS
  • Ausfälle von Massenspeichern
  • Falsche Schemadefinitionen
62
Q

Welche Aufgaben hat das DBMS in Bezug auf Konsistenz und Fehler?

A
  • Transaktionsmanagement

- Recovery

63
Q

Was bezeichnen wir als Transaktion?

A

Eine Folge von Befehlen, die entweder vollständig und korrekt ausgeführt werden oder überhaupt nicht

64
Q

Was ist der Recovery-Manager?

A

Die Komponente des DBMS, die im Falle von Hard- oder Softwarefehlern die Datenbank wieder in einen konsistenten Zustand versetzt.

Der Recovery-Manager legt Sicherungskopien von Datenbeständen an und protokolliert Transaktionen in sogenannten Logfiles mit

65
Q

Die Eigenschaften einer Transaktion kann man mit dem ACID-Prinzip beschreiben. Für was steht ACID?

A

Atomicity - Unteilbarkeit
Transaktion wird entweder ganz oder gar nicht ausgeführt
Consistency - Konsistenz
Isolation - Isolation
Transaktion muss ablaufen als sei sie die einzige im System
Durabiliy - Dauerhaftigkeit
erfolgreich beendete Transaktionen überleben jeden nachfolgenden Fehler

66
Q

Was ist die Aufgabe des Transaktionsmanagement?

A

für die Unteilbarkeit und Isolation ablaufender Transaktionen zu sorgen

67
Q

Welche Statements starten eine Transaktion (wenn sie nicht schon begonnen hat)?

A
  • ALTER
  • CREATE
  • DROP
  • GRANT
  • REVOKE
  • OPEN
  • CLOSE
  • FETCH
  • INSERT
  • UPDATE
  • DELETE
  • FEE LOCATOR
  • HOLD LOCATOR
  • START TRANSACTION
  • COMMIT AND CHAIN
  • ROLLBACK AND CHAIN
  • RETURN - wenn es die Abarbeitung einer Subquery bewirkt
68
Q

Mit welchem Statement wird das erfolgreiche Ende einer Transaktion dem DBMS mitgeteilt?

A
  • COMMIT
  • COMMIT WORK
  • COMMIT WORK AND NO CHAIN
69
Q

Wie wird eine Transaktion beendet, wenn ein Fehler in der Transaktion festgestellt wurde?

A

ROLLBACK (WORK)

70
Q

Was ist ein sogneannter „Deadlock“?

A

ein Zustand, in dem Transaktionen wechselseitig aufeinander warten um auf Objekte zugreifen zu können, sodass keine Transaktion mehr weiterverarbeiten kann.

71
Q

Was macht das DBMS im Falle eines Deadlocks?

A

das DBMS muss von sich aus je nach Fall einzelne, mehrere oder alle Transaktionen zurücksetzen, die noch kein COMMIT durchgeführt haben.

72
Q

Was ist ein Savepoint?

A

Transaktionen müssen mit ROLLBACK nicht nur komplett, sondern können bis zu definierten Zeitpunkten zurückgefahren werden.

73
Q

Was versteht man unter Embedded SQL?

Und wie wird dies umgesetzt?

A

SQL-Ausdrücke werden direkt in ein Wirts-Programmen aufgenommen.

Ein solches Programm kann nicht direkt von einem Compiler für die Wirtssprache übersetzt werden.
Zuerst muss dieses Programm durch einen Precompiler in ein syntaktisch korrektes Programm der Wirtssprache umgesetzt werden, woraufhin es dann mit einem Compiler für die Wirtssprache weiter übersetzt werden kann.

74
Q

Was ist ein Cursor?

A

Einen Cursor kann man sich vorstellen als einen Zeiger, mit dem die Ergebnisrelation einer Abfrage Tupel für Tupel durchlaufen werden kann.

75
Q

Was verstehen wir unter Dynamischen SQL?

A

Dynamisches SQL erlaubt Programmen, SQL-Anweisungen zur Laufzeit zu erzeugen und vom DBMS ausführen zu lassen. Bei der Erstellung des Programm muss nicht einmal das zugrundeliegende Datenbankschema bekannt sein - alle Statements können ggf. nach Abfrage des Katalogs „ad hoc“ generiert und an das DBMS zur Ausführung weitergegeben werden.