Appunti per Scuola e Università
humanisticheUmanistiche
Appunti e tesine di tutte le materie per gli studenti delle scuole medie riguardanti le materie umanistiche: dall'italiano alla storia riguardanti le materie umanistiche: dall'italiano alla storia 
sceintificheScientifiche
Appunti, analisi, compresione per le scuole medie suddivisi per materie scientifiche, per ognuna troverai appunti, dispense, esercitazioni, tesi e riassunti in download.
tecnicheTecniche
Gli appunti, le tesine e riassunti di tecnica amministrativa, ingegneria tecnico, costruzione. Tutti gli appunti di AppuntiMania.com gratis!
Appunti
tecniche
AeronauticaAgricoltura agrariaArchitetturaAutomobileCostruzione
Demografia urbanisticaElettronica elettricitaForensicsIngegneria tecnicoVela


AppuntiMania.com » Tecniche » Appunti di Aeronautica » Progettazione di una base di dati per la gestione di una issione Spaziale

Progettazione di una base di dati per la gestione di una issione Spaziale




Visite: 2178Gradito:apreciate stela [ Grande appunti ]
Leggi anche appunti:

Progettazione di una base di dati per la gestione di una issione Spaziale


Progettazione di una base di dati per la gestione di una issione Spaziale 1.
immagine di categoria



Scarica gratis Progettazione di una base di dati per la gestione di una issione Spaziale

Progettazione di una base di dati per la gestione di una issione Spaziale


1. Descrizione e specifiche

1.1 Specifiche sui dati


Si vuole realizzare una base di dati per un veicolo destinato a una missione spaziale su Marte.



Il veicolo effettua dei rilevamenti utilizzando uno degli strumenti di cui è equipaggiato.

Un rilevamento può essere costituito dal prelievo di un campione oppure dalla registrazione di una immagine. Per quanto riguarda i campioni si vuole tenere traccia della loro composizione chimica e della fase in cui si trovano all'atto del prelievo. Per le immagini, si vuole tenere traccia del formato in cui è immagazzinata l'immagine e della data in cui (eventualmente) l'immagine è stata trasmessa a Terra. Ogni rilevamento è caratterizzato da un codice. Per ogni rilevamento si vuole tenere traccia della data e ora, delle coordinate, nonché dell'area in cui è stato effettuato. Ogni area è contrassegnata da un codice e da un nome simbolico. Ogni rilevamento è effettuato mediante uno degli strumenti a bordo. Ogni strumento è contraddistinto da un codice e da un nome simbolico, nonché da una breve scheda tecnica. Per ogni strumento si vuole tenere traccia delle eventuali avarie riscontrate. Per ognuna di esse si richiede di tenere traccia della data in cui si è verificata, del codice, del nome, dell'indice di gravità e dell'attuale stato (es. risolta).

1.2 Specifiche sulle operazioni


O1) Registrazione di un rilevamento (frequenza: 10 al giorno);

O2) Registrazione di una avaria (frequenza: 50 al mese);

O3) Modifica dello stato di uno strumento (frequenza: 50 al mese);

O4) Stampa scheda tecnica di uno strumento (frequenza: 5 al giorno);

O5) Stampa avarie occorse ad uno strumento (frequenza: 1 alla settimana);

O6) Stampa stato attuale degli strumenti (frequenza: 10 al giorno);

O7) Stampa tutti i prelievi effettuati in una certa area (frequenza: 3 al giorno);

O8) Stampa tutte le immagini rilevate in una certa area (frequenza: 3 al giorno);

O9) Stampa tutti i prelievi effettuati, con indicazione dell'area e della data (frequenza: 3 al giorno);

O10) Stampa tutte le immagini rilevate, con indicazione dell'area e della data (frequenza: 3 al giorno);

O11) Stampa delle avarie presentate da uno strumento, con indicazione dell'area e della data (frequenza: 2 al giorno);

O12) Stampa le avarie che si sono verificate nel corso di un rilevamento, con indicazione dell'area del rilevamento (frequenza: 3 al giorno);

O13) Inserimento di un nuovo tipo di avaria (1 al mese);

O14) Inserimento di una nuova area (1-2 al giorno);


2. Analisi dei requisiti


In ciò che segue viene riportato brevemente un riepilogo sulle specifiche del progetto, seguito da una breve descrizione dei termini citati.


Dati di carattere generale

Si vuole realizzare una base di dati da utilizzare nell'ambito di una missione spaziale su Marte. La suddetta base dati deve mantenere informazioni riguardanti i risultati dei rilevamenti effettuati nel corso della missione. Deve inoltre tenere memoria di tutti gli strumenti utilizzati nel corso di ciascun rilevamento e delle eventuali avarie che hanno presentato. Per ogni strumento è possibile visualizzare la corrispondente scheda tecnica.


Dati sul Rilevamento

