10.01.2015 Aufrufe

Kick-Off Komplexpraktikum Datenbank-Systemarchitektur Tobias Jäkel

Kick-Off Komplexpraktikum Datenbank-Systemarchitektur Tobias Jäkel

Kick-Off Komplexpraktikum Datenbank-Systemarchitektur Tobias Jäkel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Tobias</strong> Jäkel<br />

<strong>Kick</strong>-<strong>Off</strong> <strong>Komplexpraktikum</strong><br />

<strong>Datenbank</strong>-<strong>Systemarchitektur</strong><br />

© Prof. Dr.-Ing. Wolfgang Lehner |<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-


Organisatorisches<br />

Wer<br />

• <strong>Tobias</strong> Jäkel:<br />

• Hannes Voigt:<br />

tobias.jaekel@tu-dresden.de<br />

hannes.voigt@tu-dresden.de<br />

Für wen<br />

• Diplom 2004 Informatik, Medieninformatik<br />

• <strong>Komplexpraktikum</strong> (Schein)<br />

• Diplom 2010 Informatik<br />

• Modul: PM-FPG<br />

• Bachelor<br />

• Informatik: B-510, B-520<br />

• Medieninformatik: B-530, B-540<br />

• Master Informatik<br />

• Modul: PM-FPG<br />

Anrechenbarkeit<br />

• 4 SWS (Basic)<br />

• 8 SWS (Premium)<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 2


Organisatorisches<br />

Ziele<br />

• Eigene Thesen aufstellen und durch geeignete Untersuchungen und Experimente<br />

bewerten<br />

• Erarbeiten eigener Lösungsvorschläge<br />

• Evaluierung dieser Lösungen<br />

Voraussetzungen<br />

• Proaktives Arbeiten<br />

• Selbstständige Aufteilung der Arbeit<br />

Ablauf<br />

• <strong>Kick</strong>-off (vorgezogen – Einarbeitung evtl. weiterer Studierender durch Studierende<br />

selbst)<br />

• Regelmäßige Treffen – min. alle 2 Wochen<br />

• Präsentation der Arbeitsergebnisse<br />

• Diskussion<br />

• Brainstorming weiteres Vorgehen<br />

• Abschlusspräsentation<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 3


Einführung in das Rollenkonzept<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 4


Einführung<br />

Entwickelt in den 1970ern [1]<br />

• Interaktion zwischen Realweltobjekten findet vorrangig über Rollen statt<br />

• Beispiele<br />

• Person ist Student gegenüber einer Universität<br />

• Schauspieler spielt Rolle in einem Theaterstück<br />

Herkunft<br />

• Theater – Schauspieler spielen Rollen<br />

• Sprichwörtern<br />

• ….<br />

Definition<br />

• In vielen verschiedenen Disziplinen verbreitet [Soziologie, Linguistik,<br />

Softwaresysteme, (Daten-)Modellierung, …]<br />

• Keine einheitliche Definition<br />

• Eigene Definition finden<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 5


Was sind Rollen<br />

Realwelt-Objekte werden aufgeteilt<br />

• Natürliche Typen<br />

• Rollen<br />

Rolle<br />

Entität<br />

Nat. Typ<br />

Abgrenzung<br />

• Rigidität<br />

• Fundiertheit<br />

Rolle<br />

Nat. Typ<br />

Rigidität<br />

• Objekt ist gesamte Existenz Instanz dieser Klasse<br />

• Bsp.: Mensch bleibt immer Mensch<br />

Rigidität<br />

Nat. Type + -<br />

Fundiertheit<br />

Fundiertheit<br />

• Weitere Objekte sind notwendig um Semantik zu erfüllen<br />

• Bsp.: Kein Student ohne Hochschule<br />

Rolle - +<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 6


Eigenschaften von Rollen<br />

Min. 15 Verschiedene Eigenschaften [2]<br />

• Eigene Eigenschaften und Verhalten<br />

• Hängen von Beziehungen ab<br />

• Mehrere Rollen können gleichzeitig gespielt werden<br />

• Dieselbe Rolle kann mehrmals gleichzeitig gespielt werden<br />

• Dynamisches An- und Ablegen<br />

• Unabhängige Objekte können dieselben Rollen spielen<br />

• Rollen können Rollen spielen<br />

• Übertragbarkeit<br />

