Insegnamento di Informatica – a.a. 2016-17 Macerata, AA. 2016-2017 Le basi di dati e il modello relazionale INSEGNAMENTO DI INFORMATICA – A.A. 2016-17 Francesco Ciclosi Insegnamento di Informatica – a.a. 2016-17 Modelli di databse Esistono vari tipi di modelli per le basi di dati, tra i quali i più noti sono: • Gerarchico • Reticolare • Relazionale Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello gerarchico: schema Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello gerarchico: considerazioni (1/2) È adatto a rappresentare situazioni dove è possibile fornire all’insieme dei dati una struttura con entità che stanno in alto ed entità che stanno in basso, secondo uno schema ad albero Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello gerarchico: considerazioni (2/2) In esso i nodi rappresentano le entità e gli archi rappresentano le associazioni Presenta dei limiti: • La rigidità della struttura di dati creata • La possibile ridondanza dei dati Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello reticolare: schema Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello reticolare: considerazioni (1/2) Le entità rappresentano i nodi e le associazioni rappresentano gli archi di uno schema a grafo orientato È un’estensione del modello gerarchico • Consente anche associazioni tra entità che stanno in basso, e non solo dall’alto verso il basso Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello reticolare: considerazioni (2/2) Si differenzia dal modello gerarchico perché un record figlio può avere un numero qualsiasi di padri • Ciò consente di evitate situazioni di ripetizione di dati uguali Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello relazionale: schema Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Il requisito di indipendenza dei dati (1/2) Il modello relazionale si basa sui concetti di relazione e di tabella Risponde al requisito di indipendenza dei dati distinguendo tra: • Livello fisico (come i dati sono fisicamente memorizzati nel calcolatore) • Livello logico (relativo all’organizzazione dei dati e al modo in cui vi si accede) Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Il requisito di indipendenza dei dati (2/2) Gli utenti e i programmatori fanno riferimento al solo livello logico Le strutture fisiche di memorizzazione dei dati sono di esclusiva pertinenza del DBMS, che si occupa anche dell’esposizione del livello logico Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello relazionale: considerazioni (1/2) Nasce nel 1970 e si basa su alcuni concetti fondamentali, tipicamente matematici Rappresenta il database come un insieme di tabelle Si adatta in modo naturale alla classificazione e alla strutturazione dei dati Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello relazionale: considerazioni (2/2) Assegna grande importanza all’uso rigoroso del linguaggio matematico, con due obiettivi importanti: • Utilizzare un linguaggio conosciuto a livello universale (quello matematico) • Eliminare i problemi di ambiguità nella terminologia e nella simbologia Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello relazionale: definizione (1) Si basa sul concetto matematico di relazione tra insiemi di oggetti Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello relazionale: definizione (2) Dati n insiemi A1, A2, A3, …, An, si dice relazione un sottoinsieme dell’insieme di tutte le n-uple a1, a2, a3, …, an che si possono costruire prendendo nell’ordine un elemento a1 dal primo insieme A1, a2 dal secondo insieme A2, e così via • Il numero n si chiama grado della relazione • Gli insiemi Ai si chiamano domini della relazione • Il numero delle n-uple (indicate anche con il termine tuple) si chiama cardinalità della relazione Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello relazionale: definizione (3) La relazione viene rappresentata mediante una tabella, con • tante colonne quante sono i domini (grado della relazione) • tante righe quante sono le n-uple (cardinalità della relazione) Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello relazionale: definizione (4) La relazione rappresenta un’entità • ogni n-upla rappresenta un’istanza dell’entità • le colonne rappresentano gli attributi dell’entità • il dominio è l’insieme dei valori che possono essere assunti da un attributo La chiave della relazione è un attributo o una combinazione di attributi che identificano univocamente le n-uple all’interno della relazione • ovvero ogni riga della tabella possiede valori diversi per l’attributo (o gli attributi) chiave Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Le operazioni relazionali Insegnamento di Informatica – a.a. 2016-17 Le operazioni relazionali: selezione (select) Genera una nuova relazione costituita solo dalle n-uple della relazione di partenza che soddisfano una determinata condizione • Le righe con i valori degli attributi corrispondenti alla condizione prefissata La relazione ottenuta possiede tutte le colonne della relazione di partenza, (stesso grado) ma ne ha cardinalità minore o uguale Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Le operazioni relazionali: proiezione (project) Genera una nuova relazione estraendo dalla tabella iniziale due o più colonne corrispondenti agli attributi prefissati La relazione risultante ha: • grado minore o uguale al grado della relazione di partenza • cardinalità di norma uguale a quella di partenza Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Le operazioni relazionali: congiunzione (join) Combina due relazioni aventi uno o più attributi in comune, generando una nuova relazione che contiene le righe della prima e della seconda tabella Questo tipo di congiunzione viene detta join naturale (natural join) Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Tipi di Join (1/3) Equi-join • la relazione viene realizzata facendo corrispondere valori uguali per attributi comuni nelle due tabelle Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 R A S B B C 1 6 2 7 3 8 9 5 7 7 8 9 A B C D 2 2 2 3 3 4 4 5 12 7 8 10 C D 1 1 2 2 3 3 4 5 6 9 7 7 8 8 10 10 R JOIN S Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Tipi di Join (2/3) Left join • elenca comunque tutte le righe della prima tabella congiungendo tra le righe della seconda solo quelle per le quali si trovano valori corrispondenti per l’attributo comune Right join • elenca comunque tutte le righe della seconda tabella congiungendo tra le righe della prima solo quelle per le quali si trovano valori corrispondenti per l’attributo comune Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 R A B C S B C D 1 2 3 2 3 4 6 7 8 2 3 5 9 7 8 2 4 12 5 7 9 7 8 10 A B C A D B C D 1 2 3 4 1 2 3 4 1 2 3 5 1 2 3 5 6 7 8 10 2 4 12 9 7 8 10 6 7 8 10 5 7 9 9 7 8 10 R Left Join S R Right Join S Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Tipi di Join (3/3) Self-join • combina le righe di una tabella con le righe della stessa tabella quando sono presenti valori corrispondenti per attributi, cioè due attributi con lo stesso dominio Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Le operazioni relazionali: l’unione In casi particolari consente di ottenere una nuova tabella, che contiene le righe della prima e della seconda tabella con riduzione a una di quelle ripetute Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Le operazioni relazionali: l’intersezione In casi particolari genera, a partire da due tabelle omogenee, una nuova tabella che contiene soltanto le righe comuni Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Le operazioni relazionali: la differenza In casi particolari genera una nuova tabella che contiene soltanto le righe della prima tabella che non sono contenute nella seconda tabella Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Structured Query Language Insegnamento di Informatica – a.a. 2016-17 SQL – Structured Query Language È un linguaggio di programmazione per database relazionali Consente di operare sui dati mediante: • Interrogazione • Modifica • Cancellazione Utilizza le query: strumenti di programmazione Consente di amministrare il sistema di database Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 SQL: uno e trino Il linguaggio SQL è diviso in tre sezioni: • Data Definition Language o Raggruppa le operazioni attraverso le quali è possibile creare, modificare e cancellare i database • Data Manipulation Language o Raggruppa le operazioni attraverso le quali è possibile inserire, leggere e cancellare i dati • Data Control Language o Raggruppa le operazioni attraverso le quali è possibile amministrare gli utenti e i permessi Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Gli operatori SQL Il linguaggio SQL utilizza una serie di operatori: • Operatori di confronto o Come ad esempio l’operatore EXISTS • Operatori aritmetici • Operatori condizionali o Quale l’operatore WHERE • Operatori logici Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 I miei contatti linkedin http://it.linkedin.com/pub/francesco-ciclosi/62/680/a06/ facebook https://www.facebook.com/francesco.ciclosi twitter @francyciclosi www http://docenti.unimc.it/f.ciclosi http://www.francescociclosi.it Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code