Capitolo terzo. Lo schema logico secondo il modello relazionale.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Capitolo terzo. Lo schema logico secondo il modello relazionale."

Transcript

1 .

2 3.1. Introduzione La fase della progettazione concettuale dei dati porta a definire lo Schema Concettuale. Il modello concettuale cerca di dare una struttura ai dati evitando il più possibile i dettagli realizzativi, per cui con lo Schema Concettuale si otterrà un documento di base che descrive la struttura del sistema informatico in maniera astratta, vale a dire astratta dal modello concettuale prescelto. Quindi, è un documento che guiderà i progettisti, nella fase della progettazione logica, alla realizzazione dello Schema logico secondo un particolare modello scelto. Un modello dei dati può essere definito come un insieme di concetti, descritti tramite un preciso formalismo, il cui scopo è quello di permettere una rappresentazione ed una manipolazione delle informazioni che costituiscono il mondo della realtà 1. Date afferma che il modello dei dati è sempre costituito da tre componenti fondamentali : A. un insieme di oggetti B. un insieme di operatori C. un insieme di regole di integrità L insieme degli oggetti è costituito dallo schema logico della base dei dati secondo le regole del modello. Gli operatori permettono di realizzare sul database funzioni come ricerca, aggiornamento, interrogazioni, ecc., mentre le regole di integrità definiscono gli stati di congruenza del modello. Un modello può essere definito (Codd) come uno strumento che allo stesso tempo realizza una rappresentazione logica della realtà e una manipolazione di questa rappresentazione. Il modello scelto per realizzare lo schema concettuale è quello relazionale elaborato da Codd nel Si tratta di un modello matematico per la descrizione dello schema logico in maniera indipendente dalla realizzazione fisica il quale trae le sue origini dalla teoria degli insiemi. Molti autori, in 117

3 seguito, hanno approfondito l argomento cercando di formalizzare i diversi problemi che l utilizzo del modello dei dati ha suscitato, volendo rappresentare in un sistema informatico un frammento del mondo reale. Questo modello si è sempre più affermato nel mondo dei database divenendo, ormai, il modello standard adottato per la descrizione dello schema logico dei database, anche se nessun gestore di database può dirsi, attualmente, completamente relazionale Il modello relazionale dei dati Innanzi tutto vengono date alcune definizioni : Coppia ordinata : Dati due insiemi D1 e D2, due elementi : d1? D1 d2? D2 considerati in un dato ordine costituiscono una coppia ordinata : (d1, d2) Tuple : Una tuple è una generalizzazione del concetto di coppia ordinata. Dati n insiemi : D1, D2,...,Dn una tuple è una sequenza di n elementi ordinati : (d1,d2,...,dn) con : di? Di i = 1,2,...,n Relazione :un insieme di tuples costituisce una relazione definendola in questo modo (Nazzini) : Dati n insiemi (o DOMINI), non necessariamente distinti : D1, D2,...,Dn una relazione R sui domini D1,D2,...Dn è un insieme di tuples : d1,d2,...,dn 1 Schiavetti :Database, Jackson

4 con : di? Di i = 1,2,...,n A1 A2... An d1 d2... dn d 1 d 2... d n : : : : : : : : d(m)1 d(m)2... d(m)n Alla base del modello relazionale si trova la relazione detta anche tabella o schema poiché questa è costituita su di una struttura di righe dette tuple e colonne dette domini della tabella. Le testate della tabella Ai si dicono attributi, mentre il numero n dei domini viene detto grado o arietà della tabella. Le tabelle che hanno un solo attributo si dicono unarie, quelle con due attributi binarie, con tre ternarie e via dicendo. Il numero delle tuple si dice cardinalità (m+1). Le proprietà delle relazioni possono essere così riassunte 2 :? I valori di ogni colonna sono fra loro omogenei. I valori di un attributo appartengono allo stesso dominio (interi, stringhe di caratteri, ecc..). Quindi, si può affermare che gli attributi rappresentano l uso dei domini in una determinata tabella? l ordinamento delle colonne è irrilevante. Poiché sono sempre identificate per nome e non per posizione? l ordinamento delle righe è irrilevante. Poiché queste sono identificate per contenuto e non per posizione? Lo schema di una tabella R(A) è un'espressione che contiene il nome della tabella seguito dall elenco di tutti gli attributi della tabella stessa. Può essere sia l intestazione della tabella sia questa espressione : (codice, descrizione, giacenza) Prodotto 2 Atzeni, Batini, De Antonellis :Introduzione alla teoria relazionale, Masson 119

5 Chiavi ed attributi di una relazione Il concetto di chiave viene elaborato nella teoria relazionale poiché le tabelle devono essere costruite in modo tale che ogni tupla deve essere distinta per mezzo di uno o più attributi. Quindi, scopo delle chiavi è identificare univocamente queste tuple. Si distingue fra superchiave, chiave candidate e chiave primaria. La superchiave è l insieme degli attributi che identificano univocamente una tuple. La chiave candidata è in numero minimo di attributi necessari per identificare univocamente una tuple. Può essere definita come una superchiave dalla quale possono essere eliminati attributi senza distruggere la proprietà della identificazione univoca della tuple. Per cui una chiave candidata è una superchiave con la proprietà di non ridondanza 3. Fra le chiavi candidate, che possono essere più di una, se ne sceglierà una che ha il minor numero di attributi e che, a parità di attributi, ha il minor numero di caratteri. Questa è la chiave primaria e sarà la chiave scelta fra le chiavi candidate a rappresentare univocamente una tuple. Rispetto alla chiave della tabella si possono distinguere gli attributi primi, cioè quelli che fanno parte di almeno una chiave candidata, e i restanti attributi non primi. Infine, quegli attributi che possono costituire la chiave di altre tabelle sono detti chiave esterna e permettono di stabilire associazioni fra le tabelle che rappresentano diverse entità Traduzione dei diagrammi E R di uno schema concettuale in un modello relazionale Si può tradurre abbastanza agevolmente gli schemi E\R secondo le strutture delle basi di dati relazionali seguendo, però, alcune regole Entità e gerarchie IS-A 3 Nazzini, Sanges, Vaccaro :Introduzione ai Data Base relazionali 120

6 Le entità degli schemi E R vengono tradotte in altrettante tabelle. Gli attributi delle entità vengono riportati nelle colonne mentre le occorrenze delle entità saranno tradotte in tuples. Per tradurre, invece, le strutture IS-A nel modello relazionale si possono adottare diverse soluzioni. Una può essere quella di inserire tutto in una tabella che contenga gli attributi comuni e gli attributi caratteristici di ciascuna classe. Per questo in ogni tupla saranno vuote alcune colonne relative ad alcuni attributi a seconda che, come nell esempio del capitolo 2, il dipendente appartenga alla categoria impiegati o dipendenti. In questo caso ci sarà uno spreco di spazio. Un altra soluzione, che può porre rimedio a questo inconveniente, è quello di creare una tabella che contenga tutti gli attributi comuni e inserire gli attributi specifici dei sottoinsiemi definiti dalla IS-A in altre tabelle legate a questa da associazioni 1 ad 1. Quindi, nell esempio della gerarchia IS-A individuata dal diagramma dipendenti si può inserire in una tabella gli attributi comuni e realizzare due tabelle, operai ed impiegati, in cui inserire gli attributi specifici delle due categorie Associazioni 1 a 1 e 1 a n Per tradurre il legame tra due entità che viene realizzato da un'associazione 1 a 1, si deve inserire tra gli attributi di almeno una delle entità la chiave esterna, cioè quell attributo o insieme di attributi che identificano l entità ad essa collegata. Le associazioni 1 a n sono tradotte in modo analogo. Occorre però prestare attenzione a non inserire però attributi ripetuti, siano chiavi esterne o attributi normali, perché possono essere causa di problemi nella gestione delle tabelle. Ad esempio, in una relazione 1 a n fra due entità, cliente e numero d ordine, inserisco la chiave primaria della tabella cliente nella tabella ordini divenendo chiave esterna. Se facessi l inverso, ovvero se inserissi come chiave esterna nella relazione clienti la chiave della tabella ordini, dovrei inserire per ogni cliente tutti gli ordini creando molte tuples. 121

