I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una...

30
Capitolo quinto I RDBMS e gli Oggetti

Transcript of I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una...

Page 1: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto

I RDBMS e gli Oggetti

Page 2: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

5.1.Introduzione

I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza

rispetto a quelle che sono le nuove esigenze che si fanno avanti nelle

aziende. I DBMS hanno forse risentito troppo dell’influenza delle aree in cui

per primi trovarono applicazione, vale a dire quella gestionale ed

amministrativa. La grande limitatezza deriva dalla possibilità di trattare

solo dati di carattere strutturato come numeri e testi brevi, quindi dati di

carattere semplice. Ma la maggior parte delle informazioni aziendali è in

forma non strutturata. Appunti, rapporti, lettere, ed articoli di giornali sono

solo alcuni esempi che mal si adattano alla struttura di un RDBMS puro. Il

problema, ad esempio, con questo genere di materiali è che gli elementi

d'interesse dono dispersi all’interno dei documenti e i DBMS sono

organizzati solo per dati strutturati in cui i requisiti di ricerca sono stati

definiti in anticipo. Inoltre, altre informazioni di carattere multimediale

stanno acquistando sempre più peso nell’ambito delle aziende, ma non

solo in queste1.

1 “A chi serve un DBMS multimediale ? Probabilmente non sono molte le realtà aziendali che possono avvantaggiarsi dall’avere un database completamente multimediale. Tra queste rientrano le aziende per le quali il prodotto aziendale “è multimediale” o è descritto prevalentemente in modo multimediale. (ad esempio società di distribuzione di audiovisivi, produttori cinematografici, gallerie d’arte e così via). La situazione cambia se invece pensiamo ad un database classico dove alle informazioni tipiche dell’ambiente gestionale (codice, descrizione, importo...) vengono aggiunte informazioni multimediali, come una foto del prodotto, un filmato che ne descrive le caratteristiche peculiari, un audiovisivo che descrive le modalità di impiego e così via.....questo DBMS può essere un valido strumento per il manager. Facciamo un esempio pratico, supponendo d’essere alla guida di una azienda che opera sia a livello nazionale che internazionale e vende prodotti per il mercato finale di livello medio-alto. Uno degli aspetti che potrebbe incidere sui fattori critici di successo sarebbe la possibilità di rilevare una correlazione statistica significativa tra l’andamento dei margini di contribuzione dei vari prodotti nelle varie aree geografiche o nei vari canali distributivi ed alcuni aspetti caratterizzanti, tipo di colore o la forma predominante di quegli articoli. Ad esempio, sarebbe molto interessante scoprire che l’incremento delle vendite sul mercato USA (cultura anglosassone) è fortemente correlato ad articoli, supponiamo, di colore blu e forme squadrate, mentre gli stessi colori e tipologia di forma ha avuto risultati esattamente contrari sul mercato brasiliano (cultura latino-americana), dove, invece, un incremento analogo si è verificato per colori predominanti sul rosso e forme tondeggianti. Ovviamente, questo tipo di correlazione senza la possibilità di elaborare la semantica delle informazioni

235

Page 3: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Cresce, di conseguenza, l’esigenza di gestire e al meglio i dati di carattere

complesso, siano questi intere tabelle, testi, immagini, filmati ecc.. Questa

esigenza ha spostato l’attenzione sugli oggetti, capaci di inglobare in se sia

dati che operazioni che questi devono svolgere. Avremo, perciò, un oggetto

tabella, uno testo, uno immagine ecc..

Si cerca sempre più da parte dei produttori di DBMS di avvicinare il mondo

degli oggetti a quello relazionale, sia cercando di realizzare un vero e

proprio “matrimonio” fra la struttura del modello relazionale con quello ad

oggetti, sia realizzando delle interfacce ad oggetti in modo tale che il DBMS

relazionale si presenti esternamente come un DBMS ad oggetti. Questa serie

d'interfacce o più propriamente di strumenti, proprio perché utilizzano il

comune concetto d'oggetto, risultano essere alla portata anche di una

utenza non prettamente specializzata. Tale utenza, infatti, può così ricorrere

ad un accesso ai diti aziendali senza l’ausilio di uno specialista.

5.2. Il modello orientato agli oggetti

Il modello orientato agli oggetti2 è stato elaborato nell’ambito delle ricerche

effettuate nel laboratorio di Palo Alto di Xerox in California negli anni ’70 e

nasce innanzi tutto come metodo di programmazione. Il modello orientato

agli oggetti e la progettazione orientate agli oggetti introducono un modo

diverso di realizzare software e di pensare le basi di dati che si avvicina di

multimediali non sarebbe possibile. E se questo semplice esempio lo immaginiamo calato nella realtà di una multinazionale, quale potrebbe essere una azienda produttrice di automobili, articoli di alta moda, si può immaginare quali scenari si possono dischiudere.”M. Del Corto :Interrogazioni non strutturate, Zerouno 1/1995 2 Non esiste un vero e proprio modello ad oggetti come può esserlo tanto per fare un esempio quello relazionale in campo database ma più propriamente si parla di “un insieme di tecniche e di idee che, riunite assieme realizzano un particolare modo di progettare software e basi di tati” S.Polini Introduzione alla programmazione orientata all’oggetto, Mcmicrocomputer 11/90. In modo particolare per quanto riguarda le basi di dati “....le basi di dati hanno bisogno di un opportuno modello dei dati, e, malgrado l’assenza di uno standard, è possibile raggruppare alcuni concetti del paradigma ad oggetti comunemente accettati in un insieme detto core model o modello di base” E.Bertino - L.D. Martino :Sistemi di basi di dati orientate ali oggetti”

236

Page 4: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

più alla realtà come la percepisce una persona comune3. L’elemento

centrale di questo modello sono gli oggetti che raccolgono in una sola entità

la struttura dei dati ed il loro comportamento. Questi oggetti possono

“vivere di vita propria” potendo essere combinati in un programma.

L’oggetto è una entità “schermata” che non può essere utilizzato in modo

diverso da quello voluto da chi lo ha progettato e verrà a costituire oggetti

