La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Presentazioni simili


Presentazione sul tema: "Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente."— Transcript della presentazione:

1 Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente tanto sui sistemi grandi quanto sugli elaboratori personali. Definizione: I meccanismi per definire database con il modello relazionale sono lennupla (o record) e la relazione (o tabella): – una relazione R è definita da un insieme finito di coppie (campi) della forma T = (A 1 : T 1, A 2 :T 2,…, A k :T k ) dove gli A i sono detti attributi e i T i sono tipi elementari –lo schema di una base di dati è un insieme di relazione Ri(Ti); – unistanza di una relazione R(T) è un insieme finito di ennuple di tipo T, cioe di oggetti della forma (A1:v 1, A:v 2, …, A k :v k ) dove i v i sono di tipo T i Modello relazionale

2 Esempio: relazione Studenti Schema Relazione Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int) Istanza di Studenti 1980PI175649Bonini 1078LI179856Bianchi 1975LU167459Rossi 1980PI171523Isaia AnnoNascitaProvinciaMatricolaNome Per semplicità una relazione si rappresenta come una tabella le cui colonne rappresentano gli attributi della relazione e le righe le ennuple della relazione. ennupla attributo Valore di attributo Modello relazionale

3 Chiavi Chiave Un insieme di campi di una tabella è una chiave se per ogni istanza di tale tabella non esistono due record che coincidano su tutti i valori di tali campi. Chiave primaria: una delle chiavi, in genere la più corta –Esempio: (Matricola) e (Nome,Indirizzo) sono chiavi in Studenti(Matricola: Int, Nome: String, Indirizzo: String) Modello relazionale

4 Associazioni Associazione tra ennuple –rappresentata attraverso i valori di un insieme di attributi (chiave esterna), che assume come valori quelli della chiave primaria di unaltra relazione. Es. NomeMatricolaProvinciaAnnoNascita Isaia171523PI1980 MateriaCandidatoDataVoto BD /01/0129 Studenti Esami Modello relazionale

5 Associazione: esempio Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int) Esami(Materia: string, Candidato*: string, Data: string, Voto: int) Studenti Esami 1980PI175649Bonini 1078LI179856Bianchi 1975LU167459Rossi 1980PI171523Isaia AnnoNascitaProvinciaMatricolaNome 3013/02/ FP 1811/02/ LMM 2515/01/ BD 3015/01/ BD 2812/01/ BD VotoDataCandidato * Materia Studenti Esami Modello relazionale Nome Matricola Provincia AnnoNascita Materia Data Voto

6 Schema grafico relazionale Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int) Esami(Materia: string, Candidato*: string, Data: string, Voto: int) EsamiStudenti Nome Matricola Provincia AnnoNascita Materia Candidato * Data Voto Legenda: AB In B cè una chiave esterna per A Modello relazionale

7 Esempio: altre soluzioni 1/2 Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int, Esame*:int) Esami(Codice :int, Materia: string, Data: string, Voto: int) EsamiStudenti Nome Matricola Provincia AnnoNascita Materia Codice Data Voto Esame * Modello relazionale

8 Esempio: altre soluzioni 2/2 Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int) Esami(Codice :int, Materia: string, Data: string, Voto: int) StudentiEsami(Esame*: int, Candidato*: string) Esami Materia Codice Data Voto Studenti Nome Matricola Provincia AnnoNascita StudentiEsami Candidato*Esame * Modello relazionale

9 Trasf. di schemi ER in relazionali Il modello relazionale non si presta alla modellazione concettuale per la sua povertà espressiva –Attributi con tipi elementari –Associazioni con chiavi esterne, (1:1) o (0:n)? Quindi: –Si modella con diagrammi ER –Regole di trasformazione da ER a formalismo grafico relazionale Conversione ER-relazionale

10 Passi di trasformazione Passi di trasformazione: –Trasf. associazioni 1:1 e 0:n –Trasf. associazioni n:n –Trasf. Gerarchie di inclusione –Identificazione chiavi primarie –Trasf. attributi multivalore –Appiattimento attributi composti Scopo: –Rappresentare le stesse informazioni –Minimizzare la ridondanza –Schema comprensibile –Evitare sprechi di memoria Conversione ER-relazionale

11 Associazioni 0:n StudentiEsami Studenti Regola Chiave esterna aggiunta alla tabella con associazione univoca Conversione ER-relazionale Materia Data Voto Nome Matricola Provincia AnnoNascita Nome Matricola Provincia AnnoNascita Materia Candidato * Data Voto

12 Associazioni 1:1 ProfessoriFacolta Professori Facolta Conversione ER-relazionale Regola Chiave esterna aggiunta a una qualsiasi delle due tabelle coinvolte (precedenza al vincolo di totalità) DirettaDa DirettoreDi Nome idFacolta Indirizzo Nome idProfessore Provincia AnnoNascita Nome idFacolta Direttore * Indirizzo

13 Associazioni unarie Persone compagnoDi Conversione ER-relazionale Nome idPersona Provincia AnnoNascita Nome idPersona Provincia AnnoNascita Compagno * Regola Si aggiunge una chiave esterna alla tabella stessa

