DOCUMENTAZIONE DI SCHEMI E/R

Uno schema E/R non è quasi mai sufficiente da solo a rappresentare tutti
gli aspetti e vincoli di un dominio applicativo, per varie ragioni:
1. in uno schema E/R compaiono solo i nomi dei vari concetti ma questo
può essere insufficiente per comprenderne il significato.
2. vari vincoli di integrità (proprietà dei dati rappresentati) non possono
essere espressi direttamente dai costrutti del modello E/R

Documentazione di schemi E-R: uno schema E/R è corredato con una
documentazione di supporto che faciliti l'interpretazione dello schema
stesso e a descrivere vincoli di integrità non esprimibili in E/R

Regole aziendali o business rules
–
Una descrizione di un concetto (entità, associazione e attributo) dello
schema E-R (Dizionario dei dati)
–
Un Vincolo di integrità, sia esso la documentazione di un vincolo
dello schema E/R o la descrizione di un vincolo non esprimibile in E/R
–
Una Derivazione ovvero un concetto che può essere derivato calcolo
da altri concetti dello schema (Dato Derivato)
1
Esempio: Dizionario dei dati
Entità
Descrizione
Attributi
Identificatore
FACOLTA’
Facoltà Universitaria
CodFac, NumStudenti
CodFac
STUDENTE
Studente Universitario
Matr
Matr, Facoltà
Associazione
Descrizione
Entità Coinvolte
Attributi
RAPPRES
Associa ad una Facoltà STUDENTE (0,1)
i propri rappresentanti FACOLTA’ (3,3)
ISCR
Associa ad una Facoltà STUDENTE (1,1)
i propri iscritti
FACOLTA’ (1,N)
Data
2
Esempio: Vincoli di Integrità e di Derivazione


Regole Aziendali espresse nello schema E/R:
1. Uno studente può essere rappresentante di una sola facoltà
2. La matricola di uno studente è univoca all’interno della sua facoltà
3. Una facoltà ha esattamente tre rappresentanti
4. Una facoltà ha almeno uno studente iscritto
Regole Aziendali, non incluse (non esprimibili) nello schema E/R:
A. Il numero di studenti NUMSTUDENTI di una facoltà è pari al numero
di studenti iscritti alla facoltà (associati tramite ISCR)
[REGOLE DI DERIVAZIONE]
B.
I rappresentanti di una facoltà devono essere studenti di quella
facoltà [VINCOLO DI INTEGRITA’]
3
IMPLEMENTAZIONE REGOLE AZIENDALI

Quando si produce lo schema logico e quindi il codice SQL, tutte le
regole aziendali - sia quelle già espresse in E/R che quelle non espresse,
devono essere opportunamente implementate.

Attraverso la progettazione logica solo alcuni vincoli di integrità espressi
nello schema E/R, tra i quali in particolare
1. Identificatori (Vincoli di chiave)
2. Partecipazione con molteplicità unitaria ad una associazione
vengono riportati nello schema logico e quindi in SQL!

Esempio: Traduzione in relazionale dello schema E/R:
FACOLTÀ(CODFAC,NUMSTUDENTI)
STUDENTE(MATR,CODFAC)
FK : CODFAC REFERENCES FACOLTÀ
RAPPRES(MATR,CODFAC,CODFAC_RAPPRESENTATA,DATA)
FK : MATR,CODFAC REFERENCES STUDENTE
FK : CODFAC_RAPPRESENTATA REFERENCES
FACOLTÀ NOT NULL
4
IMPLEMENTAZIONE REGOLE AZIENDALI

Per le regole aziendali
1. Espresse in E/R ma non sono esprimibili nello schema logico:
cardinalità con un valore preciso, proprietà di copertura, …
2. Non esprimibili in E/R, in particolare regole di derivazione
si hanno diverse modalità di implementazione:
1.
2.
Soluzione lato server:
Nel DBMS, ovvero direttamente sul DB, attraverso elementi avanzati del
linguaggio SQL, quali trigger e CHECK complessi nella CREATE TABLE

Queste regole non potranno mai essere violate!
Soluzione lato client:
Nelle applicazioni che accedono al DB, attraverso la definizione di
opportune procedure in un linguaggio di programmazione o nelle
interfacce per accedere al DB (ad esempio: maschere in ACCESS)

Queste regole possono essere violate dalle altre applicazioni!
5
ESEMPIO: SOLUZIONE LATO SERVER

Trigger o Regole Attive (SQL-99) : Programmi attivati
automaticamente dal DBMS al verificarsi di determinate
condizioni e operazioni sulle tabelle.
In un trigger vengono specificati tre elementi (EVENTCONDITION- ACTION ): al seguito della modifica specificata in
EVENT se è vera la condizione CONDITION vengono specificate
le azioni di ACTION

Esempio: trigger per assicurare che max-card(FACOLTA’,RAPPRES)=3

1.
2.
3.

EVENT : inserimento in RAPPRES di una tupla (-,-,CODF2,-)
CONDITION : RAPPRES contiene 3 tuple con (-,-,CODF2,-)
ACTION: abort (l’inserimento non viene effettuato)
Soluzioni particolari: La regola (B.) non espressa in E/R equivale a
dire che in RAPPRES gli attributi CODFAC e CODFAC_RAPPRESENTATA
sono uguali: si può mettere un unico attributo
RAPPRES(MATR,CODFAC,DATA)
FK : MATR,CODFAC REFERENCES STUDENTE
6
ESEMPIO: SOLUZIONE LATO CLIENT

Esempio: Nella maschera per l’inserimento delle facoltà si
inseriscono esattamente tre box per ottenere
card(FACOLTA’,RAPPRES)=(3,3)

Se i dati sono inseriti senza usare la maschera ma
direttamente nella tabella RAPPRES il vincolo viene violato!
7
INCONSISTENZA di uno schema con vincoli

INCONSISTENZA: lo schema con vincoli di integrità non
ammette alcuna istanza ovvero non è possibile soddisfare i
vincoli di integrità presenti nello schema
Esempio
di schema E/R inconsistente

CONTROLLO DI CONSISTENZA : algoritmi per decidere se
uno schema è consistente o meno
8
Scarica

Esempio