GESTIONE VIDEONOLEGGIO

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "GESTIONE VIDEONOLEGGIO"

Transcript

1 GESTIONE VIDEONOLEGGIO Si vuole automatizzare la gestione del noleggio di video (in formato VHS, DVD ed altri). Nel database si devono organizzare i dati relativi ai video, ai clienti del negozio, ai produttori dei video e ai noleggi effettuati. La gestione deve comprendere : l inserimento di nuovi video nel catalogo; l inserimento, la modifica o la cancellazione dei dati riguardanti i clienti ed i produttori; l elenco dei clienti e dei produttori; il controllo della disponibilità in negozio di un video richiesto da un cliente; il servizio di noleggio e restituzione; la stampa del catalogo dei video (eventualmente anche per genere); Considerato il problema proposto, precisando eventuali ipotesi aggiuntive, si realizzi: un analisi della realtà di riferimento che illustri le premesse per i successivi passi della progettazione della base di dati; uno schema concettuale della base di dati; uno schema logico della base di dati; la definizione delle relazioni della base di dati in linguaggio SQL. SOLUZIONE Analisi del problema Ipotesi aggiuntive Analisi dei dati Schema concettuale Schema logico Definizione delle relazioni Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 1

2 Analisi del problema Le entità caratteristiche per la risoluzione del problema si riferiscono alla gestione dei video, dei clienti che li richiedono e dei produttori che li producono. Le proprietà utilizzate per la definizione delle suddette entità devono consentire di soddisfare le richieste proposte dal problema. In particolare deve essere possibile la gestione dei noleggi e delle restituzioni dei video da parte dei clienti e, fondamentalmente, la gestione delle quantità disponibili nei vari formati in cui un video può essere riprodotto. Introducendo opportuni attributi (Numero tessera e Credito residuo) nell entità Cliente è possibile gestire anche un pagamento tramite scheda prepagata supponendo di fornire ai clienti un tale servizio mediante lettori di badge collegati al sistema ed alla procedura utilizzata per risolvere il problema proposto. Per quanto riguarda le tabelle relative ai video, ai clienti e ai produttori, la loro gestione deve essere realizzata mediante un tipico programma di aggiornamento che prevede le funzioni di inserimento, cancellazione e modifica dei record contenuti nelle suddette tabelle. Un altra entità riguarda l elenco dei comuni in cui risiedono i clienti. L utilizzo di tale entità è giustificato da problemi esclusivamente legati alla ridondanza dei dati. Senza tale entità, infatti, si dovrebbe inserire il nome del comune fra gli attributi dell entità Cliente. L uso dell entità genere si rende necessaria in quanto si vuol distinguere i video secondo una classificazione diversa che può, per es., essere vincolata alla trama del film registrato (film comico, film di fantascienza, ecc.). L uso dell entità formato si rende necessaria per distinguere i vari formati (VHS, DVD, ecc.) in cui un video può essere registrato ma soprattutto per dare la possibilità di gestire il prezzo del noleggio del video in funzione del formato utilizzato. In base a questa esigenza l associazione fra l entità Video e l entità Formato è di tipo molti-a-molti in quanto per un video possono essere disponibili più formati ed, ovviamente, un formato può essere utilizzato per registrare video diversi. L entità che scaturisce da questa associazione molti-a-molti può servire anche ad introdurre altri attributi che consentono di risolvere il problema legato alla gestione della disponibilità di copie relative ad un determinato video. In questo modo, infatti, si può conoscere esattamente il numero di copie di un video disponibili nei vari formati (è facile intuire che si può anche conoscere il numero complessivo). Le tabelle relative ai Comuni, ai Generi ed ai Formati video possono essere definite come tabelle di controllo che vengono create nella fase iniziale di creazione ed avviamento del database e che, nel tempo, subiranno poche modifiche. Il programma di creazione di tali tabelle deve, comunque, prevedere la possibilità di aggiornamento dei dati presenti nelle stesse tabelle. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 2

3 L entità che consente di gestire il noleggio di un video e la relativa restituzione scaturisce dall associazione ternaria fra l entità Cliente, l entità Video e l entità Formato (è ovvio che un cliente può richiedere in noleggio uno o più video in formati diversi ed uno stesso video, in formati diversi, può essere richiesto da uno o più clienti). La gestione della tabella in esame rappresenta il nucleo fondamentale della procedura che risolve il problema proposto in quanto è sicuramente la tabella che, per i dati che contiene, sarà più frequentemente sottoposta ad operazioni di aggiornamento. Tale tabella consente, nella sua definizione, di gestire effettivamente tutti i movimenti relativi a tutti i noleggi effettuati. Il movimento viene generato nel momento in cui viene effettuato un noleggio e lo stesso movimento viene utilizzato per gestire la restituzione del video preso in prestito. E possibile ridurre ad un solo movimento le operazioni noleggio/restituzione introducendo, nello stesso movimento, la data del noleggio e la data di restituzione. Quindi il movimento viene aperto nella fase del noleggio e viene chiuso nella fase di restituzione. Tale soluzione facilita, come si può intuire, la gestione di questa tabella consentendo di conoscere in modo estremamente semplice dei dati indispensabili per l applicazione. Effettuando, per esempio, un controllo sulla data di restituzione (se è per es. Null) è possibile conoscere quali sono i video che non sono stati ancora restituiti; per calcolare l importo che il cliente deve pagare o si deve detrarre dalla scheda prepagata è sufficiente calcolare i giorni (come differenza fra la data della restituzione e la data del noleggio) e moltiplicare per il costo del noleggio giornaliero. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 3