Un rilevamento può consistere nella registrazione di una immagine, nel prelievo di un campione oppure entrambe le operazioni simultaneamente. In ogni caso, esso è identificato da un codice univoco. Altri parametri caratteristici di un rilevamento sono la data e l'ora in cui è stato effettuato e le sue coordinate.


Dati sullo Strumento

Gli strumenti sono apparati che vengono utilizzati per effettuare i rilevamenti. Essi sono identificati da un codice univoco. Ad ogni strumento è associato un nome. Per ciascuno strumento è indicato, inoltre, lo stato di funzionamento attuale, ovvero 'attivo' oppure 'in avaria'.


Dati sul Campione

Un campione di materiale reperito a seguito di una operazione di prelievo è caratterizzato, oltre che dai parametri riguardanti l'entità padre Rilevamento, dalla sua composizione e dalla fase nel momento in cui è stato prelevato.


Dati sulla Immagine

Un immagine rilevata in una operazione di rilevamento è caratterizzata, oltre che dai parametri riguardanti l'entità padre Rilevamento, dal suo formato e, opzionalmente, dalla data in cui essa è stata inviata a terra


Dati sull'Area

Un'area geografica, all'interno della quale viene effettuato un rilevamento, è identificata univocamente da un codice. A ciascuna area è associato, inoltre, un nome.


Dati su Avaria

Una entità avaria è identificata univocamente da un codice. A ciascuna avaria è associato anche un nome. Ad ogni avaria, che si è verificata in relazione ad un particolare strumento, è associato un indice di gravità e la data in cui si è verificata.


Dati su Scheda Tecnica

Mette in relazione l'insieme degli strumenti utilizzati per i rilevamenti con l'insieme di tutti i parametri tecnici. E' una relazione molti a molti. La relazione fra uno strumento e una caratteristica tecnica ad esso associata, è caratterizzata da un valore ben definito.





In tabella 1 viene riportato un glossario dei termini più rilevanti che si evincono nell'ambito delle specifiche fornite.


Glossario dei termini

Termine

Descrizione
Sinonimi
Termini collegati




Rilevamento

Rilevamento effettuato dal veicolo spaziale, utilizzando opportuni strumenti. Può consistere nella registrazione di una immagine oppure nel prelievo di un campione


Prelevamento campione, Acquisizione immagine,

Strumento, Area

Strumento

Uno degli strumenti facenti parte del veicolo spaziale, utilizzato per fare rilevamenti


Avaria, Rilevamento

Campione

Campione di materiale reperito dal veicolo spaziale a seguito di una operazione di prelievo


Rilevamento

Immagine

Immagine rilevata dal veicolo spaziale nel corso di una operazione di rilevamento


Rilevamento

Area

Area geografica in cui viene effettuato un rilevamento


Rilevamento

Avaria

Stato di malfunzionamento eventualmente riscontrato in uno strumento


Strumento

Scheda tecnica

Insieme di valori necessari per la descrizione delle caratteristiche tecniche di un dato strumento


Strumento


Tabella 1: Glossario dei termini


3. Progettazione concettuale


Sulla base dell'analisi dei requisiti del sistema è stata effettuata una prima progettazione concettuale, che viene riportata in Figura 1.In essa è stata individuata una entità "rilevamento". Tale entità è stata suddivisa in due entità figlie, "campione" e "immagine", tramite una relazione di generalizzazione totale e sovrapposta in quanto un rilevamento può consistere nel prelievo di un campione, nell'acquisizione di una immagine oppure in entrambe le operazioni simultaneamente.

E' stata creata un'entità "strumento", la quale identifica i diversi strumenti disponibili sul veicolo per effettuare i rilevamenti. Le entità "strumento" sono in relazione con le entità "rilevamento"; la relazione indica quali strumenti vengono utilizzati nei diversi rilevamenti.

L'entità "avaria" descrive le caratteristiche delle avarie che eventualmente si possono verificare in uno o più strumenti nel corso di un rilevamento. La relazione fra le entità "avaria" e "strumento" pone in condizione di sapere se un determinato strumento ha subito un'avaria nel corso di un rilevamento e, in caso affermativo, di definire quali sono state le caratteristiche dell'avaria stessa.

La specificazione delle caratteristiche tecniche degli strumenti è stata realizzata creando una nuova entità, chiamata "parametro", che definisce il nome ed una descrizione di tutti i parametri tecnici che competono a tutti gli strumenti utilizzati. Ogni strumento è in relazione con uno o più parametri che nel loro insieme ne definiscono le caratteristiche tecniche. Ciascun parametro è valorizzato a seconda dello strumento cui si riferisce, attraverso la specificazione dell'attributo "valore" della relazione "scheda tecnica". E' stata creata un'entità "area", che descrive le diverse aree in cui sono stati effettuati rilevamenti. Ciascuna entità "rilevamento" è in relazione con una entità "area" che rappresenta appunto la regione in cui il rilevamento è stato effettuato. In tabella 2 viene riportato un dizionario dei dati relativo alle diverse entità definite; in tabella 3 viene riportato un dizionario dei dati relativo alle diverse relazioni definite.





































