OrientDB - Concetti di base
La caratteristica principale di OrientDB è di supportare oggetti multi-modello, cioè supporta diversi modelli come Documento, Grafico, Chiave / Valore e Oggetto Reale. Contiene un'API separata per supportare tutti questi quattro modelli.
Modello di documento
La terminologia Document model appartiene al database NoSQL. Significa che i dati sono memorizzati nei Documenti e il gruppo di Documenti viene chiamato comeCollection. Tecnicamente, documento indica un insieme di coppie chiave / valore o indicato anche come campi o proprietà.
OrientDB utilizza concetti quali classi, cluster e collegamento per archiviare, raggruppare e analizzare i documenti.
La tabella seguente illustra il confronto tra modello relazionale, modello di documento e modello di documento OrientDB -
Modello relazionale | Modello di documento | Modello di documento OrientDB |
---|---|---|
tavolo | Collezione | Classe o cluster |
Riga | Documento | Documento |
Colonna | Coppia chiave / valore | Campo documento |
Relazione | Non disponibile | Link |
Modello grafico
Una struttura dati a grafo è un modello di dati che può memorizzare i dati sotto forma di vertici (nodi) interconnessi da bordi (archi). L'idea del database di grafici di OrientDB è nata dal grafico delle proprietà. Il vertice e il bordo sono i principali artefatti del modello Graph. Contengono le proprietà che possono farli sembrare simili ai documenti.
La tabella seguente mostra un confronto tra il modello di grafico, il modello di dati relazionali e il modello di grafico OrientDB.
Modello relazionale | Modello grafico | Modello grafico OrientDB |
---|---|---|
tavolo | Classe vertice e bordo | Classe che estende "V" (per Vertex) ed "E" (per Edges) |
Riga | Vertice | Vertice |
Colonna | Proprietà Vertice e Bordo | Proprietà Vertice e Bordo |
Relazione | Bordo | Bordo |
Il modello chiave / valore
Il modello chiave / valore significa che i dati possono essere archiviati sotto forma di coppia chiave / valore in cui i valori possono essere di tipo semplice e complesso. Può supportare documenti ed elementi grafici come valori.
La tabella seguente illustra il confronto tra modello relazionale, modello chiave / valore e modello chiave / valore OrientDB.
Modello relazionale | Modello chiave / valore | Modello chiave / valore OrientDB |
---|---|---|
tavolo | Secchio | Classe o cluster |
Riga | Coppia chiave / valore | Documento |
Colonna | Non disponibile | Campo del documento o proprietà Vertice / Bordo |
Relazione | Non disponibile | Link |
Il modello a oggetti
Questo modello è stato ereditato dalla programmazione e dai supporti orientati agli oggetti Inheritance tra i tipi (i sottotipi estendono i super-tipi), Polymorphism quando fai riferimento a una classe base e Direct binding da / a Oggetti utilizzati nei linguaggi di programmazione.
La tabella seguente illustra il confronto tra modello relazionale, modello a oggetti e modello a oggetti OrientDB.
Modello relazionale | Modello a oggetti | OrientDB Object Model |
---|---|---|
tavolo | Classe | Classe o cluster |
Riga | Oggetto | Documento o vertice |
Colonna | Proprietà dell'oggetto | Campo del documento o proprietà Vertice / Bordo |
Relazione | Pointer | Link |
Prima di procedere nel dettaglio, è meglio conoscere la terminologia di base associata a OrientDB. Di seguito sono riportate alcune delle terminologie importanti.
Disco
L'unità più piccola da cui è possibile caricare e memorizzare nel database. I record possono essere memorizzati in quattro tipi.
- Document
- Record di byte
- Vertex
- Edge
ID record
Quando OrientDB genera un record, il server del database assegna automaticamente un identificatore di unità al record, chiamato RecordID (RID). Il RID è simile a # <cluster>: <position>. <cluster> indica il numero di identificazione del cluster e <position> indica la posizione assoluta del record nel cluster.
Documenti
Il documento è il tipo di record più flessibile disponibile in OrientDB. I documenti sono tipizzati in modo morbido e sono definiti da classi di schemi con vincoli definiti, ma puoi anche inserire il documento senza alcuno schema, cioè supporta anche la modalità senza schema.
I documenti possono essere facilmente gestiti mediante esportazione e importazione in formato JSON. Ad esempio, dai un'occhiata al seguente documento di esempio JSON. Definisce i dettagli del documento.
{
"id" : "1201",
"name" : "Jay",
"job" : "Developer",
"creations" : [
{
"name" : "Amiga",
"company" : "Commodore Inc."
},
{
"name" : "Amiga 500",
"company" : "Commodore Inc."
}
]
}
RecordBytes
Il tipo di record è lo stesso del tipo BLOB in RDBMS. OrientDB può caricare e memorizzare il tipo di record del documento insieme ai dati binari.
Vertice
Il database OrientDB non è solo un database di documenti ma anche un database di grafici. I nuovi concetti come Vertex e Edge vengono utilizzati per memorizzare i dati sotto forma di grafico. Nei database a grafo, l'unità di dati più elementare è il nodo, che in OrientDB è chiamato vertice. Il Vertex memorizza le informazioni per il database.
Bordo
Esiste un tipo di record separato chiamato Edge che collega un vertice a un altro. I bordi sono bidirezionali e possono collegare solo due vertici. Esistono due tipi di bordi in OrientDB, uno regolare e un altro leggero.
Classe
La classe è un tipo di modello di dati e il concetto è tratto dal paradigma di programmazione orientata agli oggetti. In base al modello di database dei documenti tradizionale, i dati vengono archiviati sotto forma di raccolta, mentre nel modello di database relazionale i dati vengono archiviati in tabelle. OrientDB segue l'API del documento insieme al paradigma OPPS. Come concetto, la classe in OrientDB ha la relazione più stretta con la tabella nei database relazionali, ma (a differenza delle tabelle) le classi possono essere senza schema, complete di schema o miste. Le classi possono ereditare da altre classi, creando alberi di classi. Ogni classe ha il proprio cluster o cluster, (creati per impostazione predefinita, se nessuno è definito).
Grappolo
Il cluster è un concetto importante che viene utilizzato per archiviare record, documenti o vertici. In parole semplici, Cluster è un luogo in cui viene archiviato un gruppo di record. Per impostazione predefinita, OrientDB creerà un cluster per classe. Tutti i record di una classe vengono archiviati nello stesso cluster con lo stesso nome della classe. È possibile creare fino a 32.767 (2 ^ 15-1) cluster in un database.
La classe CREATE è un comando utilizzato per creare un cluster con un nome specifico. Una volta creato il cluster, è possibile utilizzare il cluster per salvare i record specificando il nome durante la creazione di qualsiasi modello di dati.
Relazioni
OrientDB supporta due tipi di relazioni: referenziata e incorporata. Referenced relationships significa che memorizza il collegamento diretto agli oggetti di destinazione delle relazioni. Embedded relationshipssignifica che memorizza la relazione all'interno del record che la incorpora. Questa relazione è più forte della relazione di riferimento.
Banca dati
Il database è un'interfaccia per accedere alla memoria reale. L'IT comprende concetti di alto livello come query, schemi, metadati, indici e così via. OrientDB fornisce anche più tipi di database. Per ulteriori informazioni su questi tipi, vedere Tipi di database.