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.