Base di dati relazionale a oggetti
# Base di dati relazionale a oggetti

Il modello di base di dati relazionale a oggetti o database relazionale a oggetti in sigla ORDBMS (object-relational database management system) è un modello di base di dati in cui convergono aspetti del modello relazionale e aspetti del modello a oggetti.

Molte delle idee dei database relazionali a oggetti sono state largamente incorporate in SQL:1999 ed infatti ogni prodotto che aderì a quello standard venne descritto come un software di Base di dati relazionale a oggetti, come: PostgreSQL, DB2, Oracle e Microsoft SQL Server.

## I tipi e le tabelle tipizzate

Per lo standard SQL-2003 per le basi di dati ad oggetti esistono i tipi predefiniti, i tipi costruiti (array, multiset, ref e row) e i tipi definiti dagli utenti basati su tipi predefiniti (tipi semplici, strutturati e abstract data type). I tipi e le tabelle tipate possono essere anche ereditate.

La creazione di un tipo semplice (id_impiegato) considerato un intero (INTEGER) e il suo uso in una tabella:

La creazione di un tipo strutturato:

Il tipo riferimento, REF(t) è il tipo di un identificatore di una tabella tipata

Una tabella tipata è una tabella in cui la struttura di un tipo coincide con quella di un tipo. Le tuple della tabella tipata sono istanze del tipo mentre le colonne corrispondono agli attributi del tipo. Una tabella tipata ha un suo identificatore e non ha bisogno di chiave primaria. La creazione di una tabella tipata:

## Progettazione di un ORDBMS

Per la conversione di una base di dati relazionale in una relazionale ad oggetti si parte dall'analisi dello schema ER della prima e si individuano gli attributi compositi che diventeranno tipi strutturati, gli attributi multivalore che diventeranno array o multiset, per un'entità rilevante per la base di dati si creerà una tabella. Infine si opta per una tabella tipata, in combinazione con tipi riferimento quando una entità dello schema ER ha un'associazione 1-n. Per la scelta della direzione delle associazioni in casi di bidirezionalità tra le varie entità è a discrezione del progettista che la sceglierà in base alla tipologia di interrogazioni che verranno fatte nella base di dati.