7 Le associazioni tra entità, del tipo 1 a 1 o 1 a n, riportate sui diagrammi E\R possono aver attributi propri. Questi attributi possono essere riportati in altrettante colonne di una delle tabelle in cui sono state tradotte le entità Associazioni n a m Per tradurre le associazioni n a m (molti a molti) è necessario introdurre una nuova tabella. Questo procedimento, sconsigliato per le associazioni 1 a 1 e 1 a n, è la strada obbligata per questo tipo di associazione (poiché col metodo precedente si avrebbe una grande proliferazione di attributi multipli). La nuova tabella includerà gli attributi propri della associazione e le chiavi esterne che permettono i collegamenti con le due tabelle traduzione delle entità che tramite essa sono associate. La chiave primaria della nuova tabella è costituita dalla coppia primaria di chiavi esterne. Si spezza così un'associazione m a n in due associazioni 1 a n. F A T T U R A Articoli Torrone Spumante Gianduia Panettone Panforte Cioccolata Panepepato Champagn Pandoro e Figura 3.1. Esempio di matrice. Una relazione molti a molti si presta ad essere rappresentata sotto forma di matrice rettangolare. In questo caso si ha una matrice fra articoli e fatture. La matrice letta in verticale indica in quale fattura è stato venduto l articolo. Letta orizzontalmente indica quali articoli sono stati venduti in una data fattura. Il numero nella casella può indicare la quantità venduta nella fattura. (Mcmicrocomputer) Regole di integrità Il modello relazionale prevede due regole generali di integrità. Queste sono la integrità di entità e la integrità referenziale (o di riferimento). 122

8 Integrità di entità. Se A è un attributo della relazione R e partecipa alla chiave primaria, non può avere valori Null. Questo vuol dire che tutti gli attributi che partecipano alla chiave primaria non possono essere definiti su di un dominio che contempli valori Null. Integrità di riferimento. Se nella relazione R la chiave primaria è rappresentata dall attributo ( o insieme di attributi) A, definito sul dominio D, allora in tutte le relazioni Sj, in cui appare come attributo A, le tuples devono contenere un valore di A definito sul dominio D oppure un valore Null. L attributo A nelle relazioni Sj prende il nome di chiave esterna 4. Per una chiave esterna va verificato se :? Può assumere valori Null? Cosa succede nella tabella collegata tramite chiave esterna se viene cancellato o modificato un valore della chiave primaria della tabella che ad essa si collega se questo valore è presente (nella tabella collegata) in una sua occorrenza. La possibilità che ha una chiave esterna di assumere valori Null dipende dai tipi di Associazione. Se, ad esempio, l associazione è quella fra Impiegato e Reparto la chiave esterna corrispondente al reparto può assumere il valore Null (un impiegato non è assegnato ad un reparto), mentre nella associazione Fattura - Movimenti la chiave esterna corrispondente alla fattura non può mai assumere il valore Null (un movimento non può esistere senza fattura). Gli effetti dell aggiornamento o della cancellazione di una chiave primaria, presente come chiave esterna in altre tabelle, si possono ricondurre a tre casi : Effetto cascata. Una cancellazione o un aggiornamento della chiave primaria provoca una cancellazione o un aggiornamento delle occorrenze presenti nelle tabelle collegate tramite chiave esterna. Effetto restrizione. La cancellazione o l aggiornamento non devono essere permessi se sono presenti occorrenze per il valore considerato nelle tabelle collegate da chiave esterna. 4 Schiavetti :Database, Jackson

9 Effetto annullamento. La cancellazione o l aggiornamento di un valore della chiave primaria provoca un annullamento (Null) dei corrispondenti valori presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna. Benché il modello relazionale tramite normalizzazione crea sia l integrità di entità sia l ntegrità di riferimento spetterà al RDBMS (Relational DBMS) mantenere l integrità durante il procedimento di inserimento dei dati. In questo i diversi Rdbms differiscono molto, applicando le tecniche più disparate Operazioni relazionali L algebra relazionale, basata sulla teoria degli insiemi, offre una tecnica di estrazione dei dati molto efficace in un database relazionale. Per rendere possibile la manipolazione dei dati utilizza degli operatori che trasformano una o più relazioni in una nuova relazione. Possono essere individuate due categorie di operazioni : 1. operazioni insiemistiche, cioè si tratta di operazioni dell algebra degli insiemi applicate alla entità relazione. Le più diffuse in ambito relazionale sono :? unione? intersezione? prodotto (catesiano)? differenza 2. operazioni relazionali, si tratta di operazioni che sono caratteristiche solo dell algebra relazionale più diffuse sono : e non dell algebra degli insiemi. Le operazioni? selezione? proiezione? congiunzione (combinazione)? divisione 124

10 Operazioni insiemistiche Unione L unione della relazione R1(A1) con la relazione R2(A2), indicata con R=R1? R2, è l insieme di tutti i tuples (righe) senza alcuna ripetizione 5. R1 A11 A12 A13 B11 B12 B13 C11 C12 C13 Figura 3.2. Relazione di unione R A11 A12 A13 B11 B12 B13 C11 C12 C13 K11 K12 K13 K21 K22 K23 R2 K11 K12 K13 K21 K22 K23 Occorre, però, che vengano soddisfatte queste condizioni : 1. le due tabelle per essere unificabili devono essere compatibili 6, cioè :? devono avere egual grado ( stesso numero di colonne)? la k-esima colonna delle tabella R1 deve essere definita sugli stessi domini e quindi essere compatibile con la corrispondente colonna della tabella R2 ( es. entrambe numeriche) 2. se esistono due righe uguali convenzionalmente ne viene indicata una sola. 5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi. Per cui, secondo quanto afferma Belski in Dati e basi di dati : dati due insiemi I1 e I2, diciamo l unione I1?? I2 l insieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnati. Valgono le proprietà :? commutativa I1? I2= I2??I1? associativa I1? (I2?? I3)= (I1? I2)? I3? distributiva I1? (I2? I3)= (I1? I2)?? ( I1? I2) 6 Due relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi domini. L unione di due relazioni compatibili è costituita da tutte quelle tuples che appartengono ad almeno una delle due relazioni, Nazzini, Sanges, Vaccaro, Introduzione ai database relazionali. Questa proprietà vale sia per l unione ma anche per l intersezione e la differenza. 125

