La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

BASI DATI: modello relazionale BIOINGEGNERIA ELETTRONICA ED INFORMATICA Lezione IIIb - AA 2014/20151.

Presentazioni simili


Presentazione sul tema: "BASI DATI: modello relazionale BIOINGEGNERIA ELETTRONICA ED INFORMATICA Lezione IIIb - AA 2014/20151."— Transcript della presentazione:

1 BASI DATI: modello relazionale BIOINGEGNERIA ELETTRONICA ED INFORMATICA Lezione IIIb - AA 2014/20151

2 Il modello relazionale  Il modello relazionale fu introdotto da Codd (1970) e si basa su una semplice ed uniforme struttura dati chiamata relazione, ed ha una solida base teorica  La relazione del modello relazionale NON è la relazione degli schemi E/R  Si introduce tale modello in quanto la maggior parte dei DBMS sono relazionali (e.g. Oracle, Access, MySQL) Lezione IIIb - AA 2014/20152

3 Concetti fondamentali Lezione IIIb - AA 2014/20153  Il modello relazionale rappresenta una base di dati come un insieme di relazioni  Informalmente,  una relazione è (praticamente) una tabella  ciascuna riga della relazione è detta tupla  l’intestazione di una colonna della tabella è chiamata attributo  il tipo di dato che mi specifica ciò che può apparire in ciascuna colonna è detto dominio  Per semplicità (e per non fare confusione) useremo il termine (improprio) tabella al posto del termine (corretto) relazione

4 Dallo schema E/R allo schema relazionale  A partire dallo schema E/R, è possibile costruire la base di dati sotto forma di relazioni  Quali e quante relazioni creare? Lezione IIIb - AA 2014/20154

5 Algoritmo di conversione E/R in relazionale Lezione IIIb - AA 2014/20155 Algoritmo per realizzare lo schema relazionale a partire dallo schema E/R: 1. Per ogni entità E dello schema E/R, crea una relazione R che include tutti gli attributi di E

6 Algoritmo di conversione E/R in relazionale Lezione IIIb - AA 2014/20156 2. Per ogni relazione 1:1 dello schema E/R esistente fra le due entità E1 ed E2, trasforma le due relazioni R1 e R2 (di E1 ed E2) in una unica relazione R12 unendone tutti gli attributi preferendo una chiave primaria sull’altra

7 Algoritmo di conversione E/R in relazionale Lezione IIIb - AA 2014/20157 3. Per ogni relazione 1:n dello schema E/R esistente fra le due entità E1 ed E2, aggiungi la chiave primaria della relazione E2 come attributo nella relazione E1 (chiave esterna)

8 Algoritmo di conversione E/R in relazionale Lezione IIIb - AA 2014/20158 4. Per ogni relazione n:m dello schema E/R, crea una relazione R i cui attributi sono le chiavi primarie dell’entità in relazione (chiavi esterne)

9 Lo schema relazionale del questionario  Sulla base del passo (1) del precedente algoritmo, ottengo le due relazioni (notate l’uso del plurale) 1. studenti(matricola, sesso, eta) 2. questionari (r1, r2, r3, r4, r5, r6, r7, r8, r9)  Il passo (2) ci impone – siccome le due entità sono in relazione 1:1 – di unirle in una unica relazione 1. questionari_studenti(matricola, sesso, eta, r1, r2, r3, r4, r5, r6, r7, r8, r9) Lezione IIIb - AA 2014/20159

10 Lo schema relazionale dello studio ambientale  Passo (1) 1. patologie(codice,DRG, diagnosi principale) 2. pazienti(numero, eta, sesso) 3. sedi_elettorali (numero, distanza, votanti) Lezione IIIb - AA 2014/201510

11 Lo schema relazionale dello studio ambientale  Passo (2) : Non c’è nessuna relazione di tipo 1:1 Lezione IIIb - AA 2014/201511

12 Lo schema relazionale dello studio ambientale  Passo (3) : C’è una unica relazione di tipo 1:n (e.g. risiede) 1. pazienti(numero, eta, sesso, numero_sede_elettorale) Lezione IIIb - AA 2014/201512

13 Lo schema relazionale dello studio ambientale  Passo (4) : C’è una unica relazione di tipo n:m (e.g. soffre) 1. soffre(codice patologia, numero_paziente) Lezione IIIb - AA 2014/201513

14 Lo schema relazionale dello studio ambientale  Si ottiene quindi 1. patologie(codice,DRG, diagnosi principale) 2. sedi_elettorali (numero, distanza, votanti) 3. pazienti(numero, età, sesso, numero_sede_elettorale) 4. soffre(codice patologia, numero paziente) Lezione IIIb - AA 2014/201514

