Sistemi per il recupero delle informazioni

59
1 Sistemi per il recupero delle informazioni PARTE - V MODELLO RELAZIONALE DEI DATI

description

Sistemi per il recupero delle informazioni. PARTE - V MODELLO RELAZIONALE DEI DATI. PROGETTAZIONE. Ricordiamo le fasi della progettazione di una Base di Dati Ci occuperemo adesso della progettazione logica. PROGETTAZIONE LOGICA. - PowerPoint PPT Presentation

Transcript of Sistemi per il recupero delle informazioni

Page 1: Sistemi per il recupero delle informazioni

1

Sistemi per il recupero delle informazioni

PARTE - V

MODELLO RELAZIONALE DEI DATI

Page 2: Sistemi per il recupero delle informazioni

2

PROGETTAZIONE

Ricordiamo le fasi della progettazione di una Base di Dati

Ci occuperemo adesso della progettazione logica

Page 3: Sistemi per il recupero delle informazioni

3

PROGETTAZIONE LOGICA

La descrizione del modello da realizzare è fatta in funzione delle caratteristiche del SGBD che sarà utilizzato (il modello dei dati, il linguaggio per sviluppare le applicazioni).

Il modello dei dati, detto modello logico, è “più vicino” alla rappresentazione informatica dei dati.

Vedremo l’uso del Modello dei Dati Relazionale. Lo schema risultante è detto schema relazionale, ed è rappresentato con un formalismo testuale. è un modello dei dati “compreso” dal SGBD si ottiene con una traduzione dello schema E-R

Page 4: Sistemi per il recupero delle informazioni

4

ESEMPIO

Page 5: Sistemi per il recupero delle informazioni

5

ESEMPIO

VIENE TRADOTTO NELLO SCHEMA

MUSEI (NomeM, Città, Indirizzo, Direttore)

ARTISTI (NomeA, Nazionalità, DataN, DataM)

OPERE (Codice, Anno, Titolo, NomeM*, NomeA*)

PERSONAGGI (Personaggio, Codice*)

DIPINTI (Codice*, Tipo, Larghezza, Altezza)

SCULTURE (Codice*, Materiale, Altezza, Peso)

Page 6: Sistemi per il recupero delle informazioni

6

INTRODUZIONE

Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente tanto sui sistemi centrali quanto sugli elaboratori personali.

I meccanismi per definire una base di dati con il modello relazionale sono solo due:

• l’ennupla • la relazione.

Page 7: Sistemi per il recupero delle informazioni

7

Ennupla. È un insieme finito di coppie (Attributo, valore atomico)

Relazione. È un insieme finito (eventualmente vuoto) di ennuple con la stessa struttura.

I campi di un’ennupla sono atomici (numeri, stringhe o il valore NULL).

Si tenga presente che non si possono rappresentare proprietà strutturate, o multivalore e vedremo più avanti come risolvere questi problemi di rappresentazione.

Un’ennupla si usa per rappresentare entità e la relazione si usa per rappresentare classi di entità.

ENNUPLA E RELAZIONE

Page 8: Sistemi per il recupero delle informazioni

8

TERMINOLOGIA - I

attributo: corrisponde (non sempre) ad un attributo del modello E-R. Diversamente dal modello E-R, gli attributi sono sempre univoci (ad un sol valore) ed atomici (non composti)

L’ordine degli attributi non è significativo

dominio (di un attributo): è l’insieme dei valori che può assumere un attributo.

chiave primaria di una relazione: un attributo che identifica univocamente le ennuple della relazione. Gli attributi della chiave primaria vengono sottolineati

Page 9: Sistemi per il recupero delle informazioni

9

TERMINOLOGIA - II

Una relazione si definisce dandole un nome ed elencando fra parentesi tonde il tipo delle sue ennuple. La definizione di una relazione è detta schema della relazione

R(A1:T1, A2:T2,..., An:Tn)

R è il nome della relazione A1, A2,... sono gli attributi della relazione T1, T2,... sono i tipi degli attributi (interi, reali, booleani, stringhe)

Per semplicità omettiamo la specifica dei tipi, per cui lo schema di relazione è R(A1, A2,...,An)

Page 10: Sistemi per il recupero delle informazioni

10

TERMINOLOGIA - III

Lo schema della relazione è la descrizione della struttura di una relazione

Un’istanza di uno schema di relazione è un insieme finito di ennuple.

