Basi di dati. Esercitazione 1 sulla progettazione concettuale e sulla ristrutturazione dello schema concettuale. Anno Accademico 2018/2019

Documenti analoghi
Basi di dati Appello del Compito A

Basi di dati Soluzione per l appello del

Basi di dati Appello del Compito A

Basi di dati: appello 09/03/07

Basi di dati Appello del Soluzione del compito A

Basi di dati Appello del Compito B

Basi di dati Soluzione per l appello del

Insegnamento di Basi di Dati

Esame di Basi di Dati SOLUZIONE APPELLO 05/09/2011

Basi di dati Appello del

Basi di dati Appello del Compito A

PROGETTAZIONE CONCETTUALE

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza

Basi di dati Appello del Soluzione del compito B

Laboratorio di Basi di Dati

B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a

BASE DI DATI. Esercizi Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

Vendite e affitti di immobili: specifica

Progettazione Logica. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

LA PROGETTAZIONE LOGICA

Raccolta e analisi dei requisiti

Laboratorio di Basi di Dati

Esercitazione 3. Vincoli di integrità. Approccio Procedurale

Esame di Basi di Dati

Basi di Dati Corso di Laura in Informatica Umanistica

Laboratorio di Basi di Dati

Esame di Basi di Dati SOLUZIONE APPELLO 14/06/2011

Specifica Problema 1 Si richiede di progettare lo schema concettuale Entità-Relazione di un'applicazione relativa alle prenotazioni di posti in

Basi di dati Appello del

Esercitazione 5 Progettazione Concettuale e logica

Parte 6 Esercitazione sull accesso ai file

ESAME di INFORMATICA e ARCHIVIAZIONE

Il linguaggio SQL. TUTORATO DIFONDAMENTI DIINFORMATICA

Basi di Dati 1 Esercitazione 4 27/11/2012. Matteo Picozzi

Laboratorio di Basi di Dati

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

Basi di Dati 1! Esercitazione 4. Matteo Picozzi!

Basi di dati. Appello del Soluzione Compito A. Anno Accademico 2006/07. Problema 1

Basi di dati Appello del Compito B

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

Esercizio 1: un semplice schema concettuale. Descrivere lo schema concettuale della seguente realtà:

BASE DI DATI. Esercizio: FACEBOOK Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

Introduzione. Il Modello Relazionale. Relazioni e Tabelle. Relazioni Matematiche - 1. Relazioni Matematiche - 2. Relazioni Matematiche - 3

Il modello relazionale. A. Ferrari

Capitolo 2. Dall idea al codice con UML 2 Esercizi introduttivi

Model o relazionale 1

Basi di Dati 1 Esercitazione 5 08/01/2013. Matteo Picozzi

DATABASE - MODELLO E-R CHIAVI E ATTRIBUTI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL 2, HOEPLI. Informatica

Le relazioni hanno una naturale rappresentazione per mezzo di. D. Gubiani Il Modello Relazionale 3

Capitolo 2. Dall idea al codice con UML 2 Esercizi introduttivi

Versione 1.0. (DB Visite Specialistiche)

Le Basi di dati: progettazione concettuale

Laboratorio di Basi di Dati IV esercitazione 17 aprile 2007

Laboratorio di Basi di Dati

Il modello logico dei dati

Le basi di dati. Lez. 3: Il Modello Relazionale

Autorità Garante della Concorrenza e del Mercato Autorità Nazionale Anticorruzione

GESTIONE ASSICURAZIONI AUTO

Prova Scritta di Basi di Dati

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

Basi di Dati. Esercitazione SQL. 17 novembre 2011

ESAME di INFORMATICA e ARCHIVIAZIONE

Basi di Dati e Sistemi Informativi

BASE DI DATI. Esercizi Progettazione concettuale Progettazione logica Concetti avanzati SQL: Raggruppamento Nidificazione

Modello relazionale e algebra relazionale

PROGETTAZIONE CONCETTUALE

Esame di Basi di Dati

DataBase Management System - DBMS

Basi di dati Appello del Compito A

Modellazione dei dati

Laboratorio di Basi di Dati

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

La progettazione logica Traduzione dal modello Entità-Associazione al modello relazionale Anno accademico 2008/2009

Corso di Basi di Dati

Fondamenti di Informatica e Programmazione

5. La progettazione logica

Mattia Fazzi: 02/04/2019

A. Ferrari modello relazionale

Basi di Dati. Esercitazione SQL. 18 maggio 2007

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

Progettazione. Realizzazione

Basi di Dati Corso di Laura in Informatica Umanistica

Il modello concettuale dei dati

Modello relazionale e algebra relazionale

Fondamenti di Basi di Dati

Università degli Studi di Milano. Esercizi Corso SIT. Basi di dati

Progetto PC versione del 11 gennaio 2008

Basi di dati e Relazioni

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