11 Intersezione L intersezione della relazione R1(A1) e R2(A2), indicata con R=R1?? R2, è l insieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2) 7. R1 A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14 R2 A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14 Figura 3.3. Relazione di intersezione A11 A12 A13 A14 R C11 C12 C13 C Prodotto cartesiano Il prodotto cartesiano delle relazioni R1 e R2, rispettivamente di grado n e k e di cardinalità m1 e m2 è la relazione indicata con R=R1? R2, che ha grado n+k e cardinalità m1? m2 composta dalle tuple che si ottengono concatenando ogni tuple di R1 con tutte le tuple di R2 8. Per concatenare due tuples r1 (a1, a2,..., an) e r2 (b1, b2,..., bk) si costruisce una tupla che ha gli attributi di entrambe : r1 conc. r2= (a1, a2,..., an, b1, b2,..., bk). 7 Dati due insiemi I1 e I2, diciamo intersezione I1? I2, l insieme costituito dagli elementi che appartengono sia ad I1 che ad I2 V. Belski, Dati e basi di dati : il modello relazionale, FrancoAngeli. 8 Dati due insiemi I1 e I2, diciamo prodotto cartesiano I1? I2, l insieme costituito dalle coppie ordinate (i1,i2) con i1? I1 e i2? I2. V. Belski, Dati e basi di dati : il modello relazionale, FrancoAngeli. Il prodotto cartesiano può essere considerato come la forma generica di concatenamento, in cui ogni tuple di R1 viene concatenato con ogni tuple di R2. Il prodotto cartesiano è utile nelle interrogazioni in cui è necessaria ogni possibile combinazione tra i tuples delle due relazioni. Altre forme di concatenamento, dette concatenamento naturale sono rappresentate dal join, in cui un tuple può essere escluso dalla relazione risultante se non soddisferà le condizioni poste. Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni, dato che la relazione risultante non contiene tutti i tuples. I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni, mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni è impossibile. Questi operano come i concatenamenti naturali interni, ma la relazione risultante potrà includere anche i tuples senza corrispondenze : i valori mancanti saranno sostituiti con valori nulli.- S. Misbah Deen Database, concetti teorici ed applicativi, FrancoAngeli 126

12 Si costruisce cioè con il prodotto cartesiano una tabella con lo schema R(A1,A2,...,An, B1,B2,...,Bk) le cui tuples sono formate per primi n elementi di una tupla di R1 e per i restanti k elementi da una tuple di R2 9. R1 Riga R1-1 Riga R1-2 Riga R Riga R1-n Figura 3.4. Relazione prodotto cartesiano R R2 Riga R2-1 Riga R Riga R1-k Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n... Riga R1-n Riga R1-k Differenza La differenza tra relazione R1 e R2, indicata con R=R1 \ R2 (R=R1- R2), è l insieme di tutti i tuples o righe appartenenti ad R1 ma non a R2 10. R1 R2 R A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14 A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14 B11 B12 B13 B14 D11 D12 D13 D14 Figura 3.5. Relazione differenza 9 Il prodotto cartesiano di due relazioni è la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2. Nazzini, Sanges, Vaccaro, Introduzione ai database relazionali? Il grado del prodotto cartesiano è la somma dei gradi di R1 ed R2? La cardinalità del prodotto cartesiano è il prodotto della cardinalità di R1 ed R2 10 Dati due insiemi I1 e I2, diciamo differenza I1 \ I2, l insieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2 V. Belski, Dati e basi di dati : Il modello relazionale, FrancoAngeli. 127

13 Operazioni dell algebra relazionale Selezione Data relazione R1 ed un predicato P semplice o composto, che opera sugli attributi di R1, la selezione di R1 su P è una relazione R le cui tuples sono tutte le tuples di R1 che soddisfano P 11. R1 A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14 R A11 A12 A13 A14 C11 C12 C13 C14 Figura 3.6 Selezione di R1 su P Un predicato è una condizione imposta sui valori di uno o più attributi e può essere semplice oppure composto. E semplice quando esprime una relazione del tipo : [attributo] [operatore di confronto] [attributo] Gli operatori di confronto sono rappresentati da : =, # (diverso), <, >, <=, >=. E composto se è costituito da due o più predicati collegati fra loro tramite operatori booleani AND, OR, NOT. L operazione di selezione sceglie i tuples di una relazione in cui il predicato risulta essere vero, mentre le colonne restano le stesse. Ci si può chiedere quando un predicato composto da più predicati è vero e quindi quando verranno prelevate delle tuples. Per questo possono essere riportate le tavole di verità di Boole. 11 L operatore di selezione è un filtro che sceglie alcune righe, quelle che soddisfano una certa condizione : Select R where p. L operatore di selezione crea una nuova relazione che è un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale. Le righe scelte sono quelle risulta vera la proposizione p - Nazzini, Sanges, Vaccaro, Introduzione ai database relazionali. 128

