Analisi e Basi di Dati Capitolo 1: Introduzione al modello relazionale dei dati M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Contenuti Introduzione Rappresentazione dei dati Recupero ed interrogazione dei dati M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Introduzione Perché conoscere i database? Grande diffusione di tecnologie che tracciano ogni tipo di attività Perché analizzare i dati? A volte è lo scopo principale della propria attività In generale: conoscere il modo in cui le attività si svolgono aiuta a: Rilevare comportamenti anomali Ottimizzare le risorse allocate M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Database DBMS: Data Base Management System, ovvero sistema per la gestione di basi di dati E' un sistema software per la gestione dei dati Permette di: creare un database gestirlo (aggiornamento dati, copie di sicurezza, ecc.) controllarne gli accessi recuperare le informazioni in esso contenute. M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Rappresentazione dei dati Modello relazionale dei dati I dati sono suddivisi in tabelle Tra le tabelle possono sussistere delle relazioni Ogni tabella contiene “pezzi” dell'informazione Le relazioni consentono di collegare tra loro pezzi di informazione M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Modello relazionale: esempio Database universitario Un ateneo vuole mantenere tutte le informazioni anagrafiche dei propri studenti, con numero di matricola Studenti Matricola 6554 8765 3456 9283 Cognome Pinco Neri Rossi Verdi M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Nome Pallino Paolo Maria Luisa Data di nascita 05/12/1978 03/11/1976 01/02/1978 12/11/1979 Modello relazionale: esempio/2 L'ateneo vuole tenere traccia anche dei corsi e degli esami sostenuti da ogni studente Occorrono due nuove tabelle Corsi Codice 1 2 4 Titolo Analisi Chimica Chimica Docente Sempronio Bruni Verdi Esami M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Studente 3456 3456 9283 6554 Voto 30 24 28 26 Corso 4 2 1 1 Modello relazionale: esempio/2 Nota: la tabella Esami contiene dei “riferimenti” alle righe delle altre tabelle Studenti Matricola 6554 8765 3456 9283 Cognome Pinco Neri Rossi Verdi Nome Pallino Paolo Maria Luisa Corsi Esami Studente 3456 3456 9283 6554 Voto 30 24 28 26 M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Data di nascita 05/12/1978 03/11/1976 01/02/1978 12/11/1979 Codice 1 2 4 Corso 4 2 1 1 Titolo Analisi Chimica Chimica Docente Sempronio Bruni Verdi Modello relazionale: Concetti di base Terminologia di riferimento per DBMS relazionali una base di dati (relazionale) è una collezione di tabelle; una tabella è una collezione di ennuple (dette anche “tuple”); una ennupla è una collezione di coppie “attributo-valore”, corrispondente ad una riga della tabella Il termine “attributo” indica la colonna della tabella M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Modello relazionale: Concetti di base tabella (istanza) Studenti ennupla attributo valore matricola cognome nome dataNascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Modello relazionale: Concetti di base Schema di una base di dati: definizione di ciò che un database può contenere ed il modo in cui le informazioni sono organizzate Elementi di uno schema: Quali tabelle contiene Quali attributi e di quale tipo (numerico, stringhe, date, ecc.) sono contenuti in una tabella Quali relazioni sussistono tra le tabelle Altri vincoli di varia natura (cfr. prossimi capitoli) M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Recupero ed interrogazione dei dati La memorizzazione dei dati in un DBMS avviene principalmente per due motivi: Mantenere un archivio dei dati Consentire di recuperare all'occorrenza parti di informazione utili per determinati scopi Vediamo una carrellata delle operazioni fornite dati DBMS per il secondo obiettivo M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola DBMS: Selezione permette di prelevare da una tabella tutte le ennuple che soddisfano alcune condizioni specificate Esempio: Selezionare gli studenti aventi numero di matricola inferiore a 7000 Condizione = “matricola < 7000” M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola DBMS: Selezione Condizione = “matricola < 7000” Studenti Matricola 6554 8765 3456 9283 Cognome Pinco Neri Rossi Verdi Nome Pallino Paolo Maria Luisa Data di nascita 05/12/1978 03/11/1976 01/02/1978 12/11/1979 (Selezione) Matricola 6554 3456 Cognome Pinco Rossi Nome Pallino Maria Data di nascita 05/12/1978 01/02/1978 M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola DBMS: Proiezione Permette di selezionare da una tabella alcune colonne, scartando quindi le altre Esempio: estrarre i soli nominativi degli studenti del nostro database Operazione = proiettare la tabella “Studenti” sugli attributi (colonne) “Cognome” e “Nome” M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola DBMS: Proiezione Operazione = proiettare la tabella “Studenti” sugli attributi (colonne) “Cognome” e “Nome” Studenti Matricola 6554 8765 3456 9283 (Proiezione) Cognome Pinco Neri Rossi Verdi Cognome Pinco Neri Rossi Verdi M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Nome Pallino Paolo Maria Luisa Nome Pallino Paolo Maria Luisa Data di nascita 05/12/1978 03/11/1976 01/02/1978 12/11/1979 DBMS: Join Combina due tabelle, le ennuple della prima tabella con le ennuple della seconda richiede di indicare un attributo per ognuna delle due tabelle, che faranno da collegamento tra tutte le possibili coppie di ennuple verranno selezionate solo quelle in cui i corrispondenti attributi di “collegamento” hanno ugual valore Esempio: estrarre una tabella che per ogni esame indica le informazioni presenti in “Esami” più tutti i dati dei corrispondenti corsi Join tra Esami e Corsi, con “Corso (tab. Esami) = Codice (tab. Corsi)” M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola DBMS: Join Esami Join tra Esami e Corsi, con “Corso (tab. Esami) = Codice (tab. Corsi)” Studente 3456 3456 9283 6554 Voto 30 24 28 26 ← Esami join Corsi (Corso=Codice) Studente 3456 3456 9283 6554 Corso 4 2 1 1 Esami Voto 30 24 28 26 Corsi Codice 1 2 4 →← Corso 4 2 1 1 M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola Codice 4 2 1 1 Titolo Analisi Chimica Chimica Corsi Titolo Chimica Chimica Analisi Analisi Docente Sempronio Bruni Verdi → Docente Verdi Bruni Sempronio Sempronio DBMS: Operatori insiemistici Classiche operazioni definite nella teoria degli insiemi. Mettono insieme ennuple provenienti da tabelle diverse ma aventi lo stesso schema Unione di due tabelle: contiene tutte le ennuple che appartengono ad almeno una delle tabelle di partenza Intersezione di due tabelle: contiene tutte le ennuple che appartengono ad entrambe le tabelle di partenza Differenza di due tabelle: contiene tutte le ennuple che appartengono alla prima tabella e non alla seconda M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola DBMS: sommario Selezione Proiezione Join Unione, Intersezione, Differenza M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola