1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a. 2005 - 2006 Ing. Mauro.

Slides:



Advertisements
Presentazioni simili
La progettazione concettuale
Advertisements

Informatica II – Basi di Dati (08/09) – Parte 1
Corso di Laurea in Biotecnologie Informatica (Basi di Dati)
DB - Modello relazionale dei dati
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Il linguaggio della Matematica: Insiemi e operazioni
IL MODELLO ENTITA’ - RELAZIONE I costruttori di base
Frontespizio Economia Monetaria Anno Accademico
4 – Progettazione – Introduzione e Modello E-R
I sistemi di riferimento
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Il modello relazionale: strutture e vincoli
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
1 I SISTEMI INFORMATIVI Luso dei DATABASE in azienda Giovedì, 22 aprile 2004Alessandro Capodaglio.
Sistemi innovativi in zootecnia
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Progettazione di una base di dati
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Partizionamento/accorpamento di concetti
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Introduzione alle basi di dati
Basi di dati Claudia Raibulet
Introduzione alle Basi di Dati. Overview Informazione = contenuto + struttura Informazione non strutturata Molto contenuto, poca struttura Un romanzo.
Velocità ed accelerazione
Implementare un modello di dati
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Progettare un database
Sistemi di Elaborazione delle Informazioni Mod.I.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
DB- Sistemi Informativi
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
lun mar mer gio ven SAB DOM FEBBRAIO.
TRASFORMATA DI FOURIER
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
Modellazione dei Dati Fabio Scanu a.s. 2012/2013.
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Progettazione di una base di dati relazionale Vincoli.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Cloud informatica V anno.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Transcript della presentazione:

1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro Zaninelli – Lezione 2 A

2 Cos’è una Base di Dati Relazionale?

3 Modello Relazionale (fine anni ’60) 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

4 I dati che formano una base di dati relazionale sono contenuti in un insieme di tabelle T i. Ogni tabella è una relazione, in senso matematico Cosa vuol dire? Base di dati come insieme di tabelle

5 Relazione Siano D nomi = { Anna, Piero, Elena } D voti = { suff, discr, buono, ottimo } D nomi x D voti = { (Anna, suff), (Anna, discr), (Anna, buono),(Anna, ottimo), (Piero, suff), (Piero, discr), …, …, (Elena, ottimo) } Prodotto cartesiano 3 x 4 = 12 elementi Tutti i nomi combinati con tutti i voti

6 Il prodotto cartesiano, associando tutti con tutti, non porta molta informazione In generale ci interessa solo un sottoinsieme delle possibili associazioni, ovvero una relazione Es. { (Anna, buono), (Piero, discr), (Elena, suff) } Una relazione può essere rappresentata come una tabella Anna buono Piero discr Elena suff Relazione

7 D i, i  [1, n] dominio di una data caratteristica (dominio = insieme di tutti i valori possibili per tale caratteristica) Prodotto cartesiano D 1 x D 2 x … x D n = { (v 1, v 2, …, v n ): v 1  D 1, v 2  D 2, …, v n  D n } Gli elementi del prodotto cartesiano sono anche detti ennuple o tuple Caso generale

8 … continua R  D 1 x D 2 x … x D n È un sottoinsieme del prodotto cartesiano n è la cardinalità della relazione Relazione

9 Cognome = { Rossi, Bianchi, Verdi } Nascita = { 1980, 1977, 1975 } Corsolaurea = { economia, medicina } Cognome x Nascita x Corsolaurea = { (Rossi,1980, economia), (Rossi,1980,medicina), (Rossi,1977, economia), (Rossi,1977, medicina), (Rossi,1975, economia), (Rossi,1975, medicina), (Bianchi, 1980, economia), (Bianchi, 1980, medicina), (Bianchi, 1977, economia), (Bianchi, 1977, medicina), (Bianchi, 1975, economia), (Bianchi, 1975, medicina), …} … continua

10 La relazione contiene i legami tra i valori e ci dice chi è nato in quale anno, ed a quale facoltà è iscritto Cognome Nascita Corsolaurea Rossi 1980economia Bianchi 1980medicina Verdi1975medicina … continua Potrebbero sorgere dei problemi nella relazione precedente?

