Basi di Dati e Sistemi Informativi

36
Basi di Dati e Sistemi Informativi Esempi & Esercizi Il Modello Relazionale Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

description

Basi di Dati e Sistemi Informativi. Esempi & Esercizi Il Modello Relazionale Home page del corso : http:// www.cs.unibo.it /~ difelice / dbsi /. Esercizio 0. Dati i seguenti insiemi : A= { a,b,c,d,e } B={d,1,2} Qual e’ la cardinalita ’ del prodotto cartesiano AxB ? - PowerPoint PPT Presentation

Transcript of Basi di Dati e Sistemi Informativi

Page 1: Basi  di  Dati  e  Sistemi Informativi

Basi di Dati e Sistemi

Informativi

Esempi & EserciziIl Modello Relazionale

Home page del corso:

http://www.cs.unibo.it/~difelice/dbsi/

Page 2: Basi  di  Dati  e  Sistemi Informativi

Esercizio 0

Dati i seguenti insiemi:A= {a,b,c,d,e} B={d,1,2}

Qual e’ la cardinalità del prodotto cartesiano AxB?

{(d,a),(d,b)} è una relazione valida su AxB

{(a,d),(e,2),(c,2)} è una relazione valida su AxB

{(b,1),(b,2),(b,1)} è una relazione valida su AxB

Page 3: Basi  di  Dati  e  Sistemi Informativi

Esercizio 0

Dati i seguenti insiemi:A= {a,b,c,d,e} B={d,1,2}

Qual è la cardinalità di AxB? 15

{(d,a),(d,b)} è una relazione valida su AxB

{(a,d),(e,2),(c,2)} è una relazione valida su AxB

{(b,1),(b,2),(b,1)} è una relazione valida su AxB

Page 4: Basi  di  Dati  e  Sistemi Informativi

Esercizio 1

Definire lo schema della base di dati riportata sotto. Quante istanze sono rappresentate?

Codice Autore

Conferenza

Sito Anno Pagine

101212 Marco ICC Bologna 2012 7

101214 Matteo INFOCOM Las Vegas

2011 8

11212 Luca INFOCOM Las Vegas

2011 8

11212 Luigi INFOCOM Las Vegas

2011 8

101214 Matteo INFOCOM Las Vegas

2011 8

101244 Luca MOBICOM NY 2008 10

101233 Carlo DYSPAN Londra 2012 5

ARTICOLI

Page 5: Basi  di  Dati  e  Sistemi Informativi

Esercizio 1

Definire lo schema della base di dati riportata sotto. Quante istanze sono rappresentate?

Codice Autore

Conferenza

Sito Anno Pagine

ARTICOLI

ARTICOLI(Codice,Autore,Conferenza,Sito,Anno,Pagine)

#Instanze=#Righe della Relazione=7

Page 6: Basi  di  Dati  e  Sistemi Informativi

Esercizio 1

Utilizzo della notazione posizionale.

Codice Autore

Conferenza

Sito Anno Pagine

101212 Marco ICC Bologna 2012 7

101214 Matteo

INFOCOM Las Vegas

2011 8

11212 Luca INFOCOM Las Vegas

2011 18

ARTICOLI

tt2

t3

t[Autore] ???t[Sito] ???t3[Pagine] ???

Page 7: Basi  di  Dati  e  Sistemi Informativi

Esercizio 1.a

Indicare se la tabella seguente costituisce una relazione valida nel modello relazionale.

Codice Autore

Conferenza

Sito Anno Pagine

101212 Marco ICC Bologna 2012 7

101214 Matteo INFOCOM Las Vegas

2011 8

11212 Luca INFOCOM Las Vegas

2011 8

11212 Luigi INFOCOM Las Vegas

2011 8

101214 Matteo INFOCOM Las Vegas

2011 8

101244 Luca MOBICOM NY 2008 10

101233 Carlo DYSPAN Londra 2012 5

Page 8: Basi  di  Dati  e  Sistemi Informativi

Esercizio 1.b

