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: in uno schema E/R compaiono solo i nomi dei vari concetti ma questo può essere insufficiente per comprenderne il significato. 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)
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à i propri rappresentanti STUDENTE (0,1) FACOLTA’ (3,3) Data ISCR Associa ad una Facoltà i propri iscritti STUDENTE (1,1) FACOLTA’ (1,N)
Esempio: Vincoli di Integrità e di Derivazione Regole Aziendali espresse nello schema E/R: Uno studente può essere rappresentante di una sola facoltà La matricola di uno studente è univoca all’interno della sua facoltà Una facoltà ha esattamente tre rappresentanti Una facoltà ha almeno uno studente iscritto Regole Aziendali, non incluse (non esprimibili) nello schema E/R: Il numero di studenti NUMSTUDENTI di una facoltà è pari al numero di studenti iscritti alla facoltà (associati tramite ISCR) [REGOLE DI DERIVAZIONE] I rappresentanti di una facoltà devono essere studenti di quella facoltà [VINCOLO DI INTEGRITA’]
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 Identificatori (Vincoli di chiave) 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
IMPLEMENTAZIONE REGOLE AZIENDALI Per le regole aziendali Espresse in E/R ma non sono esprimibili nello schema logico: cardinalità con un valore preciso, proprietà di copertura, … Non esprimibili in E/R, in particolare regole di derivazione si hanno diverse modalità di implementazione: 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!
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 (EVENT- CONDITION- 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 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
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!
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