710 likes | 858 Views
CORSO LAUREA MAGISTRALE IN SCIENZE DELLA PRODUZIONE ANIMALE. Sistemi innovativi in zootecnia Supporti avanzati per la gestione dell’allevamento (corso SUPAG). Massimo Lazzari Dipartimento di Scienze e tecnologie Veterinarie per la Sicurezza Alimentare Università degli Studi di Milano.
E N D
CORSO LAUREA MAGISTRALE IN SCIENZE DELLA PRODUZIONE ANIMALE Sistemi innovativi in zootecnia Supporti avanzati per la gestione dell’allevamento (corso SUPAG) Massimo Lazzari Dipartimento di Scienze e tecnologie Veterinarie per la Sicurezza Alimentare Università degli Studi di Milano
Basi di dati teoria … e pratica con Microsoft Access
INQUADRAMENTO TECNOLOGIE DI BASE TECNOLOGIE ELETTRONICHE DI BASE TECNOLOGIE DI POSIZIONAMENTO TECNOLOGIE INFORM. HARDWARE TECNOLOGIE INFORM. SOFTWARE
Avete già interagito (magari inconsapevolmente) con dei sistemi di gestione di basi di dati: all’anagrafe, in segreteria studenti, in biblioteca, … Basi di dati Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web)
Una base di dati è solo software? No! Ad esempio, gli archivi genealogici esistono da diversi decenni. Noi ci occuperemo di sistemi informativi informatizzati Basi di dati L’obiettivo è quello di memorizzare grandi quantità di informazioni, rendendone disponibili anche le operazioni di modifica e di reperimento
Basi di dati e DBMS Base di dati:collezione di dati omogenei DBMS (Database Management System):software in grado di gestire collezioni di dati che siano grandi, condivise e persistenti, garantendo affidabilità e privatezza, in modo efficiente ed efficace Grandi: ordine dei giga- o tera-byte Condivise: più utentidevono potervi accedere simultaneamente Persistenti: i dati vengono mantenuti, la loro esistenza non è limitata al periodo d’uso Affidabili: i dati devono essere mantenuti anche in caso di malfunzionamento Privatezza: i dati devono essere protetti Efficiente: tutte le operazioni devono essere svolte in tempi accettabili per l’utente Efficace: capacità di rendere produttiva l’attività dell’utente
DBMS • Permettono di definire in modo semplice la struttura della base di dati e forniscono dei comandi per l’accesso alle informazioni. In genere si usano per • Inserire i dati • Rimuovere i dati • Aggiornare i dati • Effettuare operazioni di ricerca • I moderni DBMS forniscono la possibilità di accesso simultaneo ai dati garantendone la consistenza
DBMS Inserimento nuovo allevamento DBMS inserisce nuovo animale Trasferimento animali amministratore Macellazione Morte animali base di dati (es. anagrafe centralizzata animali)
DBMS Utente dati dati Programma applicativo DBMS dati dati Non ci occuperemo dell’organizzazione e della gestione di DBMS ma della progettazione e dell’utilizzo del programma applicativo…
ANIMALI Ognuno avrà il proprio nome, matricola, ecc. molti Problema affrontato raccogliere, organizzare,conservare e gestire dati omogenei e strutturati ANIMALE Avrà un nome, un azienda di appartenenza, una matricola, ecc. singolo
Problema affrontato Rihiesta di interventi legati alla condizione nella carriera produttiva Avrà una data, delle caratteristiche associate (quantità, qualità) … diventa interessante mantenere informazioni su quali animali sono stati fecondati, hanno partorito, sono stati visitati dal veterinario e con quale risultato … quindi mettere in relazione le informazioni relative agli animali e quelle relative agli alla loro carriera produttiva e agli interventi connessi
Problema affrontato • Data una realtà da modellare(es. animali e fase produttiva, operatori che intervengono, veterinario) • Capire quali informazioni sono utili(es. “matricola” è utile per rappresentare gli animali, nome e cognome per operatori e veterinari) • Capire come le informazioni utili sono correlate(es. chi è stato fecondato, chi ha partorito, chi era responsabile di svolgere e seguire il lavoro) • Sapere chi può accedere a quali informazioni per eseguire quali azioni • Avere strumenti per lavorare sui dati(es. quante fecondazioni sono state fatte alla vacca Rosina nel 2006? Con quale risultato medio?)
Progettazione di una base di dati • Analisi dei requisiti • individuare e studiare le funzionalità che il sistema dovrà fornire • Progettazione • (a) concettuale • (b) logica • (c) fisica • Collaudo • verifica del corretto funzionamento del sistema
Requisiti della base di dati Progettazione concettuale Progettazione logica Progettazione Progettazione fisica Prodotto della progettazione Progettazione di una base di dati
Descrizione informale Ontologia-Analisi dei requisiti Raccolta e studio delle funzionalità che il sistema dovrà avere. Comporta l’interazione con gli utenti del sistema e si conclude in una descrizione informale dei suoi requisiti
Schema concettuale Progettazione concettuale Ha lo scopo di rappresentare la realtà di interesse in termini di una descrizione precisa e completa maindipendente dai criteri di rappresentazione usati dal sistema informatico scelto per gestire la base di dati (rappresentazione astratta)
Schema logico Progettazione logica Ha lo scopo di rappresentare la realtà di interesse in termini di una descrizione ancora indipendente dai dettagli fisici ma concreta, in quanto presente nei sistemi di gestioni delle basi di dati. Lo schema concettuale definito nella fase precedente viene tradotto nello schema logico
Schema fisico Progettazione fisica Lo schema logico viene completato con le specifica dei parametri fisici di memorizzazione dei dati (organizzazione dei file e degli indici). Si definisce lo schema fisico dei dati che dipende dal sistema di gestione di basi di dati scelto
Schema concettuale Progettazione concettuale
Il modello Entità-Relazioni (E-R) • Consente di rappresentare la realtà di interesse tramite un insieme di costrutti • Ogni costrutto ha una rappresentazione grafica corrispondente. Ad esempio: entità relazione attributo semplice attributo composto ……..
ANIMALI OPERATORI Entità Sono classi di oggetti, che hanno tutti le stesse proprietà ed esistono in modo autonomo; ogni entità è quindi un insieme di oggetti, detti anche istanze o occorrenze TIPI LAVORI DI STALLA – FASE RIPRODUTTIVA VETERINARI
Relazioni (anche dette associazioni) Sono legami logici fra due o più entità. Anche un’associazione è un insieme, è l’insieme delle correlazioni fra i singoli elementi delle entità coinvolte e1 e2 e3 Fecondazione Anim.1 e4 Anim2 Controllo calore e5 Anim3 Anim4 e6 Parto
Relazioni In uno schema E-R ogni relazione ha un nome che la identifica in modo univoco ed è rappresentata mediante un rombo LAVORO DI STALLA - FASE RIPRODUTTIVA Evento Animale
Esempio Entità: Animali Istanze: rosina, bruna, stella, mora, … Entità:tipi di lavori Istanze: parto, messa in mungitura, separazione colostro, fecondazione, controllo calore, iniezione ormoni, Evento Lavoro: relazione (anche detta associazione) fra le entità ANIMALE e TIPO DI LAVORO VENDITA: relazione fra le entità AZIENDA e ANIMALE MACELLAZIONE: relazione fra le entità MACELLO e ANIMALE
Attributi Descrivono le proprietà elementari di Entità e Relazioni. Ogni attributo assume dei valori all’interno di un insieme di valori ammissibili detto dominio Nome Giorno Data Mese MATRICOLA Anno Attributi semplici Attributi composti
Esempio Data carico NOME ANIMALE posseso AZIENDA Numero civico CAP Nome MATRICOLA Data nascita
Esempio mansione nome telefono OPERATORE Data TIPO LAVORO EVENTO LAVORO ANIMALE Messa in mungitura Sesso Nome matricola Nascita parto fecondazione Anche le relazioni possono avere degli attributi che vengono rappresentati come nel caso delle entità, ma associati ai rombi che le descrivono
Cardinalità delle relazioni Per ogni entità che partecipa a una relazione è possibile indicare il num. min e max di legami che le sue istanze possono avere con istanze delle altre entità partecipanti alla medesima relazione (0,1) (0,5000) ANIMALE MACELLAZIONE MACELLO Un ANIMALE può essere macellato (1) oppure non essere macellato (0) Una macello può avere non macellato (0) o averne al massimo5000 animali macellati
Cardinalità delle relazioni Se la cardinalità minima è 0 si dice che la partecipazione dell’entità relativa è opzionale, se la cardinalità minima è maggiore o uguale a 1, la partecipazione è obbligatoria (0,3) OPERATORI GESTIONE (1,1) REPARTI Ogni reparto (fecondazione; gestazione; ingrasso) è gestito da un (1) e un solo (1) operatore. Alcuni operatori non gestiscono alcun reparto (0) ma un operatore può gestirne fino a tre (3)
Cardinalità delle relazioni Nella maggior parte dei casi si usano solo tre valori: zero, uno, e il simbolo N (ovvero >=1) Se la cardinalità massima è 1 la partecipazione all’entità può essere vista come una funzione che associa ad una occorrenza di una entità una sola occorrenza dell’altra entità Se la cardinalità massima è N esiste una associazione con un numero arbitrario di occorrenze dell’altra entità
Tipi di relazioni Osservando le cardinalità massime si ottiene la classificazione seguente 1 1 1:1 1 N 1:N (uno a molti) N M N:M (molti a molti)
Esempio 1 1 STALLO ASSEGNATO CAVALLO STALLO A ogni CAVALLO è assegnato al più uno STALLO e a ogni STALLO è assegnato al più un CAVALLO N M CONTROLLO SANITARIO ANIMALE VETERINARIO Ogni ANIMALE può avere DIVERSI CONTROLLI SANITARI EFFETTUATI DA DIVERSI VETEINARI. OGNI VERINARIO PUO’ CONTROLLARE DIVERSI ANIMALI
Esempio N 1 PERSONE NUM_TELEFONO NUM ASSEGNATO Ogni persona può avere associati più numeri di telefono, ogni numero di telefono può essere associato al più ad una persona • Che tipo di relazione si può stabilire tra • ANIMALI e CODICE ANGRAFE • ANIMALI e CARRIERA RIPRODUTTIVA • ANIMALI e AZIENDE
Associazioni a molte entità Le associazioni possono collegare più di due entità, per esempio il concetto di CONTROLLO SANITARIO, inteso come Lavoro di stalla di un certo VETERINARIO e un certo OPERATORE rispetto a un certo ANIMALE, potrebbe essere rappresentato come AZIENDE ANIMALI CONTROLLI SANITARI VETERINARI
Identificatori (chiavi) Ogni entità è un insieme di oggetti aventi le stesse proprietà. È necessario poter identificare in modo univocociascuna istanza di un’entità Identificatore interno (ID): sottoinsieme di attributi che costituiscono una chiave per l’entità Identificatore esterno: quando non è sufficiente utilizzare un sottoinsieme di attributi ma l’entità partecipa a una relazione con cardinalità (1,1), i suoi elementi possono essere identificati tramite tale relazione
Esempio: identificatore interno Propritario Indirizzo AZIENDA Cod. fiscale (identificatore interno) Nome ANIMALE Sesso … Matricola (identificatore interno) • Vi vengono in mente altri esempi?
Esempio: identificatore esterno Matricola cane Libro genealogico ISCRIZIONE (1,1) (1,N) madre nome Indirizzo Città Nome sesso Quando gli attributi interni non sono sufficienti si possono considerare attributi di più entità.
Esempio: identificatore esterno • Ad esempio, nel caso precedente che considera tutti I cani iscritti a tutti i libri razza, non c’è garanzia che i numeri di matricola siano univoci • Per identificare in modo univoco un cane servirà quindi, oltre al suo numero di matricola, anche il nome del libro razza a cui è iscritto • Quindi un identificatore corretto per l’entità CANE è dato dal suo attributo Matricola e dall’entità LIBRI RAZZA, in particolare dall’attributo Nome di LIBRO RAZZA, che è un identificatore esterno • Naturalmente questo funziona perchè ad ogni CANE è associata uno e un solo LIBRO RAZZA
Per il progetto Libro Eventi di Stalla • Pensate alla realtà dell’ modellare e costruite lo schema E-R, rispondendo alle seguenti domande: • Quali sono le entità coinvolte? • Quali le relazioni? • Che attributi servono? • Quali sono gli attributi univoci (chiavi) che • si devono usare?
Schema logico Progettazione logica
Modello Relazionale Si basa sul concetto matematico di Relazione e sul concetto intuitivo di Tabella e permette di costruire un modello dei dati Esistono diversi approcci alla modellazione dei dati:modello gerarchico, modello reticolare, modello a oggetti, noi studieremo il modello relazionale
Base di dati come insieme di tabelle I dati che formano una base di dati relazionale sono contenuti in un insieme di tabelle Ti. Ogni tabella è una relazione, in senso matematico Cosa vuol dire?
Struttura di una tabella attributi n1 n2 nn vi1 vi2 vin recordri • Una tabella è un insieme di oggetti detti record • Ogni record corrisponde ad una riga della tabella • I record di una tabella hanno la stessa struttura
Attributi e valori • Ogni colonna della tabella corrisponde ad un attributo • Ogni attributo assume valori su di un dominio (es. numeri interi, sequenza di caratteri, l’insieme {lun, mar, merc, giov, ven}, …) • I dati contenuti in una colonna sono omogenei
Relazioni fra tabelle • Supponiamo ora di averedue tabelle T1 T2 Nome Nascita bionda settembre bruna agosto stella dicembre moro aprile Città Provincia Pinerolo TO Trino VC Bra CN Novi AL Possiamo fare il prodotto cartesiano T1 x T2 delle due tabelle? Sì!
Attenzione … • In questo caso ogni record è costituito da più colonne T1 Nome Nascita bionda settembre bruna agosto stella dicembre moro aprile • Nel fare il prodotto cartesiano i record nonvanno spezzati!! T1 x T2 = { (r1, r2) : r1 T1 e r2 T2} (bionda,settembre) (Pinerolo,TO)
Risultato … T1 x T2 = { ( ( bionda, settembre ) , ( Pinerolo,TO ) ), ( ( bionda, settembre ) , ( Trino,VC ) ), ( ( bionda, settembre ) , ( Bra,CN ) ), ( ( bionda, settembre ) , ( Novi,AL ) ), …} In pratica si componeogni record di T1 con ogni record di T2
Risultato in forma tabellare Nome Nascita Città Provincia bionda settembre Pinerolo TO bionda settembre Trino VC bionda settembre Bra CN bionda settembre Novi AL bruna agosto Trino VC bruna agosto Pinerolo TO bruna agosto Bra CN bruna agosto Novi AL stella dicembre Bra CN stella dicembre Pinerolo TO stella dicembre Trino VC stella dicembre Novi AL moro aprile Novi AL moro aprile Pinerolo TO moro aprile Trino VC moro aprile Bra CN
Risultato in forma tabellare Il numero di record della tabella risultato è il prodotto del num. di record di T1 per il num. di record di T2 mentre il numero di colonne della tabella risultato è il num. delle colonne di T1 più il numero di colonne di T2
Nome n. anagrafe bionda FR 48 0201 7285 … bionda FR 48 0201 7200 Osservazione • I dati devono essere coerenti Non DEVE essere possibile associare due CODICI ANAGRAFE diversi alla stessa bovina