• Zustand eines Objektes kann rollenspezifisch sein<br />

• Eigenschaften eines Objektes können rollenspezifisch sein<br />

• Beschränkter Zugriff<br />

• Rollen können Eigenschaften und Verhalten teilen<br />

• Objekt und Rolle teilen sich Identität<br />

• Objekt und Rolle haben unterschiedliche Identitäten<br />

Nicht alle Eigenschaften sind widerspruchsfrei<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 7


Eigenschaften von Rollen<br />

Min. 15 Verschiedene Eigenschaften [2]<br />

• Eigene Eigenschaften und Verhalten<br />

• Hängen von Beziehungen ab<br />

• Mehrere Rollen können gleichzeitig gespielt werden<br />

• Dieselbe Rolle kann mehrmals gleichzeitig gespielt werden<br />

• Dynamisches An- und Ablegen<br />

• Unabhängige Objekte können dieselben Rollen spielen<br />

• Rollen können Rollen spielen<br />

• Übertragbarkeit<br />

• Zustand eines Objektes kann rollenspezifisch sein<br />

• Eigenschaften eines Objektes können rollenspezifisch sein<br />

• Beschränkter Zugriff<br />

• Rollen können Eigenschaften und Verhalten teilen<br />

• Objekt und Rolle teilen sich Identität<br />

• Objekt und Rolle haben unterschiedliche Identitäten<br />

Nicht alle Eigenschaften sind widerspruchsfrei<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 8


isher<br />

Was ist anders<br />

neu<br />

ET1<br />

RT1<br />

RT2<br />

ET1<br />

RS<br />

ET2<br />

NT1<br />

NT2<br />

RT3<br />

RT4<br />

Ein Element um ET zu beschreiben<br />

• Alle Attribute in einem Element<br />

• Alle Attribute müssen ausgeprägt<br />

werden<br />

• Fixes Schema des Elementes<br />

• Erweiterung bezieht sich auf alle<br />

Entitäten<br />

Zwei Elemente um ET zu beschreiben<br />

• Attribute verteilen sich<br />

• Zusammensetzung ist flexibel<br />

• Elemente haben fixes Schema<br />

• Erweiterung durch neue Rollentypen<br />

ET bezieht sich immer auf einen NT und<br />

spielbare Rollen<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 9


Flexible Datenobjekte<br />

Configurations<br />

NT<br />

RT1<br />

ET<br />

NT<br />

NT<br />

RT1<br />

NT<br />

RT3<br />

I_ET<br />

RT3<br />

NT<br />

RT3<br />

RT1<br />

…<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 10


Constraints<br />

Nicht alle Rollen dürfen einfach so gespielt<br />

Beschränkungen zwischen den Rollen<br />

• Implikation (SHK impliziert Student)<br />

• Prohibition (Student und WHK)<br />

• Äquivalenz (Mitarbeiter und Abteilungsangehöriger)<br />

• Zeitliche Beschränkungen ()<br />

• Azyklisch<br />

• …<br />

Schränken die Möglichkeiten der Komposition von NT und RTs ein<br />

RT1<br />

RT1<br />

NT<br />

NT<br />

NT<br />

RT3<br />

RT3<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 11


Beispiel<br />

Person<br />

Mitarbeiter<br />

Geschäftsführer<br />

Programmierer<br />

SysAdmin<br />

HR-Manager<br />

Recruiter<br />

CEO<br />

IT<br />

HR<br />

Geschäftsführu<br />

ng<br />

Abteilung<br />

Anfrage<br />

• Alle Mitarbeiter von IT<br />

• Explizit vs. implizit (muss Programmierer / Mitarbeiter genannt werden)<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 12


Beispiel<br />

Stellenausschr.<br />

Bewerber<br />

Person<br />

Mitarbeiter<br />

Ausschreibung<br />

Programmierer<br />

SysAdmin<br />

HR-Manager<br />

Recruiter<br />

Ausstattungsaus<br />

IT<br />

HR<br />

Abteilung<br />

Anfrage<br />

• Programmierer, die auch Bewerber waren / sind<br />

• Alle Personen, die Mitarbeiter oder Bewerber sind<br />

• Alle Personen, die entweder Mitarbeiter oder Bewerber sind<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 13


Zusammenfassung<br />

Rollenkonzept<br />

• Etabliert in verschiedenen Disziplinen<br />