osserviamo che tutte le ennuple di una relazione hanno la stessa struttura

Lo schema relazionale è la descrizione della struttura di una base di dati

insieme di schemi di relazione insieme di vincoli

Page 11: Sistemi per il recupero delle informazioni

21/04/2311

RELAZIONE: TRE ACCEZIONI

Relazione matematica: come nella teoria degli insiemi

Relazione secondo il modello relazionale dei dati

Relazione (relationship): costrutto del modello Entita’-Relazione utilizzato nel modello concettuale per descrivere legami tra entita’ nel mondo reale (tradotto anche con associazione o correlazione)

Page 12: Sistemi per il recupero delle informazioni

21/04/2312

RELAZIONE MATEMATICA - I

D1, …, Dn (n insiemi anche non distinti)

prodotto cartesiano D1×…×Dn: l’insieme di tutte le n-uple (d1, …, dn) tali

che d1D1, …, dn Dn

relazione matematica su D1, …, Dn: - un sottoinsieme di D1×…×Dn.

- D1, …, Dn sono i domini della relazione

- n è il grado

il numero di elementi della relazione si dice cardinalità

castella
- Occhio alla terminologia!!Stressa il significato di ogni termine:- prodotto cartesiano- il simbolo di appartenenza- n-upla- relazione matematica- domini- grado- cardinalitàFai l'esempio delle patate colorate e della comunita' europea, dei numeri pari
Page 13: Sistemi per il recupero delle informazioni

21/04/2313

ESEMPIO

relazione r1 D1 × D2 t. c.:

r1 = {(a,x); (a,z); (b,y)}

D1={a,b} D2={x,y,z}

prodotto cartesiano

D1 × D2 = {(a,x); (a,y); (a,z); (b,x); (b,y); (b,z)}

castella
- improvvisa altri esempi (un paio)scrivendo direttamente sul lucido- dire il grado la cardinalita
Page 14: Sistemi per il recupero delle informazioni

21/04/2314

RELAZIONE MATEMATICA - II

Una relazione matematica è un insieme di n-uple ordinate:

(d1, …, dn) tali che d1D1, …, dn Dn

Una relazione è un insieme; quindi:

- non c'è ordinamento fra le n-uple (ordinamento verticale) - le n-uple sono distinte - ciascuna n-upla è ordinata: l’ i-esimo valore proviene dall’ i-esimo

dominio (ordinamento orizzontale)

Page 15: Sistemi per il recupero delle informazioni

21/04/2315

RELAZIONI E TABELLE - I

Le relazioni possono essere rappresentate graficamente, in maniera utilmente espressiva, sotto forma di tabelle

Esempio (precedente): D1={a,b} D2={x,y,z}

a

a

a

b

b

b

x

y

z

x

y

z

prodotto cartesiano D1 × D2

a

a

b

x

z

y

Relazione r1

Page 16: Sistemi per il recupero delle informazioni

21/04/2316

ESEMPIOD1={x,y} D2={a,b,c} D3={3,5}

xxxx

xx

aabbcc

353535

yyyy

yy

aabbcc

353535

prodotto cartesiano D1 × D2 × D3

xxxy

yy

aacacc

355335

Relazione

Page 17: Sistemi per il recupero delle informazioni

21/04/2317

NON C’E ORDINAMENTO VERTICALE

xxxy

yy

aacacc

355335

xyxy

yx

aacccc

335355

xxxy

yy

aaca

cc

3553

35

Rappresentano la stessa relazione

Page 18: Sistemi per il recupero delle informazioni

21/04/2318

LE RIGHE SONO DISTINTE

xxxy

yy

aacacc

355335

xxxy

yx

aacccc

335555

xxyy

yy

aacc

cc

3555

35

Relazione valida

Relazione non valida

Relazione non valida

Page 19: Sistemi per il recupero delle informazioni

21/04/2319

C’E’ ORDINAMENTO ORIZZONTALE

xxxy

yy

aacacc

355335

Rappresentano relazioni diverse

xxxy

yy

aacacc

355335

xxxy

yy

aacacc

355335

Page 20: Sistemi per il recupero delle informazioni

21/04/2320

ATTRIBUTI - I

3

2

0

0

1

0

2

1

Juve

Lazio

Juve

Roma

Lazio

Milan

Roma

Milan

A ciascun dominio si associa un nome (attributo), che ne descrive il "ruolo"

RetiCasa RetiFuoriCasa Fuori

