La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Presentazioni simili


Presentazione sul tema: "2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu."— Transcript della presentazione:

1 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu

2 Modello Relazionale Esso fu proposto nel 1970 da E.F. Codd Primi sistemi relazionali appaiono sul mercato nel 1981 Il modello logico si basa su due concetti: –relazione: teoria matematica derivata dalla teoria degli insiemi –tabella: intuitivo ma informale luso delle tabelle rende semplice da usare il modello, mentre la formalizzazione matematica ne consolida la potenza (ad esempio, verifica della correttezza o completezza di un db) Le relazioni possono essere efficacemente e semplicemente rappresentate tramite tabelle.

3 Relazione Dati due insiemi D1 e D2, si considera anzitutto il loro prodotto cartesiano, ossia linsieme di tutte le possibili coppie che si possono formare prendendo un elemento di D1 ed uno di D2. Una relazione (in senso matematico) è un sottoinsieme del prodotto cartesiano, ossia è un insieme che contiene alcune di tutte le possibili coppie (al limite, anche tutte, ma non necessariamente) Esempio D1 = { 1, 3, 5 } D2 = { a, b } Una possibile relazione R = { (1,a), (3,b), (5,b) } che può essere rappresentata con una tabella Il prodotto cartesiano e le relazioni si possono estendere a N insiemi D1 X D2 = { (1,a), (1,b), (3,a), (3,b), (5,a), (5,b) } 1a3b5b1a3b5b

4 Caratteristiche delle relazioni Ogni riga della tabella viene chiamata n-upla o t-upla Non è definito alcun ordinamento fra le n-uple, quindi due tabelle con le stesse righe, anche in ordine diverso, rappresentano la stessa relazione Le n-uple di una relazione devono essere distinte luna dallaltra, quindi una tabella rappresenta una relazione solo se le sue righe sono tutte fra loro diverse Per definire il significato e il ruolo di ogni colonna essa viene etichettata mediante un attributo. In tal modo, lordine delle colonne risulta irrilevante. SqCasaSqOspiteCasaOspite JuventusRoma01 LazioMilan20 TorinoSampdoria11 T-upla Attributi

5 Una base di dati relazionale è costituita da più relazioni (una di solito non è sufficiente). Alcuni attributi contengono valori comuni (ripetuti cioè in relazioni differenti) necessari per definire collegamenti fra le relazioni Matricola Cognome Nome Nascita Rossi Maria 21/10/ Bruni Aldo 12/03/ Lorenzi Silvio 06/06/ Vulturi Paolo 22/08/1974 Matricola Cognome Nome Nascita Rossi Maria 21/10/ Bruni Aldo 12/03/ Lorenzi Silvio 06/06/ Vulturi Paolo 22/08/1974 Studente VotoCorso A A A A45 Studente VotoCorso A A A A45 CodiceDocente A04Sergi A10Palazzo A23La Corte A45Ingrassia CodiceDocente A04Sergi A10Palazzo A23La Corte A45Ingrassia Corsi Esami Studenti Database Relazionali - Generalità

6 Uno schema di relazione è costituito : –da un simbolo R, detto nome della relazione –da un insieme di nomi di attributi X = {A1, A2,..., An} Informalmente, uno schema di relazione è linsieme del nome di una tabella e dei nomi dei suoi attributi (senza valori). Database Relazionali - Definizioni Matricola Cognome Nome Nascita Studenti R = Studenti X = { Matricola, Cognome, Nome, Nascita } Linsieme di R ed X si indica con R (X)

