Informatica….access Gestione degli archivi: L’organizzazione dei dati su un supporto di memoria di massa deve essere gestita in modo tale da poter consentire l’inserimento, la ricerca, la modifica, la cancellazione, la stampa in modo efficace e in tempi rapidi. Quindi, l’organizzazione di un archivio deve essere gestita indipendentemente dal tipo di supporto di memorizzazione utilizzato. L’organizzazione di un archivio può avvenire nei seguenti modi: 1. Organizzazione in modo sequenziale, 2. Organizzazione ad accesso diretto, 3. Organizzazione ad indici. Organizzazione in modo sequenziale: Tale tipo di organizzazione è la più semplice per eseguire la gestione di un archivio e consiste nel registrare i record uno di seguito all’altro. Nella fase di lettura, la ricerca del record viene fatta in modo sequenziale (partendo dal primo sino ad arrivare all’ultimo). Questo tipo di organizzazione consente di avere anche record di diversa lunghezza. La gestione diventa più complessa quando si ha una mole molto grande di dati, in quanto i tempi di accesso diventano abbastanza lunghi. Organizzazione ad accesso diretto: Nell’organizzazione di problemi gestionali, normalmente i record hanno tutti la stessa lunghezza, come ad esempio il record di un cliente, di un articolo di riserva, etc… Quindi è possibile associare ad ogni record un numero d’ordine per poi ritrovare facilmente, all’interno del file, il numero del primo carattere del record richiesto (ad esempio, associando ad ogni record un certo numero di byte, ad esempio 130, per trovare l’ottantaduesimo record basta fare (82-1)*130+1 = 10531). Questo tipo di ricerca viene detta anche random in quanto si permette all’utente di accedere al record senza leggere tutti quelli che lo precedono. Accesso ad indici: Nelle applicazioni informatiche, molto spesso, i record vengono identificati mediante un elemento caratteristico detto chiave. Tale chiave può essere sia un numero, sia una variabile alfa_numerica, come ad esempio il bar code di un prodotto o il numero di matricola di un dipendente. In questo caso, l’organizzazione dell’archivio è simile a quello di un libro dotato di un indice analitico, dove sono elencate in ordine alfabetico le parole chiave che richiamano gli argomenti. In questo caso di organizzazione il lettore cerca la parola chiave nell’indice analitico e il numero di pagina funge da puntatore per la ricerca del record. Le chiavi possono essere di due tipi: primarie e secondarie; primaria quando è necessariamente univoca e costituisce un criterio fondamentale per ritrovare il record (ex: cod. cliente), secondaria (o alternativa) quando non è determinante nella ricerca del record (ex: codice del rappresentante relativo ad un cliente). Operazioni su file: Su di un file si possono effettuare le seguenti operazioni fondamentali: Apertura di un archivio, che consiste nel creare un collegamento fisico tra la memoria centrale ed un supporto di memoria di massa, riservando un baffer di transito per le operazioni di Ingresso/Uscita. Operazione di lettura, che consiste nella copiatura dei record del file registrato sul supporto di massa, sulla memoria centrale. Operazione di scrittura, che consiste nel trasferire sulla memoria di massa, il record scritto nella memoria centrale. Operazione di cancellazione, che consiste nel cancellare dal supporto di memoria di massa, un record dal file, quindi il record viene trasferito prima nella memoria centrale, quindi cancellato e tutto il file viene riscritto sul supporto di memoria di massa. Operazione di chiusura del file. Questa consiste nel togliere od eliminare il collegamento fisico tra la memoria centrale e la memoria di massa. In base al tipo di organizzazione del file si possono effettuare operazioni diversificate: File sequenziale. operazioni che si possono effettuare: Lettura, Scrittura, Riscrittura, File tipo random. Operazioni che si possono effettuare: Lettura, Posizionamento, Scrittura, Riscrittura, Cancellazione. File ad indici. Operazioni che si possono effettuare: Lettura, Posizionamento, Scrittura, Riscrittura, Cancellazione. Tecniche di indicizzazione di un file: La ricerca dei dati di un file si velocizza se i record sono identificati attraverso delle chiavi, mediante la costituzione di indici. Gli indici di un file si basano sull’uso di alberi binari e la ricerca diventa più semplice se le chiavi vengono mantenute in ordine. Quindi, per ottimizzare la ricerca è necessario che l’albero sia bilanciato. Il bilanciamento consiste nel trasformare l’albero in modo tale da ottenere un equivalente contenente gli stessi dati ma che abbiano un basso livello gerarchico. Esempio di albero binario: Introducendo le chiavi nella sequenza 35; 102; 3; 54; 66; 10; 94. Otterremo il seguente albero binario: 35 54 102 10 3 94 54 3 10 35 66 102 66 94 Nel caso rappresentato nell’esempio di destra, l’albero viene bilanciato, facilitando la ricerca dei record: Modello dei dati e progetto del software: 1: produzione del software: Per lo sviluppo di un progetto software è necessario un’attività di studio: bisogna avere delle conoscenze approfondite sulla materia da trattare. 2: ideazione del progetto: Creare l’astrazione del prodotto con tutte le sue caratteristiche. 3: attività di progettazione: Concretizzare l’astrazione del prodotto formulando disegni, prototipi, modelli, ecc… 4: realizzazione del progetto: Vengono creati i primi esemplari del prodotto. 5: attività di produzione: Termina il progetto ed inizia la produzione. Questi sono i passi da seguire per fare un progetto di un software. Metodologie: Per la realizzazione di un progetto informatico è necessario avere un organizzazione del lavoro che indica al progettista il metodo da seguire per sviluppare il progetto. Infatti, la creazione di un progetto informatico si ottiene tramite l’esecuzione in diverse attività ed ognuna raggiunge degli obiettivi ben precisi. La metodologia organizza queste attività per ottimizzare il lavoro. Ogni passo nella stesura e nella progettazione del programma viene detta sezione (o fase o passo), come possiamo vedere nel diagramma alla pagina successiva. Conoscenza degli obiettivi, chiamata anche analisi preliminare. E’ indispensabile per effettuare la ricerca conoscitiva. Deve portare l’esperto ad una conoscenza e ad una pertinenza del progetto. Analisi. Ha il compito di descrivere in modo dettagliato tutte le fasi del progetto. Progettazione. Ha il compito di descrivere e definire in modo dettagliato le caratteristiche del sistema informativo del progetto e gli obiettivi principali sono la creazione di archivi elettronici, la creazioni di moduli software del progetto. Fase di transizione. Serve essenzialmente a definire le regole, i tempi ed i metodi necessari all’attivazione del progetto. Realizzazione. Consiste nella fase atta a generare il prodotto del progetto. In questa fase i programmi vengono provati per garantire la qualità del software. Documentazione. Questa fase deve consentire agli utenti di essere in possesso del manuale che descrive tutte le funzionalità del progetto. Deve inoltre spiegare il funzionamento del sistema del progetto stesso. Fase di prova. Verifica il grado di aderenza del progetto alle necessità dell’utente committente ed eventualmente rimuovere i possibili errori presenti nel codice, quindi dare la certificazione del progetto. Formazione. Questa fase consiste nella formazione agli utenti, attraverso appositi corsi, per l’utilizzo materiale del software. Produzione. L’obiettivo di questa fase è quello di produrre e distribuire a livello industriale/ commerciale il prodotto progettato. Conoscenza degli obiettivi Analisi Progettazione Transizione Realizzazione Documentazione Prove Formazione Produzione Modellizzazione dei dati: La modellizzazione dei dati rappresenta l’individualizzazione degli elementi che caratterizzano il software. Tale modellizzazione può avvenire a tre diversi livelli: A livello concettuale o esterno. Rappresenta la realtà dei dati e le relazioni tra essi, attraverso uno schema. A livello logico e rappresenta il modo attraverso il quale i dati sono organizzati negli archivi elettronici, quindi descrive il loro formato. A livello fisico. Rappresenta l’effettiva istallazione degli archivi elettronici. Esso indica lubicazione dei dati nelle memorie di massa Possiamo dire inoltre che, con il passaggio a livello logico, l’insieme dei dati viene dotato di una struttura che deve facilitare: 1. la manipolazione, cioè la possibilità di inserire, modificare e cancellare i dati. 2. L’interrogazione, cioè la possibilità di ritrovare i dati richiesti per una determinata applicazione. Modelli E/R (entity relationship): Il modello E/R, detto anche modello “entità associazione”, è un modello atto a costruire dei dati in modo concettuale ed indipendente dalle applicazioni. Questo è un modello grafico detto schema E/R, dove vengono evidenziati gli aspetti fondamentali del modello in modo concettuale e con i dati che lo caratterizzano, permettendo la costruzione anche di associazioni tra di loro. Gli e lementi che caratterizzano i modelli E/R sono: 1. Entità, 2. Associazione, 3. Attributi. Entità: L’entità è un oggetto concreto od astratto, che ha un significato anche quando viene considerato in modo isolato. Alcuni esempi di entità sono: una persona, un modello di automobile, un movimento contabile, ecc… Nella simbologia dei modelli E/R, un’entità è rappresentata da una rettangolo contenente il nome dell’entità. studenti automobile persona Ad esempio Associazioni: Le associazioni rappresentano il legame che stabilisce un interazione tra le varie entità. Ogni associazione ha due versi ed ogni verso ha un’entità di partenza ed una di arrivo. Ogni verso ha poi una descrizione che ne consente di comprendere il significato. Per esempio, avendo due entità, persone ed automobili, tra loro esiste un’Associazione che può essere descritta in due modi diversi: Una persona possiede una o più automobili. Un’automobile è posseduta da una persona. La relazione è rappresentata nel seguente modo: Posseduta da PERSONA AUTOMOBILE possiede La relazione potrebbe anche essere raffigurata nel seguente modo. PERSONA possiede AUTOMOBILE Attributi: Le proprietà delle entità delle associazioni vengono descritte attraverso gli attributi. Esempio di attributo, per l’entità “automobile”, possono essere: “modello”, “produttore”, “fornitore”, ecc… Le caratteristiche di ogni attributo sono: Il formato, che indica il tipo di valore che assume. I tre formati base sono: o Numerico, o Data/ ora, o Carattere. Altri formati possono essere, ad esempio oggetto OLE, Contatore, valuta, ecc… La dimensione, che indica la quantità massima dei caratteri o cifre inseribili. L’OPZIONALITA’, che specifica dei testi sull’attributo. Come ad esempio “l’attributo non deve avere valore nullo”. Nel caso del formalismo a blocchi, gli attributi vengono rappresentati sotto il rombo: PERSONA possiede Data acquisto AUTOMOBILE Prezzo acquisto Gli attributi “Data acquisto” e “Prezzo acquisto”, non sono attributi né dell’entità “persona”, né dell’entità “automobile”, ma sono attributi dell’associazione tra le due entità. Chiavi primarie: Viene detta chiave primaria l’insieme di uno o più attributi, che consentono di distinguere un’istanza da un’altra, della stessa entità. Esempi di chiave primaria possono essere: il codice prodotto, la matricola dipendente, il codice di un libro, ecc… La rappresentazione grafica è la seguente: PRODOTTO Descrizione Prezzo CODICE Associazioni tra le entità: Le associazioni tra entità possono essere obbligatorie od opzionali. Le associazioni sono rese obbligatorie quando il legame tra le entità deve essere sempre presente, mentre è invece opzionale quando può non essere presente. Ad esempio: l’associazione tra l’entità “persona” e l’entità “Conto Corrente” non è necessariamente obbligatoria, in quanto, ad ogni individuo non deve essere obbligatoriamente associato un conto corrente. Viene invece resa obbligatoria l’associazione tra l’entità “ Conto Corrente” e “ persona”, in quanto, se esiste un conto corrente deve per forza di cose essere intestato ad una persona (o azienda in un’eventuale fattispecie). Grado dell’associazione: Si definisce grado dell’associazione, la caratteristica che indica quante istanze dell’entità di arrivo si associano all’istanza dell’entità di partenza. Il grado può quindi essere: A uno, A molti. Per tanto si può effettuare la seguente classificazione: 1. Associazione biunivoca: 1:1 . Ad ogni istanza della prima entità deve essere associata una ed una sola istanza della seconda entità e viceversa. Esempio: entrando nella fattispecie “scuola”; ad uno studente può essere associato un solo diploma; il diploma in questione può essere associato ad un solo studente. 2. 1 1 Studente Diploma Associazione semplice: 1:N (uno a molti). In questo caso a ciascuna istanza della prima entità si possono associare più istanze della seconda entità. Ad esempio, ritornando al conto corrente, possiamo associare ad esso più movimenti e operazioni, mentre gli stessi movimenti possono essere associati solo al conto in questione. C/c 3. MOVIMENTI Associazione Complessa: N:N (molti a molti). In questo caso, ad ogni entità si può associare una o più istanze della seconda entità e viceversa. Ad esempio, in una scuola, ogni studente può essere verificato su più materie, che a loro volta potranno essere oggetto della verifica di più studenti. N studenti N materie In genere le relazioni più importanti sono quelle uno a molti e spesso, anche le relazioni Molti a Molti vengono scomposte in relazioni Uno a Molti. Ad esempio, aggiungendo al precedente esempio un’entità “prova di comprensione” possiamo trasformarlo nel seguente modo: studenti Allievo 1 prova Data N Voto N 1 materie Regole di lettura delle Associazioni: Nelle Associazioni esistono delle regole di lettura ben precise a seconda del tipo di relazione che intercorre tra le entità. Ad esempio, il seguente schema si legge in questa chiave: Ogni fornitore è abbinato a più prodotti,ogni prodotto è fornito da un solo fornitore. fornitore 1 Fornito da Prodotti Abbinato a N La relazione riportata nell’esempio sopra è semplice, cioè uno a molti: 1:N. Modello logico: Dal modello concettuale dei dati è possibile ricavare un modello logico, che si ricava seguendo le seguenti regole: R1. Ogni entità diventa un archivio. R2. Ogni attributo dell’entità diventa il campo di un record. R3. Un attributo,ora campo del record, diventa una chiave primaria dell’entità che identifica in modo univoco il record dell’entità stessa. R4. Nelle associazioni 1:1 le entità diventano un unico archivio. R5. Nelle associazioni 1:N , vi è un campo(chiave primaria dell’entità di partenza), che presente anche nell’entità di arrivo, vi diventa chiave esterna. R6. Nelle associazioni N:N le due entità diventano un unico archivio. Esempi: Associazioni 1:1 cittadino Codice Fiscale Ogni cittadino ha un solo Codice Fiscale, Ogni Codice Fiscale appartiene ad un solo cittadino. Diventa quindi un unico archivio che contiene gli attributi della prima e della seconda entità, ad esempio “Codice Fiscale”, “Cognome”, “Nome”, ecc… dove “Codice Fiscale” diventa la chiave primaria. Associazioni 1:N Tipo di contratto dipendente Schematizziamo in tabelle: Codice Descrizione Part-time Full-time A termine Indeterminato P018 F036 SC001 A001/I In questo caso il Codice Contratto è una Chiave Esterna Matricola 0010 0011 0012 0013 0014 Paga base € 600,00 € 1100,00 € 1100,00 € 1500,00 Cognome Asciolla Baruffi De Blasio Polini Rossi Nome Osvaldo Giorgio Giuseppe Gustavo Mario Qualifica Cod.contratto Ingegnere A001/I Apprendista SC001 Saldatore P018 Perito mc. F036 Operaio A001/I L’associazione tra l’entità “contratto” e l’entità “dipendente” è una relazione uno a molti, in quanto ogni contratto può essere sottoscritto da uno o più dipendenti, ma ogni dipendente può essere regolato da un solo contratto. Nella seconda tabella viene aggiunta una chiave esterna (nell’archivio dipendenti), costituita dagli attributi che formano la chiave primaria della prima tabella (archivio contratti) Associazione N:N In ambito scolastico possiamo prendere ad esempio le tabelle classi ed insegnanti, notando che la relazione si definisce molti a molti, in quanto ogni docente può insegnare in più classe ed ogni classe può avere più docenti. CLASSI DOCENTI N:N Strutturiamo l’esempio in tabelle: ARCHIVIO DOCENTI Codice A0101 A0102 A0103 A0104 A0105 A0106 Cognome Asciolla Forgiane Rossi Bruni Aristolao Miele Nome Osvaldo Massimo Paolo Andrea don Francesco Giovanni Battista Materia / e Informatica/Elettronica/Sistemi Inglese/Francese Disegno tecnico e tecnologia Italiano/Storia/Ed.civica Religione Economia e diritto ARCHIVIO CLASSI Classe 1° A 1° B 2° A 2° B 3° A 3° C Num. Allievi 12 16 17 15 22 21 ARCHIVIO REGISTRO Num. Aula 1 2 3 4 5 6 Codice Docente A0101 A0102 A0103 A0104 A0105 A0106 2A 1A 3A 1A 1A 2A Classe 2B 3A 1B 3B 1B 2A 2A 3A 2B 3A 3B 2B 3B N. Ore 8 4 4 12 3 8 ESERCIZIO: Si devono organizzare delle informazioni relative alle gare sportive di un campionato che si svolge in diverse località del mondo ed in date diverse dell’anno. Individuare le entità, le associazioni tra le entità, gli attributi, chiavi primarie ed eventuali chiavi esterne. Effettuare in fine le tabelle relative, comprensive dei campi, tipo di campo e chiavi. Individuazione delle entità: Definiamo tre entità: “gare”,”concorrenti”,”risultato”. Associazioni tra le entità: CONCORRENTI RISULTATO Concorrente abbinato a risultato, Risultato conseguito dal concorrente, Gara relativa a risultato, Risultato ottenuto dalla gara. GARE Definizione degli attributi e Chiavi primarie: Concorrenti: Codice Cognome Nome Gare Nazione gare Codice gara Specialità Località Data risultati Numero Registrazione Punti Posizione Codice Conc. Codice gara Chiavi esterne: Le chiavi esterne (chiavi primarie delle entità “concorrenti” e “gare”), le troviamo nell’entità “risultati” e sono: “Codice concorrente” e “ Codice gara”. RISOLUZIONE: TABELLE: CONCORRENTI Codice concorrente IT 01035 SP 02036 FR 03037 OL 04038 Cognome Concorrente ROSSI PEPITO PERIER SMITH Nome Concorrente Mario Carlos Francois Giorg Nazione di appartenenza ITALIA SPAGNA FRANCIA OLANDA GARE Codice gara SALUNG GIAV SCH STAF NU Tipo di gara E specialità Salto in lungo Lancio del giavellotto Scherma Staffetta /resistenza Nuoto Località di disputa Svezia Austria Portogallo Nigeria Brasile Data di disputa 01/01/2005 15/03/2005 17/04/2005 25/06/2005 20/08/2005 RISULTATI Numero registrazione 45001 45002 45003 45004 45005 Punteggio attribuito Punti 1005 Punti 996 Punti 994 Punti 990 Punti 578 Podio/ posizione 4 5 Codice gara NU STAF SALUNG SCH GIAV Codice concorrente IT 01035 SP 02036 IT 01035 FR 03037 OL 04038 Basi dei dati: I prodotti software, per la gestione dei database vengono detti DBMS (Database Managiament Sistem). Il database è un modello reale, i cui contenuti rappresentano gli stati in cui si trova il database. Il progetto è indipendente dal computer e dai supporti fisici destinati a contenere le informazioni. A partire dallo schema concettuale e cioè entità – associazioni, un database può essere progettato e realizzato passando al modello logico, cioè alle strutture di dati che consentono le operazioni di manipolazione – interrogazione. La soluzione più semplice consiste nel costruire un database con la struttura di dati formata da un unico file. Questa struttura viene detta flat file. Durante lo sviluppo della teoria dei database sono emersi tre diversi tipi di modello: Modello gerarchico adatto per rappresentare situazioni nelle quali è possibile fornire all’insieme dei dati una struttura nella quale ci sono entità che sono in alto ed entità che sono in basso, secondo uno schema ad albero. Una struttura di questo tipo consiste in un insieme ordinato di alberi; ad esempio: possiamo avere un albero, la quale radice è un agente di commercio ed i suoi sottoalberi possono essere clienti ed ordini di acquisto, che possono a loro volta avere sottoalberi di livello più basso, come ad esempio le righe dell’ordine e gli articoli delle righe. Agente di commercio clienti ordini Ordini dell’Agente riga riga articolo articolo Modello reticolare: in questo caso le entità rappresentano i nodi e le associazioni rappresentano di archi di uno schema a grafo orientato, cioè consiste in due insiemi di dati: un insieme di record ed un insieme di legami. I record sono fatti da campi (tra i quali dovrà esserci un campo chiave), mentre i legami sono realizzati mediante coppie di chiavi delle entità associate. In questo caso non esiste un ordine gerarchico. Modello relazionale: Questo modello rappresenta il database come un insieme di tabelle ed attualmente è quello più utilizzato. Esso nasce nel 1970 da un ricercatore dell’ IBM, F.Codd. Tra i modelli di database illustrati quello relazionale è il più diffuso nella quasi totalità dei prodotti commerciali DBMS, in quanto permette l’elaborazione di grandi, medi e piccoli sistemi. Concetti fondamentali del modello relazionale: Il modello relazionale prende tale nome, in quanto fondato sul concetto matematico di relazione tra insiemi ed oggetti. La relazione viene comunemente rappresentata da una tabella avente tante colonne quanti sono i domini (cioè i gradi della relazione) e tante righe quante sono le cardinalità della relazione (chiamata anche tuple). A1 A2 A3 A…n Ogni riga della tabella si chiama cardinalità o tuple Ogni colonna della tabella si chiama dominio e determina il grado della relazione Operazioni sulle relazioni: Le operazioni sulle relazioni agiscono su una relazione per ottenere una nuova relazione, cioè rappresentano delle interrogazioni alla base dei dati per ottenere delle nuove informazioni ( Query ). Supponiamo, ad esempio, di far riferimento alle due entità “Agente” e “Cliente”, in cui l’entità “Agente” ha i seguenti attributi: Codice agente (attributo chiave), Nome e cognome agente, Indirizzo agente, Codice zona. L’entità cliente ha i seguenti attributi: Codice cliente, ragione sociale, indirizzo cliente, codice attività, Provincia, partita iva, codice Agente (chiave esterna) Gestione Ordini TESTO DEL PROBLEMA Presentare il flusso generale riguardante la gestione degli ordini di acquisto emessi, per rifornire il magazzino, da un’azienda commerciale di medie dimensioni e sviluppare l’analisi dettagliata di un processo. DESCRIZIONE DEL PROBLEMA La procedura degli ordini al fornitore comporta l’individuazione degli articoli sotto scorta. Per ogni articolo sotto scorta è necessario individuare il fornitore disponibile a consegnare la merce mancante. Solitamente associato all’articolo è indicato anche il fornitore abituale. Oltre ad emettere l’ordine è fondamentale anche controllare che la merce sia consegnata per tempo; in caso contrario può essere emessa una lettera di sollecito al fornitore. Per controllare quali ordini siano stati evasi e quali siano in attesa di evasione, si possono utilizzare i dati presenti sul documento di trasporto che accompagna la merce consegnata dal fornitore. (Per brevità i documenti di trasporto vengono indicati con il vecchio termine di bolla). ANALISI DEI DATI Modello E/R Per questo tipo di problema le entità possono essere individuate nelle seguenti: - fornitore, rappresenta i dati anagrafici del fornitore da riportare sull’ordine; - ordine, che contiene l’intestazione dell’ordine emesso; - rigaordine, per il dettaglio degli articoli ordinati; - bolla, che rappresenta l’intestazione al documento di trasporto; - rigabolla, per il dettaglio degli articoli ricevuti; - articolo, descrizione della merce in magazzino; - aliquota, descrive l’aliquota IVA dell’articolo in esame. Tale modello può essere così schematizzato con le relative relazioni: Fornitore Destinatario di Spedito Origine di Ordine Bolla Relativa a a Composto da Composta da Dettaglio di Dettaglio di Rigaordine Rigabolla Compilata con Compilata con Oggetto di Aliquota Relativa a Articolo Soggetto a Oggetto di GERARCHIA DELLE FUNZIONI Gestire fornitori Segnalare sottoscorta Registrare ordini Emettere solleciti Aggiornare dati Registrare bolle Aggiornare ordine SCHEMA DELLE RISORSE DI SISTEMA Articoli sottoscorta e fornitori Articoli Segnalare sottoscorta Fornitori Articoli sottoscorta e fornitori Dati ordine Dati bolla Ordini fornitori Registrare ordini Registrare bolle Bolle Aggiornare ordine Ordini Righe ordini Righe bolla Fornitori Emettere solleciti Solleciti a fornitori TABELLE DEL DATABASE IN ACCESS Aliquote CodiceIVA Descrizione Aliquota 0 Beni di lusso 20 1 Beni di prima necessità 10 Articoli CodiceArt Descrizione PrezzoAcquisto PrezzoVendita CodiceIVA Disponibilità UnitàMisura CodiceFornitore ScortaMinima QuantitàRiordino 0 Vestito Armani € 250,00 € 500,00 0 8L 0 10 2 1 Vestito Versace € 300,00 € 600,00 0 5M 1 8 3 2 Vestito Normale € 100,00 € 200,00 1 20 L M 3 40 20 3 Camicia € 10,00 € 25,00 1 50 Tutte 3 90 40 4 Camicia Prada € 25,00 € 70,00 0 40 Tutte 2 60 20 5 Cravatta Firmata € 9,00 € 25,00 0 30 1 35 5 € 5,00 € 10,00 1 15 3 40 25 € 150,00 € 200,00 € 30,00 € 300,00 € 500,00 € 60,00 1 0 1 10 S 6S 4 3 0 3 10 8 10 0 2 6 6 Cravatta 7 Cappotto 8 Cappotto Firmato 9 Maglione Bolle NumeroBolla NumeroOrdine DataConsegna 0 0 25/01/2004 1 1 02/02/2004 2 2 31/01/2004 3 3 06/03/2004 4 4 04/02/2004 5 5 11/03/2004 6 6 28/02/2004 7 7 08/03/2004 8 8 25/03/2004 Fornitori CodiceFor RagioneSociale 0 Armani 1 Versace 2 Prada 3 Lanificio & Co. Indirizzo V. Rossi V. Alighieri V. Milano V. Torino CAP 24054 28080 25986 56491 Località Calcio Roma Milano Brianza Provincia Bergamo Roma Milano Milano PartitaIVA A123X5 V568AY E9984X S55648 Ordini NumeroOrdine CodiceFornitore DataEmissione DataConsegna 0 0 13/10/2003 25/01/2004 1 1 26/10/2003 02/02/2004 2 2 25/09/2003 31/01/2004 3 3 05/12/2003 06/03/2004 4 0 12/11/2003 04/02/2004 5 3 05/08/2003 11/03/2004 6 3 19/11/2003 28/02/2004 7 1 06/12/2003 08/03/2004 8 3 09/12/2003 25/03/2004 RigheBolla NumeroBolla CodiceArticolo QuatitàConsegnata 0 0 2 1 1 3 2 2 20 3 3 20 4 4 5 5 5 40 6 6 25 7 7 2 8 8 0 RigheOrdine NumeroOridne CodiceArticolo QuantitàOrdinata 0 9 6 1 1 3 2 0 2 2 4 20 3 2 20 4 5 5 5 3 40 6 6 25 7 8 2 8 7 0