DEng
Data Engineering
Data Engineering
Kartei Details
Karten | 102 |
---|---|
Sprache | Deutsch |
Kategorie | Deutsch |
Stufe | Universität |
Erstellt / Aktualisiert | 07.08.2019 / 03.09.2019 |
Weblink |
https://card2brain.ch/box/20190807_deng
|
Einbinden |
<iframe src="https://card2brain.ch/box/20190807_deng/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Ein PL/SQL-DML-Datenbanktrigger hat drei Ausführungszeitpunkte. Bitte in alphabetischer Rei-henfolge angeben
AFTER, BEFORE, INSTEAD OF
Welche Aussagen über OIDs (object identifier) sind wahr?
Welche Aussagen über NESTED TABLE-Datentypen sind bei Oracle wahr?
Welche Aussagen über NESTED TABLE-Datentypen sind bei Oracle wahr?
Passt dieser Begriff eher zu RDBMS und / oder NoSQL?
Complex / multiple joins
Passt dieser Begriff eher zu RDBMS und / oder NoSQL?
Schema flexibility
Passt dieser Begriff eher zu RDBMS und / oder NoSQL?
High performance
Passt dieser Begriff eher zu RDBMS und / oder NoSQL?
Different transaction levels
Passt dieser Begriff eher zu RDBMS und / oder NoSQL?
Linear scalability
Passt dieser Begriff eher zu RDBMS und / oder NoSQL?
Advanced security needs
Passt dieser Begriff eher zu RDBMS und / oder NoSQL?
Advanced query functionality needs
Passt dieser Begriff eher zu RDBMS und / oder NoSQL?
Efficient calculation of aggregate functions
Nennen Sie die drei Eigenschaften des CAP-Theorems
CAP = Consistency, Availability und Partition-Tolerance
Von wievielen Eigenschaften des CAP-Theorems kann ein System jeweils maximal gleichzeitig profitieren?
2
Erklären Sie die Speicherstruktur Heap
Heap = filestructure, lists of unordered records <> In-memory heap
retrieval inefficient as searching has to be linear
I.d.R. Datapage Grösse von 8kB, zusammengefasst in Extents
Erklären Sie die Speicherstruktur B+ Index
Diskbasierter B-Baum über einem Attribut, Innere Knoten enhalten nur Zeiger, Blatt-Knoten enthalten Disk-Referenz auf das gespeicherte Tupel,
Erklären Sie die Speicherstruktur Clustered B+ Index
Wie B+-Index, aber Blatt-Knoten enthalten die Tuples, dh Tupels sind sortiert nach dem Attribut des Index
Erklären Sie die Speicherstruktur B+ Index basierend auf einem Clustered Index
Da es nur einen Clustered.Index pro Tabelle geben kann, werden weiter B+-Indexes auf anderen Attributen definiert. Im Gegensatz zu den B+-Indexes sind in den Blattknoten die Werte des Clustered-Indexes gespeichert => bedingt einen zuätzlichen Zugriff auf den clustered index
Gegeben ist eine Relation R mit Primary Key P.
R hat 250‘000 Tupels. 50 Tupels belegen einen Block (->total 5‘000 Blöcke).
Wie viele IO’s benötigt die Suche nach einem Tupel (und dem anschliessenden Lesen des gefundenen Tupels) mit einem Primary Key-Wert von P=p0 im Durchschnitt.
Annahme: das Tupel mit P=p0 existiert.
a. Wenn kein Index auf R definiert ist
Lineare Suche auf R (durchschn 50% der Blöcke durchsuchen): 2‘500 IO’s sind nötig
Gegeben ist eine Relation R mit Primary Key P.
R hat 250‘000 Tupels. 50 Tupels belegen einen Block (->total 5‘000 Blöcke).
Wie viele IO’s benötigt die Suche nach einem Tupel (und dem anschliessenden Lesen des gefundenen Tupels) mit einem Primary Key-Wert von P=p0 im Durchschnitt.
Annahme: das Tupel mit P=p0 existiert.
b. Wenn ein Clustered Index auf dem Schlüssel P definiert ist
Index Block enthält 100 Einträge; 10‘000 im Level 1, 100‘000 im Level 2, 1‘000‘000 im Level 3
d.h 3 Block-IO’s für das Laden des korrekten Index-Blocks und damit des Tupels
Gegeben ist eine Relation R mit Primary Key P.
R hat 250‘000 Tupels. 50 Tupels belegen einen Block (->total 5‘000 Blöcke).
Wie viele IO’s benötigt die Suche nach einem Tupel (und dem anschliessenden Lesen des gefundenen Tupels) mit einem Primary Key-Wert von P=p0 im Durchschnitt.
Annahme: das Tupel mit P=p0 existiert.
c. Wenn ein (Nonclustered) Index auf dem Schlüssel P definiert ist
Index Block enthält 100 Einträge; 10‘000 im Level 1, 1‘000‘000 im Level 2
d.h 2 Block-IO’s für das Laden des korrekten Index-Blocks
zusätzlich ein Zugriff auf das Tupel =>total 3 IO -Operationen
Erklären Sie den Begriff Statistik im Zusammenhang mit DBMS
DBMS führt Statistik über die Anzahl und die Verteilung der Daten in den einzelnen Tabellen
Erklären Sie den Begriff Selektivität
Selektivität: prozentueller Anteil der Tupels in einer Tabelle, die von einer Query geliefert werden
Erklären Sie den Begriff Dichte
Pro Attribut, Dichte=durchschnittlicher prozentueller Anteil von Duplikaten=Anzahl distinct Werte/Anzahl Tuples
Welches sind die wichtigsten Anforderungen an ein verteiltes DBMS?
Datenverteilungstransparenz: Queries schreiben ohne auf die Verteilung der Daten zu achten
Verteilte Transaktionen (Atomarität 2PC)
Bei „normalen“ Anwendungen mit Datenbanken kommen lokale DB-Transaktionen zum Einsatz, die sich z.B. mit JDBC oder JPA steuern lassen.
In welchen Situationen kommen die 2 PC Protokolle zum Einsatz?
Sobald mehrere lokale Resourcen (DB’s oder Queue-Systeme) zum Einsatz kommen. Bei DBMS: sobald sich T. über mehrere Session erstrecken.
Bei „normalen“ Anwendungen mit Datenbanken kommen lokale DB-Transaktionen zum Einsatz, die sich z.B. mit JDBC oder JPA steuern lassen.
Erklären Sie kurz, wie die zwei Phasen beim 2 PC Protokoll ablaufen.
Phase 1: „Prepare to commit: TM fragt alle RMs an, ob sie bereit sind zum Commit der laufenden T. Falls der RM die T. commiten kann, anwortet er mit Ready andernfalls mit Not ready
Phase 2: „Commit“: Falls alle RM mit ready geantwortet haben, schickt der TM eine commit an seine RM’s. Diese führen das Commit lokal aus. Falls einer der RM nicht oder mit not ready ge-antwortet hat, sendet der TM ein rollback an seine RM’s. Diese machen einen lokalen Rollback.
Bei „normalen“ Anwendungen mit Datenbanken kommen lokale DB-Transaktionen zum Einsatz, die sich z.B. mit JDBC oder JPA steuern lassen.
Wie hängen die 2 PC-Protokolle mit den lokalen DB-Transaktionen zusammen? Welche API’s spielen dabei eine Rolle? Welche Schnittstellen verwenden die Applikationen zur Steuerung der verteilten Transaktionen?
Der TM kommuniziert über das XA-Interface mit den Resourcen und steuert so deren Transaktionen. Die Applikation greift nicht auf die lokalen T-Schnittstellen zu sondern auf die XA-Operationen des TM
Wozu wird Replikation eigesetzt? Nennen Sie dazu 2 typische Anwendungsfälle.
Replizierte Verteilung der Daten=>höhere Verfügbarkeit (geographische Verteilung, bessere Skalierbarkeit, Anwendungsfälle: Loadbalancing, Realtime OLAP, geograph. Verteilte System mit lokaler Teilautonomie
Definieren Sie kurz die Einteilung der replizierten Systeme in Master/Slave , Asynchrone / synchron!
Master Slave
Primary copy (master‐slave):
Update auf dem Primary Copy Master Knoten (=Publisher)
Update werden zu den Read-only Subscribern (Slaves) propagiert
Synchron: Update werden synchron auf die Subscribers propagiert (2PC)
Asynchron; Update werden asynchron auf die S. propagiert=>kann zu Inkonsistenzen auf den Slaves führen
Beschreiben Sie kurz die Konflikte die bei Änderungsoperationen in Systemen mit asynchroner Replikation auftreten
Update conflicts
Uniqueness conflicts
Delete conflicts
Ordering conflicts
Was ist „Merge Replikation“ (inkl. Anwendungsfälle)?
Publisher und mehrere Subscribers
P. macht einen Snapshot und kopiert diesen auf die Subscribers
P. und S. machen Aenderungen und synchornisieren diese von Zeit zu Zeit.
Anwendungsfälle: lokale DB auf mobilen Clients, die auch offline sein können
Oracle unterstützt Replikation mit materialisierten Views. Erklären Sie kurz Prinzip und Funktions-weise der materialisierten Views.
MV=View mit Snapshot der Daten, kann auch remote angelegt werden.
Diverse Aktualisierungsmethoden : on demand, readonly, on commit
Erklären Sie kurz die Begriffe vertikales und horizontales Skalieren. Welches der Verfahren wird in MongoDB mit welcher Funktion unterstützt?
Vertikales Skalieren: Server HW ausbauen
Horizontales Skalieren: Sharding, Daten mit einem Partiton-Key partitionieren . Jede Partition auf einen („billigen“) Rechner verteilen (=Shard).
MongoDB unterstützt keine Funktionen für Backup und Just-in-Time Recovery. Mit welchen Funktionen lässt sich eine Mongo-Datenbank gegen Ausfälle sichern?
Replikation mit mind 3 Knoten.
Welcher Mechanismus verwendet MongoDb für das Synchronisieren von Replikas. Ist dieser Mechanismus asynchron oder synchron?
Oplog keeps an ordered list of write operations that have occurred.
MongoDB applies database operations on the primary and then records the operations on the primary’s oplog.
The secondary members then copy and apply these operations in an asynchronous process.
Wir betrachten ein Replika-Set mit 3 Knoten A, B, C und dem Primary A.
Welche Operationen (Lese oder Schreib) kann der Client auf dem Primary durchführen. Unter welchen Umständen kann der Client auf dem Knoten B lesen?
Primary erlaubt Lese und Schreiboperationen
Knoten B als Secondary erlaubt keine Operationen. Leseoperation mit entsprechender ReadPreference möglich, allerdings keine Gewähr, dass aktuelle Version der Daten geliefert werden.
Wir nehmen an, dass der Client einige Schreiboperationen ausführt. Durch eine Partitionierung wird der Primary A von B und C getrennt. Wie reagiert das System? Können Daten verloren gehen (mit Erklärung)?
A hat keine Majorität mehr und geht in den Secondary Zustand, B und C erküren einen neuen Primary (z.B. C). Falls die neuesten Einträge im Oplog von A nicht repliziert wurden, ignoriert C und damit B diese Änderungen => gehen verloren.
Der Client führt einige Schreiboperationen aus. A kommt zu einem späteren Zeitpunkt wieder dazu (d.h alle Knoten A, B und C sind wieder im Netzwerk)? Wie reagiert das System?
A wird als Secondary wieder in den Verbund von B und C aufgenommen. A aktualisiert sein Oplog und führt die Operationen nach.
Wie können Sie das Majority-Protokoll in MongoDb umsetzten?
Durch setzen des WriteConcerns, so dass alle Schrieboperationen von einer Majorität der Knoten bestätigt werden müssen (=> sonst wird die Schreiboperation nicht ausgeführt)