4 Ipotesi aggiuntive Entità Comune : la chiave primaria è artificiale ad autoincremento per evitare i problemi generati dalle omonimie (comuni con lo stesso nome) ma si potrebbe usare il codice proprio di ogni comune (quello utilizzato, per es., nella generazione del codice fiscale). L attributo della sigla della provincia può essere, eventualmente, utilizzato per un collegamento alla tabella delle province (in questo problema non utilizzata). Entità Genere : la chiave primaria è artificiale ad autoincremento. L utilizzo dell entità Genere permette di ottenere una descrizione univoca per ogni genere di film. E prevista solo la proprietà strettamente necessaria per la risoluzione dei quesiti, ovvero la descrizione che serve a classificare i diversi generi di film (drammatico, western, comico, giallo, fantascienza, ecc). Entità Formato : la chiave primaria è artificiale ad autoincremento. L utilizzo dell entità Formato permette di classificare i diversi tipi di supporto usato per la riproduzione dei video. Sono previsti solo gli attributi strettamente necessari per la risoluzione dei quesiti, ovvero la descrizione del tipo di supporto (VHS, DVD, ecc.) ed il costo del noleggio (relativo al tipo di formato); Entità "Cliente": la chiave primaria è artificiale ad autoincremento per evitare i problemi generati dalle omonimie. Sono previste le proprietà strettamente necessarie per la risoluzione dei quesiti, ovvero sia i dati anagrafici del cliente (nome e cognome, indirizzo, città di residenza, codice fiscale, numero di telefono, ecc.) che i dati per la gestione dei noleggi (documento di riconoscimento, eventuale credito residuo nel caso il negozio adotti un sistema di carta prepagata per il pagamento del noleggio dei video). La chiave primaria può essere anche utilizzata per fornire al cliente una tessera con un numero identificativo con la quale poter usufruire di tutti i servizi del negozio. Per la residenza è prevista una chiave esterna all entità Comune; Entità "Produttore": la chiave primaria è artificiale ad autoincremento. Per l entità Produttore gli attributi riguardano solo la ragione sociale del produttore e dati per ottimizzare eventuali comunicazioni con il produttore (indirizzo ); Entità Video la chiave primaria è artificiale ad autoincremento. Gli attributi individuati devono consentire la gestione completa del video ed in particolar modo riguardano: il titolo del video, la trama, il genere di film, il regista, il produttore, la durata in minuti del video, anno di produzione del video, l indicazione se la visione del video è vietata ai minori; Relazione Copie : La relazione, che consente di realizzare l associazione molti-amolti fra l entità Video e l entità Formato, contiene, oltre alle chiavi esterne alle entità interessate (Video e Formato), gli attributi necessari per la completa gestione delle quantità suddivise per formato : numero di copie disponibili, numero di copie noleggiate. La chiave primaria della relazione è costituita dall insieme del codice video (chiave esterna all entità Video) e del codice formato (chiave esterna all entità Formato); Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 4

5 Relazione Movimento : la chiave primaria è artificiale ad autoincremento. La relazione, che consente di realizzare l associazione ternaria fra l entità Cliente, l entità Video e l entità Formato, contiene, oltre alle chiavi esterne alle entità interessate (Cliente, Video e Formato), gli attributi necessari per la completa gestione delle registrazioni dei movimenti di entrata/uscita relativi al servizio di noleggio/restituzione dei video : data del noleggio, data del reso. Si noti che non è possibile utilizzare, come chiave primaria, la terna di campi costituiti dalle tre chiavi esterne in quanto è possibile che uno stesso cliente noleggi lo stesso video nello stesso formato in date, ovviamente, diverse. La chiave primaria potrebbe, quindi, essere costituita dalle tre chiavi esterne e dalla data di noleggio. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 5

6 Analisi dei dati Le entità che possono essere individuate per risolvere il problema sono : ENTITA Comune contiene l elenco dei comuni d Italia in cui possono risiedere i clienti; Genere contiene la classificazione dei possibili generi di video; Formato contiene la classificazione dei possibili formati in cui è riprodotto il video; Produttore contiene informazioni dei produttori dei video; Cliente contiene informazioni anagrafiche dei clienti che noleggiano i video; Video contiene informazioni sui video che possono essere noleggiati; Gli attributi, per ciascuna entità, individuati per risolvere il problema sono : ATTRIBUTI Tipo di entità Comune Genere Formato Produttore Cliente Video Sistema informativo Gestione Negozio Noleggio Video Attributi idcomune, codice, nome del comune, sigla provincia idgenere, descrizione del genere di film idformato, descrizione formato, costo del noleggio idproduttore, ragione sociale, , sito idcliente, cliente, indirizzo, codice fiscale, telefono, cellulare, , documento, credito residuo idvideo, titolo, trama, regista, durata, annoproduzione, vietato Tra l entità Comune e l entità Cliente esiste un associazione uno-a-molti in quanto in un comune possono avere la residenza uno o più clienti ed un cliente deve avere la residenza in un solo comune. Tra l entità Produttore e l entità Video esiste un associazione uno-a-molti in quanto un produttore produce uno o più video ed un video è prodotto da un solo produttore. Tra l entità Genere e l entità Video esiste un associazione uno-a-molti in quanto un genere (comico, fantascienza, ecc..) può essere abbinato ad uno o più film ma un film deve essere abbinato ad un solo genere. Tra l entità Video l entità Formato esiste un associazione molti-a-molti in quanto un video è riprodotto in almeno un formato (su VHS, su DVD, ecc.) ed uno stesso formato può essere utilizzato per riprodurre più video. Tra l entità Cliente, l entità Video e l entità Formato esiste un associazione ternaria in quanto un cliente può noleggiare uno o più video di formati uguali o diversi. Definizione : Si definisce grado di un associazione il numero n di entità che sono coinvolte nell associazione. Se n=3 l associazione di definisce ternaria. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 6

7 Schema concettuale della base di dati Le relazioni tra i tipi di entità nel modello dei dati sono individuate nel seguente Modello Entità/Associazioni (E/R) : COMUNE PRODUTTORE CLIENTE Movimento VIDEO GENERE DataNoleggio DataReso FORMATO Copie Disponibili Noleggiate Nel modello E/R sono indicati i nomi delle entità, l opzionalità od obbligatorietà delle associazioni. Il modello viene verificato utilizzando le regole di lettura : ogni comune può essere la residenza di uno o più clienti, ogni cliente deve avere la residenza in un solo comune; ogni genere può essere abbinato ad uno o più video, ogni video deve essere abbinato ad un solo genere; ogni produttore produce uno o più video, ogni video deve essere prodotto da un solo produttore; ogni video può essere riprodotto in uno o più formati, ogni formato può essere utilizzato per riprodurre uno o più video; ogni cliente può richiedere uno o più video in formati diversi, ogni video di diverso formato può essere richiesto da uno o più clienti. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 7

8 Schema logico della base di dati Come tipo di schema logico, dovendo poi realizzarlo nello standard SQL, si sceglie di utilizzare quello relazionale. Applicando le regole di corrispondenza tra il modello E/R ed il modello Relazionale si passa dal precedente schema concettuale al modello logico che viene descritto sia nella forma testuale che in quella grafica. Rappresentazione testuale dello schema logico : Nella rappresentazione testuale si elencano le tabelle (indicando per ciascuna i campi) che rappresentano le entità dello schema concettuale e le tabelle che rappresentano le eventuali relazioni molti-a-molti, introducendo, inoltre, le chiave esterne per rappresentare le associazioni (le chiavi primarie sono sottolineate, le chiavi esterne sono in corsivo). Nello schema E/R precedente si può osservare che esiste : una associazione molti-a-molti (N:N) tra i tipi di entità Video e l entità Formato. Applicando il processo di normalizzazione (definito dalle forme normali) si deve inserire una entità ausiliaria (Copie) che trasforma l associazione molti-a-molti in due associazioni uno-a-molti, anche per consentire di rappresentare gli attributi dell associazione. Per esempio, nell associazione fra l entità Video e l entità Formato il numero di copie disponibili (per quel formato) ed il numero di copie noleggiate non sono attributi né dell entità Video né dell entità Formato (il numero di copie di un certo video acquistate in un certo formato si ottiene come somma fra i valori dei suddetti attributi). Le associazioni, quindi, che ne derivano sono: uno-a-molti (1:N) tra Video e Copie (ogni video deve essere disponibile in uno o più formati ed ogni copia deve essere relativa ad un solo video), e uno-a-molti (1:N) tra Formato e Copie (ogni formato può essere utilizzato per uno o più video disponibili e ogni copia deve essere associata ad un solo formato). un associazione ternaria tra le entità Cliente, Video e Formato. Applicando il processo di normalizzazione (definito dalle forme normali) si deve inserire una entità ausiliaria (Movimento) anche per consentire di rappresentare gli attributi propri dell associazione (la data del noleggio o della restituzione non sono attributi né dell entità Cliente, né dell entità Video e né dell entità Formato). Si definiscono, innanzitutto, le tabelle che rappresentano le entità dello schema concettuale e successivamente si definiscono le tabelle che rappresentano le associazioni. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 8