7 Uno schema di base di dati è un insieme di schemi di relazione con nomi diversiDB = { R1(X1), R2(X2),..., Rn(Xn) } Informalmente, uno schema di base di dati è linsieme dei nomi di tutte le tabelle e dei nomi tutti i loro attributi (senza valori), o, in altre parole, il database vuoto, senza dati (solo lo scheletro). CodiceDocente Corsi Schema di base di dati R= { Studenti (Matricola,...), Esami (Studente, Voto, Corso), Corsi (Codice, Docente) } Schema di base di dati R= { Studenti (Matricola,...), Esami (Studente, Voto, Corso), Corsi (Codice, Docente) } Matricola Cognome Nome Nascita Studenti Studente VotoCorso Esami Schemi di relazione R1 = Studenti X1 = { Matricola,... } R2 = Corsi X2 = { Codice, Docente } R3 = Esami X3 = { Studente, Voto, Corso } Schemi di relazione R1 = Studenti X1 = { Matricola,... } R2 = Corsi X2 = { Codice, Docente } R3 = Esami X3 = { Studente, Voto, Corso } Database Relazionali - Definizioni

8 Rossi Maria 21/10/ Bruni Aldo 12/03/ Lorenzi Silvio 06/06/ Vulturi Paolo 22/08/ Rossi Maria 21/10/ Bruni Aldo 12/03/ Lorenzi Silvio 06/06/ Vulturi Paolo 22/08/1974 Una istanza di relazione (o anche semplicemente relazione) su uno schema di relazione R(X) è un insieme di t t-uple su X. Informalmente, una istanza di relazione è linsieme di righe dei suoi dati. (Studenti) Una istanza di base di dati su uno schema di base di dati DB è un insieme di relazioni t = { t1,..., tn } dove ogni elemento ti è una relazione sullo schema di relazione Ri(Xi) Informalmente, una istanza di base di dati è linsieme di tutti i dati di tutte le tabelle del database Database Relazionali - Definizioni Un database è linsieme del suo schema (tabelle vuote) e della sua istanza (dati che popoleranno le tabelle)

9 Studente VotoCorso NULL 28 NULL NULL 26A A45 Studente VotoCorso NULL 28 NULL NULL 26A A45 In alcuni casi è necessario assegnare ad un attributo un valore non significativo perché: –non se ne conosce il valore –non è significativo per gli altri attributi –deve essere inserito in un secondo momento Non sempre esiste un valore al quale sia possibile assegnare il significato di nullo, per cui viene introdotto un valore speciale NULL. Non tutte le colonne possono essere nulle (ad esempio, un numero di matricola nella tabella STUDENTI). Occorre un controllo per evitare che la presenza multipla di più NULL in righe diverse generi ambiguità o faccia perdere di significato la tupla considerata. Esami inutilizzabile ambiguo Valori Nulli

10 Matricola Cognome Nome Nascita Rossi Maria 21/10/ Bruni Aldo 12/03/ Lorenzi Silvio 06/06/ Vulturi Paolo 22/08/1974 Matricola Cognome Nome Nascita Rossi Maria 21/10/ Bruni Aldo 12/03/ Lorenzi Silvio 06/06/ Vulturi Paolo 22/08/1974 Vincoli di integrità è una proprietà che deve essere soddisfatta dalle istanze per potere esse rappresentare informazioni corrette. I vincoli sono di due categorie: vincoli intrarelazionali (allinterno di una relazione) –vincolo su valori (ad esempio, VOTO compreso fra 18 e 30) –vincolo di t-upla (ad esempio, LODE non può esserci se il VOTO è inferiore a 30) vincoli interrelazionali (su più relazioni), ad esempio una tupla in ESAMI per essere valida deve contenere un numero di matricola che esista anche in STUDENTI EsamiStudenti Studente VotoLodeCorso A XA A XA45 Studente VotoLodeCorso A XA A XA45

11 Chiave - 1 superchiave: un insieme K di attributi è superchiave di R se non contiene due t-uple distinte, ad esempio come chiave si può prendere linsieme di tutti gli attributi della relazione. chiave: un insieme K è chiave se è una superchiave minimale (cioè non contiene al suo interno altre superchiavi) insieme di attributi utilizzato per identificare univocamente le t-uple di una relazione insieme di attributi utilizzato per identificare univocamente le t-uple di una relazione Studenti Cognome Nome Nascita Corso Rossi Maria21/10/1971 Ing. Meccan. Bruni Aldo12/03/1973 Ing. Civile Lorenzi Silvio06/06/1970 Ing. Inform. Vulturi Paolo22/08/1974 Ing. Inform. Cognome Nome Nascita Corso Rossi Maria21/10/1971 Ing. Meccan. Bruni Aldo12/03/1973 Ing. Civile Lorenzi Silvio06/06/1970 Ing. Inform. Vulturi Paolo22/08/1974 Ing. Inform. { Cognome, Nome, Nascita, Corso } è superchiave, e contiene la superchiave minimale (ossia, la chiave) {Cognome, Nome, Nascita } nellipotesi che siano sufficienti a distinguere le singole persone.