15 Dallo schema E/R allo schema relazionale Lezione IIIb - AA 2014/201515  A partire dallo schema E/R, è possibile costruire la base di dati sotto forma di tabelle, utilizzando un algoritmo «grafico»  Dallo schema E/R, si creano gruppi di entità e/o relazioni come segue:  A partire da una entità o relazione dello schema E/R, si aggregano nel gruppo tutte le relazioni/entità legate con cardinalità unaria massima  Ogni entità o relazione non aggregata deve diventare un nuovo gruppo  I gruppi individuati corrispondono alle tabelle da creare  Gli attributi di ciascuna tabella variano a seconda del «contenuto» del gruppo

16 Algoritmo «grafico» (1)  Partiamo da una qualunque entità e incorporiamo le relazioni/entità quando la cardinalità è di tipo (1,1) Lezione IIIb - AA 2014/201516

17 Algoritmo «grafico» (2)  Anche l’altra entità e la relazione stessa è stata “inglobata” ottenendo un’unica relazione 1. questionari_studenti(matricola, sesso, eta, r1, r2, r3, r4, r5, r6, r7, r8, r9) Lezione IIIb - AA 2014/201517

18 Algoritmo «grafico» (3) Lezione IIIb - AA 2014/201518  Per completare questo passo, è inoltre importante specificare il tipo di dato che verrà usato per memorizzare le istanze dei vari attributi  questionari_studenti(matricola; sesso; eta; r1; r2; r3; r4; r5; r6; r7; r8; r9)  matricola: int  sesso: char(1)  eta: int  r1... r9: int

19 Algoritmo «grafico»: analisi geografica  Partiamo dall’entità «paziente» e procediamo con le relazioni... Lezione IIIb - AA 2014/201519

20 Algoritmo «grafico» analisi geografica  La relazione «risiede» è stata aggregata all’entità «paziente» in un gruppo Lezione IIIb - AA 2014/201520

21 Primo blocco  Entità patologia  Relazione patologie(codice, drg, diagnosi_principale) Lezione IIIb - AA 2014/201521

22 Secondo blocco  Entità sede_elettorale  Relazione: sedi_elettorali (numero, distanza, votanti) Lezione IIIb - AA 2014/201522

23 Quarto blocco  Relazione soffre  soffre(numero_paziente,codice_patologia) Lezione IIIb - AA 2014/201523

24 Conversioni delle entità singole  Per le entità singole patologia e sede elettorale, si creano due relazioni 1. patologie(codice, drg, diagnosi principale) 2. sedi_elettorali (numero, distanza, votanti) Lezione IIIb - AA 2014/201524

25 Conversioni dei gruppi  Per l’entità paziente e la relazione risiede, si crea una relazione 1. pazienti(numero, sesso, eta, numero_sede_elettorale) dove numero_sede_elettorale è una chiave esterna Lezione IIIb - AA 2014/201525

26 Conversioni delle relazioni singole  Per la relazione singola soffre, si crea una relazione 1. soffre(codice patologia, numero paziente) dove la coppia_codice patologia e numero_paziente è la chiave primaria Lezione IIIb - AA 2014/201526

27 Lo schema relazionale Lezione IIIb - AA 2014/201527  Abbiamo identificato quindi quattro tabelle: 1. patologie(codice; drg; diagnosi principale)  codice: int  drg: char(3)  diagnosi_principale: char(50) 2. sedi_elettorali (numero; distanza; votanti)  numero: int  distanza: float  votanti: int 3. pazienti(numero; sesso; eta; numero_sede_elettorale)  numero: int  sesso: char(1)  eta: int  numero_sede_elettorale: int (stesso tipo di sedi_elettorali.numero) 4. soffre(codice patologia; numero paziente)  codice patologia: int (stesso tipo di patologie.codice)  numero paziente: int (stesso tipo di pazienti.numero)

28 Lo schema relazionale  Abbiamo identificato quindi quattro relazioni: 1. patologie(codice, drg, diagnosi principale) 2. sedi_elettorali (numero, distanza, votanti) 3. soffre(codice patologia, numero paziente) 4. pazienti(numero, sesso, eta, numero sede elettorale)  Sono ovviamente le stesse che abbiamo trovato utilizzando l’algoritmo non grafico. Lezione IIIb - AA 2014/201528

29 Esercizio Lezione IIIb - AA 2014/201529 Si desidera modellare la gestione di un ospedale. La base di dati dovrà memorizzare informazioni relative ai pazienti, al ricovero dei pazienti nei reparti ospedalieri, ai trattamenti cui sono sottoposti i pazienti ed alla loro dimissione. Di ogni paziente, vengono registrati il nome, l'indirizzo, il sesso, il numero di carta di identità, il numero della tessera sanitaria, il reparto ove è ricoverato e il letto occupato (reparto e letto possono cambiare durante il periodo di degenza). Di ogni reparto, vengono memorizzati il nome, la localizzazione, il nome del primario responsabile, il nome degli (eventuali) altri medici presenti, il numero delle stanze, il numero di letti presenti per stanza e il numero di letti occupati per stanza. Si vuole inoltre tener traccia delle date di ricovero, di (eventuale) trasferimento da un reparto all'altro e di dimissione dei pazienti. Ogni paziente può essere sottoposto a più trattamenti durante il periodo di degenza ospedaliera. Di ogni trattamento, vengono conservate informazioni relative al nome, alla durata e alle possibili reazioni del paziente.