Indicare se la tabella seguente costituisce una relazione valida nel modello relazionale.

Codice Autore

Conferenza

Sito Anno Pagine

101212 Marco ICC Bologna 2012 7

101214 Matteo INFOCOM Las Vegas

2011 8

11212 Luca INFOCOM Las Vegas

2011 8

11212 Luigi INFOCOM Las Vegas

2011 8

NULL Matteo INFOCOM Las Vegas

2011 8

101244 Luca MOBICOM NY 2008 10

101233 Carlo DYSPAN Londra 2012 5

Page 9: Basi  di  Dati  e  Sistemi Informativi

Esercizio 1.c

Indicare se la tabella seguente costituisce una relazione valida nel modello relazionale.

Codice Autore

Conferenza

Sito Anno Pagine

101212 Marco ICC Bologna 2012 7

NULL Matteo INFOCOM Las Vegas

2011 8

11212 Luca INFOCOM Las Vegas

2011 8

11212 Luigi INFOCOM Las Vegas

2011 8

NULL Matteo INFOCOM Las Vegas

2011 8

101244 Luca MOBICOM NY 2008 10

101233 Carlo DYSPAN Londra 2012 5

Page 10: Basi  di  Dati  e  Sistemi Informativi

Esercizio 2 (V/F)

Data la relazione seguente:

Codice Nome Cognome

Progetto

Ufficio

123 Michele Rossi IoE 1A

124 Luca Bianchi IoE 1A

125 Antonio Rossi ARTEMIS 1B

126 Giorgio Rossi ARTEMIS 1B

127 Daniele Verdi NADIR 1C

IMPIEGATI

Q. La tripla {Cognome, Progetto, Ufficio} e’ una superchiave.Q. L’attributo Nome e’ una chiave a livello di istanza.Q. L’attributo Nome e’ una chiave a livello di schema.

Page 11: Basi  di  Dati  e  Sistemi Informativi

Esercizio 2 (V/F)

Data la relazione seguente:

Codice Nome Cognome

Progetto

Ufficio

123 Michele Rossi IoE 1A

124 Luca Bianchi IoE 1A

125 Antonio Rossi ARTEMIS 1B

126 Giorgio Rossi ARTEMIS 1B

127 Daniele Verdi NADIR 1C

IMPIEGATI

Q. La tripla {Cognome, Progetto, Ufficio} è una superchiave.Q. L’attributo Nome è una chiave a livello di istanza.Q. L’attributo Nome è una chiave a livello di schema.

Page 12: Basi  di  Dati  e  Sistemi Informativi

Esercizio 2 (V/F)

Data la relazione seguente:

Codice Nome Cognome

Progetto

Ufficio

123 Michele Rossi IoE 1A

124 Luca Bianchi IoE 1A

NULL Antonio Rossi ARTEMIS 1B

126 NULL Rossi ARTEMIS 1B

127 NULL Verdi NADIR 1C

IMPIEGATI

Q. L’attributo Codice è una chiave primaria.Q. L’attributo Nome è una chiave a livello di istanza.Q. Gli attributi {Cognome,Nome} sono una chiave primaria.

Page 13: Basi  di  Dati  e  Sistemi Informativi

Esercizio 3 (V/F)

Data la relazione seguente:

Codice Nome Cognome

Progetto

Ufficio

123 Michele Rossi IoE 1A

124 Luca Bianchi IoE 1A

NULL Antonio Rossi ARTEMIS 1B

126 NULL Rossi ARTEMIS 1B

127 NULL Verdi NADIR 1C

IMPIEGATI

Q. L’attributo Codice e’ una chiave primaria.Q. L’attributo Nome e’ una chiave a livello di istanza.Q. Gli attributi {Cognome,Nome} sono una chiave primaria.

Page 14: Basi  di  Dati  e  Sistemi Informativi

Esercizio 4 (V/F) Ogni relazione ha almeno una chiave. Ogni relazione ha esattamente una chiave. Ogni attributo appartiene al massimo ad una

chiave. Possono esistere attributi che non appartengono