12 Matricola Cognome Nome NascitaCorso NULL Rossi Maria NULLIng. Meccan Bruni Aldo 12/03/1973Ing. Civile NULL Lorenzi Silvio 06/06/1970Ing. Inform Lorenzi Silvio NULLIng. Inform. Matricola Cognome Nome NascitaCorso NULL Rossi Maria NULLIng. Meccan Bruni Aldo 12/03/1973Ing. Civile NULL Lorenzi Silvio 06/06/1970Ing. Inform Lorenzi Silvio NULLIng. Inform. Chiave - 2 Per trovare una chiave, si cerca una superchiave e si scartano quanti più attributi possibili, fino a restare con quelli indispensabili, che rappresenteranno una chiave. In una relazione possono esistere più chiavi, tutte egualmente valide. Nei casi reali, è quasi impossibile trovare attributi che siano sempre identificanti e disponibili (noti). Per ovviare a questo problema, si introduce un attributo avente il compito specifico di fare da chiave, motivo della nascita di matricole, numeri di targa, codici fiscali eccetera. La presenza indiscriminata di valori nulli negli attributi può rendere impossibile o inutile luso di una chiave. Chiavi : { Cognome, Nome, Nascita } e { Matricola } Se esiste almeno un valore nullo su tutte le chiavi, la tupla non è più identificabile Se esiste almeno un valore nullo su almeno una chiave, potrebbe sorgere ambiguità Per evitare problemi, si definisce una delle chiavi come primaria, e si impone per essa lassenza di valori nulli. impossibile inutile

13 Prov.Numero Proprietario RM6H5567 Rossi Mario RM6D9909 Broni Aldo SA 2F8534 Sineri Luigi BA Russo Paolo Prov.Numero Proprietario RM6H5567 Rossi Mario RM6D9909 Broni Aldo SA 2F8534 Sineri Luigi BA Russo Paolo Codice Articolo Prov. NumeroAgente RM 2F RM 6D FI D NA F Codice Articolo Prov. NumeroAgente RM 2F RM 6D FI D NA F Vincoli di Integrità Referenziale Un Vincolo di Integrità Referenziale (foreign key) fra un insieme di attributi X di una relazione R1 ed unaltra relazione R2 è soddisfatto se i valori su X per ogni tupla di R2 figurano come chiave primaria su R2. Agente Nome Mico Sergio Luni Piero Ronchi Aldo Busi Nemo Agente Nome Mico Sergio Luni Piero Ronchi Aldo Busi Nemo

14 Rispetto agli altri modelli (reticolare, gerarchico), il modello relazionale è basato su valori, quindi: richiede di rappresentare solo ciò che è rilevante da parte dellutente (altri modelli richiedono di tenere conto di altri campi, necessari alla gestione interna). Questo implica che: è semplice spostare linformazione da un contesto ad un altro (ad esempio, da un calcolatore ad un altro). la rappresentazione logica non fa riferimento a quella fisica. Basi di Dati Relazionali

15 Cenni di Algebra Relazionale - 1 Lalgebra relazionale è un linguaggio procedurale, ossia un linguaggio in cui le operazioni complesse vengono specificate descrivendo il procedimento da seguire per ottenere la soluzione. Lalgebra relazionale fornisce dei procedimenti formali per effettuare operazioni di uso comune sulle relazioni (tabelle), come estrazione di particolari dati, aggiornamenti eccetera. La formalizzazione consente di verificare la correttezza delle operazioni che vengono fatte, nonche di (se possibile) ottimizzarle. Lalgebra relazionale è costituita da un insieme di operatori che in ingresso accettano delle relazioni e che in uscita ne producono altre, ottenute elaborando quelle di ingresso. Le tabelle ottenute in uscita prendono il nome di viste, in quanto il calcolo di cui rappresentano il risultato è un filtro logico che serve ad ottenere le sole informazioni che interessano (la vista che si vuole in quel momento avere dellintero db).

