Caso di Studio: ANAGRAFE ZOOTECNICA SUINA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Caso di Studio: ANAGRAFE ZOOTECNICA SUINA"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Agraria CORSO DI LAUREA IN SCIENZE E TECNOLOGIE DELL AMBIENTE E DEL TERRITORIO Caso di Studio: ANAGRAFE ZOOTECNICA SUINA 1 Descrizione del dominio applicativo Il sistema di registrazione ed identificazione degli animali, comunemente indicato come anagrafe zootecnica, è un sistema basato sulla registrazione di aziende, consistenza degli allevamenti, movimentazioni degli animali, identificazione dei capi (individuale o per partita), macellazioni con differenze legate a diverse specie di animali da reddito e tipologie d allevamento presenti sul territorio. Il sistema, inizialmente circoscritto alla specie bovina, si è evoluto nelle funzionalità ed è stato esteso alle altre specie d interesse zootecnico. E uno strumento obbligatorio nell ambito dell intera Unione Europea ed è indispensabile nell ambito della sanità animale, con risvolti e applicazioni per il controllo delle malattie infettive e delle problematiche relative alle sicurezza alimentare. Riveste ruolo primario per la tracciabilità degli animali e dei prodotti di origine animale. La Banca Dati Nazionale (BDN) vede attualmente operativi i seguenti sistemi anagrafici: Anagrafe bovina, Anagrafe ovina e caprina, Anagrafe suina, Anagrafe avicola, Registrazione circhi. Nella fase attuale attraverso il sito previa autenticazione, è consentito l accesso all Anagrafe Zootecnica Nazionale (AZN) e al Sistema Informativo Malattie Animali Nazionale (SIMAN). Sono invece accessibile pubblicamente una serie di funzioni statistiche dell AZN. In questo contesto, visto l attuale impegno dipartimentale nell ambito del progetto AGER SEES-PIG, siamo interessati a considerare nel dettaglio l anagrafica suina, per la quale nel seguito si riporta una descrizione più dettagliata delle diverse entità considerate. Analisi e progettazione eseguita per scopi didattici 1

2 1.1 Registrazione aziende e allevamenti Il responsabile legale dell azienda entro venti giorni dall inizio dell attività, richiede l attribuzione del codice di identificazione aziendale al Servizio veterinario competente per territorio. Il Servizio veterinario competente per territorio attribuisce il codice aziendale alfanumerico recante nell ordine: due lettere per la sigla dello Stato; tre cifre per il codice ISTAT del Comune; due lettere per la sigla della Provincia; numero progressivo assegnato all azienda su base comunale (tre cifre). Il Servizio veterinario provvede a registrare nella BDN le seguenti informazioni: dati aziendali: codice aziendale, indirizzo e coordinate geografiche; struttura zootecnica 1 : la tipologia (allevamento, stalla di sosta, fiera e mercato, centro di raccolta, punto di sosta, centro materiale genetico), la denominazione o ragione sociale, nome, indirizzo e codice fiscale del proprietario degli animali o del detentore della struttura zootecnica (se stalla di sosta, centro materiale genetico o centro di raccolta), capacità della struttura e numero di animali detenuti al momento (suddivisi in cinghiali e/o maiali); se la struttura è di tipo allevamento, bisogna anche indicare l orientamento produttivo (familiare, da ingrasso, da riproduzione), la tecnica produttiva (per gli allevamenti da ingrasso ciclo completo, svezzamento, magronaggio o finissaggio; per gli allevamenti da riproduzione ciclo chiuso o ciclo aperto), la modalità di allevamento (stabulato o semibrado), se si tratta di un sistema multisito e se è di tipo stagionale; se la struttura è di tipo stalla, l ordinamento produttivo dovrà essere distinto fra da macello o da vita. 1.2 Identificazione degli animali I suini si identificano mediante l esecuzione di un tatuaggio che riporta il codice identificativo dell azienda di nascita (o dell azienda di prima destinazione per gli animali importati da Paesi terzi e destinati a rimanere sul 1 Dal manuale operativo dell anagrafe bovina (pag. 15), in cui la struttura zootecnica è identificata in modo uguale, è indicato che, poichè all interno della stessa azienda possono esserci più allevamenti di specie diversa o appartenenti a proprietari diversi, è necessario che, a fronte dell identico codice aziendale, si identifichi il singolo allevamento attraverso la codifica della specie allevata e gli estremi del codice fiscale. 2

3 territorio nazionale). L identificazione deve essere effettuata entro il 70 o giorno dalla nascita e comunque prima di essere spostati dall azienda nella quale sono nati. L identificazione degli animali è a carico del detentore degli animali. 1.3 Registrazione consistenza Il detentore degli animali, direttamente o tramite persona delegata, dovrà registrare nella BDN i seguenti dati: consistenza totale dell allevamento rilevata il 31 marzo corrispondente a quanto riportato sul registro di carico e scarico relativamente ai suini presenti di età superiore a 70 giorni; totale nascite/decessi (da effettuarsi entro il 31 marzo); numero di riproduttori quando presenti, specificando il numero di verri, scrofe e scrofette (dal primo intervento fecondativo). 1.4 Registrazione movimenti Il detentore, per ciascuna partita di suidi movimentata, registra nella BDN, direttamente o tramite persona delegata, i seguenti dati entro 7 giorni dal verificarsi dell evento: numero degli animali movimentati in entrata o uscita; codice d identificazione della struttura di partenza e di quella di destinazione, compreso lo stabilimento di macellazione; causale della movimentazione; data di arrivo o di partenza; numero del documento d accompagnamento/certificato sanitario. 1.5 Registrazione macellazioni Il responsabile del macello, direttamente o tramite persona delegata, registra in BDN i seguenti dati entro 7 giorni dalla macellazione le seguenti informazioni: a) per ciascuna partita di suidi macellati: la data dell avvenuta macellazione; il codice dell allevamento di provenienza della partita; il numero di animali macellati distinti per categoria; 3

4 b) per ciascuna partita di suidi macellati provenienti da altri Stati sono richieste altresì le seguenti informazioni: paese di proenienza; estremi del certificato sanitario; numero di animali macellati distinti per categoria 2 ; la data dell avvenuta macellazione. 1.6 Riferimenti: Attuazione della direttiva 2008/71/CE relativa all identificazione e alla registrazione dei suini: bollettini_2010/dicembre_10/3_identificazione_%20d.l.vo_% pdf Sito del Ministero della Salute - Anagrafe suina: it/sanitaanimale/paginainternamenusanitaanimale.jsp?id=2273 Manuale operativo anagrafe bovina: rdonlyres/dee9e18d-b05a-47cb-b6ff-68f125322fda/0/manuale_operativo_ anagrafe_bovina.pdf 2 Per categoria si intende: verri, scrofe, lattonzoli (sino a kg), magroncelli (sino a 60 kg), magroni (sino a 90 kg), suini magri (sino a kg, da bistecca), suini pesanti (sino 160 kg, da insaccato). 4

5 2 Progettazione Concettuale Partendo dal presupposto che i suini/cinghiali vengano gestiti in partite definite alla nascita che non variano fino alla macellazione (se non per causa di decesso), lo schema risultante dalla progettazione concettuale è rappresentato in Figura 1. Note e assunzioni: Figura 1: Schema CGG. AZIENDA: tipologia (allevamento, stalla di sosta, fiera e mercato, centro di raccolta, punto di sosta, centro materiale genetico); 5

6 ALLEVAMENTO: ordinamento produttivo (familiare, da ingrasso, da riproduzione), modalità di allevamento (stabulato o semibrado); ALLEVAMENTO DA INGRASSO: tecnica produttiva (ciclo completo, svezzamento, magronaggio o finissaggio); ALLEVAMENTO DA RIPRODUZIONE: tecnica produttiva (ciclo chiuso o ciclo aperto); STALLA: orientamento produttivo (da macello o da vita); PARTITA: tipoanimale permette di distinguere fra maiali e cinghiali; 6

7 3 Progettazione logica Il primo passo della progettazione concettuale consiste nella ristrutturazione dello schema concettuale che, a partire dallo schema rappresentato in Figura 1, ha dato origine allo schema CGG ristrutturato rappresentato in Figura 2. Figura 2: Schema CGG ristrutturato. Le diverse fasi della ristrutturazione possono così essere sintetizzate: 1. attributo multivalore telefono dell entità DITTA: si introduce un entità TELEFONO che viene legata all entità AZIENDA mediante una 7

8 relazione; 2. attributi composto indirizzo dell entità AZIENDA, PERSONA, DIT- TA, attributo numerodell entità STRUTTURA ZOOTECNICA, attributo numero di DECESSO e numeroeffettivo e numeroiniziale di PARTITA: l attributo composto viene eliminato e sono mantenuti i singoli attributi semplici che lo compongono; 3. specializzazione dell entità PARTITA, MOVIMENTAZIONE e STRUT- TURA ZOOTECNICA: supponendo che in generale le diverse istanze delle entità specializzate vengono accedute interamente e senza differenze rispetto alle diverse sottoclassi (ad esempio le movimentazioni sono tutte registrate in un unico registro senza differenza dalle provenienze o dalle destinazioni) si è deciso di ristrutturare tutte le specializzazioni riportando tutte le proprietà al padre eliminando quindi le figlie. 4. dall analisi degli attributi derivati (analisi delle ridondanze), per scopi principalmente didattici, si è deciso di mantenere gli attributi derivati dell entità STRUTTURA ZOOTECNICA (per il calcolo dei quali sarebbero necessare operazioni relativamente pesanti) ed eliminare quelli dell entità PARTICA (calcolabili direttamente dagli altri attributi dell entità stessa o al più attraverso la relazione REGISTRA sull entità DECESSO). NOTE: in STRUTTURA ZOOTECNICA l attributo orientamentoproduttivostalla è deve essere istanziato solo se la tipologia è stalla; in STRUTTURA ZOOTECNICA gli attributi modalitaallevamento, multistito, stagionale, familiare devono essere istanziati solo se la tipologia è allevamento; inoltre, se la tipologia è allevamento se l orientamento produttivo è ingrasso deve essere istanziato l attributo tecnica- ProduttivaIngrasso, se è riproduzione deve essere istanziato l attributo tecnicaproduttivariproduzione; in MOVIMENTAZIONE deve essere istanziata una relazione da e una a; inoltre, almeno una delle due deve essere con una struttura zootecnica; ogni PARTITA deve provenire/nascere da qualche parte e quindi esattamente una relazione fra provenienza, nascee e nascei deve essere istanziata. 8

