Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Vincoli di integrità modello ER

Regole che si esprimono nello schema e devono essere rispettate da ogni istanza

Vincoli di cardinalità sulle relazioni

Determina quante volte ogni istanza di un entità può partecipare ad una relazione in un

determinato ruolo, ovvero quante volte l'istanza dell'entità può comparire nella stessa

istanza della relazione.

Semantica: dato uno schema S in cui è definito un vincolo di cardinalità (x,y) associato

ad un ruolo U (corrispondente ad un entità E) in una relazione R, allora in ogni istanza di I

istanze(I,E),

nello schema S, per ogni e in il numero di istanze di R che in I hanno e come

x ≤ numero istanze ≤ y

componente nel ruolo U è:

Sintassi: Ogni impiegato può avere da 1 fino a 5 incarichi

Ogni incarico può essere assegnato fino a 50 volte

OSS mancanza del vincolo esplicito implica (0,n)

ATTENZIONE nel caso di ISA tra entità l'entità figlia eredita anche il vincolo, nel caso si

voglia modificarlo questo può essere solo più ristretto.

Vincoli di cardinalità sugli attributi

Di base gli attributi hanno cardinalità implicita (1,1), è possibile modificarla per avere:

- Opzionalità (valore può non essere presente, NULL)

- Attributi multivalore

Semantica: dato uno schema S su cui è definito un attributo A in n entità E , E , …, E ,

1 2 n

rispettivamente con domini D , D , …, D , e con cardinalità (x , y ), (x , y ), … (x , y ), in

1 2 n 1 1 2 2 1 n

ogni istanza I di S, A è una relazione del tipo:

⊆ ∪ ∪ ∪

istanze(I,A) istanze(I,E

(istanze(I,E ) … )) x D , (D … D )

1 n 1 2 n

∈ istanze(I,E istanze(I,A)

e tale che, per ogni i vale: se a ), allora il numero di coppie (a,b) in

i ∈ ∈

istanze(I,A),

è soggetto ad i vincoli di cardinalità (x , y ), e per ogni (a,b) si ha che b D

i i i

OSS nel caso in cui due entità dovessero avere lo stesso attributo questo farebbe parte

dello stesso dominio, quindi se non sono disgiunte deve corrispondere in entrambe

Sintassi: 11

Vincoli di identificazione di identità

Insieme di proprietà (attributi e/o relazioni) che permettono di identificare univocamente le

istanze di un entità, ovvero non esistono 2 istanze dell'entità che hanno lo stesso valore

per tutte le proprietà che compongono l’identificatore, possono essere di 2 tipi:

- Interno => formato solo da attributi dell'entità

- Esterno => formato da ruoli nelle relazioni ed eventuali attributi (id debole)

ATTENZIONE ogni attributo e ruolo deve avere cardinalità (1,1)

Semantica: dato uno schema S in cui è definito un vincolo di identificazione che

specifica un identificatore per l’entità E formato dagli attributi A , A , …, A e/o dalle

1 2 n

relazioni relazioni R (U ), R (U ), …, R (U ) (tutti con cardinalità (1,1)), allora in ogni istanza

1 1 2 2 n n istanze(I,E),

I di S, prese due istanze qualunque e ed e in esse differiscono almeno in un

1 2

valore A o almeno nella partecipazione con ruolo U in una R

i i i

OSS gli identificatori di una sola entità possono essere molteplici.

Sintassi v1 (vincoli interni):

Sintassi v2 (vincoli esterni):

Extra

Se un entità E ha un

identificatore (1,1) su una

relazione ed almeno un altra

entità ha (0,1) allora

l’identificatore esterno è

implicito, non vale il contrario

poiché valori differenti ex.

possono essere associati ad E 12

Vincoli di identificazione di relazioni

Permette di identificare univocamente le istanze di una relazione, non possono quindi

esistere 2 istanze della relazione aventi gli stessi valori per tutte le proprietà che la

compongono.

Semantica: dato uno schema S in cui è definito un vincolo di identificazione che

specifica un identificatore per una relazione R formato da dagli attributi A , A , …, A (tutti

1 2 n

con cardinalità (1,1)) e/o dalle relazioni relazioni R (U ), R (U ), …, R (U ), allora in ogni