11 n1n1 n n2n2 v i1 v i2 vinvin record r i attributi  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 Struttura di una tabella

12  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 Attributi e valori

13  Supponiamo ora di avere due tabelle Nome Nascita Anna settembre Lisa agosto Luca dicembre Elena aprile Città Provincia Pinerolo TO Trino VC Bra CN Novi AL Possiamo fare il prodotto cartesiano T1 x T2 delle due tabelle? Sì! T1T2 Relazioni fra tabelle

14  In questo caso ogni record è costituito da più colonne  Nel fare il prodotto cartesiano i record non vanno spezzati!! T1 x T2 = { (r1, r2) : r1  T1 e r2  T2} (Anna,settembre)(Pinerolo,TO) Attenzione … Nome Nascita Anna settembre Lisa agosto Luca dicembre Elena aprile T1

15 T1 x T2 = { ( ( Anna, settembre ), ( Pinerolo,TO ) ), ( ( Anna, settembre ), ( Trino,VC ) ), ( ( Anna, settembre ), ( Bra,CN ) ), ( ( Anna, settembre ), ( Novi,AL ) ), …} In pratica si compone ogni record di T1 con ogni record di T2 Risultato …

16 Nome Nascita Città Provincia Anna settembre Pinerolo TO Anna settembre Trino VC Anna settembre Bra CN Anna settembre Novi AL Lisa agosto Trino VC Lisa agosto Pinerolo TO Lisa agosto Bra CN Lisa agosto Novi AL Luca dicembre Bra CN Luca dicembre Pinerolo TO Luca dicembre Trino VC Luca dicembre Novi AL Elena aprile Novi AL Elena aprile Pinerolo TO Elena aprile Trino VC Elena aprile Bra CN Risultato in forma tabellare

17 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 Risultato in forma tabellare

18  Anche il prodotto cartesiano fra tabelle non porta molta informazione  Ci fa vedere però come sia possibile definire delle relazioni fra le tabelle e quindi come i dati contenuti in una tabella possano essere combinati con i dati contenuti nelle altre  Più avanti vedremo come sia possibile combinare tali dati per ottenere informazioni significative Relazioni tra tabelle

19 Perchè relazionale?  I dati sono contenuti in tabelle  Le tabelle sono delle relazioni in senso matematico  È possibile definire nuove relazioni che combinano i dati contenuti in più tabelle  Esiste un supporto matematico formale che consente di realizzare sistemi per l’elaborazione dei dati rappresentati secondo il modello relazionale

20  I dati sono correlati Nome Matricola Corso STUDENTI Docente Materia Libro DOCENTI Materia Corso CORSI ? Osservazione

21 Nome Codfiscale Anna Rossi ANNRSS00001 … Anna Rossi ANNRSS99901 Non dovrebbe essere possibile associare due codici fiscali diversi alla stessa persona Osservazione  I dati devono essere coerenti

22 Se la studentessa Anna Rossi abbandona l’Università e viene quindi cancellata dall’elenco degli iscritti, non devono rimanere riferimenti ad Anna Rossi nelle altre tabelle della base dati Osservazione  I dati devono essere consistenti Nome Cognome altre info … Anna Rossi ….. Nome Cognome Corso Anna Rossi economia ?

23 Osservazione  Il modello permette di specificare informazione incompleta  Per rappresentare la mancanza di alcuni valori il concetto di relazione viene esteso permettendo l’introduzione del valore nullo (NULL)

24 Molti di questi controlli e/o aggiornamenti possono essere eseguiti in modo automatico dal sistema, a patto che i progettisti della base di dati esprimano delle regole (dette vincoli) che indicano quali controlli il sistema deve effettuare Vincoli

25 1.Vincoli di dominio 2.Vincoli di chiave 3.Vincoli di integrità referenziale  I vincoli sono delle proprietà che devono essere soddisfatte dalle tuple e possono coinvolgere una o più relazioni Vincoli

26  I vincoli di dominio riguardano gli attributi: i valori che i record assumono in corrispondenza dei vari attributi sono definiti nei loro domini  Per il sistema “lunedì” e “Marta” sono due sequenze di caratteri, quindi, se non ci fossero vincoli, potrebbero appartenere alla stessa colonna di una tabella  Sul voto di un esame si può imporre un vincolo: deve essere compreso tra 18 e 30, e solo con il 30 ci può essere la lode Vincoli di dominio