ad alcuna chiave. Una chiave può essere sottoinsieme di

un’altra chiave. Può esistere una chiave che coinvolge tutti gli

attributi. Può succedere che esistano piu’ chiavi ed una

di esse coinvolga tutti gli attributi. Ogni relazione ha almeno una superchiave. Ogni relazione ha esattamente una

superchiave. Può succedere che esistano più superchiavi

ed una di esse coinvolga tutti gli attributi.

Page 15: Basi  di  Dati  e  Sistemi Informativi

Esercizio 4 (V/F) Ogni relazione ha almeno una chiave. Ogni relazione ha esattamente una chiave. Ogni attributo appartiene al massimo ad una

chiave. Possono esistere attributi che non appartengono

ad alcuna chiave. Una chiave puo’ essere sottoinsieme di

un’altra chiave. Può esistere una chiave che coinvolge tutti gli

attributi. Può succedere che esistano piu’ chiavi ed una

di esse coinvolga tutti gli attributi. Ogni relazione ha almeno una superchiave. Ogni relazione ha esattamente una

superchiave. Può succedere che esistano più superchiavi

ed una di esse coinvolga tutti gli attributi.

Page 16: Basi  di  Dati  e  Sistemi Informativi

Esercizio 5a

Tradurre nel modello relazionale il seguente documento di specifiche.

Si vuole progettare una base di dati per la gestione dei circoli tennis presenti a Bologna. Ogni circolo dispone di nome (univoco), indirizzo, recapito telefonico, ed email. Si vogliono gestire le informazioni relative ai soci di ciascun circolo: ogni socio dispone di codice fiscale, nome, cognome, data e luogo di nascita, uno o più recapiti telefonici.

Page 17: Basi  di  Dati  e  Sistemi Informativi

Esercizio 5b

Tradurre nel modello relazionale il seguente documento di specifiche.

Ogni utente dispone di email, password, nome, cognome, data di nascita. Ogni utente dispone di una lista di “utenti” amici/follower. Ogni utente dispone di una propria bacheca di messaggi ricevuti. Ogni messaggio dispone di: codice, data di invio, testo, e mittente.

Page 18: Basi  di  Dati  e  Sistemi Informativi

Esercizio 5c

Rappresentare nel modello relazionale le informazioni relative al traffico aereo giornaliero di un aeroporto, in particolare:

- I voli in ingresso (nr. volo, destinazione, ora decollo, codice compagnia)

- I voli in uscita (nr. volo, partenza, ora atterraggio, codice compagnia)

- Le informazioni sui passeggeri di ciascun volo (nome, cognome, nr. prenotazione, posto).

- Le compagnie aeree (codice, nome, nr di voli forniti)

Page 19: Basi  di  Dati  e  Sistemi Informativi

Esercizio 5b

Codice

Dest. Orario Comp.

Tipo

AZ123 Londra 12:00am AZ P

AF12 Parigi 13:10pm AF P

AZ125 Monaco

11:40am AZ A

LH124 Dresda 13:30 LH A

Codice Pren. Nome Cognome

Posto

AZ125 #121 Marco DiFelice 34D

AZ125 #124 Luca Rossi 12A

LH124 #125 Michele Bianchi 5B

Codice

Nome Num

AZ Alitalia 2

LH Lufthansa

1

AF AirFrance

1

VOLI

PASSEGGERI

COMPAGNIA

Page 20: Basi  di  Dati  e  Sistemi Informativi

Esercizio 5b

Considerando lo schema relazionale mostrato nella slide precedente, indicare:

Chiavi primarie di ciascuna relazione.

Eventuali vincoli di integrita’ referenziale tra le tabelle.

Page 21: Basi  di  Dati  e  Sistemi Informativi

Esercizio 5b

Codice

Dest. Orario Comp.

Tipo

AZ123 Londra 12:00am AZ P

AF12 Parigi 13:10pm AF P

AZ125 Monaco

11:40am AZ A

LH124 Dresda 13:30 LH A

Codice Pren. Nome Cognome