14 Associazioni n:n CCorrentiPersone Persone-CCCCorrenti Conversione ER-relazionale Nome idPersona idConto Saldo Nome idPersona idConto Saldo idPersona * idConto * Regola Si aggiunge una terza tabella che contiene le chiavi esterne relative alle due tabelle coinvolte.

15 Associazione con proprietà UtentiLibri Utenti Data Conversione ER-relazionale Regola Attributi aggiunti alla tabella con chiave esterna, oppure ad una terza tabella con due chiavi esterne Titolo idLibro Autore prestatoA libriInPrestito Titolo Utente * Data idLibro Autore Nome idUtente Nome idUtente LibriUtenti Titolo idLibro Autore Nome idUtente Prestiti Libro * Data Utente *

16 Esempio di conversione Autori-Libri Autori Prestiti Utenti EditoriLibri Editori AutoriUtenti LibriPrestiti Conversione ER-relazionale

17 Attributi multivalore Persone LingueParlate PersoneLingueParlate Lingua PersoneLingueParlateLingue Conversione ER-relazionale PersoneLingueParlate Lingua

18 Le sottoclassi Studenti Persone [ nome: string età: int codice: int ] [ corsoDiLaurea: string matricola: int ] Diventa: Studenti Persone ( Nome: string età: int codice: int ) ( codice*: int corsoDiLaurea: string matricola: int ) Persone ( nome: string età: int codice: int corsoDiLaurea: optional string matricola: optional int ) Oppure: Studenti Persone ( Nome: string età: int codice: int ) ( codice: int Nome: string età: int corsoDiLaurea: string matricola: int ) Oppure: Conversione ER-relazionale

19 Le sottoclassi (cont.) Persone FemmineMaschi Persone Attr P con chiave Ch P Attr F Attr M Attr P con chiave Ch P Attr M optional Attr F optional Persone Maschi Femmine Attr M con chiave esterna Ch P Attr F con chiave esterna Ch P Attr P con chiave Ch P Maschi Femmine Attr P con chiave Ch P e Attr M Attr P con chiave Ch P e Attr F Conversione ER-relazionale

20 Criteri di scelta Numero di attributi delle sottoclassi Tipo di operazioni –Riguardano tutte le informazioni di elementi di una sottoclasse? –Riguardano la visita di tutti gli elementi della superclasse? Conversione ER-relazionale

21 Linguaggi relazionali Per il modello relazionale sono stati definiti due principali linguaggi che sono stati poi usati per definire e implementare il linguaggio SQL dei DBMS. Algebra relazionale insieme di operatori su relazioni che danno come risultato relazioni. Non si usa come linguaggio di interrogazione dei DBMS ma come rappresentazione interna delle interrogazioni. Calcolo relazionale linguaggio dichiarativo di tipo logico dal quale è stato derivato l'SQL. Linguaggi relazionali

22 Algebra relazionale Notazione R e S relazioni t, s ennuple A,B,C attributi X,Y,Zinsiemi di attributi Operatori di base Proiezione Restrizione Ridenominazione Prodotto Giunzione Linguaggi relazionali

23 Proiezione Proiezione ( ): elimina gli attributi che non sono nella lista di proiezione A1...An (R) Qual è il tipo del risultato? Se R ha n elementi quanti ne ha il risultato? Linguaggi relazionali

24 Esempi di proiezione Nome, Matricola (Studenti) 1980PI175649Bonini 1078LI179856Bianch i 1975LU167459Rossi 1980PI171523Isaia AnnoNascitaProvinciaMatricolaNome Studenti NomeMatricola Isaia Rossi Bianchi Bonini Nome (Studenti) Nome Isaia Rossi Bianchi Bonini Linguaggi relazionali