9 Le seguenti tabelle rappresentano le entità : tbcomuni (idcomune, codice, comune, kssigla) tbgeneri (idgenere, genere) tbformati (idformato, formato, costonoleggio) tbclienti (idcliente, cliente, indirizzoc, kscomunec, codicefiscalec, telefonoc, cellularec, c, documento, creditoresiduo) tbproduttori (idproduttore, produttore, p, sitop) tbvideo (idvideo, titolo, trama, ksgenere, regista, ksproduttore, durata, annoproduzione, vietato) La seguente tabella rappresenta l associazione molti-a-molti : tbcopie (ksvideoc, ksformatoc, disponibili, noleggiate) La seguente tabella rappresenta l associazione ternaria : tbmovvideo (idmovvideo, kscliente, ksvideo, ksformato, datanoleggio, datareso) Per realizzare l associazione uno-a-molti fra l entità Cliente e l entità Comune si introduce, fra gli attributi dell entità a molti (Cliente), la chiave esterna kscomune associata alla chiave primaria idcomune dell entità a uno (Comune). Per realizzare l associazione uno-a-molti fra l entità Video e l entità Genere si introduce, fra gli attributi dell entità a molti (Video), la chiave esterna ksgenere associata alla chiave primaria idgenere dell entità a uno (Genere). Per realizzare l associazione uno-a-molti fra l entità Video e l entità Produttore si introduce, fra gli attributi dell entità a molti (Video), la chiave esterna ksproduttore associata alla chiave primaria idproduttore dell entità a uno (Produttore). Per realizzare l associazione molti-a-molti fra l entità Video e l entità Formato si introduce (oltre alle tabelle derivanti dalle due entità) la tabella tbcopie. Tale tabella, oltre agli attributi propri dell associazione (disponibili, noleggiate) ha, come attributi, la chiave esterna ksvideoc associata alla chiave primaria idvideo dell entità Video e la chiave esterna ksformatoc associata alla chiave primaria idformato dell entità Formato. L insieme di questi due attributi, inoltre, costituiscono la chiave primaria dell associazione. Per realizzare l associazione ternaria fra l entità Video, l entità Cliente e l entità Formato si introduce (oltre alle tabelle derivanti dalle tre entità) la tabella tbmovvideo. Tale tabella, oltre agli attributi propri dell associazione (datanoleggio, datareso) ha, come attributi, la chiave esterna ksvideo associata alla chiave primaria idvideo dell entità Video, la chiave esterna kscliente associata alla chiave primaria idcliente dell entità Cliente e chiave esterna ksformato associata alla chiave primaria idformato dell entità Formato. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 9

10 Rappresentazione grafica dello schema logico : La rappresentazione grafica dello schema logico relativo al sistema informativo per la gestione del Noleggiovideo è il seguente : Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 10

11 Definizione delle Tabelle Nel definire le tabelle e la struttura delle stesse, è consigliabile elencarle partendo dalle tabelle che non presentano chiavi esterne. In successione si definiscono le tabelle le cui chiavi primarie sono utilizzate da altre tabelle come chiavi esterne. Nel prospetto seguente, per es., si definiscono prima le tabelle tbcomuni, tbgeneri, tbformati e tbproduttori che non presentano chiavi esterne, successivamente le tabelle tbclienti (che ha fra gli attributi un campo definito come chiave esterna alla tbcomuni), ed infine le tabelle : tbvideo (che ha fra gli attributi un campo definito come chiave esterna alla tbgeneri ed un campo definito come chiave esterna alla tabella tbproduttori), la tabella tbcopie (che ha fra gli attributi un campo definito come chiave esterna alla tabella tbvideo ed un campo definito come chiave esterna alla tabella tbformati) e la tabella tbmovvideo (che ha fra gli attributi un campo definito come chiave esterna alla tabella tbvideo, un campo definito come chiave esterna alla tabella tbclienti ed un campo definito come chiave esterna della tabella tbformati). Tabella Nome campo Chiave Tipo dati Dim. Dec. Null Descrizione tbcomuni idcomune Primaria Numerico 4 Autoincremento codice Testo 4 Vincolo: valori unici comune Testo 35 kssigla Testo 2 tbgeneri idgenere Primaria Numerico 3 Autoincremento genere Testo 30 Vincolo: valori unici tbformati idformato Primaria Numerico 2 Autoincremento formato Testo 10 Vincolo: valori unici costonoleggio Numerico 4 2 costo giornaliero tbproduttori idproduttore Primaria Numerico 4 Autoincremento produttore Testo 30 p Testo 30 SI indirizzo sitop Testo 30 SI indirizzo del sito tbclienti idcliente Primaria Numerico 4 Autoincremento cliente Testo 30 cognome e nome indirizzoc Testo 30 kscomunec Esterna Numerico 4 codicefiscalec Testo 16 SI telefonoc Testo 15 SI cellularec Testo 15 SI c Testo 30 SI Integrità referenziale con idcomune della tabella tbcomuni documento Testo 20 SI estremi del documento creditoresiduo Numerico 6 2 SI Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 11

12 Tabella Nome campo Chiave Tipo dati Dim. Dec. Null Descrizione tbvideo idvideo Primaria Numerico 4 Autoincremento titolo Testo 80 trama Testo 300 SI del video ksgenere Esterna Numerico 3 regista Testo 30 SI ksproduttore Esterna Numerico 4 SI durata Numerico 3 SI in minuti annoproduzione Testo 4 SI Integrità referenziale con idgenere della tabella tbgeneri Integrità referenziale con idproduttore della tabella tbproduttori vietato Testo 2 SI numero anni tbcopie ksvideoc Primaria Numerico 4 ksformatoc Primaria Numerico 2 disponibili Numerico 3 noleggiate Numerico 3 SI Integrità referenziale con idvideo della tabella tbvideo Integrità referenziale con idformato della tabella tbformati tbmovvideo idmovvideo Primaria Numerico 4 Autoincremento kscliente Esterna Numerico 4 Integrità referenziale con idcliente della tabella tbclienti ksvideo Esterna Numerico 4 ksformato Esterna Numerico 2 datanoleggio Data/ora 8 datareso Data/ora 8 SI Integrità referenziale con idvideo della tabella tbvideo Integrità referenziale con idformato della tabella tbformati Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 12

