Appunti per Scuola e Università
Umanistiche
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 
Scientifiche
Appunti, analisi, compresione per le scuole medie suddivisi per materie scientifiche, per ognuna troverai appunti, dispense, esercitazioni, tesi e riassunti in download.
Tecniche
Gli appunti, le tesine e riassunti di tecnica amministrativa, ingegneria tecnico, costruzione. Tutti gli appunti di AppuntiMania.com gratis!
Appunti
tecniche
Aeronautica Agricoltura agraria Architettura Automobile Costruzione
Demografia urbanistica Elettronica elettricita Forensics Ingegneria tecnico Vela


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: 712Gradito: [ 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.



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

3650

Strumento

E

50

Campione

E

3650

Immagine

E

3650

Parametro

E

100

Area

E

500

Avaria

E

50

Scheda tecnica

R

750

Utilizzato

R

36500

Effettuato

R

3650

Verificata

R

600

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à

1

S

Area

Entità

1

L

Effettuato

Relazione

1

S

Utilizzato

Relazione

10

S

Strumento

Entità

10

L

Totale: 350 accessi al giorno

Tavola degli accessi operazione  O2

Concetto

Costrutto

Accessi

Tipo

Strumento

E

1

L

Verificata

R

1

S

Avaria

E

1

L-S

Totale: 9 accessi al giorno

Tavola degli accessi operazione  O3

Concetto

Costrutto

Accessi

Tipo

Strumento

E

1

S

Totale: 4 accesso al giorno

Tavola degli accessi operazione  O4

Concetto

Costrutto

Accessi

Tipo

Strumento

E

1

L

Scheda Tecnica

R

15

L

Parametro

E

15

L

Totale:  155 accessi al giorno

Tavola degli accessi operazione  O5

Concetto

Costrutto

Accessi

Tipo

Strumento

E

1

L

Verificata

R

12

L

Avaria

E

12

L

Totale:  4 accessi al giorno

Tavola degli accessi operazione  O6

Concetto

Costrutto

Accessi

Tipo

Strumento

E

50

L

Totale:  500 accessi al giorno

Tavola degli accessi operazione  O7

Concetto

Costrutto

Accessi

Tipo

Area

E

1

L

Effettuato

R

3650

L

Rilevamento

E

3650

L

Campione

E

3650

L




Totale:  10950 accessi al giorno

Tavola degli accessi operazione  O8

Concetto

Costrutto

Accessi

Tipo

Area

E

1

L

Effettuato

R

3650

L

Rilevamento

E

3650

L

Immagine

E

3650

L

Totale: 10950 accessi al giorno

Tavola degli accessi operazione  O9

Concetto

Costrutto

Accessi

Tipo

Rilevamento

E

3650

L

Effettuato

R

3650

L

Area

E

3650

L

Campione

E

3650

L

Totale:  43800 accessi al giorno


Tavola degli accessi operazione  O10

Concetto

Costrutto

Accessi

Tipo

Rilevamento

E

3650

L

Effettuato

R

3650

L

Area

E

3650

L

Immagine

E

3650

L

Totale:  43800 accessi al giorno

Tavola degli accessi operazione  O11

Concetto

Costrutto

Accessi

Tipo

Strumento

E

1

L

Verificata

R

12

L

Avaria

E

12

L

Utilizzato

R

12

L

Rilevamento

E

12

L

Effettuato

R

12

L

Area

E

12

L

Totale: 146 accessi al giorno

Tavola degli accessi operazione  O12

Concetto

Costrutto

Accessi

Tipo

Rilevamento

E

1

L

Effettuato

R

1

L

Area

E

1

L

Utilizzato

R

1

L

Strumento

E

1

L

Verificata

R

1

L

Anomalia

E

1

L

Totale:  21 accessi al giorno

Tavola degli accessi operazione  O13

Concetto

Costrutto

Accessi

Tipo

Avaria

E

1

S

Totale:  1 accessi al giorno

Tavola degli accessi operazione  O14

Concetto

Costrutto

Accessi

Tipo

Area

E

1

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:







Accedi al tuo account
Scarica 100% gratis e Invia appunti, 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