Basi di Dati Corso di Laura in Informatica Umanistica



Documenti analoghi
Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica

ESAME di INFORMATICA e ARCHIVIAZIONE

Basi di Dati Corso di Laura in Informatica Umanistica

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

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

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

SQL: definizione schema

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

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:

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

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

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

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

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

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

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

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

ESAME di INFORMATICA e ARCHIVIAZIONE

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

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

Volumi di riferimento

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

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

Basi di Dati. Esercitazione SQL. Ing. Paolo Cappellari

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

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

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

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

Un DataBase SQL per la Henry Books

Il linguaggio SQL: query innestate

Linguaggio SQL. Structured Query Language

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

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

SQL Laboratorio di Basi di Dati a.a. 2002/2003

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

MEZZI CodM Tipo Targa AnnoI Assicurato

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Esercitazione su SQL

Prova Scritta di Basi di Dati

Metodi per la Gestione dei Dati (lezioni di laboratorio)

COGNOME MATRICOLA. Con vincoli di integrita referenziale: INTERVENTO.CodTecnico à TECNICO.Codice INTERVENTO.MatCaldaia à CALDAIA.

Database per la gestione delle ferrovie dello stato. I treni gestiti sono identificati da un numero. Su ciascun treno sono specificate le classi per

MAX, SUM, AVG, COUNT)

CAPITOLO 4 ESERCIZI SU SQL

SQL. DDL e vincoli. Basi di Dati 1 Esercitazione 4. Matteo Picozzi {picozzi@elet.polimi.it}

Corso di Laboratorio di Basi di Dati

Corso di Informatica (Basi di Dati)

UTENTE (Codice, Nome, Cognome, Indirizzo, Telefono) PRESTITO (Collocazione, CodUtente, DataPrestito, DataRest)

Corso di Basi di Dati

Definizione di domini

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Compito Basi di Dati. Tempo concesso: 90 minuti 08 Giugno 2006 Nome: Cognome: Matricola:

Introduzione a MySQL

Introduzione al corso

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

Giovanna Rosone 04/03/ /03/2010 SQL, Istruzioni per la modifica dello schema

Data management a.a Il linguaggio SQL

Il linguaggio SQL: viste e tabelle derivate

PROGRAMMA DI CLASSE 5AI

Basi di dati Appello del Compito A

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

Modello concettuale dei dati. Paolo Brunasti - UniMiB 1 / 12

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

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

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

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

SQL (STRUCTURED QUERY LANGUAGE)

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

Appello di BD del Corso di laurea in Informatica del 9/1/2007 Compito e soluzioni

DBMS (Data Base Management System)

IL DAT A B A S E DI ALGE B R A N D O

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

Le Basi di Dati. Le Basi di Dati

Soluzione DDL ed Algebra Relazionale

Archivi e Basi di Dati

Sessione ordinaria 2005 Seconda prova scritta M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

OR true null false true true true true null true null null false true null false NOT

N ######/02 Seconda prova scritta *$$$$$21115* *$$$$$21115* *$$$$$21115* *$$$$$21115* A T T E N Z I O N E

Vincoli di Integrità

Gli operatori relazionali

Alessandra Raffaetà. Esercizio

Informatica per le discipline umanistiche 2 lezione 10

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

RISOLUZIONE APPELLI DI SISTEMI INFORMATIVI

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

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

BASE DI DATI: sicurezza. Informatica febbraio ASA

Compito Basi di Dati. Tempo concesso: 90 minuti 18 Gennaio 2007 Nome: Cognome: Matricola:

Il linguaggio SQL: le basi

Corso sul linguaggio SQL

Basi Di Dati, 09/12/2003

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

Esercizio 4.1. Soluzione:

SQL - Funzioni di gruppo

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Capitolo 13. Interrogare una base di dati

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE.

Transcript:

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 di una biblioteca: CREATE TABLE Alberghi ( idalberghi INT NOT NULL PRIMARY KEY, Nome VARCHAR(15) NOT NULL, Città VARCHAR(15) NULL ) CREATE TABLE Servizi ( idservizi INT NOT NULL PRIMARY KEY, Nome VARCHAR(10) NOT NULL, Descrizione VARCHAR(45) NULL ) CREATE TABLE Stanze ( Piano VARCHAR(45) NOT NULL PRIMARY KEY, Numero VARCHAR(45) NOT NULL PRIMARY KEY, Albergo INT NOT NULL PRIMARY KEY REFERENCES Alberghi (idalberghi ), PostiLetto INT(11) NOT NULL, Fumatori Boolean NOT NULL)) CREATE TABLE AlbergoOffreServizi ( Servizio INT NOT NULL PRIMARY KEY REFERENCES Servizi (idservizi ), Albergo INT NOT NULL PRIMARY KEY REFERENCES Alberghi (idalberghi ), Prezzo DECIMAL(9,2) NULL) Risolvere le seguenti interrogazioni utilizzando la sintassi SQL oppure la forma standard per le interrogazioni dell algebra relazionale: 1) Trovare il numero di stanze doppie offerte dall hotel Continental di Roma. 2) Trovare il numero di alberghi che offrono il servizio Sauna a Firenze 3) Trovare gli alberghi che hanno stanze con 4 posti letto e che offrono il servizio Sauna a meno di 100 Euro. 4) Trovare gli alberghi che non hanno il servizio idromassaggio. 5) Trovare gli alberghi che hanno solo stanze non fumatori 6) Trovare gli alberghi che hanno sia la sauna che la palestra.

