DATABASE CLIENTIRAPPRESENTANTI

Похожие документы
DATABASE COLLEZIONEMUSICALE

Esempi SQL con Access. Orazio Battaglia

Select From Where...

Modelli di Base Dati

SQL: le funzioni di aggregazione

Linguaggio SQL seconda parte

Caratteristiche dei linguaggi per Database

Select Anagrafiche, Movimenti From Descrizione? Where Anagrafiche.Codice=Codice And Cognome=' Bianchi ';

Interrogazioni complesse. SQL avanzato 1

QL (Query Language) Alice Pavarani

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018

Structured Query Language

Il linguaggio SQL: raggruppamenti

SQL. Esercitazione. Contatti: Dott. Domenico Fabio Savo

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf

MODULO 2. Query normali e parametriche Query di:

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

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

Basi di Dati: Corso di laboratorio

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Istituto Statale E.Torricelli Liceo Scientifico Tecnologico-Tecnico Industriale. Compiti Estivi Informatica

SQL. Esercitazione 6-7. Contatti: Dott.ssa Silvia Bonfanti

<Nome Tabella>.<attributo>

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Tema Esame Informatica Mercurio Gestione della palestra

ACCESS Esercitazione (query complesse) Ing. Cosimo Orlacchio

Verifica di Informatica. Cognome e Nome: Classe 5ª Ci, Data

Appunti su SQL. Query Language. Comando Select

LO SVOLGIMENTO DEL TEMA DI INFORMATICA

Basi di Dati: Corso di laboratorio

Basi di Dati. Esercitazione 1: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

PROGETTAZIONE DI DATABASE Linguaggio SQL

Data management a.a Il linguaggio SQL

ESERCITAZIONI ACCESS

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

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

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Linguaggio SQL: fondamenti D B M G

Транскрипт:

DATABASE CLIENTIRAPPRESENTANTI Esempio tratto dal libro di testo. TESTO L azienda INCOM Srl vuole organizzare un DB per gestire informazioni relative a fatture emesse ai propri clienti italiani, riportando di tali fatture solo i seguenti dati di sintesi: importo totale della fattura, data di emissione, riferimento fattura. I rapporti di vendita sono gestiti da rappresentanti aziendali competenti in esclusiva per regione, in modo che ogni regione ed ogni cliente della stessa faccia riferimento ad un unico rappresentante. Definito il Modello E/R e il Modello Logico del DB, rappresentare le interrogazioni di seguito elencate. 1) Elenco dei clienti associati ad un rappresentante il cui cognome sia acquisito da input comprendente ragione sociale e telefono del cliente, ordinato per ragione sociale; 2) Numero dei clienti attualmente gestiti da un rappresentante il cui codice sia acquisito da input; 3) Cognome e nome del rappresentante di un cliente la cui ragione sociale sia acquisita da input; 4) Elenco delle fatture emesse ad un cliente il cui codice sia acquisito da input, ordinato per data decrescente; 5) Fatturato raggruppato per codice rappresentante; 6) Numero delle fatture emesse raggruppate per codice rappresentante; 7) Nome del cliente cui corrisponde la fattura con importo massimo coi relativi dati della fattura; 8) Cognome e nome del rappresentante cui corrisponde la fattura con importo massimo; 9) Codice e nome dei clienti il cui fatturato totale sia superiore ad un dato valore passato da input; 10) Dati dei rappresentanti il cui numero di fatture sia superiore ad un dato valore passato da input. Dati ed ipotesi eventualmente mancanti a scelta. ANALISI DEL TESTO Vista la natura del problema, considereremo gli attributi essenziali per le entità individuate, definendo (nel modello logico) in modo opportuno i campi obbligatori (non vuoti), non duplicabili (omonimie) e le indicizzazioni. MODELLO E/R RAP CLI FAT Gestire => Ricevere => 1 N 1 N 02/04/2011 Corso Informatica - prof. Zampini Felice 1/7

MODELLO LOGICO TABELLA RAPPRESENTANTI (RAP) ATTRIBUTO TIPO LEN FORMATO KEY Ind DESCRIZIONE IdRap Contatore - Intero PK si Gestione automatica Cognome Testo 30 si Duplicati no/obbligatorio Nome Testo 20 Regione Testo 30 Codificato Nota 3 TABELLA CLIENTI (CLI) ATTRIBUTO TIPO LEN FORMATO KEY Ind DESCRIZIONE IdCli Contatore - Intero PK si Gestione automatica RagSoc Testo 30 si Duplicati no/obbligatorio Indirizzo Testo 50 Tel Testo 20 PIVA Testo 11 IdRap Intero - FK si FK da Tabella RAP TABELLA FATTURE (FAT) ATTRIBUTO TIPO LEN FORMATO KEY Ind DESCRIZIONE IdFat Contatore - Intero PK si Gestione automatica Data Data 10 GG/MM/AAAA TotImporto Reale - Valuta IdCli Intero - si FK da Tabella CLI Nota 1: abbreviamo con RAP, CLI e FAT i nomi delle 3 tabelle. Nota 2: scelti gli attributi essenziali, come nel Modello Logico, tra essi Cognome compreso nella tabella RAP, vista l interrogazione 2, va valutato come obbligatorio e come non ammettente duplicati, cosa non propriamente plausibile (accettata per semplicità ma evidenziata come ipotesi aggiuntiva). Nota 3: l attributo Regione potrebbe essere codificato col nome della regione, per semplicità il primo (p.es. Friuli e non Friuli Venezia Giulia), quindi ci esoneriamo dal dare l allegato relativo. Tale codifica potrà essere gestita implementando un menu pop-up (casella di riepilogo) per selezionare la regione. 02/04/2011 Corso Informatica - prof. Zampini Felice 2/7

Quesito 1 Elenco dei clienti associati ad un rappresentante il cui cognome sia acquisito da input comprendente ragione sociale e telefono del cliente, ordinato per ragione sociale. P RAP T1 = Selezione di RAP per Cognome = [Inserire Cognome: ] T1 PK CLI FK T2 = Congiunzione di T1 e CLI su IdRap T3 = Proiezione di T2 su RagSoc, Tel T4 = Proiezione di T3 ordinata per RagSoc SELECT RagSoc, Tel FROM CLI, RAP WHERE CLI.IdRap = RAP.IdRap AND Cognome = [Inserire Cognome: ] ORDER BY RagSoc; Versione della Query in Microsoft Access T1 PK CLI FK P RAP SELECT RagSoc, Tel FROM CLI INNER JOIN RAP ON CLI.IdRap = RAP.IdRap WHERE Cognome = [Inserire Cognome: ] ORDER BY RagSoc; Quesito 2 Numero dei clienti attualmente gestiti da un rappresentante il cui codice sia acquisito da input. P RAP T1 = Selezione di RAP per IdRap = [Inserire Codice Rappresentante: ] T1 PK CLI FK T2 = Congiunzione di T1 e CLI su IdRap Conteggio righe di T2 SELECT COUNT (*) FROM CLI, RAP WHERE CLI.IdRap = RAP.IdRap AND IdRap = [Inserire Codice Rappresentante: ]; 02/04/2011 Corso Informatica - prof. Zampini Felice 3/7

Quesito 3 Cognome e nome del rappresentante di un dato cliente la cui ragione sociale sia acquisita da input. P CLI T1 = Selezione di CLI per RagSoc = [Inserire Ragione Sociale: ] T1 FK RAP PK T2 = Congiunzione di T1 e RAP su IdRap T3 = Proiezione di T2 su Cognome, Nome SELECT FROM WHERE Cognome, Nome CLI, RAP CLI.IdRap = RAP.IdRap AND RagSoc = [Inserire Ragione Sociale: ]; Quesito 4 Elenco delle fatture emesse ad un cliente il cui codice sia acquisito da input, ordinato per data decrescente. P FAT T1 = Selezione di FAT per IdCli = [Inserire Codice Cliente: ] L T1 T2 = Proiezione di T1 ordinato per Data decrescente SELECT * FROM FAT WHERE IdCli = [Inserire Codice Cliente: ] ORDER BY Data DESC; Quesito 5 Fatturato raggruppato per codice rappresentante. CLI PK FAT FK T1 = Congiunzione di CLI e FAT su IdCli Raggruppamento T2 = Raggruppamento di T1 per IdRap e Calcolo Fatturato T3 = Proiezione di T2 su IdRap, Fatturato 02/04/2011 Corso Informatica - prof. Zampini Felice 4/7