Le basi di dati. Lez. 2: Progettazione di un DB. Laboratorio di informatica gestionale

AVVISO PUBBLICO Il Consiglio rende noto che - con decreto del , Rep. n Prot. n , il Rettore dell Università degli Studi di

IL PORTALE DI CAR POOLING PER IL POLITECNICO DI MILANO E L UNIVERSITÀ DEGLI STUDI DI MILANO. Sommario 1 ACCESSO AL SERVIZIO...2

Modello Entità-Relazione (E-R)

Concettuale. Giuseppe Amato

Basi di Dati Relazionali

Prova Scritta di Basi di Dati

Insegnamento di Basi di Dati

Transcript:

Basi di dati Esercitazione 1 sulla progettazione concettuale e sulla ristrutturazione dello schema concettuale Anno Accademico 2018/2019 Maurizio Lenzerini

Specifica dei requisiti Si richiede di effettuare la progettazione concettuale relativa al sistema informativo di un azienda di car pooling. Gli utenti registrati al servizio di car pooling pubblicano su Web offerte di passaggi con automobili private, dove ogni offerta è caratterizzata da: l utente registrato (una persona) che l ha pubblicata, la data di pubblicazione, un codice numerico (unico nell ambito della data di pubblicazione), la data in cui avverrà il passaggio, il costo del passaggio, l automobile che si utilizzerà per il passaggio, l indirizzo da cui l automobile partirà e l indirizzo a cui l automobile arriverà. Si noti che un utente registrato non può offrire più di un passaggio per lo stesso giorno. Alla prima persona che aderisce ad un offerta viene assegnato il servizio: tale persona diventa il titolare dell assegnazione del servizio ed ha quindi diritto al passaggio. Di ogni assegnazione interessa l offerta alla quale si riferisce, la data in cui è avvenuta e la persona titolare dell assegnazione. Di ogni automobile interessa la targa (identificativo), la cilindrata, l anno di immatricolazione, la regione di immatricolazione, ed il modello. Di ogni modello interessa il codice (identificativo), il nome (ad esempio, Fiat 500 ), la marca (ad esempio Fiat ) e le recensioni ricevute. Di ogni persona interessa il codice fiscale (identificativo), il nome, il cognome, la data di nascita e la città di nascita. Di ogni utente registrato interessa il codice fiscale (identificativo), il nome, il cognome, la data di nascita, la città di nascita e l anno di registrazione al servizio. Ogni indirizzo è caratterizzato dal toponimo (via, piazza, viale, ecc.), dal nome, dal numero civico e dalla città. In nessuna città si trovano due indirizzi con lo stesso nome e lo stesso numero civico. Di ogni città interessa il nome (unico nell ambito della regione), la regione ed il numero di abitanti, e di ogni regione interessa il nome (identificativo) e la tassa che la regione applica per ogni passaggio. Alcune offerte sono speciali, nel senso che offrono servizi in più (ad esempio, l wifi), e delle offerte speciali interessa sapere quanti sono i servizi in più che esse offrono. Si noti che solo gli utenti registrati possono aderire alle offerte speciali. Quindi i titolari di servizi relativi ad offerte speciali sono necessariamente utenti registrati, e questi, dopo il passaggio, possono attribuire un voto al servizio, voto che è di interesse all applicazione.

Marca Civico Schema concettuale Indirizzo Da A Città In Toponimo Auto Per Utente Di Luogo Nascita Persona Immatri colazione Modello HaModello Voto Data Speciale Passaggio Codice Regione Nella Tassa NumServizi AnnoImm Cilindrata Targa NumAbit Codice DataPu DataPassaggio Costo CF Cognome DataNascita AnnoRegistrazione Recensione (0,n) speciale

Nella Civico Schema concettuale ristrutturato Regione AnnoImm Testo Targa Immatri colazione Auto Tassa Cilindrata HaModello Codice Marca Modello HaRecensione Recensione Toponimo Per Da Indirizzo Costo A Passaggio Codice DataPu ISA-S-O Speciale NumServizi In DataPassaggio Di AnnoRegistrazione Cognome DataNascita Voto Città Utente NumAbit Luogo Nascita Persona ISA-U-P speciale Data Vincolo esterno: Per ogni istanza <:o,:t> di Speciale, se o1 e t1 sono tali che <Speciale:o,Passaggio:o1> è istanza di ISA-S-O e <Utente:t,Persona:t1> è istanza di ISA-U-P, si ha che l stanza <:o1,:t1> è istanza di. CF