1 1 2 2 n n

istanze(I,R),

istanza I di S, prese 2 istanze qualunque r ed r in esse differiscono almeno

1 2

in un valore A o almeno nella partecipazione con ruolo U in una R

i i i

OSS nelle relazioni esiste un vincolo implicito dato da tutti i ruoli che partecipano ad essa

Sintassi:

Extra Vincolo (1,1) o (0,1) implica identificatore

di relazione implicito sull'entità

Considerando che un vincolo (1,1) implica

identificatore per l'entità allora anche le

altre entità che partecipano alla relazione,

potendo essere accoppiate una sola volta

con essa hanno un identificatore implicito

corrispondente nella relazione

Vincoli esterni

Contenuti nel dizionario dei dati, permettono di specificare intrrelazioni non direttamente

esprimibili tramite il diagramma.

Si possono esprimere in tabelle esterne allo schema tramite:

- formalismi opportuni (ex. Logica matematica)

- Linguaggio naturale 13

PROGETTAZIONE LOGICA

Serve per tradurre lo schema concettuale in uno schema logico che rappresenta gli stessi

dati utilizzando il modello logico del DBMS e tiene conto del carico applicativo per

l’ottimizzazione delle prestazioni (tempo esecuzione / spazio in memoria).

Il carico applicativo è dato da:

- volume dei dati

- Caratteristiche delle operazioni => batch/interattiva e frequenza operazioni

1. Ristrutturazione schema ER

Serve per rendere tutti i costrutti traducibili nel modello logico del DBMS (ex. relazionale),

si divide in più fasi:

Preparazione dello schema

0. => si riportano tutti i vincoli, anche quelli impliciti

Analisi delle ridondanze

1. => tenendo conto delle informazioni sul carico applicativo si

sceglie quali ridondanze utili tenere e quali eliminare per favorire efficenza

Eliminazione attributi multivalore

2. => indispensabile poiché modello relazionale

accetta un solo valore per attributo, vengono sostituiti da relazioni binarie.

Eliminazione degli attributi composti

3. => come per punto 2

Eliminazione di ISA e generalizzazioni

4. => poiché questi due concetti non sono

previsti nel modello relazionale si trasformano anch’esse:

nel caso di entità si trasformano in relazioni binarie, con aggiunta di vincoli nel

• caso di generalizzazioni

nel caso di relazioni basta eliminare l’ISA ed aggiungere un vincolo esterno

OSS bisogna fare attenzione al fatto che nel caso di ISA non si hanno più istanze

in comune tra padre e figlio ma entità disgiunte a coppie come per le

generalizzazioni, questo implica inoltre l’aggiunta di altri vincoli esterni per

eventuali attributi in comune

Scelta identificatori principali

5. => sia nel caso di entità che di relazioni si possono

avere più identificatori, bisogna quindi sceglierne uno secondo i criteri:

Essenzialità

• Semplicità (formato da pochi elementi)

• Utilizzo più frequente

• (solo entità) preferenza id interni

• (solo entità) Nel caso di id esterni si privilegia quello proveniente da ISA

• (solo entità) Possibile aggiungere eventuale codice

OSS è importante tener conto della formazione di cicli se si scelgono id esterni

(solo relazioni) nel caso di ISA si opta per ruolo entità figlia

Riformulazione vincoli esterni

6. Riformulazione di operazioni e carico applicativo

7. 14

Trasformazione attributi multivalore (2)

Entità:

Relazione, caso generale:

Relazione, caso attributo (1,n):

Trasformazione attributi composti (3) OSS si può realizzare

anche come entità come

per gli attributi multivalore

vincolo esterno: ciascun attributo è definito solo se sono definiti anche tutti gli altri 15

Trasformazione ISA entità (4)

solo in presenza di attributi in comune si ha vincolo esterno: ∈

esterno: istanze(I,E),

{vincolo per ogni istanza I dello schema S, per ogni e se esistono

∈ ∈ ∈ ∈

istanze(I,F), istanze(I,G) istanze(I,ISA-E-F) istanze(I,ISA-E-G),

f e g tali che (f,e) e (g,e)

∈ ∈

istanze(I,AX) istanze(I,AX)}

allora esiste ax tale che <f,ax> e <g,ax>