9 Si può quindi procedere con traduzione vera e propria dello schema CGG ristrutturato sul modello logico relazionale esteso per il trattamento dei dati spaziali (gli attributi con nome geometria avranno infatti associato un dominio di tipo spaziale). 1. Procedendo con ordine, andiamo prima a tradurre tutte le entità: ST AT O(sigla, nome, the geom) nome, the geom NOT NULL P ROV IN CIA(stato, sigla, nome, codiceist AT, the geom) nome, codiceistat, the geom NOT NULL UNIQUE (stato, codiceistat) COMUNE(stato, provincia, codiceist AT, nome, the geom) nome, the geom NOT NULL AZIEN DA(stato, provincia, comune, progressivo, via, numero, the geom) via, numero, the geom NOT NULL P ERSON A(codicef iscale, nome, cognome, via, numero) nome, cognome, via, numero NOT NULL DIT T A(codicef iscale, ragionesociale, via, numero) ragionesociale, via, numero NOT NULL T ELEF ON O(numero, ditta) ST RUT T URA ZOOT ECNICA(stato, provincia, comune, azienda, ditta, capacita, numeromaiali, numerocinghiali, tipologia, modalitaallevamento, multisito, f amiliare, stagionale, tecnicaproduttivaingrasso, tecnicaprosuttivariproduzione, orientamentoproduttivostalla) capacita, numeromaiali, numerocinghiali, tipologia NOT NULL P ART IT A(id, tipoanimale, datanascita, numeroinizialescof e, numeroinizialeverri, datamacellazione) tipoanimale, datanascita, numeroinizialescofe, numeroinizialeverri NOT NULL 9

10 M OV IM EN T AZION E(partita, datapartenza, causale, docaccompagnatorio, oraarrivo) causale, docaccompagnatorio NOT NULL DECESSO(partita, data, numeroscrof e, numeroverri) numeroscrofe, numeroverri NOT NULL 2. Quindi, consideriamo le relazioni di tipo uno a molti che apporteranno delle modifiche ad alcune delle precedenti tabelle: relazione locazione: AZIEN DA(stato, provincia, comune, progressivo, via, numero, the geom) via, numero, the geom NOT NULL fk (stato,provincia,comune) references COMUNE(stato,provincia,codiceISTAT) relazione compostada: ST RUT T URA ZOOT ECNICA(stato, provincia, comune, azienda, ditta, capacita, numeromaiali, numerocinghiali, tipologia, modalitaallevamento, multisito, f amiliare, stagionale, tecnicaproduttivaingrasso, tecnicaprosuttivariproduzione, orientamentoproduttivostalla) capacita, numeromaiali, numerocinghiali, tipologia NOT NULL fk (stato,provincia,comune,azienda) references AZIENDA relazione di: ST RUT T URA ZOOT ECNICA(stato, provincia, comune, azienda, ditta, capacita, numeromaiali, numerocinghiali, tipologia, modalitaallevamento, multisito, f amiliare, stagionale, tecnicaproduttivaingrasso, tecnicaprosuttivariproduzione, orientamentoproduttivostalla) capacita, numeromaiali, numerocinghiali, tipologia NOT NULL fk (stato,provincia,comune,azienda) references AZIENDA fk (ditta) references DITTA(codicefiscale) relazione residenza: P ERSON A(codicef iscale, nome, cognome, via, numero, stato, provincia, comune) nome, cognome, via, numero, stato, provincia, comune NOT NULL fk (stato,provincia,comune) references COMUNE(stato,provincia,codiceISTAT) relazione sede: DIT T A(codicef iscale, ragionesociale, via, numero, stato, provincia, comune) ragionesociale, via, numero, stato, provincia, comune NOT NULL 10

11 fk (stato,provincia,comune) references COMUNE(stato,provincia,codiceISTAT) relazioni provenienza, nasceeu, nascei: P ART IT A(id, tipoanimale, datanascita, numeroinizialescof e, numeroinizialeverri, datamacellazione, stato, provincia, comune, azienda, ditta) tipoanimale, datanascita, numeroinizialescofe, numeroinizialeverri, stato NOT NULL fk (stato,provincia,comune,azienda,ditta) references STRUTTURA ZOOTECNICA fk (stato,provincia,comune,azienda) references AZIENDA fk (stato) references STATO(sigla) relazioni daest, daeu, dait: M OV IM EN T AZION E(partita, datapartenza, causale, docaccompagnatorio, oraarrivo, dastato, daprovincia, dacomune, daazienda, daditta) causale, docaccompagnatorio, dastato NOT NULL fk (dastato,daprovincia,dacomune,daazienda,daditta) references STRUT- TURA ZOOTECNICA fk (dastato,daprovincia,dacomune,daazienda) references AZIENDA fk (dastato) references STATO(sigla) relazioni aest, aeu, ait: M OV IM EN T AZION E(partita, datapartenza, causale, docaccompagnatorio, oraarrivo, dastato, daprovincia, dacomune, daazienda, daditta, astato, aprovincia, acomune, aazienda, aditta) causale, docaccompagnatorio, dastato, astato NOT NULL fk (dastato,daprovincia,dacomune,daazienda,daditta) references STRUT- TURA ZOOTECNICA fk (dastato,daprovincia,dacomune,daazienda) references AZIENDA fk (dastato) references STATO(sigla) fk (astato,aprovincia,acomune,aazienda,aditta) references STRUTTU- RA ZOOTECNICA fk (astato,aprovincia,acomune,aazienda) references AZIENDA fk (astato) references STATO(sigla) relazione trasferita: M OV IM EN T AZION E(partita, datapartenza, causale, docaccompagnatorio, dataarrivo, dastato, daprovincia, dacomune, daazienda, daditta, astato, aprovincia, acomune, aazienda, aditta, partita) causale, docaccompagnatorio, dastato, astato NOT NULL fk (dastato,daprovincia,dacomune,daazienda,daditta) references STRUT- TURA ZOOTECNICA 11

12 Figura 3: Schema logico relazionale. fk (dastato,daprovincia,dacomune,daazienda) references AZIENDA fk (dastato) references STATO(sigla) fk (astato,aprovincia,acomune,aazienda,aditta) references STRUTTU- RA ZOOTECNICA fk (astato,aprovincia,acomune,aazienda) references AZIENDA fk (astato) references STATO(sigla) fk (partita) references PARTITA(id) relazione registra: DECESSO(partita, data, numeroscrof e, numeroverri, partita) numeroscrofe, numeroverri NOT NULL fk (partita) references PARTITA(id) aggregazione stato-provincia: P ROV IN CIA(stato, sigla, nome, codiceist AT, the geom) nome, codiceistat, the geom NOT NULL UNIQUE (stato, codiceistat) fk (stato) references STATO(sigla) aggregazione provincia-comune: COMUNE(stato, provincia, codiceist AT, nome, the geom) nome, the geom NOT NULL fk (stato,provincia) references PROVINCIA(stato,sigla) 12

13 relazione ha: T ELEF ONO(telefono, ditta) fk (ditta) references DITTA(codicefiscale) 3. Infine, introduciamo le tabelle necessarie per la traduzione delle relazioni molti a molti: relazione detentore: DET EN T ORE(stato, provincia, comune, azienda, ditta, persona) fk (stato,provincia,comune,azienda,ditta) references STRUTTURA ZOOTECNICA fk (persona) references PERSONA(codicefiscale) Lo schema logico relazionale finale risulterà essere quindi quello rappresentato in Figura 3. 13

