Buffl

Übungsklausuren 3/4

TV
von Thorge V.

Gegeben ist folgender Schedule: S =

Mit pij wird die j-te Operation (p in {r,w}) der Transaktion Ti bezeichnet.

  1. Stellen Sie die Transaktionen und Operationen in einer Tabelle zeitgerecht dar

  2. Ist S serialisierbar? Begründen Sie Ihre Antwort mit einem beschrifteten Konfliktgraphen.

  3. 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.

  4. 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


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:

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_dimension>kunde</cube_dimension>

      <cube_dimension>zeit</cube_dimension>

    </cube>

    <cube name="LAGER">

      <kennzahl>bestand</kennzahl>

      <cube_dimension>produkt</cube_dimension>

      <cube_dimension>zeit</cube_dimension>

    </cube>

    <dimension name="kunde">

      <hierarchie>

        <level>knr</level>

          <attribute>name</attribute>

        <level>land</level>

        <level>region</level>

        <level>gesamt</level>

      </hierarchie>

    </dimension>

    <dimension name="produkt">

      <hierarchie>

        <level>pnr</level>

        <level>bezeichnung</level>

        <level>kategorie</level>

        <level>gesamt</level>

      </hierarchie>

    </dimension>

    <dimension name="zeit">

      <hierarchie>

        <level>tag</level>

        <level>monat</level>

        <level>quartal</level>

        <level>jahr</level>

        <level>gesamt</level>

      </hierarchie>

      <hierarchie>

        <level>tag</level>

        <level>woche</level>

        <level>jahr</level>

        <level>gesamt</level>

      </hierarchie>

    </dimension>

  </schema>

Author

Thorge V.

Informationen

Zuletzt geändert