Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd

Slides:



Advertisements
Presentazioni simili
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Advertisements

Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
PRIMI CONCETTI ESEMPI INTRODUTTIVI DEFINIZIONI INTRODUZIONE ALLE FUNZIONI.
1 Simulazione Numerica dei Fenomeni di Trasporto Necessità di introduzione dei tensori  11  12  13  23  21  22 Vogliamo descrivere in un modo che.
Basi di dati - Fondamenti
Il modello logico Il modello logico.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Progettazione di una base di dati relazionale
Database Accesso Utenti diversi Programmi diversi Modelli di database
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rileaborato da M. Lenzerini - Basi di dati
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Le operazioni relazionali
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Il Modello Relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
di Basi di Dati: Overview
Le operazioni relazionali (continua)
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
PRINCIPALI STRUTTURE DEI DATI
Microsoft Office Access
Progettazione di una base di dati relazionale
Raccolta ed Analisi dei Requisiti nella Progettazione
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Integrità referenziale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Un’università vuole raccogliere ed organizzare in un database
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Il modello relazionale
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione logica: Il modello relazionale
Basi di dati - Fondamenti
Partizionamento/accorpamento di concetti
Dino Pedreschi Dipartimento di Informatica a.a. 2011– 2012
OGGETTO E TIPO DI OGGETTO
Dipendenze funzionali
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Il modello relazionale
Selezione e Proiezione
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd Finalizzato alla realizzazione dell’indipendenza dei dati Unisce concetti derivati dalla teoria degli insiemi (relazioni) con una rappresentazione dei dati di tipo tabellare Attualmente è il modello più utilizzato

Modello relazionale Teorizzato per separare il più possibile il livello logico dal livello fisico della descrizione dei dati Rigoroso modello matematico permette un elevato grado di astrazione Rappresentazione semplice ed intuitiva Le relazioni ed i risultati delle operazioni su di esse sono facilmente rappresentabili ed interpretabili dagli utenti.

Relazione: tre accezioni relazione matematica: come nella teoria degli insiemi relazione (dall’inglese relationship) che rappresenta una classe di fatti, nel modello Entity-Relationship; tradotto anche con associazione o correlazione relazione secondo il modello relazionale dei dati

Relazioni - Prodotto Cartesiano Dati due insiemi D1 e D2 si definisce Prodotto Cartesiano di D1 e D2, e si indica con D1 X D2, l’insieme delle coppie ordinate (v1, v2) tali che v1 sia un elemento di D1 e v2 sia un elemento di D2 . Es. Dati gli insiemi A = {cubo, cono} e B={rosso, verde, blu} il loro prodotto cartesiano è {(cubo,rosso),(cono,rosso),(cubo,verde), (cono,verde),(cubo,blu),(cono,blu)}

Relazioni Una relazione matematica su due insiemi D1 e D2 è un sottoinsieme di D1 X D2. NOTA: a livello formale gli insiemi possono essere infiniti, a livello pratico non possiamo però considerare relazioni infinite. Es. dati gli insiemi visti, una possibile relazione è {(cubo,rosso),(cono,rosso),(cubo,blu)} o, in forma tabellare,

Stringa x Stringa x Intero x Intero Relazioni Le definizioni viste per 2 insiemi possono essere generalizzate a n insiemi. Ogni riga della tabella sarà allora una n-pla ordinata di elementi. n è detto grado del prodotto cartesiano e quindi della relazione. Il numero di elementi della relazione è detto cardinalità della relazione. Un insieme può apparire più volte in una relazione. Es. La relazione Risultati Partite di Calcio è un sottoinsieme del prodotto cartesiano Stringa x Stringa x Intero x Intero

Relazioni Osservazioni Non esiste ordinamento fra le n-ple Non possono esistere 2 righe uguali Ogni n-pla è internamente ordinata: l’ i-esimo valore proviene dall’ i-esimo dominio (la struttura e’ posizionale) Quindi se si scambiano due righe, la relazione non cambia se si scambiano 2 colonne può cambiare o perdere consistenza

