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



Documenti analoghi
SQL: definizione schema

Basi di Dati Relazionali

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

Volumi di riferimento

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

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

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

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

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

Basi di Dati Corso di Laura in Informatica Umanistica

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

Prova Scritta di Basi di Dati

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

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

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:

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

Progettazione concettuale

Composizione. Tipo. Pubblicità. Numero ripetizioni. (1,N) (1,1) Composizione. Tipo. Messaggio promozionale. Codice. Azienda. Prodotto.

Progettazione Logica. Progettazione Logica

ESAME di INFORMATICA e ARCHIVIAZIONE

Operazioni sui database

ESAME di INFORMATICA e ARCHIVIAZIONE

Capitolo 13. Interrogare una base di dati

Basi Di Dati, 09/12/2003

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

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

Basi di dati II prova intermedia 16 Marzo 2006 Compito 1

11 - Progettazione Logica

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

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

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

Capitolo 8. Esercizio 8.1

Introduzione ai database relazionali

marca (1,n) (1,1) nome prezzou prodotto nome responsabile quantità nome datai dataf (0,n) vendite (0,n) (0,n) (0,n) tempo acquisti quantità (0,n)

SQL/OLAP. Estensioni OLAP in SQL

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

70555 Informatica Sicurezza Mario Rossi Anna Bianchi. Esempio istanza:

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

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

Laboratori. Laboratori

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

Basi di dati Appello del Compito A

Esame di Basi di Dati, SOLUZIONE APPELLO 12/01/2010

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

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

Progettazione logica relazionale (1/2)

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

Progetto Logos - Documentazione -

Il linguaggio SQL: viste e tabelle derivate

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Guida all uso di Java Diagrammi ER

DBMS (Data Base Management System)

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

SQL Server. Applicazioni principali

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

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

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

Prova scritta. Mercoledì 23 Luglio Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Le Basi di Dati. Le Basi di Dati

Il BACKUP è disponibile in

SQL - Funzioni di gruppo

Il linguaggio SQL: query innestate

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

Database. Si ringrazia Marco Bertini per le slides

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

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

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

Prova scritta. Giovedì 02 Ottobre Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Organizzazione degli archivi

Progettazione di Basi di Dati

Esercitazione Simulazione Compito

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

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE

GERARCHIE RICORSIVE - SQL SERVER 2008

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Corso di Laboratorio di Basi di Dati

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

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Prova scritta. Mercoledì 11 Febbraio Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null


Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Esame di stato 2004 Portfolio studente

Rappresentazione grafica di entità e attributi

Dispensa di database Access

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

Il Modello Relazionale

Data management a.a Il linguaggio SQL

Gli operatori relazionali

Esercitazione di Basi di Dati

Vincoli di Integrità

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Lezione 4. Modello EER

