Datenbanken KE2 Flashcards
Welches Datenmodell ist heute das wichtigste unter den Verschiedenen Datenmodellen, die vom DBMS unterstützt werden?
Das relationale Datenmodell
Welche Datenmanipulationssprache hat sich zum relationalen Datenmodell durchgesetzt?
SQL
Im relationalen Modell werden die Daten der realen Welt als eine Sammlung von Relationen dargestellt.
Wie kann man sich eine Relation anschaulich vorstellen?
Anschaulich kann man sich eine Relation als Tabelle vorstellen.
Entities und Beziehungen werden über solche Tabellen modelliert.
Wie ist eine Relation mathematisch definiert?
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
Was beschreib ein Tupel einer Relation im Bezug auf ein relationale Datenmodell?
Ein Tupel einer Relation beschreibt ein Entity, über die Kombination seiner Werte
Was wird durch das Relationenschema beschrieben?
Die Eigenschaften einer Relation
Was beschreibt R(A_1,…,A_n)?
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.
Geben Sie ein Beispiel für ein Relationenschema.
ANGEST(ANGNR, NAME, WOHNORT, BERUF, GEHALT, ABTNR)
Was ist der unterschied zwischen einem Relationenschema und einer Relation?
Die Relation ist die Ausprägung des Relationenschemas.
Beispiel:
Relationenschema: ANGEST(ANGNR, NAME, WOHNORT, BERUF, GEHALT, ABTNR)
Relation: (198, ‘SCHMIDT‘, ‘KARLSRUHE‘, ‘KAUFMANN‘, 7500, 4)
In der Vorstellung von Relationen in Tabellen, was entsprich
einer Zeile?
einer Spalte?
Zeilen: Tupel der Relation
Spalte: Namen der Attribute
Wie nennt man eine Relation, bei der jedes Attribut elementar ist?
erste Normalform (1NF)
Was ist das Schema der (relationalen) Datenbank?
- Die Gesamtheit der Relationsschemata einer Datenbank
- Menge der Integritätsbedinungen
Was ist die auffälligste Eingenschaft des relationalen Datenmodells?
Relationsschema als einziges Konzept zur Modellierung von Daten
Entities und Beziehungen werden als Relationen ausgedrückt.
Was ist ein candidate key?
- 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
Man sagt ein relationales Datenmodell ist abgeschlossen. Was meint man damit?
Ebenso wie alle Daten in der Datenbank als Relationen dargestellt werden, ist auch das Ergebnis einer Abfrage (Query) eine Relation
Welche grundlegende Ansätze gibt es für eine Datenmanipulationssprache?
- Relationenalgebra
- Relationenkalkül
Was ist eine Relationenalgebra?
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
Was ist ein Relationenkalkül?
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.
Was ist ein Retrieval?
ein Retrieval ist der Kern jeder Datenmanipulationssprache, es sind diejenigen Komponenten, die die Datenauswahl (Lesen der gewünschten Daten) betreffen.
Was definiert eine Relationenalgebra?
Eine Relationenalgebra defniert eine Menge von Operattionen auf Relationen, mit deren Hilfe neue Relationen erzeugt werden können.
Welches sind die Grundoperationen der relationalen Algebra?
- 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‘
Welche zusätzlichen Operationen gibt es neben den Grundoperationen in der Relationenalgebra?
- Verbund/Join V=R „Fliege“
- Natürlicher Verbund / Natural Join V=R „Fliege“ S
Welche Operation beschreibt ein Verbund/Join?
Mit dem Verbund werden diejenigen Tupel aus zwei Relationen kombiniert, die bzgl. jeweils eines Fledes aus beiden Relationen einem vorgegeben Vergleich genügen
Welche Operation beschreib der Natürliche Verbund/Natural Join?
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
In was lässt sich der Relattionenkalkül unterteilen?
- Werte-orientiertes Relationenkalkül
- Tupel-orientiertes Relationenkalkül
Was ist der Unterschied zwischen dem Werte-orientierten und dem Tupel-orientierten Relationenkalkül?
Tupel orientiert: Variablen bezeichnen ganze Tupel
Werte orientier: Variablen bezeichnen einzelne Komponenten des Tupels
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
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)
Ein Prädikat q ist ein logischer Ausdruck von beliebiger Komplexität.
Aus was wird dieser logische Ausdruck aufgebaut?
- Attributnamen
- Konstanten
- Vergleichsoperatoren
- boolschen Operatoren
- Existenzquantoren
- Allquantoren
- Tupelvariablen
Was ist eine Tupelvariable?
Eine Tupelvariable ist eine Variable, die ein Tupel einer Relation bezeichnet
Wann ist eine Tupelvariable in einem Audruck gebunden?
wenn sie Quantifiziert ist (Allquantor, Existenzquantor)
Wann bezeichnet man eine Abfrage als relational vollständig (complete)?
wenn mit ihr alles ausgedrückt werden kann, was im Relationenkalkül ausgedrückt werden kann
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?
SEQUEL = Structured English QUEry Language
Welche Firma hat als erstes ein DBMS entwickelt, das SQL als Sprache benutzt?
Relational Software Inc. - heute ORACLE
Warum is tSQL keine relational vollständige Sprache?
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.
SQL bietet noch eine wichtige Ergänzung gegenüber dem vorgestellten Relationenmodell und bloß relational vollständigen Sprachen an, welche?
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.
Welche Grundstruktur hat eine SQL-Abfrage?
SELECT A_1,…,A_n
FROM R_1,…,R_n
WHERE Prädikat(R_1,…,R_n)
A_i = Attribut
R_i =Relation
Welches Schlüsselwort verwendet man in SQL um doppelte Zeilen auszusortieren?
DISTINCT
Wo werden im SQL-Standard JOIN-Operatoren angegeben?
in der FROM-Klausel
Beispiel:
SELECT PNR, NAME
FROM PROJECT JOIN ANGEST
ON P_LEITER=ANGNR
Für was wird das Schlüsselwort USING in SQL genutzt?
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
Was ist ein OUTER JOIN?
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
Welche Nachteile haben Outer Joins?
- 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
was sind korrelierte Subqueries?
Unterabfragen, die eine äußere Referenz enthalten.
Was macht das Schlüsselwort „EXISTS“ in einer SQL-Abfrage?
EXISTS testet lediglich, ob das Ergebnis überhaupt einen Wert enthält
Welche aggregierenden Funktionen (set functions) stellt SQL im Standard zur Verfügung?
- SUM
- AVG
- COUNT
- MAX
- MIN
- EVERY
- ANY
Mit welcher Klausel ist es in SQL möglich, eine Gruppierung vorzunehmen?
GROUP BY
Was macht die HAVING-Klausel?
Ermöglicht eine gruppierte Ergebnismenge einzuschränken
Welche Anweisungen stehen in SQL für das Einfügen, Verändern und Löschen von Zeilen in der Datenbank zur Verfügung?
- INSERT
- UPDATE
- DELETE
Was versteht man unter Schemamanipulation?
Datendefinition
Mit welchem Befehl erzeugt man in SQL eine Tabelle?
CREATE TABLE
Wie definiert man in SQL einen Primärschlüssel?
PRIMARY KEY(A_1,…A_n)
Was ist ein Fremdschlüssel, und wie wird er in SQL deklariert?
Ein Fremdschlüssel ist ein Primärschlüssel derselben oder einer anderen Tabelle.
FOREIGN KEY(A)
Was versteht man unter referentielle Integrität?
Datensätze (über ihre Fremdschlüssel) dürfen nur auf existierende Datensätze verweisen
Mit welcher SQL-Anweisung wir eine Relation aus der Datenbank entfernt?
DROP TABLE
wie nennt man die im konzeptuellen Schema defnierten und damit im System physisch realisierten Tabellen im SQL-Standard?
Basetables
Mit welcher Abfrage kann in SQL eine Sicht definiert werden?
CREATE VIEW
Zu welchem Zeitpunkt werden Sichten in SQL ermittelt?
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
Was ist das Transaktionskonzept?
Das zentrale Konzept, zur Sicherung der Korrektheit der parallelen Vorgänge.
Was versteht man unter Recovery?
Die konsistente Wiederherstellung der Datenbank nach einem Absturz oder Plattenfehler
Was verstehen wir unter „Konsistenz einer Datenbank“?
die Korrektheit und die Vollständigkeit der darin enthaltenen Informationen
Nenne Beispiele für Inkonsistenzen:
- 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
Nenne Ursachen für Konsistenzverletzungen
- Falsche Eingabedaten
- Fehler im Anwendungsprogramm
- Falsche Behandlung paralleler Anwendungabläufe
- Abstürze des Betriebssystems oder des DBMS
- Ausfälle von Massenspeichern
- Falsche Schemadefinitionen
Welche Aufgaben hat das DBMS in Bezug auf Konsistenz und Fehler?
- Transaktionsmanagement
- Recovery
Was bezeichnen wir als Transaktion?
Eine Folge von Befehlen, die entweder vollständig und korrekt ausgeführt werden oder überhaupt nicht
Was ist der Recovery-Manager?
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
Die Eigenschaften einer Transaktion kann man mit dem ACID-Prinzip beschreiben. Für was steht ACID?
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
Was ist die Aufgabe des Transaktionsmanagement?
für die Unteilbarkeit und Isolation ablaufender Transaktionen zu sorgen
Welche Statements starten eine Transaktion (wenn sie nicht schon begonnen hat)?
- 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
Mit welchem Statement wird das erfolgreiche Ende einer Transaktion dem DBMS mitgeteilt?
- COMMIT
- COMMIT WORK
- COMMIT WORK AND NO CHAIN
Wie wird eine Transaktion beendet, wenn ein Fehler in der Transaktion festgestellt wurde?
ROLLBACK (WORK)
Was ist ein sogneannter „Deadlock“?
ein Zustand, in dem Transaktionen wechselseitig aufeinander warten um auf Objekte zugreifen zu können, sodass keine Transaktion mehr weiterverarbeiten kann.
Was macht das DBMS im Falle eines Deadlocks?
das DBMS muss von sich aus je nach Fall einzelne, mehrere oder alle Transaktionen zurücksetzen, die noch kein COMMIT durchgeführt haben.
Was ist ein Savepoint?
Transaktionen müssen mit ROLLBACK nicht nur komplett, sondern können bis zu definierten Zeitpunkten zurückgefahren werden.
Was versteht man unter Embedded SQL?
Und wie wird dies umgesetzt?
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.
Was ist ein Cursor?
Einen Cursor kann man sich vorstellen als einen Zeiger, mit dem die Ergebnisrelation einer Abfrage Tupel für Tupel durchlaufen werden kann.
Was verstehen wir unter Dynamischen SQL?
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.