Posto

AZ125 #121 Marco DiFelice 34D

AZ125 #124 Luca Rossi 12A

LH124 #125 Michele Bianchi 5B

Codice

Nome Num

AZ Alitalia 2

LH Lufthansa

1

AF AirFrance

1

VOLI

PASSEGGERI

COMPAGNIA

Page 22: Basi  di  Dati  e  Sistemi Informativi

Esercizio 6

Definire i vincoli di integrità referenziale nel seguente schema:

IMPIEGATI (Matricola, Nome, Cognome, Età)PROGETTI(Id, Titolo, Budget)PARTECIPAZIONI(Impiegato, Progetto,MesiUomo)

Decidere se l’istanza mostrata (nella slide seguente)rispetta i vincoli definiti.

Page 23: Basi  di  Dati  e  Sistemi Informativi

Esercizio 6

Matricola Nome Cognome

Età

3232 Marco Rossi 25

5565 Marco Verdi 34

7899 Michele Bianchi 54

IMPIEGATI

ID Titolo Budget

23 PRIN 34K

45 ARTIS 34K

PROGETTI

Impiegato

Progetto

Mesi

3232 23 12

3232 45 12

7899 23 6

PARTECIPAZIONE

Page 24: Basi  di  Dati  e  Sistemi Informativi

Esercizio 6

Matricola Nome Cognome

Eta’

3232 Marco Rossi 25

5565 Marco Verdi 34

7899 Michele Bianchi 54

IMPIEGATI

ID Titolo Budget

23 PRIN 34K

45 ARTIS 34K

PROGETTI

Impiegato

Progetto

Mesi

3232 23 12

3232 50 12

4500 23 6

PARTECIPAZIONE

Page 25: Basi  di  Dati  e  Sistemi Informativi

Esercizio 6

Matricola Nome Cognome

Eta’

3232 Marco Rossi 25

5565 Marco Verdi 34

7899 Michele Bianchi 54

IMPIEGATI

ID Titolo Budget

23 PRIN 34K

45 ARTIS 34K

PROGETTI

Impiegato

Progetto

Mesi

3232 23 12

3232 45 12

5565 45 6

PARTECIPAZIONE

Page 26: Basi  di  Dati  e  Sistemi Informativi

Esercizio 7

Titolo Nome Cognome

Anno Editore Edizione

Ubik Philip Dick 1969 Fanucci 1

I.A. Micheal Crichton 1994 Einaudi 4

Andromeda

Michael Crichton 1969 Feltrinelli 2

J. Park Michael Crichton 1973 Einaudi 4

La guerra…

Orson Wells 1968 Einaudi 5

LIBRO

AUTORE

Codice Nome Cognome

Nascita

122 Philip Dick 1945

145 Orson Wells 1920

156 Orson Wells 1967

EDITORI

Nome Sede

Fanucci Torino

Einaudi Roma

Feltrinelli Bologna

Page 27: Basi  di  Dati  e  Sistemi Informativi

Esercizio 7Vincolo di integrita’ referenziale tra LIBRO.{Nome, Cognome} e la relazione AUTORE.

Vincolo di integrita’ referenziale tra LIBRO.Editoree la relazione EDITORI.

E’ possibile rimuovere la prima riga della relazione LIBRO senza violare i vincoli di integrità con la relazione EDITORI.

E’ possibile fare il viceversa?

Page 28: Basi  di  Dati  e  Sistemi Informativi

Esercizio 7Vincolo di integrita’ referenziale tra LIBRO.{Nome, Cognome} e la relazione AUTORE.

Vincolo di integrita’ referenziale tra LIBRO.Editoree la relazione EDITORI.

E’ possibile rimuovere la prima riga della relazione LIBRO senza violare i vincoli di integrità con la relazione EDITORI.

E’ possibile fare il viceversa?

Page 29: Basi  di  Dati  e  Sistemi Informativi

Esercizio 8

