Università degli studi di Urbino C.d.L : Informatica Applicata Anno Accademico : 2007/ : FastResearch :. Gestionale per Negozio Informatico

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli studi di Urbino C.d.L : Informatica Applicata Anno Accademico : 2007/2008. .: FastResearch :. Gestionale per Negozio Informatico"

Transcript

1 Università degli studi di Urbino C.d.L : Informatica Applicata Anno Accademico : 2007/2008.: FastResearch :. Gestionale per Negozio Informatico..: Realizzato da Giorgio Rosolia Mat :.. Corso: Basi di Dati e Sistemi Informativi Docente : dott. Alessandro Aldini

2 1. Analisi dei Requisiti 1a. Requisiti espressi in linguaggio naturale: Si vuol realizzare una base di dati per la gestione delle vendite di computer portatili e dei relativi accessori per l upgrade. Il negozio oltre alla vendita di questi prodotti, offre anche vari servizi. Il database dovrà permettere la gestione e l organizzazione dei prodotti, dei clienti e degli ordini, conterrà quindi, varie informazioni riguardanti i clienti, i dati tecnici dei portatili e dei componenti, la descrizione dei servizi offerti, tutte le informazioni riguardanti gli eventuali ordini associati ai clienti. Sarà inoltre possibile associare ad ogni prodotto un grossista e ad ogni grossista i relativi corrieri utilizzati. Quindi il database non permetterà di creare ordini ai grossisti ma solo di accedere ad eventuali informazioni relative a corrieri e grossisti associati ai prodotti. I grossisti avranno un codice, nome, sede, n di telefono, ; I corrieri un codice, un nome, n di telefono, sede, orari di apertura. Gli ordini dei clienti saranno formati quindi da uno o più prodotti e/o da uno o più servizi. I servizi offerti dal negozio sono: il recupero dati, la formattazione e l installazione di sistemi operativi ad infine l assemblaggio dei componenti per l upgrade. I servizi saranno caratterizzati quindi da un Codice servizio, da una descrizione e da un prezzo. I prodotti saranno divisi in notebook e componenti per l upgrade quali: HDD e RAM. Ogni prodotto dovrà essere caratterizzato da un codice, nome, marca, prezzo, quantità, ecc... I dati tecnici importanti per i notebook sono: schermo (in pollici), cpu, ram(in Gb), hdd (in Gb), scheda grafica. I dati tecnici per gli HDD sono: capacità, velocità di rotazione, interfaccia. Mentre per le RAM possono essere: interfaccia, frequenza operativa, capacità. Gli ordini sono caratterizzati da una data, dal prezzo totale e da una quantità riferita ai singoli prodotti, nel caso si tratta di servizi la quantità si riferirà al numero di ore di manodopera. I Clienti saranno differenziati dal codice fiscale, sarà possibile accedere a informazioni del tipo: nome, cognome, data di nascita, indirizzo, n di telefono. Si potranno quindi inserire ogni tipologia di prodotto, aggiungere nuovi grossisti e nuovi clienti e inserire nuovi ordini, nonché effettuare operazioni di interrogazioni più comuni e utili. 1b. Operazioni importanti da effettuare nel database: 1. Inserimento di un nuovo ordine associato ad un cliente non presente nell archivio, composto da prodotti e/o servizi già presenti in archivio. (si dovrà vedere se il prodotto è disponibile) (WRITE 15 volte al giorno) 2. Inserimento di un nuovo prodotto con tutte le relative caratteristiche tecniche, associato ad un grossista già presente nell archivio. (WRITE 2 volte al giorno) 3. Inserimento di un nuovo grossista con i relativi dati, associato ad un corriere già presente in archivio. (READ 10 volte all anno) 4. Ricerca di tutti i prodotti disponibili in ordine alfabetico, appartenenti ad una specifica categoria, visualizzando Codice Prodotto, Nome, Marca, Quantità in magazzino, Prezzo, e gli attributi corrispondenti alla categoria selezionata. (READ 20 volte al giorno) - 2 -

3 5. Ricerca di uno specifico corriere visualizzando nome, numero di telefono e orari di apertura. (READ 5 volte al mese) 6. Ricerca di tutti i grossisti che utilizzano un determinato corriere visualizzando il nome, il telefono e l del grossista. (READ 10 volte al mese) 7. Ricerca tutti i prodotti non disponibili, visualizzando il codice, la categoria, il nome, la marca e il prezzo del prodotto, il nome, il telefono e l del grossista ad esso associato, ordinati in ordine alfabetico sulla categoria di appartenenza. (READ 5 volte al mese) 8. Ricerca di tutti i prodotti ordinati da un cliente, visualizzando Codice, Categoria, Nome, Marca, Prezzo del/i prodotto/i, data di acquisto dell articolo e Quantità ordinata. La lista degli articoli dovrà essere ordinata dal più recente al meno recente. (READ 1 volta alla settimana) 9. Ricerca di tutti i clienti che hanno ordinato un prodotto di una certa marca dopo una determinata data, visualizzando nome, cognome e telefono del cliente, data dell ordine, codice e nome del prodotto. (READ 2 volte al mese) 10. Visualizza tutti gli ordini dell ultimo mese il cui totale sia maggiore della media di tutti i totali, visualizzando il codice ed il totale dell ordine, nome e cognome del cliente che lo ha effettuato. Ordinati in ordine decrescente sul totale dell ordine. (READ 2 volte al mese) 11. Top ten dei clienti più affezionati (clienti che hanno speso di più). Visualizzando Nome, Cognome e la spesa Totale. (READ 1 volte al mese) 12. Visualizza i 10 prodotti più richiesti ordinati in modo decrescente, visualizzando numero di ordinazioni, Codice, nome, marca e prezzo del prodotto. (READ 8 volte al mese) - 3 -

4 1c. Glossario dei termini: Termini Descrizione Sinonimi Collegamenti Cliente Colui che effettua un - Ordine ordine nel negozio Prodotto Categoria generale che comprende Notebook - Ordine - Notebook - Componenti e Componenti Servizi Si riferisce ai servizi - Clienti - Ordine erogati dal negozio nei confronti dei clienti Componenti Particolare categoria di Accessori Prodotto Prodotti Notebook Particolare categoria di Computer portatili Prodotto Prodotti Ordine Contiene tutti i - Prodotto - Cliente prodotti e/o servizi ordinati da un cliente Grossista Azienda che fornisce - Prodotto - Corriere prodotti Corriere Servizio di spedizioni - Grossista usato dai grossisti HDD Particolare categoria di - Componenti Componenti RAM Particolare categoria di Componenti - Componenti 1d. Rilevamento e correzione delle ambiguità: Linea Termine Nuovo Termine Motivo correzione 1 Computer Portatili Notebook Sinonimo per Computer portatili in linea 13 2 Accessori Componenti Componenti è più specifico 6 Portatili Notebook Sinonimo per Portatili in linea Codice Codice Prodotto Codice prodotto è più specifico 18 Capacità Capacità_hdd Capacità_hdd è più specifico 19 Capacità Capacità_ram Capacità_ram è più specifico 21 Quantità Quantità ordinata Quantità ordinata è più specifico 16 Quantità Quantità magazzino Quantità magazzino è più specifico - 4 -