27  Come abbiamo già visto nel modello E-R, è importante poter identificare gli elementi, in questo caso i record, in modo univoco  L’identificazione viene fatta in base al contenuto dei record medesimi, innanzi tutto definendo un insieme di attributi che combinati insieme assumono valori diversi per ogni record (vincolo di chiave)  Un tale insieme è detto superchiave Vincoli di chiave

28 Nome Cognome Codfis Residenza Statocivile Andrea Rossi …. Celibe Andrea Bianchi …. Sposato Andrea Rossi …. Sposato Luigi Bianchi …. Celibe Giorgia Verdi …. Nubile Elena Valli …. Nubile Giorgia Verdi …. Nubile Ada Rossi …. Sposata Esempio Superchiave = { Codfis } Una superchiave minima è detta chiave primaria

29 Una chiave primaria può essere costituita da più attributi Titolo Autore Dataprestito Codutente Poesie Rossi 10/7/ Storia Verdi 10/7/ Poesie Rossi 8/8/ … … PRESTITI In questo caso la chiave primaria è costituita dalla coppia { Titolo, Dataprestito } Oss. vale solo se nella biblioteca c’è una sola copia per ogni libro, altrimenti potrebbero esserci record uguali Esempio

30  Usano in concetto di chiave esterna  Una chiave esterna è un attributo o un insieme di attributi di una relazione, i cui valori devono corrispondere ai valori di una chiave primaria di un’altra relazione  Si dice che una chiave esterna fa riferimento alla sua chiave primaria  Le chiavi esterne sono un meccanismo che consente di mantenere l’integrità dei dati Vincoli di integrità referenziale

31 Titolo Autore Dataprestito Codutente Poesie Rossi 10/7/ Storia Verdi 10/7/ Poesie Rossi 8/8/ … … PRESTITI Codice Nome Indirizzo Telefono 111 Rossi via Matera Verdi via Matera Rossi via Pavesi … … UTENTI Esempio

32 Codlibro Codutente Data PRESTITI Codice Titolo Autore LIBRI Utente Nome Indirizzo Telefono UTENTI Esempio

33 1.Non si possono dare in prestito libri che non compaiono nel catalogo della biblioteca 2.Non si possono prestare libri a utenti privi di tessera o con un codice di tessera non valido 3.Se si elimina un libro dal catalogo, si eliminano anche le informazioni ad esso correlate in modo automatico 4.Se si modificano i codici dei libri secondo un nuovo criterio di assegnazione, la tabella dei prestiti verrà aggiornata automaticamente Mantenimento della coerenza dei dati contenuti nella base di dati Cosa significa?

34 Come si realizza una Base di Dati partendo da un modello Entità Relazioni?

35 Traduzione da E-R a Relazionale Costruito lo schema concettuale (modello E-R) occorre tradurlo in uno schema logico ad esso equivalente, allo scopo di rappresentare la realtà di interesse in termini di una descrizione ancora indipendente dai dettagli fisici ma vicina al modello dei dati usato dal DBMS scelto

36 Entità  Ad ogni entità corrisponde una relazione con lo stesso nome e gli stessi attributi. L’identificatore dell’entità è la chiave della relazione PERSONE Nome Codfiscale Indirizzo PERSONE (Nome, Cognome, Codfiscale, Indirizzo) Cognome

37  Gli attributi composti possono essere tradotti come una relazione a parte oppure essere appiattiti nella relazione corrispondente all’entità in questione INDIRIZZO (Via, Numero civico, CAP, Id) PERSONE (…, Via, Numero civico, CAP) Attributi composti Indirizzo Via Numero civico CAP

38 La traduzione avviene per passi 1.Per ogni entità si costruisce la relazione corrispondente (con gli stessi attributi) 2.Anche l’associazione viene tradotta in una relazione in cui i.gli attributi dell’associazione diventano attributi della relazione ii.si devono anche introdurre gli identificatori delle entità coinvolte per mantenere il legame (Id e Codice nella relazione PARTECIPAZIONE dell’esempio che segue) Associazioni molti a molti