14 P1 P2 P1 OR P2 (P1+P2) v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null P1 AND P2 (P1*P2) P V f null NOT P f v null Figura 3.7. Tavole di verità degli operatori booleani Proiezione Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi, (k<n) la proiezione di R su B è la relazione R di grado k che si ottiene da R1 ignorando le colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate 12. Sono tuple duplicate quelle che hanno chiavi uguali. 13 La relazione R ha la stessa cardinalità della relazione R1. L operazione di proiezione si indica con la notazione : B ( R ) R1 B R A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14 A11 B11 C11 D11 A13 B13 C13 D13 Figura 3.8. Proiezione di R su B 12 V. Belski Dati e base di dati : il modello relazionale, FrancoAngeli L operatore di proiezione è un filtro che sceglie alcune colonne (quelle indicate nell operazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd Relational completeness of data base sublanguages 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante. Per questo viene impiegata la proiezione - S. Misbah Deen Database, Concetti teorici ed applicativi, FrancoAngeli. 129

15 Spesso i due operatori relazionali di selezione e proiezione sono applicati insieme alla stessa relazione R1 per cui il risultato che si otterrà sarà quello di avere una relazione R, risultato delle operazioni selezione e proiezione in cui le tuple, cioè le righe, costituiscono un sottoinsieme delle tuples della relazione R1 e gli attributi, cioè le colone, costituiscono un sottoinsieme degli attributi di R1. La sequenza logica delle due operazioni prevede l esecuzione dell operazione di selezione e successivamente quella di proiezione Combinazione (giunzione, join) Date due relazioni R1 ed R2 ed un predicato semplice P( >,<,<=, ecc.) che lega uno degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani, la combinazione fra R1 ed R2 su P è la relazione R composta da tutte le tuple del prodotto cartesiano R1 X R2 che soddisfano P 14. La join produce una nuova relazione mediante il procedimento seguente : 1. viene effettuato un prodotto cartesiano fra le due relazioni. 2. sulla relazione così creata viene effettuata una operazione di selezione delle tuple in cui risulta vera la condizione posta dal predicato 3. vengono ridenominati gli attributi comuni con uno stesso nome, in modo tale che compaiono una sola volta. Se l operatore di confronto è l operatore di eguaglianza =, si parla allora di giunzione naturale Join Naturale Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi di R1 coincide con uno degli attributi di R2, Il join naturale è la relazione r di grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2 che presentano valori identici per l attributo comune 15. Il join naturale determina una relazione tramite il seguente procedimento : 1. viene effettuato un prodotto cartesiano fra le due relazioni. 14 V. Belski Dati e base di dati : il modello relazionale, FrancoAngeli 15 V. Belski Dati e base di dati : il modello relazionale, FrancoAngeli 130

16 2. sulla relazione così creata viene effettuata una operazione di selezione delle tuple in cui risulta vera la condizione posta dal predicato, e cioè che gli attributi sottoposti all operatore di confronto siano uguali. Se questa condizione non si verifica per nessun attributo allora l operazione di giunzione si riduce a quella di un prodotto cartesiano. 3. vengono ridenominati gli attributi comuni con uno stesso nome, in modo tale che compaiono una sola volta Divisione Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k (k<n), in cui tutti gli attributi di R2 sono anche gli attributi di R1, la divisione di R1 con R2, che si indica conr=r1/r2, è la relazione R le cui colonne sono tutte colonne di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che, concatenate con tutte le tuple di R2, danno luogo a tuple tutte presenti nella relazione R1 16. Si può pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1, per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1 ha altre tuple. R1 A11 A11 A11 M11 N11 B11 B12 B13 B11 B12 R2 B11 B13 R A11 Figura 3.9. Operazione di divisione 16 V. Belski Dati e base di dati : il modello relazionale, FrancoAngeli 131

17 Esempi Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass. Johnson Democratico Texas Nixon Repubblicano California 1. Selezione R1 = (select Presidenti where stato = Texas ) R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas R2 = (select Presidenti where Partito = Repubblicano ) 2. Proiezione R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California R3 = (project Presidenti over Stato, Nome) R3 Nome Stato Eisenhower Texas Kennedy Mass. Johnson Texas Nixon California 3. Unione R4= R1? R2 R4 Nome Eisenhower Johnson Nixon Partito Stato Repubblicano Texas Democratico Texas Repubblicano California 132

18 4. Intersezione R5 = R1? R1 R5 Nome Partito Stato Eisenhower Repubblicano Texas 5. Differenza R6 = R1-R2 R6 Nome Partito Stato Johnson Democratico Texas 6. Prodotto cartesiano Studenti N.ro Studente Nome 1 Paolo 2 Claudio 3 Nicola Corsi Cod. corso A B C Descrizione Economia Prog e Contr. Diritto trib. Studenti X Corsi Num. Stud. Nome Cod. corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr. 1 Paolo C Diritto trib. 2 Claudio A Economia 2 Claudio B Prog e Contr. 2 Claudio C Diritto trib. 3 Nicola A Economia 3 Nicola B Prog e Contr. 3 Nicola C Diritto trib. 133

19 7. Join (naturale) Corsi Cod. corso A Descrizione Economia Durata Corsi Cod. corso A B Prog e Contr. B 3 C Diritto trib. C 5 Durata 4? R7 = corsi join p durata corsi? p = (Corsi. cod. corso = Curata corsi. cod. corso)? R7 = corsi. cod. corso = cod. corso. durata corsi Corsi X Durata Corsi Descrizione Cod. corso Durata Cod. corso Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr. B 4 A Prog e Contr. B 3 B Prog e Contr. B 5 C Diritto trib. C 4 A Diritto trib. C 3 B Diritto trib. C 5 C Prodotto cartesiano Corsi X Durata corsi R7 Descrizione Cod. corso Durata Cod. corso Economia A 4 A Prog e Contr. B 3 B Diritto trib. C 5 C Selezione Corsi. Cod. corsi = Durata corsi. Cod. corsi Dopo una operazione di proiezione per eliminare la colonna corso, avremo : R7 Cod. corso Durata Descrizione A 4 Economia B 3 Prog e Contr. C 5 Diritto trib. 134

20 8. Divisione Fornitori Cod. For. Art. F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4 Rich. Acquisto Art A1 A2 A3 Quali sono i fornitori in grado di soddisfare la richiesta di acquisto? Fornitori :Rich. Acq. Cod. For. F1 F Normalizzazione Lo schema, definito dalla progettazione concettuale, deve essere tradotto attraverso il modello relazionale in uno schema migliore, cioè in uno schema depurato di gran parte delle anomalie di gestione che si possono verificare. La teoria delle basi di dati relazionali affronta questo tipo di problemi con l obiettivo di (Albano) :? definire quando due schemi sono equivalenti? definire i criteri di bontà degli schemi (che cosa vuol dire uno schema migliore di un altro)? trovare metodi formalizzati per ottenere da uno schema un altro migliore ed equivalente. 135

21 Nel primo caso si tradurrà gli schemi ottenuti ad esempio con il modello E\R in tabelle 17, mentre i problemi successivi hanno portato alla elaborazione della teoria della normalizzazione, con la definizione di forme normali per schemi di relazione che eliminino il più possibile i problemi di ridondanza e le altre anomalie. La normalizzazione è, quindi, un insieme di criteri di progettazione di un database relazionale, diretti a prevenire l insorgere sia di anomalie nella rappresentazione dei dati (inconsistenza dei dati) sia situazioni non volute. Il principio della normalizzazione, come afferma Codd, è che la base dei dati deve essere progettata sulla base sella semantica dei dati ed in particolare seguendo questo principio guida : e cioè : Ogni fatto deve essere rappresentato una, ed una sola volta, e nel luogo appropriato? in una relazione deve essere descritto un unico fatto? un fatto deve essere memorizzato una sola volta. Si consideri questa relazione : Perdenti alle elezioni presidenziali Anno Nome Voti Part ito 1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind In questa relazione non viene rappresentato un unico fatto ma bensì sono distinguibili due fatti : 1. sono indicati i candidati perdenti alle elezioni USA 2. sono indicate alcune caratteristiche di tali uomini politici (il partito) che sono indipendenti dall esito delle elezioni. Questa situazione crea alcuni problemi : 17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione, ovvero quando e in che misura uno schema rappresenta un altro. 136

22 ? Anomalie nella eliminazione. Se si cancella la riga relativa al 1960 si perdono anche le informazioni relative al partito di Nixon, il che potrebbe essere al di là dello scopo della cancellazione.? Anomalie di modifica. Poiché Stevenson appare più volte, se modifico il partito di Stevenson lo dovrò fare in tutte le tuples in cui compare Stevenson.? Anomalie di inserimento. Non si può inserire il partito di Ford senza conoscere l anno in cui ha perso le elezioni. Questo perché nella relazione non è rappresentato un unico fatto. Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati elaborati da altri studiosi Prima forma normale (1 NF ) Una relazione è in 1NF se, e solo se, tutti i domini sui quali è definita contengono solo valori atomici, cioè nessuno degli elementi dei domini è esso stesso un insieme una lista o una relazione 18. Gli attributi di una entità possono essere di vario tipo : semplici, composti, multipli. I RDBMS impongono che tutti gli attributi siano semplici e non multipli, mentre in un record descritto da un programma Cobol questo poteva accadere. La 1 NF elimina i dati ripetitivi consentendo così di rappresentare le relazioni come tabelle a due dimensioni con dati omogenei sulle colonne. Quindi, le relazioni in prima forma normale presentano queste proprietà :? Ogni elemento è atomico? le colonne sono tutte omogenee? tutte le righe sono distinte? l ordine delle righe non è significativo? l ordine delle colonne non è significativo 18 E.F. Codd, : Recent Investigations in relational Data Base system 137

23 Esempio : Tabella delle competizioni elettorali americane Non in forma normale Elezioni Anno Vincitore Partito Perdente vincitore 1960 Kennedy Democratico Nixon 1956 Eisenhowe Repubblican Stevenson r o 1972 Nixon Repubblican McGowern o 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican Humphey, Wallace o 1992 Clinton Democratico Bush, Perrot Prima forma normale (1NF) Elezioni Ann Vincitore Partito Perdente o vincitore 1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush, 1992 Clinton Democratico Perrot Una relazione in prima forma normale può, però, causare dei problemi 19. Il primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple. Inoltre, può capitare che, dopo aver portato una relazione in prima forma normale questa subisca delle modifiche tali per cui la chiave primaria scelta prima della trasformazione in 1 NF non sia più sufficiente ad identificare una tupla per cui occorrerà modificare la chiave Atzeni in La teoria relazionale dei dati distingue i seguenti problemi o anomalie :? Anomalie di inserimento di nuove tuples : non posso inserire informazioni sulla competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme all anno la nuova chiave.? Anomalie di cancellazione delle tuples esistenti :l eliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso più ricavare? Anomalie di aggiornamento delle tuples esistenti : se c è stato per assurdo un errore su Nixon, e cioè Questi non era repubblicano ma democratico, allora dovrò riaggiornare tutte le tuple in cui compare Nixon. 20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella. Si prenda l esempio proposto dal Belski : si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli. 138

24 Dipendenza funzionale Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R. Si dice che B è funzionalmente dipendente da A in R (ovvero che A determina B in R) : A? B se, e solo se, in ogni istante di tempo ciascun valore di A è associato con uno, ed uno solo, valore di B in R 21. A verrà indicato come attributo determinante e B come attributo dipendente. Quindi, data una relazione R si può determinare una dipendenza funzionale fra due sottoinsiemi di attributi A e B, per cui se lo stesso valore di A Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo numero d ordine : Codcli Ragione-cli Via-cli città-cli ordini-cli 337 Bianchi spa Verdi 10 Bologna 137,425, Rossi srl Dante 2 Milano Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347,450 Codcli Ragione-cli Via-cli città-cli ordini-cli 337 Bianchi spa Verdi 10 Bologna Bianchi spa Verdi 10 Bologna Bianchi spa Verdi 10 Bologna Rossi srl Dante 2 Milano Gialli sas Levi 7 Napoli Gialli sas Levi 7 Napoli 450 Si può vedere come il codice clienti non sia più sufficiente ad identificare una singola tupla, per cui occorre cambiare la chiave primaria :la chiave comprenderà due i campi il codice cliente ed il numero d ordine. La scelta della chiave opera una trasformazione della tabella da cliente a ordine. Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene più i clienti che non hanno ordini in essere (Verdi spa) perché la chiave non può avere valori nulli. In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente. Questa tabella in prima forma normale contiene, tuttavia, delle gravi anomalie :? ridondanza di alcuni dati del cliente, ripetuti tante volte quanti sono gli ordini in essere? eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilità di reperirli quando non vi siano ordini in corso. La causa di questi inconvenienti deriva da una non attenta analisi nell ambito della progettazione concettuale, in cui, evidentemente, non sono state distinte bene le due entità ordini e clienti. 21 Nazzini, Sanges, Vaccaro :Introduzione ai Data Base relazionali 139

25 compare in diverse tuples di R allora vuol dire che in queste tuples dovrà comparire lo stesso valore di B. Definita la chiave primaria della relazione R che identifica univocamente le tuples, avremo che tutti gli attributi della tabella dipenderanno da essa 22. Occorre, poi, fare una distinzione fra dipendenze parziali e dipendenze complete. Verificato che un sottoinsieme B dipende funzionalmente da A, bisogna verificare se esiste una dipendenza funzionale da un sottoinsieme degli attributi di A. Se questo si verifica, allora si ha dipendenza parziale, perché B dipende solo da una parte dagli attributi di A, in caso contrario si ha una dipendenza completa. E logico che se A è costituito da un solo attributo allora non ci sarà che dipendenza completa. La conoscenza delle dipendenze funzionali nelle relazioni è un elemento fondamentale per un migliore raggruppamento dei dati secondo il modello relazionale. I dati che vengono raccolti e organizzati per rappresentare la realtà di interesse presentano queste dipendenze funzionali che possono essere dovute sia dalla loro natura sia alla proprietà dei loro domini e, ciò che è importante per la costruzione di un efficiente schema logico relazionale, sono indipendenti dalle tecniche utilizzate per raccoglierli, classificarli, raggrupparli. Poiché le dipendenze sono oggettive e legate al tipo di dato, è essenziale conoscerle ed utilizzarle per realizzare un miglior raggruppamento possibile dei dati. Si potrebbe cercare di minimizzare queste dipendenze già dalla fase della progettazione concettuale, però, l intreccio delle dipendenze fra i dati può rendere difficile ripartire gli attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse anomalie nella gestione dello schema stesso. E questo, in pratica, lo scopo 22 Nazzini, Sanges, Vaccaro in Introduzione ai Data Base relazionali affermano : 1. Ciascun attributo di R è funzionalmente dipendente da ciascuna chiave candidata di R. 2. Gli attributi di R che costituiscono una chiave candidata K sono un insieme a massima dipendenza funzionale, cioè :? tutti i sottoinsiemi di K sono funzionalmente indipendenti l uno rispetto all altro 140

26 della normalizzazione introdotta da Codd, cioè quello di eliminare tutte queste ridondanze ed anomalie dei dati per una corretta gestione dello schema. Un modo per gestire meglio lo schema, individuato da Codd, è quello di scomporre la tabella preservando sia le informazioni sui dati che i vincoli di integrità dei dati. Condizione essenziale perché tutto ciò sia rispettato è che venga soddisfatto il seguente teorema : Uno schema R(A), per il quale esiste l insieme D di dipendenze, è scomposto nei due schemi R1(A1) e R2(A2) preservando il contenuto, quando : A1? A2? A1 oppure A1? A2? A2 ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave di uno dei due sistemi 23. Se questo avviene (ad esempio se gli attributi sono chiave di A2) si può ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) perché gli attributi che mancano in R1 (A) sono direttamente implicati da quelli comuni. Per questo motivo, non si perdono informazioni ne si acquisiscono di spurie (concetto di scomposizione senza perdite) 24. Ad esempio si prenda la tabella indirizzo : R (cap, città, via) R1(cap, città) R2(via, cap)? nessun attributo di R può essere aggiunto a K senza distruggere questa dipendenza funzionale. 23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione. Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze. La decomposizione di uno schema di relazione R che preserva l informazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si può riottenere esattamente R con l unica operazione possibile :la giunzione naturale. Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integrità. Albano, Orsini : Basi di dati. 24 La ricostruzione della originaria relazione R, può avere come risultato la comparsa, nella relazione ricostruita, di alcune tuples spurie, cioè non presenti originariamente in R ; e non c è alcun modo di distinguere le tuples spurie dalle tuples genuine. Solo in questo senso si parla di scomposizione con perdite, perché in realtà la relazione originaria è un sottoinsieme di quella ricostruita (contiene infatti le tuples genuine e quelle spurie ). Comunque sia una operazione di giunzione naturale non può produrre niente che non sia almeno R. 141