14 4 Linguaggio SQL 4.1 Creazione della base di dati CREATE TABLE s t a t o ( s i g l a char ( 2 ) PRIMARY KEY, nome v a r c h a r ( 5 0 ) NOT NULL ) ; SELECT AddGeometryColumn (, s t a t o, the geom,4326, MULTIPOLYGON, 2 ) ; CREATE INDEX i d x g i s t s t a t o ON s t a t o USING g i s t ( the geom ) ; CREATE TABLE p r o v i n c i a ( s t a t o CHAR( 2 ) REFERENCES s t a t o ( s i g l a ) ON UPDATE CASCADE, s i g l a CHAR( 2 ), nome VARCHAR( 5 0 ) NOT NULL, c o d i c e i s t a t CHAR( 3 ) NOT NULL,PRIMARY KEY ( s t a t o, s i g l a ),UNIQUE ( s t a t o, c o d i c e i s t a t ) ) ; SELECT AddGeometryColumn (, p r o v i n c i a, the geom,4326, MULTIPOLYGON, 2 ) ; CREATE INDEX i d x g i s t p r o v i n c i a ON p r o v i n c i a USING g i s t ( the geom ) ; CREATE TABLE comune ( s t a t o CHAR( 2 ), p r o v i n c i a CHAR( 2 ), c o d i c e i s t a t CHAR( 3 ), nome VARCHAR( 5 0 ) NOT NULL,PRIMARY KEY ( s t a t o, p r o v i n c i a, c o d i c e i s t a t ),FOREIGN KEY ( s t a t o, p r o v i n c i a ) REFERENCES p r o v i n c i a ( s t ato, s i g l a ) ON UPDATE CASCADE ) ; SELECT AddGeometryColumn (, comune, the geom,4326, MULTIPOLYGON, 2 ) ; CREATE INDEX i d x g i s t c o m u n e ON comune USING g i s t ( the geom ) ; CREATE TABLE azienda ( s t a t o CHAR( 2 ), p r o v i n c i a CHAR( 2 ), comune CHAR( 3 ), p r o g r e s s i v o INTEGER, v i a VARCHAR( 5 0 ) NOT NULL, numero VARCHAR( 5 ) NOT NULL,PRIMARY KEY ( s t a t o, p r o v i n c i a, comune, p r o g r e s s i v o ),FOREIGN KEY ( s t a t o, p r o v i n c i a, comune ) REFERENCES comune ON UPDATE CASCADE ) ; SELECT AddGeometryColumn (, azienda, the geom,4326, POINT, 2 ) ; CREATE INDEX i d x g i s t a z i e n d a ON azienda USING g i s t ( the geom ) ; CREATE TABLE DITTA ( c o d i c e f i s c a l e CHAR( 1 6 ) PRIMARY KEY, r a g i o n e s o c i a l e VARCHAR( 5 0 ) NOT NULL, v i a VARCHAR( 5 0 ) NOT NULL, numero VARCHAR( 5 ) NOT NULL, s t a t o CHAR( 2 ) NOT NULL, p r o v i n c i a CHAR( 2 ) NOT NULL, comune CHAR( 3 ) NOT NULL,FOREIGN KEY ( s t a t o, p r o v i n c i a, comune ) REFERENCES comune ON UPDATE CASCADE 14

15 ) ; CREATE TABLE s t r u t t u r a z o o t e c n i c a ( s t a t o CHAR( 2 ), p r o v i n c i a CHAR( 2 ), comune CHAR( 3 ), azienda INTEGER, d i t t a CHAR( 1 6 ) REFERENCES d i t t a ON UPDATE CASCADE, c a p a c i t a INTEGER NOT NULL DEFAULT 0, numeromaiali INTEGER NOT NULL DEFAULT 0, n u m e r o c i n g h i a l i INTEGER NOT NULL DEFAULT 0, t i p o l o g i a VARCHAR( 2 0 ) NOT NULL, modalitaallevamento VARCHAR( 1 0 ), m u l t i s i t o BOOLEAN, f a m i l i a r e BOOLEAN, s t a g i o n a l e BOOLEAN, t e c n i c a p r o d u t t i v a i n g r a s s o VARCHAR( 2 0 ), t e c n i c a p r o s u t t i v a r i p r o d u z i o n e VARCHAR( 2 0 ), o r i e n t a m e n t o p r o d u t t i v o s t a l l a VARCHAR( 2 0 ),PRIMARY KEY ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a ),FOREIGN KEY ( s t a t o, p r o v i n c i a, comune, azienda ) REFERENCES azienda ON UPDATE CASCADE ) ; ALTER TABLE STRUTTURA ZOOTECNICA ADD CONSTRAINT c h e c k T i p o l o g i a CHECK( t i p o l o g i a= allevamento OR t i p o l o g i a= s t a l l a d i s o s t a OR t i p o l o g i a= f i e r a OR t i p o l o g i a= mercato OR t i p o l o g i a= c e n t r o d i r a c c o l t a OR t i p o l o g i a= punto d i s o s t a OR t i p o l o g i a= c e n t r o m a t e r i a l e g e n e t i c o ) ; ALTER TABLE STRUTTURA ZOOTECNICA ADD CONSTRAINT checkmodalitaallevamento CHECK( modalitaallevamento= s t a b u l a t o OR modalitaallevamento= semibrado ) ; ALTER TABLE STRUTTURA ZOOTECNICA ADD CONSTRAINT c h e c k T e c n i c a p r o d u t t i v a i n g r a s s o CHECK( t e c n i c a p r o d u t t i v a i n g r a s s o= c i c l o completo OR t e c n i c a p r o d u t t i v a i n g r a s s o= svezzamento OR t e c n i c a p r o d u t t i v a i n g r a s s o= magronaggio OR t e c n i c a p r o d u t t i v a i n g r a s s o= f i n i s s a g g i o ) ; ALTER TABLE STRUTTURA ZOOTECNICA ADD CONSTRAINT c h e c k T e c n i c a p r o s u t t i v a r i p r o d u z i o n e CHECK( t e c n i c a p r o s u t t i v a r i p r o d u z i o n e= c i c l o c h i u s o OR t e c n i c a p r o d u t t i v a i n g r a s s o= svezzamento OR t e c n i c a p r o d u t t i v a i n g r a s s o= magronaggio OR t e c n i c a p r o s u t t i v a r i p r o d u z i o n e= c i c l o a perto ) ; ALTER TABLE STRUTTURA ZOOTECNICA ADD CONSTRAINT c h e c k O r i e n t a m e n t o p r o d u t t i v o s t a l l a CHECK( o r i e n t a m e n t o p r o d u t t i v o s t a l l a= da macello OR o r i e n t a m e n t o p r o d u t t i v o s t a l l a= svezzamento OR t e c n i c a p r o d u t t i v a i n g r a s s o= magronaggio OR t e c n i c a p r o s u t t i v a r i p r o d u z i o n e= da v i t a ) ; CREATE TABLE p a r t i t a ( i d INTEGER PRIMARY KEY, t i p o a n i m a l e VARCHAR( 1 0 ) NOT NULL, d a t a n a s c i t a DATE NOT NULL, n u m e r o i n i z i a l e s c o f e INTEGER NOT NULL DEFAULT 0, n u m e r o i n i z i a l e v e r r i INTEGER NOT NULL DEFAULT 0, d a t a m a c e l l a z i o n e DATE, s t a t o CHAR( 2 ), p r o v i n c i a CHAR( 2 ), comune CHAR( 3 ), azienda INTEGER, d i t t a CHAR( 1 6 ) 15

16 ,FOREIGN KEY ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a ) REFERENCES STRUTTURA ZOOTECNICA ON UPDATE CASCADE,FOREIGN KEY ( s t a t o, p r o v i n c i a, comune, azienda ) REFERENCES AZIENDA ON UPDATE CASCADE,FOREIGN KEY ( s t a t o ) REFERENCES STATO ) ; ALTER TABLE p a r t i t a ADD CONSTRAINT che ckparti tatipo CHECK ( t i p o a n i m a l e= maiale OR t i p o a n i m a l e= c i n c h i a l e ) ; CREATE TABLE d e c e s s o ( p a r t i t a INTEGER REFERENCES p a r t i t a ( i d ) ON UPDATE CASCADE, data DATE, numeroscrofe INTEGER NOT NULL DEFAULT 0, numeroverri INTEGER NOT NULL DEFAULT 0,CHECK ( numeroscrofe+numeroverri >0),PRIMARY KEY ( p a r t i t a, data ) ) ; CREATE TABLE movimentazione ( p a r t i t a INTEGER, datapartenza TIMESTAMP, c a u s a l e VARCHAR( 2 0 ), docaccompagnatorio VARCHAR( 2 0 ), d a t a a r r i v o TIMESTAMP, d a s t a t o CHAR( 2 ) NOT NULL, d a p r o v i n c i a CHAR( 2 ), dacomune CHAR( 3 ), daazienda INTEGER, d a d i t t a CHAR( 1 6 ), a s t a t o CHAR( 2 ) NOT NULL, a p r o v i n c i a CHAR( 2 ), acomune CHAR( 3 ), aazienda INTEGER, a d i t t a CHAR( 1 6 ),PRIMARY KEY ( p a r t i t a, datapartenza ),FOREIGN KEY ( dastato, daprovincia, dacomune, daazienda, d a d i t t a ) REFERENCES s t r u t t u r a z o o t e c n i c a ON UPDATE CASCADE,FOREIGN KEY ( dastato, daprovincia, dacomune, daazienda ) REFERENCES azienda ON UPDATE CASCADE,FOREIGN KEY ( d a s t a t o ) REFERENCES s t a t o ON UPDATE CASCADE,FOREIGN KEY ( astato, a p r o v i n c i a, acomune, aazienda, a d i t t a ) REFERENCES s t r u t t u r a z o o t e c n i c a ON UPDATE CASCADE,FOREIGN KEY ( astato, a p r o v i n c i a, acomune, aazienda ) REFERENCES azienda ON UPDATE CASCADE,FOREIGN KEY ( a s t a t o ) REFERENCES s t a t o ON UPDATE CASCADE,FOREIGN KEY ( p a r t i t a ) REFERENCES p a r t i t a ON UPDATE CASCADE,CHECK ( d a d i t t a IS NOT NULL OR a d i t t a IS NOT NULL) ) ; CREATE TABLE persona ( c o d i c e f i s c a l e CHAR( 1 6 ) PRIMARY KEY, nome VARCHAR( 2 0 ) NOT NULL, cognome VARCHAR( 2 0 ) NOT NULL, v i a VARCHAR( 5 0 ) NOT NULL, numero VARCHAR( 5 ) NOT NULL, s t a t o CHAR( 2 ) NOT NULL, p r o v i n c i a CHAR( 2 ) NOT NULL, comune CHAR( 3 ) NOT NULL,FOREIGN KEY ( s t a t o, p r o v i n c i a, comune ) REFERENCES comune ON UPDATE CASCADE ) ; 16

17 CREATE TABLE d e t e n t o r e ( s t a t o CHAR( 2 ), p r o v i n c i a CHAR( 2 ), comune CHAR( 3 ), azienda INTEGER, d i t t a CHAR( 1 6 ), persona CHAR( 1 6 ),PRIMARY KEY ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, persona ),FOREIGN KEY ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a ) REFERENCES STRUTTURA ZOOTECNICA ON UPDATE CASCADE,FOREIGN KEY ( persona ) REFERENCES persona ( c o d i c e f i s c a l e ) ON UPDATE CASCADE ) ; CREATE TABLE t e l e f o n o ( d i t t a CHAR( 1 6 ) REFERENCES d i t t a ( c o d i c e f i s c a l e ) ON UPDATE CASCADE ON DELETE CASCADE, t e l e f o n o VARCHAR( 1 0 ),PRIMARY KEY ( d i t t a, t e l e f o n o ) ) ; Note versione: si ricorda che il precedente codice può essere eseguito sia su PostGIS 1.5 che 2. Nel secondo caso però, vista la trasformazione della tabella geometry columns in una vista, le colonne spaziali posso essere inserite direttamente nella tabella come nel seguente esempio: CREATE TABLE azienda ( s t a t o CHAR( 2 ), p r o v i n c i a CHAR( 2 ), comune CHAR( 3 ), p r o g r e s s i v o INTEGER, v i a VARCHAR( 5 0 ) NOT NULL, numero VARCHAR( 5 ) NOT NULL, the geom geometry (POINT, ),PRIMARY KEY ( s t a t o, p r o v i n c i a, comune, p r o g r e s s i v o ),FOREIGN KEY ( s t a t o, p r o v i n c i a, comune ) REFERENCES comune ON UPDATE CASCADE ) ; A scopo di esempio si riporta la creazione di alcuni trigger. Il primo insieme di trigger è necessario per gestire automaticamente il valore dell attributo derivato numeromaiali e numerocinghiali nella tabella STRUTTURA ZOOTECNICA: a l l a n a s c i t a CREATE OR REPLACE FUNCTION p a r t i t a i n s e r t ( ) RETURNS t r i g g e r AS $BODY$ BEGIN IF new. d i t t a IS NOT NULL THEN IF new. t i p o a n i m a l e= maiale THEN UPDATE STRUTTURA ZOOTECNICA SET numeromaiali = numeromaiali + new. n u m e r o i n i z i a l e s c o f e + new. n u m e r o i n i z i a l e v e r r i WHERE new. s t a t o=s t a t o AND new. p r o v i n c i a=p r o v i n c i a AND new. comune =comune AND new. azienda=azienda AND new. d i t t a=d i t t a ; ELSE UPDATE STRUTTURA ZOOTECNICA SET n u m e r o c i n g h i a l i = n u m e r o c i n g h i a l i + new. n u m e r o i n i z i a l e s c o f e + new. n u m e r o i n i z i a l e v e r r i 17