Figura 1: schema E/R intermedio



Entità

Descrizione
Attributi
Identificatore




Rilevamento

Rilevamento effettuato dal veicolo spaziale, utilizzando opportuni strumenti. Può consistere nella registrazione di una immagine oppure nel prelievo di un campione

Codice, data/ora, coordinate

Codice

Strumento

Uno degli strumenti facenti parte del veicolo spaziale, utilizzato per fare rilevamenti

Codice, nome, stato

Codice

Campione

Campione di materiale reperito dal veicolo spaziale a seguito di una operazione di prelievo

Vedi Rilevamento, composizione, fase

Vedi Rilevamento

Immagine

Immagine rilevata dal veicolo spaziale nel corso di una operazione di rilevamento

Vedi Rilevamento, formato, data

Vedi Rilevamento

Parametro

Parametro che esprime una caratteristica tecnica relativa ad uno o piu strumenti utilizzati per effettuare rilevamenti. Ad esempio, temperatura di funzionamento, valore della resistenza meccanica ecc.

Codice, nome, descrizione

Codice

Area

Area geografica in cui viene effettuato un rilevamento

Codice, nome

Codice

Avaria

Stato di malfunzionamento eventualmente riscontrato in uno strumento

Codice, nome

Codice


Tabella 2: Dizionario dei dati - Entità



Relazione

Descrizione
Attributi
Entità partecipanti




Scheda tecnica

Mette in relazione uno strumento con uno o più parametri che ne definiscono le sue caratteristiche tecniche

Valore

Strumento, Parametro

Utilizzato

Mette in relazione una operazione di rilevamento con gli strumenti utilizzati per la sua realizzazione


Strumento, Rilevamento

Effettuato

Mette in relazione una operazione di rilevamento con l'area nel quale è stato effettuato


Area, Rilevamento

Verificata

Mette in relazione uno strumento con la descrizione delle eventuali avarie che ha riscontrato

Data, indice

Strumento, Avaria


Tabella 3: Dizionario dei dati - Relazioni


4. Analisi delle funzioni


In ciò che segue viene valutato il carico dell'applicazione che si deve realizzare. A tale scopo viene di seguito riportata una tavola dei volumi, in cui è specificato il numero atteso di istanze che i vari concetti (entità, relazioni e attributi) coinvolti nello schema E/R hanno in un funzionamento a regime dell'applicazione, e una tavola delle frequenze, contenente l'elenco di tutte le operazioni che possono essere eseguite sulla base di dati, e la frequenza con cui vengono eseguite.

Viene inoltre riportata una tavola degli accessi per ciascuna delle operazioni definite.

Supposto che la missione abbia la durata di 12 mesi e supposto che vengano effettuati 10 rilevamenti al giorno, allora si stima che nel corso della missione verranno effettuati 3650 rilevamenti. Nella maggior parte dei casi il rilevamento consisterà in entrambe il prelievo di un campione e l'acquisizione di una immagine.

Si suppone che il numero di strumenti complessivamente a disposizione per l'intera missione sia pari a 50 e che, mediamente, in ciascuna missione vengono utilizzati 10 strumenti . Si suppone anche che la scheda tecnica di uno strumento sia definita, mediamente, da un numero di parametri pari a 15.

Si suppone che nel corso della missione verranno interessate 500 aree diverse.

Si suppone che le possibili avarie che possono verificarsi siano in numero di 50 e che mediamente ogni strumento presenti una avaria al mese.

Si considera anche che nel corso della missione possano verificarsi anomalie "nuove", non contemplate nell'elenco iniziale, nella misura di una al mese.












Concetto
Tipo
Volume



Rilevamento

E


Strumento

E


Campione

E


Immagine

E


Parametro

E


Area

E


Avaria

E


Scheda tecnica

R


Utilizzato

R


Effettuato

R


Verificata

R



Tavola dei volumi



Operazione
Descrizione
Frequenza
Tipo

O1

Registra un nuovo rilevamento

10/giorno

B

O2

Registra una nuova avaria

50/mese

B

O3

Modifica lo stato di uno strumento

50/mese

B

O4



Stampa scheda tecnica di uno strumento

5/giorno

B

O5

Stampa avarie occorse ad uno strumento

1/settimana

B

O6

Stampa stato attuale degli strumenti

10/giorno

B

O7

Stampa tutti i prelievi effettuati in una certa area, con indicazione della data

3/giorno

B

O8

Stampa tutte le  immagini rilevate in una certa area, con indicazione della data

3/giorno

B

O9

Stampa tutti i prelievi effettuati, con indicazione dell'area e della data

3/giorno

B

O10

Stampa tutte le immagini rilevate, con indicazione dell'area e della data

3/giorno

B

O11

Stampa delle avarie presentare da uno strumento, con indicazione dell'area e della data

2/giorno

B

O12

Stampa le avarie che si sono verificate nel corso di rilevamenti in una determinata zona, con indicazione della data