27 Il cap è l attributo comune ed è chiave della tabella R2. Indicato il cap, la città risulta univocamente determinata. Eseguendo la giunzione delle due tabelle si ottiene la tabella originaria. Fra gli attributi di uno schema, quindi, esistono delle dipendenze funzionali. Alcune di queste dipendenze sono ovvie e non vengono normalmente menzionate, come quelle che riguardano un gruppo d'attributi che è sottoinsieme di un altro gruppo di attributi. E importante elencare l insieme delle dipendenze per non perderle in seguito nella scomposizione. Per conservare queste dipendenze occorre non portare in schemi separati gli attributi che hanno relazioni di dipendenza fra di loro. Comunque non bisogna scartare qualche volta la possibilità di spezzare delle dipendenze, perché i vantaggi che ciò potrebbe portare può superare gli svantaggi prodotti Seconda forma normale (2 NF) Una relazione R è in seconda forma normale (2 NF) se è in prima forma normale ed ogni attributo non primo di R dipende funzionalmente e completamente da ogni chiave di R 25. Tutti gli attributi che non fanno parte della chiave (se questa è l unica) devono dipendere dalla chiave tutta intera. Si effettuerà una scomposizione della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte della chiave. E logico che se la chiave è formata solo da un attributo la dipendenza non potrà che essere completa e quindi non si procederà con la scomposizione. Se le chiavi possibili sono più di una (abbiamo più chiavi candidate) la condizione deve valere per ogni chiave. Si procederà, quindi, alla scomposizione di uno schema seguendo una procedura di questo genere 26 : Si parla pertanto di scomposizione senza perdite quando è garantito che l operazione di giunzione naturale sulle proiezioni di R riproduce esattamente R, senza che compaiano tuples spurie. Nazzini,, Sanges, Vaccaro :Introduzione ai Data Base Relazionali. 25 Atzeni, Batini, De Antonellis : Introduzione alla teoria relazionale, Masson 26 Questa procediìura è proposta da Belski :Dati e basi di dati :il modello relazionale. 142

