01 Wprowadzenieid 2986 ppt

background image

Tworzenie warstwy

trwałości danych -

wprowadzenie

Rafał Kasprzyk

background image

Rafał Kasprzyk

Problem trwałości danych

Praktycznie każdy tworzony system

informatyczny korzysta z bazy danych

Tradycyjnie dane przechowywane są w

relacyjnych systemach baz danych

Większość aktualnie powstających

aplikacji implementowanych jest w

językach obiektowych

Powstaje problem polegający na

umożliwieniu utrwalania stanu obiektu

w bazie relacyjnej

Problem jest rozwiązywany poprzez

konstrukcje efektywnej warstwy integracji

background image

Rafał Kasprzyk

Czym jest warstwa integracji

Warstwa integracji odpowiada za

komunikację z systemami

zewnętrznymi i źródłami danych:

aplikacjami zewnętrznymi (ang. legacy

applications)

bazami danych

Warstwa biznesowa wykorzystuje

warstwę integracji, gdy obiekt

biznesowy:

musi zostać utrwalony

potrzebuje danych znajdujących się w

warstwie danych.

background image

Rafał Kasprzyk

Architektura wielowarstwowa

background image

Rafał Kasprzyk

Technologie warstwy integracji

Java I/O API

JDBC (ang. Java Database

Connectivity)

SQLJ

JSTL SQL

EJB (ang. Enterprise Java Beans)

JDO (ang. Java Data Objects)

iBATIS SqlMaps

Oracle TopLink

Hibernate

Inne 

background image

Rafał Kasprzyk

Konstrukcja warstwy integracji

Stare podejście – aplikacja

komunikuje się z bazą danych

korzystając z języka SQL i JDBC

Występuje niezgodność implementacji

Konieczność transformacji struktur

obiektowych do relacyjnych przy

zapisie/odczycie i vice versa

background image

Rafał Kasprzyk

Konstrukcja warstwy integracji

Obiektowość we wszystkich

warstwach

Aplikacja zaimplementowana w

obiektowym języku programowania

Obiektowy system bazy danych

Koncepcja obiektowości we

wszystkich warstwach jest kusząca,

ale obecnie nie do zrealizowania

background image

Rafał Kasprzyk

Konstrukcja warstwy integracji

Nowe podejście – aplikacja

komunikuje się z warstwą trwałych

obiektów odwzorowujących

zawartość relacyjnej bazy danych

Język SQL i JDBC są całkowicie

wyeliminowane z aplikacji

Model relacyjny jest ukryty przed

aplikacją.

background image

Rafał Kasprzyk

Idea ORM (ang. Object-

Relational Mapping)

Na obiektowość we wszystkich

warstwach (w szczególności w

warstwie danych)

dla istniejących rozwiązań jest już za

późno

dla nowych systemów jest jeszcze za

wcześnie

Rozwiązaniem tego problemu może

być oczywiście warstwa pośrednia

rozwiązanie każdego problemu

informatyki

background image

Rafał Kasprzyk

Poziomy ORM

Pure relational

Light object mapping

Medium object mapping

Full object mapping

background image

Rafał Kasprzyk

Tożsamość obiektu

Tożsamość jest kluczowym

zagadnieniem mapowania obiektowo-

relacyjnego

Tożsamość pozwala związać obiekt

znajdujący się w pamięci JVM z jego

reprezentacją w bazie danych

Tożsamość na poziomie obiektowym

Obiekty są tożsame, jeżeli są dostępne

pod tym samym adresem w pamięci JVM

Tożsamość na poziomie bazy relacyjnej

Obiekty utrwalane są tożsame jeżeli

reprezentują tą samą krotkę, co oznacza,

że współdzielą wartość klucza głównego

background image

Rafał Kasprzyk

Tożsamość obiektu

Mechanizm ORM zapewnia, że w

ramach sesji w pamięci może istnieć

tylko jedna instancja obiektu

trwałego

Nawet jeżeli dany obiekt jest zwracany

