Antonio Albano, Giorgio Ghelli, Renzo Orsini
BASI DI DATI RELAZIONALI E A OGGETTI
Zanichelli, 1997 (ISBN 88-08-17270-8)
INDICE
1 Sistemi per basi di dati
2 I modelli dei dati
3 La progettazione di basi di dati
4 I linguaggi per basi di dati ad oggetti
5 Il modello relazionale
6 Normalizzazione di schemi relazionali
7 SQL per l'uso interattivo di basi di dati
8 SQL per definire e amministrare basi di dati
9 SQL per programmare le applicazioni
10 SQL per sistemi relazionali ad oggetti
11 Sistemi per nuovi tipi di dati
12 Architetture dei DBMS
13 Sviluppo di applicazioni in ambienti
14 Realizzazione dei DBMS
15 Sistemi commerciali
Prefazione
In questo libro vengono trattati quegli argomenti che sono considerati
fondamentali, nel campo delle basi di dati, per la formazione degli
informatici: i modelli dei dati, i linguaggi, i sistemi e le metodologie di
progettazione di applicazioni che usano basi di dati. Questi argomenti
sono trattati dal punto di vista del progettista di applicazioni e del
responsabile di basi di dati, con cenni agli aspetti realizzativi dei
sistemi.
L'approccio seguito nel presentare questi argomenti si basa sulla
presentazione rigorosa di concetti e principi fondamentali, per aiutare il
lettore a comprendere sia la tecnologia attuale che le inevitabili
innovazioni del futuro. Questa presentazione non è però astratta ma è
costantemente corredata da esemplificazioni tratte da applicazioni e
sistemi reali.
Questo libro è caratterizzato inoltre dalla decisione di presentare non
solo le tecnologie più diffuse attualmente, ma anche quelle che sono
destinate ad influenzare le basi di dati del futuro. Per questo motivo,
oltre ad un'ampia descrizione del modello relazionale, molto spazio è
dedicato anche ai modelli e linguaggi ad oggetti e relazionale ad oggetti,
per mostrarne sia i vantaggi che i limiti nel passaggio dalla teoria alla
pratica. Analogamente, accanto alla realizzazione tradizionale dei sistemi
per basi di dati, ampio spazio è dato alle architetture eterogenee e
distribuite che domineranno la scena nei prossimi anni, discutendo anche in
questo caso sia i principi che le specifiche tecnologie.
Poiché la tecnologia dei sistemi per basi di dati sta evolvendo passando da
sistemi specializzati per la gestione di dati a sistemi generali per
linguaggi di programmazione che trattano dati persistenti, nel libro viene
posta molta enfasi anche sulle caratteristiche dei linguaggi di
programmazione per basi di dati, prendendo come riferimento una versione
didattica di un linguaggio ad oggetti con un sistema di tipi forte e
statico che, sebbene non sia il linguaggio usato da un sistema commerciale,
consente di chiarire in modo rigoroso i concetti fondamentali sui quali si
basano i linguaggi attuali e come essi potrebbero evolvere nel futuro.
Organizzazione del testo
Il libro inizia presentando le ragioni che motivano la tecnologia delle
basi di dati ed i concetti principali che caratterizzano le basi di dati ed
i sistemi per la loro gestione.
Il testo prosegue trattando poi aspetti relativi alla progettazione di
applicazioni su basi di dati (Capitoli 2 e 3) e alla loro realizzazione in
sistemi relazionali e ad oggetti (Capitoli dal 4 al 10). Infine, il testo
tratta aspetti relativi ai sistemi commerciali per la gestione di basi di
dati e alla loro realizzazione, con particolare attenzione alle più recenti
tendenze: gestione di dati multimediali e spazio-temporali e costruzione di
applicazioni distribuite in ambienti eterogenei (Capitoli dall'11 al
15).
In maggior dettaglio, il Capitolo 2 si sofferma sulle nozioni fondamentali
di modello informatico finalizzato al trattamento delle informazioni di
interesse dei sistemi informativi delle organizzazioni e sui meccanismi
d'astrazione per costruire modelli informatici. Il modello di riferimento
è il modello ad oggetti, motivato non solo dalla sua naturalezza per la
progettazione di basi di dati, ma anche per essere il modello dei dati
della nuova tecnologia ad oggetti per basi di dati.
Il Capitolo 3 presenta una panoramica del problema della progettazione di
basi di dati soffermandosi sulle fasi dell'analisi dei requisiti e della
progettazione concettuale di basi di dati usando il modello ad oggetti e il
formalismo grafico proposto nel Capitolo 2 e descrivendo un metodo di
lavoro per queste fasi.
Il Capitolo 4 tratta diffusamente le caratteristiche dei linguaggi ad
oggetti per basi di dati, mostrando sia quelle ormai consolidate dagli
attuali sistemi commerciali che quelle considerate necessarie per superare
alcune limitazioni della tecnologia. L'aspetto interessante della
trattazione è l'uso del Galileo97, un linguaggio di programmazione
didattico con un sistema di tipi forte e statico per focalizzare
l'attenzione sui concetti in gioco. In questo modo si ottengono due
vantaggi: si astrae dalle particolarità degli attuali linguaggi dei sistemi
commerciali e si fornisce un quadro di riferimento per comprendere le
caratteristiche dei linguaggi esistenti e di quelli nuovi che
inevitabilmente appariranno nel futuro. Il Galileo97 viene confrontato con
i linguaggi dei sistemi O2 e UniSQL. Il linguaggio è a disposizione di chi
desideri utilizzarlo in ambienti Windows e Macintosh.
I Capitoli 5 e 6 sono dedicati alla presentazione rigorosa del modello
relazionale dei dati e ad un'introduzione alla teoria della
normalizzazione. La scelta di dedicare questo spazio all'argomento è
giustificata dal ruolo fondamentale che svolge il modello relazionale per
la comprensione della tecnologia delle basi di dati e per la formazione
degli addetti.
I Capitoli 7, 8 e 9 trattano il linguaggio relazionale SQL da tre punti di
vista, che corrispondono ad altrettante categorie di utenti: (1) gli utenti
interessati ad usare interattivamente basi di dati relazionali, (2) i
responsabili di basi di dati interessati a definire e gestire basi di dati,
(3) i programmatori delle applicazioni.
Il Capitolo 10 presenta il modello relazionale ad oggetti, la nuova
tecnologia dei sistemi relazionali e le estensioni dell'SQL per questo
modello dei dati. A titolo di esempio si presenta la soluzione offerta dal
sistema Illustra e dal linguaggio OQL dello standard ODMG.
Il Capitolo 11 è dedicato alle estensioni della tecnologia delle basi di
dati per trattare nuovi tipi di dati, in particolare testi, immagini, dati
spaziali e tempo. L'attenzione è centrata sia sulle novità introdotte da
questi tipi, che sulla possibilità di inquadrare anche le applicazioni che
usano questi dati nell'ambito delle applicazioni basate sulla tecnologia di
basi di dati, opportunamente estesa.
Il Capitolo 12 tratta le architetture centralizzate, distribuite e
parallele dei sistemi per basi di dati. Particolare attenzione è dedicata
alle architetture distribuite, illustrando i motivi di interesse di questa
tecnologia e le soluzioni architetturali disponibili.
Il Capitolo 13 allarga la visione delineata nel Capitolo 12, illustrando i
diversi strumenti esistenti per lo sviluppo di applicazioni in ambienti
distribuiti ed eterogenei. In questo modo il lettore ha modo di inquadrare
il ruolo specifico dei sistemi di gestione di basi di dati, centralizzati e
distribuiti, nella costruzione di un'applicazione distribuita, e di capire
quali funzionalità sia più opportuno demandare a strumenti diversi.
Particolare spazio è dedicato alle tecnologie emergenti per lo sviluppo
di applicazioni basate su oggetti distribuiti, secondo l'approccio CORBA, e
di applicazioni basate sul Web, presentando concetti ed esempi.
Il Capitolo 14 presenta una panoramica delle principali tecniche per la
realizzazione dei sistemi relazionali e ad oggetti. Vengono presentate in
particolare la gestione delle interrogazioni e dei metodi di accesso e la
gestione dell'atomicità e della concorrenza in sistemi centralizzati e
distribuiti. Vengono inoltre trattati gli aspetti peculiari della
realizzazione dei sistemi ad oggetti, quali, in particolare, la gestione
della memoria.
Il Capitolo 15, infine, si sofferma sulle caratteristiche di alcuni ben
noti sistemi commerciali. In particolare, il capitolo descrive prima una
possibile classificazione delle applicazioni per basi di dati, dedicando un
certo spazio alle applicazioni di analisi del dati, la cui importanza sta
crescendo fortemente. Descrive poi le caratteristiche più importanti che
differenziano tra loro i sistemi commerciali. Infine, dedica un ampio
spazio alla descrizione dei maggiori sistemi commerciali, descrivendo
sistemi relazionali, ad oggetti e relazionali ad oggetti.
Possibili usi del libro
Il materiale presentato nel libro può essere usato per corsi con
obiettivi diversi. A titolo di esempio si mostrano alcune possibilità
sperimentate in corsi del Diploma e della Laurea in Informatica
dell'Università di Pisa.
- Il corso semestrale Basi di dati del Diploma ha come obiettivo
quello di fornire elementi di progettazione di basi di dati e di sviluppo
di applicazioni usando sistemi relazionali. I capitoli di riferimento sono
i primi tre, per un'introduzione ai sistemi per basi di dati e per
presentare strumenti e caratteristiche essenziali delle metodologie di
progettazione concettuale di basi di dati; il Capitolo 5 per trattare il
modello relazionale e la progettazione logica dei dati; alcune parti del
Capitolo 6 per cenni alla normalizzazione di basi di dati relazionali; i
Capitoli 7-9 per l'uso del linguaggio SQL. Per cenni sulla progettazione
fisica, sugli aspetti realizzativi dei sistemi e sulle loro architetture si
possono usare parti del Capitolo 14.
- Il corso semestrale di Basi di dati ha come obiettivo quello
di fornire i fondamenti dei modelli e linguaggi dei sistemi per basi di
dati a tutti gli studenti del Corso di Laurea in Informatica. I capitoli
di riferimento sono quelli del corso del Diploma, con cenni ai modelli e
linguaggi ad oggetti trattati nei Capitoli 4 e 10, e uno spazio maggiore
alla normalizzazione dei dati con un utilizzo più ampio del
Capitolo 6.
- Il corso semestrale di Basi di dati: Laboratorio ha come
obiettivo quello di fornire una competenza di progetto e realizzazione di
applicazioni che usano basi di dati usando uno specifico prodotto
commerciale. Gli aspetti della progettazione concettuale, logica e fisica
richiedono la trattazione approfondita dei Capitoli 3, 5 e dei Capitoli 7,
8 e 9 su SQL e dei Capitoli 12 e 13 sui sistemi per basi di dati. Il
materiale viene poi completato da sezioni specifiche del manuale del
sistema commerciale usato per la sperimentazione.
- Il corso semestrale di Complementi di basi di dati ha come
obiettivo quello di fornire le competenze per comprendere l'evoluzione
della tecnologia delle basi di dati verso i sistemi ad oggetti e
multimediali, sia dal punto di vista degli utenti che dal punto di vista
del progettista delle applicazioni e dei sistemi. Il libro non copre tutti
gli argomenti essenziali, ma è adatto per trattare gli aspetti sui
modelli e linguaggi. La possibilità di usare il linguaggio Galileo
consente poi di approfondire sia gli aspetti linguistici che di sviluppo
delle applicazioni e di fare un'attività sperimentale molto utile in
assenza di prodotti specifici o come introduzione ad essi. I capitoli di
riferimento sono 4 e 10, per i linguaggi ad oggetti e i sistemi relazionali
ad oggetti; il Capitolo 11 per la gestione di nuovi tipi di dati. Esempi
di sistemi commerciali sono dati nei Capitoli 4 e 15.
- Un corso annuale di Basi di dati ha come obiettivo quello di
fornire i fondamenti di progettazione di basi di dati e dei sistemi
relazionali e ad oggetti. I capitoli di riferimento sono quelli suggeriti
per il corso semestrale di basi di dati arricchiti con i capitoli 12, 13 e
14 che descrivono la realizzazione dei sistemi, arricchiti eventualmente
con alcuni dei capitoli usati per il corso di complementi.
Per alcuni corsi il libro offre capitoli che coprono aspetti non
strettamente necessari, ma si ritiene ugualmente utile mettere a
disposizione del lettore tale materiale per consentire approfondimenti e
per favorire la formazione di un'idea più completa delle possibilità
offerte dalla tecnologia delle basi di dati. In particolare, i capitoli
finali del libro permettono al lettore di acquisire informazioni precise e
aggiornate sull'effettiva evoluzione dei sistemi commerciali e della
tecnologia; queste informazioni non sono in genere facili da reperire. Per
altri corsi ovviamente il materiale del libro è insufficiente ed è
richiesto anche l'uso di testi complementari. In particolare, per i corsi
che richiedono un maggiore approfondimento degli aspetti realizzativi dei
sistemi per basi di dati e della progettazione fisica di basi di dati, si
suggerisce di prendere in considerazione il volume dedicato all'argomento:
A. Albano, Basi di dati: strutture ed algoritmi, per i tipi
Addison-Wesley.
INDICE
1 Sistemi per basi di dati
1.1 Sistemi informativi e informatici
1.2 Evoluzione dei sistemi informatici
1.3 I sistemi per basi di dati
1.4 Funzionalità dei DBMS
1.4.1 Definizione della base di dati
1.4.2 Uso della base di dati
1.4.3 Controllo della base di dati
1.4.4 Distribuzione della base di dati
1.4.5 Amministrazione della base di dati
1.5 Vantaggi e problemi nell'uso dei DBMS
1.6 Conclusioni
Esercizi
Note bibliografiche
2 I modelli dei dati
2.1 Progettazione e modellazione
2.2 Considerazioni preliminari alla modellazione
2.2.1 Aspetto ontologico
2.2.2 Aspetto linguistico astratto
2.2.3 Aspetto linguistico concreto
2.2.4 Aspetto pragmatico
2.3 Il modello dei dati ad oggetti
2.3.1 Rappresentazione della struttura della conoscenza concreta
2.3.2 Rappresentazione degli altri aspetti della conoscenza astratta
2.3.3 Rappresentazione della conoscenza procedurale
2.3.4 Rappresentazione della comunicazione
2.4 Altri modelli dei dati
2.4.1 Il modello semantico dei dati
2.4.2 Il modello entità-relazione
2.4.3 Il modello reticolare
2.4.4 Il modello gerarchico
2.4.5 Il modello relazionale
2.5 Conclusioni
Esercizi
Note bibliografiche
3 La progettazione di basi di dati
3.1 Introduzione
3.2 Le metodologie di progettazione
3.2.1 Il ruolo delle metodologie
3.2.2 Le metodologie con più fasi
3.2.3 Le metodologie con prototipazione
3.3 Gli strumenti formali
3.3.1 I diagrammi di flusso dati
3.3.2 I diagrammi di stato
3.4 L'analisi dei requisiti
3.4.1 Scopo dell'analisi dei requisiti
3.4.2 Come procedere
3.4.3 Un esempio di analisi dei requisiti
3.5 La progettazione concettuale
3.5.1 Scopo della progettazione concettuale
3.5.2 Come procedere
3.5.3 I passi della progettazione concettuale
3.6 Riepilogo della metodologia di progettazione
3.7 Conclusioni
Esercizi
Note bibliografiche
4 I linguaggi per basi di dati ad oggetti
4.1 I linguaggi per basi di dati ad oggetti
4.2 La struttura del Galileo 97
4.3 Le definizioni
4.4 Il sistema dei tipi
4.4.1 Registrazioni
4.4.2 Sequenze
4.4.3 Valori modificabili
4.4.4 Funzioni
4.5 Tipo oggetto
4.6 L'identità degli oggetti
4.7 Definizione di tipi oggetto per ereditarietà
4.8 Gerarchie di tipi
4.8.1 Le regole di sottotipo
4.8.2 Ereditarietà e controvarianza
4.8.3 Uso della relazione di sottotipo
4.9 Interpretazione dei messaggi e semantica degli autoriferimenti
4.10 Classi
4.10.1 Le associazioni
4.10.2 Sottoclassi
4.10.3 Classi virtuali
4.11 I vincoli d'integrità
4.11.1 Descrizione dichiarativa dei vincoli
4.11.2 Immersione dei vincoli nelle procedure
4.11.3 Violazione dei vincoli e fallimenti
4.12 Il linguaggio di interrogazione
4.13 Riepilogo
4.14 Oggetti che cambiano tipo
4.14.1 Estensione e tipi di sottoclassi
4.15 Alcune scelte alternative
4.15.1 Tipi oggetto con implementazione multipla
4.15.2 Classi con inserzione esplicita
4.15.3 La rappresentazione esplicita dell'associazione
4.16 I linguaggi dei sistemi O2 e UniSQL
4.16.1 Definizione di basi di dati in O2
4.16.2 Definizione di basi di dati in UniSQL
4.16.3 Confronto
4.17 Lo standard ODMG
4.18 Conclusioni
Esercizi
Note bibliografiche
5 Il modello relazionale
5.1 Il modello dei dati
5.1.1 La relazione
5.1.2 I vincoli d'integrità
5.2 Una rappresentazione grafica del modello relazionale
5.2.1 Operatori
5.3 Progettazione logica relazionale
5.3.1 Rappresentazione delle associazioni binarie uno a molti e uno ad uno
5.3.2 Rappresentazione di associazioni molti a molti o non binarie
5.3.3 Rappresentazione delle gerarchie fra classi
5.3.4 Identificazione delle chiavi primarie
5.3.5 Rappresentazione delle proprietà multivalore
5.3.6 Appiattimento gli attributi composti
5.4 Algebra relazionale
5.4.1 Gli operatori primitivi
5.4.2 Operatori derivati
5.4.3 Proprietà algebriche degli operatori relazionali
5.4.4 Altri operatori
5.5 Calcolo relazionale su ennuple
5.6 I linguaggi logici
5.7 Conclusioni
Esercizi
Note bibliografiche
6 Normalizzazione di schemi relazionali
6.1 Le anomalie
6.2 Dipendenze funzionali
6.2.1 Definizione
6.2.2 Dipendenze derivate
6.2.3 Chiusura di un insieme di dipendenze funzionali
6.2.4 Chiavi
6.2.5 Copertura di un insieme di dipendenze
6.3 Decomposizione di schemi
6.3.1 Decomposizioni che preservano i dati
6.3.2 Decomposizioni che preservano le dipendenze
6.4 Forme normali
6.4.1 Forma Normale di Boyce-Codd
6.4.2 Normalizzazione di schemi in BCNF
6.4.3 Terza forma normale
6.4.4 Normalizzazione di schemi in 3NF
6.5 Dipendenze multivalore
6.6 La denormalizzazione
6.7 Uso della teoria della normalizzazione
6.8 Conclusioni
Esercizi
Note bibliografiche
7 SQL per l'uso interattivo di basi di dati
7.1 Operatori per il recupero dei dati
7.1.1 Attributi
7.1.2 Tabelle
7.1.3 Condizione
7.1.4 Operatore di ordinamento
7.1.5 Funzioni statistiche
7.1.6 Operatore di raggruppamento
7.1.7 Condizioni con quantificatore universale
7.1.8 Sintassi completa del SELECT
7.2 Operatori per la modifica dei dati
7.3 Il potere espressivo di SQL
7.4 QBE: un esempio di linguaggio basato sulla grafica
7.5 Conclusioni
Esercizi
Note bibliografiche
8 SQL per definire e amministrare basi di dati
8.1 Definizione della struttura di una base di dati
8.1.1 Base di dati
8.1.2 Tabelle
8.1.3 Tabelle virtuali
8.2 Vincoli d'integrità
8.3 Aspetti procedurali
8.3.1 Procedure memorizzate
8.3.2 Trigger
8.4 Aspetti fisici
8.4.1 Parametri fisici
8.4.2 Definizione di indici
8.5 Evoluzione dello schema
8.6 Autorizzazioni
8.7 Schemi esterni
8.8 Cataloghi
8.9 Strumenti per l'amministrazione di basi di dati
8.10 Conclusioni
Esercizi
Note bibliografiche
9 SQL per programmare le applicazioni
9.1 Linguaggi che ospitano l'SQL
9.2 Linguaggi con interfaccia API
9.3 Linguaggi integrati
9.4 La programmazione di transazioni
9.4.1 Ripetizione esplicita delle transazioni
9.4.2 Transazioni con livelli diversi di isolamento
9.5 Conclusioni
Esercizi
Note bibliografiche
10 SQL per sistemi relazionali ad oggetti
10.1 Il modello relazionale ad oggetti
10.1.1 Il modello relazionale non in prima forma normale
10.1.2 Il modello relazionale ad oggetti
10.1.3 Definizione di tipi oggetto per ereditarietà
10.1.4 Inclusione tra relazioni
10.1.5 Definizione dei metodi
10.1.6 L'uguaglianza tra oggetti
10.1.7 SQL per basi di dati ad oggetti
10.2 Definizione di basi di dati in Illustra
10.3 L'interrogazione di basi di dati in Illustra
10.3.1 Restrizioni
10.3.2 Espressioni di cammino
10.3.3 Tipi di giunzione
10.3.4 Ortogonalità
10.3.5 Funzioni
10.4 Conclusioni
Esercizi
Note bibliografiche
11 Sistemi per nuovi tipi di dati
11.1 Basi di dati multimediali
11.1.1 Gestione di dati multimediali
11.1.2 Rappresentazione del contenuto
11.1.3 Interrogazioni e tecniche di recupero
11.2 Basi di dati spaziali
11.2.1 Interrogazioni per dati spaziali
11.3 Basi di dati temporali
11.3.1 Modello del tempo
11.3.2 Tempo rappresentato
11.3.3 Estensioni dell'SQL
11.4 Conclusioni
Note bibliografiche
12 Architetture dei DBMS
12.1 Sistemi di archiviazione
12.1.1 Sistemi procedurali
12.1.2 Sistemi dichiarativi
12.1.3 Sistemi con interfaccia SQL
12.2 Sistemi per basi di dati centralizzate
12.2.1 Sistemi centralizzati
12.2.2 Sistemi con architettura cliente-servente
12.3 Sistemi per basi di dati distribuite
12.3.1 Basi di dati distribuite: problemi
12.3.2 Modelli di sistemi distribuiti
12.4 Sistemi paralleli per basi di dati
12.5 Conclusioni
Note bibliografiche
13 Sviluppo di applicazioni in ambienti distribuiti eterogenei
13.1 Introduzione
13.2 Architettura di un'applicazione distribuita
13.3 I gateway per basi di dati
13.3.1 L'API ODBC
13.3.2 L'API JDBC
13.4 TP Monitor
13.5 Gli ambienti ad oggetti distribuiti
13.5.1 Gli ORB CORBA
13.5.2 Un esempio di applicazione CORBA
13.5.3 ActiveX
13.6 Clienti e serventi per il World Wide Web
13.6.1 Le applicazioni Web
13.6.2 Un esempio di applicazione Web
13.6.3 Vantaggi e svantaggi dei DBMS Web
13.6.4 Web e CORBA
13.7 Generatori di interfacce
13.8 Conclusioni
Note bibliografiche
14 Realizzazione dei DBMS
14.1 Realizzazione dei sistemi relazionali
14.1.1 Gestore delle interrogazioni
14.1.2 Gestore dei metodi d'accesso
14.1.3 Gestore della concorrenza
14.1.4 Gestore dell'affidabilità
14.2 Realizzazione dei sistemi relazionali distribuiti e paralleli
14.2.1 Esecuzione delle interrogazioni nei sistemi distribuiti
14.2.2 Esecuzione delle interrogazioni nei sistemi paralleli
14.2.3 Gestione delle transazioni distribuite
14.3 Realizzazione dei sistemi ad oggetti
14.3.1 Sistemi con due livelli di memoria
14.3.2 Sistemi con un livello di memoria
14.4 Conclusioni
Note bibliografiche
15 Sistemi commerciali
15.1 Classi di applicazioni che usano DBMS
15.1.1 Applicazioni personali
15.1.2 Applicazioni gestionali
15.1.3 Applicazioni con dati complessi
15.1.4 Applicazioni transazionali interattive
15.1.5 Applicazioni di supporto alle decisioni
15.2 Caratteristiche di un DBMS
15.3 Come scegliere un DBMS
15.4 Sistemi relazionali per calcolatori personali
15.4.1 Il sistema Microsoft Access
15.4.2 Il sistema Fourth Dimension
15.4.3 Il sistema Butler
15.5 I sei grandi sistemi relazionali
15.5.1 Il sistema Sybase
15.5.2 Il sistema DB2
15.5.3 Oracle
15.5.4 Informix
15.5.5 CA-OpenIngres
15.5.6 Microsoft SQL Server
15.6 Sistemi relazionali ad oggetti
15.6.1 Il sistema Informix Universal Server
15.6.2 Il sistema UniSQL
15.7 Sistemi ad oggetti
15.7.1 Il sistema O2
15.8 Conclusioni
Note bibliografiche
Bibliografia
Indice analitico
Back to the Main
Page