28 Si prende in considerazione uno schema R(A) in 1NF, ma non in 2NF, per ogni dipendenza funzionale parziale X? Y in cui X rappresenta una chiave di R e Y è un insieme di attributi non primi, si deve :? individuare il sottoinsieme Z degli attributi della chiave X da cui Y dipende in modo completo ;? costruire un nuovo schema che contenga Z come chiave di tutti gli attributi Y ;? cancellare dallo schema iniziale tutti gli attributi Y che sono stati trasferiti sul nuovo schema. Si ripete la serie di operazioni, costruendo più tabelle, fino a quando non si sono esaurite le dipendenze funzionali parziali che erano presenti nella relazione R. L insieme delle tabelle così ottenute è in 2NF ed è stata mantenuta l integrità delle dipendenze e del contenuto. Si prenda ad esempio la tabella ordine cliente che si trova in 1NF : Ordine cliente (codice cliente, nr. ordine cliente, rag-cli, città cli, via cli,) la chiave X è rappresentata da (codice cliente, nr. ordine cliente). l insieme Y è (rag-cli, città cli, via cli) Esiste un certo numero di attributi che sono dipendenti solo dal cod. cliente che sarà il nostro Z Si può attuare una scomposizione che dia luogo ad una relazione che contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli stessi attributi dalla relazione originaria. cliente (codice cliente, rag-cli, città cli, via cli) Ordine cliente (codice cliente, nr. ordine cliente) La chiave della relazione cliente è composta da un solo attributo quindi la dipendenza è completa, mentre la chiave della tabella ordini, composta da 2 attributi, non ha più attributi primi. Le due relazioni derivanti dalla scomposizione sono in 2NF, di conseguenza il procedimento si ferma. Si fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere nuovamente ad una ulteriore scomposizione. 143

29 Codcli Ragione-cli Via-cli città-cli ordini-cli 337 Bianchi spa Verdi 10 Bologna Bianchi spa Verdi 10 Bologna Bianchi spa Verdi 10 Bologna Rossi srl Dante 2 Milano Gialli sas Levi 7 Napoli Gialli sas Levi 7 Napoli 450 Relazione Ordine clienti Cod-cli Ragione-cli Via-cli città-cli 337 Bianchi spa Verdi 10 Bologna 568 Rossi srl Dante 2 Milano 874 Gialli sas Levi 7 Napoli Cod-cli ordini-cli Relazione Cliente Relazione Ordine cliente Terza forma normale (3 NF) Una relazione R è in terza forma normale (3NF) se è in 2NF ed ogni attributo non primo di R è dipendente in modo non transitivo da ogni chiave di R 27. La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi, quindi ogni attributo non primo deve dipendere dalle chiavi e solo dalle chiavi 28. In effetti può capitare che 27 Atzeni, Batini, De Antonellis :La teoria relazionale dei dati, Boringhieri 28 Belski :Dati e basi di dati :la teoria relazionale, FrancoAngeli 144

30 una relazione sia in 2NF e che ci sia un attributo che non dipenda direttamente dalla chiave, ma transitivamente attraverso un altro attributo. La 3NF, che si basa quindi sulla eliminazione delle dipendenze transitive, è stata introdotta per eliminare alcune anomalie di cancellazione, modifica e inserimento. Si può, per questo, considerare un esempio proposto da Atzeni ed Altri in La teoria relazionale dei dati. Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo. Collocazione - genere (NomeComune, Casa, Addetto, Area, Responsabile) NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi Lo schema è in 2NF poiché la sua chiave consiste di un solo attributo e quindi gli attributi non primi dipendono completamente da essa. Si possono identificare tre tipi di anomalie :? Anomalie di inserimento di nuove tuples :se si vuole inserire l informazione che una casa è gestita da un particolare addetto non lo si può fare se non si conosce il genere animali destinato in quella casa, poiché il nome comune costituisce la chiave dello schema.? Anomalie di cancellazione delle tuples :se un genere di animali si estingue nello zoo, viene ad estinguersi anche la relazione esistente fra la casa che era destinata a contenere quel genere di animali e l area in cui quella casa è dislocata? Anomalie di modifica delle tuples : se cambia il responsabile di una certa area si dovrà modificare tutte le tuples che fanno riferimento a tale area. Per trasportare una relazione in 3NF Belski propone un procedimento che assicura la conservazione di contenuti e dipendenze. Si ha uno schema R(A) 145

31 con chiave X e un insieme di attributi non primi Y che determina funzionalmente un insieme di attributi Z, si deve : 1. creare una tabella con chiave Y contenente gli attributi Z 2. rimuovere dalla tabella gli attributi Z dalla tabella originaria. 3. Si deve ripetere la procedura di scomposizione fino a quando non siano state rimosse tutte le dipendenze transitive. Torniamo all esempio : X = Nomecomune Y = Casa Z = Area, Addetto, Responsabile Nell esempio l attributo Casa è l unico che dipenda direttamente dalla chiave, mentre con Area, Addetto e responsabile c è una dipendenza transitiva. Per cui : Collocazione genere (NomeComune, Casa) Informazioni sulla casa (Casa, Area, Addetto, Responsabile) Occorre vedere a questo punto se la relazione Informazioni sulla casa è in 3NF. Se gli attributi Area e Addetto dipendono in maniera diretta da Casa, lo stesso non si può dire di Responsabile il quale dipende transitivamente da Casa attraverso Area. X = Casa Y = Area Z = Responsabile Collocazione genere (NomeComune, Casa) Informazioni sulla casa (Casa, Area, Addetto) Informazioni sull Area (Area, Responsabile) Adesso tutte e tre le relazioni sono in 3NF. 146