Trasformazione generalizzazione entità (4)

vincolo esterno:

generalizzazione completa => ogni istanza di E partecipa a ISA-E-F oppure a ISA-E-G,

ma non a entrambi

Generalizzazione non completa => nessuna istanza di E partecipa sia a ISA-E-F che a

ISA-E-G

Trasformazione generalizzazione relazione semplice (4)

vincolo esterno: ogni istanza di Q è anche istanza di R 16

2. Traduzione diretta

Traduce automatica dello schema ER ristrutturato in un schema relazionale che può

essere utilizzato come schema logico massima, può richiedere altre ristrutturazioni

Notazione

NomeEntità ( attributo1, attributo2, attributo3*…)

foreign key: NomeEntità[ attributo1, …] NomeAltraEntità[ attributo1, …]

inclusione: NomeEntità[ attributo1, …] NomeAltraEntità[ attributo1, …]

chiave: altri attributi degnati con identificatore (non chiave primaria)

vincolo: vincoli esterni non traducibili

Sottolineato => chiave primaria

Asterisco => attributo può essere NULL

Traduzione di entità

Ogni entità ER viene tradotta in una tabella (relazione) dello schema relazionale, in

generale si seguono le regole:

- Ogni attributo dell'entità diventa attributo della tabella

- L'identificatore principale diventa la chiave primaria, altri semplici vincoli di chiave

- Gli attributi (0,1) vengono asteriscati

Inoltre in caso di accorpamento (identificatore esterno):

- Ogni ruolo delle entità collegate alla ER-relazione diventa attributo della tabella

- Per ogni ruolo inserito nella tabella si crea un vincolo di foreign key su attributi che ne

compongono la chiave primaria

OSS Inoltre se il ruolo ha cardinalità (1,1) si aggiunge nella sua tabella un vincolo di

foreign key, nel caso di (1,n) si aggiunge un vincolo di inclusione

- Gli attributi della ER-relazione diventano attributi della tabella, inoltre nel caso sia

definito un identificatore della ER-relazione su di essi (ed eventuali altre entità), questi

diventano ulteriori chiavi per la tabella dell'entità

Esempi:

- Senza accorpamento 17

- Con accorpamento (caso base)

- Con accorpamento (chiave completamente esterna)

OSS Notare presenza vincolo di inclusione su G

e chiave data da D su E

- Con accorpamento (chiave completamente esterna e vincoli (1,1))

OSS Notare come nel caso in cui l’identificatore

sia completamente esterno e tutte le altre

relazioni abbiano un vincolo (1,1) è possibile

utilizzare uno solo dei ruoli come chiava primaria

per la tabella 18

- Accorpamento derivante da ISA

OSS Notare come l’accorpamento dell’ISA si

effettua nella relazione figlia e chiave primaria

rimane del padre

- Accorpamento derivante da generalizzazione

Completa

Non completa 19

Traduzione di ER-relazione

Da effettuare solo su ER-relazioni che non sono state accorpate nelle tabelle delle entità,

secondo le regole:

- Ogni attributo della ER-relazione diventa attributo della tabella

- Ogni ruolo associato alla ER-relazione diventa attributo della tabella

- Per ogni ruolo associato alla ER-relazione si crea un vincolo di foreign key

- L'identificatore principale diventa la chiave primaria, altri semplici vincoli di chiave

OSS se non specificato si prende tutto

- Gli attributi (0,1) vengono asteriscati

Esempi:

- Caso base

- Caso con identificatore esplicito e vincoli di inclusione 20


ACQUISTATO

1 volte

PAGINE

24

PESO

12.03 MB

AUTORE

duke0000

PUBBLICATO

4 mesi fa


DETTAGLI
Esame: Basi di dati
Corso di laurea: Corso di laurea in ingegneria informatica e automatica
SSD:
A.A.: 2018-2019

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher duke0000 di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università La Sapienza - Uniroma1 o del prof Lenzerini Maurizio.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Basi di dati

Basi di Dati - Come fare gli esercizi e tutta la teoria
Appunto
Sql (basi di dati)
Appunto
Algoritmi e Strutture Dati - Tutta la teoria e tutti i codici che servono
Appunto
Basi di Dati - Come fare gli esercizi e tutta la teoria
Appunto