Basi di Dati Luca Allulli1 Umberto Nanni23 Dispense del corso di Basi di dati e sistemi informativi per il corso di laurea in Lingue nella Società dell’Informazione, Università di Roma “Tor Vergata”. Tutti i diritti riservati. È concesso l’utilizzo delle dispense unicamente per la preparazione dell’esame di Basi di dati e sistemi informativi nell’Anno Accademico 2015-2016. 1 Faculty of Humanities, Arts and Social Sciences, University of Rome “Tor Vergata” Roma, Italy, [email protected] 2 Dept. of Computer, Control, and Management Engineering “Antonio Ruberti”, “Sapienza” University of Rome, Italy, [email protected] 3 Research Centre for Transport and Logistics (CTL), “Sapienza” University of Rome, Italy. Capitolo 2 Fondamenti matematici In questo capitolo introdurremo in modo intuitivo e informale1 alcuni concetti matematici di base, le proposizioni e gli insiemi. Nella loro semplicità, questi concetti ci permetteranno di definire in modo rigoroso i concetti più complessi che intervengono nelle basi di dati relazionali, e nella metodologia di progetto delle basi di dati. 2.1 Proposizioni Una proposizione matematica è un’affermazione che può essere vera o falsa, come le seguenti: • P1 = “L’Italia è bagnata dal Mar Tirreno” • P2 = “Parigi è la capitale della Spagna” • P3 = “6 è un numero pari” • P4 = “Tutti gli elefanti che volano sono rosa” Nel nostro esempio, P2 è falsa, mentre P1 , P3 e P4 sono vere. Prestate particolare attenzione a P4 : siccome non esistono elefanti che volano, è vero che tutti gli elefanti che volano sono rosa – non ci sono elefanti volanti non rosa che possano smentire l’affermazione. In altri termini si applica questo ragionamento: “Sostieni che l’affermazione sia falsa? Dimostramelo portando un elefante che vola e non sia rosa!” A partire da alcune proposizioni è possibile costruirne di altre, attraverso l’uso degli operatori logici AND, OR e NOT. 1 La trattazione formale della Teoria degli Insiemi è molto complessa e delicata, ed esula dagli obiettivi di questo corso. 15 Capitolo 2. Fondamenti matematici 2.1.1 Operatore NOT L’operatore NOT (simbolo ¬) si applica a un’unica proposizione P , e ne inverte il valore di verità: se P è una proposizione vera, ¬P (leggi: NOT P ) è una proposizione falsa; se P è falsa, ¬P è vera. Si può leggere ¬P in questo modo: “Non è vero che P ”. Per esempio: • ¬P1 = “Non è vero che l’Italia è bagnata dal Mar Tirreno” è una proposizione falsa. • ¬P2 = “Non è vero che Parigi è la capitale della Spagna” è una proposizione vera. 2.1.2 Operatore AND L’operatore AND (simbolo ∧) si applica a due proposizioni P e Q. La proposizione P ∧ Q (leggi: P AND Q) è vera se, e solo se, entrambe le proposizioni P e Q sono vere. In altri termini, è sufficiente che una proposizione sia falsa affinché P ∧ Q risulti falsa. Per esempio: • P1 ∧ P2 è falsa, perché P2 è falsa. • P1 ∧ P3 è vera, perché sia P1 che P3 sono vere. • P1 ∧ ¬P2 è vera (. . . perché?). • ¬P1 ∧ P2 è falsa, falsissima (infatti sia ¬P1 che P2 sono false). A proposito dell’ultimo punto, osserviamo che l’operatore ¬ ha la precedenza rispetto all’operatore ∧. Scrivere ¬P ∧ Q equivale a scrivere (¬P ) ∧ Q, ossia a mettere in AND le seguenti due proposizioni: ¬P , Q. Se invece si volesse prima calcolare P ∧ Q, e dopo invertire tale proposizione, occorrerebbe usare le parentesi: ¬ (P ∧ Q) La seguente tabella con il nome altisonante di Tabella della Verità riassume il valore di P ∧ Q dati i valori delle proposizioni P e Q: P Falsa Falsa Vera Vera Q Falsa Vera Falsa Vera P ∧Q Falsa Falsa Falsa Vera c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 16 Capitolo 2. Fondamenti matematici 2.1 Esercizio Sia P una proposizione qualsiasi. La proposizione P ∧ ¬P è vera o falsa? Perché? Suggerimento: procedere per casi: supporre che P sia vera, e valutare la proposizione. Successivamente, supporre che P sia falsa. 2.1.3 Operatore OR L’operatore OR (simbolo ∨) si applica a due proposizioni P e Q. La proposizione P ∨ Q (leggi: P OR Q) è vera se almeno una delle due proposizioni P o Q è vera; e falsa se, e solo se, entrambe le proposizioni P e Q sono false. Pertanto, con riferimento alle proposizioni definite all’inizio della Sezione 2.1: • P1 ∨ P2 è vera, perché P1 è vera. • P1 ∨ P3 è vera, verissima, perché sia P1 che P3 sono vere • ¬P1 ∨ P2 è falsa, perché sia ¬P1 che P2 sono false. Ecco le Tabelle della Verità degli operatori OR e NOT: P Falsa Falsa Vera Vera Q Falsa Vera Falsa Vera P Falsa Vera P ∨Q Falsa Vera Vera Vera ¬P Vera Falsa 2.2 Esercizio Sia ToBe una proposizione qualsiasi. La proposizione ToBe ∨ ¬ToBe è vera o falsa? Perché? Gli operatori AND e OR si possono applicare anche a più di due proposizioni. Se Q1 , Q2 , . . . , Qn sono proposizioni, allora: • Q1 ∧Q2 ∧. . .∧Qn è vera se e solo se Q1 , Q2 , . . . Qn sono tutte proposizioni vere. • Q1 ∨ Q2 ∨ . . . ∨ Qn è vera se e solo se almeno una proposizione tra Q1 , Q2 , . . . Qn è vera. c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 17 Capitolo 2. Fondamenti matematici 2.3 Esercizio Date le proposizioni: • R1 = “2 + 2 = 4” • R2 = ¬R1 • R3 = “Ogni volta che il sole è blu, piove” • R4 = “Ogni volta che il sole è giallo, piove” Determinare il valore di verità delle seguenti proposizioni: • R1 ∧ R2 • R1 ∨ R2 • R1 ∧ R3 ∧ ¬R4 • (R1 ∧ R3) ∨ R4 • ¬R3 ∨ (R1 ∧ R4 ) 2.2 Insiemi e sottoinsiemi, elementi, appartenenza Intuitivamente, un insieme è una collezione, finita o infinita, di elementi. Un modo per rappresentare un insieme è elencarne gli elementi fra parentesi graffe: • N1 = {1, 3, 5, 7} • N2 = {2, 4, 6, 8} • N3 = {1, 2, 3, 4} • U1 = {Mario, Luigi, Francesco} • U2 = {Elisabetta, Giulia} Un insieme infinito di grande importanza è l’insieme dei numeri naturali: N = {0, 1, 2, 3, . . .} c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 18 Capitolo 2. Fondamenti matematici L’appartenenza di un elemento a un insieme si indica con il simbolo ∈. La proposizione a ∈ A si legge: “l’elemento a appartiene all’insieme A”. La non appartenenza si indica con il simbolo ∈, / come in a ∈ / A. Nel nostro esempio: 1 ∈ N1 1∈ / N2 1 ∈ N3 Mario ∈ / N1 1∈ / U1 1∈N Mario ∈ U1 Osserviamo che, in un insieme, gli elementi non hanno un ordine particolare, e non si possono ripetere. In altre parole, un elemento o appartiene a un insieme, oppure non gli appartiene. Pertanto le seguenti notazioni rappresentano lo stesso insieme: N1 = {1, 3, 5, 7} = {3, 5, 1, 7} = {1, 7, 5, 3} = . . . È possibile rappresentare un insieme specificando quali elementi gli appartengono mediante una proposizione. Se A è un insieme e P è una proposizione, possiamo definire il seguente insieme: B = {a ∈ A | P (a)} B è l’insieme formato da quegli elementi di A che soddisfano la proprietà P , ovvero, da quegli elementi di A per i quali la proprietà P è vera. Per esempio, sia P (n) la proprietà: “n è un numero pari” (si osservi che la proprietà P (n) dipende dal numero n: per alcuni numeri è vera, per altri è falsa). Definiamo ora l’insieme P: P = {n ∈ N | P (n)} = {n ∈ N | n è pari} P è l’insieme formato da tutti quei numeri naturali che godono della proprietà di essere pari: è l’insieme dei numeri pari. L’insieme dei numeri dispari può essere definito in modo analogo: D = {n ∈ N | n è dispari} Per esprimere proposizioni matematiche in modo conciso sono molto comodi i simboli ∀ (per ogni) e ∃ (esiste almeno un). Per esempio, abbiamo usato la proposizione “n è un numero pari” senza aver definito che cosa sia un numero pari: proviamo ad essere più precisi. Un numero si dice pari se è divisibile per due, ossia, se è il doppio di un altro numero naturale. Quindi affermare “n è pari” equivale ad affermare che “esiste un altro numero naturale m tale che n è il doppio di m”. In simboli: ∃m ∈ N : n = 2m In questo modo possiamo ridefinire l’insieme P in modo completamente formale: P = {n ∈ N | ∃m ∈ N : n = 2m} c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 19 Capitolo 2. Fondamenti matematici 2.4 Esercizio Usando la definizione formale di P, dimostrare che 0 è un numero pari. 2.5 Esercizio Definire formalmente l’insieme D dei numeri dispari. Suggerimento: ogni numero dispari si ottiene sommando 1 a un numero pari. Siano A e B due insiemi. Se ogni elemento di A è anche un elemento di B, si dice che A è un sottoinsieme di B; in simboli: A ⊆ B. Definiamo questo concetto in modo formale: A ⊆ B se e solo se x∈A⇒x∈B (se x è un elemento di A, allora x è un elemento di B). Se A non è un sottoinsieme di B, si scrive A * B. Per esempio, con riferimento agli insiemi N1 , N2 , P, D e N definiti in precedenza: N1 ⊆ D ⊆ N N2 ⊆ P ⊆ N N1 * P Dalla definizione di sottoinsieme segue che ogni insieme A è sottoinsieme di se stesso: A ⊆ A (perché, banalmente, ogni elemento x di A è un elemento di A: x ∈ A ⇒ x ∈ A). Si osservi come l’uso di un linguaggio formale ci abbia consentito di dare delle definizioni rigorose, eliminando possibili fonti di ambiguità: a partire dalle definizioni, siamo stati in grado di ricavare che 0 è un numero pari, e che ogni insieme è sottoinsieme di se stesso. 2.6 Esercizio Dimostrare che, dati due insiemi A e B, se A ⊆ B e B ⊆ A, allora A = B. Suggerimento: occorre dimostrare che A e B hanno esattamente gli stessi elementi. Un insieme di grande importanza è l’insieme vuoto ∅, ossia l’insieme senza elementi, caratterizzato dal fatto che nessun elemento gli appartiene: ∀x : x ∈ /∅ (Leggi: per ogni elemento x: x non appartiene all’insieme vuoto.) L’insieme vuoto è sottoinsieme di ogni insieme: ∅ ⊆ A qualunque sia l’insieme A. c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 20 Capitolo 2. Fondamenti matematici Dimostriamo quest’ultima affermazione, attraverso la definizione di sottoinsieme. Vogliamo provare che, se x ∈ ∅ allora x ∈ A. Siccome non esiste alcun x ∈ ∅, l’affermazione è senz’altro vera (così come, siccome non esiste alcun elefante che vola, è senz’altro vero che tutti gli elefanti che volano sono rosa). Dato un insieme finito A, il numero di elementi di A prende il nome di cardinalità di A; essa si indica con il simbolo |A|. Per esempio: • |N1 | = |N2 | = |N3 | = 4 • |U1 | = 3 • |U2 | = 2 • |∅| = 0 Se A e B sono insiemi finiti, e A ⊆ B, allora si ha che |A| ≤ |B|. Concludiamo presentando una rappresentazione grafica degli insiemi, il diagramma di Venn. In un diagramma di Venn un insieme è rappresentato tramite un “pallocchio2 ”, all’interno del quale alcuni punti rappresentano i suoi elementi. I diagrammi di Venn si prestano a evidenziare le relazioni fra insiemi: gli elementi in comune, i sottoinsiemi, ecc. (Figura 2.1). N3 1 5 2 3 7 N1 4 6 8 N2 Figura 2.1: Diagramma di Venn. 2.7 Esercizio Sia Li l’insieme delle lettere dell’alfabeto italiano, Le l’insieme delle lettere dell’alfabeto inglese, e Lr l’insieme delle lettere dell’alfabeto russo. Determinare quali delle seguenti proposizioni sono vere: 2 Una curva chiusa semplice. c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 21 Capitolo 2. Fondamenti matematici • Li ⊆ Le • W ∈ Li • W ∈ Le • Le ⊆ Li • Li ⊆ Lr • |Li | = 21 • |Li | < |Le | 2.3 Operatori insiemistici Così come avviene per le proposizioni, è possibile definire nuovi insiemi combinando, attraverso operatori insiemistici, insiemi definiti in precedenza. Presenteremo gli operatori di intersezione, unione, differenza e prodotto cartesiano. 2.3.1 Intersezione Dati due insiemi A e B, l’intersezione A ∩ B è l’insieme degli elementi che appartengono sia ad A che a B: A ∩ B = {x | x ∈ A ∧ x ∈ B} N3 N1 ∩ N3 1 3 5 7 N1 2 4 6 8 N2 Figura 2.2: Intersezione di insiemi. Per esempio, con riferimento agli insiemi definiti nella Sezione 2.2: • N1 ∩ N3 = {1, 3} (Figura 2.2) c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 22 Capitolo 2. Fondamenti matematici • N2 ∩ N3 = {2, 4} • N1 ∩ D = N1 • N1 ∩ P = ∅ 2.8 Esercizio Dimostrare che, dati due insiemi A e B qualunque, si ha: (i) A ∩ ∅ = ∅ (ii) A ∩ A = A (iii) Se A è un insieme finito e B è un insieme qualsiasi, allora A ∩ B è un insieme finito, e |A ∩ B| ≤ |A| 2.9 Esercizio Determinare i seguenti insiemi, costruiti a partire dagli insiemi definiti nella Sezione 2.2: • P ∩N • N1 ∩ N2 • N1 ∩ U1 • N3 ∩ D 2.3.2 Unione Dati due insiemi A e B, l’unione A ∪ B è l’insieme degli elementi che appartengono ad A, a B o a entrambi gli insiemi: A ∪ B = {x | x ∈ A ∨ x ∈ B} Per esempio, con riferimento agli insiemi definiti nella Sezione 2.2: • N1 ∪ N3 = {1, 2, 3, 4, 5, 7} (Figura 2.3) • N2 ∪ N3 = {1, 2, 3, 4, 6, 8} • N1 ∪ D = D c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 23 Capitolo 2. Fondamenti matematici N3 N1 ∪ N3 1 3 5 7 N1 2 4 6 8 N2 Figura 2.3: Unione di insiemi. In altri termini, per costruire l’unione di due insiemi A e B è sufficiente “mettere insieme” gli elementi di A con quelli di B, ricordando che in un insieme gli elementi non vanno ripetuti. 2.10 Esercizio Dimostrare che, dati due insiemi A e B qualunque, si ha: (i) A ∪ ∅ = A (ii) A ∪ A = A (iii) (A ∪ B) ∩ A = A (iv) (A ∩ B) ∪ A = A (v) Se A e B sono insiemi finiti, allora |A ∪ B| ≤ |A| + |B| 2.11 Curiosità Si osservi la somiglianza, di certo non casuale, tra i simboli ∩ e ∧; e l’analoga somiglianza tra i simboli ∪ e ∨. 2.3.3 Differenza Dati due insiemi A e B, la differenza A−B (o A\B) è l’insieme degli elementi di A che non appartengono a B: A − B = {x ∈ A | x ∈ / B} Per esempio, con riferimento agli insiemi definiti nella Sezione 2.2: • N1 − N3 = {5, 7} • N3 − N1 = {2, 4} c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 24 Capitolo 2. Fondamenti matematici • N−D =P • N3 − D = {2, 4} 2.12 Esercizio Dimostrare che, dati due insiemi A e B, sono vere le seguenti uguaglianze: (i) A − (A ∩ B) = A − B (ii) (A ∪ B) − B = A − B (iii) A − ∅ = A (iv) ∅ − A = ∅ 2.3.4 Prodotto cartesiano Dati due insiemi A e B, il prodotto cartesiano A × B è l’insieme delle coppie costituite da un elemento di A e un elemento di B: A × B = {(a, b) | a ∈ A ∧ b ∈ B} Osserviamo che gli elementi del prodotto cartesiano sono coppie ordinate: (x, y) e (y, x) sono elementi diversi. Osserviamo inoltre che una coppia (a, b) in quanto tale è un nuovo oggetto matematico, che non era presente negli insiemi A e B. Pertanto l’operatore prodotto cartesiano ha l’importante proprietà di generare un insieme con elementi “nuovi”, elementi cioè che non erano presenti negli insiemi da cui si era partiti. Presentiamo alcuni esempi di prodotto cartesiano: U1 × U2 = {(Mario, Elisabetta), (Mario, Giulia), (Luigi, Elisabetta), (Luigi, Giulia), (Francesco, Elisabetta), (Francesco, Giulia)} U2 × U2 = U22 = {(Elisabetta, Elisabetta), (Elisabetta, Giulia), (Giulia, Elisabetta), (Giulia, Giulia)} N × N = N2 = {(0, 0), (0, 1), (1, 0), (1, 1), (0, 2), . . .} c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 25 Capitolo 2. Fondamenti matematici Se A e B sono insiemi finiti, la cardinalità di A × B è il prodotto delle cardinalità di A e B: |A × B| = |A| · |B|. Generalizzando: dati n insiemi A1 , A2 , . . . , An , il prodotto cartesiano A1 × A2 × . . . × An è l’insieme di tutte le ennuple (a1 , a2 , . . . , an ) in cui a1 ∈ A1 , a2 ∈ A2 , . . . , an ∈ An . 2.4 Relazioni matematiche Il prodotto cartesiano ci permette di costruire coppie di elementi di due insiemi, e quindi, in qualche modo, legare gli elementi di un insieme agli elementi di un altro. Il prodotto cartesiano in sé è poco interessante, perché contiene tutte le possibili coppie, e quindi lega ciascun elemento del primo insieme a tutti gli elementi del secondo insieme. Ma che cosa succederebbe se scegliessimo soltanto alcuni elementi del prodotto cartesiano? Dati due insiemi A e B, una relazione matematica tra A e B è un qualsiasi sottoinsieme del prodotto cartesiano A × B. Per esempio: R1 = {(Luigi, Giulia), (Francesco, Elisabetta)} ⊆ U1 × U2 R1 è una relazione tra gli insiemi U1 e U2 , che in qualche modo lega alcuni elementi di U1 con alcuni elementi di U2 : Luigi con Giulia, Francesco con Elisabetta. Si può rappresentare una relazione con un diagramma di Venn in cui colleghiamo gli elementi che formano una coppia della relazione, come nella Figura ??. Ciò che rende interessante una relazione matematica è il fatto che essa può essere usata per modellare una relazione tra oggetti del mondo reale (persone, numeri, o qualsiasi altra entità che rappresentiamo come elemento di un insieme). R1 potrebbe rappresentare la relazione “essere sposato con”, formalizzando il fatto che “Luigi è sposato con Giulia” e “Francesco è sposato con Elisabetta”. Presentiamo un altro esempio. Sia U = U1 ∪ U2 l’insieme delle persone che costituiscono il nostro dominio di interesse. Possiamo rappresentare la relazione del mondo reale “essere amico di” – alla base del funzionamento dei social network – attraverso una relazione matematica R2 ⊆ U × U R2 = {(Mario, Luigi), (Luigi, Mario), (Luigi, Giulia), (Giulia, Luigi), (Francesco, Elisabetta), (Elisabetta, Francesco), (Giulia, Elisabetta), (Elisabetta, Giulia)} c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 26 Capitolo 2. Fondamenti matematici Osserviamo che la relazione “essere amico di” è simmetrica: se a è amico di b, allora b è amico di a. Una relazione tra numeri naturali è la seguente: R3 = {(m, n) ∈ N × N | n = 2m} ⊆ N × N R3 lega ogni numero al suo doppio. Sono elementi di R3 le coppie (0, 0), (1, 2), (2, 4), (3, 6), e così via. Così come il prodotto cartesiano, anche le relazioni si possono definire anche su più di due insiemi. Ad esempio consideriamo una relazione su U1 , U2 , N e N: R4 = {(Luigi, Giulia, 1976, 3), (Francesco, Elisabetta, 1992, 1)} ⊆ U1 × U2 × N × N R4 potrebbe essere rappresentare il seguente concetto: se (u1 , u2 , a, n) ∈ R4 , allora u1 si è sposato con u2 nell’anno a, e i due coniugi hanno generato n figli. Possiamo riportare in modo più leggibile la medesima informazione in una tabella: R4 Marito Luigi Francesco Moglie Giulia Elisabetta AnnoMatrimonio 1976 1992 NumeroFigli 3 1 Si inizia a intuire l’importanza delle relazioni nelle basi di dati relazionali, e il significato stesso dell’aggettivo relazionale! Per la loro genericità, le relazioni matematiche sono oggetti molto flessibili, e consentono di modellare e definire numerosi altri concetti, utili nella matematica e nelle basi di dati. Un importante esempio è il concetto di funzione. 2.13 Esercizio Scrivere una relazione F che modelli il concetto “essere figlio di”: rappresentare il proprio albero genealogico (fino ai nonni) enumerando gli elementi di F . 2.5 Funzioni Dati due insiemi A e B, una funzione f dall’insieme A all’insieme B (si scrive: f : A → B) è una relazione tra A e B che associa, ad ogni elemento di A, c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 27 Capitolo 2. Fondamenti matematici uno e un solo elemento di B. In simboli: ∀a ∈ A ∃!b ∈ B : (a, b) ∈ f Il punto esclamativo dopo il simbolo ∃ esprime l’unicità. La definizione si legge dunque così: “per ogni elemento a di A, esiste uno e un solo elemento b di B tali che la coppia (a, b) appartiene alla relazione f ”. Ad esempio, la relazione R3 che associa ogni numero naturale al suo doppio è in effetti una funzione, perché, dato un numero, esiste ed è unico il suo doppio. Possiamo scrivere R3 : N → N. Un altro esempio di funzione è la relazione f1 : U → N che associa a ogni persona il suo anno di nascita. Grazie al fatto che una funzione f associa ogni elemento a di A a uno e un solo elemento di B, possiamo indicare tale elemento nel seguente modo: f (a) (si legge: “f di a”). Dunque, considerando la funzione R3 che associa ogni numero al suo doppio, possiamo scrivere: R3 (3) = 6 R3 (10) = 20 R3 (64) = 128 mentre per quanto riguarda gli anni di nascita: f1 (Francesco) = 1972 f1 (Elisabetta) = 1971 Data una funzione f : A → B, l’insieme A prende il nome di insieme di definizione o dominio di f ; l’insieme B prende il nome di codominio di f . 2.14 Esercizio La relazione R1 (essere sposato con), definita nella Sezione 2.4, è una funzione? E la relazione R2 (amicizia)? 2.15 Esercizio Consideriamo le seguenti funzioni: • f1 , che associa ad ogni persona la propria nazionalità; • f2 , che associa ad ogni nazione la propria moneta. Scrivere alcuni esempi di applicazione delle funzioni f1 ed f2 ad elementi del rispettivo dominio (es. f2 (Italia) = Euro). Determinare poi che cosa calcola la funzione composta f3 = f2 ◦ f1 , cioè la funzione che, data una persona p, gli applica la funzione f1 e poi applica al risultato la funzione f2 : f3 (p) = f2 (f1 (p)) c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 28 Capitolo 2. Fondamenti matematici Scrivere qualche esempio di applicazione della funzione f3 a qualche persona. c L. Allulli, U. Nanni - Dispense utilizzabili solo nell’A.A. 2015-2016 29