13 Definizione delle relazioni della base di dati in SQL Lo schema logico relazionale precedente (tabelle, relazioni ed applicazione dei vincoli di integrità dei dati e referenziale) può essere creato con le seguenti istruzioni SQL (proposte in versione per ACCESS e MySQL). ACCESS CREATE TABLE tbcmuni ( idcomune Counter PRIMARY KEY, cdice Char(4) NOT NULL UNIQUE, comune Char(35) NOT NULL, kssigla Char(2) NOT NULL ); CREATE TABLE tbgeneri ( idgenere Counter PRIMARY KEY, genere Char(30) NOT NULL UNIQUE, ); CREATE TABLE tbformati ( idformato Counter PRIMARY KEY, formato Char(10) NOT NULL UNIQUE, costonoleggio Currency NOT NULL ); CREATE TABLE tbproduttori ( idproduttore Counter PRIMARY KEY, produttore Char(30) NOT NULL, p Char(30), sitop Char(30) ) ; CREATE TABLE tbclienti ( idcliente Counter PRIMARY KEY, cliente Char(30) NOT NULL, indirizzoc Char(30) NOT NULL, kscomunec Long NOT NULL, codicefiscalec Char(16), telefonoc Char(15), cellularec Char(15), c Char(30), documento Char(20), creditoresiduo Currency, FOREIGN KEY(kscomunec) REFERENCES tbcomuni(idcomune) ); MySQL CREATE TABLE tbcomuni ( idcomune int(4) unsigned AUTO_INCREMENT PRIMARY KEY, codice char(4) NOT NULL UNIQUE, comune varchar(35) NOT NULL, kssigla char(2) NOT NULL ) TYPE=MyISAM; CREATE TABLE tbgeneri( idgenere int(3) unsigned AUTO_INCREMENT PRIMARY KEY, genere varchar(30) NOT NULL UNIQUE ) TYPE=MyISAM; CREATE TABLE tbformati( idformato tinyint unsigned AUTO_INCREMENT PRIMARY KEY, formato varchar(10) NOT NULL UNIQUE, costonoleggio decimal(4,2) NOT NULL ) TYPE=MyISAM; CREATE TABLE tbproduttori( idproduttore int(4) unsigned AUTO_INCREMENT PRIMARY KEY, produttore varchar(30) NOT NULL, p varchar(30), sitop varchar(30) ) TYPE=MyISAM; CREATE TABLE tbclienti( idcliente int(4) unsigned AUTO_INCREMENT PRIMARY KEY, cliente varchar(30) NOT NULL, indirizzoc varchar(30) NOT NULL, kscomunec int(4) NOT NULL, codicefiscalec char(16), telefonoc varchar(15), cellularec varchar(15), c varchar(30), documento varchar(20), creditoresiduo decimal(6,2) ) TYPE=MyISAM; Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 13

14 CREATE TABLE tbvideo ( idvideo Counter PRIMARY KEY, titolo Char(80) NOT NULL, trama Char(255), ksgenere Long NOT NULL, regista Char(30), ksproduttore Long, durata Byte, annoproduzione Char(4), vietato Char(2), FOREIGN KEY(ksgenere) REFERENCES tbgeneri(idgenere), FOREIGN KEY(ksproduttore) REFERENCES tbproduttori (idproduttore) ) ; CREATE TABLE tbcopie ( ksvideoc Long, ksformatoc Long, disponibili Short NOT NULL, noleggiate Short, PRIMARY KEY (ksvideoc,ksformatoc), FOREIGN KEY(ksvideoc) REFERENCES tbvideo(idvideo), FOREIGN KEY(ksformatoc) REFERENCES tbformati(idformato) ) ; CREATE TABLE tbvideo( idvideo int(4) unsigned AUTO_INCREMENT PRIMARY KEY, titolo varchar(80) NOT NULL, trama text(300), ksgenere int(3) UNSIGNED, regista varchar(30), ksproduttore int(4) UNSIGNED, durata smallint UNSIGNED, annoproduzione char(4), vietato char(2) DEFAULT NO ) TYPE=MyISAM; CREATE TABLE tbcopie( ksvideoc int(4) unsigned, ksformatoc tinyint unsigned, disponibili smallint unsigned NOT NULL DEFAULT 0, noleggiate smallint unsigned NOT NULL DEFAULT 0, PRIMARY KEY(ksvideoc,ksformatoc) ) TYPE=MyISAM; CREATE TABLE tbmovvideo ( idmovvideo Counter PRIMARY KEY, kscliente Long NOT NULL, ksvideo Long NOT NULL, ksformato Long NOT NULL, datanoleggio Datetime NOT NULL, datareso Datetime, FOREIGN KEY(kscliente) REFERENCES tbcliente(idcliente), FOREIGN KEY(ksvideo) REFERENCES tbvideo(idvideo), FOREIGN KEY(ksformato) REFERENCES tbformati(idformato) ) ; CREATE TABLE tbmovvideo( idmovvideo int(6) unsigned AUTO_INCREMENT PRIMARY KEY, kscliente int(4) unsigned, ksvideo int(4) unsigned, ksformato tinyint unsigned, datanoleggio date NOT NULL, datareso date ) TYPE=MyISAM; Nota : le istruzioni proposte per MySQL sono relative all uso di tabelle tipo MyISAM che non supportano l integrità referenziale definita con FOREIGN KEY. Il tipo di tabella InnoDB, invece, supporta la FOREIGN KEY similmente ad ACCESS. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 14

15 OSSERVAZIONI SULLE QUERY PROPOSTE Query n. 10) Elenco ordinato dei clienti con l indicazione del video noleggiato, del formato ed il relativo costo pagato per il noleggio (moltiplicando il costo giornaliero del noleggio per il numero dei giorni): SELECT cliente, titolo, formato, costonoleggio * ((TO_DAYS(datareso) - TO_DAYS(datanoleggio)) + 1) AS Totale FROM tbmovvideo, tbformati, tbclienti, tbvideo WHERE idformato=ksformato AND idcliente=kscliente AND idvideo=ksvideo AND datareso <> 0 ORDER BY cliente,titolo, datanoleggio; Note : I giorni complessivi di noleggio sono calcolati con l espressione : ((TO_DAYS(datareso) - TO_DAYS(datanoleggio)) + 1). Viene sommato 1 alla differenza fra la data di restituzione e la data in cui il video è stato noleggiato in quanto si deve considerare anche il caso in cui il video viene restituito nello stesso giorno in cui è stato noleggiato. In tale caso la differenza fra le due date sarebbe zero. La condizione datareso <> 0 è necessaria in quanto nell elenco occorre considerare solo i video che sono stati restituiti e quindi i record che hanno il campo datareso uguale a 0. In fase di immissione dei record il campo datareso è stato immesso con valore = a '0000/00/00' e, quindi, si può effettuare il controllo anche nel seguente modo : datareso <> 0000/00/00. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 15

