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