Insegnamento di Informatica – a.a. 2016-17 Macerata, A.A. 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello gerarchico: schema Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello reticolare: schema Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Modello relazionale: schema Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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) Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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) Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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) Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 R A 1 6 9 5 S B B C 2 7 7 7 3 8 8 9 A B C C D 2 2 2 3 3 4 4 5 12 7 8 10 D 1 1 6 2 2 7 3 3 8 4 5 10 9 7 8 10 R JOIN S Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © 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 Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code