Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni



Documenti analoghi
Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi

Cardinalità. Informatica. Cardinalità. Cardinalità. Cardinalità. Cardinalità. Cardinalità delle associazioni:

MODELLO RELAZIONALE. Introduzione

Elena Baralis 2013 Politecnico di Torino 1

Vincoli di integrità

Modulo 2 Data Base 2

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Associazioni. Informatica. Associazioni. Associazioni. Associazioni. Attributi. Possono esistere associazioni diverse che coinvolgono le stesse entità

2.2b: RELAZIONI E BASI DI DATI. Atzeni, cap

Progettazione di Basi di Dati

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

Informatica (Basi di Dati)

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Introduzione alla progettazione. Metodologie e modelli per la progettazione di basi di dati. Il ciclo di vita dei sistemi informativi

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Identificatori delle entità

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Il modello relazionale

BASE DI DATI: sicurezza. Informatica febbraio ASA

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Partite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni

Corso di Informatica (Basi di Dati)

Progettazione del Software, Laurea in Ingegneria Gestionale Progettazione del Software Laurea in Ing. Gestionale

Alessandra Raffaetà. Basi di Dati

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Data Base Relazionali

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

I database. Cosa sono e a cosa servono i Database

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Rappresentazione grafica di entità e attributi

Progettazione Logica. Progettazione Logica

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Progettazione base dati relazionale

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Organizzazione degli archivi

GERARCHIA IS-A (è un) GENERALIZZAZIONI / SPECIALIZZAZIONI ESEMPIO 1

Database. Si ringrazia Marco Bertini per le slides

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro

Segreteria da campo. Database Relazionali

Sistemi Informativi e Basi di Dati

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Informatica (Basi di Dati)

PROGETTAZIONE CONCETTUALE

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 5

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

Progettazione di Database. Un Esempio

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

Progettazione di Database

Il Modello Relazionale

Il Modello Relazionale

Modello dei Dati ENTITÀ-RELAZIONE (ENTITY-RELATIONSHIP) é l insieme di concetti, simboli, regole che useremo per rappresentare il modello concettuale

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Corso sul linguaggio SQL

Progettazione logica relazionale (1/2)

Il modello relazionale dei dati

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

GENERALIZZAZIONE E SPECIALIZZAZIONE ISA 1

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

Introduzione all Algebra Relazionale

Le Basi di Dati. Le Basi di Dati

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Esercitazione di Basi di Dati

Il Modello Relazionale

database: modello entityrelationship

BASI DI DATI - : I modelli di database

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Definizione di domini

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

Il modello relazionale

CAPITOLO 7 ESERCIZI SUL MODELLO ER

Data Base. Ing. Maria Grazia Celentano

MODELLO E/R. Modellazione dei dati

DATABASE RELAZIONALI

PROGETTAZIONE DI UN DATABASE

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Progettazione di un Database

TEORIA sulle BASI DI DATI

Progettazione concettuale

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Lezione 8. La macchina universale

Il database management system Access

Capitolo 2. Esercizio 2.1. Esercizio 2.2

Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

Capitolo 13. Interrogare una base di dati

70555 Informatica Sicurezza Mario Rossi Anna Bianchi. Esempio istanza:

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Il modello Entity-Relationship per il progetto delle basi di dati

Progettazione di un DB....in breve

La progettazione concettuale: il modello ER. 17/12/2007 Unità di Apprendimento A2 1

Basi di dati 9 febbraio 2010 Compito A

Transcript:

e identificatori Codice (0,1) (1,1) Dirige Informatica Lezione 8 Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 2012 2013 1 Cognome Stipendio Età Budget (0,1) Data consegna Impiegato Partecipa a Progetto (0,1) Afferisce a Dipartimento Data inizio Data afferenza (1,1) Composta da Sede Telefono Città Numero civico Via CAP 2 : rappresentano legami logici di generalizzazione/specializzazione tra una entità E e una o più entità E1,,En Entità E è più generale rispetto a E1,,En, nel senso che le comprende come caso particolare E: padre E1,,En: figli E è generalizzazione di E1,,En E1,,En sono specializzazioni dell entità E l entità Persona è una generalizzazione delle entità Uomo e Donna Professionista è una generalizzazione delle entità Ingegnere, Medico e Avvocato Viceversa, Uomo e Donna sono specializzazioni dell entità Persona, Ogni occorrenza di una entità figlia è anche una occorrenza dell entità padre Esempio: una occorrenza dell entità Avvocato è anche una occorrenza dell entità Professionista 3 4 Ogni proprietà dell entità padre (attributi, identificatori, partecipazione ad un associazione, e altre generalizzazioni) è anche una proprietà delle entità figlie (ereditarietà) Esempio: se l entità Persona ha attributi Cognome ed Età, anche le entità Uomo e Donna possiedono questi attributi Esempio: l identificatore di Persona è un identificatore valido anche per le entità Uomo e Donna 5 Per le entità figlie, le proprietà ereditate non vanno rappresentate esplicitamente Codice fiscale Cognome Età Uomo Persona Donna 6 1

