Object-relational mapping: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Migliorato la pagina |
|||
(43 versioni intermedie di 36 utenti non mostrate) | |||
Riga 1:
{{F|programmazione|agosto 2019}}
Un prodotto ORM fornisce, mediante un'interfaccia orientata agli oggetti, tutti i servizi inerenti alla [[persistenza (informatica)|persistenza]] dei dati, astraendo nel contempo le caratteristiche implementative dello specifico RDBMS utilizzato.
== Descrizione ==
I principali vantaggi nell'uso di un tale 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 RDBMS utilizzati
* Un'elevata [[portabilità]] rispetto alla tecnologia DBMS utilizzata: cambiando DBMS non devono essere riscritte le [[routine (informatica)|routine]] che implementano lo strato di persistenza; generalmente basta cambiare poche righe nella configurazione del prodotto per l'ORM utilizzato.
* Drastica riduzione della quantità di [[codice sorgente]] da redigere; l'ORM maschera dietro semplici comandi le complesse attività di creazione, prelievo, aggiornamento ed eliminazione dei dati (dette [[CRUD]]
* 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à (informatica)|modularità]] complessiva del sistema.
I prodotti per l'ORM attualmente più diffusi offrono spesso nativamente funzionalità che altrimenti andrebbero realizzate manualmente dal [[programmatore]]:
* Caricamento automatico del grafo degli oggetti secondo i legami di associazione definiti a livello di linguaggio. Il caricamento di un'ipotetica istanza della [[classe (informatica)|classe]] <code>Studente</code>, potrebbe automaticamente produrre il caricamento dei dati collegati sugli esami sostenuti. Tale caricamento, in più, può avvenire solo se il dato è effettivamente richiesto dal programma, ed è altrimenti evitato (tecnica nota con il nome di ''[[
* Gestione della [[concorrenza (informatica)|concorrenza]] nell'accesso ai dati durante
* Meccanismi di [[Cache|caching]] dei dati. Per esempio, se accade che uno stesso dato venga prelevato più volte dal RDBMS, il sistema ORM può fornire automaticamente un supporto al ''caching'' che migliori le prestazioni dell'applicazione e riduca il carico sul sistema DBMS.
* Gestione di una
== Voci correlate ==
{{Div col}}
* [[database]]▼
* [[Base di dati]]
* [[SQL]]
* [[Doctrine (PHP)|Doctrine]]
* [[Propel]]
* [[Hibernate]]
* [[
* [[CodeIgniter]]
* [[SchemaDB]]
* [[Java Object Oriented Quering]]
{{Div col end}}
== Collegamenti esterni ==
{{Portale|informatica}}
[[Categoria:Programmazione orientata agli oggetti]]
▲[[en:Object-relational mapping]]
|