castella
Dire che una relazione è un insieme di record omogenei, cioè definiti sugli stessi campi.Nella rappresentazione tabellare l'attributo (ovvero il nome del campo) sono le intestazioni delle colonne.Nota che i gli attributi devono avere nomi diversi
Page 21: Sistemi per il recupero delle informazioni

21/04/2321

ATTRIBUTI - II

3

2

0

0

1

0

2

1

Juve

Lazio

Juve

Roma

Lazio

Milan

Roma

Milan

RetiCasa RetiFuoriCasa Fuori

1

0

2

1

3

2

0

0

Juve

Lazio

Juve

Roma

Lazio

Milan

Roma

Milan

RetiCasaRetiFuoriCasaFuori

Stile americano

Stile europeo

L’ordinamento degli attibuti e’ irrilevante

Page 22: Sistemi per il recupero delle informazioni

21/04/2322

FORMALISMO - I

Corrispondenza Attributi - Domini

dom: X D

funzione che associa a ogni attributo AX un dominio D

Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo AX un elemento di dom(A):

t[A] denota il valore della ennupla t sull'attributo A

Una relazione su X e’ un insieme di ennuple

Page 23: Sistemi per il recupero delle informazioni

21/04/2323

Notazione per le ennuple: L‘ennupla rappresentata dalla prima riga

t[Fuori] = Lazio

t[RetiCasa] = 3

Notazione estesa ad insieme di attributi

t[Fuori, RetiCasa]

3

2

0

0

1

0

2

1

Juve

Lazio

Juve

Roma

Lazio

Milan

Roma

Milan

RetiCasa RetiFuoriCasa Fuori

Relazione

FORMALISMO - II

castella
Fare altri esempi di tuple e campiChiarire con Barbara il concetto di insieme di attributi:es: Lazio 3 è una tupla o un suo sottoinsieme?
Page 24: Sistemi per il recupero delle informazioni

21/04/2324

RELAZIONI E DATABASE

Di solito non è sufficiente una sola relazione per organizzare tutti i dati

Un database è costituito (in generale) da più relazioni

Le ennuple contengono valori comuni per stabilire corrispondenze

Page 25: Sistemi per il recupero delle informazioni

21/04/2325

FORMALISMO - III

Schema di relazione: 

un simbolo R, detto nome della relazione, e un insieme di attributi A1, ..., An:

R(A1,..., An)

Schema di base di dati: 

insieme di schemi di relazione con nomi diversi:

R = {R1(X1), ..., Rk(Xk)}

Istanza di relazione su uno schema R(X):

insieme r di ennuple su X