Tipi MULTISET: accesso

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Transcript:

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 CF volte che si visualizza i dati un fornitore si mostranoanche 3.Un determinata ricercare ènecessario tutti sede i menu o quelli ricercare offerti normali. da i menùsu una E poco determinata prenotazione frequente sede offerti si debba da una 4.Mentre glutine) un che dato menu la stessa èfrequente se menùèper viene e solo operazione considerato se che celiaci tutti debba i piatti (vegetariani, per essere celiaci che ricercare include (vegetariani, fatta intolleranti il database per hanno un tale singolo intollerantial per glutine) caratteristica sapere piatto èraro se 1 6.Il 7.E frequente 8.E poco ma inclusi prezzo di un menu si voglia che si calcola si conoscere sommando conoscere il prezzo i il prezzi prezzo di un dei singolo singoli un menu piatto, piatti 9.Frequentemente festivo e frequente normaleche si vogliano ricercare i menu distinguendoli fra 10.Frequentemente forniti attualmente da un determinato fornitore. ingredienti Poche alimentari 11.L attributo di usano la relazione ènecessario forniture passata. ricercare gli elementi della operazioni contiene Quando un dato la piatto percentuale rappresenta di un certo elemento della relazione rispetto composizione al peso confezione l attributo il valore il dell attributo valore viene messo della ènullo percentuale a null. numericamente Le ricerche èal di sotto raramente definito. di una distinguono certa soglia, totale. se 2 La mensa La mensa

indicazioni nomeprezzo datamenu descrizione piattocodiceper celiaci vegetariani intoll. composi_ indicazioni celiaci vegetariani inclusione zione percentualedescrizione lattosio (1,N) (1,N) intoll. Elemento lattosio (1,1) offertafestivo suprenotazione normale prezzo (1,N) Ingrendiente alimentare(0,n) quantita tipoconfezione Elementodella (0,1) materialericiclabile Informazione sede (1,N) fiscale nome indirizzo calorie possesso correntefornitorefornitura passata CF P.IVA(1,1) quantità (1,N) (0,N) (0,N) nomeindirizzo quantità 3 nomecodice menu celiaci (0,1) festivo inclusionedescrizione piatto composi_ zione Elemento suprenot. offerta(0,1) (1,N) per vegetariani intoll. lattosio(1,n) percentualedescrizione prezzo codice(1,n) per celiaci vegetariani intoll. lattosio (0,N) codice (0,N) sede(0,n) Ingrendiente alimentare tipoconfezione Elementodella nome (1,1) indirizzo prenot. offerta senza locazione (0,N) fornitura corrente(1,n) (1,1) incl1(0,1) quantita descrizione incl2 (0,1) codice Fornitorefornitura passata materialericiclabile indirizzocodice quantità codice (0,N) nomecf (0,N) P.IVA quantità 4 La mensa Ristrutturazione

Dalla ogni offerta relazioni ristrutturazione su prenotazione e menu emergono partecipa offerta i seguenti ad una senza vincoli ed una prenotazione sola fra le relazioni Vincoli istanza incl1 e di Elemento incl2 partecipa ad una ed una sola fra le 5 La Analisi delle bassa ridondanze frequenza dell accesso all attributo indicazioni presente nei La piatti osservi quello potrebbe di però piatti, che suggerire mentre l attributo il viceversa che indicazioni tale attributo èfalso. di menu Per si possa cui èricavabile entrambi rimuovere.si da Eliminazioni attributi bassa vengono frequenza lasciati. dell accesso all attributo prezzo in menu, gli Si suggerisce sceglie gerarchie di l eliminazione. eliminare la gerarchia di menu per accorpamento ne svantaggi (in figlie nel padre. tipici: Di lo spreco fatti tale di soluzione spazio a causa in questo degli caso attributi non ha delle i due delle che questo distinguono in maniera caso inesistenti); le separata figlie). (in il questo rallentamento caso non dell accesso ci sono interrogazioni ai dati figlie delle 6 La mensa: commenti sulla ristrutturazione

Si Di nel attributi sceglie fatti padre le delle altre di porterebbe eliminare figlie. soluzioni Inoltre, a la spreco sono gerarchia rallenterebbe poco di memoria di consigliate. elemento a operazioni causa L accorpamento introducendo della di presenza ricerca delle delle che di relazioni. figlie Eliminazione considerano padre comunque, nelle porterebbe figlie le istanze non èpossibile delle alla duplicazione figlie perchéla in maniera della generalizzazione separata. relazione L accorpamento composizione èparziale e, del Accorpamenti/partizionamenti Si fornitore elimina attributi l attributo multipli composto e composti tendono sceglie di partizionare la relazione indicazioni offerta, e l attributo perchéle multiplo interrogazioni indirizzo in a quelle senza ad accedere prenotazione separatamente alle offerte di menu su prenotazione e 7 La mensa: commenti sulla ristrutturazione Si Le operazioni sceglie di La mensa: non non distinguono partizionare relazione composizione perchéle commenti particolari sottoinsiemi sulla Si accorpate relazioni fornitura corrente e fornitura passata non vengono ristrutturazione accorpano perchéfrequentemente le entitàfornitore e informazione vengono distinte. Scelta solito degli vengono identificatori accedute contemporaneamente. fiscale, perchédi Si perchéhanno introducono identificare identificatori composti in tutte o le lunghi entità, eccetto che piatto, 8

Dato corrispondente le Traduzione dipendenze lo schema funzionali schema ER della relazionale slide successiva si definisca il a schema fornendo le relazioni, le chiavi e relazionale 9 descrizione Elementocodice Ingrendiente alimentare tipoconfezione Elementodella (1,1) locazione (0,N) fornitura corrente(1,n) (1,1) incl1(0,1) quantita incl2 (0,1) calorie Fornitorefornitura passata materialericiclabile indirizzocodice codice (0,N) nomecf (0,N) P.IVA 10 Traduzione a schema relazionale

Elementi(codice,descrizione,quantita) Ingredienti_alimentari(codice,calorie) Schema relazionale con vincoli in forma grafica Fornitori(codice,nome,CF,P_IVA) Elementi_delle_confezioni(codice,tipo_materiale,riciclabile) Indirizzi(codice,indirizzo,codice_fornitore) Forniture_correnti(codice_fornitore,codice_ingrediente,quantità) Forniture_passate(codice_fornitore,codice_ingrediente,quantità) 11 Ingredienti_alimentari.codice->Elementi.codice Elementi_delle_confezioni->Elementi.codice Indirizzi.codice_fornitore->Fornitori.codice Forniture_passate.codice_fornitore->Fornitori.codice Vincoli in forma grafica Forniture_passate.codice_ingrediente->Ingredienti_alimentari.codice Forniture_correnti.codice_fornitore->Fornitori.codice Forniture_correnti.codice_ingrediente->Ingredienti_alimentari.codice 12

Si scriva il codice SQL che definisce lo schema delle due slide precedenti SQL: definizione schema 13 CREATE codice SCHEMA Schema TABLE serial elementi( PRIMARY piatti2key, relazionale con vincoli in forma grafica CREATE descrizione quantitanumeric(8,2) TABLE ingredienti_alimentari( varchar(100) NOT NOT NULL NULL, CREATE codice calorie integerprimary KEY REFERENCES Elementi(codice), codice tipo_materialevarchar(20) riciclabile ) TABLE integerprimary bit elementi_della_confezione( KEY NOT REFERENCES NULL, Elementi(codice), 14

CREATE codice nome TABLE Schema varchar(20) serial fornitori( PRIMARY NOT KEY, relazionale NULL, con vincoli in forma grafica CREATE CF P_IVAchar(11) char(16) NOT NOT NULL, TABLE indirizzi( NULL indirizzo codice_fornitoreintegernot ) serial varchar(50) PRIMARY KEY, NULL, NULL REFERENCES Fornitori(codice) 15 CREATE codice_fornitoreintegernot codice_ingredienteintegernot TABLE forniture_passate( Schema relazionale NULL NULL REFERENCES Fornitori(codice), ingredienti_alimentari(codice), con vincoli in forma grafica CREATE quantitainteger, PRIMARY ) codice_fornitoreintegernot TABLE KEY(codice_fornitore,codice_ingrediente) codice_ingredienteintegernot quantitainteger, PRIMARY forniture_correnti( ) KEY(codice_fornitore,codice_ingrediente) NULL NULL REFERENCES Fornitori(codice), ingredienti_alimentari(codice), 16

SQL: Interrogazioni Date le tabelle precedentemente definite, si scriva il codice SQL che implementi le seguenti interrogazioni 1.Ricercare tutti gli elementi forniti correntemente dal fornitore di nome pippo, mostrando descrizione, quantità totale e quantità fornita dal fornitore 17 4.Ricercare tutti gli elementi forniti in passato, mostrando descrizione dell elemento, quantità fornita e nome del 5.Trovare 6.Trovare nome indirizzi) del fornitore (non visualizzare ciascun niente fornitore, se il fornitore mostrando non anche ha SQL: Interrogazioni 7.Trovare 8.Ripetere pipponon il la numero ha quantitàmedia indirizzi) indirizzi degli di pippo (non elementi (ingredienti visualizzare alimentari) niente se 9.Usando da pippoe ciascun tutti fornitore i fornitori precedente che passato, hanno escludendo mostrando fornito quantitàmedie dai anche risultati il nome il fornitore minori del fornitore di forniti 10.Usando forniti questo da esercizio) ciascun fornitore 7, (occorre massimo creare delle una vista degli per risolvere elementi 10 che ha fornito l esercizio il massimo 9, trovare delle il fornitore medie(eventualmente piùdi uno) 18 2.Ricercare tutti gli elementi delle confezioni mostrando la descrizione, il tipo di materiale e se è riciclabile o meno 3.Ricercare tutti gli indirizzi e i nomi dei fornitori, mostrando anche il nome di quei fornitori che non hanno indirizzi

1.Ricercare nome fornita SELECT pippo, dal tutti fornitore gli mostrando elementi descrizione, forniti correntemente quantitàtotale dal fornitoredi e quantità SQL: descrizione, Interrogazioni FROM WHERE forniture_correnti.quantita elementi, elementi.codice=forniture_correnti.codice_ingrediente forniture_correnti, elementi.quantitaas "quantitafornita" fornitori "quantitatotale", AND fornitori.nome='pippo' forniture_correnti.codice_fornitore=fornitori.codice 19 2.Ricercare il SELECT tipo di tutti gli elementi delle confezioni mostrando la descrizione, SQL: descrizione, materiale e se èriciclabile o meno Interrogazioni tipo_materiale, riciclabile 3.Ricercare FROM WHERE elementi, elementi.codice=elementi_della_confezione.codice elementi_della_confezione nome SELECT di quei tutti fornitori gli indirizzi che e non i nomi hanno dei indirizzi fornitori, mostrando anche il FROM ON fornitori.codice=indirizzi.codice_fornitore nome, LEFT indirizzo JOIN indirizzi 20

4.Ricercare dell elemento, SELECT tutti quantitàfornita gli elementi forniti e nome in passato, del fornitore mostrando descrizione FROM fornitori descrizione,forniture_passate.quantita LEFT forniture_passate.codice_fornitore=fornitori.codice, nome ON elementi.codice=forniture_passate.codice_ingrediente JOIN 21 5.Trovare del fornitore il numero (non visualizzare indirizzi di niente ciascun se fornitore, il mostrando non ha indirizzi) anche il nome 6.Trovare SELECT FROM GROUP fornitori, byfornitori.codice, indirizzi fornitori.nome, count(*) AS "numero indirizzi" non SELECT ha indirizzi) il numero indirizzi di pippo (non visualizzare niente se pippo FROM WHERE GROUP fornitori, byfornitori.codice, nome= pippo indirizzi fornitori.nome, fornitori.nome count(*) AS "numero indirizzi" 22 SQL: Interrogazioni SQL: Interrogazioni

7.Trovare ciascun SELECT fornitore codice, la quantitàmedia nome, in passato, AVG(forniture_passate.quantita) degli mostrando elementi anche (ingredienti il nome alimentari) del AS fornitore mediaforniti da 8.Ripetere FROM WHERE GROUP fornitori, BY forniture_passate.codice_fornitore=fornitori.codice codice, tutti i fornitori l esercizio che hanno nome precedente fornito escludendo quantitàmedie dai risultati minori il di fornitore 10 pippoe GROUP SELECT FROM WHERE fornitori, forniture_passate.codice_fornitore=fornitori.codice codice, AND nome, nome<> AVG(forniture_passate.quantita) 'pippo' AS media HAVING BY AVG(forniture_passate.quantita) codice, nome >=10 23 9.Usando forniti questo da l esercizio ciascun fornitore 7, trovare (occorre il massimo creare delle una medie vista degli per risolvere elementi CREATE SELECT esercizio) FROM VIEW fornitori, codice, medie nome, ASAVG(forniture_passate.quantita) AS media SELECT WHERE GROUP BY forniture_passate.codice_fornitore=fornitori.codice FROM medie MAX(media) codice, AS nome massimo 24 SQL: Interrogazioni SQL: Interrogazioni

10.Usando che SELECT ha fornito l esercizio il massimo 9, trovare delle il fornitore medie(eventualmente piùdi uno) SQL: nome Interrogazioni FROM WHERE medie L esercizio media=(select FROM MAX(media) l interrogazione si po risolvere anche medie) vista e la vista medie dell esercizio 9) e creando facendo una poi vista un join (con fra la nuova 25