GNU/Linux >> Linux Esercitazione >  >> Linux

Che cos'è un database orientato agli oggetti

Introduzione

Banca dati orientati agli oggetti sono un tipo di sistema di gestione di database. Diversi sistemi di gestione del database forniscono funzionalità aggiuntive. I database orientati agli oggetti aggiungono la funzionalità del database ai linguaggi di programmazione a oggetti, creando basi di codice più gestibili.

Questo articolo offre una panoramica approfondita dei database orientati agli oggetti con esempi.

Definizione database oggetti

Un database di oggetti è gestito da un o oggetto-o rientrò d atab come m gestione s sistema (OODBMS). Il database combina concetti di programmazione orientata agli oggetti con principi di database relazionali.

  • Oggetti sono l'elemento costitutivo di base e un'istanza di una classe, in cui il tipo è integrato o definito dall'utente.
  • Classi fornire uno schema o un progetto per gli oggetti, definendone il comportamento.
  • Metodi determinare il comportamento di una classe.
  • Puntatori aiutare ad accedere agli elementi di un database di oggetti e stabilire relazioni tra gli oggetti.

La caratteristica principale degli oggetti in OODBMS è la possibilità di tipi costruiti dall'utente . Un oggetto creato in un progetto o in un'applicazione viene salvato in un database così com'è.

I database orientati agli oggetti trattano direttamente i dati come oggetti completi. Tutte le informazioni vengono fornite in un pacchetto di oggetti immediatamente disponibile anziché in più tabelle.

Al contrario, gli elementi costitutivi di base dei database relazionali, come PostgreSQL o MySQL, sono tabelle con azioni basate su connessioni logiche tra i dati della tabella.

Queste caratteristiche rendono i database a oggetti adatti a progetti con dati complessi che richiedono un approccio alla programmazione orientato agli oggetti. Un sistema di gestione orientato agli oggetti fornisce funzionalità supportate adatte alla programmazione orientata agli oggetti in cui gli oggetti complessi sono centrali. Questo approccio unifica attributi e comportamenti dei dati in un'unica entità.

Concetti di programmazione orientata agli oggetti

I database orientati agli oggetti sono strettamente correlati ai concetti di programmazione orientata agli oggetti. Le quattro idee principali della programmazione orientata agli oggetti sono:

  • Polimorfismo
  • Eredità
  • Incapsulamento
  • Astrazione

Questi quattro attributi descrivono le caratteristiche critiche dei sistemi di gestione orientati agli oggetti.

Polimorfismo

Polimorfismo è la capacità di un oggetto di assumere più forme. Questa capacità consente allo stesso codice di programma di funzionare con tipi di dati diversi. Sia un'auto che una bicicletta possono rompersi , ma il meccanismo è diverso. In questo esempio, l'interruzione dell'azione è un polimorfismo. L'azione definita è polimorfa — il risultato cambia a seconda delle prestazioni del veicolo.

Eredità

Eredità crea una relazione gerarchica tra classi correlate rendendo riutilizzabili parti del codice. La definizione di nuovi tipi eredita tutti i campi e i metodi di classe esistenti e li estende ulteriormente. La classe esistente è il genitore classe, mentre il bambino la classe estende il genitore.

Ad esempio, una classe padre chiamata Vehicle avrà classi per bambini Auto e Bici . Entrambe le classi figlie ereditano informazioni dalla classe genitore e estendere la classe genitore con nuove informazioni a seconda del tipo di veicolo.

Incapsulamento

Incapsulamento è la capacità di raggruppare dati e meccanismi in un unico oggetto per fornire protezione dell'accesso. Attraverso questo processo, informazioni e dettagli sul funzionamento di un oggetto vengono nascosti , con conseguente sicurezza dei dati e delle funzioni. Le classi interagiscono tra loro attraverso metodi senza la necessità di sapere come funzionano particolari metodi.

Ad esempio, un'auto ha caratteristiche e azioni descrittive. Puoi cambiare il colore di un'auto, ma il modello o la marca sono esempi di proprietà che non possono cambiare. Una classe incapsula tutte le informazioni sull'auto in un'unica entità, in cui alcuni elementi sono modificabili mentre altri no.

Astrazione

Astrazione è la procedura per rappresentare solo le caratteristiche dei dati essenziali per la funzionalità necessaria . Il processo seleziona le informazioni vitali mentre le informazioni non necessarie rimangono nascoste. L'astrazione aiuta a ridurre la complessità dei dati modellati e consente il riutilizzo.

Ad esempio, esistono diversi modi in cui un computer può connettersi alla rete. Un browser web necessita di una connessione a Internet. Tuttavia, il tipo di connessione è irrilevante. Una connessione stabilita a Internet rappresenta un'astrazione , mentre i vari tipi di connessioni rappresentano diverse implementazioni dell'astrazione.

Esempi di database orientati agli oggetti

Esistono diversi tipi di implementazioni di database a oggetti. La maggior parte contiene le seguenti funzionalità:

Funzione Descrizione
Lingua di query Lingua per trovare oggetti e recuperare dati dal database.
Persistenza trasparente Capacità di utilizzare un linguaggio di programmazione orientato agli oggetti per la manipolazione dei dati.
Transazioni ACIDO Le transazioni ACID garantiscono che tutte le transazioni siano complete senza modifiche in conflitto.
Memorizzazione nella cache del database Crea una replica parziale del database. Consente l'accesso a un database dalla memoria del programma anziché da un disco.
Recupero Disaster recovery in caso di errore dell'applicazione o del sistema.