• Aufteilung der Entitätstypen in natürliche Typen und Rollentypen<br />

• Entitätstyp beschreibt einen natürlichen Typen und die spielbaren Rollen samt aller<br />

Beschränkungen<br />

Eigenschaften von Rollen<br />

• Nicht widerspruchsfrei<br />

• Nicht alle für uns interessant<br />

Flexible Datenobjekte<br />

• Ändern zur Laufzeit ihre Eigenschaften<br />

• Hier: Natürliche Objekte spielen Rollen oder hören auf jene zu spielen<br />

Komplexe Anfragen<br />

• Logische Zusammensetzung von Rollen<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 14


Aufgabenstellung<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 15


Zielstellung<br />

1<br />

(R)SQL<br />

Role based results<br />

6<br />

Middleware / Translation<br />

2<br />

5<br />

3<br />

SQL<br />

Relational Results<br />

DBMS<br />

4<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 16


RSQL<br />

1<br />

Erweiterung von SQL<br />

• Natürliche Typen (NT) und Rollentypen (RT)<br />

• Signalwörter um Typen zu spezifizieren<br />

• DQL<br />

• Anfrage auf NT und RT<br />

• DML<br />

• Annehmen und Ablegen von Rollen<br />

• Updaten von Attributen<br />

• Konsistenzprüfung<br />

• DDL<br />

• Anlegen von NT und RT<br />

• Zuweisung welcher NT welche RT spielen darf<br />

• Constraints festlegen<br />

Beachte:<br />

• RT können von mehreren NT gespielt werden<br />

• RT können von einem NT mehrmals gespielt werden<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 17


Translation<br />

2<br />

Parsen von (R)SQL<br />

• Zur Generierung von SQL<br />

SQL-Generierung<br />

• Verschiedene Varianten möglich<br />

• Implementierung einiger<br />

• Templatebasiert<br />

Transaction Management<br />

• Zusammenfassung von mehreren Aktionen zu einer Transaktion<br />

• Einfügen von Daten (Rollen annehmen oder ablegen) kann mehrere SQL-Befehle<br />

nach sich ziehen<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 18


SQL / DBMS<br />

3<br />

SQL an DBMS schicken<br />

• Statement / PreparedStatement<br />

• Verbindung zu DBMS aufbauen<br />

• Statements an DBMS senden<br />

• …<br />

4<br />

DBMS<br />

• Relationales DBMS<br />

• Keine Änderungen am bestehenden System<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 19


Ergebnisgenerierung<br />

5<br />

Relationale Ergebnisse verarbeiten<br />

• Spezielle Rückgabeformate<br />

• Bereitstellung rollenbasierter Ergebnisse<br />

• Erstellen der Metadaten<br />

• Methoden für Abfrage von NT und RT<br />

SQLException-Management<br />

• Spezielle Exceptions wenn Beschränkungen verletzt werden<br />

• Interpreation normaler SQLExceptions<br />

NULL-Semantik<br />

• Nicht existent vs. Nicht ausgeprägt<br />

6<br />

Verarbeitung der rollenbasierten Ergebnisse<br />

• Ansprechen bestimmter Rollen im ResultSet<br />

• Abfrage bestimmter Attribute<br />

• Metadatenabfrage<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 20


Setup<br />

Programmiersprache<br />

• Java<br />

DBMS<br />

• H2 / PostgreSQL / MySQL<br />

DBMS-Zugriff<br />

• JDBC<br />

Versioning<br />

• SVN / Git<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 21


Implementierungsvorschlag<br />

Role-JDBC<br />

R-Connection<br />

creates<br />

(R)SQL<br />

R-Statement<br />

R-Parser<br />

executes<br />

R-ResultSet<br />

creates<br />

R-Transformer<br />

JDBC<br />

creates<br />

feeds<br />

Statement<br />

Statement<br />

ResultSet<br />

execute<br />

Writes into<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-<strong>Systemarchitektur</strong><br />

| 22


TOBIAS JÄKEL<br />

<strong>Kick</strong>-<strong>Off</strong> <strong>Komplexpraktikum</strong><br />

<strong>Datenbank</strong>-<strong>Systemarchitektur</strong><br />

© Prof. Dr.-Ing. Wolfgang Lehner |<br />

<strong>Komplexpraktikum</strong> / Forschungspraktikum WS1314 DB-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!