BASI DATI: algebra relazionale - sira.diei.unipg.it ed Informatica... · PDF fileBASI...
date post
15-Feb-2019Category
Documents
view
215download
0
Embed Size (px)
Transcript of BASI DATI: algebra relazionale - sira.diei.unipg.it ed Informatica... · PDF fileBASI...
BASI DATI: algebra relazionale
BIOINGEGNERIA ED INFORMATICA MEDICA
Lezione IV - BioIngInfMed 1
Algebra relazionale Definizione
L'algebra relazionale un insieme di operazioni (query) che servono per manipolare relazioni (tabelle). In altri termini, l'algebra relazionale la formalizzazione matematica del modo in cui possibile estrarre da un database le informazioni di interesse.
1. Operazione di selezione (condizione sul valore della tupla)
2. Operazione di proiezione (sottoinsieme di attributi della tupla)
3. Operazioni insiemistiche (unione, intersezione, differenza)
4. Operazione di join
Lezione IV - BioIngInfMed 2
L'operatore di selezione (1)
Lezione IV - BioIngInfMed 3
Selezione
L'operatore di selezione usato per selezionare da una relazione un sottoinsieme di tuple che soddisfano un
certo criterio
Una operazione di selezione si specifica tramite la
seguente espressione:
()
Una operazione di selezione, quindi, restituisce una
relazione con il medesimo schema, ma con le sole
tuple che soddisfano la condizione
L'operatore di selezione (2)
Lezione IV - BioIngInfMed 4
Ad esempio, consideriamo di voler selezionare il
questionario dello studente di matricola '120142
=120141(_)
L'operatore di selezione (3)
Lezione IV - BioIngInfMed 5
Ad esempio, consideriamo di voler selezionare i
questionari delle ragazze
=(_)
L'operatore di selezione (4)
Lezione IV - BioIngInfMed 6
Ad esempio, consideriamo di voler selezionare i
questionari delle ragazze con meno di 30 anni
=
L'operatore di proiezione (1)
Lezione IV - BioIngInfMed 7
Proiezione
L'operazione di proiezione seleziona dalla relazione solo le colonne specificate
Una operazione di proiezione si specifica tramite la
seguente espressione:
()
Una operazione di proiezione, quindi, restituisce una
relazione con differente schema, ma con le stesse
tuple della relazione originaria
L'operatore di proiezione (2)
Lezione IV - BioIngInfMed 8
Ad esempio, consideriamo l'operazione seguente (i.e.
restituisci le colonne matricola e r1)
,1(_)
Sequenze di operatori
Lezione IV - BioIngInfMed 9
Ad esempio, consideriamo l'operazione seguente (i.e. restituisci le colonne
matricola e r1 dalle tuple in cui il sesso f )
,1(=(_))
Operazione di join (1)
Join
L'operazione di join viene usata per combinare tuple
provenienti da pi relazioni in uniche tuple, secondo un
determinato criterio
Una operazione di join si specifica tramite la seguente
espressione:
Lezione IV - BioIngInfMed 10
Operazione join (2)
Lezione IV - BioIngInfMed 11
Ad esempio, consideriamo l'operazione seguente (i.e.
restituisci tutte le informazioni circa i pazienti e le
rispettive sedi elettorali)
Natural join (1)
L'operatore di join e fondamentale perch permette di reperire informazioni che sono contenute in relazioni tra loro collegate tramite chiavi esterne
In tal caso, possibile ricorrere al natural join
Il natural join - essenzialmente - il join su tabelle collegate secondo quanto espresso dal vincolo di integrit referenziale
Lezione IV - BioIngInfMed 12
Natural join (2)
Lezione IV - BioIngInfMed 13
Siccome pazienti.numero sede elettorale chiave
esterna per sedi elettorali.numero, allora
Come si compone una query
Lezione IV - BioIngInfMed 14
Una query in algebra relazionale si pu sempre scrivere
come:
((1 2 ))
Per comporre una query in algebra relazionale:
1. Identificare le tabelle che contengono i dati oggetto
della query, e metterle nei natural join
2. Identificare la parte della query che rappresenta il
criterio di selezione delle righe
3. Identificare la parte della query che specifica quali
attributi vogliamo ottenere in uscita tramite
proiezione
Esempi di query in algebra relazionale (1)
Lezione IV - BioIngInfMed 15
1. Una sola tabella coinvolta nella query: pazienti
2. Il criterio di selezione indica i soli maschi: sesso='m'
3. Voglio tutti gli attributi: nessun
Esempi di query in algebra relazionale (2)
Lezione IV - BioIngInfMed 16
1. Una sola tabella coinvolta nella query: pazienti
2. Il criterio di selezione indica una et < di 30: eta < 30
3. Voglio il solo sesso come attributo: sesso
Esempi di query in algebra relazionale (3)
Lezione IV - BioIngInfMed 17
1. Due tabelle sono
coinvolte nella query:
pazienti, sedi elettorali
2. Il criterio di selezione
indica il sesso femminile:
sesso='f'
3. Voglio il solo sesso come
attributo: eta, distanza
Esempi di query in algebra relazionale (4)
Lezione IV - BioIngInfMed 18
Et e distanza dall'azienda chimica di tutti i pazienti di sesso
feminile
Esempi di query in algebra relazionale (4)
Lezione IV - BioIngInfMed 19
Esempi di query in algebra relazionale (4)
Lezione IV - BioIngInfMed 20
Esempi di query in algebra relazionale (4)
Lezione IV - BioIngInfMed 21
Esempi di query in algebra relazionale (5)
Lezione IV - BioIngInfMed 22
1. Tre tabelle sono coinvolte
nella query: pazienti,soffre,
patologie (N.B. anche le
tabelle intermedie devono
essere considerate)
2. Il criterio di selezione non
specificato: nessun
3. Voglio l'et, il sesso e il DRG
come attributi: eta, sesso,
DRG
Esempi di query in algebra relazionale (6)
Lezione IV - BioIngInfMed 23
Eta, sesso e DRG di tutti i pazienti
Esempi di query in algebra relazionale (6)
Lezione IV - BioIngInfMed 24
Esempi di query in algebra relazionale (6)
Lezione IV - BioIngInfMed 25
Esempi di query in algebra relazionale (6)
Lezione IV - BioIngInfMed 26
SQL
SQL (Structured Query Language)
Linguaggio standard usato da ogni DBMS per
linterrogazione dei dati
Pu
Creare/distruggere database
Creare/alterare/distruggere tabelle
Inserire/rimuovere dati
Interrogare la base di dati
Lezione IV - BioIngInfMed 27
SELECT
Il comando SQL per estrarre dati da un DB la
SELECT
La SELECT si compone di (almeno) tre parti
Gli attributi da restituire
Le tabelle da cui estrarre i dati
Il criterio di selezione
... pi eventuali indicazioni circa lordinamento, etc.
Lezione IV - BioIngInfMed 28
SELECT
La forma di una SELECT
Lezione IV - BioIngInfMed 29
L'SQL e l'algebra relazionale
Lezione IV - BioIngInfMed 30
Data una query scritta in algebra relazionale,
possibile scrivere la corrispondente query in SQL
seguendo il seguente schema:
1. Gli attributi del diventano gli attributi della parte SELECT
2. Le tabelle messe in * si elencano nella lista delle tabelle
della parte FROM
3. Il criterio di selezione e le condizioni di natural join
diventano il criterio della parte WHERE
Le condizioni di natural join sono l'equivalenza della chiave
primaria con la chiave esterna della tabella collegata dal
join
Pazienti maschi
Lezione IV - BioIngInfMed 31
Il sesso dei pazienti di et inferiore ai 30
anni
Lezione IV - BioIngInfMed 32
Paziente e distanza
Quando esistono delle omonimie, necessario specificare da quale
relazione preleviamo gli attributi
Lezione IV - BioIngInfMed 33
Paziente e DRG
Lezione IV - BioIngInfMed 34
Conteggio di tuple
Lezione IV - BioIngInfMed 35
Valori medi
Lezione IV - BioIngInfMed 36
Raggruppamento
Lezione IV - BioIngInfMed 37
Ultima query
Lezione IV - BioIngInfMed 38
Esercizio
Lezione IV - BioIngInfMed 39
Si progetti una base di dati che contenga le informazioni necessarie per la gestione dellagenda degli appuntamenti di un medico di base.
Il sistema a cui si sta pensando deve consentire al medico di: gestire gli appuntamenti dal luned al venerd, a partire dalle ore 8:00 alle ore
19:00. (fissare gli appuntamenti, visionare gli appuntamenti, rimuovere un appuntamento); ogni appuntamento dura 1 ora.
gestire le informazioni ricevute dal telefono durante la conversazione telefonica
gestire le informazioni relative alle prescrizioni terapeutiche
annotare i dati dei pazienti allinterno dellagenda, per poter gestire gli appuntamenti di una intera settimana. Per ogni paziente si dovranno memorizzare il nome, cognome,l anno di nascita;
Il sistema dovr fornire al medico: 1. la lista dei pazienti visitati nel mese precedente
2. la lista degli appuntamenti presi per il mese corrente
3. per ogni paziente la lista di tutti gli appuntamenti presi e delle visite eseguite
4. la lista dei farmaci prescritti
5. selezionato il paziente Pippo, la lis