16 Cenni di Algebra Relazionale - 2 Unione lunione di due relazioni è una relazione che contiene le t-uple che appartengono alla prima o alla seconda o ad entrambe. LAUREATI STUDENTI STUDENTI LAUREATI

17 Differenza la differenza di due relazioni è una relazione che contiene le tuple che appartengono alla prima e non appartengono alla seconda. Cenni di Algebra Relazionale - 3 LAUREATI - STUDENTI LAUREATI STUDENTI

18 Intersezione lintersezione di due relazioni è una relazione che contiene le tuple che appartengono alla prima e alla seconda. Cenni di Algebra Relazionale - 4 LAUREATI STUDENTI LAUREATI STUDENTI

19 Prodotto Cartesiano Il prodotto cartesiano di due relazioni è una relazione che contiene tutte le possibili combinazioni di tuple prese da entrambe le relazioni. Cenni di Algebra Relazionale - 5 FACOLTA STUDENTI x FACOLTA STUDENTI

20 Selezione la selezione produce un sottoinsieme delle t-uple su tutti gli attributi (seleziona alcune righe sulla base di un dato criterio). STUDENTI x FACOLTA Cenni di Algebra Relazionale - 6 ( STUDENTI x FACOLTA) mat=stud

21 Proiezione la proiezione genera un risultato cui contribuiscono tutte le tuple, ma su un sottoinsieme degli attributi (sostanzialmente, si prendono alcune colonne della relazione, eliminando quelle eventualmente ripetute) Cenni di Algebra Relazionale - 7 STUDENTI x FACOLTA (STUDENTI x FACOLTA) cognome, facoltà

22 Join Naturale il Join naturale unisce due relazioni aventi entrambe un certo numero di colonne comuni, generando una terza relazione che contiene tutte le colonne delle due relazioni, e tutte le righe delle due relazioni che hanno valori uguali nelle colonne (attributi) comuni. Se si escludono le colonne non comuni della seconda relazione, si parla di semi-join. Cenni di Algebra Relazionale - 8 R S R S

23 Cenni di Algebra Relazionale - 9 R S R S left R S right R S full Il join esclude le righe della prima e seconda relazione quando esse non hanno attributi comuni uguali. Se si vogliono includere le righe della prima, seconda, o entrambe, si usano i join sinistro, destro, o totale. Quando sono coinvolte a qualunque titolo le righe con valori non coincidenti negli attributi comuni si parla di outer join (join esterno), altrimenti si parla di inner join (join interno) Il join esclude le righe della prima e seconda relazione quando esse non hanno attributi comuni uguali. Se si vogliono includere le righe della prima, seconda, o entrambe, si usano i join sinistro, destro, o totale. Quando sono coinvolte a qualunque titolo le righe con valori non coincidenti negli attributi comuni si parla di outer join (join esterno), altrimenti si parla di inner join (join interno)

24 Cenni di Algebra Relazionale - 10 R S R progetto=codice S Lequi-join si ha quando non esistono attributi comuni, ma si decide comunque di voler unire le due relazioni, specificando quali attributi (colonne) debbano essere uguali. Se lespressione, anziché una semplice uguaglianza fra due attributi di due relazioni, è più complessa, il join prende il nome di theta-join Lequi-join si ha quando non esistono attributi comuni, ma si decide comunque di voler unire le due relazioni, specificando quali attributi (colonne) debbano essere uguali. Se lespressione, anziché una semplice uguaglianza fra due attributi di due relazioni, è più complessa, il join prende il nome di theta-join


Scaricare ppt "2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu."

Presentazioni simili


Annunci Google