Kick-Off Komplexpraktikum Datenbank-Systemarchitektur Tobias Jäkel
Kick-Off Komplexpraktikum Datenbank-Systemarchitektur Tobias Jäkel
Kick-Off Komplexpraktikum Datenbank-Systemarchitektur Tobias Jäkel
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-