18 WHERE new. s t a t o=s t a t o AND new. p r o v i n c i a=p r o v i n c i a AND new. comune =comune AND new. azienda=azienda AND new. d i t t a=d i t t a ; END IF ; END IF ; RETURN new ; END; $BODY$ LANGUAGE p l p g s q l ; b i s o g n e r e b b e p r e v e d e r e t r i g g e r anche i n caso d i m o d i f i c a e c a n c e l l a z i o n e CREATE TRIGGER t p a r t i t a i n s e r t AFTER INSERT ON p a r t i t a FOR EACH ROW EXECUTE PROCEDURE p a r t i t a i n s e r t ( ) ; a l d e c e s s o CREATE OR REPLACE FUNCTION d e c e s s o i n s e r t ( ) RETURNS t r i g g e r AS $BODY$ DECLARE v t i p o a n i m a l e VARCHAR( 1 0 ) ; v s t a t o CHAR( 2 ) ; v p r o v i n c i a CHAR( 3 ) ; vcomune CHAR( 3 ) ; vazienda INTEGER; v d i t t a VARCHAR( 1 6 ) ; BEGIN SELECT t i p o a n i m a l e INTO v t i p o a n i m a l e FROM PARTITA WHERE new. p a r t i t a=i d ; l a r e g i s t r a z i o n e d e l d e c e s s o d o v r e b b e e s s e r e f a t t a s o l o da c h i ha l a p a r t i t a SELECT astato, a p r o v i n c i a, acomune, aazienda, a d i t t a INTO vstato, v p r o v i n c i a, vcomune, vazienda, v d i t t a FROM MOVIMENTAZIONE WHERE p a r t i t a=new. p a r t i t a AND d a t a a r r i v o = (SELECT MAX( d a t a a r r i v o ) FROM MOVIMENTAZIONE AS M1 WHERE M1. p a r t i t a=new. p a r t i t a ) ; s e non c è almeno una movimentazione l a p a r t i t a deve e s s e r e nata i n una s t r u t t u r a z o o t e c n i c a s u l t e r r i t o r i o i t a l i a n o IF v s t a t o IS NULL THEN SELECT P. s t a t o, P. p r o v i n c i a, P. comune, P. azienda, P. d i t t a INTO vstato, v p r o v i n c i a, vcomune, vazienda, v d i t t a FROM PARTITA AS P WHERE new. p a r t i t a=p. i d ; END IF ; IF v t i p o a n i m a l e= maiale THEN UPDATE STRUTTURA ZOOTECNICA SET numeromaiali = numeromaiali new. numeroscrofe new. numeroverri WHERE s t a t o=v s t a t o AND p r o v i n c i a=v p r o v i n c i a AND comune=vcomune AND azienda=vazienda AND d i t t a=v d i t t a ; ELSE UPDATE STRUTTURA ZOOTECNICA SET n u m e r o c i n g h i a l i = n u m e r o c i n g h i a l i new. numeroscrofe new. numeroverri WHERE s t a t o=v s t a t o AND p r o v i n c i a=v p r o v i n c i a AND comune=vcomune AND azienda=vazienda AND d i t t a=v d i t t a ; END IF ; RETURN new ; END; $BODY$ LANGUAGE p l p g s q l ; b i s o g n e r e b b e p r e v e d e r e t r i g g e r anche i n caso d i m o d i f i c a e c a n c e l l a z i o n e CREATE TRIGGER t d e c e s s o i n s e r t AFTER INSERT ON d e c e s s o 18

19 FOR EACH ROW EXECUTE PROCEDURE d e c e s s o i n s e r t ( ) ; a l l a movimentazione CREATE OR REPLACE FUNCTION m o v i m e n t a z i o n e i n s e r t ( ) RETURNS t r i g g e r AS $BODY$ DECLARE v t i p o a n i m a l e VARCHAR( 1 0 ) ; v n u m e r o i n i z i a l e s c r o f e INTEGER; v n u m e r o i n i z i a l e v e r r i INTEGER; v n u m e r o d e c e s s i s c r o f e INTEGER; v n u m e r o d e c e s s i v e r r i INTEGER; BEGIN SELECT tipoanimale, n u m e r o i n i z i a l e s c o f e, n u m e r o i n i z i a l e v e r r i INTO vtipoanimale, v n u m e r o i n i z i a l e s c r o f e, v n u m e r o i n i z i a l e v e r r i FROM PARTITA WHERE new. p a r t i t a=i d ; SELECT SUM( numeroscrofe ),SUM( numeroverri ) INTO v n u m e r o d e c e s s i s c r o f e, v n u m e r o d e c e s s i v e r r i FROM DECESSO WHERE new. p a r t i t a=p a r t i t a ; IF v n u m e r o d e c e s s i s c r o f e IS NULL THEN v n u m e r o d e c e s s i s c r o f e =0; END IF ; IF v n u m e r o d e c e s s i v e r r i IS NULL THEN v n u m e r o d e c e s s i v e r r i =0; END IF ; IF v t i p o a n i m a l e= maiale THEN UPDATE STRUTTURA ZOOTECNICA SET numeromaiali = numeromaiali + v n u m e r o i n i z i a l e s c r o f e + v n u m e r o i n i z i a l e v e r r i v n u m e r o d e c e s s i s c r o f e v n u m e r o d e c e s s i v e r r i WHERE s t a t o=new. a s t a t o AND p r o v i n c i a=new. a p r o v i n c i a AND comune= new. acomune AND azienda=new. aazienda AND d i t t a=new. a d i t t a ; UPDATE STRUTTURA ZOOTECNICA SET numeromaiali = numeromaiali v n u m e r o i n i z i a l e s c r o f e v n u m e r o i n i z i a l e v e r r i + v n u m e r o d e c e s s i s c r o f e + v n u m e r o d e c e s s i v e r r i WHERE s t a t o=new. d a s t a t o AND p r o v i n c i a=new. d a p r o v i n c i a AND comune= new. dacomune AND azienda=new. daazienda AND d i t t a=new. a d i t t a ; ELSE UPDATE STRUTTURA ZOOTECNICA SET n u m e r o c i n g h i a l i = n u m e r o c i n g h i a l i + v n u m e r o i n i z i a l e s c r o f e + v n u m e r o i n i z i a l e v e r r i v n u m e r o d e c e s s i s c r o f e v n u m e r o d e c e s s i v e r r i WHERE s t a t o=new. a s t a t o AND p r o v i n c i a=new. a p r o v i n c i a AND comune= new. acomune AND azienda=new. aazienda AND d i t t a=new. a d i t t a ; UPDATE STRUTTURA ZOOTECNICA SET n u m e r o c i n g h i a l i = n u m e r o c i n g h i a l e v n u m e r o i n i z i a l e s c r o f e v n u m e r o i n i z i a l e v e r r i + v n u m e r o d e c e s s i s c r o f e + v n u m e r o d e c e s s i v e r r i WHERE s t a t o=new. d a s t a t o AND p r o v i n c i a=new. d a p r o v i n c i a AND comune= new. dacomune AND azienda=new. daazienda AND d i t t a=new. d a d i t t a ; END IF ; RETURN new ; END; $BODY$ LANGUAGE p l p g s q l ; b i s o g n e r e b b e p r e v e d e r e t r i g g e r anche i n caso d i m o d i f i c a e c a n c e l l a z i o n e CREATE TRIGGER t m o v i m e n t a z i o n e i n s e r t AFTER INSERT ON movimentazione FOR EACH ROW EXECUTE PROCEDURE m o v i m e n t a z i o n e i n s e r t ( ) ; a l l a m a c e l l a z i o n e 19

20 CREATE OR REPLACE FUNCTION p a r t i t a u p d a t e ( ) RETURNS t r i g g e r AS $BODY$ DECLARE v n u m e r o i n i z i a l e s c r o f e INTEGER; v n u m e r o i n i z i a l e v e r r i INTEGER; v n u m e r o d e c e s s i s c r o f e INTEGER; v n u m e r o d e c e s s i v e r r i INTEGER; v s t a t o CHAR( 2 ) ; v p r o v i n c i a CHAR( 3 ) ; vcomune CHAR( 3 ) ; vazienda INTEGER; v d i t t a VARCHAR( 1 6 ) ; BEGIN IF ( new. d a t a m a c e l l a z i o n e IS NOT NULL AND old. d a t a m a c e l l a z i o n e IS NULL) THEN SELECT SUM( numeroscrofe ),SUM( numeroverri ) INTO v n u m e r o d e c e s s i s c r o f e, v n u m e r o d e c e s s i v e r r i FROM DECESSO WHERE new. i d=p a r t i t a ; IF v n u m e r o d e c e s s i s c r o f e IS NULL THEN v n u m e r o d e c e s s i s c r o f e =0; END IF ; IF v n u m e r o d e c e s s i v e r r i IS NULL THEN v n u m e r o d e c e s s i v e r r i =0; END IF ; l a r e g i s t r a z i o n e d e l d e c e s s o d o v r e b b e e s s e r e f a t t a s o l o da c h i ha l a p a r t i t a SELECT astato, a p r o v i n c i a, acomune, aazienda, a d i t t a INTO vstato, v p r o v i n c i a, vcomune, vazienda, v d i t t a FROM MOVIMENTAZIONE WHERE p a r t i t a=new. i d AND d a t a a r r i v o = (SELECT MAX( d a t a a r r i v o ) FROM MOVIMENTAZIONE AS M1 WHERE M1. p a r t i t a =new. i d ) ; s e non c è almeno una movimentazione l a p a r t i t a deve e s s e r e nata i n una s t r u t t u r a z o o t e c n i c a s u l t e r r i t o r i o i t a l i a n o IF v s t a t o IS NULL THEN SELECT P. s t a t o, P. p r o v i n c i a, P. comune, P. azienda, P. d i t t a INTO vstato, v p r o v i n c i a, vcomune, vazienda, v d i t t a FROM PARTITA AS P WHERE new. i d=p. i d ; END IF ; IF new. t i p o a n i m a l e= maiale THEN UPDATE STRUTTURA ZOOTECNICA SET numeromaiali = numeromaiali old. n u m e r o i n i z i a l e s c o f e old. n u m e r o i n i z i a l e v e r r i + v n u m e r o d e c e s s i s c r o f e + v n u m e r o d e c e s s i v e r r i WHERE s t a t o=v s t a t o AND p r o v i n c i a=v p r o v i n c i a AND comune=vcomune AND azienda=vazienda AND d i t t a=v d i t t a ; ELSE UPDATE STRUTTURA ZOOTECNICA SET n u m e r o c i n g h i a l i = n u m e r o c i n g h i a l e old. n u m e r o i n i z i a l e s c o f e old. n u m e r o i n i z i a l e v e r r i + v n u m e r o d e c e s s i s c r o f e + v n u m e r o d e c e s s i v e r r i WHERE s t a t o=v s t a t o AND p r o v i n c i a=v p r o v i n c i a AND comune=vcomune AND azienda=vazienda AND d i t t a=v d i t t a ; END IF ; END IF ; RETURN new ; END; $BODY$ LANGUAGE p l p g s q l ; b i s o g n e r e b b e p r e v e d e r e t r i g g e r anche i n caso d i m o d i f i c a e c a n c e l l a z i o n e CREATE TRIGGER t p a r t i t a u p d a t e AFTER UPDATE ON p a r t i t a 20