32 Determinante Un determinante è un attributo o un insieme di attributi non ridondanti in grado di agire come identificatori univoci di un altro attributo ( o di un altro insieme di attributi) appartenente ad una determinata relazione 29. Si dirà : A? B e cioè che A determina B (o A è un determinante di B) oppure B presenta una dipendenza funzionale totale da A. Abbiamo quindi la dipendenza di un attributo o di un gruppo di attributi da un altro attributo o gruppo di attributi. Questa dipendenza viene detta funzionale poiché in funzione del determinante si stabiliscono gli altri attributi. Determinanti lo sono tutte le chiavi candidate che sono composte di tutti gli attributi primi. Determinanti possono essere anche attributi primi che fanno parte di una chiave candidata ma non la comprendono interamente, per cui si creano casi di dipendenza parziale, risolti con il passaggio alla 2NF. Oppure, un attributo non primo può essere dipendente da un attributo non primo ( quindi, questo determinante è un attributo non primo) il quale è interamente dipendente dalle chiavi candidate della relazione, per cui si verrà a creare un caso di dipendenza transitiva risolto dalla 3NF 30. Un altro caso si ha quando una relazione ha più chiavi candidate. Queste sono composte ed hanno degli attributi in comune legati fra loro da dipendenza funzionale. Avremo, quindi, un determinante che sarà un attributo o un gruppo di attributi primi di una chiave (che però non contiene la chiave) che sarà legato ad un attributo o ad un gruppo di attributi primi di un altra chiave che non la contiene (o contengono). 29 Misbah Deen : Database : concetti teorici e pratici, FrancoAngeli 30 In base alla definizione di determinante, Misbah Deen propone per la 3NF una definizione elaborata da Sharman : Una relazione è in 3NF se ogni determinante è chiane esterna. In base a questa definizione la 3NF è indipendente dalla 2NF, per cui non sarà più necessario che una relazione si trovi in 2NF per poi passare alla 3NF. Basterà solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di un altra ottenuta per scomposizione. 147

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati Basi di dati Il Modello Relazionale dei Dati Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione Normalizzazione Normalizzazione Introduzione Forma normale di Boyce Codd Decomposizione in forma normale Normalizzazione Introduzione La normalizzazione è un procedimento che, a partire da uno schema relazionale

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota Attributi e domini Assumiamo un universo infinito numerabile U = {A 0, A 1, A 2...} di attributi. Denotiamo gli attributi con A, B, C, B 1, C 1... e gli insiemi di attributi con X, Y, Z, X 1,... per brevità

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Operazioni sui database

Operazioni sui database Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle

Dettagli

LA NORMALIZZAZIONE. Introduzione

LA NORMALIZZAZIONE. Introduzione LA NORMALIZZAZIONE Introduzione La normalizzazione e' una tecnica di progettazione dei database, mediante la quale si elimina la rindondanza dei dati al fine di evitare anomalie nella loro consistenza

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Il Modello Relazionale

Il Modello Relazionale Il Modello Relazionale Il modello relazionale 1 Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981

Dettagli

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei

Dettagli

Elementi di Algebra Relazionale

Elementi di Algebra Relazionale Note dalle lezioni di INFORMATICA (per gli allievi della classe quinta - indirizzo MERCURIO) Elementi di Algebra Relazionale prof. Stefano D.L.Campanozzi I.T.C. Giulio Cesare Bari - a.s. 2008-2009 1 Introduzione

Dettagli

FORME NORMALI E DIPENDENZE

FORME NORMALI E DIPENDENZE Sistemi Informativi: Forme Normali e Dipendenze FORME NORMALI E DIPENDENZE La teoria della normalizzazione e delle dipendenze ha come scopo principale quello di fornire gli strumenti teorici e pratici

Dettagli

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

ARCHIVI E DATABASE (prof. Ivaldi Giuliano) ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).

Dettagli

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Raffinamento dello schema e forme normali 1 Forme Normali Le forme normali consentono di valutare la qualità delle relazione Sono state proposte diverse forme normali che includono, in ordine di generalità:

Dettagli

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS Basi di Basi di (Sistemi Informativi) Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente)

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi Modello Relazionale Modello Relazionale Proposto agli inizi degli anni 70 da Codd Finalizzato alla realizzazione dell indipendenza dei dati Unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

(anno accademico 2008-09)

(anno accademico 2008-09) Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente

Dettagli

BASI DI DATI - : I modelli di database

BASI DI DATI - : I modelli di database BASI DI DATI - : I modelli di database DAL 1960 ci si e' orientati verso 3 direzioni: 1 MODELLO GERARCHICO Se i dati si presentano naturalmente in una struttura ad albero (ES. File System) Limiti: rigidità

Dettagli

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro Database relazionali: un'introduzione Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro Rappresentazione astratta di aspetti del mondo reale (Universe

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze Decomposizione senza perdita Data una relazione r su X, se X 1 e X 2 sono due sottoinsiemi di X la cui unione è X stesso, allora il join delle due relazioni ottenute per proiezione di r su X 1 e X 2 è

Dettagli

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Introduzione all Algebra Relazionale

Introduzione all Algebra Relazionale Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli

BASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA

BASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA BASE DI DATI: sicurezza Informatica febbraio 2015 5ASA Argomenti Privatezza o riservatezza Vincoli di integrità logica della base di dati intrarelazionali interrelazionali Principio generale sulla sicurezza

Dettagli

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Entità-Relazione Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

Dettagli

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli gerarchico e reticolare sono più vicini alle strutture

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Elena Baralis 2013 Politecnico di Torino 1

Elena Baralis 2013 Politecnico di Torino 1 Modello relazionale Docente M2170 Fondamenti di informatica Verdi M4880 Sistemi di elaborazione Bianchi F0410 Basi di dati Neri Docenti Nome Dipartimento Telefono Verdi Informatica 123456 Bianchi Elettronica

Dettagli

Vincoli di integrità

Vincoli di integrità Vincoli di integrità Non tutte le istanze di basi di dati sintatticamente corrette rappresentano informazioni plausibili per l applicazione di interesse Studenti Matricola Nome Nascita 276545 Rossi 23-04-72?

Dettagli

Progettazione di un Database

Progettazione di un Database Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di

Dettagli

ALGEBRA RELAZIONALE RIEPILOGO

ALGEBRA RELAZIONALE RIEPILOGO ALGEBRA RELAZIONALE RIEPILOGO PROIEZIONE: (notazione ) Operatore unario per estrarre colonne da una relazione: lista_attributi (R) Lo schema del risultato contiene i soli attributi contenuti in lista_attributi.

Dettagli

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO Basi di dati: Microsoft Access INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO Database e DBMS Il termine database (banca dati, base di dati) indica un archivio, strutturato in modo tale

Dettagli

Progettazione di Database. Un Esempio

Progettazione di Database. Un Esempio Progettazione di Database Un Esempio Data Base Management System Applicazione 1 Applicazione 2 Applicazione 3 DBMS A B C D E Il Modello Relazionale Una relazione è costituita su un insieme di domini, non

Dettagli

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007 Basi di dati Concetti introduttivi Ultima modifica: 26/02/2007 ESEMPIO INSEGNAMENTI Fisica, Analisi, Informatica Aule Docenti Entità Relazioni Interrogazioni St udent i Database 2 Tabella (I) STUDENTE

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale Basi di Dati e Sistemi Informativi Progettazione logica: Il modello relazionale Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Introduzione Basato sul lavoro di Codd (~1970) E attualmente

Dettagli

Il Modello Relazionale

Il Modello Relazionale Il Modello Relazionale 1 Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981 Si basa sul concetto matematico di relazione,

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

Normalizzazione. Relazionali