Si vogliono gestire i dati degli impiegati di un ufficio: ogni impiegato dispone di un codice identificativo, un nome, cognome, data di nascita e indirizzo di residenza. Si vogliono inoltre gestire le informazioni relative ai progetti sviluppati dagli impiegati; ogni progetto dispone di un nome (identificativo), una data di inizio, una di fine, ed un budget. Si vuole tenere traccia della partecipazione degli impiegati ai progetti. Ogni impiegato può partecipare ad un numero arbitrario di progetti. Ogni progetto può coinvolgere un numero arbitrario di impiegati.

Progettare una base di dati nel modello relazionale sulla base delle specifiche fornite.

Page 30: Basi  di  Dati  e  Sistemi Informativi

Esercizio 9

Dato lo schema relazionale seguente:

AGENZIA(Nome, Indirizzo, Telefono)CASA(Indirizzo,NrInterno,CodProprietario, Prezzo)INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)PROPRIETARIO(Codice, Nome, Cognome, Telefono)

Q.0 Identificare i vincoli di integrita’ referenziale.

Page 31: Basi  di  Dati  e  Sistemi Informativi

Esercizio 9

Dato lo schema relazionale seguente:

AGENZIA(Nome, Indirizzo, Telefono)CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo)INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)PROPRIETARIO(Codice, Nome, Cognome, Telefono)

Q.1 Le due notazioni sono equivalenti? INSERZIONI.IndirizzoCasa CASA.Indirizzo INSERZIONI.InternoCasa CASA.NrInterno INSERZIONI.{IndirizzoCasa,InternoCasa}

CASA.{Indirizzo,NrInterno}

Page 32: Basi  di  Dati  e  Sistemi Informativi

Esercizio 9

Dato lo schema relazionale seguente:

AGENZIA(Nome, Indirizzo, Telefono)CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo)INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)PROPRIETARIO(Codice, Nome, Cognome, Telefono)

Q.2 Nella tabella CASA, il CodProprietario puo’ essere NULL.

Page 33: Basi  di  Dati  e  Sistemi Informativi

Esercizio 9

Dato lo schema relazionale seguente:

AGENZIA(Nome, Indirizzo, Telefono)CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo)INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)PROPRIETARIO(Codice, Nome, Cognome, Telefono)

Q.3 E’ possibile che la relazione CASA contenga 0 instanze, e la relazione PROPRIETARIO contenga 5 istanze (senza violare i vincoli di integrita’ referenziale).

Page 34: Basi  di  Dati  e  Sistemi Informativi

Esercizio 9

Dato lo schema relazionale seguente:

AGENZIA(Nome, Indirizzo, Telefono)CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo)INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)PROPRIETARIO(Codice, Nome, Cognome, Telefono)

Q.4 E’ possibile che la relazione INSERZIONI contenga 10 instanze, e la relazione CASA contenga 5 istanze (senza violare i vincoli di integrita’ referenziale).

Page 35: Basi  di  Dati  e  Sistemi Informativi

Esercizio 9

Dato lo schema relazionale seguente:

AGENZIA(Nome, Indirizzo, Telefono)CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo)INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)PROPRIETARIO(Codice, Nome, Cognome, Telefono)

Q.5 E’ possibile che la relazione INSERZIONI contenga 10 instanze, e la relazione CASA contenga 0 istanze (senza violare i vincoli di integrita’ referenziale).

Page 36: Basi  di  Dati  e  Sistemi Informativi

Esercizio 10

Rappresentare nel modello relazionale le informazioni relative ad i pazienti e medici di una clinica ospedaliera. Ogni medico ha un codice identificativo, nome, cognome, e codice del reparto in cui opera. Ogni paziente e’ identificato da un codice reparto e dal #di letto nel reparto, e dispone di nome, cognome, data di nascita. A ciascun paziente possone essere associate piu’ cure. La cura e’ composta dal nome di un farmaco, ha una data di inizio e fine, ed e’ somministrata da un medico. Ogni medico puo’ somministrare al max 1 cura per lo stesso paziente. Ogni reparto ha un codice, un nome, ed un # di letti disponibili.