3/settimana

B

O13

Inserimento di un nuovo tipo di avaria

1/settimana

B

O14

Inserimento di una nuova area

(1-2)/giorno

B


Tavola delle frequenze





Tavola degli accessi operazione O1

Concetto

Costrutto

Accessi

Tipo





Rilevamento

Entità


S

Area

Entità


L

Effettuato

Relazione


S

Utilizzato

Relazione


S

Strumento

Entità


L





Totale: 350 accessi al giorno



Tavola degli accessi operazione O2

Concetto

Costrutto

Accessi

Tipo





Strumento

E


L

Verificata

R


S

Avaria

E


L-S





Totale: 9 accessi al giorno


Tavola degli accessi operazione O3

Concetto

Costrutto

Accessi

Tipo





Strumento

E


S





Totale: 4 accesso al giorno



Tavola degli accessi operazione O4

Concetto

Costrutto

Accessi

Tipo





Strumento

E


L

Scheda Tecnica

R


L

Parametro

E


L





Totale: 155 accessi al giorno



Tavola degli accessi operazione O5

Concetto

Costrutto

Accessi

Tipo





Strumento

E


L

Verificata

R


L

Avaria

E


L





Totale: 4 accessi al giorno


Tavola degli accessi operazione O6

Concetto

Costrutto

Accessi

Tipo





Strumento

E


L





Totale: 500 accessi al giorno



Tavola degli accessi operazione O7

Concetto

Costrutto

Accessi

Tipo





Area

E


L

Effettuato

R


L

Rilevamento

E


L

Campione

E


L







Totale: 10950 accessi al giorno



Tavola degli accessi operazione O8

Concetto

Costrutto

Accessi

Tipo





Area

E


L

Effettuato

R


L

Rilevamento

E


L

Immagine

E


L





Totale: 10950 accessi al giorno



Tavola degli accessi operazione O9

Concetto

Costrutto

Accessi

Tipo





Rilevamento

E


L

Effettuato

R


L

Area

E


L

Campione

E


L





Totale: 43800 accessi al giorno



Tavola degli accessi operazione O10

Concetto

Costrutto

Accessi

Tipo





Rilevamento

E


L

Effettuato

R


L

Area

E


L

Immagine

E


L





Totale: 43800 accessi al giorno



Tavola degli accessi operazione O11

Concetto

Costrutto

Accessi

Tipo





Strumento

E


L

Verificata

R


L

Avaria

E


L

Utilizzato

R


L

Rilevamento

E


L

Effettuato

R


L

Area

E


L









Totale: 146 accessi al giorno




Tavola degli accessi operazione O12

Concetto

Costrutto

Accessi

Tipo





Rilevamento

E


L

Effettuato

R


L

Area

E


L

Utilizzato

R


L

Strumento

E


L

Verificata

R


L

Anomalia

E


L





Totale: 21 accessi al giorno



Tavola degli accessi operazione O13

Concetto

Costrutto

Accessi

Tipo





Avaria

E


S





Totale: 1 accessi al giorno



Tavola degli accessi operazione O14

Concetto

Costrutto

Accessi

Tipo





Area

E


S







Totale: 1 accessi al giorno


5. Progettazione logica indipendente dal modello

5.1 Analisi delle ridondanze


Non si riscontrano ridondanze dovute ad attributi derivabili da altri attributi nè ridondanze dovute a relazioni derivabili dalla composizione di altre relazioni.

5.2 Eliminazione delle gerarchie


L'accesso alle entità figlie avviene sempre e solo contestualmente all'accesso all'entità padre; inoltre, un rilevamento può consistere in entrambe il prelievo di un campione e l'acquisizione di una immagine. In virtù di queste considerazioni decidiamo di mantenere l'entità padre aggiungendo ad essa tutti gli attributi delle entità figlie, con cardinalità (0,1), più un ulteriore attributo (tipo) che può assumere valore C (campione) oppure I (immagine).

L'attributo Data dell'entità Immagine è stato rinominato come DataInvio per evitare ambiguità con l'attributo Data dell'entità Rilevamento.

5.3 Partizionamento/accorpamento entità/relazioni


Non si riscontra la necessità di partizionamento/accorpamento di entità/relazioni.

5.4 Scelta degli identificatori primari


Utilizziamo come identificatori primari delle entità strumento, rilevamento, parametro, avaria, i codici corrispondenti. In Figura 2 è riportato lo schema E/R ristrutturato.








































Figura 2



6. Progettazione logica

6.1 Traduzione entità


Si individuano i seguenti schemi di entità:


RILEVAMENTO(Codice,Data/Ora,Coordinate,Composizione,Fase,Tipo,Formato,DataInvio,Area)

STRUMENTO(Codice,Nome,Stato)

AREA(Codice,nome)

PARAMETRO(Codice,nome,descrizione)

AVARIA(Codice,nome)


Nella relazione RILEVAMENTO è stato introdotto un ulteriore attributo, Area, che corrisponde alla chiave primaria dell'entità Area. Pertanto non è necessario tradurre la relazione EFFETTUATO.