Istanza di base di dati su uno schema R= {R1(X1), ..., Rn(Xn)

insieme di relazioni r = {r1,..., rn}

(con ri relazione su Ri)

Page 26: Sistemi per il recupero delle informazioni

21/04/2326

ESEMPIO

Schema di Base di dati:

R= {STUDENTI (Matricola, Cognome, Nome, Data di nascita),

ESAMI(Studente, Voto, Corso),

CORSI(Codice, Titolo, Docente)

Page 27: Sistemi per il recupero delle informazioni

21/04/2327

Il modello relazionale è basato su valori

Ovvero: i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di

valori dei domini che compaiono nelle ennuple

CARATTERISTICA FONDAMENTALE

Page 28: Sistemi per il recupero delle informazioni

28

RAPPRESENTAZIONE GRAFICA - I

PERSONE(CodFiscale,Nome,Telefono)

o più accuratamente

PERSONE(CodFiscale:string(16),Nome:string(30), Telefono: optional integer)

L’attributo sottolineato è la chiave primaria

Page 29: Sistemi per il recupero delle informazioni

29

RAPPRESENTAZIONE GRAFICA - II

Una (istanza della) relazione Persone, conforme a tale schema, è ad es. la seguente:

E’ d’uso visualizzare una relazione come una tabella bidimensionale, con le colonne identificate dagli attributi e le righe contenenti i valori dei campi, nell’ordine indicato dall’intestazione delle colonne.

La proprietà di essere chiave è riferita allo schema piuttosto che ad una particolare tabella: una chiave è tale (identifica le righe) in una qualunque istanza di un determinato schema.

Page 30: Sistemi per il recupero delle informazioni

30

Impiegati(Matricola :string,Cognome :string,AnnoNascita :integer,Provincia :string)

Studenti( Cognome :string,Matricola :string,Provincia :string,AnnoNascita :integer)

Docenti( Cognome :string,Matricola :integer,Provincia :string,AnnoNascita :integer)

stesso

tipo

Docenti ha tipo diverso perché Matricola è di tipo intero e non stringa.

tipo diverso

TIPI

Due relazioni hanno lo stesso tipo se hanno uguali il numero degli attributi, gli attributi e il tipo degli attributi con lo stesso nome.

Page 31: Sistemi per il recupero delle informazioni

31

CHIAVI ESTERNE

Le associazioni tra i dati sono rappresentate attraverso i valori di opportuni campi, chiamati chiavi esterne, che assumono come valori quelli della chiave primaria di un’altra relazione.

In altre parole una chiave esterna è un attributo (od un insieme di attributi) di una relazione R che assume i valori della chiave primaria di un’altra relazione S.

Serve a rappresentare un’associazione tra R ed S

Page 32: Sistemi per il recupero delle informazioni

32

ESEMPIO - I

Consideriamo l’associazione SEGUE tra STUDENTI e CDS (Corso di Studi).

STUDENTI(Nome:string, Matricola: string, Provincia: string, AnnoNascita:int, SiglaCDS*: string)

CDS(SiglaCDS: string, NomeCDS: string, Tipo: string)

Il fatto che un corso di studi è associato ad uno studente si modella prevedendo nello schema della relazione STUDENTI un campo che assume come valori la chiave primaria di CDS, cioè SiglaCDS.

SiglaCdS* è chiave esterna nella relazione STUDENTI, e serve a rappresentare un’associazione univoca da STUDENTI a CdS

Page 33: Sistemi per il recupero delle informazioni

33

ESEMPIO - II

Page 34: Sistemi per il recupero delle informazioni

34

ESEMPIO - III

Il dominio di SiglaCDS* nella relazione STUDENTI coincide col dominio di SiglaCDS nella relazione CDS

Se in una istanza di STUDENTI l’attributo SiglaCDS assume il valore “XYZ”, deve esistere, nella istanza di CDS una ennupla con SiglaCDS = “XYZ”. Il motivo è ovvio; se una studente è iscritto a “XYZ”, deve esistere il Corso di Studi “XYZ”

Tale proprietà si chiama Vincolo di integrità referenziale, e deve essere sempre soddisfatto da una chiave esterna:

Page 35: Sistemi per il recupero delle informazioni

35

DA MODELLO A OGGETTI A MODELLO RELAZIONALE - I

Data una descrizione di una base di dati con i meccanismi di astrazione del modello a oggetti, la sua trasformazione con il modello relazionale è alquanto laboriosa perché bisogna trattare

• la descrizione delle associazioni• la descrizione delle gerarchie di classi• le eventuali proprietà strutturate e multivalore e passare ad una loro descrizione con attributi atomici.

Inoltre, essendo il modello relazionale meno espressivo del modello a oggetti, in generale si può procedere in più modi nella trasformazione e la scelta fra possibili alternative va fatta cercando di ottimizzare lo spazio di memoria occupata dalla base di dati e le prestazioni delle applicazioni.

Page 36: Sistemi per il recupero delle informazioni

36

DA MODELLO A OGGETTI A MODELLO RELAZIONALE - II

Nella conversione di uno schema espresso con il modello a oggetti gli obiettivi da perseguire sono:

1. rappresentare le stesse informazioni;2. minimizzare la ridondanza;3. agevolare il recupero dei dati in relazione.

In generale nella conversione occorre duplicare delle informazioni e non si possono sempre rappresentare direttamente tutti i vincoli imposti dai meccanismi del modello a oggetti.

Per garantire la coerenza dei dati duplicati, e il rispetto dei vincoli non esprimibili nel modello relazionale, occorre quindi definire opportunamente le operazioni che modificano la base di dati.

Page 37: Sistemi per il recupero delle informazioni

37

DA MODELLO A OGGETTI A MODELLO RELAZIONALE - III

La trasformazione di uno schema a oggetti in uno schema relazionale avviene eseguendo i seguenti passi:

1. rappresentazione delle classi2. rappresentazione delle associazioni uno a uno e uno a molti;3. rappresentazione delle associazioni molti a molti o non binarie;4. rappresentazione delle gerarchie di inclusione;5. rappresentazione degli attributi multivalore;6. appiattimento gli attributi composti

Page 38: Sistemi per il recupero delle informazioni

38

1. Rappresentazione delle classi

Una classe C è rappresentata da una relazione R i cui attributi sono quelli di C

si traduce in

Studenti(Matricola, Nome, AnnoImmatric)

Page 39: Sistemi per il recupero delle informazioni

39

2. Rappresentazione delle associazioni uno a uno e uno a molti

Come abbiamo già visto nell’esempio degli studenti e dei corsi di studi, le associazioni uno a molti si rappresentano aggiungendo agli attributi della relazione rispetto a cui l’associazione è univoca una chiave esterna che riferisce l’altra relazione.

ESEMPIO: la relazione tra corsi di studi e studenti, essendo univoca rispetto ai corsi di studi, si rappresenta aggiungendo agli studenti una chiave esterna SiglaCDS.

Quando l’associazione è uno ad uno la chiave esterna si aggiunge ad unaqualunque delle due relazioni, preferendo quella rispetto a cui l’associazione è totale.

Se l’associazione ha degli attributi, questi vanno aggiunti alla relazione a cui si aggiunge la chiave esterna.

Page 40: Sistemi per il recupero delle informazioni

40

ESEMPIO - I

Studenti(Matricola, Nome, AnnoImmatric, Codice*)CorsidiLa(Codice, Nome, Tipo)

la chiave esterna Codice* rappresenta l’associazione è_iscritto

N.B. È un grave errore fare il contrario. Lo schema:

Studenti(Matricola, Nome, AnnoImmatric)CorsidiLa(Codice, Nome, Tipo, Matricola*)

rappresenta Corsi di Laurea ai quali può essere iscritto un solo studente!

Page 41: Sistemi per il recupero delle informazioni

41

ESEMPIO - II

Se l’associazione è 1 a 1, cioè univoca in entrambi i versi, allora sono corrette entrambe le soluzioni.

Dipartimenti(Nome, Facoltà, Cod*)

Docenti(Cod, Settore)

o

Dipartimenti(Nome, Facoltà)

Docenti(Cod, Settore, Nome*)

La prima soluzione è migliore, ma entrambe sono corrette

Page 42: Sistemi per il recupero delle informazioni

42

3. Rappresentazione delle associazioni molti a molti o non binarie

Un’associazione molti a molti tra due classi si rappresenta aggiungendo allo schema una nuova relazione che contiene due chiavi esterne che riferiscono le due relazioni coinvolte.

precisamente:se A è un’associazione multivalore da R ad S e da S ad R, A è rappresentata con uno schema di relazione in cui gli attributi sono le chiavi primarie pkR di R e pkS di S.

A (pkR*, pkS*)

Se l’associazione ha degli attributi, questi attributi vengono aggiunti alla nuova relazione, e non vanno a far parte della chiave della nuova relazione.

Page 43: Sistemi per il recupero delle informazioni

43

ESEMPIO - I

Una ennupla di Insegna rappresenta una coppia (Corso_di_Lurea, Docente) di oggetti in associazione.

CorsidiLa(Codice,Nome,Facoltà,Tipo)Docenti(CodDoc, Settore)

Insegna(Codice*, CodDoc*)

Il docente identificato dal CodDoc 1592 insegna ai corsi di laurea identificati dai codici Inf, SBC e Mat , il docente identificato dal CodDoc 3014 insegna al corso di laurea identificato dai codici Inf, ecc...

Page 44: Sistemi per il recupero delle informazioni

44

ESEMPIO - II

CorsidiLa(Codice,Nome,Facoltà,Tipo)

Docenti(CodDoc, Settore)

Insegna(Codice*, CodDoc*, NumIns)

Page 45: Sistemi per il recupero delle informazioni

45

4. Rappresentazione delle gerarchie fra classi

Sia data una classe A con due sottoclassi B e C, tali che i tipi associati alle tre classi abbiano, rispettivamente, attributi (XA), (XA XB) e (XA XC), e sia KA la chiave primaria di A.

Nel modello relazionale vi sono almeno tre modi diversi di rappresentare questa situazione:

1. Relazione unica

2. Partizionamento verticale

3. Partizionamento

Page 46: Sistemi per il recupero delle informazioni

46

4. Rappresentazione delle gerarchie fra classiRelazione unica

Si definisce un’unica relazione con attributi (XA XB XC D) che raccoglie tutti gli elementi delle tre classi; gli attributi XB e XC possono assumere il valore nullo, e l’attributo D serve a indicare la classe a cui appartiene l’elemento.

ESEMPIO: Consideriamo la classe Persone con attributi CF, Nome e Tel e due sottoclassi: Studenti, con attributi Matricola e Facoltà, e Lavoratori, con attributi Attività e Reddito

Secondo la relazione unica definiremo un’unica relazione Persone con tutti gli attributi

Persone(CF, Nome, Tel, Matricola, Facoltà, Attività e Reddito)

Page 47: Sistemi per il recupero delle informazioni

47

ESEMPIO

Un solo schema di relazione, che contiene tutti gli attributi

Con questa soluzione viene ignorata la gerarchia: si perdono le sottoclassi

Page 48: Sistemi per il recupero delle informazioni

48

4. Rappresentazione delle gerarchie fra classiPartizionamento verticale

Si definiscono tre relazioni RA(XA), RB(KA*, XB), RC(KA*, XC), dove RA contiene tutti gli elementi della classe A, anche se stanno in qualche sottoclasse, mentre RB ed RC contengono solo quegli attributi, degli elementi di B e di C, che non sono in XA (attributi propri delle sottoclassi), ed una chiave esterna KA* che permette di ritrovare in RA il valore degli altri attributi.

ESEMPIO si definiscono le relazioni Persone, con attributi CodFisc, Nome e Tel, Studenti con attributi CodFisc, Matricola e Facoltà e la relazione Lavoratoricon attributi CodFisc, Attività e Reddito. La relazione Persone contiene il codice fiscale il nome ed il telefono di tutte le persone, mentre le altre due relazioni contengono gli attributi propri delle sottoclassi, nonché il codice fiscale, che permette di risalire al nome;

Persone(CodFisc, Nome, Telefono)Lavoratori(CodFisc*, Attività, Reddito)Studenti(CodFisc*, Matricola, Facoltà)

Page 49: Sistemi per il recupero delle informazioni

49

ESEMPIO

Persone(CodFisc, Nome, Telefono)Lavoratori(CodFisc*, Attività, Reddito)Studenti(CodFisc*, Matricola, Facoltà)

Page 50: Sistemi per il recupero delle informazioni

50

4. Rappresentazione delle gerarchie fra classiPartizionamento orizzontale

Si definiscono tre relazioni RA(XA), RB(XA,XB), RC(XA, XC), dove RA contiene solo gli elementi della classe A che non stanno in nessuna delle sottoclassi, mentre RB ed RC contengono tutti gli elementi di B e di C

NOTA: se le sottoclassi costituiscono una copertura, la relazione RA(XA) non viene definita perché sarebbe sempre vuota.

ESEMPIO: trattandosi di sottoclassi che non soddisfano il vincolo di copertura si definiscono le relazioni Persone con attributi CodFisc, Nome, Telefono, Studenti con attributi CodFisc, Nome, Telefono, Matricola e Facoltà e la relazione Lavoratori con attributi CodFisc, Nome, Telefono, Attività e Reddito. La relazione Persone contiene le informazioni delle persone che non sono né studenti né lavoratori, la relazione Studenti contiene le informazioni degli studenti e la relazione Lavoratori contiene le informazioni dei lavoratori.

Persone(CodFisc, Nome, Telefono)Lavoratori(CodFisc*, Attività, Reddito)Studenti(CodFisc*, Matricola, Facoltà)

Page 51: Sistemi per il recupero delle informazioni

51

ESEMPIO

Tre schemi indipendenti, uno per ogni classe, contenenti tutti gli attributi di ciascuna classe

Anche con questa soluzione viene ignorata la gerarchia: si perde la superclasse

Si osservi che con nessuna delle tre soluzioni è in generale possibile esprimere i vincoli strutturali della gerarchia, vale a dire i vincoli di disgiunzione e di totalità

Page 52: Sistemi per il recupero delle informazioni

52

5. Rappresentazione delle proprietà multivalore

Una proprietà multivalore di una classe C si rappresenta eliminando il corrispondente attributo da C e creando una relazione con due attributi: una chiave esterna che fa riferimento alla chiave primaria di C ed un attributo che corrisponde all’attributo multivalore da trasformare.

Un oggetto con chiave primaria K ed in cui l’attributo assume valore A1, ..., An si rappresenta poi inserendo nella nuova relazione n coppie (K, A1), ..., (K,An).

ESEMPIO: si immagini che un utente abbia attributi Codice, Cognome e Telefoni, con Telefoni multivalore.

Applicando la trasformazione, si ottengono le due seguenti relazioni:

Utenti(Codice, Cognome)TelefoniUtenti(Codice*, Telefono)

Page 53: Sistemi per il recupero delle informazioni

53

ESEMPIO

Film(CodFilm,Titolo,Regista,Anno)

Attori(CodFilm*, Attore)

Page 54: Sistemi per il recupero delle informazioni

54

6. Appiattimento degli attributi composti

Se un attributo A di uno schema di relazione è di tipo strutturato con campi Ai, si sostituisce A con gli attributi Ai.

Se A faceva parte della chiave primaria dello schema di relazione, si sostituisce A con gli attributi Ai nella chiave, e poi si verifica che non esista un sottoinsieme degli attributi della nuova chiave primaria che è esso stesso una chiave.

Sullo schema relazionale ottenuto si ripetono questa trasformazione e la precedente finché esistono schemi di relazioni con proprietà composte e proprietà multivalore.

ESEMPIO: se gli Utenti hanno un attributo strutturato Indirizzo con attributi Via, CAP e Città, applicando la trasformazione alla relazione

Utenti(Codice, Cognome, Indirizzo)

si ottiene lo schema di relazione

Utenti(Codice, Cognome, Via, CAP, Città)

Page 55: Sistemi per il recupero delle informazioni

55

Riassumendo

Le regole di traduzione Entità: diventano tabelle ed i loro identificatori chiavi primarie Associazioni 1-1: se obbligatorie si procede come per le 1-N scegliendo il

lato in cui includere gli attributi e la chiave esterna; se una opzionale si includono gli attributi e la chiave esterna sul lato“obbligatorio”; se entrambe opzionali si costruisce una tabella autonoma come per il caso N-N.

Associazioni1-N:gli attributi dell’associazione e la chiave primaria della tabella relativa all’entità dal lato “N” sono inclusi nella tabella relativa all’entità dal lato“1”.

Associazioni N-N: diventano tabelle con chiave primaria formata dall’unione delle chiavi delle entità coinvolte

Page 56: Sistemi per il recupero delle informazioni

56

Confronto tra modello E-R e modello Relazionale

Nonostante una evidente analogia tra Classe e Relazione Oggetto e Ennupla

Attributo(E-R) e Attributo(Rel)sussiste in realtà una significativa differenza tra i concetti nei due modelli

Non sempre una relazione rappresenta una classe: può rappresentare una associazione o un attributo multivalore

Non sempre un’ ennupla rappresenta un oggetto: può rappresentare una coppia di oggetti in associazione o un possibile valore di un attributo multivalore

Non sempre un attributo Rel rappresenta un attributo E-R: può rappresentare un oggetto di un’altra classe (chiave esterna)

Page 57: Sistemi per il recupero delle informazioni

57

La Conoscenza Astratta nel modelloRelazionale

Nel modello relazionale si possono esprimere i seguenti vincoli: Vincolo di chiave Vincolo di chiave esterna Tipo di un attributo Attributo obbligatorio Vincoli strutturali delle associazioni (non completamente)

Page 58: Sistemi per il recupero delle informazioni

58

La Conoscenza Astratta nel modelloRelazionale

Rispetto al modello E-R, non è possibile rappresentare i vincoli delle gerarchie, mentre è possibile, solo in parte, rappresentare i vincoli strutturali delle associazioni

Questo schema E-R si traduce nello schema relazionale

S(h, a, k*)

T(k, b)

che rappresenta l’univocità e la totalità di R da S a T, ma non consente di esprimere la sua totalità da T ad S.

Page 59: Sistemi per il recupero delle informazioni

Esercizio

La segreteria di un corso di laurea deve gestire alcune informazioni relative all’orario delle lezioni. informazioni: aule, corsi, lezioni

le aule sono identificate da un codice, di ogni aula interessa il numero dei posti, l’edificio in cui è situata, se ha o non ha proiettore

alcune aule sono dotate di calcolatori, in questo caso interessa sapere il numero dei pc

i corsi sono identificati da un codice; di ogni corso interessa il nome e il docente

le lezioni sono caratterizzate da un’ora d’inizio, un’ora di fine, un giorno della settimana, il semestre

ogni lezione è tenuta in un’aula e si riferisce ad un corso

59