5 1e. Testo dopo la correzione delle ambiguità: Si vuol realizzare una base di dati per la gestione delle vendite di notebook e dei relativi componenti per l upgrade. Il negozio oltre alla vendita di questi prodotti, offre anche vari servizi. Il database dovrà permettere la gestione e l organizzazione dei prodotti, dei clienti e degli ordini, conterrà quindi, varie informazioni riguardanti i clienti, i dati tecnici dei notebook e dei componenti, la descrizione dei servizi offerti, tutte le informazioni riguardanti gli eventuali ordini associati ai clienti. Sarà inoltre possibile associare ad ogni prodotto un grossista e ad ogni grossista i relativi corrieri utilizzati. Quindi il database non permetterà di creare ordini ai grossisti ma solo di accedere ad eventuali informazioni relative a corrieri e grossisti associati ai prodotti. I grossisti avranno un codice, nome, sede, n di telefono, ; I corrieri un codice, un nome, n di telefono, sede, orari di apertura. Gli ordini dei clienti saranno formati quindi da uno o più prodotti e/o da uno o più servizi. I servizi offerti dal negozio sono: il recupero dati, la formattazione e l installazione di sistemi operativi ad infine l assemblaggio dei componenti per l upgrade. I servizi saranno caratterizzati quindi da un Codice servizio, da una descrizione e da un prezzo. I prodotti saranno divisi in notebook e componenti per l upgrade quali : HDD e RAM. Ogni prodotto dovrà essere caratterizzato da un codice prodotto, nome, marca, prezzo, quantità ordinata, ecc... I dati tecnici importanti per i notebook sono: schermo (in pollici), cpu, ram(gb), hdd (in Gb), scheda grafica. I dati tecnici per gli HDD sono : capacità_hdd, velocità di rotazione, interfaccia. Mentre per le RAM possono essere: interfaccia, frequenza operativa, capacità_ram. Gli ordini sono caratterizzati da una data, dal prezzo totale e da una quantità magazzino riferita ai singoli prodotti, nel caso si tratti di servizi la quantità si riferirà al numero di ore di manodopera. I Clienti saranno differenziati dal codice fiscale, sarà possibile accedere a informazioni del tipo: nome, cognome, data di nascita, indirizzo, n di telefono. Si potranno quindi inserire ogni tipologia di prodotto, aggiungere nuovi grossisti e nuovi clienti e inserire nuovi ordini, nonché effettuare operazioni di interrogazioni più comuni e utili. 1f. Filtraggio dei concetti fondamentali: Frasi Generali Si vuol realizzare una base di dati per la gestione delle vendite di notebook e dei relativi componenti per l upgrade. Il negozio oltre alla vendita di questi prodotti, offre anche vari servizi. Il database dovrà permettere la gestione e l organizzazione dei prodotti, dei clienti e degli ordini, conterrà quindi, varie informazioni riguardanti i clienti, i dati tecnici dei notebook e dei componenti, la descrizione dei servizi offerti, tutte le informazioni riguardanti gli eventuali ordini associati ai clienti. Sarà inoltre possibile associare ad ogni prodotto un grossista e ad ogni grossista i relativi corrieri utilizzati. Frasi relative ai Prodotti I prodotti saranno divisi in notebook e componenti per l upgrade quali : HDD e RAM. Ogni prodotto dovrà essere caratterizzato da un codice prodotto, nome, marca, prezzo, quantità, ecc... Frasi relative ai notebook I dati tecnici importanti per i notebook sono: schermo (in pollici), cpu, ram(in Gb), hdd (in Gb), scheda grafica. Frasi relative ad HDD e RAM I dati tecnici per gli HDD sono : capacità_hdd, velocità di rotazione, interfaccia. Mentre per le RAM possono essere: interfaccia, frequenza operativa, capacità_ram

6 Frasi relative ai Servizi I servizi offerti dal negozio sono: il recupero dati, la formattazione e l installazione di sistemi operativi ad infine l assemblaggio dei componenti per l upgrade. I servizi saranno caratterizzati quindi da un Codici servizio, da una descrizione e da un prezzo. Frasi relative ai Clienti I Clienti saranno differenziati dal codice fiscale, e sarà possibile accedere a informazioni del tipo: nome, cognome, data di nascita, indirizzo, n di telefono. Frasi relative ad Ordini di prodotti e servizi Gli ordini dei clienti saranno formati quindi da uno o più prodotti e/o da uno o più servizi. Gli ordini sono caratterizzati da una data, dal prezzo totale e da una quantità magazzino riferita ai singoli prodotti, nel caso si tratti di servizi la quantità si riferirà al numero di ore di manodopera. Frasi relative ai Grossisti Quindi il database non permetterà di creare ordini ai grossisti ma solo di accedere ad eventuali informazioni relative a corrieri e grossisti associati ai prodotti. I grossisti avranno un codice, nome, sede, n di telefono, . Frasi relative ai Corrieri I corrieri avranno un codice, un nome, n di telefono, sede, orari di apertura. 2. Progettazione concettuale 2a. Strategie di progetto La strategia di progetto che è stata scelta è la strategia mista, la quale si sviluppa tramite metodi Top Down e Bottom Up. Viene introdotto inizialmente uno schema scheletro composto dalle entità fondamentali ORDINE e CLIENTE legate dall associazione EFFETTUA. Questi sono i concetti principali di questa applicazione, che verranno poi approfonditi. Si arriverà ad ottenere infine lo schema concettuale finale. 2b. Schema scheletro Sono rappresentati i concetti principali dell applicazione, composti da due entità fondamentali, ORDINE e CLIENTE, legate dall associazione RICHIESTA. La cardinalità (0,N) tra clienti e ordini indica che un cliente può fare da 0 ad N ordini (questo significa che è possibile inserire un cliente nell anagrafica anche se non ha effettuato ordini). La cardinalità (1,1) tra ordini e clienti indica che un ordine è associato ad uno ed un solo cliente. Passiamo ora allo sviluppo dei vari schemi parziali, raffinando lo schema scheletro

7 2c. Schemi concettuali parziali Partendo dallo schema precedente, iniziamo ad analizzare le due entità: - CLIENTE L entità Cliente secondo le specifiche dovrà avere come attributi: Codice Fiscale, nome, cognome, data di nascita indirizzo e telefono (supponiamo quest ultimo unico e quindi con una cardinalità 1,1). Questi saranno considerati come un attributo composto chiamato Dati anagrafici. Lo stesso attributo Indirizzo sarà un attributo composto, i cui attributi semplici saranno: Città, Via, Numero_civico e CAP. Il Codice Fiscale (CF), permetterà di distinguere in modo univoco ogni cliente. - ORDINE L ordine dovrà avere come attributo la data in cui è stato fatto ed il prezzo totale: Data_Ordine e Totale. Inoltre avrà un attributo che lo identifica univocamente : IDOrdine. Questo perché, si suppone che il cliente possa effettuare più ordini nello stesso giorno, altrimenti avremmo usato un identificatore composto e misto (attributo: Data_Ordine; entità: Cliente). Dato che un ordine può avere uno o più prodotti e/o uno o più servizi ad esso associati (indicato appunto dalla cardinalità (1,n) vicino a ordine), introduciamo l entità PRODOTTI e l entità SERVIZI e le colleghiamo all entità ORDINE tramite una associazione n-aria che chiameremo COMPOSIZIONE. L attributo Quantità_ordinata da inserire nell associazione COMPOSIZIONE indica appunto quanti prodotti dello stesso articolo sono stati ordinati, mentre riferito ai servizi, indicherà il numero di ore impiegate per il servizio richiesto. La cardinalità (0,n) vicino a servizi e vicino a prodotti sta ad indicare che più servizi e/o prodotti possono appartenere ad un ordine e inoltre, questo significa che è possibile inserire un servizio e/o prodotto nell anagrafica anche se non compare in un ordine. I servizi come da specifica devono avere i seguenti attributi: IDServizio, Descrizione, Prezzo. I prodotti, sempre seguendo le specifiche, avranno: Codice_Prodotto, Nome, Marca, Descrizione, Quantità_magazzino e Prezzo. Ovviamente IDservizio sarà identificatore univoco per l entità Servizi e Codice_Prodotto lo sarà per Prodotti

8 SCHEMA PARZIALE 1 I Prodotti sono suddivisi in NOTEBOOK e COMPONENTI UPGRADE. Creiamo quindi una generalizzazione della classe base. I NOTEBOOK seguendo le specifiche sono caratterizzati oltre che dagli attributi ereditati da Prodotto, anche da attributi specifici dei notebook quali: schermo, cpu, cap_ram, cap_hdd, scheda grafica. Per quanto riguarda COMPONENTI UPGRADE, anch essa può essere ulteriormente specializzata in due categorie, gli HDD e le RAM. Introducendo però, gli attributi Capacità e Interfaccia, comuni alle due categorie. Gli hdd avranno in più, l attributo Velocità_Rotazione, le ram l attributo Frequenza