6.2 Traduzione relazioni


Si individuano i seguenti schemi di relazioni:


SCHEDA TECNICA(Parametro,Strumento,valore)

VERIFICATA(Strumento,Avaria,data,indice)

UTILIZZATO(Strumento,Rilevamento)


Nella figura 3 viene riportato lo schema di join relativo all'applicazione in esame:

























Figura 3

Nell'implementazione fisica del database, alle entità PARAMETRO, STRUMENTO, SCHEDA_TECNICA è stato assegnato un segmento di memoria su disco fisso, sufficiente a contenere il volume di informazioni appropriato, che è fissato.

All'entità AVARIA il cui volume è modesto, è stato assegnato un segmento di memoria iniziale sufficiente a contenere l'intero volume dei dati; per tale entità è stato previsto un tasso di crescita di 1 inserimento/mese.

Per quanto riguarda le altre entità, poiché non si conosce l'esatto volume dei dati che dovranno contenere a regime, è stato assegnato un segmento di memoria iniziale sufficiente a contenere il 40% del volume previsto; per tale entità è stato poi previsto un tasso di crescita pari al rimanente 60% del volume previsto, distribuito nei 12 mesi di durata della missione.

E' stata creata un'ulteriore entità, chiamata "Statistica" cui è stato assegnato un segmento di memoria su disco fisso, sufficiente a contenere il volume di informazioni appropriato, che è fissato a priori. Tale entità verrà utilizzata per ottenere informazioni sulla statistica dei rilevamenti.

Queste considerazioni hanno portato al dimensionamento del tablespace come mostrato di seguito:


CREATE TABLE 'TEMPES12'.'PARAMETRO' ('CODICE' VARCHAR2(10 byte)

NOT NULL, 'NOME' VARCHAR2(10 byte) NOT NULL, 'DESCRIZIONE'

VARCHAR2(30 byte) NOT NULL,

CONSTRAINT 'PK_PARAMETRO' PRIMARY KEY('CODICE')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING ;


CREATE TABLE 'TEMPES12'.'AREA' ('CODICE' VARCHAR2(10 byte) NOT

NULL, 'NOME' VARCHAR2(10 byte) NOT NULL,

CONSTRAINT 'FDDFFD' PRIMARY KEY('CODICE')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING ;








CREATE TABLE 'TEMPES12'.'AVARIA' ('CODICE' VARCHAR2(10 byte) NOT

NULL, 'NOME' VARCHAR2(10 byte) NOT NULL,

CONSTRAINT 'PK_AVARIA' PRIMARY KEY('CODICE')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING ;


CREATE TABLE 'TEMPES12'.'STRUMENTO' ('CODICE' VARCHAR2(10 byte)

NOT NULL, 'NOME' VARCHAR2(10 byte) NOT NULL, 'STATO'

VARCHAR2(10 byte) NOT NULL,

CONSTRAINT 'CHECK_STRUMENTO' CHECK(stato='attivo' or

stato='in avaria'),

CONSTRAINT 'PK_STRUMENTO' PRIMARY KEY('CODICE')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING ;


CREATE TABLE 'TEMPES12'.'RILEVAMENTO' ('CODICE' VARCHAR2(10 byte)

NOT NULL, 'DATA_ORA' DATE NOT NULL, 'COORDINATE' VARCHAR2(10

byte) NOT NULL, 'COMPOSIZIONE' VARCHAR2(10 byte), 'FASE'

VARCHAR2(10 byte), 'TIPO' CHAR(1 byte) NOT NULL, 'FORMATO'

VARCHAR2(10 byte), 'DATAINVIO' DATE, 'AREA' VARCHAR2(10 byte)

NOT NULL,

CONSTRAINT 'CHECK_RILEVAMENTO' CHECK(tipo='C' or tipo='I'),

CONSTRAINT 'FK_RILEVAMENTO' FOREIGN KEY('AREA')

REFERENCES 'TEMPES12'.'AREA'('CODICE'),

CONSTRAINT 'PK_RILEVAMENTO' PRIMARY KEY('CODICE')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 136K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING ;


CREATE TABLE 'TEMPES12'.'UTILIZZATO' ('STRUMENTO' VARCHAR2(10

byte) NOT NULL, 'RILEVAMENTO' VARCHAR2(10 byte) NOT NULL,

CONSTRAINT 'FK_UTILIZZATO_RILEVAMENTO' FOREIGN

KEY('RILEVAMENTO')

REFERENCES 'TEMPES12'.'RILEVAMENTO'('CODICE'),

CONSTRAINT 'FK_UTILIZZATO_STRUMENTO' FOREIGN KEY('STRUMENTO')

REFERENCES 'TEMPES12'.'STRUMENTO'('CODICE'))

TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 384K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING ;


CREATE TABLE 'TEMPES12'.'SCHEDA_TECNICA' ('STRUMENTO' VARCHAR2(10

byte) NOT NULL, 'PARAMETRO' VARCHAR2(10 byte) NOT NULL,

'VALORE' VARCHAR2(10 byte) NOT NULL,

CONSTRAINT 'FK_SCHEDATECNICA_RILEVAMENTO' FOREIGN

KEY('PARAMETRO')

REFERENCES 'TEMPES12'.'PARAMETRO'('CODICE'),

CONSTRAINT 'FK_SCHEDATECNICA_STRUMENTO' FOREIGN

KEY('STRUMENTO')

REFERENCES 'TEMPES12'.'STRUMENTO'('CODICE'))

TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 24K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING ;


CREATE TABLE 'TEMPES12'.'VERIFICATA' ('STRUMENTO' VARCHAR2(10

byte) NOT NULL, 'AVARIA' VARCHAR2(10 byte) NOT NULL, 'DATA'

DATE NOT NULL, 'INDICE' VARCHAR2(10 byte) NOT NULL,

CONSTRAINT 'FK_VERIFICATA_AVARIA' FOREIGN KEY('AVARIA')

REFERENCES 'TEMPES12'.'AVARIA'('CODICE'),

CONSTRAINT 'FK_VERIFICATA_STRUMENTO' FOREIGN KEY('STRUMENTO')

REFERENCES 'TEMPES12'.'STRUMENTO'('CODICE'))

TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 24K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING ;


CREATE TABLE 'TEMPES12'.'STATISTICA' ('AREA' VARCHAR2(10 byte)

NOT NULL, 'NUMERO_PRELIEVI' NUMBER(5) NOT NULL,

'NUMERO_IMMAGINI' NUMBER(5) NOT NULL)

TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING ;


7. Implementazione delle operazioni


7.1 Operazione O1.a


CREATE OR REPLACE PROCEDURE InserisciRilevamento(

campo1 IN rilevamento.codice%type,

campo2 IN rilevamento.data_ora%type,

campo3 IN rilevamento.coordinate%type,

campo4 IN rilevamento.composizione%type,

campo5 IN rilevamento.fase%type,

campo6 IN rilevamento.tipo%type,

campo7 IN rilevamento.formato%type,

campo8 IN rilevamento.datainvio%type,

campo9 IN area.nome%type)

AS

begin

declare

CodiceArea area.codice%type;

begin

select area.codice into CodiceArea from area where area.nome=campo9;

insert into rilevamento (codice,data_ora,coordinate, composizione,fase,tipo,

formato,datainvio,area)

values (campo1,campo2,campo3,campo4,campo5,campo6,campo7,campo8,CodiceArea);

commit;

end;

end;


7.1 Operazione O1.b


CREATE OR REPLACE PROCEDURE InserisciStrumento(

campo1 IN rilevamento.codice%type,

campo2 IN strumento.nome%type)

AS

begin

declare

CodiceStrumento strumento.codice%type;

begin

select strumento.codice into CodiceStrumento from strumento where strumento.nome=campo2;

insert into utilizzato (strumento,rilevamento) values (CodiceStrumento,campo1);

commit;

end;

end;










7.2 Operazione O2


CREATE OR REPLACE PROCEDURE InserisciAvaria(

campo1 IN strumento.nome%type,

campo2 IN avaria.nome%type,

campo3 in verificata.data%type,

campo4 in verificata.indice%type)

AS

begin

declare

CodiceStrumento strumento.codice%type;

CodiceAvaria avaria.codice%type;

begin

select strumento.codice into CodiceStrumento from strumento where strumento.nome=campo1;

select avaria.codice into CodiceAvaria from avaria where avaria.nome=campo2;

insert into verificata (strumento,avaria,data,indice) values (campo1,campo2,campo3,campo4);

commit;

end;

end;


7.3 Operazione O3


CREATE OR REPLACE PROCEDURE ModificaStato(campo1 IN strumento.nome%type)                       

AS

begin

declare

statoAttuale strumento.stato%type;

nuovoStato strumento.stato%type;

begin

select strumento.stato into statoAttuale from strumento where strumento.nome=campo1;

if statoAttuale='a' then

nuovoStato:='g';

else

nuovoStato:='a';

end if;

UPDATE strumento SET stato=nuovoStato where strumento.nome=campo1;

commit;

end;

end;













7.4 Operazione O4


CREATE OR REPLACE PROCEDURE StampaSchedaTecnica (

campo1 IN strumento.nome%type)

AS

begin

declare

cursor c1 is

SELECT parametro.nome,parametro.descrizione,scheda_tecnica.valore

FROM parametro,scheda_tecnica,strumento

WHERE (strumento.nome=campo1 AND strumento.codice=scheda_tecnica.strumento AND

scheda_tecnica.parametro=parametro.codice);

begin

for c1_rec in c1

loop

DBMS_OUTPUT.PUT_LINE(c1_rec.nome||' '||c1_rec.descrizione||' '||c1_rec.valore);

end loop;

end;

end;


7.5 Operazione O5


CREATE OR REPLACE PROCEDURE StampaAvarie (campo1 IN strumento.nome%type)

AS

begin

declare

cursor c1 is

SELECT avaria.nome,verificata.data,verificata.indice

FROM avaria,verificata,strumento

WHERE (strumento.nome=campo1 AND verificata.strumento=strumento.codice AND

verificata.avaria=avaria.codice);

begin

for c1_rec in c1

loop

DBMS_OUTPUT.PUT_LINE(c1_rec.nome||' '||c1_rec.data||' '||c1_rec.indice);

end loop;

end;

end;














7.6 Operazione O6


CREATE OR REPLACE PROCEDURE StampaStatoStrumenti

AS

begin

declare

cursor c1 is SELECT nome,stato FROM strumento;

begin

for c1_rec in c1

loop

DBMS_OUTPUT.PUT_LINE(c1_rec.nome||' '||c1_rec.stato);

end loop;

end;

end;


7.7 Operazione O7


CREATE OR REPLACE PROCEDURE StampaPrelieviInArea (

campo1 IN area.nome%type)

AS

begin

declare

cursor c1 is

SELECT rilevamento.codice,rilevamento.data_ora,rilevamento.coordinate,

rilevamento.composizione,rilevamento.fase

FROM rilevamento,area

WHERE (area.nome=campo1 AND rilevamento.area=area.codice);

begin

for c1_rec in c1

loop

DBMS_OUTPUT.PUT_LINE(c1_rec.codice||' '||c1_rec.data_ora||' '||c1_rec.coordinate||'

'||c1_rec.composizione||' '||c1_rec.fase);

end loop;

end;

end;

















7.8 Operazione O8


CREATE OR REPLACE PROCEDURE StampaImmaginiInArea (

campo1 IN area.nome%type)

AS

begin

declare

cursor c1 is

SELECT rilevamento.codice,rilevamento.data_ora,rilevamento.coordinate,

rilevamento.formato,rilevamento.datainvio

FROM rilevamento,area

WHERE (area.nome=campo1 AND rilevamento.area=area.codice);

begin

for c1_rec in c1

loop

DBMS_OUTPUT.PUT_LINE(c1_rec.codice||' '||c1_rec.data_ora||' '||c1_rec.coordinate||'

'||c1_rec.formato||' '||c1_rec.datainvio);

end loop;

end;

end;


7.9 Operazione O9


CREATE OR REPLACE PROCEDURE StampaPrelievi

AS

begin

declare

cursor c1 is

SELECT rilevamento.codice,rilevamento.data_ora,rilevamento.coordinate,

rilevamento.composizione,rilevamento.fase,area.nome

FROM rilevamento join area on rilevamento.area=area.codice;

begin

for c1_rec in c1

loop

DBMS_OUTPUT.PUT_LINE(c1_rec.codice||' '||c1_rec.data_ora||' '||c1_rec.coordinate||'

'||c1_rec.composizione||' '||c1_rec.fase||' '||c1_rec.nome);

end loop;

end;

end;













7.10 Operazione O10


CREATE OR REPLACE PROCEDURE StampaImmagini

AS

begin

declare

cursor c1 is

SELECT rilevamento.codice,rilevamento.data_ora,rilevamento.coordinate,

rilevamento.formato,rilevamento.datainvio,area.nome

FROM rilevamento join area on rilevamento.area=area.codice;

begin

for c1_rec in c1

loop

DBMS_OUTPUT.PUT_LINE(c1_rec.codice||' '||c1_rec.data_ora||' '||c1_rec.coordinate||'

'||c1_rec.formato||' '||c1_rec.datainvio||' '||c1_rec.nome);

end loop;

end;

end;


7.11 Operazione O11


CREATE OR REPLACE PROCEDURE StampaAvarieAStrumento (

campo1 strumento.nome%type)

AS

begin

declare

cursor c1 is

SELECT avaria.nome as nome1,verificata.data,verificata.indice,area.nome as nome2

FROM strumento,verificata,avaria,utilizzato,rilevamento,area

WHERE (strumento.nome=campo1 AND strumento.codice=verificata.strumento AND

verificata.avaria=avaria.codice AND strumento.codice=utilizzato.strumento AND

utilizzato.rilevamento=rilevamento.codice AND rilevamento.area=area.codice);

begin

for c1_rec in c1

loop

DBMS_OUTPUT.PUT_LINE(c1_rec.nome1||' '||c1_rec.data||' '||c1_rec.indice||'

'||c1_rec.nome2);

end loop;

end;

end;












7.12 Operazione O12


CREATE OR REPLACE PROCEDURE StampaAvarieDuranteRilevamento (

campo1 rilevamento.codice%type)

AS

begin

declare

cursor c1 is

SELECT strumento.nome as nome1, area.nome as nome2, avaria.nome as nome3,

verificata.data,verificata.indice

FROM strumento,verificata,avaria,utilizzato,rilevamento,area

WHERE (rilevamento.codice=campo1 AND rilevamento.area=area.codice AND

utilizzato.rilevamento=rilevamento.codice AND

strumento.codice=utilizzato.strumento AND

strumento.codice=verificata.strumento AND

verificata.avaria=avaria.codice);

begin

for c1_rec in c1

loop

DBMS_OUTPUT.PUT_LINE(c1_rec.nome1||' '||c1_rec.nome2||' '||c1_rec.nome3||'

'||c1_rec.data||' '||c1_rec.indice);

end loop;

end;

end;


7.13 Operazione O13


INSERT INTO avaria(codice,nome) VALUES ('codnuovo1','nomenuovo');

COMMIT;


7.14 Operazione O14


INSERT INTO area(codice,nome) VALUES ('codnuovo1','nomenuovo');

COMMIT;


















8. Implementazione di TRIGGER e nuove funzionalità


8.1 Trigger per conteggio rilevamenti in una data area


Questo trigger si attiva dopo aver inserito un nuovo rilevamento in una certa area. Esso fornisce il numero complessivo di immagini e il numero complessivo di prelievi eseguiti nell'area specificata fino a quel momento.


CREATE OR REPLACE TRIGGER CONTEGGIORILEVAMENTI after

INSERT ON 'RILEVAMENTO' begin

DECLARE

somma number;

ultimoInserimento rilevamento.data_ora%type;

nuovaArea rilevamento.area%type;

begin

select max(data_ora) into ultimoInserimento from rilevamento;

select area into nuovaArea from rilevamento where data_ora=ultimoinserimento;

select count(rilevamento.codice) into somma from rilevamento

where (rilevamento.area=nuovaArea and rilevamento.tipo='I');

DBMS_OUTPUT.PUT_LINE('Numero immagini nell''area '||nuovaArea||'= '||somma);

select count(rilevamento.codice) into somma from rilevamento

where (rilevamento.area=nuovaArea and rilevamento.tipo='C');

DBMS_OUTPUT.PUT_LINE('Numero rilevamenti nell''area '||nuovaArea||'= '||somma);

end;

end;


8.2 Trigger per aggiornamento tabella statistica


Questo trigger, che si attiva dopo l'inserimento di un nuovo rilevamento, aggiorna una tabella in cui viene riportato, per ciascuna area, il numero complessivo di immagini rilevate e il numero complessivo di prelievi effettuati. La visualizzazione di questa tabella, chiamata "Statistica", è delegata alla procedura VisualizzaStatistica, descritta nel paragrafo che segue.


CREATE OR REPLACE TRIGGER AggiornaStatistica AFTER

INSERT ON 'RILEVAMENTO' begin

DECLARE

somma number;

ultimoInserimento rilevamento.data_ora%type;

nuovaArea rilevamento.area%type;

nuovoTipo rilevamento.tipo%type;

begin

select max(data_ora) into ultimoInserimento from rilevamento;

select area into nuovaArea from rilevamento where data_ora=ultimoinserimento;

select tipo into nuovoTipo from rilevamento where data_ora=ultimoinserimento;


UPDATE statistica SET numero_immagini=numero_immagini+1

WHERE statistica.area=(select area.nome from area where area.codice=nuovaArea);


if nuovoTipo='I' then

UPDATE statistica SET numero_immagini=numero_immagini+1

WHERE (statistica.area=(select area.nome from area where area.codice=nuovaArea));

else

UPDATE statistica SET numero_prelievi=numero_prelievi+1

WHERE (statistica.area=(select area.nome from area where area.codice=nuovaArea));

end if;

end;

end;


8.3 Procedura VisualizzaStatistica


CREATE OR REPLACE PROCEDURE VisualizzaStatistica

AS

begin

declare

Area Statistica.area%type;

TotalePrelievi Statistica.numero_prelievi%type;

TotaleImmagini Statistica.numero_immagini%type;

cursor c is

select area,numero_prelievi,numero_immagini from statistica;

begin

open c;

loop

fetch c into Area,TotalePrelievi,TotaleImmagini;

DBMS_OUTPUT.PUT_LINE(Area||' '||TotalePrelievi||' '||TotaleImmagini);

exit when c%notfound;

end loop;

close c;

end;

end;




Scarica gratis Progettazione di una base di dati per la gestione di una issione Spaziale
Appunti su:











Scarica 100% gratis e , tesine, riassunti



Registrati ora

Password dimenticata?
  • Appunti superiori
  • In questa sezione troverai sunti esame, dispense, appunti universitari, esercitazioni e tesi, suddivisi per le principali facoltà.
  • Università
  • Appunti, dispense, esercitazioni, riassunti direttamente dalla tua aula Universitaria
  • all'Informatica
  • Introduzione all'Informatica, Information and Comunication Tecnology, componenti del computer, software, hardware ...

Appunti Ingegneria tecnico Ingegneria tecnico
Tesine Automobile Automobile
Lezioni Economia Economia