21 FOR EACH ROW EXECUTE PROCEDURE p a r t i t a u p d a t e ( ) ; Vanno introdotti anche alcuni trigger per controllare i vincoli spaziali definiti attraverso le relazioni. Ad esempio per la relazione topologica locazione uno dei trigger necessari è il seguente: CREATE OR REPLACE FUNCTION a z i e n d a i n s e r t ( ) RETURNS t r i g g e r AS $BODY$ DECLARE conta INTEGER; BEGIN SELECT count ( ) INTO conta FROM COMUNE WHERE ST CONTAINS( the geom, new. the geom ) AND new. s t a t o=s t a t o AND new. p r o v i n c i a=p r o v i n c i a AND new. comune =c o d i c e i s t a t ; IF conta=0 THEN RAISE EXCEPTION Vincolo s p a z i a l e e r r a t o ( punto non i n c l u s o n e l comune )! ; ELSE RETURN new ; END IF ; END; $BODY$ LANGUAGE p l p g s q l ; CREATE TRIGGER t p a r t i t a u p d a t e BEFORE INSERT OR UPDATE ON azienda FOR EACH ROW EXECUTE PROCEDURE a z i e n d a i n s e r t ( ) ; 4.2 Popolamento della base di dati Procediamo inizialmente tralasciando le componenti spaziali delle tabelle COMUNE, PROVINCIA, STATO: INSERIMENTO STATO INSERT INTO s t a t o ( s i g l a, nome ) VALUES ( IT, ITALIA ), ( AU, AUSTRIA ), ( SV, SVIZZERA ), ( US, USA ) ; INSERIMENTO PROVINCIA INSERT INTO p r o v i n c i a ( s t a t o, s i g l a, nome, c o d i c e i s t a t ) VALUES ( IT, UD, UDINE, 030 ), ( IT, PN, PORDENONE, 093 ) ; INSERIMENTO COMUNE INSERT INTO comune ( s t a t o, p r o v i n c i a, c o d i c e i s t a t, nome ) VALUES ( IT, UD, 129, UDINE ), ( IT, UD, 118, TAVAGNACCO ), ( IT, UD, 068, PAGNACCO ), ( IT, PN, 033, PORDENONE ) ; INSERIMENTO AZIENDA INSERT INTO azienda ( s t a t o, p r o v i n c i a, comune, p r o g r e s s i v o, via, numero ) VALUES ( IT, UD, 129, 1, Via Nazionale, 10/A ) ; INSERT INTO azienda ( s t a t o, p r o v i n c i a, comune, p r o g r e s s i v o, via, numero ) VALUES ( IT, UD, 129, 2, Via Nazionale, 103 ) ; INSERT INTO azienda ( s t a t o, p r o v i n c i a, comune, p r o g r e s s i v o, via, numero ) VALUES ( IT, UD, 118, 1, Via Udine, 20 ) ; INSERIMENTO DITTA INSERT INTO DITTA ( c o d i c e f i s c a l e, r a g i o n e s o c i a l e, via, numero, s t a t o, p r o v i n c i a, comune ) VALUES ( , FRIULI SUINI, Via Nazionale, 10/A, IT, UD, 129 ) ; 21

22 INSERT INTO DITTA ( c o d i c e f i s c a l e, r a g i o n e s o c i a l e, via, numero, s t a t o, p r o v i n c i a, comune ) VALUES ( , AGRARIA, Via Fortunato, 101, IT, UD, 118 ) ; INSERT INTO DITTA ( c o d i c e f i s c a l e, r a g i o n e s o c i a l e, via, numero, s t a t o, p r o v i n c i a, comune ) VALUES ( , CENTRO AGRARIO, Via R o s s e l l i, 60, IT, UD, 118 ) ; INSERIMENTO TELEFONO INSERT INTO TELEFONO ( d i t t a, t e l e f o n o ) VALUES ( , ) ; INSERT INTO TELEFONO ( d i t t a, t e l e f o n o ) VALUES ( , ) ; INSERT INTO TELEFONO ( d i t t a, t e l e f o n o ) VALUES ( , ) ; INSERT INTO TELEFONO ( d i t t a, t e l e f o n o ) VALUES ( , ) ; INSERIMENTO STRUTTURA ZOOTECNICA INSERT INTO s t r u t t u r a z o o t e c n i c a ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, c a p a c i t a, numeromaiali, n u m e r o c i n g h i a l i, t i p o l o g i a, modalitaallevamento, m u l t i s i t o, f a m i l i a r e, s t a g i o n a l e, t e c n i c a p r o d u t t i v a i n g r a s s o, t e c n i c a p r o s u t t i v a r i p r o d u z i o n e, o r i e n t a m e n t o p r o d u t t i v o s t a l l a ) VALUES ( IT, UD, 129, 1, , , 0, 0, allevamento, s t a b u l a t o, f a l s e, f a l s e, f a l s e, c i c l o completo, n u l l, n u l l ) ; INSERT INTO s t r u t t u r a z o o t e c n i c a ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, c a p a c i t a, numeromaiali, n u m e r o c i n g h i a l i, t i p o l o g i a, modalitaallevamento, m u l t i s i t o, f a m i l i a r e, s t a g i o n a l e, t e c n i c a p r o d u t t i v a i n g r a s s o ) VALUES ( IT, UD, 129, 1, , 9 0 0, 0, 0, allevamento, s t a b u l a t o, f a l s e, f a l s e, f a l s e, magronaggio ) ; INSERT INTO s t r u t t u r a z o o t e c n i c a ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, c a p a c i t a, numeromaiali, n u m e r o c i n g h i a l i, t i p o l o g i a, modalitaallevamento, m u l t i s i t o, f a m i l i a r e, s t a g i o n a l e, t e c n i c a p r o d u t t i v a i n g r a s s o ) VALUES ( IT, UD, 118, 1, , 5 0 0, 0, 0, allevamento, s t a b u l a t o, f a l s e, f a l s e, f a l s e, c i c l o completo ) ; INSERT INTO s t r u t t u r a z o o t e c n i c a ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, c a p a c i t a, t i p o l o g i a ) VALUES ( IT, UD, 129, 2, ,5000, mercato ) ; INSERIMENTO PERSONA INSERT INTO persona ( c o d i c e f i s c a l e, nome, cognome, via, numero, s t a t o, p r o v i n c i a, comune ) VALUES ( RSSMRA77C60H816M, Mario, Rossi, Via Roma, 5, IT, UD, 129 ) ; INSERT INTO persona ( c o d i c e f i s c a l e, nome, cognome, via, numero, s t a t o, p r o v i n c i a, comune ) VALUES ( MRAMRC74D70N846X, Marcello, Mauro, V i a l e Tricesimo, 15/C, IT, UD, 118 ) ; INSERT INTO persona ( c o d i c e f i s c a l e, nome, cognome, via, numero, s t a t o, p r o v i n c i a, comune ) VALUES ( BNCMRA67C65H736L, Mauro, Bianchi, Via Roma, 104, IT, UD, 068 ) ; INSERT INTO persona ( c o d i c e f i s c a l e, nome, cognome, via, numero, s t a t o, p r o v i n c i a, comune ) VALUES ( BNCMRA81Y51H165M, Antonio, Bianchi, Piazza indipendenza, 1, IT, UD, 118 ) ; INSERIMENTO DETENTORE INSERT INTO d e t e n t o r e ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, persona ) VALUES ( IT, UD, 129, 1, , RSSMRA77C60H816M ) ; 22