SELECT IdRap, SUM(TotImporto) AS Fatturato FROM FAT, CLI WHERE FAT.IdCli = CLI.IdCli GROUP BY IdRap; Quesito 6 Numero delle fatture emesse raggruppate per codice rappresentante. CLI PK FAT FK T1 = Congiunzione di CLI e FAT su IdCli Raggruppamento T2 = Raggruppamento di T1 per IdRap e Conteggio T3 = Proiezione di T2 su IdRap, Conteggio SELECT IdRap, COUNT (*) AS NumeroFatture FROM FAT, CLI WHERE FAT.IdCli = CLI.IdCli GROUP BY IdRap; Quesito 7 Nome del cliente cui corrisponde la fattura con importo massimo coi relativi dati della fattura. ImportoMax = Max valore importo fatture P FAT T1 = Selezione di FAT per Importo = ImportoMax T1 FK CLI PK T2 = Congiunzione di T1 e CLI su IdCli T3 = Proiezione di T2 su RagSoc, Data, TotImporto SELECT FROM WHERE RagSoc, Data, TotImporto AS ImportoMax FAT, CLI FAT.IdCli = CLI.IdCli AND TotImporto = (SELECT MAX(TotImporto) FROM FAT); 02/04/2011 Corso Informatica - prof. Zampini Felice 5/7

Quesito 8 Cognome e nome del rappresentante cui corrisponde la fattura con importo massimo. ImportoMax = Max valore importo fatture P FAT T1 = Selezione di FAT per Importo = ImportoMax T1 FK CLI PK T2 = Congiunzione di T1 e CLI su IdCli T2 FK RAP PK T3 = Congiunzione di T2 e RAP su IdRap T4 = Proiezione di T3 su Cognome, Nome SELECT FROM WHERE Cognome, Nome FAT, RAP RAP.IdRap = CLI.IdRap AND FAT.IdCli = CLI.IdCli AND TotImporto = (SELECT MAX(TotImporto) FROM FAT); Quesito 9 Codice e nome dei clienti il cui fatturato totale sia superiore ad un dato valore passato da input. FAT FK CLI PK T1 = Congiunzione di FAT e CLI su IdCli T2 = Raggruppamento di T1 per Cliente e Somma Importi T3 = Selezione di T2 per Somma Importi > [Fatturato Min: ] T4 = Proiezione di T3 su IdCli, RagSoc SELECT IdCli, RagSoc FROM FAT, CLI WHERE CLI.IdCli = FAT.IdCli AND GROUP BY IdCli, RagSoc HAVING SUM(Importo) > [Fatturato Min: ]; 02/04/2011 Corso Informatica - prof. Zampini Felice 6/7

Quesito 10 Dati dei rappresentanti il cui numero di fatture sia superiore ad un dato valore passato da input. RAP PK CLI FK T1 = Congiunzione di RAP e CLI su IdRap T1 PK FAT FK T2 = Congiunzione di T1 e FAT su IdCli T3 = Raggruppamento di T2 per rappresentante e conteggio T4 = Selezione di T3 per conteggio > [Numero Min Fatture: ] L T4 T5 = Proiezione di T4 su IdRap, Cognome, Nome SELECT IdRap, Cognome, Nome FROM FAT, CLI, RAP WHERE CLI.IdRap = Rap.IdRap AND FAT.IdCli = CLI.IdCli GROUP BY IdRap, Cognome, Nome HAVING COUNT(*) > [Numero Min Fatture: ]; 02/04/2011 Corso Informatica - prof. Zampini Felice 7/7