Object-relational mapping: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 3:
I principali vantaggi nell'uso di questo sistema sono i seguenti.
*Il '''superamento (più o meno completo) dell'incompatibilità di fondo tra il progetto orientato agli oggetti ed il modello relazionale''' sul quale è basata la maggior parte degli attuali [[DBMS]] utilizzati; con una metafora legata al mondo dell'elettrotecnica, si parla in questo caso di ''disadattamento dell'impedenza tra paradigma relazionale e ad-oggetti'' (''object/relational impedance mismatch'').
*
*'''Drastica riduzione della quantità di codice da redigere'''; l'ORM maschera dietro semplici comandi le complesse attività di creazione, prelievo, aggiornamento ed eliminazione dei dati (dette [[CRUD]] - ''Create, Read, Update, Delete''). Tali attività occupano di solito una buona percentuale del tempo di stesura, testing e manutenzione complessivo. Inoltre, sono per loro natura molto ripetitive e, dunque, favoriscono la possibilità che vengano commessi errori durante la stesura del codice che le implementa.
*'''Suggerisce la realizzazione dell'architettura di un sistema software mediante [[Architettura_three-tier|approccio stratificato]]''', tendendo pertanto ad isolare in un solo livello la logica di persistenza dei dati, a vantaggio della modularità complessiva del sistema.
I prodotti per l'ORM attualmente più diffusi offrono spesso nativamente funzionalità che altrimenti andrebbero realizzate manualmente dal programmatore:
*
*
*
*Gestione di una ''conversazione'' mediante uso del [[Design_pattern|design pattern]] [[Unit of Work]], che ritarda tutte le azioni di aggiornamento dei dati al momento della chiusura della ''conversazione''; in questo modo le richieste inviate al [[DBMS]] sono quelle strettamente indispensabili (per es. viene eseguita solo l'ultima di una serie di update su uno stesso dato, oppure non viene eseguita affatto una serie di update su di un dato che in seguito viene eliminato); inoltre il colloquio con il [[DBMS]] avviene mediante composizione di [[query]] multiple in un unico statement, limitando così al minimo il numero di [[Round_Trip_Time|round-trip-time]] richiesti e, conseguentemente, i tempi di risposta dell'applicazione.
== Voci correlate ==
|