Nella Civico Schema concettuale ristrutturato Regione AnnoImm Targa Testo Immatri colazione Auto Tassa HaModello Codice Marca Modello HaRecensione Recensione Toponimo Per Cilindrata Da Indirizzo Costo A Passaggio Codice DataPu ISA-S-O Speciale NumServizi In DataPassaggio Di AnnoRegistrazione Cognome DataNascita Voto Città Utente NumAbit Luogo Nascita Persona ISA-U-P speciale Data Vincolo esterno: Per ogni istanza <:o,:t> di Speciale, se o1 e t1 sono tali che <Speciale:o,Passaggio:o1> è istanza di ISA-S-O e <Utente:t,Persona:t1> è istanza di ISA-U-P, si ha che l stanza <:o1,:t1> è istanza di. CF

Nella Civico Schema concettuale ristrutturato Regione AnnoImm Targa Testo Immatri colazione Auto Tassa HaModello Codice Marca Modello HaRecensione Recensione Toponimo Per Cilindrata Da Indirizzo Costo A Passaggio Codice DataPu ISA-S-O Speciale NumServizi In DataPassaggio Di AnnoRegistrazione Cognome DataNascita Voto Città Utente NumAbit Luogo Nascita Persona ISA-U-P speciale Data Vincolo esterno: Per ogni istanza <:o,:t> di Speciale, se o1 e t1 sono tali che <Speciale:o,Passaggio:o1> è istanza di ISA-S-O e <Utente:t,Persona:t1> è istanza di ISA-U-P, si ha che l stanza <:o1,:t1> è istanza di. CF

Traduzione diretta (1) Recensione(testo) foreign key: Recensione[testo] Í HaRecensione[rec] HaRecensione(rec,modello) foreign key: HaRecensione[rec] Í Recensione[testo] foreign key: HaRecensione[modello] Í Modello[codice] Modello(codice,marca,nome) HaModello(auto,modello) foreign key: HaModello[auto] Í Auto[targa] foreign key: HaModello[modello] Í Modello[codice] Auto(targa,cilindrata) foreign key: Auto[targa] Í Immatricolazione[auto] foreign key: Auto[targa] Í HaModello[auto] Immatricolazione(auto,regione,annoImm) foreign key: Immatricolazione[auto] Í Auto[targa] foreign key: Immatricolazione[regione] Í Regione[nome] Regione(nome,tassa) Città(nome,regione,numAbit) foreign key: Città[regione] Í Regione[nome] Indirizzo(nome,civico,nomeCittà,regione,toponimo) foreign key: Indirizzo[nomeCittà,regione] Í Città[nome,regione] Persona(CF,nome,cognome,dataNascita) foreign key: Persona[CF] Í LuogoNascita[persona] LuogoNascita(persona,nomeCittà,regione) foreign key: LuogoNascita[persona] Í Persona[CF] foreign key: LuogoNascita[nomeCittà,regione] Í Città[nome,regione] Utente(CF,annoRegistrazione) foreign key: Utente[CF] Í Persona[CF]

Traduzione diretta (2) Passaggio(codice,dataPub,costo,dataPassaggio) foreign key: Passaggio[codice,dataPub] Í Per[codice,dataPub] foreign key: Passaggio[codice,dataPub] Í Da[codice,dataPub] foreign key: Passaggio[codice,dataPub] Í A[codice,dataPub] foreign key: Passaggio[codice,dataPub] Í Di[codice,dataPub] Per(codice,dataPub,auto) foreign key: Per[codice,dataPub] Í Passaggio[codice,dataPub] foreign key: Per[auto] Í Auto[targa] Da(codice,dataPub,nome,civico,nomeCittà,regione) foreign key: Da[codice,dataPub] Í Passaggio[codice,dataPub] foreign key: Da[nome,civico,nomeCittà,regione] Í Indirizzo[nome,civico,nomeCittà,regione] A(codice,dataPub,nome,civico,nomeCittà,regione) foreign key: A[codice,dataPub] Í Passaggio[codice,dataPub] foreign key: A[nome,civico,nomeCittà,regione] Í Indirizzo[nome,civico,nomeCittà,regione] Di(codice,dataPub,utente) foreign key: Di[codice,dataPub] Í Passaggio[codice,dataPub] foreign key: Di[utente] Í Utente[CF] Speciale(codice,dataPub,numServizi) foreign key: Speciale[codice,dataPub] Í Passaggio[codice,dataPub] (cod,datapuboff,titolare,data) foreign key: [cod,datapuboff] Í Passaggio[codice,dataPub] foreign key: [titolare] Í Persona[CF] Speciale(cod,dataPubOff,titolare,voto*) foreign key: Speciale[cod,dataPubOff,titolare] Í [cod,datapuboff,titolare] foreign key: Speciale[cod,dataPubOff] Í Speciale[cod,dataPubOff] foreign key: Speciale[titolare] Í Utente[CF] Vincolo esterno: nel join naturale tra Di e Passaggio non esistono due tuple con la stessa combinazione di valori per datapassaggio e utente Nota: il vincolo esterno è diventato interno, perché corrisponde alla foreign key tra Speciale e