39 IMPIEGATIPROGETTI PARTECIPAZIONE (0,N) Cognome Qualifica Id Codice Titolo Datainizio Associazioni molti a molti IMPIEGATI (Cognome, Qualifica, Id) PROGETTI (Titolo, Codice) (0,N)  Prima si traducono le entità

40 PARTECIPAZIONE IMPIEGATIPROGETTI (0,N) Cognome Qualifica Id Codice Titolo Datainizio Associazioni molti a molti (0,N) PARTECIPAZIONE (Datainizio, Id, Codice)  Poi si crea una relazione per l’associazione

41 Devono inoltre essere aggiunti opportuni vincoli di integrità referenziale fra gli attributi della relazione che traduce l’associazione e gli attributi delle entità con cui si vuole mantenere il legame Nell’esempio precedente occorre introdurre due vincoli: uno fra “Id” di IMPIEGATI e “Id” di PARTECIPAZIONE e uno fra “Codice” di PROGETTI e “Codice” di PARTECIPAZIONE Associazioni molti a molti

42 In questo caso ci sono due possibilità Si procede come nel caso precedente delle associazioni molti a molti Si osserva che alcune relazioni condividono la stessa chiave primaria (quelle per cui la cardinalità dell’associazione è 1:1). Queste relazioni possono essere essere riunite in una sola, aggiungendo però degli attributi per mantenere il legame con le altre entità Associazioni uno a molti

43 GIOCATORE SQUADRA CONTRATTO Cognome Nascita Nome Città Ingaggio SQUADRA (…) Associazioni uno a molti (1) Ruolo (1,1) (0,N) CONTRATTO (Cognome, Nascita, Nome, Ingaggio) GIOCATORE (…) Stessa traduzione del caso di associazioni molti a molti

44 GIOCATORE SQUADRA CONTRATTO Cognome Nascita Nome Città Ingaggio Associazioni uno a molti (2) Ruolo (1,1) (0,N) GIOCATORE (Cognome, Nascita, Ruolo, Ingaggio, Nome) SQUADRA (Nome, Città) La relazione GIOCATORE contiene anche le informazioni sull’associazione CONTRATTO; Nome serve per mantenere il legame con SQUADRA

45 In questo caso ci sono più possibilità Si procede come nel caso precedente delle associazioni uno a molti, con un numero maggiore di possibilità di scelta della relazione cui associare l’associazione Nel caso di associazioni con partecipazione opzionale (ovvero cardinalità minima uguale a zero) si costruisce una nuova relazione per l’associazione Associazioni uno a uno

46 IMPIEGATO UFFICIO Matricola Qualifica Numero MetriQuadri (1,1) IMPIEGATO (Matricola, Qualifica, DataInizio, Numero) LAVORA UFFICIO (Numero, MetriQuadri) Associazioni uno a uno (1) (1,1) DataInizio La relazione IMPIEGATO contiene anche le informazioni sull’associazione LAVORA; Numero serve per mantenere il legame con UFFICIO

47 IMPIEGATO UFFICIO Matricola Qualifica Numero MetriQuadri (1,1) IMPIEGATO (Matricola, Qualifica) LAVORA UFFICIO (Numero, MetriQuadri, Matricola, DataInizio) Associazioni uno a uno (2) (1,1) DataInizio La relazione UFFICIO contiene anche le informazioni sull’associazione LAVORA; Matricola mantiene il legame con IMPIEGATO

48 IMPIEGATO UFFICIO MatricolaQualifica Numero MetriQuadri (0,1) IMPIEGATO (Matricola, Qualifica) LAVORA UFFICIO (Numero, MetriQuadri) Associazioni uno a uno (opzionali) (0,1) LAVORA (Matricola, Numero, DataInizio) DataInizio Stessa traduzione del caso di associazioni molti a molti

49 Per maggiori informazioni su questa prima parte potete usare il libro Basi di Dati di Atzeni, Ceri, Paraboschi, Torlone, casa editrice McGraw-Hill Cap 2, Il modello relazionale Cap 5, Metodologie e modelli per il progetto (pag ) Cap. 7, La progettazione logica (pag ) Libro di testo