Modellierung der Zugriffslogik auf Datenbanktabellen Software Component Technology for Distributed Applications Andreas Fink.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Object Relational Mapping
Objektrelationales Mapping mit JPA
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
1 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Übung 4 Mehrstufige Client/Server-Systeme mit JSPs, Servlets und JavaBeans (Web-Container)
Ruby on Rails im Überblick
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Testing Jonas Bandi Simon Martinelli.
Stephan Bury  Pascal Busch  Bita Gerami
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Delphi-Datenbankkomponenten
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
XDoclet ETIS SS05.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
Transaction Script Software Component Technology for Distributed Applications.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Client / Server Architektur
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Einführung und Überblick
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Objektorientierte Modellierung
Herzlich Willkommen… welcome… soyez la bienvenue….
Wir bauen uns eine Webapplikation!
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Best Practices in der Datenbank-programmierung
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
HPI Bachelorprojekt Scalable EMF Vorstellung der Designdokumente Strukturen und Abläufe 1. März 2010.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
1 Softwareentwicklung mit.NET Teil 5 Datenzugriff mit ADO.NET Dr. Ralph Zeller.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #2 Das relationale Modell (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #2 Das relationale Modell (Teil 1)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #2 Das relationale Modell (Teil 1)
HORIZONT 1 XINFO ® Das IT - Informationssystem Eclipse Plugin HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
DI (FH) DI Roland J. Graf MSc (GIS) U N I V E R S I T Ä T S L E H R G A N G Geographical Information Science & Systems UNIGIS.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
XML und Datenbanken © 2006 Markus Röder
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Torque robert.resch-wolfgang.schneider. uebersicht Was ist Torque Komponenten von Torque Generator Erzeugte Klassen Methoden Torque in Turbine Demobeispiel.
Web-Design: Architektur
Datenanbindung in Webapplikationen
Objektorientierung.
2. Kommunikation und Synchronisation von Prozessen 2
Vorlesung #2 Das relationale Modell (Teil 1)
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
VirtualPatt 2000 Interaktives 3D-Schachspiel
Modellierung der Wirklichkeit
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Java-Kurs - 9. Übung Besprechung der Hausaufgabe
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Eine komplexe Netzanwendung Webserver und Datenbankserver im Netzwerk in einer Anwendung einrichten.
© 2012 TravelTainment Datenbankzugriffe in Java-Applikationen mit Hilfe des Spring Frameworks Simon Wirtz Seminarvortrag WS 13/14 Oktober 2013.
AUFGABENSTELLUNGEN AUS DER PRAXIS UND NEUE LÖSUNGEN Der Kopf ist rund, damit man in alle Richtungen denken kann.
1 Simulation einer Ladesäule für Elektrofahrzeuge nach dem Open Charge Point Protocol Felix Batke 3. Lehrjahr.
Application Performance Management Udo Brede.  Komplexe Umgebungen  Häufige Änderungen  Hohe Aktivität Database Servers Application Servers Web Servers.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
DOAG SID Data Warehouse
Abschlusspräsentation Tobias Vogel
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
 Präsentation transkript:

Modellierung der Zugriffslogik auf Datenbanktabellen Software Component Technology for Distributed Applications Andreas Fink

Inhalt Modellierung der Zugriffslogik auf Datenbanktabellen 1.Einleitung 2.Kapselung der Zugriffslogik in Patterns 2.1 Table Data Gateway 2.2Data Row Gateway 3.Object Relational Mapping mit Jakarta OJB 2.3Active Record

Was wir bereits kennen… Einleitung...Transaction Script Domain Model Patterns zur Kapselung der Application Logic + Datenzugriff in Transaction Script und Domain Model Funktionale Dekomposition der Anwendung, Kapselung der einzelnen Abläufe in Transaktionen Modellierung der Application Logic durch eine entsprechende Objekthierarchie innerhalb der Anwendung.

Was fällt uns dabei auf Viele einfache Zugriffe wiederholen sich nahezu identisch (Duplication of Code) Viele einfache Zugriffe wiederholen sich nahezu identisch (Duplication of Code) Das DB-Zugriffsystem wird unübersichtlich und schwer zu Testen / zu optimieren Das DB-Zugriffsystem wird unübersichtlich und schwer zu Testen / zu optimieren Jeder Entwickler muß mit SQL vertraut sein Jeder Entwickler muß mit SQL vertraut sein Tight Coupling zwischen Anwendungslogik und Datenbankstruktur (Veränderungen!?) Tight Coupling zwischen Anwendungslogik und Datenbankstruktur (Veränderungen!?) Insbesondere bei TS aber auch DM

Wie lösen wir das Problem Kapselung der Zugriffslogik in Objekten Tabellen als Objekte Tabellen als Objekte Rows als Objekte Rows als Objekte Active Records Active Records Data Mapper Data Mapper

Table Data Gateway Eine Klasse repräsentiert eine Tabelle Eine Klasse repräsentiert eine Tabelle Simples Interface Simples Interface Einfache Methoden für parametrisierte SQL-Aufrufe Einfache Methoden für parametrisierte SQL-Aufrufe Keine Business Logik Keine Business Logik Zustandslos Zustandslos Auch Mapping von Views möglich Auch Mapping von Views möglich

Row Data Gateway Bei häufiger Manipulation einzelner Zeilen (DM) Bei häufiger Manipulation einzelner Zeilen (DM) Finder Class vonnöten Finder Class vonnöten Nur einfache Aufrufe Nur einfache Aufrufe Keine Application Logic Keine Application Logic Virtuelle Rows für Views Virtuelle Rows für Views Automatisierte Code Generation ideal Automatisierte Code Generation ideal

Active Record Bei spezialisiertem Zeilenweisen Zugriff doch wieder Business Logic? Bei spezialisiertem Zeilenweisen Zugriff doch wieder Business Logic? Intuitives isomorphes Mapping für DM Intuitives isomorphes Mapping für DM Kompliziertere Spezialfunktionen Kompliziertere Spezialfunktionen Aber kein Separation of Concerns mehr Aber kein Separation of Concerns mehr Bei Strukturproblemen DataMapper anwenden Bei Strukturproblemen DataMapper anwenden

Object Relational Mapping Domain Model mit Klassenhierarchie Anwendungsfall Wie bilde ich Klassenbeziehungen: z.B. ProjectManager isA Employee automatisiert in Datenbankstruktur ab? Problem: z.B. Apache Jakarta OJB als kostenlose Alternative Oder kommerzielles Paket Antwort

3 Verfahrensalternativen Jede Klasse komplett auf eigene Tabelle (ordentlich aber unperformant) Jede Klasse komplett auf eigene Tabelle (ordentlich aber unperformant) Alle Klassen einer Hierarchie in eine Tabelle (unordentlich aber performant) Alle Klassen einer Hierarchie in eine Tabelle (unordentlich aber performant) Nur zusätzliche Properties in jeweils eigene Tabelle (ordentlich aber unperformant) Nur zusätzliche Properties in jeweils eigene Tabelle (ordentlich aber unperformant)

Implementierung in Jakarta OJB Es werden nur Möglichkeit 1 und 2 unterstützt Es werden nur Möglichkeit 1 und 2 unterstützt Abbildung erfolgt mit XML OJB-Descriptor auf Klassenproperties Abbildung erfolgt mit XML OJB-Descriptor auf Klassenproperties

Noch Fragen? Vielen Dank für die Aufmerksamkeit!