23 INSERT INTO d e t e n t o r e ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, persona ) VALUES ( IT, UD, 129, 1, , BNCMRA81Y51H165M ) ; INSERT INTO d e t e n t o r e ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, persona ) VALUES ( IT, UD, 118, 1, , BNCMRA67C65H736L ) ; INSERT INTO d e t e n t o r e ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, persona ) VALUES ( IT, UD, 118, 1, , BNCMRA81Y51H165M ) ; INSERT INTO d e t e n t o r e ( s t a t o, p r o v i n c i a, comune, azienda, d i t t a, persona ) VALUES ( IT, UD, 129, 2, , MRAMRC74D70N846X ) ; INSERIMENTO PARTITA i n s e r i m e n t o a l l a n a s c i t a INSERT INTO PARTITA ( id, tipoanimale, d a t a n a s c i t a, n u m e r o i n i z i a l e s c o f e, n u m e r o i n i z i a l e v e r r i, d a t a m a c e l l a z i o n e, s t a t o, p r o v i n c i a, comune, azienda, d i t t a ) VALUES(1, maiale, 01/11/2012, 2 0, 2 0,NULL, IT, UD, 129, 1, ) ; i n s e r i m e n t o p a r t i t a d a l l e s t e r o ( s e g u e r e l a t i v a movimentazione ) INSERT INTO PARTITA ( id, tipoanimale, d a t a n a s c i t a, n u m e r o i n i z i a l e s c o f e, n u m e r o i n i z i a l e v e r r i, d a t a m a c e l l a z i o n e, s t a t o, p r o v i n c i a, comune, azienda, d i t t a ) VALUES(2, maiale, 01/11/2012, 2 0, 2 0,NULL, US,NULL,NULL,NULL, NULL) ; INSERIMENTO DECESSO INSERT INTO DECESSO( p a r t i t a, data, numeroscrofe, numeroverri ) VALUES ( 1, 20/11/2012, 1, 2 ) ; INSERIMENTO MOVIMENTAZIONE esempio b l o c c a t o da v i n c o l o c h e c k INSERT INTO movimentazione ( p a r t i t a, datapartenza, c a u s a l e, docaccompagnatorio, d a t a a r r i v o, dastato, a s t a t o ) VALUES ( 2, 19/11/2012, a c q u i s t o, DDT.11 19/11/2012, 20/11/2012, US, US ) ; esempio c o r r e t t o INSERT INTO movimentazione ( p a r t i t a, datapartenza, c a u s a l e, docaccompagnatorio, d a t a a r r i v o, dastato, daprovincia, dacomune, daazienda, daditta, astato, a p r o v i n c i a, acomune, aazienda, a d i t t a ) VALUES ( 2, 19/11/2012, a c q u i s t o, DDT /11/2012, 21/11/2012, US, n u l l, n u l l, n u l l, n u l l, IT, UD, 129, 1, ) ; MACELLAZIONE PARTITA UPDATE PARTITA SET d a t a m a c e l l a z i o n e= 26/11/2012 WHERE i d =2; Per quanto riguarda la componente spaziale, eseguiamo preliminarmente l importazione dei dati dei comuni italiani da shapefile attraverso la funzione Shape File to PostGIS Importer rappresentata in Figura 4. Successivamente operiamo modificando le istanze preliminarmente inserire 3. A partire dai dati dei comuni italiani è possibile recuperare la geometria dei comuni precedentemente inseriti: UPDATE comune SET the geom = (SELECT C. geom 3 Si potrebbe ovviamente fare direttamente degli inserimenti a partire dalla tabella importata ma per procedere per passi (prima l SQL standard e poi l estensione spaziale) seguiamo questa sequenza di passi. 23

24 Figura 4: Interfaccia per l importazione di file shape FROM c o m u n i g e o p o r t a l e n a z i o n a l e a s c j o i n p r o v i n c i a a s p on c. c o d p r o v i n=p. c o d i c e i s t a t WHERE p. s i g l a=comune. p r o v i n c i a AND comune. c o d i c e i s t a t =c. cod comune ) ; Sempre a partire dai dati dei comuni italiani è possibile ricostruire le geometrie delle province precedentemente inserite nella tabella PROVINIA e dello stato italiano: UPDATE p r o v i n c i a SET the geom = (SELECT ST MULTI(ST UNION( geom ) ) FROM COMUNI geoportalenazionale WHERE p r o v i n c i a. nome=p r o v i n c i a ) ; UPDATE s t a t o SET the geom = (SELECT ST MULTI(ST UNION( geom ) ) FROM COMUNI geoportalenazionale ) WHERE s i g l a= IT ; Volendo poi inserire manualmente i punti associati alle aziende si può procedere come segue: UPDATE AZIENDA SET the geom=st PointFromText ( POINT( ),4326) WHERE s t a t o= IT AND p r o v i n c i a= UD AND comune= 129 AND p r o g r e s s i v o = 1 ; UPDATE AZIENDA 24

25 SET the geom=st PointFromText ( POINT( ),4326) WHERE s t a t o= IT AND p r o v i n c i a= UD AND comune= 129 AND p r o g r e s s i v o = 2 ; UPDATE AZIENDA SET the geom=st PointFromText ( POINT( ),4326) WHERE s t a t o= IT AND p r o v i n c i a= UD AND comune= 118 AND p r o g r e s s i v o = 1 ; 4.3 Interrogazione dei dati Determinare la tipologia e la capacità di ogni struttura zootecnica: SELECT s t a t o, p r o v i n c i a, comune, azienda, d i t t a, t i p o l o g i a, c a p a c i t a FROM STRUTTURA ZOOTECNICA; Determinare tutti i dati associabili direttamente ad ogni struttura zootecnica di tipo allevamento: SELECT FROM STRUTTURA ZOOTECNICA WHERE t i p o= allevamento ; Determinare il numero degli animali presenti in ogni struttura zootecnica (maiali + cinghiali) di tipo allevamento: SELECT s t a t o, p r o v i n c i a, comune, azienda, d i t t a, m a i a l i+c i n g h i a l i a s numeroanimali FROM STRUTTURA ZOOTECNICA WHERE t i p o= allevamento ; Determinare le distente tipologie di strutture zootecniche esistenti: SELECT DISTINCT FROM STRUTTURA ZOOTECNICA; Determinare il codice fiscale e la denominazione delle ditte associate a ogni struttura zootecnica di tipo allevamento: SELECT DISTINCT SZ. d i t t a, D. r a g i o n e s o c i a l e FROM STRUTTURA ZOOTECNICA a s SZ, DITTA a s D WHERE SZ. d i t t a=d. c o d i c e f i s c a l e AND SZ. t i p o l o g i a= allevamento ; SELECT DISTINCT SZ. d i t t a, D. r a g i o n e s o c i a l e FROM STRUTTURA ZOOTECNICA a s SZ JOIN DITTA a s D ON SZ. d i t t a=d. c o d i c e f i s c a l e WHERE SZ. t i p o l o g i a= allevamento ; Determinare il codice fiscale, la denominazione e il comune delle ditte associate a ogni struttura zootecnica di tipo allevamento: SELECT DISTINCT SZ. d i t t a, D. r a g i o n e s o c i a l e, C. nome a s comune FROM STRUTTURA ZOOTECNICA a s SZ, DITTA a s D, COMUNE a s C WHERE SZ. d i t t a=d. c o d i c e f i s c a l e AND SZ. t i p o l o g i a= allevamento AND D. s t a t o=c. s t a t o AND D. p r o v i n c i a=c. p r o v i n c i a AND D. comune=c. c o d i c e i s t a t ; 25

26 SELECT DISTINCT SZ. d i t t a, D. r a g i o n e s o c i a l e, C. nome a s comune FROM STRUTTURA ZOOTECNICA a s SZ JOIN DITTA a s D ON SZ. d i t t a=d. c o d i c e f i s c a l e JOIN COMUNE a s C ON D. s t a t o=c. s t a t o AND D. p r o v i n c i a=c. p r o v i n c i a AND D. comune=c. c o d i c e i s t a t WHERE SZ. t i p o l o g i a= allevamento ; Determinare il codice fiscale delle ditte associate a più di una struttura zootecnica: SELECT DISTINCT SZ1. d i t t a FROM STRUTTURA ZOOTECNICA a s SZ1, STRUTTURA ZOOTECNICA a s SZ2 WHERE SZ1. d i t t a=sz2. d i t t a AND ( SZ1. s t a t o <>SZ2. s t a t o OR SZ1. p r o v i n c i a <>SZ2. p r o v i n c i a OR SZ1. comune<>sz2. comune OR SZ1. azienda <>SZ2. azienda ) ; Determinare la ragione sociale delle ditte associate a più di una struttura zootecnica: SELECT DISTINCT D. r a g i o n e s o c i a l e FROM STRUTTURA ZOOTECNICA a s SZ1, STRUTTURA ZOOTECNICA a s SZ2 JOIN DITTA a s D ON SZ2. d i t t a=d. c o d i c e f i s c a l e WHERE SZ1. d i t t a=sz2. d i t t a AND ( SZ1. s t a t o <>SZ2. s t a t o OR SZ1. p r o v i n c i a <>SZ2. p r o v i n c i a OR SZ1. comune<>sz2. comune OR SZ1. azienda <>SZ2. azienda ) ; Determinare i nomi che risultano essere anche dei cognomi: SELECT nome FROM PERSONA INTERSECT SELECT cognome FROM PERSONA Determinare il numero di aziende nel comune di Udine: SELECT COUNT( ) a s numeroaziendeudine FROM AZIENDA a s A JOIN COMUNE a s C ON A. s t a t o=c. s t a t o AND A. p r o v i n c i a=c. p r o v i n c i a AND A. comune=c. c o d i c e I s t a t WHERE C. nome= UDINE ; Determinare il numero complessivo di maiali per struttura zootecnica ordinando il risultato secondo l ordine crescente dei codici: SELECT s t a t o, p r o v i n c i a, comune, d i t t a, SUM( numeromaiali ) a s numeromaialicomplessivo FROM STRUTTURA ZOOTECNICA ORDER BY s t a t o, p r o v i n c i a, comune, d i t t a ; Determinare il numero complessivo di animali (maiali è cinghiali) per struttura zootecnica ordinando il risultato secondo l ordine decrescente del numero di animali: SELECT s t a t o, p r o v i n c i a, comune, d i t t a, SUM( numeromaiali+ n u m e r o c i n g h i a l i ) a s numeromaialicomplessivo FROM STRUTTURA ZOOTECNICA ORDER BY SUM( numeromaiali+n u m e r o c i n g h i a l i ) DESC; Determinare i comuni con almeno 2 aziende: 26

27 SELECT DISTINCT a1. s t a t o, a1. p r o v i n c i a, a1. comune FROM azienda a s a1, azienda a s a2 WHERE a1. s t a t o=a2. s t a t o and a1. p r o v i n c i a=a2. p r o v i n c i a and a1. comune=a2. comune and a1. p r o g r e s s i v o <>a2. p r o g r e s s i v o ; SELECT s t a t o, p r o v i n c i a, comune, p r o g r e s s i v o, COUNT( ) a s numeroaziende FROM AZIENDA GROUP BY s t a t o, p r o v i n c i a, comune HAVING COUNT( ) >1; Determinare per ogni comune il numero di aziende, anche per i comuni che non ne hanno (soluzione con l uso delle viste): CREATE VIEW numeroaziendepercomune AS SELECT s t a t o, p r o v i n c i a, comune, p r o g r e s s i v o, COUNT( ) a s numeroaziende FROM AZIENDA GROUP BY s t a t o, p r o v i n c i a, comune ; SELECT nome, numeroaziende FROM numeroaziendepercomune a s v RIGHT OUTER JOIN comune a s c ON v. s t a t o=c. s t a t o and v. p r o v i n c i a=c. p r o v i n c i a and v. comune=c. c o d i c e i s t a t ; Determinare la ragione sociale della struttura zootecnica con il maggior numero di maiali (potrebbe essere anche più di una): SELECT r a g i o n e s o c i a l e FROM DITTA JOIN STRUTTURA ZOOTECNICA ON c o d i c e f i s c a l e=d i t t a WHERE numeromaiali IN (SELECT MAX( numeromaiali ) FROM STRUTTURA ZOOTECNICA) ; SELECT r a g i o n e s o c i a l e FROM DITTA JOIN STRUTTURA ZOOTECNICA a s SZ ON c o d i c e f i s c a l e=sz. d i t t a WHERE NOT EXISTS (SELECT FROM STRUTTURA ZOOTECNICA WHERE numeromaiali>sz. numeromaiali ) ; Determinare le strutture zootecniche che attualmente hanno animali nati fuori dall italia ma che nella loro attività non hanno mai fatto importazioni: s t r u t t u r e che p o s s i e d o n o a t t u a l m e n t e a n i m a l i non i t a l i a n i SELECT M. astato, M. a p r o v i n c i a, M. acomune, M. aazienda, M. a d i t t a FROM PARTITA a s P JOIN MOVIMENTAZIONI a s M ON P. i d=m. p a r t i t a WHERE P. d i t t a IS NULL AND P. d a t a m a c e l l a z i o n e IS NULL AND M. datapartenza IN (SELECT MAX( datapartenza ) FROM MOVIMENTAZIONE WHERE M. p a r t i t a=p a r t i t a ) EXCEPT s t r u t t u r e che hanno e f f e t t u a t o i m p o r t a z i o n i SELECT astato, a p r o v i n c i a, acomune, aazienda, a d i t t a FROM MOVIMENTAZIONI WHERE d a d i t t a IS NULL 27