più complessi combinandosi con altri oggetti. Infatti, con questo modello si

realizza quella che viene chiamata la modularità del software e il riutilizzo

del codice, cosa che nei linguaggi di tipo tradizionale non veniva permesso,

in quanto un programma tradizionale può essere visto come un insieme di

blocchi annidati in cui dati e procedure sono separati4. L’oggetto può definirsi come una entità astratta che gode di certe proprietà che

può essere manipolata in modi diversi definiti a priori5.I programmi eseguono i loro

calcoli trasferendo messaggi fra gli oggetti attivi, che corrispondono, nel computer,

alle entità nel mondo reale6.

Concetti significativi all’interno di questo modello sono quelli di

? astrazione

? oggetto

? incapsulamento

? classe

? ereditarietà

? polimorfismo.

3 Questo modo di concepire i software conduce sia ad un più diretto coinvolgimento dell’utente alla fase di progettazione del software stesso poiché i problemi si riconducono a concetti che sono di più facile comprensione per lo stesso sia a ad un più facile ed immediato utilizzo del software. Mahesh, Dodani, Hughes, Moshell : La programmazione OO parte 3, Byte 9/1989 4“Nei sistemi di programmazione tradizionali, dati e procedure sono entità separate ; il programmatore ha la responsabilità di applicare procedure attive a strutture dati passive e, spesso, di accertare che una procedura lavori correttamente con i tipi di dati a cui è applicata. Al contrario un sistema di programmazione orientata ali oggetti non vede un oggetto semplicemente come un dato passivo, ma come una combinazione del suo stato privato e dei metodi che lo manipolano.” D. Thomas :La programmazione OO parte 1 Byte 6/1989 5 C. Giustozzi Cos’è la OOP Mcmicrocomputer 11/1990 6 D. Thomas :La programmazione OO parte 1 Byte 6/1989.

237

Page 5: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Tutti questi concetti fondendosi insieme danno luogo ad un nuovo modo

di concepire la realizzazione del software e delle basi di dati che ha come

vantaggi quello di permettere una realizzazione modulare del software

tramite la composizione d'oggetti complessi a partire da oggetti più

semplici “discreti” (cioè che hanno vita propria) e di realizzare una

migliore riutilizzazione del codice. Tutto questo ha portato, ad esempio,

alla realizzazione d'ambienti caratterizzati da una grafica molto sviluppata

che ha permesso di realizzare un approccio più semplificato alle risorse

software ed hardware proprio per la presenza, anche visiva, d'oggetti che

sintetizzano in maniera più naturale i concetti, come l'uomo li percepisce

dalla realtà. Esempio lampante di questo nuovo modello è il grande

successo che hanno avuto le varie versioni di Windows e tutti i prodotti ad

esse legati, basati sulla realizzazione di un ambiente grafico estremamente

sviluppato che fanno degli oggetti l’elemento cardine del loro

funzionamento.

5.2.1. L’astrazione

L’astrazione è il concetto “principe” di tutti i modelli compreso quello ad

oggetti. Dell’astrazione abbiamo discusso diffusamente nel capitolo

dedicato alla progettazione concettuale affermando che si tratta di un

processo mentale attraverso il quale si evidenziano alcune proprietà e

caratteristiche in un insieme d'oggetti che si ritiene importante

escludendone altre che sono ritenute irrilevanti arrivando, poi, a definire

un nuovo oggetto che contiene in se tutte le proprietà considerate. Quindi,

tramite l’astrazione si determinano le caratteristiche di un oggetto e la sua

aggregazione in classi che, nel modello ad oggetti, hanno carattere

gerarchico.

238

Page 6: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

5.2.2. Oggetti ed incapsulamento

Uno degli elementi fondamentali del modello ad oggetti è quello che

riguarda la definizione di un oggetto. Questi oggetti sono costruiti per

avvicinarsi il più possibile a quella che è la concezione umana d'oggetto e,

quindi, per rendere i sistemi informatici più adatti a rappresentare il

mondo reale.

Negli oggetti che incontriamo tutti i giorni, non facciamo mai distinzione

fra gli elementi fisici di cui l’oggetto è costituito ed il loro comportamento7.

Elementi essenziali per la composizione di un oggetto sono i dati e i

metodi. I dati possono essere variabili o costanti o in generale informazioni,

mentre i metodi sono rappresentati dalle procedure, funzioni di

manipolazione e in generale operazioni che si possono compiere su di esso.

Nella programmazione tradizionale le strutture dei dati, che dovranno

contenere le informazioni, saranno inserite da una parte mentre le

procedure e le funzioni di manipolazione dall’altra. I programmi OO non

vengono organizzati in procedure che condivideranno dei dati “globali”,

cioè accorpati tutti insieme. Al contrario i dati vengono incapsulati con le

procedure che possono accedervi. Questo concetto è spesso chiamato astrazione dei

dati o programmazione modulare8.

Nome :Maurizio Cognome :Boghetto Via :Lavagnini n.23 matricola 14545...... ....... Cammina Mangia dorme studia ..........

Dati dello oggetto

Metodi (o operazioni) Dello Oggetto

Figura 5.1 Esempio di rappresentazione di un oggetto (istanza di una classe)

7 Si può pensare l’oggetto come un “tipo di dato astratto”. “Per tipo di dato astratto si intende, un tipo di dato che non venga caratterizzato semplicemente da valori che possono assumere variabili ad esso appartenenti ma anche da un insieme di operazioni”. Questo concetto espresso da Polini trova applicazione nell’inserire in strutture relazionali tipi di dati che non siano semplicemente alfanumerici ma anche dati di carattere più complesso come quelli, ad esempio di carattere multimediale. 8 D. Thomas, La programmazione OO - Bit 6/1989

239

Page 7: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Un oggetto è composto da una rappresentazione incapsulata delle caratteristiche fisiche di una entità ,cioè i dati, che viene definita stato

dell’oggetto e dei metodi (operazioni), applicabili allo stesso oggetto che ne

descrivono il comportamento. L’oggetto si presenta come un qualcosa che

