Erläutern Sie kurz "logische Sicht auf Dateien" und "logische Sicht auf Daten".
Eine logische Sicht auf Dateien realisieren Betriebssysteme mit Hilfe von hierarchischen Verzeichnissen (Ordnern). Eine logische Sicht auf Daten realisieren Datenbanksysteme z.B. mit Hilfe von zeilenorientierten Konzepten (relationale DBS). In beiden Fällen muss die physische Organisation dem Benutzer nicht bekannt sein, um mit den Dateien bzw. Daten zu arbeiten (Transparenz durch die Trennung der physischen und logoschen Ebene > ANSI/SPARC-Modell).
Warum ist nach Ihrer Einschätzung eine Virtualisierungsebene zur Umsetzung der sogenannten Scaling Out-Strategie zur Skalierbarkeit unverzichtbar?
Eine sukkzessive Erweiterung der Hardware durch weitere Serverknoten (scaling-out) ist aus verschiedenen Gründen in der Praxis nicht realisierbar. Es scheitert bereits daran, dass kompatible Hardware nicht mehr erhältlich ist. Diese Einschränkung kann durch eine Virtualisierungsebene überwunden werden.
Erklären Sie den folgenden Ausdruck der relationalen Algebra hinsichtlich Syntax und Semantik und geben Sie eine entsprechende SQL-Anweisung dafür an:
Syntax: Left-Semi-Join Operation mit Benennung der Abfrage durch die Zuweisung "=". projekt und abteilung10 sind Tabellennamen.
Semantik: Es wird ein Natural-Join ausgeführt, wobei in der Ergebnismenge jedoch nur die Spalten (Attribute) der Tabelle (Relation) projekt enthalten sind. Die Benennung der Abfrage entspricht der Definition einer View.
Welcher Art von SQL-Abfrage entspricht semantisch eine MDX-Abfrage?
Pivot-Abfrage, z.B. mittels standardisierter Pivot-Klausel einer SELECT-Anweisung.
Zusatzfrage: Spaltenorientierung
Was deutet darauf hin, dass spaltenorientierte In Memory-DBS auch für OLTP vorteilhaft sind?
Eine Untersuchung von SAP (2010) zeigte, dass auch in OLTP-Systemen überwiegend Abfragen durchgeführt werden. Bei Abfragen sind spaltenorientierte Strukturen vorteilhafter.
Sie verbinden sich unter Linux wie folgt mit einem Oracle DBS: sqlplus scott/tiger@abc:8080/def
Mit welcher Oracle-Instanz werden Sie verbunden?
Was ist eine Oracle-Instanz und was genau bedeutet 8080?
Wie lautet das entsprechende Kommando unter Windows?
(1) def (2) Das DBMS wird bei Oracle als Instanz bezeichnet. (3) Das Kommando ist identisch.
Wie wird in Oracle der physische Speicherort für Tabellen spezifiziert und welches produktunabhängige Architekturprinzip wird dabei realisiert?
Mit Hilfe des logischen Datenbankobjekts "Tablespace". Es realisiert quasi die Schnittstelle zwischen der logischen und physischen Ebene des ANSI/SPARC-Architekturmodells.
Was versteht man bei Oracle unter Archivierung und wann genau findet Archivierung statt?
Die dauerhafte Speicherung (durch Kopieren) der Online Redolog-Dateien. Dies findet bei jedem Wechsel zwischen Redolog-Gruppen (gespiegelte Online Redolog-Dateien) statt. Eine Online Redolog-Datei darf erst überschrieben werden, wenn die Archivierung dieser Online Redolog-Datei abgeschlossen ist.
Warum ist es für ein Offline-Backup mit RMAN erforderlich, dass sich das DBS in der Mount-Phase befindet und warum ist die Mount-Phase für ein Online-Backup jedoch nicht geeignet?
In der Mount-Phase (also nach dem Lesen der Kontrolldatei) ist dem DBMS (und somit RMAN) bekannt, wo sich die Dateien befinden. Die Dateien sind jedoch nicht geöffnet, d.h. Benutzer können nicht arbeiten. Das DBS ist also nicht "online".
Gegeben ist folgender Schedule: S =
Mit pij wird die j-te Operation (p in {r,w}) der Transaktion Ti bezeichnet.
Stellen Sie die Transaktionen und Operationen in einer Tabelle zeitgerecht dar
Ist S serialisierbar? Begründen Sie Ihre Antwort mit einem beschrifteten Konfliktgraphen.
Die Transaktionen werden in einem DBS ausgeführt, welches das MVCC-Verfahren realisiert. Geben Sie an, wie sich der Schedule dadurch verändert und stellen Sie den veränderten Konfliktgraphen dar. Wird der Schedule dadurch serialisierbar? Begründen Sie Ihre Antwort.
Auf welche Weise wird das MVCC-Verfahren in Oracle realisiert?
3.
Durch das MVCC-Verfahren kann die Operationen r12(x) virtuell zeitlich verschoben werden vor die Schreiboperation w31(x), weil der alte Wert von x gelesen werden kann. Ebenso wäre auch eine Verschiebung von r32(z) vor w22(z) möglich. Es sind daher verschiedene konfliktäquivalente serielle Schedules denkbar, je nach dem, welche Transaktion beginnt. Würde T1 beginnen, dann wäre die Operation r12(x) vor w31(x) unter Berücksichtigung von MVCC also kein veränderter Konflikt. Ebenso r32(z) vor w22(z). Der konfliktäquivaltente serielle Schedule wäre daher T1-T3-T2. T2 kann nicht beginnen, denn w21(y) müsste dann vor r11(y) stattfinden, was MVCC nicht bewirken kann und somit ein veränderter Konflikt wäre. Unter der Annahme, dass der Ablauf wie in a.) mit T3 beginnen soll, könnte durch MVCC aber wie zuvor beschrieben r32(z) vor w22(z) erfolgen. Dann müsste T1 folgen und schließlich T2. Die Operation r12(x) würde dabei den aktuellen Wert von x lesen, weil T3 beendet werden kann. Die konfliktäquivalente serielle Abfolge wäre dann also T3-T1-T2 mit dem folgendem Konfliktgraphen:
4.
"Lesekonsistenz ohne Sperren" mit Hilfe von Undo-Segmenten (Rollback-Segmenten).
Für die Realisierung eines Data Warehouse existiert nach einer ersten Projektbesprechung die nachfolgende (Grob-)Skizze mit Angaben der Controlling-Abteilung, welche Informationen gespeichert und welche Kennzahlen ausgewertet werden sollen:
Identifizieren Sie die Fakten, Dimensionen und Hierarchien. Spezifizieren Sie entsprechend die einzelnen Elemente Dx von DS, wobei DS die Menge der dimensionalen Schemata ist.
{} unsortierte Menge [] sortierte Menge
Fakten
Allgemein wird zwischen Maßzahlen (measures) und Kennzahlen unterschieden. Maßzahlen sind Messwerte, aus denen Kennzahlen gfls. mittels mathematischer Operationen abgeleitet werden. Maßzahlen sind “Fakten“. Somit: Cube VERKAUF mit einzelpreis und menge, Cube LAGER mit bestand sowie Cube LIEFERUNG mit pakete.
Anm.: In Anlehnung an den Begriff “Faktentabelle“ im Rahmen der Realisierung mit RDBS werden Cubes+Measures manchmal auch als Fakten bezeichnet. Darüberhinaus gibt es auch Quellen, in denen quasi eine Zelle des Cube als Fakt bezeichnet wird, die alle Measures/Kennzahlen bezüglich der geringsten Granularität (Aggregationsstufe) beinhaltet. Dies entspricht im Prinzip einem sogenannten “Fakt-Record“ einer Faktentabelle.
Cube = (Kennzahlmenge, Dimensionenschema)
VERKAUF = (Mverkauf, DSverkauf)
LAGER = (Mlager, DSlager)
LIEFERUNG = (Mliefer, DSliefer)
Dimensionenschema = Schema einer Dimension
Dimensionenschemata
DSverkauf = {Kunde, Produkt, Zeit}
DSlager = {Produkt, Zeit}
DSliefer = {Kunde, Zeit}
Klassifikationshierarchien als sortierte Mengen von Dimensionselementen
(Dimensionselement = Stufe in einer Klassifikationshierarchie)
Kunde = [knr, land, region, gesamt]
Produkt = [pnr, bezeichnung, kategorie, gesamt]
Zeit = [tag, monat, quartal, jahr, gesamt]
Zeit = [tag, woche, jahr, gesamt] /*multiple (parallele) Hierarchie*/
Annahmen:
· Verschiedene Produkte (pnr) können gleiche Bezeichnungen haben.
· Woche im Sinne einer Kalenderwoche. Diese gehört genau zu einem Jahr.
Ergänzung:
Die oberste Hierachiestufe gesamt enthält die Aggregation auf einen einzelnen Wert für die gesamte Dimension.
Dimensionale Attribute
knr - -> name
Stellen Sie ein geeignetes Datenmodell als multidimensionales E/R-Diagramm (ME/R) nach Sapia dar und achten Sie dabei auch auf mögliche parallele Hierarchien.
Die Hierarchiestufen knr und pnr sind nicht sehr aussagekräftig und gehören mehr zum DFM-Konzept. Besser wären die Bezeichnungen kunde und produkt mit den dimensionalen Attributen knr und pnr. Die Bezeichnungen der Hierarchiestufe mit geringstenr Granularität (Primärattribut) ist aber nicht zwingend die Bezeichnung der Dimension. Nicht verwechseln. Bei der ADAPT-Notation wird dies unterschieden. Sinnvolle Bezeichnung der Dimension wäre Produkt und Artikel für das Primärattribut.
Geben Sie den Inhalt einer Datei namens schema.xml an, in welcher das dimensionale Datenmodell mit einer sinnvollen XML-Struktur gespeichert ist.
Hinweise:
· Es sind verschiedene Lösungen möglich und z.B. nicht zwingend das Mondrian-Format gefordert (keine Tabellennamen).
· Sehr viel Schreibarbeit. In der Klausur gab es die max. Punktzahl, wenn das Grundprinzip korrekt erkennbar war.
<schema>
<cube name="VERKAUF">
<kennzahl>einzelpreis</kennzahl>
<kennzahl>menge</kennzahl>
<cube_dimension>kunde</cube_dimension>
<cube_dimension>produkt</cube_dimension>
<cube_dimension>zeit</cube_dimension>
</cube>
<cube name="LIEFERUNG">
<kennzahl>pakete</kennzahl>
<cube name="LAGER">
<kennzahl>bestand</kennzahl>
<dimension name="kunde">
<hierarchie>
<level>knr</level>
<attribute>name</attribute>
<level>land</level>
<level>region</level>
<level>gesamt</level>
</hierarchie>
</dimension>
<dimension name="produkt">
<level>pnr</level>
<level>bezeichnung</level>
<level>kategorie</level>
<dimension name="zeit">
<level>tag</level>
<level>monat</level>
<level>quartal</level>
<level>jahr</level>
<level>woche</level>
</schema>
Die Datei schema.xml wird in einer XML-Datenbank verwaltet. Notieren Sie eine XQuery-Abfrage zur Auflistung aller Kennzahlen wie folgt:
for $i in fn:doc("schema.xml")
return $i/schema/cube/kennzahl/text()
Result Sequence
-----------------
einzelpreis
menge
pakete
bestand
Die Funktion text() bewirkt, dass nur der jeweilige Inhalt des Tags zurückgegeben wird und nicht das gesamte Tag <kennzahl>. . . </kennzahl>
Das Modell wurde in ähnlicher Weise im Mondrian-Format in der XML-Datenbank von Oracle (XDB) gespeichert. Hier ist der Name der Kennzahl ein Tag-Parameter. Abfrage in SQL*Plus:
connect scott/tiger@heron_stud112
xquery for $i in fn:doc("/public/dbu/projektskizze.xml")
return $i/Schema/Cube/Measure/@name
Wie wird das Architekturkonzept genannt, das bei diesem DWH-Projekt offensichtlich umgesetzt werden kann und wer hat es erstmals beschrieben?
“Enterprise Information Bus“ (EIB) von Ralph Kimball
Die Trennung welcher Verarbeitungsprinzipien (von Datenbanken) soll durch Hauptspeicherdatenbanken idealerweise aufgehoben werden?
Die Trennung zwischen OLTP (Online Transactional Processing) und OLAP (Online Analytical Processing). Spaltenorientierung eignet sich besonders für OLAP und ist Voraussetzung für Hauptspeicherdatenbanken. Eine Untersuchung zeigte, dass auch bei OLTP meist Abfragen (wie bei OLAP) durchgeführt werden!
Welche Art von Datenbanksystemen realisieren das zeilenorientierte Datenmodell? Erläutern Sie anhand einer Skizze den Vorteil des spaltenorientierten Datenmodells.
Relationale Datenbanksysteme sind zeilenorientiert. >> Plattner, Datenbank-Spektrum (2010):
Beschreiben Sie den Unterschied zwischen HTML und XML bezüglich Syntax und Semantik
Syntax: HTML und XML ist hierarchisch mit Auszeichnungselementen (Markups) aufgebaut. Bei HTML sind diese vordefiniert, bei XML sind sie frei definierbar.
Semantik: HTML hat den Zweck, Inhalte formatiert darzustellen. Semantik wird durch eine sinnvolle Gliederung einer Seite erreicht. XML hat dagegen den Zweck, Daten zu speichern. Die Bedeutung (Semantik) ist durch die Struktur der Daten vorgegeben (Information), die durch sinnvolle Markups umgesetzt werden muss (XML Schema).
Vervollständigen Sie den nachfolgenden Satz. Inkrementelle Backups sparen S __________________. Sie sind zudem s______________und benötigen daher ein kleineres Z_____________________. Jedoch dauert das R___________ länger.
Inkrementelle Backups sparen Speicherplatz. Sie sind zudem schneller und benötigen daher ein kleineres Zeitfenster. Jedoch dauert das Restore länger.
Wie lautet das Programm zum Erstellen eines neuen Datenbanksystems (Abkürzung und Bedeutung) und aus welchen zwei Hauptkomponenten besteht dann das Datenbanksystem?
dbca: database configuration assistant. DBS=DBMS+DB. Datenbankmanagementsystem (Instanz) und Datenbank (Dateien).
Wie unterscheiden sich shutdown abort und shutdown immediate und was ist schneller? Begründen Sie Ihre Antwort.
shutdown abort beendet die Instanz durch "Abschießen" der Prozesse (inkonsistenter Zustand des DBS). Dagegen wird bei shutdown immediate ein Checkpoint durchgeführt, d.h. Transaktionen werden beendet und Daten werden in die Datendateien geschrieben (konstistenter Zustand des DBS), daher ist dies viel langsamer.
Nennen Sie 3 Unterschiede zwischen "Plugable Database" und "Embedded Database"?
1. Embedded Database ist für kleinere Systeme gedacht. Plugable Database beinhaltet volle Fuktionalität (Enterprise Edition).
2. Embedded Database gibt es Open Source (z.B. Java). Plugable Database wird derzeit ausschließlich kommerziell abgeboten.
3. Embedded Database wird in ein Gesamtsystem integriert. Plugable Database wird an ein Basissystem angedockt.
Wofür stehen i, g und c bei den Produktbezeichnungen Oracle 9i, 11g und 12c?
i=internet, g=grid, c=cloud
Gegeben ist der nachfolgende Schedule nebenläufiger Transaktionen, wobei mit pij wird die j-te Operation (p in {r,w}) der Transaktion Ti bezeichnet.:
Stellen Sie den Ablauf des Schedules S in tabellarischer Form zeitgerecht dar.
Stellen Sie den vollständig beschrifteten Präzedenzgraphen für S dar und erläutern Sie damit, warum S nicht konfliktserialisierbar ist, falls ein Zyklus im Präzedenzgraphen existiert.
Zeigen Sie, dass S konfliktserialisierbar ist, wenn das MVCC-Verfahren angewandt wird. Geben Sie den veränderten Schedule SMVCC sowie die Reihenfolge der Transaktionen an und stellen Sie den veränderten Präzedenzgraphen dar.
Warum sind bei Inserts eigentlich keine Sperren erforderlich? Erläutern Sie kurz, warum dennoch es auch bei Inserts zu Wartezuständen durch “versteckte“ Sperren kommen kann
S ist nicht serialisierbar wegen dem Zyklus T1-T2-T1. Begründung: T1 kann nicht zugleich vor und auch nach T2 erfolgen. Entweder oder!
Durch das MVCC-Verfahren können die Operationen r21(y), r31(y) und r12(x) virtuell zeitlich verschoben werden. Diese Leseoperationen befinden sich dann vor den jeweiligen Schreiboperationen. r21(y) findet dadurch virtuell vor w11(y) statt, da der alte Zustand von y gelesen wird. Es folgt w22(x) und T2 kann somit abgeschlossen werden. r31(y) muss ebenso den alten Zustand von y lesen, weil y noch nicht freigegeben ist. Die Reihenfolge der Transaktionen daher:
Aus der Dokumentation eines Data Warehouse existiert das nachfolgende SQL-Skript zur Erstellung der Tabellen in einem Oracle-DBS sowie die nachfolgende Beispielanalyse.
Notieren Sie die Tabellenstruktur ohne (produktabhängige) Datentypen als Relationenschemata in der Form R(A1, A2, …) und kennzeichnen Sie darin sorgfältig alle Primär- und Fremdschlüssel.
PK (Primärschlüssel)=blau, FK (Fremdschlüssel)=rot
sales(time_key,item_key,branch_key,location_key,
euros_sold,units_sold)
shipping(item_key,time_key,shipper_key,from_location,to_location,
euros_cost,units_shipped )
branch(branch_key,branch_name,branch_type)
location(location_key,street,city,province_or_state,country)
item(item_key,item_name,brand,type,supplier_key)
shipper(shipper_key,shipper_name,location_key,shipper_type)
time(time_key,day,day_of_week,month,year)
1. supplier_key ist kein FK. Es existiert keine Tabelle namens supplier.
2. Rechtzeitig eine neue Zeile beginnen!
Identifizieren Sie die Kennzahlen, Dimensionen und Hierarchien. Spezifizieren Sie in formaler Notation die einzelnen Elemente Dx von DS, wobei DS die Menge der dimensionalen Schemata ist.
Kennzahlen: euros_sold, units_sold, euros_cost, units_shipped
Dimensionen: Branch, Location, Item, Shipper, Time
Cubes
SALES = (Msales, DSsales)
SHIPPING = (Mshipping, DSshipping)
DSsales = {Item,Branch,Location,Time}
DSshipping = {Item,Shipper,Location(from),Location(to),Time}
Branch = [branch, type, all]
Item = [item, type, gesamt]
Location = [location, street, city, province, country, all]
Shipper = [shipper, type, all]
Time = [time_key, day, day_of_week, month, year, all]
item - -> name
branch - -> name
shipper - -> name
day - -> day_of_week
Stellen Sie das zugrundeliegende Datenmodell als ME/R-Diagramm nach Sapia dar.
1. Überkreuzung von Verbindungslinien lässt sich nicht immer vermeiden. Es muss aber gekennzeichnet werden, dass es keine Verzweigung ist.
2. In der Klausur war das Zeichnen des Diagramms ein Zeitproblem. Es wird dann aber recht großzügig korrigiert. Wichtig: Zwei Cubes und gemeinsame Referenzierung von Dimensionen.
Geben Sie die SQL-Anweisungen an, mit denen die Beispielanalyse offensichtlich erstellt wurde.
SELECT t.month "",
ROUND(t.SUM(s.euros_sold))/1000 OVER (ORDER BY t.month
ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING) "Sales($000)"
FROM time t, sales s
WHERE t.time_key=s.time_key ;
Ebenso mit 5 Zeilen vor und danach.
Wie lautet die konzeptuelle Bezeichnung der vorliegenden Tabellenstruktur?
Galaxienschema
Zuletzt geändertvor einem Jahr