9 SCHEMA PARZIALE 2: Dalle specifiche si può notare che una ulteriore implementazione riguarda i grossisti ed i corrieri. Gli attributi associati a CORRIERI devono essere: IDCorriere, nome, telefono, sede, orari. L IDcorriere rappresenta l identificatore univoco per i corrieri, la sede si suppone essere unica, in quanto si immetterà la sede più vicina, in relazione a dove è situato il negozio che farà uso di questa basi di dati. La cardinalità (0,n) indica che un corriere può essere immesso in archivio anche se non è associato a nessun grossista. Gli attributi associati a GROSSISTI devono essere: IDgrossista, nome, sede, telefono, . L IDgrossista, rappresenta l identificatore uniovoco per i grossisti, e per l attributo sede valgono le stesse considerazioni fatte per l omonimo attributo dei CORRIERI. La cardinalità (0,n) indica che i grossisti possono anche non utilizzare alcun corriere oppure ne possono utilizzare più di uno. Per quanto riguarda le cardinalità riferite a grossisti e prodotti troviamo uno (0,n) dalla parte dei grossisti perché ci possono essere in archivio grossisti che non forniscono nessun prodotto oppure grossisti che forniscono più prodotti. Troviamo (1,1) dalla parte dei prodotti perché ogni prodotto deve avere uno solo grossista ad esso associato. Di conseguenza non sarà possibile immettere un nuovo prodotto senza specificare da quale grossista viene fornito

10 INTEGRAZIONE DI SCHEMI