Normalizzazione. Relazionali Normalizzazione di Schemi Relazionali Normalizzazione Forme Normali Una forma normale è una proprietà di uno schema relazionale che ne garantisce la qualità, cioè l assenza di determinati difetti Una relazione

Dettagli

I database relazionali (Access)

I database relazionali (Access) I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale

Dettagli

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei Introduzione Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei. ESEMPI DI INSIEMI DI DATI DA ORGANIZZARE ED USARE IN MANIERA EFFICIENTE Introduzione Più utenti con

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

Secondo Compitino di Basi di Dati

Secondo Compitino di Basi di Dati Secondo Compitino di Basi di Dati 10 Giugno 2004 NOME: COGNOME: MATRICOLA: Esercizio Punti previsti 1 18 2 12 3 3 Totale 33 Punti assegnati Esercizio 1 (Punti 18) Si vuole realizzare un applicazione per

Dettagli

DATABASE. A cura di Massimiliano Buschi

DATABASE. A cura di Massimiliano Buschi DATABASE A cura di Massimiliano Buschi Introduzione Con Microsoft Access: Immissione dati e interrogazione Interfaccia per applicazioni e report Ma prima bisogna definire alcune conoscenze di base sui

Dettagli

DIP. FUNZIONALI E FORME NORMALI esempi cfr. Albano Ghelli Orsini Basi di dati relazionali e a oggetti Zanichelli, 1997, cap.6 RIDONDANZE E ANOMALIE

DIP. FUNZIONALI E FORME NORMALI esempi cfr. Albano Ghelli Orsini Basi di dati relazionali e a oggetti Zanichelli, 1997, cap.6 RIDONDANZE E ANOMALIE DIP. FUNZIONALI E FORME NORMALI esempi cfr. Albano Ghelli Orsini Basi di dati relazionali e a oggetti Zanichelli, 1997, cap.6 Ridondanze e anomalie Dipendenze funzionali e implicazione logica Regole di

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

Lezione 2. Il modello entità relazione

Lezione 2. Il modello entità relazione Lezione 2 Il modello entità relazione Pag.1 Introduzione alla progettazione delle basi di dati 1. Analisi dei requisiti Quali sono le entità e le relazioni dell organizzazione? Quali informazioni su queste

Dettagli

Normalizzazione (Codd, 1972)

Normalizzazione (Codd, 1972) Normalizzazione (Codd, 1972) La normalizzazione non è una tecnica, nè una metodologia di progettazione Le forme normali costituiscono uno dei criteri per ottenere basi di dati relazionali ben progettate

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

Rappresentazione grafica di entità e attributi

Rappresentazione grafica di entità e attributi PROGETTAZIONE CONCETTUALE La progettazione concettuale, ha il compito di costruire e definire una rappresentazione corretta e completa della realtà di interesse, e il prodotto di tale attività, è lo schema

Dettagli

Modello relazionale. ing. Alfredo Cozzi 1

Modello relazionale. ing. Alfredo Cozzi 1 Modello relazionale E fondato sul concetto matematico di relazione tra insiemi di oggetti Una relazione su n insiemi A1, A2,..,An è un sottoinsieme di tutte le n-uple a1,a2,,an che si possono costruire

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

DB - Modello relazionale dei dati. DB - Modello Relazionale 1 DB - Modello relazionale dei dati DB - Modello Relazionale 1 Definizione Un modello dei dati è un insieme di meccanismi di astrazione per definire una base di dati, con associato un insieme predefinito

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

( x) ( x) 0. Equazioni irrazionali

( x) ( x) 0. Equazioni irrazionali Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza

Dettagli

database: modello entityrelationship

database: modello entityrelationship Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8 database: modello entityrelationship Prof.Valle D.ssaFolgieri Lez7 25.10.07 Trattamento dati. Database: modello entity-relationship 1 Fasi

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Maschere e Query Le Maschere (1/2) Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Le maschere sono simili a moduli cartacei: ad ogni campo corrisponde un etichetta

Dettagli

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Operatori logici e porte logiche

Operatori logici e porte logiche Operatori logici e porte logiche Operatori unari.......................................... 730 Connettivo AND........................................ 730 Connettivo OR..........................................

Dettagli

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. Release 5.20 Manuale Operativo ORDINI PLUS Gestione delle richieste di acquisto In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. La gestione

Dettagli

Basi di dati 9 febbraio 2010 Compito A

Basi di dati 9 febbraio 2010 Compito A Basi di dati 9 febbraio 2010 Compito A Domanda 0 (5%) Leggere e rispettare le seguenti regole: Scrivere nome, cognome, matricola (se nota), corso di studio e lettera del compito (ad esempio, A) sui fogli

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno NORMALIZZAZIONE DI SCHEMI RELAZIONALI Prof.ssa Rosalba Giugno PROBLEMA GENERALE La progettazione concettuale e logica produce uno schema relazionale che rappresenta la realta dei dati nella nostra applicazione.

Dettagli

Sistemi Informativi e Basi di Dati

Sistemi Informativi e Basi di Dati Sistemi Informativi e Basi di Dati Laurea Specialistica in Tecnologie di Analisi degli Impatti Ecotossicologici Docente: Francesco Geri Dipartimento di Scienze Ambientali G. Sarfatti Via P.A. Mattioli

Dettagli

Le Basi di Dati. Le Basi di Dati

Le Basi di Dati. Le Basi di Dati Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per

Dettagli

Basi di Dati e Microsoft Access

Basi di Dati e Microsoft Access Basi di Dati e Microsoft Access Lun: 16-18 e Mer: 14-17 Alessandro Padovani padoale@email.it Database: definizione Un database (DB) è una collezione di informazioni organizzata in gruppi, che consentono

Dettagli

Progettazione concettuale

Progettazione concettuale Progettazione concettuale Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi

Dettagli

CALCOLO COMBINATORIO

CALCOLO COMBINATORIO CALCOLO COMBINATORIO 1 Modi di formare gruppi di k oggetti presi da n dati 11 disposizioni semplici, permutazioni Dati n oggetti distinti a 1,, a n si chiamano disposizioni semplici di questi oggetti,

Dettagli

1 CARICAMENTO LOTTI ED ESISTENZE AD INIZIO ESERCIZIO

1 CARICAMENTO LOTTI ED ESISTENZE AD INIZIO ESERCIZIO GESTIONE LOTTI La gestione dei lotti viene abilitata tramite un flag nei Progressivi Ditta (è presente anche un flag per Considerare i Lotti con Esistenza Nulla negli elenchi visualizzati/stampati nelle

Dettagli

Sostituto abilitato Entratel con più sedi: ricezione diretta e incarico ad intermediario abilitato

Sostituto abilitato Entratel con più sedi: ricezione diretta e incarico ad intermediario abilitato FAQ Flusso telematico dei modelli 730-4 D.M. 31 maggio 1999, n. 164 Comunicazione dei sostituti d imposta per la ricezione telematica, tramite l Agenzia delle entrate, dei dati dei 730-4 relativi ai mod.

Dettagli

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

1 Giochi a due, con informazione perfetta e somma zero

1 Giochi a due, con informazione perfetta e somma zero 1 Giochi a due, con informazione perfetta e somma zero Nel gioco del Nim, se semplificato all estremo, ci sono due giocatori I, II e una pila di 6 pedine identiche In ogni turno di gioco I rimuove una

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto: Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto: Tabella Cliente: Tabella NumTel: Tabella Dati_Cliente: L'esempio è per ragioni di chiarezza

Dettagli