Anteprima
Vedrai una selezione di 5 pagine su 20
Esercitazioni Informatica medica Pag. 1 Esercitazioni Informatica medica Pag. 2
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Esercitazioni Informatica medica Pag. 6
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Esercitazioni Informatica medica Pag. 11
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Esercitazioni Informatica medica Pag. 16
1 su 20
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

DIPENDENZE FUNZIONALI:

- Facoltà Preside

CHAVI: - Docente, Facoltà, Corso

- Docente, Facoltà, Preside [tra facoltà e preside c’è già una dipendenza funzionale] NON

È CHIAVE

In che forma normale si trova la relazione di partenza? Ce lo dice l’osservazione della dipendenza

funzionale della chiave che abbiamo scelto.

Il determinante (facoltà) è uno degli attributi che compone la chiave DIPENDENZA FUNZIONALE

PARZIALE Abbiamo violato la 2FN Siamo alla 1FN.

 

Per portare la 3FN, dobbiamo creare una nuova relazione che chiamiamo R1, che coinvolgerà altri

attributi: R (Facoltà, Preside)

1

R (Docente, Facoltà, Corso, Dipartimento)

2

Nell’ipotesi in cui il dipartimento riguardava il docente, potevamo identi care una terza dipendenza

funzionale tra Docente Dipartimento. Allora avremmo avuto:

 R (Facoltà, Preside)

1

R (Docente, Facoltà, Corso)

2

R (Docente, Dipartimento)

3

ESERCIZIO 2:

Si consideri l seguente tabella in cui valgono le dipendenze funzionali:

- CodEsame Nome, NumStudenti

- CodProfessore Dipartimento, NomeProfessore

Tabella(CodEsame, Nome, CodProfessore, NomeProfessore, NumStudenti, Dipartimento)

Portare Tabella in Forma Normale di Boyce-Codd, eseguendo una suddivisione senza perdite e che

mantenga le dipendenze funzionali.

Ci viene detto che sulla relazione Tabella agiscono anche le due dipendenze funzionali. Sulla base di

queste, la relazione è in 1FN perché sono dipendenze funzionali parziali. Dobbiamo creare una

relazione per ogni dipendenza funzionale con stesso determinanti in questo caso ne dobbiamo

creare due, una per la prima e una per la seconda MA SE USIAMO LE DUE DIPENDENZE

FUNZIONALI non permettono di fare join (non hanno attributi in comune) se io decompongono non

ho nessuna chiave che sia in comune, ci saranno dunque tre relazioni.

In che forma normale è la relazione decomposta? In 3FN.

È in forma di Boyce-Codd? Per essere in Boyce-Codd, il determinante deve essere necessariamente

una superchiave. R (CodEsame, Nome, NumStudenti)

1

R (CodProfessore, Dipartimenti, NomeProfessore)

2 R (CodEsame, CodProfessore)

3

In questo caso la 3FN è in Boyce-Codd, perché non ci sono altri attributi primi che devono essere

identi cati. È suf ciente, dunque, che nelle relazioni precedenti i due determinanti siano superchiave.

ESERCIZIO 3:

a) Individuare le dipendenze funzionali non banali presenti nella seguente tabella contenente informazioni

sui corsi seguiti dagli studenti.

Tabella(CodCorso, NomeCorso, NomeProfessore, MatricolaProfessore, Dipartimento,

MatricolaStudente, NomeStudente, NumeroOreCorso, NumeroCreditiCorso)

Si supponga che:

1. Ciascun corso sia tenuto da un solo docente;

2. Ciascun professore afferisca ad un solo dipartimento;

3. Ciascuno studente possa seguire più corsi;

4. Ciascun professore possa tenere più corsi.

Tra le dipendenze funzionali avremo:

 CodCorso MatricolaProfessore

[NomeProfessore NO perché è già compreso nella matricola]

CodCorso NomeCorso, NumeroCreditiCorso, NumeroCorso [potevamo aggiungere tutto

 

insieme poiché il determinante è lo stesso]

 MatricolaProfessore Dipartimento, NomeProfessore

 MatricolaStudente NomeStudente

Le supposizioni 3 e 4 non dicono nulla in più: non identi cano quindi delle dipendenze funzionali.

