DEng

Data Engineering

Data Engineering


Fichier Détails

Cartes-fiches 102
Langue Deutsch
Catégorie Allemand
Niveau Université
Crée / Actualisé 07.08.2019 / 03.09.2019
Lien de web
https://card2brain.ch/box/20190807_deng
Intégrer
<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)