ha una sua precisa identità autonoma dal resto del programma al quale si può accedere solo attraverso i metodi che questo permette di realizzare su

se stesso9. Non si può generalmente compiere una azione esplicita su di un

oggetto : si deve, invece, chiedere all’oggetto di eseguire su se stesso una

azione fra quelle che questo oggetto può fare. Incapsulamento è il termine

tecnico che esprime questa nuova situazione. Non è possibile usare

l’oggetto in modo diverso da quello voluto da chi lo ha progettato la cui

attività risulta schermata rispetto al programmatore che lo usa. L’obiettivo è

quello di separare l’utente dell’oggetto da chi lo realizza. L’utente

programmatore che usa l’oggetto non ha più conoscenza di come l’oggetto è

stato realizzato ma opera su di esso solo tramite delle operazioni messe a

disposizione da chi lo ha realizzato.

E’ possibile, in questo modo, modificare anche lo stato di un oggetto senza

che le applicazioni subiscano modifiche, poiché queste agiscono solo sui

metodi.

Tramite l’incapsulamento, quindi, si da un nome comune ad un insieme di

dati e di metodi per cui l’oggetto, che in questo modo viene definito

tramite un opportuno identificatore dello stesso, potrà porre a disposizione

sia i metodi che i suoi dati.

5.2.3. Le classi e l’ereditarietà

Una classe d'oggetti descrive un gruppo d'oggetti con la stessa struttura di

dati (attributi) e lo stesso comportamento (metodi). Persona, azienda,

9 “Incapsulare i dati significa, quindi, nasconderli, proteggerli, isolarli. In altre parole, le strutture dei dati anziché essere pubbliche e direttamente accessibili sono disponibili solo dai metodi predefiniti per quell’oggetto.”A. Comai, G. Marras : I relazionali e gli oggetti, Zerouno ,10/1995

240

Page 8: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

automobile sono esempi di classi d'oggetti. La determinazione delle classi è

una astrazione di classificazione che descrive le proprietà importanti

rispetto ad una applicazione ed ignora il resto.

Ogni classe definisce un insieme, che può essere anche infinito, di singoli

oggetti. Ogni oggetto è considerato una istanza della classe a cui

appartiene. Questa ha i propri valori per ogni attributo ma condivide con le

altre istanze della classe i nomi degli attributi e i metodi. Quindi, le

definizioni comuni come il nome della classe e il nome degli attributi sono

memorizzati una volta sola per classe così come i metodi sono scritti una

sola volta in modo che gli oggetti riutilizzino tutti lo stesso codice. Persona

Nome : Cognome : Età : Indirizzo : ....... Cammina Mangia dorme ..........

Classe Dati dello oggetto

Metodi (o operazioni) Dello Oggetto

Figura 5.2. esempio di rappresentazione di una classe.

Altri concetti importanti sono quelli d'aggregazione, generalizzazione ed

ereditarietà.

Le astrazioni d'aggregazione e generalizzazione permettono di organizzare

le classi in una struttura gerarchica in base a similitudini e differenze e

l’ereditarietà permette il riutilizzo del codice. In effetti, una classe può

ereditare metodi ed attributi da “superclassi” (cioè classi superiori ad essa),

aggiungendone altri che specificano meglio le peculiarità della propria

classe. Allo stesso modo metodi ed attributi possono essere ereditati da

“sottoclassi” (cioè classi inferiori a quella presa in considerazione).

241

Page 9: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti Persona Nome : Cognome : Età : Indirizzo : ....... Cammina Mangia dorme ..........

.......

Studente matricola 14545...... Anno di iscrizione in corso Fuori corso ....... studia ..........

Commerciante n. di partita IVA tipo di attività svolta ....... lavora ..........

Figura 5.3. Esempio di struttura gerarchica delle classi e d'ereditarietà. Le classi studenti

e Commerciante ereditano dalla loro superclasse Persona attributi e metodi che nella

loro rappresentazione non vengono citati. Invece, vengono evidenziati attributi e metodi

che sono caratteristici solo della specifica classe.

Nell’ambito della struttura gerarchica che si è creata vedremo che più si sale

verso il vertice di questa gerarchia e più le classi avranno un livello

d'astrazione maggiore. Per cui la classe al vertice avrà attributi e metodi che

sono comuni a tutte le classi sottostanti, le quali erediteranno questi

attributi e metodi aggiungendone di nuovi o “mascherandone” alcuni,

differenziandosi, così, dalle altre classi. Questo procedimento si ripeterà, in

questo modo, fra ogni classe e la sua superclasse fino al fondo della

gerarchia.

Si può anche definisce la superclasse come antenata e la sottoclase come

discendente. L’ereditarietà è, quindi, transitiva per un numero qualunque di

livelli, per cui una istanza di una sottoclasse è contemporaneamente

un’istanza di tutte le classi antenate10. L’eredità da una singola superclasse

10 “Nel modo di pensare comune noi tutti utilizziamo in modo intuitivo il concetto di astrazione ed ereditarietà : da una definizione base integriamo, ovvero ereditiamo le

242

Page 10: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

si chiama eredità singola, mentre l’eredità da più sottoclassi si chiama

eredità multiple11.

Mammiferi

Esseri umani Elefanti

Studenti Commercianti

Maurizio Paola DumboGiulio Piero

Figura 5.4. Esempio di gerarchia ereditaria. Esseri umani ed elefanti sono definiti come sottoclassi dei mammiferi, mentre studenti e commercianti sono sottoclassi degli esseri umani. I casi (cioè le istanze) sotto la linea tratteggiata sono raggruppati in classi, mentre le classi sopra la linea tratteggiata sono classificate in base alla loro superclasse.

5.2.4. Il polimorfismo

Il polimorfismo permette di definire in maniera diversa all’interno delle

classi discendenti i metodi utilizzati nelle classi antenate. Questa

operazione, detta anche mascheramento, serve, in generale, per mascherare