16 Query n. 13) Elenco, ordinato per titolo, dei video con il maggior numero di noleggi effettuati: SELECT titolo,count(*) AS noleggi_max FROM tbvideo, tbmovvideo WHERE idvideo=ksvideo GROUP BY ksvideo HAVING COUNT(*)=(SELECT MAX(noleggi) FROM (SELECT COUNT(*) AS noleggi FROM tbmovvideo GROUP BY ksvideo) AS calcola) ORDER BY titolo; titolo noleggi_max DRAGONFLY 9 IL CICLONE 9 TI AMO IN TUTTE LE LINGUE DEL MONDO 9 WATERWORLD 9 a) La subquery : SELECT COUNT(*) AS noleggi FROM tbmovvideo GROUP BY ksvideo calcola il numero di preferenze per ciascun video noleggiato : noleggi ecc., ecc Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 16

17 b) La subquery : SELECT MAX(noleggi) FROM (SELECT COUNT(*) AS noleggi FROM tbmovvideo GROUP BY ksvideo) AS calcola 9 MAX(noleggi) preleva il valore max fra il numero di noleggi effettuati per ciascun video. c) La query principale calcola il numero di noleggi effettuati per ciascun video e lo confronta con il valore max calcolato, restituendo solo i record in cui questo valore è uguale. Query n. 14) Elenco, ordinato per titolo, dei video noleggiati con la percentuale di noleggi effettuati rispetto al totale complessivo : SELECT titolo, COUNT(*) AS noleggi, (SELECT COUNT(*) FROM tbmovvideo) AS noleggi_totali, (COUNT(*) * 100 /(SELECT COUNT(*) FROM tbmovvideo)) AS percentuale FROM tbvideo, tbmovvideo WHERE idvideo=ksvideo GROUP BY ksvideo, titolo ORDER BY titolo; a) Con COUNT(*) AS noleggi, associato alla GROUP BY, si calcolano i noleggi di ciascun video; b) La subquery (SELECT COUNT(*) FROM tbmovvideo) AS noleggi_totali calcola il numero complessivo di noleggi effettuati; b) La percentuale di noleggi per ciascun video, rispetto al totale complessivo, viene calcolata, semplicemente, moltiplicando il numero di noleggi del video (COUNT(*)) per 100 e dividendo per il totale complessivo di noleggi effettuati (SELECT COUNT(*) FROM tbmovvideo) Nota : nella target list non si possono, con MySQL, utilizzare il nome degli alias per effettuare, eventualmente, dei calcoli sugli stessi come avviene, per es., con Access che supporta anche la seguente query : SELECT titolo, COUNT(*) AS noleggi, (SELECT COUNT(*) FROM tbmovvideo) AS noleggi_totali, (noleggi * 100 /noleggi_totale) AS percentuale Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 17

GESTIONE ABBONAMENTI RIVISTE

GESTIONE ABBONAMENTI RIVISTE GESTIONE ABBONAMENTI RIVISTE Si vogliono gestire, con una base di dati, le informazioni relative agli abbonamenti a riviste da parte di utenti di cui si deve tener conto della città di residenza. Gli elementi

Dettagli

GESTIONE MAGAZZINO 1

GESTIONE MAGAZZINO 1 GESTIONE MAGAZZINO 1 Un azienda vuole automatizzare la procedura di gestione delle scorte del suo magazzino di prodotti organizzato per reparti. Il sistema informativo deve essere in grado di : produrre

Dettagli

GESTIONE MAGAZZINO 2

GESTIONE MAGAZZINO 2 GESTIONE MAGAZZINO 2 Un azienda vuole automatizzare la procedura di gestione delle scorte del suo magazzino di articoli organizzato per reparti e classificati in base alla categoria merceologica. Nella

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

GESTIONE ESAMI di STATO

GESTIONE ESAMI di STATO GESTIONE ESAMI di STATO Si vogliono gestire, con una base di dati, le informazioni relative ai risultati delle prove, riguardanti l'esame di stato, sostenute da un classe di alunni. Gli elementi caratterizzanti

Dettagli

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

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

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

Dettagli

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009 Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009 1. Si effettui la progettazione concettuale della base di dati secondo la specifica che segue fornendo un diagramma ER. Un azienda che gestisce gli eventi

Dettagli

Prova del 14/09/09. Considerare la seguente descrizione di un campeggio:

Prova del 14/09/09. Considerare la seguente descrizione di un campeggio: Prova del 14/09/09 Considerare la seguente descrizione di un campeggio: Un campeggio è descritto da nome, indirizzo, partita IVA e uno o più numeri telefonici. Ai clienti vengono offerti essenzialmente

Dettagli

Progettazione db per un sito web

Progettazione db per un sito web Progettazione db per un sito web (stralcio della traccia per l Esame di Stato 2006 I.T.I. Informatica Abacus) L editore di un quotidiano locale che insiste sul territorio di una piccola provincia, decide

Dettagli

Metodologie e modelli di progetto

Metodologie e modelli di progetto Metodologie e modelli di progetto Ingg. Francesco Gullo, Giovanni Ponti D.E.I.S Università della Calabria fgullo@deis.unical.it gponti@deis.unical.it 1 I Sistemi Informativi Un sistema informativo èun

Dettagli

SOLUZIONE ESAME DI STATO 2015/2016 Indirizzo: ITSI - AMMINISTRAZIONE, FINANZA E MARKETING ARTICOLAZIONE SISTEMI INFORMATIVI AZIENDALI

SOLUZIONE ESAME DI STATO 2015/2016 Indirizzo: ITSI - AMMINISTRAZIONE, FINANZA E MARKETING ARTICOLAZIONE SISTEMI INFORMATIVI AZIENDALI SOLUZIONE ESAME DI STATO 2015/2016 Indirizzo: ITSI - AMMINISTRAZIONE, FINANZA E MARKETING ARTICOLAZIONE SISTEMI INFORMATIVI AZIENDALI Giselda De Vita 2016 La traccia di esame, pubblicata dal Ministero,

Dettagli

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

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri

Dettagli

PROGETTAZIONE LOGICA. Prof. Ing. Alfredo GARRO 1/6. Artista. Cantante. DataDiNascita. Codice. Nazionalità

PROGETTAZIONE LOGICA. Prof. Ing. Alfredo GARRO 1/6. Artista. Cantante. DataDiNascita. Codice. Nazionalità PROGETTAZIONE LOGICA L obiettivo della fase di progettazione Logica è progettare lo Schema Logico della Base di Dati partendo da quanto prodotto nella fase di progettazione Concettuale. Si ricorda che,