Soluzioni: 1) select count(*) from alberghi join stanze on albergo=idalberghi where nome="continental" and PostiLetto=2 and città= Roma 2) select count(*) from alberghi join AlbergoOffreServizi on albergo=idalberghi join Servizi on servizio=idservizi where Città="Firenze" and Servizi.nome="Sauna" 3) select distinct Alberghi.Nome, Alberghi.Città servizo=idservizi join Stanze on Stanze.Albergo=idAlberghi where Servizi.nome="Sauna" and PostiLetto =4 and Prezzo < 100 4) select Nome, Città, idalberghi from Alberghi except servizo=idservizi where Servizi.nome = "Idromassaggio" 5) Select Alberghi.Nome, Alberghi.Nome, Città, idalberghi from Alberghi except from alberghi join stanze on albergo=idalberghi where Fumatori=1

6) servizo=idservizi where Servizi.nome = "Sauna" intersect servizo=idservizi where Servizi.nome = "Palestra"

Basi di Dati Corso di Laura in Informatica Umanistica Appello del 10/09/2010 Parte 2: SQL (Aggregati) e Progettazione concettuale e logica Docente: Giuseppe Amato Si consideri la seguente realtà riguardante una società di gestione dei parcheggi: La società gestisce vari parcheggi. Ogni parcheggio è caratterizzato da un nome, da una tipologia (es.: Multipiano, Sotterraneo, all aperto, Custoditi, etc.), e da un indirizzo. Ogni parcheggio contiene vari posti auto. Ogni posto auto ha una posizione (ad esempio il piano ed il numero), può essere nello stato occupato, libero, o indisponibile. A seconda che sia occupato da una automobile, sia libero e disponibile, o indisponibile (ad esempio per motivi tecnici). Per ogni posto auto si vuole anche memorizzare il tempo di utilizzo, ossia il tempo globale in cui il posto auto si è trovato in stato occupato. I cittadini possono comprare l abbonamento ad un parcheggio. Ogni cittadino può comprare abbonamenti diversi per parcheggi diversi. Di ogni cittadino si vuole memorizzare il Nome il Cognome, il codice fiscale, l indirizzo. L abbonamento ha un inizio ed una fine. 1. Si definisca uno schema concettuale che rappresenta le informazioni sopra descritte. 2. Si traduca lo schema concettuale del punto 1) in uno schema logico di base di dati nel modello relazionale 3. Si risolvano le seguenti query facendo riferimento allo schema logico del punto 2) a. Trovare i parcheggi a cui è abbonato Mario Rossi, ed il corrispondente numero totale di posti auto. b. Trovare per ogni parcheggio, il posto auto meno utilizzato. c. Trovare i parcheggio con più di 40 posti disponibili.

Soluzioni: 1) Persone CodiceFiscale Nome Cognome Indirizzo PostiAuto Piano Numero Stato TempoUtilizzo inizio Fine Parcheggi Nome Tipologia Indirizzo 2) CREATE TABLE Parcheggi ( idparcheggio INT NOT NULL, Nome VARCHAR(10) NOT NULL, Tipologia VARCHAR(15) NULL, Indirizzo VARCHAR(45) NULL, PRIMARY KEY (idparcheggio) ) CREATE TABLE PostiAuto ( Piano INT NOT NULL, Numero INT NOT NULL, Stato VARCHAR(10) NOT NULL, TempoUtilizzo INT NOT NULL, idparcheggio INT NOT NULL, PRIMARY KEY (Piano, Numero, idparcheggio),

FOREIGN KEY (idparcheggio )REFERENCES Parcheggi (idparcheggio )) CREATE TABLE persone ( CodiceFiscale CHAR(16) NOT NULL, Nome VARCHAR(15) NOT NULL, Cognome VARCHAR(15) NOT NULL, Indirizzo VARCHAR(45) NULL, PRIMARY KEY (CodiceFiscale) ) CREATE TABLE PersonaAbbonataAParcheggio ( CodiceFiscale CHAR(16) NOT NULL, idparcheggio INT NOT NULL, Inizio DATE NOT NULL, Fine DATE NOT NULL, PRIMARY KEY (CodiceFiscale, idparcheggio), FOREIGN KEY (CodiceFiscale ) REFERENCES persone (CodiceFiscale ) FOREIGN KEY (idparcheggio ) REFERENCES Parcheggi (idparcheggio )) 3) a) b) c) select parcheggi.nome, count(*) from persone natural join personaabbonataaparcheggio join parcheggi on personaabbonataaparcheggio.idparcheggio=parcheggi.idparcheggio join postiauto on postiauto.idparcheggio=parcheggi.idparcheggio where persone.nome="mario" and cognome="rossi" group by parcheggi.idparcheggio, parcheggi.nome select nome, piano, numero, TempoUtilizzo from parcheggi natural join postiauto where (nome,tempoutilizzo)in (select nome, min(tempoutilizzo) from parcheggi natural join postiauto group by parcheggi.idparcheggio, nome) select nome

from parcheggi natural join postiauto where stato="libero" group by parcheggi.idparcheggio, nome having count(*)>40