informazioni utili, dati e metodi, e aggiungiamo pio altri dati e funzioni.”L. Napolitano : OOP Perché , Bit 12/92. 11 “Per esempio supponiamo di dover rendere conto all’interno del sistema informativo dell’entità Assistenti che sono gli studenti senior più meritevoli a cui vengono affidate alcune docenze remunerate, sono quindi un po’ studenti e un po’ docenti. Possiamo definire la classe Assistenti facendole ereditare dati e metodi da entrambe le classi che devono essere già definite, Docenti e Studenti.” Guidi Dorbolò :Guida a SQL.

243

Page 11: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

in una classe una caratteristica di una sua superclasse definendo una

caratteristica con lo stesso nome la quale raffina, cioè modifica in parte, o

sostituisce la caratteristica della superclasse stessa che viene così

“mascherata”.

Figura 5.5 Ereditarietà e polimirfismo tra figure grafiche. Il metodo visualizza che viene

definito al vertice della gerarchia viene ripetuto anche nelle classi discendenti così come

ruota nella classe cerchio perché evidentemente le modalità del metodo implementato

nelle classi discendenti è diverso da quello della loro antenata (figura tratta da Modelli e

progetti Object Oriented di J. Rumbaugh M. Blama).

5.3. Messaggi e metodi

Solo i metodi di un oggetto hanno accesso al suo stato ed un metodo può

essere richiamato solo inviando un messaggio all’oggetto stesso. Un

messaggio descrive un’operazione che può essere applicata o subita dagli

oggetti di una classe, per cui avremo che un oggetto, tramite la definizione

dei metodi, tiene in se la capacità di effettuare una certa operazione (ad

esempio muoversi) ma deve essere richiamata all’esterno da un messaggio. 244

Page 12: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

La stessa operazione può essere applicata a classi diverse. Tale operazione si dice polimorfa poiché richiede forme diverse d'attuazione per classi

diverse12.

Quando un oggetto t riceve un messaggio m il metodo da seguire è

ricercato innanzitutto nella classe cui appartiene t. Se non esiste, il metodo

viene ricercato fra le superclassi a partire da quella immediatamente

superiore a t risalendo così la gerarchia fino a che il metodo non viene

trovato13.

5.4. Identificatori di oggetti OID (Object IDentificator)

L’importanza di un identificatore unico di un oggetto lo si ha soprattutto

nell’ambito delle basi di dati ad oggetti. In questo ambito ogni oggetto

(istanza) è identificato univocamente da un OID, il quale esplicita il fatto

che ogni oggetto ha una propria unica identità. L’uso degli OID permette

agli oggetti di condividere altri oggetti, e quindi rende possibile la

costruzione d'oggetti tra loro interconnessi. L’OID si differenzia dal

concetto relazionale di chiave. Una chiave è costituita da uno o più attributi

con la quale si identifica univocamente una tupla di una relazione. Molto spesso una relazione può avere più chiavi (chiavi candidate) e fra queste si

sceglierà una chiave come chiave della relazione detta chiave primaria. Per

mantenere correlazioni (o join) fra tuple di relazioni diverse vengono usate

chiavi esterne . Le chiavi esterne non sono, quindi, che attributi di una

relazione che vengono inseriti in un’altra per poter creare delle correlazioni.

Maggiore è il numero di questi attributi che costituiscono la chiave, e più il

sistema viene appesantito, risultando in questo modo inefficiente. Spesso si

12 “Se si invia il messaggio “disegno” ad un oggetto “Linea” se ne richiama il metodo di disegno ; inviando lo stesso messaggio ad un “Cerchio” si richiama un metodo diverso. Pertanto, per l’operazione disegno si ottiene sempre il corretto comportamento.” D. Thomas :La programmazione OO parte 1 Byte 6/1989 13 “Ad esempio l’istanza Andrea della classe Studente risponde al messaggio presentati usasndo il metodo definito nella classe Studente , mentre l’istanza Maria della classe Persona risponde allo stesso messaggio con il metodo definito nella classe Persona.” Albano :Sistemi per basi di dati a oggetti. FrancoAngeli 1995

245

Page 13: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

usano, proprio nel modello relazionale, chiavi brevi (come ad esempio il

codice fiscale, il numero del cliente) le quali non hanno un particolare

significato semantico ma risultano essere semplici identificatori di una

relazione e sono più efficienti proprio perché appesantiscono il sistema di

un minor numero d'attributi.

Gli OID del modello ad oggetti sono semplici identificatori di un oggetto

che non coincidono con uno o più attributi dello stesso ed in più l ’ OID è

unico nella intera base dei dati mentre una chiave è unica solo all’interno di

una relazione.

5.5. Eventi e stati

Un oggetto passa da uno stato ad un altro per mezzo d'eventi. Lo stato è un

intervallo di tempo e rappresenta l’insieme dei valori dei suoi attributi e dei

legami fra gli oggetti. L’effetto di un evento dipende dallo stato in cui si

trovava l’oggetto prima che quell’evento si verificasse14.

L’evento è un qualcosa che accade in un certo istante di tempo. Un evento

può precedere o seguire un altro evento oppure i due eventi possono non essere correlati. Due eventi non correlati si dicono concorrenti : essi non si

influenzano l’un con l’altro.

Un evento è una trasmissione d'informazioni, quindi un messaggio, inviato

ad un oggetto. Ad esempio, un tipo d'evento può essere quello generato da

un mouse o da una tastiera con il quale si arriva in un campo oppure si

modifica il valore di una tabella di una base di dati (un altro esempio può

essere una chiamata telefonica)15.

14 “....un oggetto ha una serie di operazioni e uno stato locale condiviso che “ricorda” l’effetto delle operazioni. Il valore risultante da una operazione su di un oggetto può dipendere sia dallo stato dell’oggetto, sia dagli argomenti dell’operazione stessa. Lo stato di un oggetto serve da memoria locale, condivisa dalle operazioni svolte su di esso. In particolare, altre operazioni eseguite in precedenza possono avere effetti sul valore reso da una certa operazione. Un oggetto può apprendere dall’esperienza, memorizzando nel suo stato l’effetto cumulativo della sua esperienza - la sua storia di invocazioni.” P. Wegner La programmazione OO parte 2 , Byte 7/8 - 1989 15 “L’input che genera un evento, di qualsiasi tipo, viene controllato da un sistema di gestione dell’interfaccia (Ad esempio Windows) e tradotto in una serie di eventi. Il tipo di