Relazioni La rigidezza dell’ordinamento delle relazioni matematiche spesso non è pratica. In informatica si tende ad utilizzare rappresentazioni non posizionali dei dati, utilizzando l’ordinamento solo quando ha utilità pratica (es. parametri di funzioni, elementi di vettori, matrici). Si utilizzano i tipi strutturati (record) nei casi in cui si debbano raccogliere dati di natura differente in una stessa entità logica. Una relazione è un insieme di record omogenei, cioè definiti sugli stessi campi. Come ogni campo di un record è associato ad un nome, così si associa ad ogni colonna della relazione un attributo.

Relazioni Esempio di relazione con attributi Ogni attributo ha un suo dominio su cui è definito. Ogni riga è detta convenzionalmente tupla (n-pla). Quindi una tupla è un insieme di valori, uno per attributo, ordinati secondo lo schema della relazione e definiti ciascuno su un proprio dominio. Una relazione è una serie di tuple definite sul dominio della relazione (insieme ordinato dei domini dei singoli attributi).

Relazioni Notazione Se t è una tupla definita sul dominio X della relazione e A è uno dei domini di X t[A] (o t.A) è il valore di t relativo al dominio A Es. (relazione Partite) se t è la prima tupla della relazione t.Casa = Parma

Basi di dati e Relazioni Consideriamo il seguente schema di basi di dati: Studenti (Matricola, Cognome, Nome, DataNascita) Corsi (Codice, Titolo, Docente) Esami (Studente, Voto, Corso) Studenti contiene dati su un insieme di studenti Corsi contiene dati su un insieme di corsi Esami contiene dati su un insieme di esami e fa riferimento alle altre due attraverso i numeri di matricola e il nome del corso. Quindi Matricola e Studente, come anche Corso e Titolo, sono definiti sullo stesso dominio e possono assumere gli stessi valori.

Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 3456 Maria 01/02/1978 9283 Verdi Luisa 12/11/1979 studenti esami Studente Voto Corso 3456 30 04 3456 24 02 9283 28 01 6554 26 01 Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Verdi corsi

Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 3456 Maria 01/02/1978 9283 Verdi Luisa 12/11/1979 studenti esami Studente Voto Corso 30 24 28 26 Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Verdi corsi

Basi di dati e Relazioni Il modello relazionale è basato su valori. I riferimenti fra dati in relazioni diverse avvengono attraverso i valori dei domini corrispondenti che appaiono nelle tuple. Gli altri modelli (gerarchico, reticolare) utilizzano puntatori per le corrispondenze e sono detti basati su record e puntatori.

Basi di dati e Relazioni Vantaggi dell’approccio per valori Si inseriscono nella base di dati solo valori significativi per l’applicazione (i puntatori sono dati aggiuntivi relativi alla sola implementazione). Il trasferimento dei dati da un ambiente ad un altro è più semplice (i puntatori hanno validità solo locale) la rappresentazione logica dei dati non fa riferimento a quella fisica e quindi si ottiene l’indipendenza dei dati

Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A1, A2, … , An} Corsi (Codice, NomeCorso, Docente) Uno schema di base di dati è un insieme di schemi di relazione con nomi diversi R = {R1(X1), R2(X2), …, Rn(Xn)} Una relazione su uno schema R(X) è un insieme r di tuple su X. Una base di dati su uno schema R = {R1(X1), R2(X2), …, Rn(Xn)} è un insieme di relazioni r = {r1, r2, …, rn} dove ogni ri è una relazione sullo schema Ri(Xi)

Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni tupla. Non sempre questo è possibile. Es. Persone(Cognome, Nome, Indirizzo, Telefono) Potrebbe esserci una persona che non ha telefono, o di cui non conosciamo l’indirizzo. Oppure: Nome SecondoNome Cognome Franklin Delano Roosevelt Winston Churchill Charles De Gaulle Josip Stalin

Informazione incompleta: soluzioni? non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “99”, ...): potrebbero non esistere valori “non utilizzati” valori “non utilizzati” potrebbero diventare significativi in fase di utilizzo (nei programmi) sarebbe necessario ogni volta tener conto del “significato” di questi valori

Informazione incompleta Nel modello relazionale è definito un valore convenzionale, detto valore nullo, che indica la non disponibilità dell’informazione. Il valore nullo può rappresentare 3 tipi di informazione: sconosciuta inesistente indeterminata (nei DBMS disponibili si considera in genere questo caso)