Orient ODBMS
OrientDB software | |
---|---|
![]() | |
Genere | Database management system |
Sviluppatore | Luca Garulli |
Ultima versione | 3.2.32 (16 luglio 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | Java |
Licenza | Licenza Apache 2 (licenza libera) |
Sito web | orientdb.com |
Modifica dati su Wikidata · Manuale |
In informatica OrientDB è un visualizzatore ed editor di grafi scritto in Java, ma in cui l'interfaccia si basa su comandi utente in SQL. Nato da una software house italiana viene rilasciato gratuitamente con licenza Apache 2.0.
È un database documentale in cui le relazioni sono gestite principalmente come in un database a grafo con connessioni dirette tra i singoli dati. OrientDB supporta modalità senza schema, con schema oppure miste.
La cosa notevole rispetto agli altri programmi NoSQL è che utilizza comandi SQL fin dove possibile (seguendo un principio di rasoio di Occam), a cui aggiunge comandi NoSQL solo dove i corrispondenti SQL non esistono già senza inventare "l'ennesimo linguaggio" di gestione database. Nella versione base non è invece possibile visualizzare il workflow in forma di listato SQL corrispondente ai comandi dell'utente con bottoni nella shell grafica.
Ha una gestione dei permessi basata su utenti e regole. Utilizza un nuovo algoritmo di indicizzazione derivato dall'Albero RB e dal B+tree chiamato MVRB-Tree, che gli permette di avere benefici sia nell'inserimento che nella ricerca.
Storia
Orient nacque dall'esigenza di avere uno strumento semplice e prestante per rendere persistenti gli oggetti applicativi. Nel 1997 i linguaggi di programmazione si trovavano nel bel mezzo di una rivoluzione: l'Object orientation. Il paradigma più utilizzato, quello strutturato, stava per lasciare il posto al nuovo. Questa transizione fu molto graduale e ancora oggi esistono applicazioni che nascono seguendo l'approccio strutturato, magari utilizzando linguaggi Object Oriented.
Seguendo l'evoluzione dei linguaggi, il mercato dei Database management system (allora dominato dai DBMS Relazionali) rispose con una nuova tipologia di prodotti: i DBMS ad oggetti o ODBMS (o ancora OODBMS). Gli ODBMS miglioravano il modello ER per aderire al paradigma Object Oriented. Difatti il Modello E-R non prevedeva concetti come l'ereditarietà, il polimorfismo, ecc.
Sebbene nel 1997 questa transizione si trovasse in uno stadio avanzato, il mercato dei DBMS Relazionali era ancora ben saldo e non dava cenni di cedimento. Le applicazioni Object Oriented erano quindi costrette a convertire gli oggetti nel Modello E-R dando origine al noto problema dell'Impedence Mismatch. Utilizzati da applicazioni progettate e sviluppate ad oggetti, gli ODBMS garantivano prestazioni mediamente superiori alle soluzioni RDBMS. Quale fu la ragione per cui gli ODBMS non si sono mai affermati? Principalmente le seguenti:
- L'enorme Know-How esistente sull'SQL, mai implementato nativamente dagli ODBMS. Al suo posto venne creato l'OQL che sebbene derivasse dall'SQL non era compatibile con esso
- Il costo eccessivo di questi prodotti se rapportati ai ben più noti DBMS Relazionali
- La mancanza di un leader di mercato aggressivo
Gli ODBMS dovettero così accontentarsi di un posto di secondo piano nel panorama della persistenza. Ancora oggi gli ODBMS vengono utilizzati prevalentemente in applicazioni di nicchia dove le prestazioni sono un requisito critico.
Collegamenti esterni
- Sito ufficiale, su orientdb.com.
- Repository sorgenti di Orient ODBMS, su github.com.
- Intervista a Luca Garulli dove parla della storia di Orient ODBMS, su javastaff.com.
V · D · M | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Relazionali |
| ![]() | |||||||||||||||||||||
RDBMS integrante un RAD | Access · Bento · FileMaker · HyperFileSQL · Kexi · Knoda · LibreOffice Base · Neo4j · OpenOffice Base · Paradox · SAS · 4th Dimension | ||||||||||||||||||||||
Embedded (incorporato) | · Berkeley DB (Relazionale proprietario) · SQLite (Relazionale libero) | ||||||||||||||||||||||
Orientati agli oggetti |
| ||||||||||||||||||||||
Base di dati relazionale a oggetti |
| ||||||||||||||||||||||
NoSQL |
| ||||||||||||||||||||||
Sistema di gestione di basi di dati orientato alle colonne |
| ||||||||||||||||||||||
Base di dati spaziale |
| ||||||||||||||||||||||
Base di dati ad oggetti in movimento | SECONDO, · Firebird con TerraLib · MySQL con TerraLib · PostgreSQL con TerraLib · SQLServer con TerraLib | ||||||||||||||||||||||
Base di dati multimediale | Oracle Image · Oracle Video | ||||||||||||||||||||||
Categoria:Basi di dati |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/24px-Computer_n_screen.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Nuvola_apps_emacs.svg/25px-Nuvola_apps_emacs.svg.png)