Due classificazioni ortogonali per le generalizzazioni: 1. Una generalizzazione è totale se ogni occorrenza della classe padre è una occorrenza di almeno una delle entità figlie, altrimenti ti è parziale Codice fiscale Cognome Età Persona t La generalizzazione tra l entità Persona e le entità Uomo e Donna è totale Veicolo p La generalizzazione tra l entità Veicolo e le entità Automobile e Bicicletta è parziale 2. Una generalizzazione è esclusiva se ogni occorrenza della classe padre è al più una occorrenza di una delle entità figlie, altrimenti è sovrapposta La generalizzazione tra l entità Veicolo e le entità Automobile e Bicicletta è esclusiva La generalizzazione tra l entità Persona e le entità Studente e Lavoratore è sovrapposta Uomo Donna Automobile Bicicletta 7 8 Le generalizzazioni sovrapposte possono essere trasformate in generalizzazioni esclusive: Aggiungere una o più entità figlie, per rappresentare i concetti che costituiscono le intersezioni delle entità che si sovrappongono Per esempio: aggiungere l entità StudenteLavoratore Una stessa entità può essere coinvolta in più generalizzazioni diverse Possono esserci generalizzazioni su più livelli (una gerarchia) 9 10 Modello Entità Associazione Numero Generalizzazione Figlia di Padre di (1,1) Entità massima Costrutto minima (1,1) Appartiene a Costrutto Attributo massima base (0,1) Partecipa a Composto da Associazione (2,N) minima Attributo composto 11 Basi di dati parte 3 Basi di dati relazionali: relazioni, tabelle, chiavi, vincoli 12 2

Il modello relazionale Il modello relazionale: Modello logico dei dati basato su concetti di relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica di una relazione; un concetto intuitivo Garantisce indipendenza dei dati Utenti che accedono ai dati e programmatori che sviluppano applicazioni fanno riferimento al livello logico dei dati Cioè, agli utenti e ai programmatori, non serve sapere come i dati sono memorizzati fisicamente Relazioni e tabelle Relazioni sono rappresentate graficamente come tabelle Tupla (di una relazione) = riga (di una tabella) Corrisponde a record Esempio: rappresentare i risultati di partite di calcio con una relazione Insieme di squadre: Squadre = {Juventus, Lazio, Milan, Roma, Torino} Per rappresentare il numero di gol: N,, insieme di numeri naturali ({0, 1, 2, 3, }) Prodotto cartesiano: Squadre x Squadre x N x N Squadre e N sono i domini utilizzati nella relazione Esempio di una relazione: {(Torino, Lazio, 3, 2), (Roma, Milan, 2, 0), (Juventus, Roma, 0, 2), (Roma, Milan, 2, 1)} 13 14 Relazioni e tabelle Esempio: risultati partite di calcio Esempio di una relazione: {(Torino, Lazio, 3, 2), (Roma, Milan, 2, 0), (Juventus, Roma, 0, 2), (Roma, Milan, 2, 1)} La tabella che rappresenta graficamente la relazione: Torino Lazio 3 2 Roma Milan 2 0 Juventus Roma 0 2 Roma Milan 2 1 Relazioni e tabelle Una relazione è un insieme di tuple: Insieme: collezione di elementi L ordine degli elementi non è importante Un insieme non contiene duplicati Le tuple della relazione devono essere distinte (no righe ripetute in tabella) Le tuple non sono tra loro ordinate (tabelle con stesse righe ordinate in modo diverso rappresentano la stessa relazione) 15 16 Relazioni con attributi Attributi Usiamo nome di attributo per identificare le rispettive componenti delle tuple In una tabella: attributo intestazione di colonne della tbll tabella SquadraDiCasa, SquadraOspitata, RetiCasa, RetiOspitata SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata Torino Lazio 3 2 Roma Milan 2 0 Juventus Roma 0 2 Roma Milan 2 1 17 Relazioni e Basi di Dati Un DB è solitamente costituito da più relazioni le cui tuple contengono valori comuni (usati per stabilire corrispondenza tra tuple) relazioni che descrivono studenti, esami e corsi Studenti Matricola Cognome DataNascita 276545 Rossi Maria 25/11/1990 485745 Neri Anna 23/04/1989 200768 Verdi Fabio 12/02/1982 587614 Rossi Luca 10/10/1990 937653 Bruni Mario 01/12/1991 18 3

