220 likes | 665 Views
Istituto Tecnico Commerciale Statale “G. Dell’Olio Bisceglie. IL MODELLO RELAZIONALE. Informatica gestionale – Indirizzo Mercurio. RELAZIONI. A= {Giovanni, Mario, Luigi, Andrea} 4 elementi B= {Elena, Anna} 2 elementi Si può formare il prodotto cartesiano (8 coppie):
E N D
Istituto Tecnico Commerciale Statale “G. Dell’Olio Bisceglie IL MODELLO RELAZIONALE Informatica gestionale – Indirizzo Mercurio
RELAZIONI A={Giovanni, Mario, Luigi, Andrea} 4 elementi B={Elena, Anna} 2 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 Riga o N-upla o Tupla cardinalità grado
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
Operazioni relazionali: SELEZIONE ARTICOLI La selezione genera una nuova relazione costituita solo dalle n-uple (le righe) che soddisfano una determinata condizione SELEZIONE DI ARTICOLI PER COLORE=“ROSSO”; SELECT * FROM ARTICOLI WHERE COLORE=“ROSSO”;
Operazioni relazionali: PROIEZIONE ARTICOLI La proiezione genera una nuova relazioneestraendo solo alcune colonne PROIEZIONE DI ARTICOLI SU CODICE, DESCRIZIONE; SELECT CODICE, DESCRIZIONE FROM ARTICOLI;
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 naturalese 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-JOINse dalla tabella del verso 1 si prendono comunque tutte le righeRIGHT-JOIN se dalla tabella del verso MOLTI si prendono comunque tutte le righeFULL-JOIN se da entrambe le tabelle si prendono tutte le righe SELF JOIN Righe di una tabella vengono combinate con righe della stessa tabella
Operazioni relazionali: CONGIUNZIONE ARTICOLI INNER JOIN (join interno) FORNITORI 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
Operazioni relazionali: EQUI-JOIN ARTICOLI FORNITORI CONGIUNZIONE DI ARTICOLI SU CODFORNITORE E DI FORNITORI SU CODICE; ARTICOLI INNER JOIN FORNITORI SELECT articoli.codice, descrizione, colore, codfornitore, nominativo FROM articoli INNER JOIN fornitoriON articoli.codfornitore=fornitori.codice;
Operazioni relazionali: CONGIUNZIONE ARTICOLI OUTER JOIN (join esterno) FORNITORI 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 righeRIGHT-JOIN se dalla tabella del verso MOLTI si prendono comunque tutte le righeFULL-JOIN se da entrambe le tabelle si prendono tutte le righe
Operazioni relazionali: LEFT-JOIN ARTICOLI FORNITORI dalla tabella del verso 1 si prendono tutte le righe FORNITORI ARTICOLI ARTICOLI LEFT JOIN FORNITORI SELECT articoli.codice, descrizione, colore, codfornitore, nominativo FROM articoli LEFT JOIN fornitoriON articoli.codfornitore=fornitori.codice;
Operazioni relazionali: RIGHT-JOIN ARTICOLI FORNITORI dalla tabella del verso Molti si prendono tutte le righe FORNITORI ARTICOLI ARTICOLI LEFT JOIN FORNITORI SELECT articoli.codice, descrizione, colore, codfornitore, nominativo FROM articoli RIGHT JOIN fornitoriON articoli.codfornitore=fornitori.codice;
Operazioni relazionali: FULL-JOIN ARTICOLI FORNITORI Da entrambe le tabelle si prendono tutte le righe FORNITORI ARTICOLI ARTICOLI FULL JOIN FORNITORI In ACCESS non lo si può ottenere con una query semplice
Operazioni relazionali: SELF-JOIN MEDICI 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;
NORMALIZZAZIONE 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 PRIMA FORMA NORMALE http://groups.msn.com/ProgrammazioneVisualBasic-Net/programmazionedatabasepag2.msnw
NORMALIZZAZIONE 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 opere http://groups.msn.com/ProgrammazioneVisualBasic-Net/programmazionedatabasepag2.msnw
NORMALIZZAZIONE In una tabella nessun attributo deve dipendere da un altro attributo che non sia chiave primaria TERZA FORMA NORMALE filiali http://groups.msn.com/ProgrammazioneVisualBasic-Net/programmazionedatabasepag2.msnw