BASI DATI: algebra relazionale - sira.diei.unipg.it ed Informatica... · PDF fileBASI...

Click here to load reader

  • date post

    15-Feb-2019
  • Category

    Documents

  • view

    215
  • download

    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