Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo...

31
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO e MANIFESTO) C orso Titolare Basi di Dati Cagnoni Reti di Calcolatori Poggi Ingegneria Del Software Adorni C dD M ateria Anno II Basi di Dati 3 IE Reti di Calcolatori 3 II Ingegneria del Software 3

Transcript of Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo...

Page 1: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Modello Relazionale

Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle.

Es. (relazioni INSEGNAMENTO e MANIFESTO)

Corso Titolare

Basi di Dati Cagnoni

Reti diCalcolatori Poggi

Ingegneria DelSoftware Adorni

CdD Materia Anno

II Basi di Dati 3

IE Reti diCalcolatori 3

II Ingegneriadel Software 3

Page 2: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Schemi

In ogni base di dati si possono distinguere:

lo schema, sostanzialmente invariante nel tempo, che ne descrive la struttura (aspetto intensionale)nell’esempio, le intestazioni delle tabelle

le istanze, cioè i valori attuali, che possono cambiare anche molto rapidamente (aspetto estensionale)nell’esempio, il “contenuto” di ciascuna tabella

Page 3: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Schemi

Lo schema di una base di dati è la parte dichiarativa ed invariante della base di dati e ne definisce la struttura.

Nel modello relazionale lo schema di una relazione è paragonabile alla definizione del prototipo di una funzione in C.

INSEGNAMENTO(Corso,Titolare)

è lo schema della relazione INSEGNAMENTO.Le effettive n-ple di attributi appartenenti alla relazione

sono dette istanze della relazione.

Basi di dati Cagnoni è una istanza di INSEGNAMENTO.

Page 4: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Schemi

Gli schemi possono operare a diversi livelli di astrazione

Schema logicodescrive l’intera base di dati mediante il modello logico adottato dal DBMS (reticolare, gerarchico, relazionale)

Schema interno implementa lo schema logico per mezzo di strutture fisiche di memorizzazione (file sequenziali con o senza indici)

Page 5: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Schemi

Schema esternodescrive una porzione della base di dati attraverso il modello logico, riflettendo il punto di vista di un utente. Generalmente è realizzato per mezzo di viste, relazioni derivate da quelle che costituiscono lo schema logico.

Es. (i soli corsi di Ingegneria Informatica)

CdD Materia Anno

II Basi di Dati 3

II Ingegneriadel Software 3

Page 6: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Architettura standard (ANSI/SPARC)a tre livelli per DBMS

BD

Schema logico

Schemaesterno

Schema interno

Schemaesterno

Schemaesterno

utenteutente

utenteutente utente

Page 7: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Indipendenza dei datiPermette agli utenti di operare a livello astratto, indipendentemente dai dettagli realizzativi del DBMS

Indipendenza fisicaConsente di mantenere inalterata la struttura logica dei dati al variare dalla realizzazione fisica del sistema. Consente di utilizzare basi di dati su piattaforme diverse, o di distribuire una base di dati su più macchine.

Indipendenza logicaRende indipendente lo schema esterno da quello logico, consentendo di inserire nuove viste senza alterarlo, o di alterarlo mantenendo inalterate le viste definite in precedenza.

Page 8: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Linguaggi per basi di dati

Linguaggi di definizione dei datiUtilizzati per definire gli schemi e le autorizzazioni per l’accesso

Linguaggi di manipolazione dei datiUtilizzati per l’interrogazione e l’aggiornamento dei contenuti della base di dati

Alcuni linguaggi specializzati (es. SQL) presentano le caratteristiche di entrambi i tipi di linguaggio.

Page 9: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Accesso alla base di dati

Linguaggi testuali interattivi

Comandi inclusi in estensioni di linguaggi tradizionali

Comandi inclusi in linguaggi di sviluppo ad hoc

Interfacce grafiche amichevoli

Page 10: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

SQL, un linguaggio interattivo

SELECT Corso, Aula, PianoFROM Aule, CorsiWHERE Nome = AulaAND Piano="Terra"

Corso Aula

Reti N3

Sistemi N3

Piano

Terra

Terra

Page 11: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

SQL immerso in linguaggio ad alto livello

write('nome della citta''?'); readln(citta);

EXEC SQL DECLARE P CURSOR FOR

SELECT NOME, REDDITO

FROM PERSONE

WHERE CITTA = :citta ;

EXEC SQL OPEN P ;

EXEC SQL FETCH P INTO :nome, :reddito ;

while SQLCODE = 0 do begin

write('nome della persona:', nome, 'aumento?');

readln(aumento);

EXEC SQL UPDATE PERSONE SET REDDITO = REDDITO + :aumento

WHERE CURRENT OF P

EXEC SQL FETCH P INTO :nome, :reddito

end;

EXEC SQL CLOSE CURSOR P

Page 12: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Interazione non testuale (in Access)

Page 13: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Utenti e progettisti Amministratore della base di datiresponsabile della progettazione controllo e manutenzione della base di dati

Progettisti e programmatorirealizzano i programmi che accedono alla base di dati

Utentiutenti finali

accedono alla base di dati frequentemente e attraverso procedure predefinite

utenti casualiinterrogano o aggiornano la base di dati con procedure e modalità variabili utilizzando i linguaggi forniti dal DBMS

Page 14: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Vantaggi dei DBMS

Disponibilità dei dati a tutta una comunità

Modello unificato e preciso della realtà di interesse

Controllo centralizzato dei dati

Condivisione

Indipendenza dei dati

Page 15: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Svantaggi dei DBMS

Prodotti costosi, complessi, che richiedono investimenti in hardware, software, personale.

Forniscono un numero elevato di servizi, in modo integrato e difficilmente scorporabile se le esigenze dell’utente sono inferiori alle caratteristiche offerte

Page 16: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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

Page 17: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Modello relazionale

• Teorizzato per separare il più possibile il livello logico dal livello fisico della descrizione dei dati

• Rigoroso modello matematicopermette un elevato grado di astrazione

• Rappresentazione semplice ed intuitivaLe relazioni ed i risultati delle operazioni su di esse sono facilmente rappresentabili ed interpretabili dagli utenti.

Page 18: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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

Page 19: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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 di tutte le possibili coppie ordinate (v1, v2) tali che v1 sia un elemento di D1 e v2 sia un elemento di D2 .

• Es. Dati gli insiemiA = {cubo, cono} e B={rosso, verde, blu}

il loro prodotto cartesiano è

{(cubo,rosso),(cono,rosso),(cubo,verde), (cono,verde),(cubo,blu),(cono,blu)}

Page 20: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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,cubo rosso

cono rosso

cubo blu

Page 21: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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

Page 22: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Relazioni

Osservazioni

• Non esiste ordinamento fra le n-ple, per la natura insiemistica della relazione

• Non possono esistere 2 righe uguali (insiemi)• Ogni n-pla è internamente ordinata: l’ i-esimo valore

proviene dall’ i-esimo dominio (struttura posizionale)

Quindi• se si scambiano due righe, la relazione non cambia• se si scambiano 2 colonne può cambiare o perdere

consistenza

Page 23: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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.

Page 24: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

RelazioniEsempio 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).

Casa Ospiti RetiCasa RetiOspiti

Parma Inter 3 2

Perugia Lazio 2 0

Milan Juventus 1 1

Page 25: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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

Page 26: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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 (in alcuni casi devono) assumere gli stessi valori.

Page 27: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi

corsi

Studente Voto Corso3456 30 043456 24 029283 28 01

esami

6554 26 01

Page 28: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi

corsi

Studente Voto Corso302428

esami

26

Page 29: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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.

Page 30: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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

Page 31: Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

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)