La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Modello Relazionale : valori nulli Un valore nullo è diverso da ogni altro valore: t4[CODDOC]t5[CODDOC] nullMeccanicaC5 D2Analisi 1C2 D1Fisica 2C3 nullStoriaC6.

Presentazioni simili


Presentazione sul tema: "1 Modello Relazionale : valori nulli Un valore nullo è diverso da ogni altro valore: t4[CODDOC]t5[CODDOC] nullMeccanicaC5 D2Analisi 1C2 D1Fisica 2C3 nullStoriaC6."— Transcript della presentazione:

1 1 Modello Relazionale : valori nulli Un valore nullo è diverso da ogni altro valore: t4[CODDOC]t5[CODDOC] nullMeccanicaC5 D2Analisi 1C2 D1Fisica 2C3 nullStoriaC6 D2Analisi 2C4 D1Fisica 1C1 CODDOCNOMECODCO R CORSO t1 t2 t3 t4 t5 t6 Due valori nulli sono diversi tra di loro: t5[CODDOC]t6[CODDOC] Nei nostri schemi relazionali, come in SQL, se non specificato diversamente, assumeremo che un attributo possa assumere dei valori null vincolo NOT NULL : NOME NOT NULL

2 2 Modello Relazionale : Vincolo di Entity Integrity t6[CODCOR]t7[CODCOR] : la definizione di chiave è rispettata! nullMeccanicaC5 D2Analisi 1C2 D1Fisica 2C3 nullMusicanull D3Storianull D2Analisi 2C4 D1Fisica 1C1 CODDOCNOMECODCO R CORSO t1 t2 t3 t4 t5 t6 t7 … però non posso identificare t6 e t7 ==> Vincolo di Entity Integrity

3 3 CORSO CODCORNOMECODDOC C1Fisica 1D1 C2Analisi 1D2 C3Fisica 2D1 C4Analisi 2D2 C5Meccanicanull Modello Relazionale : Key e Foreign Key DOCENTE CODDOCCFCITTA D1CF1MO D2CF2BO D3CF3MO D4CF4Fi Key Foreign Key ==> una foreign key può essere nulla

4 4 DOCENTE (CODDOC, CF, CITTÀ) AK: CF CODDOC : chiave primaria CF : chiave alternativa CHIAVE PRIMARIA e CHIAVE ALTERNATIVA SQL (In Laboratorio) fornisce Primary Key Foreign Key … References Ma non Alternative Key (AK) Che verrà realizzato tramite NOT NULL + UNIQUE

5 5 CORSO (CODCOR,NOME,CODDOC) FK: CODDOC REFERENCES DOCENTE(CODDOC) dove: CORSO:relazione/tabella dipendente o correlata DOCENTE: relazione/tabella riferita o primaria Essendo CODDOC la chiave primaria della relazione riferita DOCENTE, si può omettere in DOCENTE(CODDOC) CORSO (CODCOR,NOME,CODDOC) FK: CODDOC REFERENCES DOCENTE NOTAZIONE DEL VINCOLO DI INTEGRITÀ REFERENZIALE

6 6 DOCENTE (CODDOC, CF, CITTÀ) AK: CF ESEMPI DI SCHEMI RELAZIONALI CORSO (CODCOR,NOME,CODDOCENTEDELMIOCORSO) FK: CODDOCENTEDELMIOCORSO REFERENCES DOCENTE TASSE(ANNO,CFDOCENTE,IMPORTO) FK: CFDOCENTE REFERENCES DOCENTE(CF)

7 7 DOCENTE (CODDOC, CF, CITTÀ) AK: CF ESEMPI DI SCHEMI RELAZIONALI CORSO (CODCOR,NOME,CODDOC) FK: CODDOC REFERENCES DOCENTE ESAME(MATRSTUD,CORSO,VOTO,DATA) FK: MATRSTUD REFERENCES STUDENTE FK: CORSO REFERENCES CORSO STUDENTE (MATR,NOME) DOMANDEESAME(NUMDOM,MATRSTUD,CORSO,GIUDIZIO) FK: MATRSTUD,CORSO REFERENCES ESAME Lordine è importante: non posso scrivere DOMANDEESAME(NUMDOM,MATRSTUD,CORSO,GIUDIZIO) FK: CORSO,MATRSTUD REFERENCES ESAME

8 8 ESEMPI DI SCHEMI RELAZIONALI Per riferirmi ad ESAME devo usare la sua chiave: DOMANDEESAME(NUMDOM,MATRSTUD,CORSO,GIUDIZIO) FK: MATRSTUD,CORSO REFERENCES ESAME e non le singole componenti della chiave di ESAME: DOMANDEESAME(NUMDOM,MATRSTUD,CORSO,GIUDIZIO) FK: MATRSTUD REFERENCES STUDENTE FK: CORSO REFERENCES CORSO anche ripeterle è un errore (ridondanza): DOMANDEESAME(NUMDOM,MATRSTUD,CORSO,GIUDIZIO) FK: MATRSTUD,CORSO REFERENCES ESAME FK: MATRSTUD REFERENCES STUDENTE FK: CORSO REFERENCES CORSO

9 9 ESEMPI DI SCHEMI RELAZIONALI IMPIEGATO(CODIMP,SEDE,CODCAPO) FK: CODCAPO REFERENCES IMPIEGATO IMPIEGATO CODIMPSEDECODCAPO C1Centralenull C2AutoC! C3AutoC! C4MotoriC2 C5MotoriC2 C6MotoriC5

10 10 ESEMPI DI SCHEMI RELAZIONALI IMPIEGATO(CODIMP,CODREPARTO) FK: CODREPARTO REFERENCES REPARTO REPARTO(CODREP,CODCAPOREPARTO) FK: CODCAPOREPARTO REFERENCES IMPIEGATO Nello schema relazionale lordine delle relazioni è irrilevante. In SQL quando ci si riferisce ad una relazione, tale relazione deve già esistere, ovvero deve essere stata già creata Nei casi ciclici come il precedente: prima si definisce una relazione senza FK, poi laltra con FK e quindi si aggiunge La FK alla prima tramite ALTER TABLE

11 11 VISTE ESAME(MATR,NOMECORSO,VOTO) VISTA_ESAME(NOMECORSO,VOTO) SELECT NOMECORSO,VOTO FROM ESAME Query VISTA_ESAME ESAME(MATR,DOCENTE,VOTO) DOCENTE(DOCENTE,NOMECORSO) Nuovo Schema SELECT NOMECORSO,VOTO FROM ESAME JOIN DOCENTE ON (ESAME.DOCENTE = DOCENTE.DOCENTE) Query VISTA_ESAME


Scaricare ppt "1 Modello Relazionale : valori nulli Un valore nullo è diverso da ogni altro valore: t4[CODDOC]t5[CODDOC] nullMeccanicaC5 D2Analisi 1C2 D1Fisica 2C3 nullStoriaC6."

Presentazioni simili


Annunci Google