La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

IL MODELLO RELAZIONALE

Presentazioni simili


Presentazione sul tema: "IL MODELLO RELAZIONALE"— Transcript della presentazione:

1 IL MODELLO RELAZIONALE
Istituto Tecnico Commerciale Statale “G. Dell’Olio Bisceglie IL MODELLO RELAZIONALE Informatica gestionale – Indirizzo Mercurio

2 RELAZIONI marito moglie Giovanni Anna Luigi Elena
A={Giovanni, Mario, Luigi, Andrea} 4 elementi B={Elena, Anna} elementi Si può formare il prodotto cartesiano (8 coppie): AxB={ (Giovanni; Elena), (Giovanni; Anna), (Mario; Elena), (Mario; Anna), (Luigi; Elena), (Luigi; Anna), (Andrea; Elena), (Andrea; Anna) } La relazione “x è sposato con y” è uno dei possibili sottinsiemi del prodotto AxB marito moglie Giovanni Anna Luigi Elena Riga o N-upla o Tupla cardinalità grado

3 Dal modello ER (MODELLO CONCETTUALE) alle relazioni (MODELLO LOGICO)
 Ogni entità diventa una relazione  Ogni associazione uno a molti comporta che si introduca una chiave esterna  Ogni associazione molti a molti diventa una nuova relazione REGOLE DI INTEGRITA’ REFERENZIALE FORNITORI ARTICOLI Non è possibile immettere un valore nel campo chiave esterna della tabella correlata che non esiste nella chiave primaria della tabella primaria. È possibile, comunque, immettere un valore Null nella chiave esterna, specificando che i record non sono correlati Non è possibile modificare un valore chiave primaria nella tabella primaria, se quel record dispone di record correlati Non è possibile eliminare un record da una tabella primaria, se esistono record corrispondenti in una tabella correlata è possibile specificare se si desidera utilizzare automaticamente le opzioni di aggiornamento a catena e di eliminazione a catena per i record correlati

4 Operazioni relazionali: SELEZIONE
ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 La selezione genera una nuova relazione costituita solo dalle n-uple (le righe) che soddisfano una determinata condizione SELEZIONE DI ARTICOLI PER COLORE=“ROSSO”; codice descrizione colore Codfornitore C01 C35 Cartella A4 Agenda Rosso F01 SELECT * FROM ARTICOLI WHERE COLORE=“ROSSO”;

5 Operazioni relazionali: PROIEZIONE
ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 La proiezione genera una nuova relazione estraendo solo alcune colonne codice descrizione C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda PROIEZIONE DI ARTICOLI SU CODICE, DESCRIZIONE; SELECT CODICE, DESCRIZIONE FROM ARTICOLI;

6 Operazioni relazionali: CONGIUNZIONE
La congiunzione combina 2 relazioni aventi un attributo in comune generando una nuova relazione INNER JOIN (join interno) si abbinano le sole righe con valori identici negli attributi comuni JOIN naturale se gli attributi hanno stesso nome, es codfornitore e codfornitore EQUI-JOIN se gli attributi hanno nomi diversi, es codfornitore e codice OUTER JOIN (join esterno) si abbinano tutte le righe anche se non sono presenti valori identici negli attributi comuni LEFT-JOIN se dalla tabella del verso 1 si prendono comunque tutte le righe RIGHT-JOIN se dalla tabella del verso MOLTI si prendono comunque tutte le righe FULL-JOIN se da entrambe le tabelle si prendono tutte le righe SELF JOIN Righe di una tabella vengono combinate con righe della stessa tabella

7 Operazioni relazionali: CONGIUNZIONE
ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 INNER JOIN (join interno) FORNITORI codice nominativo F01 F02 F03 Alberto Mario Cicoria Fabio Marino Vito La congiunzione combina 2 relazioni aventi un attributo in comune generando una nuova relazione in cui ◙ compaiono gli attributi (le colonne) di entrambe le relazioni ◙ si abbinano le sole righe con valori identici negli attributi comuni JOIN naturale se gli attributi hanno stesso nome, es codfornitore e codfornitore EQUI-JOIN se gli attributi hanno nomi diversi, es codfornitore e codice

8 Operazioni relazionali: EQUI-JOIN
ARTICOLI FORNITORI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 codice nominativo F01 F02 F03 Alberto Mario Cicoria Fabio Marino Vito CONGIUNZIONE DI ARTICOLI SU CODFORNITORE E DI FORNITORI SU CODICE; ARTICOLI INNER JOIN FORNITORI codice descrizione colore Codfornitore nominativo C01 C15 C21 C08 Cartella A4 Penna biro Raccoglitore Cartella cuoio Rosso Blu Verde Marrone F01 F02 Alberto Mario Cicoria Fabio SELECT articoli.codice, descrizione, colore, codfornitore, nominativo FROM articoli INNER JOIN fornitori ON articoli.codfornitore=fornitori.codice;