246

Page 14: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Le operazioni che possono compiere gli oggetti sono di due tipi : 1. Attività. Con attività si indica una operazione che impegna un oggetto

per un certo tempo. Un’attività è associata ad uno stato. Le attività

comprendono operazioni continue (visualizzare una immagine in uno

schermo) o di tipo sequenziale (esecuzione di un calcolo) che implicano

l’impiego di tempo. 2. Azione. Un’azione è una operazione istantanea che viene quindi

associata ad un evento. Ad esempio, il cliccare col mouse su di una icona

dello schermo.

Figura 5.6 Esempio di serie concatenata di Stati ed eventi relativi ad una conversazione

telefonica (figura tratta da Modelli e progetti Object Oriented di J. Rumbaugh M. Blama).

evento generato dipende dall’oggetto visivo che lo riceve e quindi se si tratta di un campo di una tabella potremmo ipotizzare eventi del tipo : arrivo in un campo, uscita da un campo, selezione del testo, modifica del valore.” P. Ciccone : Programmazione guidata ad eventi, Mcmicrocomputer 6/1992

247

Page 15: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

5.6. Verso gli Object - Relational DBMS

Le prime applicazioni della tecnologia DBMS sono state realizzate in aree di

tipo gestionale ed amministrativo. Questo fatto ha influenzato moltissimo i

principi d'organizzazione dei DBMS che sono stati caratterizzati da modelli,

fra cui anche il relazionale, dotati di una limitata capacità espressiva. Le

attuali strutture dei DBMS relazionali ( i quali dominano il mercato) sono

messe in crisi dalla loro limitata capacità di trattare un nuovo tipo di dato

come quello multimediale, cioè da tipi di dati di carattere complesso.

Questi dati non sono direttamente riconducibili a strutture tabellari del

modello relazionale. Ad esempio, se si vuole rappresentare un oggetto

complesso nel modello relazionale occorre suddividere lo stesso in un

ampio numero di tuple per poi dover eseguire numerose operazioni di join

per poter ricostruire l’oggetto quando si rende necessario accedere ad esso.

Un altro esempio ci viene offerto da M. Del Corto nella rivista informativa

Zerouno : Nel caso d'informazioni multimediali (per esempio immagini o insiemi di

fotogrammi di una sequenza video) non è possibile effettuare l’interrogazione con i

sistemi query tradizionali. Sarebbe infatti facile e comunque non agevole formulare

una interrogazione del tipo :

SELECT *

FROM Tabella1

