Hochschule Darmstadt Business Intelligence SS 2014 Fachbereich Informatik Praktikumsversuch 1 Prof. Dr. C. Wentzel Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 07.05.2014 Business Intelligence Praktikum 1 1. Kurzbeschreibung In diesem Praktikum geht es hauptsächlich um die konzeptionelle Data Modellierung und Umsetzung in ein multidimensionales Datenmodell. Aus dem multidimensionalen Datenmodell soll dann ein Würfel erzeugt werden. Ferner sollen Daten mit SQL- Befehlen (GROUP BY ROLLUP, GROUP BY CUBE) abgefragt werden. Diese Aufgabe besteht aus 3 Teilen: A- Mit einem TOOL (Power Designer) soll das konzeptionelle Data Modell entwickelt und in das physische Data Modell transformiert werden. Aufgrund dieses physischen Data Modells soll ein multidimensionales Oracle Schema (SQL-Skript für Erstellung der Tabellen) erzeugt werden. Dadurch soll ein Würfel erstellt werden B- Mit dem Tool SQL DEVELOPER soll diese Skript-Datei dann ausgeführt werden. Die erzeugten Tabellen sollen mit Daten gefüllt und abgefragt werden. C- Die SQL-OLAP Funktionen (GROUP BY ROLLUP, GROUP BY CUBE) sollen angewandt werden Die folgenden Werkzeuge kommen zum Einsatz: Sybase Power Designer (Modellierungswerkzeug) SQL-Developer (Oracle Client) 2. Lernziele Die Studierenden sollen in die Lage versetzt werden: A. Eine reelle Welt mit Hilfe des ER-Modells abzubilden B. Das ER-Modell in ein relationales Modell zu transformieren C. DB-Tabellen mit Daten zu füllen D. Das erstellte relationale Modell in ein multidimensionales Datenmodell zu überführen E. Einen Cube (Würfel) zu erzeugen F. Die Daten aus einer Datenbank mit Hilfe von SQL-Befehlen (GROUP BY ROLLUP, GROUP BY CUBE) abzufragen. 3. Vorbereitung Wenn Sie Power Designer zu Hause haben, können Sie Ihr schon zu Hause erstelltes Modell mitbringen. Ferner sollen Sie mit den SQL-OLAP Befehlen (GROUP BY ROLLUP, GROUP BY CUBE) vertraut machen. 4. Abnahme Die Abnahme findet am Ende der Praktikumssitzung statt.
TEIL 1 Modellieren Sie auf dem Papier ein Data Warehouse für Informationen zur Produktion von Zügen, wobei ein Star- und ein Snowflake-Schema zu verwenden sind. Beschreibung der realen Welt: Das betrachtete Unternehmen hat mehrere Produktionsstätten in verschiedenen Ländern. Die Produktion der Züge findet dabei in den Produktionshallen einer solchen Produktionsstätte statt. Oft werden verschiedene Produktionsschritte auf verschiedene Produktionshallen innerhalb einer Produktionsstätte aufgeteilt. Die einzelnen Produktionsschritte beinhalten einige Arbeitsschritte. Es kommt vor, dass Mitarbeiter aus unterschiedlichen Teams zusammen an einem Produktionsschritt arbeiten. Ein Mechaniker kann in verschiedenen Produktionshallen eingesetzt werden. Mechaniker arbeiten in Teams. Der Status eines Arbeitsschrittes wird am Ende eines Arbeitstages vermerkt (z.b. dass der Produktionsschritt nicht komplett ist). Es soll eine Analyse mit der Genauigkeit von einem Tag und einer Woche möglich sein. Das Data Warehouse soll beispielsweise folgende Anfragen unterstützen: Was sind die durchschnittlichen Kosten für einen bestimmten Produktionsschritt? Wie lange dauert ein Produktionsschritt durchschnittlich in einer bestimmten Produktionshalle? In welcher Produktionsstätte sind die Produktionskosten für einen bestimmten Produktionsschritt am niedrigsten? Wie viele Züge vom Typ ICE wurden in Produktionsstätte W produziert? Wie viele Züge mit dem Baujahr 1980 wurden in Produktionsstätte X produziert? Welcher Mechaniker führt den Arbeitsschritt Y am schnellsten aus? Vorbereitung zu Hause: Das konzeptionelle Modell soll zu Hause auf dem Papier erstellt werden. Bevor Sie mit dem Powerdesigner modellieren, muss das konzeptionelle Model vom Betreuer abgenommen werden.
TEIL 2 Starten Sie die Software PowerDesigner. Auf der Homepage von Y. Orkunoglu finden Sie eine Anleitung zu PowerDesigner. Nun können Sie ihr konzeptionelles Modell mit PowerDesigner erstellen. Das Modell soll sowohl das Star- als auch das Snowflake-Schema (z.b. Tag, Monat, Jahr) beinhalten. I. Das konzeptionelle Modell soll ins logische Modell überführt werden. (Über den Menüpunkt Tools Generate Logical Data Model) II. III. Aus dem logischen Modell heraus soll ein physisches Modell für das DBMS Oracle Version 11g generiert werden. (Über den Menüpunkt Tools Generate Physical Data Model) (Siehe Bild) Aus dem physischen Modell sollen die Tabellen für das DBMS Oracle Version 11g generiert werden. (Über den Menü Database Generate Database) Nun wurde eine SQL-Datei erzeugt. Diese SQL-Datei beinhaltet die SQL- Anweisungen, die die nötigen Tabellen erzeugen. (Diese Datei werden Sie im 3. Teil benötigen) IV. Nun generieren Sie für die Tabellen Test Daten (jeweils mindestens 5 Datensätze) (Über den Menüpunkt Database Generate Test Data) (Auch diese Datei werden Sie im 3. Teil benötigen) TEIL 3 In diesem Teil soll das entstandene Modell in ein MULTIDIMENSIONALES MODELL MIT CUBE umgewandelt werden, so dass das Modell ungefähr wie folgt aussieht:
TEIL 4 Wechseln Sie zum SQL.DEVELOPER und erstellen Sie Tabellen und füllen Sie die Tabellen mit den Testdaten aus, die vom Powerdesigner aus generiert wurden. (Sie Aufgabe Teil 2 (III-IV)) Damit die folgende SQL-Anweisungen im Teil 5 unten durchführen können, sollten Sie an den generierten Testdaten entsprechende Änderungen vornehmen; D.h ändern Sie die Daten für die Attribute JAHR, BAUJAHR, LANDNAME, TEAMNAME, ZUGTYP, PRODUKTIONSSTÄTTE so, dass die sinnvollen Atributtwerte eingegeben werden. Z.B. für das Baujahr 2001 für den Zugtyp ICE und Landname DEUTSCHLAND usw. Es wäre sinnvoll, wenn für die bestimmte Atrribute BAUJAHR, LANDNAME DEUTSCHLAND gleiche Werte mehrmals (z.b. dreimal DEUTSCHLAND) eingetragen werden. (wegen GROUP BY Befehl.)
TEIL 5 Kleine Einführung in die SQL-OLAP Funktionen (GROUP BY ROLLUP, GROUP BY CUBE) Führen Sie die folgenden beiden SQL-Befehle auf der Datenbank aus: SELECT Qualifikation, Sum(Gehalt) as Gehälter FROM Mitarbeiter GROUP BY Qualifikation ORDER BY Qualifikation SELECT Qualifikation, Sum(Gehalt) as Gehälter FROM Mitarbeiter GROUP BY ROLLUP (Qualifikation) ORDER BY Qualifikation Welche Informationen liefern die beiden Abfragen? Wie arbeitet der group by rollup Operator? TEIL 6 Schreiben Sie SQL-Code für die folgenden Aufgaben: 1) Was sind die durchschnittlichen Kosten für einen bestimmten Produktionsschritt? 2) In welcher Produktionsstätte sind die Produktionskosten für einen bestimmten Produktionsschritt am niedrigsten? 3) Wie viele Züge vom Typ ICE Züge mit dem Baujahr 1980 wurden in Produktionsstätte W produziert? 4) Lassen Sie alle Mechaniker anzeigen, die an der Produktion des Zuges vom TYP ICE vom Baujahr 2001 beteiligt waren. 5) Lassen alle Produktionshallen und Teamnamen in Deutschland anzeigen. Optional 6) Lassen Anzahl der Meckaniker gruppiert nach Landname anzeigen. 7) In welchem Land sind die die Produktionskosten für einen bestimmten Produktionsschritt am teuersten? 8) Welcher Mechaniker führt den Arbeitsschritt Y am schnellsten aus?