25 Restrizione Restrizione (selezione) ( : seleziona le ennuple della relazione che soddisfano la condizione. Condizione (R) Qual è il tipo del risultato? Se R ha n elementi quanti ne ha il risultato? Linguaggi relazionali

26 Esempio di restrizione AnnoNascita<1979 (Studenti) Linguaggi relazionali 1980PI175649Bonini 1078LI179856Bianchi 1975LU167459Rossi 1980PI171523Isaia AnnoNascitaProvinciaMatricolaNome Studenti 1078LI179856Bianchi 1975LU167459Rossi AnnoNascitaProvinciaMatricolaNome

27 Es. di composizione di operatori Il numero di matricola degli studenti nati prima del 1979 Matricola ( AnnoNascita<1979 (Studenti) ) Linguaggi relazionali 1980PI175649Bonini 1078LI179856Bianchi 1975LU167459Rossi 1980PI171523Isaia AnnoNascitaProvinciaMatricolaNome Studenti Matricola

28 Prodotto e ridenominazione Prodotto ( ): l'operatore ha due argomenti R e S con attributi distinti e il risultato è una relazione con elementi ottenuti concatenando ogni ennupla di R con tutte quelle di S. a A a 1 A 1 a 2 A 2 a A b B a 1 A 1 b 1 B 1 a 1 A 1 b 2 B 2 a 1 A 1 b 3 B 3 a 2 A 2 b 1 B 1 a 2 A 2 b 2 B 2 a 2 A 2 b 3 B 3 b B b 1 B 1 b 2 B 2 b 3 B 3 Ridenominazione ( ): cambia il nome di un attributo di una relazione A B (R) Linguaggi relazionali

29 Giunzione Giunzione naturale ( ) R(ZX) e S(YX) R S = { t | t[XY] R e t[ZX] S } a A a 1 A 1 a 2 A 2 a A B a 1 A 1 B 1 a 1 A 1 B 3 a 2 A 2 B 3 A B A 1 B 1 A 3 B 2 A 1 B 3 A 2 B 3 Giunzione esplicita R.A = S.B R S Linguaggi relazionali

30 Esempi di giunzione 1/4 Trovare i nomi degli studenti che hanno passato un esame con voto inferiore a 28 Studenti Esami 1980PI175649Bonini 1978LI179856Bianchi 1975LU167459Rossi 1980PI171523Isaia AnnoNascitaProvinciaMatricolaNome 3013/02/ FP 1811/02/ LMM 2515/01/ BD 3015/01/ BD 2812/01/ BD VotoDataCandidato * Materia Linguaggi relazionali

31 Esempi di giunzione 2/4 Linguaggi relazionali Matricola = Candidato Nome ( Voto<28 (Studenti Esami)) 2515/01/ BD1980PI175649Bonini 3013/02/ FP1978LI179856Bianchi 3015/01/ BD1975LU167459Rossi 1811/02/ LMM1980PI171523Isaia 2812/01/ BD1980PI171523Isaia VotoDataCandidatoMateriaAnnoNascitaProvinciaMatricolaNome

32 Esempi di giunzione 3/4 Linguaggi relazionali Matricola = Candidato Nome ( Voto<28 (Studenti Esami)) 2515/01/ BD1980PI175649Bonini 1811/02/ LMM1980PI171523Isaia VotoDataCandidatoMateriaAnnoNascitaProvinciaMatricolaNome

33 Esempi di giunzione 4/4 Linguaggi relazionali Matricola = Candidato Nome ( Voto<28 (Studenti Esami)) Bonini Isaia Nome

34 Trasformazioni algebriche Basate su regole di equivalenza fra espressione algebriche Consentono di scegliere diversi ordini di join e di anticipare proiezioni e restrizioni. Consideriamo la relazione R(A, B, C, D): C 1 C 2 ( E 1 E 2 ) C 1 ( E 1 ) C 2 ( E 2 ) C 1 ( C 2 ( C 3 (R) C 1 C 2 C 3 (R) A ( AB ( ABC (R))) A (R) R (S T) (R S) T (R S) (S R) Ottimizzazione algebrica: anticipazione delle proiezioni e delle restrizioni rispetto al prodotto per ridurre la dimensione dei risultati intermedi Linguaggi relazionali

35 Alberi logici e trasformazioni algebriche Consideriamo le relazioni R(A, B, C, D) e S(E, F, G) e l'espressione: A,F ( A=100 and F > 5 and A = E (R x S)) RS A=100 F > 5 R S A=100 F > 5 A,F A = E A,F A = E AE, F Linguaggi relazionali

36 Extra su Algebra Relazionale

37 Algebra relazionale: (cont.) Unione ( ): l'operatore ha due argomenti R e S dello stesso tipo e il risultato è una relazione ottenuta facendo l'unione delle ennuple di R con quelle di S. R S Differenza (-): l'operatore ha due argomenti R e S dello stesso tipo e il risultato è una relazione contenente le ennuple di R non presenti in S. R S = { t | t R e t S } Qual è il tipo del risultato? Se R e S hanno n elementi quanti ne ha il risultato? Se t 1 è un'ennupla non in R, allora R = (R {t 1 }) {t 1 }) Linguaggi relazionali

38 Algebra relazionale: (cont.) Semi-giunzione ( ) R(ZX) e S(YX) R S = { t R | t[X] X (S) } a A a 1 A 1 a 2 A 2 A B A 1 B 1 A 3 B 2 A 1 B 3 A 2 B 3 a 2 A 4 A B A 1 B 1 A 1 B 3 A 2 B 3 Linguaggi relazionali

39 Algebra relazionale: (cont.) Operatori derivati Intersezione ( ) R S = { t | t R e t S } Divisione ( \ ) R \ S = { t | {t} S R} vale che (R S)\S = R a A a 1 A 1 a 2 A 2 a A b B a 1 A 1 b 1 B 1 a 1 A 1 b 2 B 2 a 1 A 1 b 3 B 3 a 2 A 2 b 1 B 1 a 2 A 2 b 2 B 2 a 2 A 2 b 3 B 3 b B b 1 B 1 b 2 B 2 b 3 B 3 Linguaggi relazionali


Scaricare ppt "Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente."

Presentazioni simili


Annunci Google