Dettagli

Esempio di database relazionale con l utilizzo del prodotto MySQL

Esempio di database relazionale con l utilizzo del prodotto MySQL Esempio di database relazionale con l utilizzo del prodotto MySQL Marco Liverani Aprile 2015 In queste pagine viene riportato in sintesi il progetto di un database relazionale esemplificativo con cui viene

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

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

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche dei linguaggi per Database IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;

Dettagli

DATABASE CLIENTIRAPPRESENTANTI

DATABASE CLIENTIRAPPRESENTANTI 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

Dettagli

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono BASI DI DATI Una base di dati (database) è un insieme organizzato di informazioni caratterizzate da alcuni aspetti fondamentali: tra esse esiste un nesso logico (cioè sono in qualche modo inerenti ad un

Dettagli

Numero di contratto di noleggio CodiceInterno Chiave primaria CodiceInternazionale Codice identificativo internazionale

Numero di contratto di noleggio CodiceInterno Chiave primaria CodiceInternazionale Codice identificativo internazionale Videoteca Si vuole progettare una base di dati per una videoteca. La videoteca gestisce il noleggio di videocassette, dove ogni videocassetta è caratterizzata da un codice interno, un codice internazionale,

Dettagli

Basi di dati: appello 28/02/06

Basi di dati: appello 28/02/06 Basi di dati: appello 28/02/06 Si consideri il seguente schema di base di dati che vuole tenere traccia della programmazione delle radio italiane: EMITTENTE (id, nome, frequenza, città.) SCALETTA (id_radio,

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive Note introduttive Il metodo di lavoro proposto ripercorre il ciclo di vita di un sistema informativo automatizzato attraverso l analisi, il progetto, la realizzazione e il testing. Il sistema informativo

Dettagli

Laboratorio di Basi di Dati prova totale 20 febbraio 2013

Laboratorio di Basi di Dati prova totale 20 febbraio 2013 Laboratorio di Basi di Dati prova totale 20 febbraio 2013 Testo dei requisiti Un ente organizza competizioni tra robot. Ogni competizione è classificata con un proprio codice e ne viene definito il regolamento,

Dettagli

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog.

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog. Compito Sistemi Informativi. Tempo concesso : 90 minuti 10 gennaio 2012 Nome: Cognome: Matricola: Crediti: [6] [9] Esercizio 1 (punti 6+2) Si considerino le seguenti specifiche relative alla realizzazione

Dettagli

Sessione ordinaria 2003 Seconda prova scritta ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Indirizzo: INFORMATICA CORSO SPERIMENTALE Progetto ABACUS

Sessione ordinaria 2003 Seconda prova scritta ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Indirizzo: INFORMATICA CORSO SPERIMENTALE Progetto ABACUS Sessione ordinaria 2003 Seconda prova scritta ESAME DI STATO DI ISTITUTO TECICO IDUSTRIALE Indirizzo: IFORMATICA CORSO SPERIMETALE Progetto ABACUS Vivaio Si tratta di un classico problema di gestione di

Dettagli

SCHEMA ER. Tutti i dati del carrello acquisti sono memorizzati nel database e quindi può essere costruito con più query.

SCHEMA ER. Tutti i dati del carrello acquisti sono memorizzati nel database e quindi può essere costruito con più query. Esame di Stato Istituto Tecnico Industriale CORSO DI ORDINAMENTO Indirizzo: INFORMATICA Proposta di soluzione per il tema di: INFORMATICA GENERALE E APPLICAZIONI TECNICO-SCIENTIFICHE Anno Scolastico: 2007-2008

Dettagli

! Un arco multiplo corrisponde ad un associazione molti-a-molti: il padre (libro) non determina funzionalmente il figlio (autore)

! Un arco multiplo corrisponde ad un associazione molti-a-molti: il padre (libro) non determina funzionalmente il figlio (autore) Arco Multiplo! Schema di fatto contenente un arco multiplo: genere autore libro VENDITA numero incasso data mese anno arco multiplo (AM) " Per illustrare il concetto di arco multiplo si parte da uno schema

Dettagli

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia Informatica Dipartimento di Economia Ing. Cristiano Gregnanin Corso di laurea in Economia 20 ottobre 2016 1 / 22 Introduzione ai database Prima dei DBMS, le organizzazioni utilizzavano semplici file per

Dettagli

LO SVOLGIMENTO DEL TEMA DI INFORMATICA

LO SVOLGIMENTO DEL TEMA DI INFORMATICA LO SVOLGIMENTO DEL TEMA DI INFORMATICA Si richiede un progetto di ampio respiro: servirebbe più tempo per l'elaborazione Argomenti noti ai candidati, ma le richieste prevedono un'analisi approfondita.

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

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi. Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi. Cognome: Nome: Matricola: Domanda 1 (20%) Lo schema concettuale seguente rappresenta un

Dettagli

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1 Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione del sistema informativo di

Dettagli

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 27 Marzo 07 Nome: Cognome: Matricola:

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 27 Marzo 07 Nome: Cognome: Matricola: Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 27 Marzo 07 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione del sistema informativo di

Dettagli

MS Access: Tutorial Tabelle, Relazioni

MS Access: Tutorial Tabelle, Relazioni Università Magna Graecia di Catanzaro Informatica MS Access: Tutorial Tabelle, Relazioni Docente : Alfredo Cuzzocrea e-mail : cuzzocrea@si.deis.unical.it Tel. : 0984 831730 Microsoft Access Tutorial Tabelle,

Dettagli

Generazione diagrammi ER

Generazione diagrammi ER Generazione diagrammi ER Il diagramma ER finale viene di solito generato mediante raffinamento e/o integrazione di un certo numero di schemi intermedi (dipendente dalla complessità delle specifiche) Strategie:

Dettagli

Schema Del DB Operazionale TELEFONATE

Schema Del DB Operazionale TELEFONATE Schema Del DB Operazionale TELEFONATE Costruire lo Schema di Fatto per analizzare le chiamate considerando come dimensioni TelefonoDA e TelefonoA, Data e Fascia, intesa come FasciaOraria della chiamata

Dettagli

Concettuale. Giuseppe Amato

Concettuale. Giuseppe Amato Esercitazione Progettazione Concettuale 14 Aprile 2010 Giuseppe Amato Esercitazione Progettazione Concettuale Si considerino i i seguenti fttidi fatti interesse di un agenzia immobiliare. Immobili in vendita:

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

ESERCIZI SQL. Esercizio 1

ESERCIZI SQL. Esercizio 1 ESERCIZI SQL 2 Esercizio 1 3 Esercizio 1 4 Esercizio 1 Si specifichino le seguenti interrogazioni SQL sulla base di dati relazionale AZIENDA. Si mostri il risultato di ciascuna interrogazione. 1. Si restituisca

Dettagli

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

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è

Dettagli

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

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query: Basi di dati: appello 07/02/11 Si consideri il seguente schema di base di dati che vuole tenere traccia delle informazioni relative ad un sistema per il pagamento automatico del pedaggio autostradale.

Dettagli

Esercizi svolti sul modello ER con regole di lettura. Esercizio 1

Esercizi svolti sul modello ER con regole di lettura. Esercizio 1 Esercizio 1 Esercizi svolti sul modello ER con regole di lettura Un università vuole raccogliere ed organizzare in un database le informazioni sui propri studenti in relazione ai corsi che essi frequentano

Dettagli

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

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2002-2003 Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2002-2003 Il primo punto richiede l analisi e lo sviluppo del progetto

Dettagli

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza Definizione 1 Lezione 2 Le basi di dati Gli archivi di dati Organizzato in modo integrato attraverso tecniche di modellazione di dati Gestiti su memorie di massa Con l obiettivo Efficienza trattamento

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

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione

Dettagli

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti. Tempo a disposizione: un ora e 45 minuti. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la relazione Stipendi(Matricola,StipLordo,Tasse,Netto,OK) Spiegare (sinteticamente ma in modo chiaro) quali

Dettagli

SISTEMI INFORMATIVI E DATABASE

SISTEMI INFORMATIVI E DATABASE SISTEMI INFORMATIVI E DATABASE SISTEMA INFORMATIVO AZIENDALE (S.I.) In una realtà aziendale si distingue: DATO elemento di conoscenza privo di qualsiasi elaborazione; insieme di simboli e caratteri. (274,

Dettagli

Giovedì 02 Luglio 2009 Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2008/2009

Giovedì 02 Luglio 2009 Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2008/2009 Giovedì 02 Luglio 2009 Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2008/2009 Esercizio 1 (8 punti). Si vuole progettare una base di dati per una videoteca che contenga informazioni

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di società di assicurazioni che erogano polizze sanitarie.

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di società di assicurazioni che erogano polizze sanitarie. NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di società di assicurazioni che erogano polizze sanitarie. UTENTE(Codice, Cognome, Professione) SOCIETA(Nome,

Dettagli

Progetto B. Utenti. Di conseguenza si potranno avere solo utenti di questi tipi

Progetto B. Utenti. Di conseguenza si potranno avere solo utenti di questi tipi Progetto B Progettare un applicazione web basata su Servlet e JSP che permetta la collaborazione di diversi utenti nel creare, aggiornare e gestire un archivio di pagine personali degli autori di un giornale.

Dettagli

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 22 Giugno 04 Nome: Cognome: Matricola:

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 22 Giugno 04 Nome: Cognome: Matricola: Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 22 Giugno 04 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione del sistema informativo di

Dettagli

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Domande utili alla preparazione dell orale di Informatica all Esame di Stato Domande utili alla preparazione dell orale di Informatica all Esame di Stato 1.Al livello fisico un database si appoggia ai files per contenere i suoi dati? 2.Esistono altri modelli di organizzazione oltre

Dettagli

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3 ECDL - Database Ripasso European Computer Driving Licence - Modulo 5 - Database LEZIONE 3 Ripasso Cosa sono le relazioni? Come si gestiscono le relazioni in Access? Cosa si intende per query? Come interroghiamo

Dettagli

Requisiti della base di dati. Schema concettuale

Requisiti della base di dati. Schema concettuale Requisiti della base di dati Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Progettazione concettuale Schema concettuale Progettazione

Dettagli

Esercitazione: Interrogazioni SQL

Esercitazione: Interrogazioni SQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Interrogazioni SQL Domenico Fabio Savo 1 Sommario 1. Creazione del database utilizzato per l esercitazione

Dettagli

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative SQL SQL Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono

Dettagli

MySQL progettazione di un database per un mobilificio

MySQL progettazione di un database per un mobilificio MySQL progettazione di un database per un mobilificio versione del documento: 1.1 Luca Scrimin Requisiti Consideriamo un mobilificio, che vuole vendere i suoi prodotti on-line. Innanzitutto, nel catalogare

Dettagli

Sommario. Introduzione... 13

Sommario. Introduzione... 13 Sommario Introduzione... 13 1. Database pro e contro... 19 A cosa serve conoscere i database?...19 Le alternative alla gestione manuale...22 Quando non serve un database?...24 Domande ed esercizi...26

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

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un negozio di libri online:

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un negozio di libri online: NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un negozio di libri online: UTENTI (Codice, Nome, Cognome, Recapito) LIBRI(Titolo,

Dettagli

LEFT JOIN - RIGHT JOIN - SELF JOIN - CROSS JOIN

LEFT JOIN - RIGHT JOIN - SELF JOIN - CROSS JOIN Istruzione SELECT Istruzione SELECT pag. 3 Uso dell istruzione SELECT per prelevare i dati pag. 7 La clausola FROM pag. 8 Creare Alias per i nome di campi con subclausola AS pag. 10 Clausola WHERE pag.

Dettagli

CORSO di INFORMATICA e ARCHIVIAZIONE

CORSO 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 CORSO di INFORMATICA e ARCHIVIAZIONE Caso di Studio - 2011 1

Dettagli

Corso di Informatica. Access. Struttura tabella. Tabelle - esempi 11/01/2008

Corso di Informatica. Access. Struttura tabella. Tabelle - esempi 11/01/2008 Corso di Informatica Ing. Dario Sguassero Access Accessè un programma specializzato nella gestione dei database Un database è una raccolta di informazioni organizzate Un database di Access è costituito

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

<Nome Tabella>.<attributo>

<Nome Tabella>.<attributo> Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Dettagli

Gestione di basi di dati in Access. SUISM Docente: Ugo de Liguoro a.a Asti

Gestione di basi di dati in Access. SUISM Docente: Ugo de Liguoro a.a Asti Gestione di basi di dati in Access SUISM Docente: Ugo de Liguoro a.a. 2003-2004 Asti Indice 1. Un primo esempio: la rubrica telefonica 2. Progettazione di un DB 3. Popolamento 4. Interrogazioni (Queries)

Dettagli

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1 Modelli di Base Dati 4 Un DBMS: Access a.a. 2001/2002 4.1 DBMS 4.2 DBMS = Data Base Management System Software per la costruzione e la gestione di una base dati Esempi di DBMS: Oracle, MySQL, SQLServer,

Dettagli

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL Eprogram ITIS V anno Unità 4 - Il linguaggio SQL Compito in classe proposto Date le seguenti tabelle: scrivi in SQL le seguenti richieste (per facilitare query complesse utilizza le viste): 1. elencare

Dettagli

SOLUZIONI COMMENTATE

SOLUZIONI COMMENTATE Nel database Biblioteca vi sono le seguenti tabelle: SOLUZIONI COMMENTATE Utenti := < id, nome, cognome, indirizzo,città, tel_fisso,cellulare > Prestiti := < id, id_libro, id_utente, data_ora_prestito,

Dettagli

Dichiarazione degli schemi in SQL DDL 1

Dichiarazione degli schemi in SQL DDL 1 Dichiarazione degli schemi in SQL DDL 1 Storia di SQL Definito nell'ambito del progetto SYSTEM R (IBM S. JOSE) nel 1976 Nome originario: SEQUEL Adottato progressivamente da tutti i sistemi commerciali

Dettagli

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. ACCESS Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. Database Relazionale: tipo di database attualmente più diffuso grazie alla

Dettagli

SQL: definizione schema

SQL: definizione schema Si Clienti(codice,nome,indirizzo,p_iva) scriva il SQL che definisce il seguente schema relazionale Prodotti(codice,nome,descrizione,prezzo) SQL: definizione schema Fatture(codice,cliente,data) RigheFattura(codice,fattura,prodotto,quantità,prezzo)

Dettagli

SQL: DDL, VI, Aggiornamenti e Viste

SQL: DDL, VI, Aggiornamenti e Viste SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce

Dettagli

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Basi di dati I Prova di autovalutazione 30 ottobre 2014 Basi di dati I Prova di autovalutazione 3 ottobre 214 La prova verrà discussa in aula, prevedibilmente giovedì 6 novembre. Si consiglia di svolgerlo simulando l esame, sulla carta e senza ausilio di libri

Dettagli

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

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB

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

Gestione e Analisi dei Dati. Lezione 4 Relazioni multi tabella Relazioni uno-a-uno, uno-a-molti, molti-a-molti

Gestione e Analisi dei Dati. Lezione 4 Relazioni multi tabella Relazioni uno-a-uno, uno-a-molti, molti-a-molti Gestione e Analisi dei Dati Lezione 4 Relazioni multi tabella Relazioni uno-a-uno, uno-a-molti, molti-a-molti Prodotto Cartesiano Finora operatori unari lavorano sui dati di un unica tabella In realtà

Dettagli

I database. Introduzione alla teoria delle basi di dati

I database. Introduzione alla teoria delle basi di dati I database Introduzione alla teoria delle basi di dati 1 Cosa sono e a cosa servono i Database Un database (o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di un database

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

Corso di Laboratorio di Basi di Dati

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

Dettagli

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE Dato il seguente schema E/R E la sua traduzione nel seguente schema relazionale: disponibile in http://www.dbgroup.unimo.it/sire/20110513/20110513.bak Viene richiesto di 1) Risolvere la seguente interrogazione

Dettagli

ESAME 04/02/2016 (A) Prof. C. DE MAIO

ESAME 04/02/2016 (A) Prof. C. DE MAIO ESAME 04/02/2016 (A) Prof. C. DE MAIO Nome Cognome Matricola Numero Computer DB: OPERAZIONI SULLA STRUTTURA 1. Crea un nuovo database a cui darai come nome il tuo Cognome e Nome (senza spazi e accenti)

Dettagli

ESAME di INFORMATICA e ARCHIVIAZIONE

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

Dettagli

SOLUZIONE AL TEMA DI INFORMATICA (PROGETTO ABACUS)

SOLUZIONE AL TEMA DI INFORMATICA (PROGETTO ABACUS) Punto 1 SOLUZIONE AL TEMA DI INFORMATICA (PROGETTO ABACUS) Da una prima analisi del testo appare evidente che per la costruzione della base di dati si possono individuare le seguenti tre entità fondamentali:

Dettagli

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

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

Dettagli

MICROSOFT ACCESS IL MODELLO E/R

MICROSOFT ACCESS IL MODELLO E/R MICROSOFT ACCESS IL MODELLO E/R LE ENTITA Le entità di un database sono le singole tabelle che comporranno la struttura del nostro database. Le tabelle sono formate da attributi (o campi) che ne definiscono

Dettagli

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la comunità scientifica di ricerca paleontologica.

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la comunità scientifica di ricerca paleontologica. Compito Sistemi Informativi. Tempo concesso : 90 minuti 22 giugno 2011 Nome: Cognome: Matricola: Crediti: [6] [9] Esercizio 1 (punti 6+2) Si considerino le seguenti specifiche relative alla realizzazione

Dettagli

Si definisca il relativo schema E/R (nella metodologia proposta a lezione) e si evidenzino eventuali vincoli inespressi e attributi derivati.

Si definisca il relativo schema E/R (nella metodologia proposta a lezione) e si evidenzino eventuali vincoli inespressi e attributi derivati. 20 Giugno 2014 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione delle iscrizioni a strutture scolastiche.

Dettagli

ESAME 16/02/2016 (A) Prof. C. DE MAIO

ESAME 16/02/2016 (A) Prof. C. DE MAIO ESAME 16/02/2016 (A) Prof. C. DE MAIO Nome Cognome Matricola Numero Computer DB: OPERAZIONI SULLA STRUTTURA 1. Crea un nuovo database a cui darai come nome il tuo Cognome e Nome (senza spazi e accenti)

Dettagli

Basi di dati: appello 08/03/06

Basi di dati: appello 08/03/06 Basi di dati: appello 08/03/06 Si consideri il seguente schema di base di dati che vuole tenere traccia delle rappresentazioni di un gruppo di compagnie teatrali: COMPAGNIA (nome, cfdirettore, città_sede)

Dettagli

Esercitazione: Dalle Specifiche alla Modellazione ER. Roberto Basili a.a. 2011/2012

Esercitazione: Dalle Specifiche alla Modellazione ER. Roberto Basili a.a. 2011/2012 Esercitazione: Dalle Specifiche alla Modellazione ER Roberto Basili a.a. 2011/2012 Outline! Analisi delle specifiche! Estrazione di entità, attributi e relazioni! Creazione di uno schema relazionale Esempio:

Dettagli

Esercitazione 03: JDBC e Prepared Statements

Esercitazione 03: JDBC e Prepared Statements Esercitazione 03: JDBC e Prepared Statements Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: Esercitazione03.pdf Sistemi Informativi L-A Applicazione

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

DATABASE PER IL WEB. Programmazione Web 1

DATABASE PER IL WEB. Programmazione Web 1 DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca

Dettagli

VIDES. Mariagrazia Rossi

VIDES. Mariagrazia Rossi VIDES Mariagrazia Rossi Sommario Descrizione della realtà... 2 Requisiti Funzionali... 2 Requisiti non Funzionali... 3 Dizionario dei termini... 3 Diagramma dei casi d uso... 4 CASI D USO... 7 Process

Dettagli

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 ECDL - Database Introduzione European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 Informazioni sul corso orario: Giovedì - 14.30-16.30 materiale: http://www.fotoboni.com/carlo/ docente: webmaster@fotoboni.com

Dettagli

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato Informatica per le Scienze Umane Introduzione al corso: programma dettagliato 1 Obiettivi del corso Fornire le conoscenze e le competenze necessarie alla rappresentazione e al trattamento consapevole delle

Dettagli