ESAME di INFORMATICA e ARCHIVIAZIONE

ESAME di INFORMATICA e ARCHIVIAZIONE UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME di INFORMATICA e ARCHIVIAZIONE 28 settembre 2011 1 Progettazione

Dettagli

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME 14 maggio 2009 1 Progettazione di basi di dati Si vuole

Dettagli

ESAME di INFORMATICA e ARCHIVIAZIONE

ESAME di INFORMATICA e ARCHIVIAZIONE UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME di INFORMATICA e ARCHIVIAZIONE 22 giugno 2011 1 Progettazione

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli

Corso di Basi di Dati A.A. 2014/2015

Corso di Basi di Dati A.A. 2014/2015 Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2014/2015 Esercitazione su Progettazione Logica Tiziana Catarci, Andrea Marrella Ultimo aggiornamento :

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

Caso di Studio: SITI CONTAMINATI

Caso di Studio: SITI CONTAMINATI Caso di Studio: SITI CONTAMINATI L Anagrafe dei siti da bonificare, come strumento delle Regioni per la gestione delle implicazioni di natura tecnica, amministrativa, finanziaria, su tale tipologia di

Dettagli

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Si formulino le seguenti interrogazioni tramite il linguaggio SQL: Informatica per le Scienze Umane - Corso di Laurea in Lettere Appello del 15.01.2009 - Docente: Massimo Coppola Modello Relazionale e SQL Si consideri la seguente base di dati relativa alla redazione di

Dettagli

LE PRINCIPALI NORMATIVE DI RIFERIMENTO:

LE PRINCIPALI NORMATIVE DI RIFERIMENTO: LE PRINCIPALI NORMATIVE DI RIFERIMENTO: - D.P.R. 30 aprile 1996, n.317 Regolamento recante norme per l'attuazione dell direttiva 92/10/CEE relativa all'identifcazione e alla registrazione degli animali

Dettagli

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica Basi di Dati Corso di Laura in Informatica Umanistica Appello del 10/09/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: storia SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali,

Dettagli

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf Il linguaggio SQL: trigger Sistemi Informativi T Versione elettronica: 04.7.SQL.trigger.pdf DBMS attivi Un DBMS si dice attivoquando dispone di un sottosistema integrato per definire e gestire regole I

Dettagli

Caso di Studio: SITI CONTAMINATI

Caso di Studio: SITI CONTAMINATI UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Agraria CORSO DI LAUREA IN SCIENZE E TECNOLOGIE DELL AMBIENTE E DEL TERRITORIO Caso di Studio: SITI CONTAMINATI L Anagrafe dei siti da bonificare, come strumento

Dettagli

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo. Esame di Stato Istituto Tecnico Industriale Proposta di soluzione della seconda prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2003-2004 1. Schema concettuale della base di dati Lo schema

Dettagli

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL PER LA DEFINIZIONE DI BASI DI DATI SQL PER LA DEFINIZIONE DI BASI DI DATI SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle

Dettagli

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati: Gestione dei dati e della conoscenza, a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati: Si vuole modellare

Dettagli

Lezione 8. Metadati, Viste e Trigger

Lezione 8. Metadati, Viste e Trigger Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli

Dettagli

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Vincoli di Integrità Approccio dichiarativo alla loro implementazione Vincoli di Integrità Approccio dichiarativo alla loro implementazione Antonella Poggi Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico

Dettagli

Caso di Studio: ANAGRAFE AZIENDE AGRICOLE

Caso di Studio: ANAGRAFE AZIENDE AGRICOLE UNIVERSITÀ DEGLI STUDI DI UDINE Dipartimento di Scienze Agrarie CORSO DI LAUREA IN SCIENZE E TECNOLOGIE DELL AMBIENTE E DEL TERRITORIO Caso di Studio: ANAGRAFE AZIENDE AGRICOLE 1 Descrizione del dominio

Dettagli

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore DDL e progettazione Testi degli esercizi Esercizio 1 (Tema d esame del 20 settembre 2012 Si consideri il seguente schema di base di dati che vuole tenere

Dettagli

Soluzione DDL ed Algebra Relazionale

Soluzione DDL ed Algebra Relazionale Soluzione DDL ed Algebra Relazionale Banca del Tempo a Istruzioni DDL (realizzate con Toad Data Modeler -- CREATE TABLES SECTION ------------------------------------------------- -- Table Zona CREATE TABLE

Dettagli

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti.

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti. Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti. Indice Cognome Nome Matr.xxxxxx email Cognome Nome Mat. Yyyyyy email Argomento Pagina 1. Analisi dei requisiti 1 a. Requisiti espressi

Dettagli

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare informazioni relative a un sito di affitto

Dettagli

Definizione di domini

Definizione di domini Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain

Dettagli

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende. Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA DI CLASSE 5AI Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA

Dettagli

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il

Dettagli

Giovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema

Giovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema Giovanna Rosone 04/03/2010 04/03/2010 SQL, Istruzioni per la modifica dello schema 1 Riepilogo Impiegato Pagamenti Nome colonna PAG_COD PAG_MATR Tipo dati CHAR(6) CHAR(6) Nome colonna Tipo dati PAG_STIPENDIO

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

a) Si progetti uno schema concettuale Entità-Relazioni per lo scenario più sotto descritto.

a) Si progetti uno schema concettuale Entità-Relazioni per lo scenario più sotto descritto. RISOLUZIONE APPELLO SISTEMI INFORMATIVI DEL 12/02/2007 a Si progetti uno schema concettuale Entità-Relazioni per lo scenario più sotto descritto. Una base di dati deve essere utilizzata per gestire il

Dettagli

Istruzioni DML di SQL

Istruzioni DML di SQL Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,

Dettagli

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE.

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE. Si consideri il seguente schema relazionale, relaivo ad una base di dati per gestire la programmazione cinematografica giornaliera in un certo insieme di cinema: CINEMA(CodC, Nome, Indirizzo, Tel, NSale)

Dettagli

Nozione ed uso. Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso:

Nozione ed uso. Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: Nozione ed uso Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: Gestione di vincoli di integrità: Per fallimento Per modifica Auditing: Sicurezza Statistiche Valori derivati

Dettagli

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

SQL Sintassi Dei Comandi

SQL Sintassi Dei Comandi SQL Sintassi Dei Comandi Di Roberto Aloi http://prof3ta.homeunix.org prof3ta@email.it Questo fascicolo è stato realizzato esclusivamente a fini divulgativi e per la libera consultazione. E' concessa la

Dettagli

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini Dipartimento di Scienze Ambientali, Informatica e Statistica Università Ca Foscari Venezia La base di dati del

Dettagli

L ANAGRAFE ZOOTECNICA E L IDENTIFICAZIONE DEGLI OVI-CAPRINI ASL LEZIONE LAORE

L ANAGRAFE ZOOTECNICA E L IDENTIFICAZIONE DEGLI OVI-CAPRINI ASL LEZIONE LAORE L ANAGRAFE ZOOTECNICA E L IDENTIFICAZIONE DEGLI OVI-CAPRINI ASL LEZIONE LAORE L ANAGRAFE ZOOTECNICA E L IDENTIFICAZIONE DEGLI OVI-CAPRINI ASL LEZIONE LAORE TUTTO QUELLO CHE GLI ALLEVATORI DEVONO FARE PER

Dettagli

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare informazioni relative a pubblicazioni su riviste

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti

Dettagli

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 2007 Politecnico di Torino 1 Creazione

Dettagli

Basi di Dati. S Q L Lezione 5

Basi di Dati. S Q L Lezione 5 Basi di Dati S Q L Lezione 5 Antonio Virdis a.virdis@iet.unipi.it Sommario Gestione eventi Gestione dei privilegi Query Complesse 2 Esercizio 9 (lezione 4) Indicare nome e cognome, spesa e reddito annuali

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

Operazioni sui database

Operazioni sui database Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle

Dettagli

1 CARICAMENTO LOTTI ED ESISTENZE AD INIZIO ESERCIZIO

1 CARICAMENTO LOTTI ED ESISTENZE AD INIZIO ESERCIZIO GESTIONE LOTTI La gestione dei lotti viene abilitata tramite un flag nei Progressivi Ditta (è presente anche un flag per Considerare i Lotti con Esistenza Nulla negli elenchi visualizzati/stampati nelle

Dettagli

Gestione delle tabelle

Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza

Dettagli

Corso di Laboratorio di Basi di Dati

Corso di Laboratorio di Basi di Dati Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs

Dettagli

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE SQL e ACCESS Prof. Salvatore Multazzu (salvatoremultazzu@tiscali.it) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)

Dettagli

User Tools: DataBase Manager

User Tools: DataBase Manager Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

2104 volume III Programmazione

2104 volume III Programmazione 2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106

Dettagli

MEZZI CodM Tipo Targa AnnoI Assicurato