WHERE (colore R/G/B =(164/255/073) AND (forma circle (xxx,yyy,rrr) AND...).

e ancora meno una interrogazione come :

SELECT *

FROM Tabella1

WHERE (colore = (verde - giallo) AND (forma = cerchio con centro in xxx, yyy e

con raggio rrr) AND ...).

che peraltro è semanticamente uguale alla precedente.

248

Page 16: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Si immagini la difficoltà di proseguire questo tipo d'approccio quando la figura da

cercare non è un cerchio ma un ingranaggio, un cilindro, un edificio, un volto

umano, un quadro, un modello di un componente e così via.

Il modello dei dati, contenente questi oggetti di carattere estremamente

complesso, deve essere capace di esprimere quelle che vengono dette

relazioni statiche ( cioè le struttura dei dati oppure, per usare un termine

legato all’ambiente Object Oriented, il suo stato), ma anche il

comportamento che gli oggetti hanno e i vincoli cui essi devono obbedire.

Inoltre,occorre che questi oggetti si evolvano nel tempo.

Infine, il modello dovrebbe permettere all’applicazione di poter definire i

propri tipi di dati, con le relative operazioni e di utilizzarli nella definizione

di altri tipi di dati. Non è pensabile che il DBMS preveda tutti i possibili tipi

di dati che saranno necessari ad ogni possibile applicazione.

Questo particolare modo di concepire l’oggetto pone, quindi, in crisi la

concezione tradizionale del RDBMS basata sulla indipendenza della base

dei dati dagli applicativi.

L’oggetto complesso è, in pratica, un oggetto che tiene in se le

caratteristiche dell’incapsulamento, della ereditarietà e del polimorfismo

tipici della filosofia OO.

Per cui, si potrebbe pensare che il futuro dei DBMS possa essere dominato

dagli OODBMS (Object Oriented DBMS) e dal modello orientato agli

oggetti.

Ma la loro affermazione deve fare i conti con alcuni problemi fra cui :

1. La stragrande massa delle applicazioni delle aziende poggia su

architetture di dati strutturate in modo relazionale (e in misura minore

gerarchico)

2. Il modello OO (Object Oriented) nel campo dei DBMS non poggia

ancora su fondamenti teorici rigorosi come quelli del modello

relazionale di Codd.

249

Page 17: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Nell’immediato futuro una strada praticabile potrebbe essere quella di

arricchire il modello relazionale incorporandovi alcune idee provenienti

dal mondo degli oggetti.

Si conserverebbero, così, i patrimoni aziendali relazionali realizzando una

struttura capace sia di contenere in se tipi di dati (cioè oggetti) di carattere

complesso sia di mantenere una certa rigorosità e linearità dal punto di

vista teorico.

Questa tendenza viene confermata dall’interessamento dimostrato da

alcuni teorici del modello relazionale come C. Date e H. Darwen che hanno

pubblicato in tal senso un documento (The third Manifesto) in cui si cerca

di realizzare questo incontro.

Questi studiosi stanno lavorando per estendere il loro modello,

incorporandovi i principi essenziali dell’orientamento ad oggetti e più

precisamente sulla (come affermano A.Comai e G. Marras in un articolo su

Zerouno) :

? integrazione fra dati e operazioni

? gestione di tipi di dato complessi

? ereditarietà e polimorfismo.

Nel modello OO l’oggetto è una rappresentazione incapsulata di dati ed

operazioni. Questo fatto mette in crisi la distinzione tradizionale tra

DBMS da un lato e programmi dall’altro. In effetti, la teoria relazionale

classica non prevede la definizione d'operazioni a livello di DBMS ma solo

di dati.

L’elemento centrale della possibile unione, secondo quanto affermano Date e Darwen, fra relazionale e l’OO sembra essere il concetto di dominio.

Fondamentalmente il dominio identifica un insieme di valori ammissibili

dai quali uno o più attributi traggono i loro valori concreti nelle tuple di

una relazione. Un esempio di dominio può essere quello (dato da

Zerouno) relativo alle provincie italiane :questo dominio identifica tutte le

provincie legalmente esistenti a tutt’oggi in Italia. Ogni attributo che faccia

250

Page 18: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

riferimento a quel dominio accetterà esclusivamente solo uno dei valori

ammissibili. Legare un attributo ad uno specifico dominio significa definire un criterio

d'accettabilità sui valori che esso può assumere, e definire anche a quali operazioni

possano essere sottoposti quei valori (non è possibile utilizzare una provincia

italiana come fattore di moltiplicazione)16.

Il concetto di dominio è assimilabile a quello di tipi di dati nei linguaggi di

programmazione. Stessa cosa si può dire per il linguaggio SQL (nel

capitolo dedicati all’ SQL si è visto, ad esempio, come i domini possono

coincidere con i tipi di dati CHARACTER, NUMERIC, DATE, ecc..).

Il modello relazionale prevede una definizione esplicita dei domini, e

l’associazione di ciascun attributo ad uno di tali domini.

I valori inclusi in un dominio (che possono essere assunti a livello

d'attributo, di colonna o di tabella) devono essere atomici. Devono, cioè,

costituire una unità non decomponibile per il DBMS. Pero, al loro interno

possono essere di complessità arbitraria (es. documenti, immagini). Il

dominio, quindi, non è altro che un tipo di dato come ad esempio

NUMERIC in SQL che si presenta esteriormente come un tutt’uno.

L’idea chiave del manifesto (di Date e Darwen) è la seguente :I domini del mondo

relazionale e le classi degli oggetti nel mondo OO sono la stessa cosa. Per essere

precisi sono entrambi “tipi di dato”......17 . I tipi di dati vengono definiti in

sette punti (riportati in nota a fondo pagina) i quali non fanno altro che

16 A. Comai G. Marras : I relazionali e gli oggetti, Zerouno 10/1995 17 “.....dove con il termine tipi di dato intendiamo tutto quello che segue : 1. Sia tipi di dato definiti a livello di sistema che tipi di dato definibili dall’utente. 2. una parte della definizione di ogni singolo tipo di dato consiste nella specifica

dell’insieme di tutti i valori ammissibili per quel tipo di dato. 3. Tali valori possono essere di complessità arbitraria. 4. La rappresentazione interna di tali valori è nascosta all’utente. 5. Tali valori sono modificabili unicamente tramite operatori definiti per il tipo di dato in

questione. 6. Alcuni tipi di dato possono essere sottotipi di altri supertipi. 7. Se B è un sottotipo di A, allora tutti gli operatori che si applicano ad A si applicano

anche a B (ereditarietà), ma B può avere propri operatori che non si applicano ad A.” C. Date H. Darwen : Il terzo manifesto, traduzione integrale di “The third Manifesto” di Zerouno del 10/1995

251

Page 19: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

delineare le caratteristiche di un oggetto che possiede i tre requisiti

dell’incapsulamento, ereditarietà e polimorfismo.

Attualmente, però, quasi nessun DBMS fornisce una precisa definizione

dei domini. I prodotti attuali (punto N.2 del Manifesto) gestiscono i tipi di

dati definiti dal sistema e non è possibile per l’utente definirne di propri e

più sofisticati.

5.7. Esempio di ORDBMS (Realtional Object DBMS)

Un gestore di database OR già presente sul mercato è l’UniSQL con un

proprio linguaggio SQL detto UniSQL/X. Occorre preliminarmente

indicare che i termini del mondo relazionale e di quello ad oggetti possono

essere usati in maniera intercambiabile in questo particolare contesto :

Relazionale Object Relational

tabella Classe vista classe virtuale

colonna attributo

riga istanza procedura metodo

gerarchia di tavole gerarchia di classi

Si considera una ipotetica tabella Articoli, la quale può essere considerata

come una classe . Il tipo di dato di una colonna della classe (tabella)

Articoli può essere una classe.

Per esempio potrebbe avere un attributo chiamato Di_categoria il cui tipo

è la classe Categoria.

CREATE TABLE Articoli

(Cod CHAR (4)

Descrizione CHAR (40)

Aspetto CHAR (50)

Prezzo NUMERIC,

IVA NUMERIC 252

Page 20: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Spese di trasporto NUMERIC

Di__categoria Categorie

Cod Descrizione Aspetto Prezzo IVA Spese di trasporto Di_categoria

Cod Descrizione

OID

OID

Articoli

Categorie

Le due tabelle sono state composte in classi ed ogni istanza della classe è

identificata da un OID, il quale è unico in tutta la base dei dati eliminando

la necessità di introdurre chiavi esterne e di realizzare, quindi, delle join.

Nella classe Articoli l’OID identifica con certezza la riga, ovvero l’istanza

correlata della classe Categorie, poiché i rispettivi OID della classe

Categorie sono inseriti nell’attributo Di_categoria. In questo modo per

ottenere la descrizione di ogni articolo e la rispettiva categoria si può

scrivere.

SELECT Descrizione, Di_categoria. Descrizione

FROM Articoli

invece lo stesso risultato con una query tradizionale si sarebbe ottenuto

così :

SELECT Articoli. Descrizione, Categorie. Descrizione

FROM Articoli, Categorie

WHERE Articoli. Cod =Categorie. Cod

5.7.1. Collezione

Ad un stesso attributo possono essere assegnati più valori (insiemi, gruppi

ripetuti). Le collezioni sono utili per ridurre la necessità di ulteriori tabelle

di descrizione e delle relative join. Ad esempio, nella classe Articoli un

articolo potrebbe avere aspetti diversi :

253

Page 21: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

rosso, bianco, verde, ecc.

Descrizione Aspetto

Birra Scura Bionda Rossa

Cod Descrizione Aspetto Prezzo IVA Spese di trasporto Di_categoria

Cod Descrizione

OID

OID

Articoli

Categorie

5.7.2. Incapsulamento

Una classe/tabella può contenere metodi con cui interrogare e manipolare

le istanze di una classe. Ad esempio :

CREATE TABLE Articoli

(Cod CHAR (4)

Descrizione CHAR (40)

Aspetto CHAR (50)

Prezzo NUMERIC,

IVA NUMERIC

Spese di trasporto NUMERIC

Di__categoria Categorie)

METHOD Calcolo_prezzo

Il metodo Calcolo_prezzo determina il prezzo dell’articolo considerando il

prezzo, l’IVA e le spese di trasporto. Una possibile query può essere :

SELECT Descrizione, Calcolo_prezzo

FROM Articoli

In questo caso la query darà il prezzo totale insieme alla descrizione

dell’articolo. Questo in verità l’avrei potuto ottenere nella query anche

254

Page 22: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

tramite una normale espressioni di addizione fra le colonne coinvolte nel

calcolo del prezzo totale. Esistono però delle operazioni più complesse in

cui solo inserendo metodi si sarebbero potute realizzare.

5.7.3. Ereditarietà e polimorfismo.

Ad una classe tabella può essere applicata l’ereditarietà. Ad esempio una

classe Articoli_estero può essere discendente della classe Articoli. Può,

quindi, ereditarne gli attributi e i metodi ed aggiungerci un attributo

specifico che la specializza. Ad esempio :

CREATE TABLE Articoli_estero

(tassa_import NUMERIC (3))

MEHOD Calcolo_prezzo

AS CHILD OF Articoli

Avremo in questo caso che la nuova classe Articoli esteri erediterà tutti gli

attributi della classe articoli, inserirà un nuovo attributo che è quello

relativo alla tassa di importazione e dovrà anche per questo ridefinire il

metodo di calcolo del prezzo.

In caso di eredità multipla una tabella figlio erediterà i metodi e gli

attributi delle classi antenate inserendo attributi loro specifici e

ridefinendo i metodi che sono diversi.

5.8. RDBMS orientati agli oggetti

Nell’attesa che i sistemi orientati agli oggetti e quelli relazionali si fondino

per realizzare un unico modello di database che possa integrare

efficacemente i dati di tipo multimediale, sul mercato sono apparsi da

qualche anno dei prodotti relazionali che utilizzano quella che alcuni

chiamano una “tecnologia di copertina”.

255

Page 23: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Questi prodotti, destinati a PC o a server, si presentano esternamente come

DBMS ad oggetti mentre il “motore”, cioè il database, è sempre un

relazionale con capacità di contenere non solo campi alfanumerici, cioè tipi

di dati semplici, ma anche di carattere più complesso (BLOb, Memo, ecc..).

Inoltre, tramite le stored procedure e i trigger s'inseriscono nel DBMS

delle istruzioni, e quindi delle operazioni, che realizzano un'integrazione

di componenti funzionali nel DBMS . Queste, per molti versi, sono

analoghe ai metodi del modello OO18.

Per rappresentare tali prodotti si può pensare ad uno schema a tre livelli :

nel più basso risiede un database relazionale, progettato con le consuete

tecniche di normalizzazione. Nel livello intermedio risiede, invece, un

insieme d'oggetti.

Questi vedono il database relazionale come un oggetto base di conoscenza da

cui prelevano informazioni e le mettono a disposizione dei vari applicativi,

i quali risiedono in un livello più alto. Quindi, chi opera con questi

particolari prodotti RDBMS lo fa attraverso un insieme di tools, i quali

rappresentano un'interfaccia e fanno vedere la base dei dati come un

“oggetto base di conoscenza”. Tutto questo è possibile tramite

l’implementazione di una libreria d'oggetti realizzati con un particolare

linguaggio ad oggetti.

In questo modo una tabella può essere vista come un oggetto al quale

possono essere applicate tutta una serie d'operazioni previste nel modello

relazionale.

Questi strumenti, che costituiscono delle interfaccia rispetto al motore

relazionale , possono essere utilizzati per la creazione di tabelle e di

database oppure possono facilitare la manipolazione dei dati e la

realizzazione delle query tramite l’utilizzo del QBE grafico.

18 Le stored procedure sono un insieme di istruzioni che vengono eseguite soltanto su diretta richiesta dell’utente, il quale al momento del suo richiamo, può passare tutta una serie di parametri. I triggers, invece, possono essere considerate delle stored procedure che vengono attivate in modo autonomo dal DBMS al verificarsi di un evento, per esempio l’inserimento di una riga in una tabella.

256

Page 24: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Inoltre viene data la possibilità di costruire delle schede e dei report,

ponendo a disposizione dell’utilizzatore tutta una libreria di oggetti che

questi può comporre a suo piacimento secondo quelle che sono le sue

necessità.

5.8.1. I tipi di dato di un RDBMS orientato agli oggetti.

In aggiunta ai tradizionali campi numerici, alfanumerici, e datari i vari

prodotti DBMS come Paradox, Access e Dbase, ad esempio, dispongono di campi memo, grafici, BLOb ed OLE.

Questi tipi di campo supportati permettono, praticamente, la

memorizzazione di qualsiasi informazione sia essa grafica, multimediale,

sonora o binaria fino ad un numero elevato di MB (ad esempio, per Access

e Paradox un massimo di 256 MB per campo). Generalmente, però, questi

dati vengono trattati come un tutt’uno senz’altra possibilità se non quella

di memorizzarli e di leggerli, ma non di interrogarli.

I campi memo sono campi di lunghezza variabile contenente testo, mentre

i campi grafici contengono immagini in diversi formati file (BMP, PCX,

JPEG, ecc..). I campi BLOb (Binary Large Object) permettono la

memorizzazione di qualsiasi informazione come audio, immagini in

movimento e documenti. Un particolare tipo di campi BLOb sono i campi

OLE in quanto, oltre che all’informazione, memorizzano anche le

informazioni relative all’ applicazione OLE server che ha generato il file.

Queste informazioni prendono il nome di OLE (Object Linking and

Embedding)19.

19 OLE permette la creazione di documenti composti che integrano oggetti provenienti da applicazioni differenti. OLE prevede una applicazione (OLE client) che incorpora o si collega ai dati e alle informazioni di un’altra informazione (OLE server). Incorporando i dati di un OLE server in un OLE client, il documento composto che ne deriva contiene una copia dei dati. In questo modo è possibile effettuare modifiche sui dati incorporati lasciando inalterato l’originale e rilasciare applicazioni o documenti composti senza preoccuparsi di agganciare file esterni. Collegando le informazioni , il documento composto contiene esclusivamente i riferimenti relativi all’applicazione server e non ai dati mentre le modifiche apportate alle applicazioni si riflettono su tutti i collegamenti. Una

257

Page 25: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

5.8.2. Gli strumenti

Questi strumenti si basano su di una tecnologia ad oggetti per semplificare

alcune operazioni che rientrano in ambito relazionale e offrono al tempo

stesso un insieme di applicativi che fanno leva sempre sull’utilizzo della

base dei dati. La finalità ultima di questi strumenti è quella di avvicinare il

più possibile l’utenza non specializzata, composta soprattutto da chi

all’interno di una impresa ha necessità di modellare i dati. Si potrà in

questo modo ottenere le informazioni volute senza ricorrere

all’intermediazione di uno specialista. Una di queste categorie è senz’altro

quella del manager che attraverso questi semplici strumenti può ricorrere

ad una interrogazione della base dei dati aziendali in maniera semplice ed

in completa autonomia. Un DBMS può contenere tutto un pacchetto di

strumenti i quali hanno gli scopi più svariati. Fra gli strumenti senz’altro

presenti in questi tipi di DBMS ci sono quelli per la creazione delle basi di

dati e di tabelle, definendo i campi e le regole di integrità e di sicurezza

che le caratterizzano.

applicazione, quindi, in grado di lavorare come client OLE può incapsulare qualsiasi tipo di dato senza sapere tutto sui formati dati degli oggetti da incapsulare. Per maggiori informazioni al riguardo consultare : ? Bit del gennaio e febbraio 1993 :OLE, teoria e pratica parte I e parte II ? R. Jennings : Access 2 per Windows, Jackson ? Guida di Windows 3.11 di Microsoft

258

Page 26: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Figura 5.7. Finestra di struttura tabella di Access 2. Attraverso questo strumento viene definita la struttura di una tabella, indicando i campi che la formano, i tipi di dati che contengono, la chiave primaria della tabella ecc..

Figura 5.8. Finestra Relazioni di Access 2. Attraverso questo strumento si semplifica la creazione delle relazioni fra le tabelle considerandole come degli oggetti. Si possono stabilire le relazioni tra le tabelle collegandole fra loro tramite una linea, naturalmente nel rispetto della presenza di chiavi esterne che permettano ciò. Inoltre, quando si definiscono le relazioni si può specificare se rafforzare l’integrità referenziale e se consentire gli aggiornamenti o le cancellazioni a cascata.

259

Page 27: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Altri strumenti sono quelli per la visualizzazione delle tabelle che vengono

viste come oggetti in cui si possono manipolare i dati inserendoli

direttamente nei campi (la cui struttura, evidentemente è già stata definita

precedentemente).

Le query by Example sono uno strumento utile per la definizione dei dati

da estrarre da una o più tabelle senza far uso, ad esempio, del linguaggio

SQL. Tutto questo avviene tramite la selezione di oggetti tabelle e di

oggetti colonne che vengono selezionati tramite tastiera o mouse.

Verranno specificati in appositi campi le varie condizioni che in SQL sono

specificate dalla clausola WHERE. Queste query grafiche verranno

trasformate in una interrogazione SQL per avere accesso ai dati (Access).

Figura 5.9. Access2. QBE grafiche.

Altri importanti strumenti sono quelli delle form (ovvero le “Schede”) e i

report. Questi strumenti permettono sia di inserire i dati, sia di

260

Page 28: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

rappresentarli in maniera più significativa per l’utilizzatore, recuperando i

dati che servono dalle tabelle e dalle query, corredandoli, nel caso dei

report, di grafici a due o tre dimensioni.

Tali strumenti, per mezzo di un apposito linguaggio di programmazione

ad oggetti, mettono a disposizione tutta una libreria di oggetti (bottoni,

menu a tendina ecc..) che possono essere “composti” dall’utilizzatore su di

uno schermo per realizzare una particolare struttura delle form o dei

report. Per questi oggetti è possibile scegliere uno dei metodi previsti per

quell’oggetto. I metodi sono piccole porzioni di codice che determinano il

comportamento di un oggetto i quali sono legati o meno all’avverarsi di un

particolare evento ( ad esempio quando viene premuto un bottone sullo

schermo con il mouse viene eseguito il codice legato al metodo

“premibottone”).

Nell’ambito della creazione delle tabelle, delle schede o dei report l’utente

meno esperto può essere guidato da particolari sistemi di

autocomposizione che facilitane la realizzazione delle stesse limitandone,

però, il un certo qual modo il raggio d’azione.

261

Page 29: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Figura 5.10. Access 2. Struttura e visualizzazione di una scheda. Attraverso questa scheda

è possibile inserire i dati tramite bottoni, menù a tendina e visualizzarli. Ogni scheda è

una tupla. Come si vede nella finestra proprietà si può scegliere quale metodo applicare.

262

Page 30: I RDBMS e gli Oggetti - Boma Software · I DBMS di tipo relazionale puro mostrano sempre più una certa limitatezza . rispetto a quelle che sono le nuove esigenze che si fanno avanti

Capitolo quinto I RDBMS e gli oggetti

Figura 5.11. Access 2. Struttura e visualizzazione di un report.

263