30 Esercizi Lezione IIIb - AA 2014/201530  Realizzare il database che permette di memorizzare i codici ICD-10  I codici ICD-10 sono organizzati in capitoli, blocchi e patologie. I capitoli hanno una numerazione con numeri romani, i blocchi e le patologie hanno una numerazione alfanumerica  Realizzare il database di una biblioteca  Voglio memorizzare la collocazione di ogni volume. Per ogni volume voglio sapere il tipo (libro, rivista, proceedings, etc.), la casa editrice, e voglio memorizzarne gli autori  Realizzare il database (semplificato) che permette di calcolare le spese – in termini di DRG – all’interno di un ospedale  Voglio memorizzare, per ciascun reparto, i pazienti, la patologia (usando i codici ICD-9-CM), e il DRG assegnato

31 Esempi Lezione IIIb - AA 2014/201531  Si convertano in schema relazionale gli esempi di schemi E/Rintrodotti precedentemente  Codici ICD-10  Biblioteca  Calcolo delle spese - in termini di DRG - all'interno di un ospedale  Valutazione dei servizi ospedalieri  Analisi delle acque

32 Definizioni formali (1) Lezione IIIb - AA 2014/201532

33 Definizioni formali (2) Lezione IIIb - AA 2014/201533

34 Definizioni formali (3) Lezione IIIb - AA 2014/201534

35 Vincoli su schemi relazionali  Un vincolo è una proprietà che deve essere soddisfatta dalle istanze di una base di dati. Ogni vincolo può essere visto come un predicato che può assumere il valore vero o falso: se il predicato assume il valore vero diciamo che l’istanza soddisfa il vincolo. Lezione IIIb - AA 2014/201535

36 Vincoli su schemi relazionali Lezione IIIb - AA 2014/201536

37 Vincoli su schemi relazionali Lezione IIIb - AA 2014/201537

38 Vincoli su schemi relazionali  Un vincolo di integrità referenziale esplicita l’esistenza di una relazione (in terminologia E/R) fra differenti entità  Violare un vincolo di integrità referenziale significa provocare problemi di consistenza, e.g.  L’attributo ICD10 rappresenta la patologia di un paziente ed è chiave esterna verso la tabella delle patologie  Il codice J01.10 non è presente nella tabella delle patologie e viola la seconda proprietà delle chiavi esterne Lezione IIIb - AA 2014/201538

39 Operazioni sulla base di dati e vincoli (1) Lezione IIIb - AA 2014/201539  Inserimento L'inserimento di una tupla in una relazione può violare tutti i tipi di vincoli  Il vincolo di dominio se un valore non e nel dominio del corrispondente attributo  Il vincolo di chiave se il valore della chiave primaria è già presente nella relazione  Il vincolo di integrità di chiave se il valore della chiave primaria e nullo  Il vincolo di integrità referenziale se il valore della chiave esterna non e presente nella relazione referenziata

40 Operazioni sulla base di dati e vincoli (2) Lezione IIIb - AA 2014/201540  Cancellazione La cancellazione di una tupla da una relazione può violare solo il vincolo di integrità referenziale  Si viola il vincolo di integrità referenziale se viene eliminata una riga che e referenziata tramite una chiave esterna di una differente relazione  Modica La modica può essere vista come una operazione di cancellazione seguita da un inserimento  Si fa notare che la modica di attributi che non siano ne chiave primaria ne chiave esterna non provocano problemi

41 Dipendenze funzionali Lezione IIIb - AA 2014/201541

42 Dipendenze funzionali e problemi di consistenza Lezione IIIb - AA 2014/201542  La risoluzione di problemi potenzialmente causabili dall'esistenza di dipendenze funzionali devono essere risolte normalizzando la base di dati  Normalizzazione. La normalizzazione è il processo per cui schemi relazionali non soddisfacenti vengono decomposti, dividendone gli attributi in dipendenza funzionale, e creando schemi relazionali più piccoli dotati delle proprietà richieste

43 Seconda forma normale (2NF) Lezione IIIb - AA 2014/201543  Uno schema relazionale è in seconda forma normale (2NF) se nessun attributo A e in dipendenza funzionale con la chiave primaria PK  Prendiamo l'esempio di una relazione che mi rappresenta i pazienti curati dai medici di un reparto

44 Normalizzazione in seconda forma normale Lezione IIIb - AA 2014/201544  Per normalizzare una relazione in 2NF, è necessario rimuovere dalla relazione tutti gli attributi in dipendenza funzionale e posizionarli in una relazione separata

45 Terza forma normale (3NF) Lezione IIIb - AA 2014/201545

46 Terza forma normale (3NF) Lezione IIIb - AA 2014/201546


Scaricare ppt "BASI DATI: modello relazionale BIOINGEGNERIA ELETTRONICA ED INFORMATICA Lezione IIIb - AA 2014/20151."

Presentazioni simili


Annunci Google