b) Decomporre Tabella in Forma Normale di Boyce-Codd. La decomposizione deve essere priva di

perdite e deve mantenere le dipendenze funzionali.

In che forma normale si trova? Siamo in 1FN, perché ci sono delle dipendenze funzionali parziali.

Creiamo una nuova relazione per ogni dipendenza funzionale:

R (CodCorso, MatricolaProfessore, NomeCorso, NumeroCreditiCorso, NumeroCorso)

1 R (MatricolaProfessore, Dipartimento, NomeProfessore)

2 R (MatricolaStudente, NomeStudente)

3

Abbiamo però bisogno di una relazione che contenga la chiave della relazione di partenza (che era

CodCorso e MatricolaStudente) R (CodCorso, MatricolaStudente)

4

Veri chiamo se abbiamo eseguito in modo corretto: possiamo effettuare il join tra le relazioni? Si, ma

solo grazie all’ultima relazione che abbiamo fatto.

Siamo in 3FN, e siamo anche in Boyce-Codd.

ESERCIZIO 4:

Considerate la seguente relazione Degente

DEGENTE(Codice-Fiscale, Nome-Degente, Cognome-Degente, Data, Reparto, Capo-Reparto,

Stanza, Infermiere-di-Stanza)

a) Quali sono le dipendenze funzionali?

b) E’ in BCFN?

Il codice scale corrisponde al degente, e la data al ricovero, Il reparto corrisponde al degente.

Assumiamo che le stanze non siano univoche. Assumiamo che nella stanza ci siano più pazienti.

Le chiavi sono:

- Codice Fiscale;

- Data;

Avremo: DEGENTE(Codice-Fiscale, Nome-Degente, Cognome-Degente, Data, Reparto, Capo-

Reparto, Stanza, Infermiere-di-Stanza)

Le dipendenze sono:

 Codice-Fiscale Nome-Degente, Cognome-Degente;

 Stanza Reparto, Infermiere-di-Stanza;

 Reparto Capo-Reparto;

 Codice-Fiscale, Data Stanza

In che forma normale è? In 1FN (per dire che è 1° basta avere una sola dipendenza funzionale).

R (Codice-Fiscale, Data, Stanza) Degente

1

R (Codice-Fiscale, Nome-Degente, Cognome-Degente) Anagra ca

2 R (Reparto, Capo-Reparto) Reparto

3

R (Stanza, Reparto, Infermiere-di-Stanza) Stanza

4

ESERCIZIO 5 (da ESAME):

Considerare il seguente schema di relazione che contiene informazioni relative alla registrazione di

prodotti all’interno dei magazzini di una azienda che produce apparecchiature biomedicali.

Magazzini (CodMag, Indirizzo, Responsabile, CodiceP, Descrizione, Quantità)

In cui CodMag e Indirizzo si riferiscono al codice identi cativo e all’indirizzo in cui si trova il magazzino;

CodiceP e Descrizione si riferiscono al codice identi cativo del prodotto e alla sua descrizione.

Si consideri che un magazzino ha un solo responsabile e che un determinato prodotto può trovarsi in

diversi magazzini; l’attributo Quantità indica la quantità di pezzi di un determinato prodotto disponibile

in un determinato magazzino.

Si indichino chiavi e dipendenze funzionali. Si indichi la forma normale della relazione di partenza e si

presenti una decomposizione che soddis la forma normale di Boyce-Codd.

Dipendenze Funzionali:

- CodMag Indirizzo, Responsabile;

- CodiceP Descrizione;

- CodiceP, CodMag Quantità

Chiavi: - CodMag;

- CodiceP.

Magazzini (CodMag, Indirizzo, Responsabile, CodiceP, Descrizione, Quantità)

La relazione di partenza è in 1FN.

R1(CodMag, Indirizzo, Responsabile)

R2(CodiceP, Descrizione)

R3(CodiceP, CodMag, Quantità)