MEZZI CodM Tipo Targa AnnoI Assicurato Esercizio 1 Si consideri il seguente schema relazionale, relativo alla base di dati di un agenzia di assicurazioni: ASSICURATI(CodA, Nome, Cognome, Indirizzo, Telefono) POLIZZE(CodP, Data, Tipo, CodA,

Dettagli

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5 Domini elementari, Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati Bit Valori booleani (vero/falso), singoli o in sequenza (la sequenza può essere di lunghezza variabile) Sintassi: bit

Dettagli

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Istituto di Istruzione Superiore Alessandrini - Marino 1 Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Descrizione Un azienda commerciale che vende prodotti IT (computers,

Dettagli

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza Basi dati attive Triggers Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2009-2010 Una base di dati

Dettagli

sommario 1. introduzione al sistema 2. moduli base 3. tracciabilità e rintracciabilità 4. diagramma di flusso operativo 5.

sommario 1. introduzione al sistema 2. moduli base 3. tracciabilità e rintracciabilità 4. diagramma di flusso operativo 5. tracciabilità rintracciabilità e macellazione avicola sommario 1. introduzione al sistema 2. moduli base 2.1. anagrafica base 2.2. entrata partite avicole 2.3. macellazione partite 2.4. stoccaggio ed immagazzinamento

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 25 Luglio 2006 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la

Dettagli

Legislazione di riferimento

Legislazione di riferimento CHECK-LIST PER L ESECUZIONE DEL CONTROLLO SULL APPLICAZIONE DEL SISTEMA DI IDENTIFICAZIONE E REGISTRAZIONE DEGLI ANIMALI DELLA SPECIE BOVINA E BUFALINA AI SENSI DEL REGOLAMENTO (CE) 1082/03 E SUCCESSIVE

Dettagli

Linguaggio SQL. Structured Query Language

Linguaggio SQL. Structured Query Language Linguaggio SQL Structured Query Language Creato negli anni 70 presso IBM Inizialmente solo linguaggio di interrogazione Ora linguaggio di riferimento per DB relazionali Standardizzato grazie al lavoro

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7 ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni

Dettagli

Anagrafe Suina. Tutto quello che devono fare gli allevatori lombardi a partire dal mese di settembre 2008

Anagrafe Suina. Tutto quello che devono fare gli allevatori lombardi a partire dal mese di settembre 2008 Anagrafe Suina Tutto quello che devono fare gli allevatori lombardi a partire dal mese di settembre 2008 www.agricoltura.regione.lombardia.it www.sanita.regione.lombardia.it (Veterinaria) E possibile consultare

Dettagli

Linee guida per la programmazione di transazioni in PL/SQL

Linee guida per la programmazione di transazioni in PL/SQL Linee guida per la programmazione di transazioni in PL/SQL Giuseppe Berio Giuseppe Berio DI - Unito 1 Esempio La transazione deve registrare l evasione di un ordine, rappresentato su più tabelle specializzate

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date; CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione

Dettagli

Data management a.a. 2009-2010. Il linguaggio SQL

Data management a.a. 2009-2010. Il linguaggio SQL Data management a.a. 2009-2010 Il linguaggio SQL 1 Modello di database E' un database generico con anagrafica e movimenti di uso molto frequente: per esempio, clienti e fatture, studenti ed esami sostenuti,

Dettagli

Progettazione Logica. Progettazione Logica

Progettazione Logica. Progettazione Logica Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Tabelle per ogni concetto Docente: Cesare Colombo CEFRIEL colombo@cefriel.it http://www.cefriel.it Passaggio al modello logico (1)

Dettagli

Sistema Informativo Veterinario Regionale. Applicazione Interrogazione per Allevatori

Sistema Informativo Veterinario Regionale. Applicazione Interrogazione per Allevatori N Copia Destinatario UO PREVENZIONE TUTELA SANITARIA E VETERINARIA Sistema Informativo Veterinario Regionale Applicazione Interrogazione per Allevatori Codice Documento: MANUALE_ALLEVATORI Numero Versione:

Dettagli

Manuale di Aggiornamento BOLLETTINO. Rel. 5.20.1H4. DATALOG Soluzioni Integrate a 32 Bit

Manuale di Aggiornamento BOLLETTINO. Rel. 5.20.1H4. DATALOG Soluzioni Integrate a 32 Bit Manuale di Aggiornamento BOLLETTINO Rel. 5.20.1H4 DATALOG Soluzioni Integrate a 32 Bit - 2 - Manuale di Aggiornamento Sommario 1 2 PER APPLICARE L AGGIORNAMENTO... 3 1.1 Aggiornamento Patch Storica...

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

MAX, SUM, AVG, COUNT)

MAX, SUM, AVG, COUNT) INTRODUZIONE A SQL Definizione di tabelle e domini Alcuni vincoli di integrità Struttura base SELECT FROM WHERE Funzioni di aggregazione (MIN, MAX, SUM, AVG, COUNT) Query da più tabelle (FROM R1, Rk) Join

Dettagli

Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici

Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici Prerequisiti Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici L opzione Multimagazzino è disponibile per le versioni Azienda Light e Azienda Pro. Introduzione L opzione Multimagazzino

Dettagli

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione

Dettagli

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio Pillola operativa Integrazione Generazione Dettagli Contabili INFORMAZIONI

Dettagli

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1 Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1 Si consideri il seguente schema di base di dati che vuole tenere traccia delle attività di un autofficina. MECCANICO (CodiceFiscale,

Dettagli

Esame di stato 2004 Portfolio studente

Esame di stato 2004 Portfolio studente Esame di stato 2004 Portfolio studente Traccia Il Dirigente Scolastico di una Scuola Secondaria Superiore chiede che si realizzi una base di dati per l'archiviazione e la gestione di informazioni riguardanti

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio

Dettagli

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query: Basi di dati: appello 16/02/10 i consideri il seguente schema di base di dati che vuole tenere traccia delle informazioni relative ai partecipanti a gare podistiche in Lombardia CORSA (Codice, Nome, IndirizzoPartenza,

Dettagli

1.Tutte 2.Spesso P.IVAe le CF volte che si visualizza i dati un fornitore si mostranoanche. La mensa. La mensa

1.Tutte 2.Spesso P.IVAe le CF volte che si visualizza i dati un fornitore si mostranoanche. La mensa. La mensa Ristrutturare Osservazioni seguenti che possano indicazioni emergere lo schema sulle ER operazioni della slide frequenti successiva e indicando tenendo presenti i vincoli le 1.Tutte 2.Spesso P.IVAe le

Dettagli

Capitolo 7. Esercizio 7.1

Capitolo 7. Esercizio 7.1 Capitolo 7 Esercizio 7.1 Dato lo schema relazionale: IMPIEGATO (Nome, Salario, DipNum) DIPARTIMENTO (DipNum, NomeManager) Definire le seguenti regole attive in Oracle e DB2: 1. una regola, che quando il

Dettagli

Progetto di basi di dati Laboratorio di diagnosi mediche

Progetto di basi di dati Laboratorio di diagnosi mediche Progetto di basi di dati aboratorio di diagnosi mediche Descrizione e specifiche Si vuole realizzare il progetto della base di dati di laboratorio di diagnosi medica, partendo da un insieme di requisiti.

Dettagli

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti: Date le tabelle: Clienti := < id, nome, cognome, indirizzo,città > Ordini := < id, data_ora_ordine, id_prodotto, id_cliente, quantità> Prodotti := < id, nome, descrizione, costo,scorte > INDICI Prevediamo

Dettagli

Contenuto del SISVet e diritti d accesso

Contenuto del SISVet e diritti d accesso Allegato (art. 9 cpv. 3 e art. 12) Contenuto del SISVet e diritti d accesso Abbreviazioni e spiegazioni Ruoli utente UFV Coll. UFV Collaboratore dell UFV con ruolo di amministratore per il SISVet Collaboratore

Dettagli

Il BACKUP è disponibile in http://www.dbgroup.unimo.it/sia/esercizio_21_novembre_2013/esercizio_21_novembre_2013.bak

Il BACKUP è disponibile in http://www.dbgroup.unimo.it/sia/esercizio_21_novembre_2013/esercizio_21_novembre_2013.bak ESEMPIO DELLE VENDITE: MISURE ED AGGREGABILITA E l esempio discusso nelle dispense è Dispense : http://www.dbgroup.unimo.it/sia/sia_2014_progettazionediundw_misure.pdf esteso e dettagliato. Il BACKUP è

Dettagli

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3 INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3 L azienda Plastic S.p.A, operante nel settore materie plastiche, ha deciso di dotarsi di un Sistema Informativo per la gestione del suo

Dettagli

1) GESTIONE DELLE POSTAZIONI REMOTE

1) GESTIONE DELLE POSTAZIONI REMOTE IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo

Dettagli

Dipartimento per i Trasporti, la Navigazione e i Sistemi Informativi e Statistici Direzione Generale per la Motorizzazione Centro Elaborazione Dati

Dipartimento per i Trasporti, la Navigazione e i Sistemi Informativi e Statistici Direzione Generale per la Motorizzazione Centro Elaborazione Dati Dipartimento per i Trasporti, la Navigazione e i Sistemi Informativi e Statistici Direzione Generale per la Motorizzazione Centro Elaborazione Dati MANUALE UTENTE PRENOTA IMMATRICOLAZIONE M.O. IDENTIFICATIVO

Dettagli

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO Seconda prova scritta Ministero dell Istruzione, dell Università e della Ricerca M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO Indirizzo: PROGRAMMATORI Tema di: INFORMATICA GENERALE

Dettagli

Corso di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 6 (15 gennaio 2009) Linguaggio SQL: Data Definition Language (DDL) Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

Dettagli

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

Dettagli

IL DAT A B A S E DI ALGE B R A N D O

IL DAT A B A S E DI ALGE B R A N D O IL DAT A B A S E DI ALGE B R A N D O Un progetto di: Davide Valeriani Matricola 190883 davide.valeriani@studenti.unipr.it Corso di laurea in Ingegneria Informatica Esame di Basi di Dati A Prof. Stefano

Dettagli

Progetto Logos - Documentazione -

Progetto Logos - Documentazione - Progetto Logos - Documentazione - Marco Benvegnù Gianluca Marcante Simone Sanavio Roberto De Franceschi PM) Corso di Basi di Dati Corso di Laurea in Ingegneria Informatica A.A. 2002/2003 Progetto Logos

Dettagli

Riproduzione animale

Riproduzione animale Riproduzione animale Manuale Utente Sommario 1 Introduzione al servizio Riproduzione Animale... 3 1.1 Tipologie di Utenza... 3 2 Home page del servizio... 4 3 Consultazione dati dei soggetti autorizzati...

Dettagli

Sistemi per la gestione di database: MySQL ( )

Sistemi per la gestione di database: MySQL ( ) Sistemi per la gestione di database: MySQL ( ) Relational Database e Relational Database Management System Un database è una raccolta di dati organizzata in modo da consentire l accesso, il reperimento

Dettagli