Relazioni e Basi di Dati Esami Studente Voto Corso 276545 28 01 485745 27 04 200768 25 01 587614 24 04 Matricola Cognome DataNascita 276545 Rossi Maria 25/11/1990 485745 Neri Anna 23/04/1989 200768 Verdi Fabio 12/02/1982 587614 Rossi Luca 10/10/1990 937653 Bruni Mario 01/12/1991 Studente Voto Corso 276545 28 01 485745 27 04 200768 25 01 587614 24 04 Corsi Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 19 04 Chimica Belli 20 Relazioni e Basi di Dati Schemi di relazioni e di DB Sono ammissibili relazioni con un solo attributo Per esempio: Lavoratori Matricola 276545 485745 200768 Schema di relazione: R(X) Costituita da simbolo R (nome della relazione) e dall insieme dei nomi di attributi X={A 1,,A n } Esami(Studente,Voto,Corso) 21 Esami Studente Voto Corso 276545 28 01 485745 27 04 200768 25 01 587614 24 04 22 Schemi di relazioni e di DB Schema di base di dati: D={R 1 (X 1 ),, R n (X n )} Insieme di schemi di relazioni Le relazioni sono identificate per nome i nomi devono essere diversi Università = {Studenti(Matricola, Cognome,, DataNascita), Esami(Studente,Voto,Corso), Corso(Codice,Titolo,Docente)} Schemi di relazioni e di DB Istanza di relazione (o semplicemente relazione) su schema R(X) Insieme r di tuple su X Istanza di base di dati (o semplicemente base di dati) su schema D={R 1 (X 1 ),,R n (X n )} Insieme d di relazioni d={r 1,,r n } dove ogni r i è un istanza di relazione sullo schema R i (X i ) 23 24 4

Istanze incoerenti Non tutte le tuple rappresentano informazione corretta per un applicazione Valori non assegnabili per un singolo attributo voto = 36 Valori di più attributi non simultaneamente assegnabili voto = 24, lode = Sì Record con valori uguali per attributi identificanti record con la stessa matricola in relazione Studenti Valori inesistenti in attributi usati per corrispondenze tra tabelle Matricola in tabella Studenti, e Studente in tabella Esami Vincoli di integrità Proprietà che devono essere soddisfatte dalle istanze corrette per un applicazione Sono predicati che associano ad ogni istanza il valore vero o falso Vero: istanza corretta (ammissibile, lecita) Falso: istanza incoerente Definendo lo schema di una base di dati si associano vincoli di integrità che si riferiscono a tutte le istanze della base di dati Questi vincoli permettono di considerare corrette le sole istanze che li verificano tutti 25 26 Vincoli di integrità Vincoli intrarelazionali: vincoli interni a una relazione: Soddisfacimento definito rispetto ad una singola tabella della base di dati Due tipi: Vincolo di tupla: esprime condizioni sui valori di ciascuno record indipendentemente da altri record Vincolo di dominio (vincolo su valori): restrizione su dominio di un singolo attributo Vincoli su assegnamento di valori ad attributi diversi di un record Vincolo di chiave Vincoli interrelazionali Esprimibili mediante espressioni booleane (eventualmente usando gli operatori logici AND, OR, NOT) i cui termini contengono: Uguaglianze, disuguaglianze, ordinamenti di valori di attributo Espressione aritmetiche su valori di attributo Vincolo di dominio (Voto 18) AND (Voto 30) Vincolo su più attributi NOT(Lode = Sì AND Voto 30) Pagamenti(Data, Importo, Ritenute, Netto) Netto = Importo Ritenute 27 28 Vincolo di dominio (Voto 18) AND (Voto 30) Vincolo di dominio (Voto 18) AND (Voto 30) 321654 30 Sì Tutte i record della relazione/tabella soddisfano il vincolo Quindi, la relazione/tabella soddisfa il vincolo 321654 36 Sì Un record della tabella Quindi, la relazione/tabella 29 30 5

Vincolo su più attributi NOT(Lode = Sì AND Voto 30) Vincolo su più attributi NOT(Lode = Sì AND Voto 30) 321654 30 Sì Tutte i record della relazione/tabella soddisfano il vincolo Quindi, la relazione/tabella soddisfa il vincolo 321654 26 Sì Una riga della tabella Quindi, la relazione/tabella 31 32 Pagamenti(Importo, Ritenute, Netto) Netto = Importo Ritenute Pagamenti(Importo, Ritenute, Netto) Netto = Importo Ritenute Importo Ritenute Netto 30 10 20 45 15 30 50 5 45 20 8 12 5 3 2 Tutte i record della relazione/tabella soddisfano il vincolo Quindi, la relazione/tabella soddisfa il vincolo Importo Ritenute Netto 30 10 20 45 15 30 50 5 5 20 8 12 5 3 25 Alcuni record della tabella non soddisfano il vincolo Quindi, la relazione/tabella 33 34 Vincoli di chiave Chiave primaria: è un particolare insieme (non vuoto) di attributi che il progettista del DB definisce come modo preferito per identificare univocamente le righe di una tabella Una chiave primaria K di una tabella deve avere la proprietà seguente: la relazione non può contenere due righe che hanno valori uguali su K Una chiave primaria esiste per ogni tabella: l insieme di tutti gli attributi della tabella può essere impostato come chiave primaria Vincoli di chiave Esempi: Attributo Matricola della tabella Studenti (più precisamente, l insieme {Matricola} della tabella Studenti) Insieme {Studente, Voto, Corso} della tabella Esami N.B.: Il concetto di chiave primaria è relativo alla relazione: Uno stesso insieme di attributi potrebbe essere chiave di una relazione, ma non esserlo di un altra Per es., l attributo Matricola è chiave della relazione Studenti, ma non della relazione Esami 35 36 6