kilkakrotnie jako wynik zapytania do

bazy

Cecha ta określana jest jako

unikalność

unikalność

background image

Rafał Kasprzyk

Znane problemy ORM

Jedna z ważniejszych różnic pomiędzy

modelem obiektowym i relacyjnym to

sposób reprezentacji związków

W modelu relacyjnym związki są reprezentowane

przez klucze obce w encjach podrzędnych

Najczęściej występujące związki to: 1-N i N-N

W modelu obiektowym związki maja bardziej

naturalna postać

Przyjmują postać referencji na encję bądź referencję na

kolekcje encji (asocjacja, agregacja, kompozycja)

Dziedziczenie

Nawigowanie po grafie obiektów jest dużo

wygodniejsze niż pomiędzy tabelami

Możliwe jest przechodzenie z encji podrzędnej do

nadrzędnej i na odwrót, bez konieczności

zadawania skomplikowanych zapytań

background image

Rafał Kasprzyk

Znane problemy ORM

Synchronizacja danych pomiędzy

tabelą w relacyjnej bazy danych, a

obiektem Javy

Definicja klasy, nie uwalnia nas od

wysiłku związanego z definicją

odpowiednich pól tabeli.

W przypadku zmiany modelu

obiektowego, zmianie musi ulec

również struktura bazy.

Spadek wydajności aplikacji

Każda operacja SQL powoduje

dodatkowy narzut czasu. Można nieco

poprawić tą sytuację stosując

buforowanie.

background image

Rafał Kasprzyk

Znane zalety ORM

Produktywność

unikniecie konieczności tworzenia kodu

obsługującego bazę danych

Łatwość pielęgnacji aplikacji

mniej kodu, duża elastyczność

Wydajność

Przy założeniu ograniczonego czasu i

budżetu na zbudowanie i optymalizację

aplikacji

background image

Rafał Kasprzyk

Znane zalety ORM

Niezależność od konkretnego silnika

bazy danych (najczęściej)

Technologie ORM największe

korzyści przynoszą w aplikacjach

pracujących na złożonym modelu

obiektowym

Asocjacje

Agregacje

Kompozycje

Dziedziczenie

Polimorfizm

Kolekcje

background image

Rafał Kasprzyk

Podstawowe elementy ORM

Wygodny interfejs do wykonywania operacji

CRUD na trwałych obiektach

Język lub interfejs umożliwiający

wykonywanie zapytań odwołujących się do

klas trwałych i ich atrybutów

Mechanizm specyfikowania metadanych

opisujących sposób odwzorowywania klas na

relacje (tabele) w bazie danych i związków

między klasami na związki między tabelami

Techniki poprawiające wydajność

komunikacji z bazą danych

Wykrywanie zmian w trwałych obiektach

Różne sposoby pobierania obiektów powiązanych

background image

Rafał Kasprzyk

Podsumowanie

Architektura wielowarstwowa

Konstrukcja warstwy integracji

Idea ORM

Problemy ORM

Zalety ORM


Document Outline


Wyszukiwarka

Podobne podstrony:
01 Wprowadzenieid 2712 ppt
01 Algorytmy wprowadzenieid 2595 ppt
01 WPROWADZENIE DO FIZJOLOGII CZŁOWIEKA ppt
01 Wprowadzenie 01 introid 3077 ppt
01 Wprowadzenie 02 metody geofizyczne 2id 3079 ppt
01 Wprowadzenie Do Fizjologiid 2989 ppt
01 Algorytmy wprowadzenieid 2595 ppt
01 WPROWADZENIE DO FIZJOLOGII CZŁOWIEKA ppt
01 WPROWADZENIA
1 marketing wprowadzenieid 9434 ppt
Podsumowanie, 01 Wprowadzenie do sieci komputerowych
01 Systemy Operacyjne ppt
01 Wprowadzenie
01 wprowadzenie do teorii ekspl Nieznany

więcej podobnych podstron