[ caso in cui il prodotto si trova in un solo magazzino:

- CodMag Indirizzo, Responsabile;

- CodiceP Descrizione, CodMag, Quantità;

In che forma normale siamo? Non abbiamo dipendenze parziali, ma dipendenze funzionali

TRANSITIVA 2FN.

 R1(CodMag, Indirizzo, Responsabile)

R2(CodiceP, Descrizione, CodMag, Quantità)

Esercizio:

Considerare la seguente base di dati che raccoglie le informazioni riguardanti il catalogo di pro tti che

un rivenditore di apparecchiature biomedicali ha a disposizione:

FORNITORI (CodiceForn, Nome, Indirizzo, Città)

PRODOTTI (Codice, Nome, Descrizione, Marca, Modello, QntMagazzino)

CATALOGO (CodiceForn, CodiceProd, Costo)

Con vincolo di integrità referenziale tra CodiceProd e la relazione Prodotti (=codiceprodotti in catalogo

fa riferimento a codice in prodotti) .

Con riferimento a tale base di dati:

1. Formulare in algebra relazionale l’integrazione che restituisce il nome di tutti i prodotti con costo

superiore ai 1000 euro;

Il nome dei prodotti lo troviamo nella relazione PRODOTTI, mentre l’informazione del costo lo troviamo

nella relazione CATALOGO La query deve includere entrambe le relazioni: possiamo fare il join? SI,

grazie al vincolo referenziale.

Non è un join naturale; useremo l’operatore selezione e proiezione.

( ))

( ⋈

=

2. Formulare in SQL la stessa interrogazione del punto precedente.

SELECT DISTINCT (*) P. Nome

FROM PRODOTTI P, CATALOGO C

WHERE P.Codice = C.CodiceProd AND C.Costo>1000

(*) Dobbiamo decidere se ci possono essere duplicati: contando che in un catalogo abbiamo lo stesso

prodotto che può essere venduto da più prodotti. Aggiungiamo DISTINT (lo aggiungiamo quando

abbiamo il rischio che possano esserci dei duplicati).

3. Formulare in SQL l’interrogazione che fornisce il costo medio della apparecchiatura classi cata

come “Glucometri” e fornita dal fornitore di codice 1234;

Questo fornitore ha più prodotti che corrispondono alla descrizione glucometro. Dobbiamo usare le

relazioni prodotti e catalogo (sia perché cerchiamo il costo medio ma anche perché non vogliamo il costo

medio dei prodotti in generale, ma solo di un prodotto venduto da un particolare fornitore).

SELECT AUG(C.Costo)

FROM Prodotto P, Catalogo C

WHERE C.CodiceProd = P.Codice AND C.CodiceCod=1234 AND P.Descrizione=”Glucometro”

4. Fornire in SQL l’interrogazione che fornisce il numero di prodotti venduti da ogni fornitore.

SELECT C.CodiceForn, COUNT

FROM Catalogo C.

WHERE C.CodiceForn

Dobbiamo usare group by (raggruppati per), l’operatore raggruppa insieme righe omogenee scritte nel

group by Il group by che necessitiamo è il CONTEGGIO

ESERCIZIO

Considerare la seguente base di dati relazionale:

CITTA’ (Nome, Regione, Abitanti)

ATTRAVERSAMENTI (Nome, Fiume)

FIUMI(Fiume, Lunghezza)

1. Formulare in algebra relazionale l’interrogazione che fornisce nome e abitanti per le città che

sono attraversare da umi più lunghi di 100 km nella regione Marche.

Nome e abitanti sono nella relazione città. Il vincolo sulla regione è nella città, il ume è espresso in ume

ma per legarsi hanno bisogno della relazione attraversamenti. Il join è naturale perché gli attributi si

chiamano con lo stesso nome). (

( ⋈ ⋈ ))

2. Formulare in SQL l’interrogazione descritta al punto precedente

SELECT C.Abitanti, C.Nome

FROM Città C, Attraversamenti A, Fiumi F

WHERE C.Nome=A.Nome AND A.Fiume=F.Fiume AND C.Regione=’Marche’ AND F.Lunghezza>100

3. Formulare in SQL

Dettagli
Publisher
A.A. 2023-2024
20 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher alexia0508 di informazioni apprese con la frequenza delle lezioni di Informatica medica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università Politecnica delle Marche - Ancona o del prof Morettini Micaela.