Pietra preziosa/S

Pietra preziosa/S è un sistema di database di oggetti basato su Smalltalk, un linguaggio di programmazione orientato agli oggetti influenzato da Java. Gli sviluppatori che scrivono applicazioni in Smalltalk si adattano facilmente a questo database. GemStone/S si integra perfettamente con le applicazioni Smalltalk esistenti, migliorando la velocità e la produttività.

Gemstone/S è l'ideale per progetti ad alta disponibilità. Ci sono più opzioni per la licenza a seconda delle dimensioni del progetto. Il server di database è disponibile per varie piattaforme, tra cui Linux, Windows, macOS, Solaris, AIX e Raspberry Pi.

DB oggetto

ObjectDB è un database di oggetti NoSQL per il linguaggio di programmazione Java. Rispetto ad altri database NoSQL, ObjectDB è compatibile con ACID. ObjectDB non fornisce un'API e richiede l'utilizzo di una delle due API di database Java integrate:

  • APP con linguaggio di query JPA (JPQL) basato sulla sintassi Java.
  • JDO con linguaggio di query JDO (JDQL) basato sulla sintassi SQL.

ObjectDB include tutti i tipi di dati di base in Java, le classi definite dall'utente e le raccolte Java standard. Ogni oggetto ha un ID univoco. Il numero di elementi è limitato solo dalla dimensione massima del database (128 TB). ObjectDB è disponibile multipiattaforma e le prestazioni del benchmark sono eccezionali.

Database oggetti++

Database oggetti++ è un database di oggetti incorporabile in tempo reale progettato per applicazioni lato server. La manutenzione esterna richiesta è minima.

ObjectDatabase++ supporta:

  • Multiprocesso con applicazioni server multithread.
  • Controllo completo delle transazioni.
  • Recupero in tempo reale.
  • Linguaggi correlati a C++, VB.NET e C#.

Il database degli oggetti è basato su C++. Una delle caratteristiche principali è il ripristino automatico avanzato da arresti anomali del sistema senza compromettere l'integrità del database.

Obiettività/DB

Obiettività/DB utilizza il potere degli oggetti e soddisfa i complessi requisiti all'interno dei Big Data. Il database degli oggetti è flessibile poiché supporta più lingue:

  • C++
  • C#
  • Pitone
  • Java

Le modifiche allo schema avvengono in modo dinamico senza la necessità di tempi di inattività, consentendo query in tempo reale su qualsiasi tipo di dati. Objectivity/DB è disponibile per più piattaforme, inclusi macOS, Linux, Windows o Unix.

ObjectStore

Negozio oggetti si integra con C++ o Java e fornisce la persistenza della memoria per migliorare le prestazioni della logica dell'applicazione. Il database degli oggetti è conforme ad ACID. La reattività consente agli sviluppatori di creare applicazioni distribuite multipiattaforma, in locale o nel cloud.

La caratteristica principale è la scalabilità del cloud, che consente l'accesso al database da qualsiasi luogo. ObjectStore semplifica il processo di creazione e scambio dei dati senza interruzioni.

Versant

Versante fornisce la persistenza dell'oggetto trasparente primario da C++, Java e .NET. Tuttavia, c'è anche il supporto per Smalltalk e Python. Versant supporta API diverse a seconda della lingua utilizzata. Sono inoltre disponibili query SQL standard, che rendono Versant un database NoSQL.

Il database degli oggetti è un database client-server multiutente. Versant offre prestazioni migliori se utilizzato per sistemi di transazione online con grandi quantità di dati e utenti simultanei.

Vantaggi e svantaggi del database orientato agli oggetti

Ogni tecnica di modellazione di database presenta vantaggi e svantaggi. Prima di optare per i database orientati agli oggetti, devi conoscere le lingue disponibili oltre all'intento dell'applicazione.

Vantaggi

I principali vantaggi sono:

  • Dati complessi e una più ampia varietà di tipi di dati rispetto ai tipi di dati MySQL.
  • Facile da salvare e recuperare rapidamente i dati.
  • Integrazione perfetta con linguaggi di programmazione orientati agli oggetti.
  • Più facile modellare i problemi avanzati del mondo reale.
  • Estendibile con tipi di dati personalizzati.

Svantaggi

Alcuni svantaggi includono:

  • Non così ampiamente adottato come i database relazionali.
  • Nessun modello di dati universale. Manca di basi e standard teorici.
  • Non supporta le visualizzazioni.
  • L'elevata complessità causa problemi di prestazioni.
  • Non esistono adeguati meccanismi di sicurezza e diritti di accesso agli oggetti.

Linux
  1. Che cos'è un utente Linux?

  2. Come determinare quale formato di database sta utilizzando il tuo sito

  3. Che cos'è un amministratore di sistema?

  4. Cosa fa "lc_all=c"?

  5. Che cos'è un database relazionale?

Che cos'è un database di documenti?

Che cos'è un database OLTP?

Che cos'è la denormalizzazione del database?

Che cos'è la normalizzazione del database?

Che cos'è un database?

Che cos'è un database distribuito e a cosa servono i sistemi di dati distribuiti?