9 Operazioni relazionali: CONGIUNZIONE
ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 OUTER JOIN (join esterno) FORNITORI codice nominativo F01 F02 F03 Alberto Mario Cicoria Fabio Marino Vito La congiunzione combina 2 relazioni aventi un attributo in comune generando una nuova relazione in cui ◙ compaiono gli attributi (le colonne) di entrambe le relazioni ◙ si abbinano tutte le righe anche se non sono presenti valori identici negli attributi comuni LEFT-JOIN se dalla tabella del verso 1 si prendono comunque tutte le righe RIGHT-JOIN se dalla tabella del verso MOLTI si prendono comunque tutte le righe FULL-JOIN se da entrambe le tabelle si prendono tutte le righe

10 Operazioni relazionali: LEFT-JOIN
ARTICOLI FORNITORI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 codice nominativo F01 F02 F03 Alberto Mario Cicoria Fabio Marino Vito dalla tabella del verso 1 si prendono tutte le righe FORNITORI ARTICOLI ARTICOLI LEFT JOIN FORNITORI codice descrizione colore Codfornitore nominativo C01 C15 C21 C08 Cartella A4 Penna biro Raccoglitore Cartella cuoio Rosso Blu Verde Marrone F01 F02 F03 Alberto Mario Cicoria Fabio Marino Vito SELECT articoli.codice, descrizione, colore, codfornitore, nominativo FROM articoli LEFT JOIN fornitori ON articoli.codfornitore=fornitori.codice;

11 Operazioni relazionali: RIGHT-JOIN
ARTICOLI FORNITORI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 codice nominativo F01 F02 F03 Alberto Mario Cicoria Fabio Marino Vito dalla tabella del verso Molti si prendono tutte le righe FORNITORI ARTICOLI ARTICOLI LEFT JOIN FORNITORI codice descrizione colore Codfornitore nominativo C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 Alberto Mario Cicoria Fabio SELECT articoli.codice, descrizione, colore, codfornitore, nominativo FROM articoli RIGHT JOIN fornitori ON articoli.codfornitore=fornitori.codice;

12 Operazioni relazionali: FULL-JOIN
ARTICOLI FORNITORI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 codice nominativo F01 F02 F03 Alberto Mario Cicoria Fabio Marino Vito Da entrambe le tabelle si prendono tutte le righe FORNITORI ARTICOLI ARTICOLI FULL JOIN FORNITORI codice descrizione colore Codfornitore nominativo C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Rosso Blu Verde Marrone F01 F02 F03 Alberto Mario Cicoria Fabio Marino Vito In ACCESS non lo si può ottenere con una query semplice

13 Operazioni relazionali: SELF-JOIN
MEDICI codice ruolo cognome nome codprimario m1 assistente lovero anna m6 m2 marini valeria m3 luisi carlo m4 primario mancini bianca m7 m5 linuzzi luigi mondelli giovanni dirigente franci francesco Righe di una tabella vengono combinate con righe della stessa tabella SELECT medici.codice, medici.ruolo, medici.cognome, medici.nome, medici.codprimario, medici_1.cognome AS [cognome primario], medici_1.nome AS [nome primario] FROM medici LEFT JOIN medici AS medici_1 ON medici.codprimario = medici_1.codice; codice ruolo cognome nome codprimario cognome primario nome primario m1 assistente lovero anna m6 mondelli giovanni m2 marini valeria m3 luisi carlo m4 primario mancini bianca m7 franci francesco m5 linuzzi luigi dirigente

14 NORMALIZZAZIONE PRIMA FORMA NORMALE
E’ il processo di trasformazione dei dati esistenti nella forma relazionale; tale processo si basa su diversi passaggi. una tabella non deve avere attributi che contengono una molteciplità di valori PRIMA FORMA NORMALE ordini abitazioni cliente ordine        36       11   54  89  205  25  143 civico piano        2        2 15 1 PRIMA FORMA NORMALE  ordine  cliente  11  36  54  89  25  205  143  piano  civico  1 2 1 15 3

15 NORMALIZZAZIONE SECONDA FORMA NORMALE
Se una tabella ha una chiave primaria composta da più attributi, allora tutti gli attributi di una riga devono dipendere dall'intera chiave primaria SECONDA FORMA NORMALE opera artista Anno produzione Anno nascita La primavera Botticelli   1477  1445 L’adorazione dei Magi Botticelli  1476 La Vergine della melagrana 1487 1445 L’urlo Munch 1893 1863 opere opera artista Anno produzione La primavera Botticelli   1477 L’adorazione dei Magi Botticelli  1476 La Vergine della melagrana 1487 L’urlo Munch 1893 artista Anno nascita Botticelli   1445 Botticelli 1445 Munch 1863

16 NORMALIZZAZIONE TERZA FORMA NORMALE
In una tabella nessun attributo deve dipendere da un altro attributo che non sia chiave primaria TERZA FORMA NORMALE filiali codfiliale indirizzo città CAP Num abitanti C01 Via Piave   Napoli 80100 C02 Via Milano   C03 Via Delfini Napoli Via Bolzano Bologna 40100 codfiliale indirizzo città C01 Via Piave   Napoli C02 Via Milano C03 Via Delfini Napoli Via Bolzano Bologna città CAP Num abitanti  Napoli 80100   Napoli Bologna 40100


Scaricare ppt "IL MODELLO RELAZIONALE"

Presentazioni simili


Annunci Google