Tobias Jäkel Kick-Off Komplexpraktikum Datenbank-Systemarchitektur © Prof. Dr.-Ing. Wolfgang Lehner | Komplexpraktikum / Forschungspraktikum WS1314 DB- Organisatorisches Wer? Tobias Jäkel: Hannes Voigt: [email protected] [email protected] Für wen? Diplom 2004 Informatik, Medieninformatik Komplexpraktikum (Schein) Diplom 2010 Informatik Modul: PM-FPG Bachelor Informatik: B-510, B-520 Medieninformatik: B-530, B-540 Master Informatik Modul: PM-FPG Anrechenbarkeit 4 SWS (Basic) 8 SWS (Premium) Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 2 Organisatorisches Ziele Eigene Thesen aufstellen und durch geeignete Untersuchungen und Experimente bewerten Erarbeiten eigener Lösungsvorschläge Evaluierung dieser Lösungen Voraussetzungen Proaktives Arbeiten Selbstständige Aufteilung der Arbeit Ablauf Kick-off (vorgezogen – Einarbeitung evtl. weiterer Studierender durch Studierende selbst) Regelmäßige Treffen – min. alle 2 Wochen Präsentation der Arbeitsergebnisse Diskussion Brainstorming weiteres Vorgehen Abschlusspräsentation Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 3 > Einführung in das Rollenkonzept Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 4 Einführung Entwickelt in den 1970ern [1] Interaktion zwischen Realweltobjekten findet vorrangig über Rollen statt Beispiele Person ist Student gegenüber einer Universität Schauspieler spielt Rolle in einem Theaterstück Herkunft Theater – Schauspieler spielen Rollen Sprichwörtern …. Definition In vielen verschiedenen Disziplinen verbreitet [Soziologie, Linguistik, Softwaresysteme, (Daten-)Modellierung, …] Keine einheitliche Definition Eigene Definition finden Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 5 Was sind Rollen Realwelt-Objekte werden aufgeteilt Natürliche Typen Rollen Entität Rolle Nat. Typ Abgrenzung Rigidität Fundiertheit Rolle Nat. Typ Rigidität Objekt ist gesamte Existenz Instanz dieser Klasse Bsp.: Mensch bleibt immer Mensch Rigidität Fundiertheit Nat. Type + - Rolle - + Fundiertheit Weitere Objekte sind notwendig um Semantik zu erfüllen Bsp.: Kein Student ohne Hochschule Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 6 Eigenschaften von Rollen Min. 15 Verschiedene Eigenschaften [2] Eigene Eigenschaften und Verhalten Hängen von Beziehungen ab Mehrere Rollen können gleichzeitig gespielt werden Dieselbe Rolle kann mehrmals gleichzeitig gespielt werden Dynamisches An- und Ablegen Unabhängige Objekte können dieselben Rollen spielen Rollen können Rollen spielen Übertragbarkeit Zustand eines Objektes kann rollenspezifisch sein Eigenschaften eines Objektes können rollenspezifisch sein Beschränkter Zugriff Rollen können Eigenschaften und Verhalten teilen Objekt und Rolle teilen sich Identität Objekt und Rolle haben unterschiedliche Identitäten Nicht alle Eigenschaften sind widerspruchsfrei Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 7 Eigenschaften von Rollen Min. 15 Verschiedene Eigenschaften [2] Eigene Eigenschaften und Verhalten Hängen von Beziehungen ab Mehrere Rollen können gleichzeitig gespielt werden Dieselbe Rolle kann mehrmals gleichzeitig gespielt werden Dynamisches An- und Ablegen Unabhängige Objekte können dieselben Rollen spielen Rollen können Rollen spielen Übertragbarkeit Zustand eines Objektes kann rollenspezifisch sein Eigenschaften eines Objektes können rollenspezifisch sein Beschränkter Zugriff Rollen können Eigenschaften und Verhalten teilen Objekt und Rolle teilen sich Identität Objekt und Rolle haben unterschiedliche Identitäten Nicht alle Eigenschaften sind widerspruchsfrei Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 8 ET1 neu bisher Was ist anders? RT1 ET1 RS ET2 RT2 NT1 NT2 RT3 RT4 Ein Element um ET zu beschreiben Zwei Elemente um ET zu beschreiben Alle Attribute in einem Element Alle Attribute müssen ausgeprägt werden Fixes Schema des Elementes Erweiterung bezieht sich auf alle Entitäten Attribute verteilen sich Zusammensetzung ist flexibel Elemente haben fixes Schema Erweiterung durch neue Rollentypen ET bezieht sich immer auf einen NT und spielbare Rollen Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 9 Flexible Datenobjekte Configurations NT RT1 NT ET RT1 NT RT3 NT I_ET RT3 RT3 NT RT1 … Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 10 Constraints Nicht alle Rollen dürfen einfach so gespielt Beschränkungen zwischen den Rollen Implikation (SHK impliziert Student) Prohibition (Student und WHK) Äquivalenz (Mitarbeiter und Abteilungsangehöriger) Zeitliche Beschränkungen () Azyklisch … Schränken die Möglichkeiten der Komposition von NT und RTs ein RT1 NT NT RT3 RT1 NT RT3 Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 11 Beispiel Person Mitarbeiter SysAdmin Programmierer Geschäftsführer HR-Manager Recruiter HR IT CEO Geschäftsführu ng Abteilung Anfrage Alle Mitarbeiter von IT Explizit vs. implizit (muss Programmierer / Mitarbeiter genannt werden)? Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 12 Beispiel Stellenausschr. Bewerber Person Mitarbeiter Ausschreibung Ausstattungsaus SysAdmin Programmierer HR-Manager Recruiter HR IT Abteilung Anfrage Programmierer, die auch Bewerber waren / sind Alle Personen, die Mitarbeiter oder Bewerber sind Alle Personen, die entweder Mitarbeiter oder Bewerber sind Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 13 Zusammenfassung Rollenkonzept Etabliert in verschiedenen Disziplinen Aufteilung der Entitätstypen in natürliche Typen und Rollentypen Entitätstyp beschreibt einen natürlichen Typen und die spielbaren Rollen samt aller Beschränkungen Eigenschaften von Rollen Nicht widerspruchsfrei Nicht alle für uns interessant Flexible Datenobjekte Ändern zur Laufzeit ihre Eigenschaften Hier: Natürliche Objekte spielen Rollen oder hören auf jene zu spielen Komplexe Anfragen Logische Zusammensetzung von Rollen Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 14 > Aufgabenstellung Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 15 Zielstellung 1 (R)SQL Role based results 6 Middleware / Translation 3 2 5 SQL Relational Results DBMS 4 Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 16 RSQL 1 Erweiterung von SQL Natürliche Typen (NT) und Rollentypen (RT) Signalwörter um Typen zu spezifizieren DQL Anfrage auf NT und RT DML Annehmen und Ablegen von Rollen Updaten von Attributen Konsistenzprüfung DDL Anlegen von NT und RT Zuweisung welcher NT welche RT spielen darf Constraints festlegen Beachte: RT können von mehreren NT gespielt werden RT können von einem NT mehrmals gespielt werden Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 17 Translation 2 Parsen von (R)SQL Zur Generierung von SQL SQL-Generierung Verschiedene Varianten möglich Implementierung einiger Templatebasiert? Transaction Management Zusammenfassung von mehreren Aktionen zu einer Transaktion? Einfügen von Daten (Rollen annehmen oder ablegen) kann mehrere SQL-Befehle nach sich ziehen Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 18 SQL / DBMS 3 SQL an DBMS schicken Statement / PreparedStatement Verbindung zu DBMS aufbauen Statements an DBMS senden … 4 DBMS Relationales DBMS Keine Änderungen am bestehenden System? Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 19 Ergebnisgenerierung 5 Relationale Ergebnisse verarbeiten Spezielle Rückgabeformate? Bereitstellung rollenbasierter Ergebnisse Erstellen der Metadaten Methoden für Abfrage von NT und RT SQLException-Management Spezielle Exceptions wenn Beschränkungen verletzt werden Interpreation normaler SQLExceptions NULL-Semantik Nicht existent vs. Nicht ausgeprägt 6 Verarbeitung der rollenbasierten Ergebnisse Ansprechen bestimmter Rollen im ResultSet Abfrage bestimmter Attribute Metadatenabfrage Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 20 Setup Programmiersprache Java DBMS H2 / PostgreSQL / MySQL DBMS-Zugriff JDBC Versioning SVN / Git Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 21 Implementierungsvorschlag Role-JDBC R-Connection creates (R)SQL R-Statement R-ResultSet executes creates R-Parser JDBC R-Transformer creates Statement feeds Statement execute ResultSet Writes into Komplexpraktikum / Forschungspraktikum WS1314 DB-Systemarchitektur | 22 TOBIAS JÄKEL Kick-Off Komplexpraktikum Datenbank-Systemarchitektur © Prof. Dr.-Ing. Wolfgang Lehner | Komplexpraktikum / Forschungspraktikum WS1314 DB-