11 2f. Dizionario dei dati Entità: Nome Entità Descrizione Attributi Identificatore CLIENTE Colui che effettua degli ordini CF (stringa a 16 caratteri) Dati anagrafici: - Nome (stringa a 15 caratteri) - Cognome (stringa a 15 caratteri) - Data_nascita (stringa a 10 caratteri) - Telefono (numero a 10 cifre) - Indirizzo: o Città (stringa a 30 caratteri) o Via (stringa a 30 caratteri) o Numero_civico (numerico a 4 cifre) CF ORDINE SERVIZI PRODOTTI NOTEBOOK COMPONENTI UPGRADE HDD RAM GROSSISTI CORRIERI Ordini che si trovano in tabella, effettuati dai clienti Servizi offerti dal negozio Prodotti che si trovano in tabella Particolare categoria di prodotti Particolare categoria di prodotti Particolare categoria di componenti upgrade Particolare categoria di componenti upgrade Grossisti che si trovano in tabella Corrieri che si trovano in tabella o CAP (numerico a 5 cifre) IDOrdine (numerico a 6 cifre) Data_ordine (stringa a 10 caratteri Totale (numerico a 5 cifre) IDServizio (numerico a 3 cifre) Descrizione (stringa a 64 caratteri) Prezzo (numerico a 3 cifre) Codice_Prodotto(numerico a 6 cifre) Nome (stringa a 70 caratteri) Marca (stringa a 30 caratteri) Quantità_magazzino (numerico a 3 cifre) Prezzo (numerico a 5 cifre) Schermo (numerico a 2 cifre) CPU (stringa a 70 caratteri) Cap_HDD(stringa a 10 caratteri) Cap_RAM(stringa a 10 caratteri) Scheda_Grafica(stringa a 30 caratteri) Capacità(stringa a 10 caratteri) Interfaccia(stringa a 5 caratteri) Velocità_Rotazione(stringa a 10 caratteri) Frequenza(stringa a 10 caratteri) IDGrossista(numerico a 2 cifre) Nome(stringa a 30 caratteri) Sede(stringa a 64 caratteri) (stringa a 64 caratteri) Telefono(numerico a 10 cifre) IDCorriere(numerico a 2 cifre) Nome(stringa a 30 caratteri) Sede(stringa a 64 caratteri) Telefono(numerico a 10 cifre) Orari(stringa a 40 caratteri) IDOrdine IDServizio Codice_Prodotto Nessuno, perché è un entità figlia Nessuno, perché è un entità figlia Nessuno, perché è un entità figlia Nessuno, perché è un entità figlia IDGrossista IDCorriere

12 Relazioni: Nome relazione Descrizione Entità coinvolte Attributi RICHIESTA Associa ad un ordine un certo cliente che lo ha richiesto CLIENTE, ORDINE - COMPOSIZIONE FORNITURA UTILIZZA Associa ad un ordine i prodotti ed i servizi che lo compongono Associa ad un prodotto un grossista che lo fornisce Associa ad un grossista i corrieri utilizzati ORDINE, SERVIZI, PRODOTTI PRODOTTI, GROSSISTI GROSSISTI, CORRIERI Quantità_ordinata (numerico a 2 cifre) Ristrutturazione dello Schema Concettuale 3a. Tavola delle operazioni Operazione Op. 1 Op. 2 Op. 3 Op. 4 Op. 5 Op. 6 Op. 7 Op. 8 Op. 9 Op. 10 Op. 11 Op. 12 Frequenza 15 volte al giorno 450 volte al mese 2 volte al giorno 60 volte al mese 10 volte l anno 1 volte al mese 20 volte al giorno 600 volte al mese 5 volte al mese 10 volte al mese 5 volte al mese 1 volta alla settimana 4 volte al mese 2 volte al mese 2 volte al mese 1 volta al mese 8 volte al mese 3b. Tavola dei volumi Nome Tipo Volume Cliente E 500 Ordine E 10_000 Servizi E 20 Prodotti E 500 Notebook E 300 Componenti Upgrade E 200 HDD E 100 RAM E 100 Grossisti E 10 Corrieri E 10 Richiesta R 10_

13 Composizione R 30_000 Fornitura R 500 Utilizza R 30 La relazione richiesta ha un volume pari al numero degli ordini in quanto la cardinalità ci indica che un ordine è composto da un solo cliente. Assumendo che un ordine è composto in media da tre prodotti e/o servizi, la relazione composizione avrà un volume dati pari a 30_000 (10_000*3). La relazione fornitura ha un volume pari al numero di prodotti in quanto la cardinalità ci indica che un prodotto è associato ad un solo fornitore. Assumendo che un grossista si avvale in media di 3 fornitori, il volume della relazione utilizza sarà di 30 (10*3). 3c. Costo delle operazioni e schemi di navigazione - Assumiamo il costo di una scrittura (W) uguale a quello di una lettura(r) Operazione 1 Inserimento di un nuovo ordine associato ad un cliente non presente nell archivio, composto da prodotti e/o servizi già presenti in archivio, (si dovrà vedere se il prodotto è disponibile). Supponiamo di inserire un ordine formato da due prodotti e da un solo servizio Questa operazione dovrà svolgersi in due fasi. Nella prima fase si verifica la disponibilità dei due prodotto richiesti. Nella seconda fase che dovrà essere eseguita solo se il prodotto è disponibile si inserirà l ordine e si aggiornerà la quantità del prodotto in magazzino

14 Fase 1 Concetto Costrutto Accessi Tipo Op. Prodotto Entità 2 R Costo Operazione 2R=2 Totale Costo (Fase 1) 2 * 450 = 900 Ovviamente il controllo della disponibilità riguarda solo i prodotti. I Servizi risultano essere sempre disponibili (infatti non ho inserito nessun attributo che lo specifica). In questa fase si calcolano due accessi all entità Prodotto come da ipotesi. Fase 2 Concetto Costrutto Accessi Tipo Op. Cliente Entità 1 W Richiesta Relazione 1 W Ordine Entità 1 W Composizione Relazione 3 W Prodotto Entità 1 R Servizio Entità 1 R Costo Operazione 6W+2R=8 Totale Costo (Fase 2) 8 * 450 = 3600 Gli accessi alla relazione Composizione sono tre perché un ordine in media può avere tre prodotti e/o servizi, in questo caso abbiamo due prodotti ed un servizio. In totale i costi sono i seguenti: Totale Costo (Fase 1 + Fase 2) =

15 Operazione 2 Inserimento di un nuovo prodotto con tutte le relative caratteristiche tecniche, associato ad un grossista già presente nell archivio. Supponiamo di inserire un notebook, non essendo possibile inserire un prodotto generico perché la generalizzazione dei prodotti è completa. Concetto Costrutto Accessi Tipo Op. Prodotto Entità 1 W Notebook Entità 1 W Grossisti Entità 1 R Fornitura Relazione 1 W Costo Operazione 3W+1R=4 Totale Costo 4 * 60 = 240 Operazione 3 Inserimento di un nuovo grossista con i relativi dati, associato ad un corriere già presente in archivio. Concetto Costrutto Accessi Tipo Op. Grossisti Entità 1 W Corrieri Entità 1 R Utilizza Relazione 3 W Costo Operazione 2W+3R=5 Totale Costo 5 * 1 =

16 Operazione 4 Ricerca di tutti i prodotti disponibili in ordine alfabetico, appartenenti ad una specifica categoria, visualizzando Codice Prodotto, Nome, Marca, Quantità in magazzino, Prezzo, e gli attributi corrispondenti alla categoria selezionata. Supponiamo di voler trovare i prodotti appartenenti alla categoria:ram, e che tutti risultino disponibili. Concetto Costrutto Accessi Tipo Op. Prodotto Entità 100 R Componenti Upgrade Entità 1 R RAM Entità 1 R Costo Operazione 1R+1R+100=102 Totale Costo 102 * 600 = Operazione 5 Ricerca di uno specifico corriere visualizzando nome, numero di telefono e orari di apertura. Concetto Costrutto Accessi Tipo Op. Corrieri Entità 1 R Costo Operazione 1R=1 Totale Costo 1 * 5 =

17 Operazione 6 Ricerca di tutti i grossisti che utilizzano un determinato corriere visualizzando il nome, il telefono e l del grossista. Concetto Costrutto Accessi Tipo Op. Corrieri Entità 1 R Utilizza Relazione 3 R Grossisti Entità 3 R Costo Operazione 1R+3R+3R=7 Totale Costo 7 * 10 = 70 Operazione 7 Ricerca tutti i prodotti non disponibili, visualizzando il codice, la categoria, il nome, la marca e il prezzo del prodotto, il nome, il telefono e l del grossista ad esso associato, ordinati in ordine alfabetico sulla categoria di appartenenza. Supponendo che al mese avremo in media 10 prodotti non disponibili, i costi saranno i seguenti: Concetto Costrutto Accessi Tipo Op. Prodotti Entità 500 R Fornitura Relazione 10 R Grossisti Entità 10 R Costo Operazione 500R+10R+10R=520 Totale Costo 520 * 5 =

18 Operazione 8 Ricerca di tutti i prodotti ordinati da un cliente, visualizzando Codice, Categoria, Nome, Marca, Prezzo del/i prodotto/i, data di acquisto dell articolo e Quantità ordinata. La lista degli articoli dovrà essere ordinata dal più recente al meno recente. Supponendo che nel caso pessimo, tutti gli ordini fatti dal cliente presentano solo prodotti e non servizi, il costo totale sarà il seguente: Concetto Costrutto Accessi Tipo Op. Cliente Entità 1 R Richiesta Relazione 20 R Ordine Entità 20 R Composizione Relazione 60 R Prodotto Entità 60 R Costo Operazione 1R+20R+20R+60R+60R= 161 Totale Costo 161 * 4 =

19 Operazione 9 Ricerca di tutti i clienti che hanno ordinato un prodotto di una certa marca dopo una determinata data, visualizzando nome, cognome e telefono del cliente, data dell ordine, codice e nome del prodotto. Supponendo che ci siano 100 prodotti di una stessa marca, avremo i seguenti costi: Concetto Costrutto Accessi Tipo Op. Prodotto Entità 100 R Composizione Relazione 6000 R Ordine Entità 2000 R Richiesta Relazione 2000 R Cliente Entità 100 R Costo Operazione 100R+6000R+2000R+2000R+100R= Totale Costo * 2 =

20 Operazione 10 Visualizza tutti gli ordini dell ultimo mese il cui totale sia maggiore della media di tutti i totali, visualizzando il codice ed il totale dell ordine, nome e cognome del cliente che lo ha effettuato. Ordinati in ordine decrescente sul totale dell ordine. Questa operazione si dovrà svolgere in due fasi. La prima fase si occuperà di ricavare la media del totale di tutti gli ordini. La seconda fase ricercherà gli ordini superiori alla media. FASE 1: Calcolo della media dei Totali di tutti gi ordini Concetto Costrutto Accessi Tipo Op. Ordine Entità R Totale Costo * 2 = FASE 2: Concetto Costrutto Accessi Tipo Op. Ordine Entità R Richiesta Relazione R Cliente Entità 500 R Costo Operazione 10000R+10000R+500R= Totale Costo * 2 = Totale Costo (Fase 1 + Fase 2) =

21 Operazione 11 Top ten dei clienti più affezionati (clienti che hanno speso di più). Visualizzando Nome, Cognome e la spesa Totale. Concetto Costrutto Accessi Tipo Op. Ordine Entità R Richiesta Relazione R Cliente Entità 500 R Costo Operazione 10000R+10000R+500R= Totale Costo * 1 = Operazione 12 Visualizza i 10 prodotti più richiesti ordinati in modo decrescente, visualizzando numero di ordinazioni, Codice, nome, marca e prezzo del prodotto

22 Concetto Costrutto Accessi Tipo Op. Composizione Relazione R Cliente Entità 500 R Costo Operazione 30000R+500R= Totale Costo * 8 = d. Analisi delle ridondanze Analizzando lo schema concettuale finale, è stata riscontrata la presenza di un attributo ridondante: Totale facente parte dell entità ORDINI. E un attributo ridondante che può essere derivato come somma del costo di ciascun prodotto ordinato moltiplicato per la quantità richiesta. Analisi dell attributo Totale: L attributo viene usato nell operazione 10. Con l attributo: Abbiamo un costo di operazione pari a Vedi pagina 20. Senza l attributo: FASE 1: Calcolo della media del Totale di tutti gli ordini: Concetto Costrutto Accessi Tipo Op. Ordine Entità R Composizione Relazione * 3 = R Prodotti Entità 500 R Servizi Entità 20 R Totale Costo 40520* 2 =

23 FASE 2: Controllo degli ordini superiori alla media: Concetto Costrutto Accessi Tipo Op. Cliente Entità 500 R Ordine Entità R Richiesta Relazione R Composizione Relazione R Servizi Entità 20 R Prodotti Entità 500 R Costo Operazione = Totale Costo * 2 = Totale Costo (Fase 1 + Fase 2) = Analizzando i costi ottenuti, l eliminazione dell attributo ridondante fa triplicare i costi di accesso. Se guardiamo l occupazione di area che introduce, tenendo conto che Totale avrà al massimo 5 cifre che sono rappresentabili da 17 bit, avremo: * 17bit = bit = 21.3 Kbyte Siccome l occupazione di memoria è minima e la presenza dell attributo genera una diminuzione dei costi di accesso. Risulta quindi conveniente tenere l attributo Totale. Inoltre avremo anche una notevole semplificazione della query mysql

24 3e. Eliminazione delle gerarchie La gerarchia che si può semplificare è la seguente: Ho deciso di eliminare l entità Componenti Upgrade perché è inutile: nessuna operazione la usa senza accedere alle entità figlie. Posso effettuare questa operazione perchè la generalizzazione risulta essere totale. Lo schema semplificato è il seguente: Mi accorgo che l attributo Capacità che si trova in HDD è comune ai NOTEBOOK che ha l attributo Cap_HDD, perché rappresentano la medesima cosa. Posso fare lo stesso discorso per l attributo Capacità in RAM e l attributo Cap_RAM in NOTEBOOK. Quindi metterò Cap_HDD e Cap_RAM nell entità padre (PRODOTTI) eliminando le ridondanze. Questi ultimi dovranno avere cardinalità (0,1) perché nel caso si tratti di HDD o di RAM uno dei due deve essere opzionale. Per quanto riguarda l attributo Interfaccia comune sia ad HDD e RAM lo inserirò nell entità padre con cardinalità (0,1) perché riferito ai notebook deve essere opzionale. Lo schema sarà il seguente:

25 Ora si può procedere all ultima semplificazione: collassare le entità figlie nell entità padre. Questo perché le operazioni non fanno molta distinzione tra le occorrenze e tra gli attributi di PRODOTTO, NOTEBOOK, HDD e RAM. In questo caso anche se avremo uno spreco di memoria per gli attributi nulli, la scelta ci assicura un numero minore di accessi rispetto ad altre soluzioni dove gli attributi sono distribuiti tra le varie entità. Ovviamente dovremo inserire un attributo chiamato categoria per distinguere le tre sottocategorie. L attributo dovrà avere valore non nullo in quanto la generalizzazione è totale. Lo schema definitivo è il seguente: 3f. Eliminazione degli attributi composti Gli attributi composti nello schema concettuale sono Dati_anagrafici nell entità UTENTE e Indirizzo che è un attributo composto di Dati_anagrafici

26 Dati_anagrafici verrà collassato nella rispettiva entità, nella quale passeranno gli attributi semplici. Per quanto riguarda l attributo composto Indirizzo, verrà privato di tutti i suoi attributi semplici e verrà trasformato esso stesso in un attributo semplice. Questo dovrà comunque inglobare tutte le altre informazioni eliminate. 3g. Eliminazione degli identificatori esterni Non ci sono identificatori esterni da eliminare. 3h. Schema E/R dopo le modifiche 3i. Scelta della chiavi Non ci sono modifiche rispetto alle tabelle a pagina

27 4. Progettazione logica 4a. Traduzione di entità e associazioni in relazioni del modello relazionale. Entità/Relazione CLIENTE ORDINE SERVIZI PRODOTTI COMPOSIZIONE GROSSISTI CORRIERI UTILIZZA Traduzione Cliente (CF, Nome, Cognome, Data_nascita, Telefono, Indirizzo) Ordine (IDOrdine, Data_ordine, Totale, Cliente) Nota: E stato rinominato CF in Cliente Servizi (IDServizio, Descrizione, Prezzo) Prodotti (Codice_Prodotto, Categoria, Nome, Marca, Quantità_magazzino, Prezzo, Scheda_Grafica, Velocità_Rotazione, Frequenza, CPU, Schermo, Cap_RAM, Cap_HDD, Interfaccia, Grossista) Nota: è stato rinominato IDGrossista in Grossista. Composizione (IDComp,Ordine, Servizio, Prodotto, Quantità_Ordinata) Nota: Sono stati rinominati IDOrdine,IDServizio,Codice_Prodotto in Ordine, Servizio e Prodotto. In questo caso ho dovuto inserire una chiave IDComp perché Ordine o Servizio potrebbero avere valore nullo, quindi la superchiave(ordine, Servizio, Prodotto) non può essere utilizzata. Grossista (IDGrossista, Nome, Telefono, Sede, ) Corrieri (IDCorriere, Nome, Telefono, Sede, Orari) Utilizza (Grossista, Corriere) Nota: Sono stati rinominati IDGrossista e IDCorriere in Grossista e Corriere

28 4b. Normalizzazione Le relazioni Ordini, Servizi, Prodotti e Composizione sono in forma normale di Boyce e Codd perché le uniche dipendenze funzionali sono o quelle banali o dipendenze tra un qualunque attributo non primo e la chiave. La relazione Utilizza ha solo attributi primi, quindi le uniche dipendenze funzionali sono quelle banali e pertanto si trova in BCFN. Le relazioni Cliente, Grossisti, Corrieri non sono in BCFN perché c è dipendenza funzionale tra Indirizzo e Telefono della relazione Cliente: Telefono -> Indirizzo e il primo non fa parte di una chiave. Nelle relazioni Grossisti e Corrieri c è la stessa dipendenza funzionale: Telefono -> Sede dove telefono non fa parte di una chiave. Soluzioni: - Togliere l attributo Telefono da tutte e tre le relazioni lasciando inalterato il resto. - Creare tre relazioni come segue: Rubrica_Cliente (Cliente, Telefono) nota: CF è stato rinominato in Cliente Rubrica_Grossista (Grossista, Telefono) nota: IDGrossista è stato rinominato in Grossista Rubrica_Corriere (Corriere, Telefono) nota: IDCorriere è stato rinominato in Corriere Tutte le relazioni ora sono in BCFN e non presenteranno anomalie in fase di inserimento modifica e cancellazione. 4c. Vincoli di integrità referenziale Attributo Cliente (relazione Rubrica_Cliente) Cliente (relazione Ordine) Grossista (relazione Prodotti) Grossista (relazione Utilizza) Ordine (relazione Composizione) Servizio (relazione Composizione) Prodotto (relazione Composizione) Corriere (relazione utilizza) Grossista (relazione Rubrica_Grossista) Corriere (relazione Rubrica_Corriere) Vincolato a CF (relazione Cliente) CF (relazione Cliente) IDGrossista (relazione Grossisti) IDGrossista (relazione Grossisti) IDOrdine (relazione Ordine) IDServizio (relazione Servizi) Codice_Prodotto (relazione Prodotto) IDCorriere (relazione Corrieri) IDGrossista (relazione Grossisti) IDCorriere (relazione Corrieri) 4d. MySQL: definizione dello schema Quindi, le relazioni da creare risultano essere le seguenti: CLIENTE (CF, Nome, Cognome, Data_nascita, Indirizzo) ORDINE (IDOrdine, Data_ordine, Totale, Cliente) SERVIZI (IDServizio, Descrizione, Prezzo) PRODOTTI (Codice_Prodotto, Categoria, Nome, Marca, Quantita_magazzino, Prezzo, Scheda_Grafica,Velocita_Rotazione, Frequenza, CPU, Schermo, Cap_RAM, Cap_HDD, Interfaccia, Grossista) COMPOSIZIONE (IDComp,Ordine, Servizio, Prodotto, Quantita_Ordinata) GROSSISTA (IDGrossista, Nome, Sede, ) CORRIERI (IDCorriere, Nome, Sede, Orari) UTILIZZA (Grossista, Corriere) RUBRICA_CLIENTE (Cliente, Telefono) RUBRICA_GROSSISTA (Grossista, Telefono) RUBRICA_CORRIERE (Corriere, Telefono)

29 CREAZIONE DATABASE E RELATIVE TABELLE IN MYSQL: CREATE DATABASE `Negozio`; CREATE TABLE `cliente` ( `CF` VARCHAR( 16 ) NOT NULL, `Nome` VARCHAR( 15 ) NOT NULL, `Cognome` VARCHAR( 15 ) NOT NULL, `Data_nascita` DATE NOT NULL, `Indirizzo` VARCHAR( 70 ) NOT NULL, PRIMARY KEY ( `CF` ) ) ENGINE = innodb; CREATE TABLE `corrieri` ( `IDCorriere` INT( 2 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT, `Nome` VARCHAR( 30 ) NOT NULL, `Sede` VARCHAR( 70 ) NOT NULL DEFAULT 'ND', `Orari` VARCHAR( 70 ) NOT NULL DEFAULT 'ND', PRIMARY KEY ( `IDCorriere` ) ) ENGINE = innodb; CREATE TABLE `grossisti` ( `IDGrossista` INT( 2 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT, `Nome` VARCHAR( 30 ) NOT NULL, `Sede` VARCHAR( 70 ) NOT NULL, ` ` VARCHAR( 70 ) NOT NULL, PRIMARY KEY ( `IDGrossista` ) ) ENGINE = innodb; CREATE TABLE `servizi` ( `IDServizi` INT( 2 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT, `Descrizione` VARCHAR( 70 ) NOT NULL, `Prezzo` DECIMAL( 5, 2 ) UNSIGNED NOT NULL, PRIMARY KEY ( `IDServizi` ) ) ENGINE = innodb; CREATE TABLE `Rubrica_cliente` ( `Cliente` VARCHAR( 16 ) NOT NULL, `Telefono` VARCHAR( 10 ) NOT NULL, PRIMARY KEY ( `Cliente` ), FOREIGN KEY ( `Cliente` ) REFERENCES `negozio`.`clientei` (`CF` ) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE = innodb; CREATE TABLE `rubrica_grossisti` ( `Grossista` INT( 2 ) UNSIGNED ZEROFILL NOT NULL, `Telefono` VARCHAR( 10 ) NOT NULL, PRIMARY KEY ( `Grossista` ), FOREIGN KEY ( `Grossista` ) REFERENCES `negozio`.`grossisti` (`IDGrossista` ) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE = innodb;

30 CREATE TABLE `rubrica_corrieri` ( `Corriere` INT( 2 ) UNSIGNED ZEROFILL NOT NULL, `Telefono` VARCHAR( 10 ) NOT NULL, PRIMARY KEY ( `Corriere` ), FOREIGN KEY ( `Corriere` ) REFERENCES `negozio`.`corrieri` (`IDCorriere` ) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE = innodb; CREATE TABLE `Ordine` ( `IDOrdine` INT( 5 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT, `Data_ordine` DATE NOT NULL, `Totale` DECIMAL( 7, 2 ) UNSIGNED NOT NULL, `Cliente` VARCHAR( 16 ) NOT NULL, PRIMARY KEY ( `IDOrdine` ), INDEX (`Cliente`), FOREIGN KEY (`Cliente`) REFERENCES negozio`.`cliente` (`CF`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE = innodb; CREATE TABLE `prodotti` ( `Codice_Prodotto` INT(3) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT, `Categoria` VARCHAR( 8 ) NOT NULL, `Nome` VARCHAR( 70 ) NOT NULL, `Marca` VARCHAR( 30 ) NOT NULL, `CPU` VARCHAR( 70 ) NULL DEFAULT NULL, `Schermo` INT( 2 ) UNSIGNED NULL DEFAULT NULL, `Cap_RAM` INT( 4 ) UNSIGNED NULL DEFAULT NULL, `Cap_HDD` INT( 4 ) UNSIGNED NULL DEFAULT NULL, `Scheda_Grafica` VARCHAR( 30 ) NULL DEFAULT NULL, `Interfaccia` VARCHAR( 6 ) NULL DEFAULT NULL, `Velocita_rotazione` INT( 4 ) UNSIGNED NULL DEFAULT NULL, `Frequenza` INT( 4 ) UNSIGNED NULL DEFAULT NULL, `Quantita_Magazzino` INT( 3 ) UNSIGNED NOT NULL, `Prezzo` DECIMAL( 6, 2 ) UNSIGNED NOT NULL, `Grossista` INT( 2 ) UNSIGNED ZEROFILL NOT NULL, PRIMARY KEY ( `Codice_Prodotto` ), INDEX ( `Grossista` ), FOREIGN KEY ( `Grossista` ) REFERENCES `negozio`.`grossisti` (`IDGrossista`) ON DELETE NO ACTION ON UPDATE CASCADE ) ENGINE = innodb; CREATE TABLE `utilizza` ( `Grossista` INT( 2 ) UNSIGNED ZEROFILL NOT NULL, `Corriere` INT( 2 ) UNSIGNED ZEROFILL NOT NULL, PRIMARY KEY ( `Grossista`, `Corriere` ), FOREIGN KEY ( `Grossista` ) REFERENCES `negozio`.`grossisti` (`IDGrossista` ) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ( `Corriere` ) REFERENCES `negozio`.`corrieri` (`IDCorriere` ) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE = innodb ;

31 CREATE TABLE `composizione` ( `IDComp` INT( 5 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT `Ordine` INT( 5 ) UNSIGNED ZEROFILL NOT NULL, `Servizio` INT( 2 ) UNSIGNED ZEROFILL NULL DEFAULT NULL, `Prodotto` INT( 3 ) UNSIGNED ZEROFILL NULL DEFAULT NULL, `Quantità_Ordinata` INT( 2 ) UNSIGNED NOT NULL, PRIMARY KEY (`IDComp`), INDEX (`Ordine`), INDEX(`Servizio`), INDEX(`Prodotto`), FOREIGN KEY ( `Ordine` ) REFERENCES `negozio`.`ordine` (`IDOrdine` ) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ( `Servizio` ) REFERENCES `negozio`.`servizi` (`IDServizi` ) ON DELETE SET NULL ON UPDATE CASCADE, FOREIGN KEY ( `Prodotto` ) REFERENCES `negozio`.`prodotti` (`Codice_Prodotto` ) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE = innodb; 4e.MySQL: query Operazione 1: Inserimento di un nuovo ordine associato ad un cliente non presente nell archivio, composto da prodotti e/o servizi già presenti in archivio. (si dovrà vedere se il prodotto è disponibile) Supponiamo di inserire nell Ordine, un Servizio ed un Prodotto Passo1: BEGIN; SELECT Quantità_Magazzino FROM prodotti WHERE Codice_Prodotto = <codice del prodotto> AND Quantità_magazzino >= <quantità richiesta> ; COMMIT; Passo2: BEGIN; INSERT INTO cliente VALUES ( <CF>, <Nome>, <Cognome>, <Data_nascita>, <Indirizzo> ); INSERT INTO rubrica_cliente VALUES ( <CF>, <Telefono> ); INSERT INTO ordine(data_ordine,totale,cliente) VALUES( < >,< >,<CF> ); INSERT INTO composizione(ordine,servizio,quantità_ordinata) VALUES ( <IDOrdine>, <IDServizio>,< > ); INSERT INTO composizione(ordine,prodotto,quantità_ordinata) VALUES ( <IDOrdine>, <IDProdotto>,< > ); UPDATE prodotti SET Quantità_magazzino = Quantità_magazzino - <quantitàordinata> WHERE Codice_Prodotto = <codiceprodotto> ; COMMIT;

32 Operazione 2: Inserimento di un nuovo prodotto con tutte le relative caratteristiche tecniche, associato ad un grossista già presente nell archivio. Supponiamo di inserire un HDD: INSERT INTO prodotto(categoria, Nome, Marca, Quantita_magazzino, Prezzo, Velocita_Rotazione, Interfaccia, Cap_HDD, Grossista) VALUES ( < >,< >,< >,< >,< >,< >,< >,<IDGrossista> ); Operazione 3: Inserimento di un nuovo grossista con i relativi dati, associato ad un corriere già presente in archivio. BEGIN; INSERT INTO grossista(nome,sede, ) VALUES (< >,< >,< >); INSERT INTO rubrica_grossista(grossista,telefono) VALUES ( <IDGrossista>,< > ); INSERT INTO utilizza VALUES ( <IDGrossista>,<IDCorriere> ); COMMIT; Operazione 4: Ricerca di tutti i prodotti disponibili in ordine alfabetico, appartenenti ad una specifica categoria, visualizzando Codice Prodotto,nome, Marca, Quantità in magazzino, Prezzo, e gli attributi corrispondenti alla categoria selezionata. Query Generica, visualizza tutti gli attributi: SELECT * FROM prodotti WHERE Categoria= <nome categoria> AND Quantità_Magazzino>0 ORDER BY Marca,Nome ASC; Supponiamo che la categoria sia : NOTEBOOK. La query è la seguente: SELECT Marca, Nome, CPU, Schermo, Cap_HDD, Cap_RAM, Scheda_Grafica, Quantità_magazzino, Prezzo FROM prodotti WHERE Categoria= NOTEBOOK AND Quantità_Magazzino>0 ORDER BY Marca,Nome ASC; Operazione 5: Ricerca di uno specifico corriere visualizzando nome, numero di telefono orari di apertura. SELECT Nome,Telefono,Orari FROM corrieri,rubrica_corriere WHERE IDCorriere= <id del corriere> AND corrieri.idcorriere=rubrica_corriere.corriere;

33 Operazione 6: Ricerca di tutti i grossisti che utilizzano un determinato corriere visualizzando il nome, il telefono e l del grossista. SELECT Nome,Telefono, FROM grossisti,rubrica_grossista,utilizza WHERE utilizza.corriere= <codice corriere> AND grossisti.idgrossista=rubrica_grossista.grossista AND grossisti.idgrossista=utilizza.grossista Operazione 7: Ricerca tutti i prodotti non disponibili, visualizzando il codice, la categoria, il nome, la marca e il prezzo del prodotto, il nome, il telefono e l del grossista ad esso associato, ordinati in ordine alfabetico sulla categoria di appartenenza. SELECT Codice_prodotto,Categoria,prodotti.Nome, Marca, Prezzo,grossisti.Nome,Telefono, FROM prodotti,grossisti,rubrica_grossista WHERE Quantità_magazzino=0 AND grossisti.idgrossista=rubrica_grossista.grossista AND prodotti.grossista=grossisti.idgrossista ORDER BY prodotti.categoria ASC Operazione 8: Ricerca di tutti i prodotti ordinati da un cliente, visualizzando Codice, Categoria, Nome, Marca, Prezzo del/i prodotto/i, data di acquisto dell articolo e Quantità ordinata. La lista degli articoli dovrà essere ordinata dal più recente al meno recente. SELECT composizione.prodotto, prodotti.categoria, prodotti.nome, prodotti.marca, composizione.quantita_ordinata, ordine.data_ordine, prodotti.prezzo FROM ordine, composizione, prodotti WHERE ordine.idordine = composizione.ordine AND composizione.prodotto = prodotti.codice_prodotto AND ordine.cliente = <CodiceFiscale> AND composizione.prodotto IS NOT NULL ORDER BY ordine.data_ordine ASC; Operazione 9: Ricerca di tutti i clienti che hanno ordinato un prodotto di una certa marca dopo una determinata data, visualizzando nome, cognome e telefono del cliente, data dell ordine, codice, categoria e nome del prodotto. SELECT cliente.nome, cliente.cognome, rubrica_cliente.telefono, ordine.data_ordine, prodotti.codice_prodotto, prodotti.categoria, prodotti.nome FROM cliente, ordine, composizione, prodotti, rubrica_cliente WHERE cliente.cf = ordine.cliente AND ordine.idordine = composizione.ordine AND composizione.prodotto = prodotti.codice_prodotto AND rubrica_cliente.cliente=cliente.cf AND prodotti.marca = <marca> AND ordine.data_ordine > <data> ;

34 Operazione 10: Visualizza tutti gli ordini dell ultimo mese il cui totale sia maggiore della media di tutti i totali, visualizzando il codice ed il totale dell ordine, nome e cognome del cliente che lo ha effettuato. Ordinati in ordine decrescente sul totale dell ordine. SELECT cliente.nome,cliente.cognome,ordine.idordine,ordine.totale FROM ordine,cliente WHERE ordine.cliente=cliente.cf AND ordine.data_ordine BETWEEN (curdate() - interval 1 month) AND curdate() AND ordine.totale > (SELECT avg(totale) FROM ordine) ORDER BY Totale DESC; Operazione 11: Top ten dei clienti più affezionati (clienti che hanno speso di più). SELECT cliente.nome,cliente.cognome,sum(totale) FROM cliente,ordine WHERE cliente.cf=ordine.cliente GROUP BY cliente.cf ORDER BY sum(totale) DESC LIMIT 0,10; Operazione 12: Visualizza i 10 prodotti più richiesti ordinati in modo decrescente, visualizzando numero di ordinazioni, Codice, nome, marca e prezzo del prodotto. SELECT Prodotto,Categoria,Nome,Marca,sum(Quantita_Ordinata) FROM composizione,prodotti WHERE Prodotto IS NOT NULL AND Prodotto=Codice_Prodotto GROUP BY Prodotto ORDER BY sum(quantita_ordinata) DESC LIMIT 0,10; 5. Interfaccia in php: L interfaccia è stata sviluppata usando il php. Sono state implementate tutte le operazioni presenti nella relazione. Per quanto riguarda gli inserimenti, ho realizzato un controllo dei dati che restituisce errore se la stringa immessa non è del formato giusto o eccede la lunghezza massima consentita o il campo non è stato riempito. In tutte le operazioni portate a termine con successo, viene visualizzato il codice mysql altrimenti, viene visualizzato il messaggio d errore corrispondente. L interfaccia è raggiungibile all indirizzo:

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

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

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

1. Analisi dei requisiti

1. Analisi dei requisiti 1. Analisi dei requisiti 1a. Requisiti espressi in linguaggio naturale 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Si vuole realizzare una base di dati

Dettagli

La Progettazione Concettuale

La Progettazione Concettuale La Progettazione Concettuale Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica CorsodiBasidiDati Anno Accademico 2006/2007 docente: ing. Corrado Aaron Visaggio

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

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Entità-Relazione Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

Dettagli

Capitolo 8. Esercizio 8.1

Capitolo 8. Esercizio 8.1 Capitolo 8 Esercizio 8.1 Si consideri lo schema Entità-Relazione ottenuto come soluzione dell esercizio 7.4. Fare delle ipotesi sul volume dei dati e sulle operazioni possibili su questi dati e, sulla

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

Prova scritta del corso di Basi di dati attive 17 Dicembre 1999. Agenzia

Prova scritta del corso di Basi di dati attive 17 Dicembre 1999. Agenzia Prova scritta del corso di Basi di dati attive 17 Dicembre 1999 Si desidera automatizzare la gestione dei banchetti organizzati da un agenzia di pubbliche relazioni. Le specifiche del sistema informativo,

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

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

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome. Prof. Francesco Accarino Raccolta di esercizi modello ER Esercizio 1 Un università vuole raccogliere ed organizzare in un database le informazioni sui propri studenti in relazione ai corsi che essi frequentano

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

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

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

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica

Dettagli

Fasi del progetto ( 1 )

Fasi del progetto ( 1 ) Progetto 2004-2005 2005 Esercitazione delle lezioni 2, 3 e 4. 1 Fasi del progetto ( 1 ) Analisi dettagliata delle specifiche fornite dal committente. Questa fase è fondamentale per capire a fondo quali

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

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Progettazione di una base di dati Ufficio della Motorizzazione

Progettazione di una base di dati Ufficio della Motorizzazione Corso di Gestione dell Informazione Studenti NON frequentanti A.A. 2008/2009 1 Scopo del progetto Progettazione di una base di dati Ufficio della Motorizzazione Si vuole realizzare un applicazione base

Dettagli

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1 Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione della base di dati di una facoltà e si definisca

Dettagli

Basi Di Dati, 09/12/2003

Basi Di Dati, 09/12/2003 Basi Di Dati, 09/12/2003 Una concessionaria di auto nuove ed usate vuole automatizzare alcune delle sue attività. L attività che la concessionaria vuole automatizzare riguarda la gestione delle auto nuove,

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

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

Progettazione concettuale

Progettazione concettuale Progettazione concettuale Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi

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

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

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

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

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età PROGETTAZIONE LOGICA 7í0 Progettazione logica Obiettivo: ëtradurre" lo schema concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed eæciente Input: Output: æ schema concettuale

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

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti. SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo

Dettagli

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

ARCHIVI E DATABASE (prof. Ivaldi Giuliano) ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).

Dettagli

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER Basi di Dati Progettazione del Modello ER Dai requisiti allo schema ER Entità, relazioni e attributi non sono fatti assoluti dipendono dal contesto applicativo Nella pratica si fa spesso uso di una strategia

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

Esercizio sui data base "Gestione conti correnti"

Esercizio sui data base Gestione conti correnti Database "Gestione conto correnti" Testo del quesito La banca XYZ vuole informatizzare le procedure di gestione dei conti correnti creando un archivio dei correntisti (Cognome, Nome, indirizzo, telefono,

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

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

Le Basi di Dati. Le Basi di Dati

Le Basi di Dati. Le Basi di Dati Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per

Dettagli

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi Università degli Studi di L Aquila Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi Prof. Gaetanino Paolone Dott. Ottavio Pascale a.a.2003-2004 Progetto Campo

Dettagli

Progettazione logica relazionale (1/2)

Progettazione logica relazionale (1/2) Progettazione di basi di dati (1/2) Introduzione Ristrutturazione dello schema ER Eliminazione delle gerarchie Partizionamento di concetti Eliminazione degli attributi multivalore Eliminazione degli attributi

Dettagli

I Sistemi Informativi

I Sistemi Informativi I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e

Dettagli

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema Pagina: 1 e-travel ING SW Progetto di Ingegneria del Software e-travel Requisiti Utente Specifiche Funzionali del Sistema e Pagina: 2 di 9 Indice dei contenuti 1 INTRODUZIONE... 3 1.1 SCOPO DEL DOCUMENTO...

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

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

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso 2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi

Dettagli

Basi di Dati corso C Esercitazione 18/12/2002 Autonoleggio tempo: 3 ore

Basi di Dati corso C Esercitazione 18/12/2002 Autonoleggio tempo: 3 ore Basi di Dati corso C Esercitazione 18/12/2002 Autonoleggio tempo: 3 ore Si vuole progettare una base di dati per conto di una società convenzionata con un aeroporto, che gestisce il noleggio di automobili

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Le query di raggruppamento

Le query di raggruppamento Le query di raggruppamento Le "Query di raggruppamento" sono delle Query di selezione che fanno uso delle "Funzioni di aggregazione" come la Somma, il Conteggio, il Massimo, il Minimo o la Media, per visualizzare

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

SQL/OLAP. Estensioni OLAP in SQL

SQL/OLAP. Estensioni OLAP in SQL SQL/OLAP Estensioni OLAP in SQL 1 Definizione e calcolo delle misure Definire una misura significa specificare gli operatori di aggregazione rispetto a tutte le dimensioni del fatto Ipotesi: per ogni misura,

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

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

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

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

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni

Dettagli

Identificatori delle entità

Identificatori delle entità Identificatori delle entità Permettono di identificare in maniera univoca le occorrenze delle entità Ogni entità deve averne (almeno) uno Targa Automobile Modello Colore Nome Persona Data di nascita Indirizzo

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

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino Progettazione logica Progettazione logica Richiede di scegliere il modello dei dati!modello relazionale Obiettivo: definizione di uno schema logico relazionale corrispondente allo schema ER di partenza

Dettagli

Manuale operatore per l utilizzo dell utente di dominio

Manuale operatore per l utilizzo dell utente di dominio Manuale operatore per l utilizzo dell utente di dominio Sommario Manuale operatore per l utilizzo dell utente di dominio... 1 1. Account personale di dominio... 2 2. Account generico di dominio... 2 3.

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

database: modello entityrelationship

database: modello entityrelationship Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8 database: modello entityrelationship Prof.Valle D.ssaFolgieri Lez7 25.10.07 Trattamento dati. Database: modello entity-relationship 1 Fasi

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

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

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. 2ELHWWLYL GD UDJJLXQJHUH SHU JOL VWXGHQWL alla fine dell esercitazione gli studenti dovranno essere in grado di: 1. utilizzare

Dettagli

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

Dettagli

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,

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

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords. Premessa Oltre alle singole parole WoWords può gestire intere frasi in inglese. A differenza delle singole parole, le

Dettagli

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

MySQL Database Management System

MySQL Database Management System MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare

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

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

CREAZIONE DI UN AZIENDA

CREAZIONE DI UN AZIENDA CREAZIONE DI UN AZIENDA La creazione di un azienda in Businesspass avviene tramite la funzione Aziende Apertura azienda ; dalla medesima sarà possibile richiamare le aziende precedentemente create per

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

MANUALE ESSE3 Gestione Registro delle lezioni

MANUALE ESSE3 Gestione Registro delle lezioni MANUALE ESSE3 Gestione Registro delle lezioni DOCENTI 1 INDICE 1. INTRODUZIONE E ACCESSO... 3 2. GESTIONE DEL REGISTRO... 4 2.1. Informazioni generali... 6 2.2. Stato del Registro... 7 2.2.1. Transizioni

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

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

Traccia di soluzione dell esercizio del 25/1/2005

Traccia di soluzione dell esercizio del 25/1/2005 Traccia di soluzione dell esercizio del 25/1/2005 1 Casi d uso I casi d uso sono in Figura 1. Ci sono solo due attori: il Capo officina e il generico Meccanico. Figura 1: Diagramma dei casi d uso. 2 Modello

Dettagli

Introduzione. Alberto Fortunato alberto.fortunato@gmail.com. www.albertofortunato.com Pag. 1 di 137

Introduzione. Alberto Fortunato alberto.fortunato@gmail.com. www.albertofortunato.com Pag. 1 di 137 Introduzione Il software Gestione magazzino è stato realizzato con l intenzione di fornire uno strumento di apprendimento per chi intendesse cominciare ad utilizzare Access 2010 applicando le tecniche

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

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 25 Marzo 03 Nome: Cognome: Matricola: Esercizio 1

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 25 Marzo 03 Nome: Cognome: Matricola: Esercizio 1 Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 25 Marzo 03 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione della base di dati di un circolo

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

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

Gestione Voti Scolastici

Gestione Voti Scolastici Gestione Voti Scolastici Progettare un modello di dati per la gestione delle informazioni riguardanti le prove, nelle diverse materie, sostenute dagli studenti di una scuola media superiore. Il sistema

Dettagli

Basi di dati I Soluzione Quinto Homework del 9 gennaio 2013

Basi di dati I Soluzione Quinto Homework del 9 gennaio 2013 Basi di dati I Soluzione Quinto Homework del 9 gennaio 2013 Domanda 1 (50%) Si consideri la seguente schematizzazione di alcuni tour organizzati da un agenzia turistica: Tour N. 2345 Nome: Marocco Partenza:

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

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

Lezioni di Laboratorio sui Data Base

Lezioni di Laboratorio sui Data Base Lezioni di Laboratorio sui Data Base Docente Tutor: Dott. Gianluigi Roveda Informatica per l'impresa Prima Parte: Open Office - Base PREMESSA Questo lavoro è stato realizzato a partire dalle slides del

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

ELENCO CLIENTI FORNITORI Patch1

ELENCO CLIENTI FORNITORI Patch1 ELENCO CLIENTI FORNITORI Patch1 Il pacchetto P15_200ElencoCF_Patch1.exe contiene una serie di aggiornamenti alla procedura di generazione del file contenente l. Download: 1) Assicurarsi di avere una versione

Dettagli

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE Che cosa sono e a cosa servono le caratteristiche? Oltre a descrivere le qualità di un prodotto con un testo generico (descrizione) è possibile dettagliare

Dettagli

CONTENT MANAGEMENT SY STEM

CONTENT MANAGEMENT SY STEM CONTENT MANAGEMENT SY STEM I NDI CE I NTRODUZI ONE Accesso al CMS 1) CONTENUTI 1.1 I nserimento, modifica e cancellazione dei contenuti 1.2 Sezioni, categorie e sottocategorie 2) UTENTI 3) UP LOAD FILES

Dettagli

1- OBIETTIVI DEL DOCUMENTO 2- INTRODUZIONE

1- OBIETTIVI DEL DOCUMENTO 2- INTRODUZIONE 1- OBIETTIVI DEL DOCUMENTO... 1 2- INTRODUZIONE... 1 3- ACCESSO ALLA PROCEDURA... 2 4- COMPILAZIONE ON-LINE... 4 5- SCELTA DELLA REGIONE O PROVINCIA AUTONOMA... 5 6- DATI ANAGRAFICI... 6 7- DATI ANAGRAFICI

Dettagli