Il modello Relazionale.

Documenti analoghi
Il modello Relazionale.

Basi di dati IL MODELLO RELAZIONALE

Fondamenti di Teoria delle Basi di Dati

I modelli logici dei dati. E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 2)

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE

I modelli logici dei dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, IL MODELLO RELAZIONALE

Informatica Industriale Modello informatico: Applicativo Modello relazionale dei dati

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Introduzione. Il Modello Relazionale. Relazioni e Tabelle. Relazioni Matematiche - 1. Relazioni Matematiche - 2. Relazioni Matematiche - 3

IL MODELLO RELAZIONALE

Il modello relazionale. Relazione: tre accezioni. Relazione matematica. Parte II. Il modello relazionale

Il modello relazionale

Fondamenti di Teoria delle Basi di Dati

Monday, January 10, Introduzione

I modelli logici dei dati

Modello relazionale e algebra relazionale

I modelli logici dei dati

Instanze inconsistenti. Informatica II Basi di Dati (07/08) Parte 2. Instanze inconsistenti. Vincoli di integrità

Modello relazionale. Il modello relazionale: strutture e vincoli

Basi di dati e Relazioni

Elena baralis 2007 Politecnico di Torino 1

Il Modello Relazionale

Elena Baralis 2007 Politecnico di Torino 1

DataBase Management System - DBMS

IL MODELLO RELAZIONALE. Patrizio Dazzi a.a

Basi di dati e Relazioni

Modello Relazionale. Università degli Studi di Salerno

Elena baralis 2007 Politecnico di Torino 1

I modelli logici dei dati

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

Informatica II Basi di Dati (07/08) Parte Il modello relazionale. Il modello relazionale. Il modello relazionale

Modello relazionale: Concetti Base. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Database. Modulo 5. C. Marrocco. Università degli Studi di Cassino

Basi di Dati prof. Letizia Tanca

Una relazione con anomalie

Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo Basi di dati a.a

Principi di Progettazione del Software a.a

La progettazione concettuale

MODELLI LOGICI DEI DATI

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 2: Il modello relazionale: strutture e vincoli MODELLI DEI DATI

Il modello relazionale. Dr. C. d'amat

Normalizzazione. Definizione

Tornando all esempio..

Corso di. Basi di Dati I. 3. Vincoli di integrità

RELAZIONI E BASI DI DATI

Ordo et connexio rerum idem est ac ordo et connexio idearum

Database. Modulo 5. C. Marrocco. Università degli Studi di Cassino

Basi di dati. La normalizzazione

Contenuti della lezione

Traduzione. Associazioni n-arie

Forme normali. Le forme normali sono di solito definite sul modello relazionale, ma hanno senso in altri contesti, ad esempio il modello E-R

Corso di Basi di Dati

I modelli logici dei da6. Relazione: tre accezioni. Il modello relazionale. Relazione matema6ca. Relazione matema6ca, esempio IL MODELLO RELAZIONALE

Il Modello Relazionale e le operazioni

LA NORMALIZZAZIONE. Prima parte

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

BASE DI DATI. (accezione specifica) collezione di dati gestita da un DBMS. Università degli Studi di Cassino

Corso di Basi di Dati A.A. 2013/2014

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, La normalizzazione

Scopo. Informatica. Sistema informativo. Sistema informatico

Decomposizione senza perdita

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

Basi di dati. IL MODELLO RELAZIONALE Figure ed esempi. 09/10/2017 Atzeni - Basi di dati - Modello relazionale, figure ed esempi

Il modello Relazionale 1 ** RI P A SSO

Unità 3. Modello Relazionale

Normalizzazione di Basi di Dati

2.2a: MODELLO RELAZIONALE. (1 Struttura)

Forme normali. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill. La normalizzazione. Normalizzazione. Una relazione con anomalie.

Database. Cos è un database? Intro Tipi di entità Mapping ER/EER à Relazionale

Perché questi fenomeni indesiderabili?

Progettazione di basi di dati D B M G

D B M G D B M G 2. Progettazione di basi di dati. Normalizzazione

Tecniche di normalizzazione

Corso di Informatica

Introduzione al Modello Relazionale

Alessandra Raffaetà. La costruzione di una base di dati

BASE DI DATI. collezione di dati, utilizzati per rappresentare le. (accezione specifica) collezione di dati gestita da un DBMS. (accezione generica)

Corso di Informatica

Informatica per Statistica Riassunto della lezione del 06/12/2013

Basi di Dati e Sistemi Informativi. Raffinamento dello schema e Normalizzazione nei database relazionali

Scopo Informatica. Sistema informativo. Sistema informatico. Gestione dell informazione per le lauree triennali

Normalizzazione Progettazione di basi di dati Normalizzazione Normalizzazione Normalizzazione e modello ER Esempio Esame Superato

Accesso alla base di dati. Linguaggi per basi di dati. SQL immerso in linguaggio ad alto livello. SQL, un linguaggio interattivo

Prodotti costosi, complessi, che richiedono investimenti in hardware, software, personale.

Atzeni, Ceri, Paraboschi, Torlone Basi di dati. La normalizzazione. Concetti che descriveremo

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Basi di dati. Note Introduttive. Modello entità-relazioni. Basi di dati ESEMPIO. Sistema informativo. Dati

Normalizzazione. Le forme normali. La normalizzazione. Applicazione forme normali

Modello relazionale. Basi di dati relazionali. Modello relazionale. Il modello relazionale. Schema di una relazione. Modello relazionale

Scopo Laboratorio di Informatica

Normalizzazione (cenni)

Transcript:

Il modello Relazionale foglia@iet.unipi.it

Sommario Il modello Relazionale per la progettazione logica Come passare dal modello ER al modello relazionale

Progettazione Logica Effettuata una progettazione concettuale della base di dati si passa alla progettazione logica della stessa A partire dalla descrizione dei dati che la base di dati dovrà memorizzare al suo interno, la progettazione logica definisce come questi dati verranno memorizzati usando le astrazioni fornite dalla tipologia di DBMS adottata Non si deve conoscere il particolare tipo di DBMS che verrà usato ma si deve conoscerne la tipologia, in particolare il modello logico che questo adotterà

Il modello relazionale: un po di storia Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza con efficienza e affidabilità) agli albori dei DBMS, i modelli reticolare e gerarchico erano più usati Lo sviluppo della teoria relazionale dei dati e lo sviluppo di efficienti tecnologie implementativi hanno reso i DB relazionali lo standard dei DB commerciali attuali nell ambito dei sistemi informativi Oracle, DB2, Informix, Access, SQLServer, MySQL sono tutti DB relazionali

Il Modello Relazionale Il modello Relazionale è il modello logico oggi più usato dai database commerciali comuni Tale modello si basa sul concetto matematico di Relazione (che va intesa in senso algebrico) Tale concetto di relazione non va confuso con il concetto di relazione tra i dati del modello concettuale Ogni relazione è rappresentata graficamente sotto forma di tabella Un database viene rappresentato nel modello relazionale come una collezione di tabelle, a ciascuna delle quali è assegnato un nome unico

Il modello relazionale rispetto agli altri modelli Nel modello relazionale l associazione fra tabelle è realizzata tramite valori nei modelli reticolare e gerarchico l associazione è realizzata in modo esplicito tramite tramite riferimenti (puntatori) I vantaggi del modello relazione (associazione tramite valore) sono: Nel modello relazionale non si fa riferimento ad aspetti fisici (lo sono i puntatori) e dunque si realizza l indipendenza del modello logico da quello fisico Sono rappresentate solo le informazioni rilevanti per l utente (i puntatori sono informazioni addizionali legati ad aspetti realizzativi, che non riguardano l organizzazione dei dati È più facile realizzare la migrazione da un sistema ad un altro

Costrutti fondamentali I costrutti fondamentali del modello relazionale sono i seguenti: Relazione/Tabella Attributo/Colonna Dominio Tupla/Riga

Relazione Matematica Siano D1, D2,, Dn (n insiemi anche non distinti) Prodotto cartesiano D1 D2 Dn: l insieme di tutte le tuple ordinate (d1, d2,, dn) tali che d1 D1, d2 D2,, dn Dn Relazione matematica R su D1, D2,, Dn è un sottoinsieme del prodotto cartesiano D1 D2 Dn D1, D2,, Dn sono i domini della relazione. Una relazione su n domini ha grado n. il numero di tuple (ossia il numero di elementi o di «righe») è la cardinalità della relazione.

Relazione matematica: proprietà una relazione matematica è un insieme di n-uple ordinate: (d 1,, d n ) tali che d 1 D 1,, d n D n una relazione è un insieme: non c'è ordinamento fra le n-uple le n-uple sono distinte Due n-ple (tuple) non possone essere uguali ciascuna n-upla è ordinata: l i-esimo valore proviene dall i-esimo dominio

Relazione - Esempio D1 = {0,1} D2 = {2,3} Prodotto Cartesiano D1 D2 Relazione R D1 D2 0 2 D1 x D2 = 0 3 1 2 R = 0 2 1 3 1 3 La rappresentazione grafica di una relazione avviene sotto forma tabellare Una tabella è un sottoinsieme del prodotto cartesiano fra i domini delle sue colonne I valori delle colonne di una tabella appartengono a dei domini

Relazione e rappresentazione dell informazione Si consideri la relazione partite Partite string string int int Una possibile istanza della relazione partita (rappresentata come tabella) Juve Lazio 3 1 Lazio Milan 2 0 Juve Roma 0 2 Roma Milan 0 1 Cosa rappresenta?

Struttura posizionale e non posizionale Ciascuno dei domini ha due ruoli diversi, distinguibili attraverso la posizione: La struttura è posizionale Attributi: A ciascun dominio si associa un nome unico nella tabella (attributo), che ne descrive il "ruolo La struttura è non posizionale Gli attributi possono essere scambiati, senza alterare il significato della relazione

Struttura non posizionale Casa Juve Lazio Juve Roma Fuori Lazio Milan Roma Milan RetiCasa RetiFuori 3 1 2 0 0 2 0 1

Tabelle e Relazioni In una tabella che rappresenta una relazione l ordinamento tra le righe è irrilevante l ordinamento tra le colonne è irrilevante Una tabella rappresenta una relazione se le righe sono diverse fra loro le intestazioni delle colonne sono diverse tra loro i valori di ogni colonna sono fra loro omogenei

Schema di una relazione Nel modello logico relazionale la Relazione Matematica è adottata per rappresentare uno o più oggetti di una realtà di interesse Consiste in uno Schema e in una Istanza Lo Schema definisce la struttura di una relazione attraverso: Il nome della relazione (il nome della tabella) L insieme dei domini della relazione I nomi assegnati a ciascun dominio (detti attributi) che descrivono il ruolo giocato dal dominio stesso

Istanza di una relazione L istanza di una relazione è una tabella riempita secondo il suo schema Le righe di una tabella si chiamano tuple o record Le colonne della tabella corrispondono agli attributi Il contenuto di un istanza di una relazione NON dipende dall ordinamento delle tuple stesse All interno della relazione non sono ammesse tuple uguali Sono la stessa dupla

Rappresentazione di uno schema Per rappresentare in forma compatta uno schema si utilizza la seguente notazione: Impiegati (Matricola, Cognome, Filiale, Stipendio) Clienti(NomeCliente, Indirizzo) Campi (attributi, colonne) Nome Campi Matricola Cognome Filiale Stipendio 7309 Rossi Roma 55 5998 Neri Milano 64 9553 Milano Napoli 44 5698 Bianchi Torino 64 Tuple (record, righe) 2568 Rossi Roma 55

Esempio con più relazioni Un istanza di basi di dati e un insieme di istanza di relazioni Studenti Matricola Cognome Nome Data di Nascita 276545 Rossi Marco 11/01/1975 253065 Rossi Luca 23/04/1972 243064 Di Martino Gennaro 12/02/1972 Esami Studente Voto Corso 276545 25 01 253065 26 03 243064 30 05 Corsi Codice Titolo Docente 01 Analisi Giani 03 Chimica Fantoni 05 Chimica Baggio Che informazioni sono contenute e come estrarle?

Esempio con più relazioni Qual è la matricola dello studente Marco Rossi? Chi è il docente del corso di analisi? Che voto ha preso Marco Rossi In che esame?

Informazioni incomplete e null L informazione all interno di una tabella devono essere rappresentate in maniera omogenea attenendosi strettamente al dominio scelto per ciascun attributo In alcune casistiche si ha però il bisogno di rappresentare tuple incomplete, in cui alcuni attributi non hanno un valore specificato Perché non esiste Perché può esistere ma non si conosce A tal proposito è introdotto un particolare valore per indicare l assenza di informazione associato a tale attributo Tale valore, detto valore NULL, si aggiunge a quelli di dominio Vedi tabella precedente Perché estendere il dominio ed invece non usare un valore del dominio?

Esempio di tabella con null Non si conosce la data di nascita dello studente Marco Rossi Studenti Matricola Cognome Nome Data di Nascita 276545 Rossi Marco NULL 253065 Rossi Luca 23/04/1972 243064 Di Martino Gennaro 12/02/1972

Problemi connessi all utilizzo del null Troppi valori null possono rendere inconsistente l informazione nella base di dati (che diventa inutilizzabile) Studenti Matricola Cognome Nome Data di Nascita NULL Rossi Marco NULL 253065 Rossi Luca 23/04/1972 243064 Di Martino Gennaro NULL NULL Di Martino Gennaro NULL La prima tupla non è identificabile: se si vuole inserire uno studente Mario Rossi, è lo stesso? Come identificare la tupla in altre relazioni? Le ultime due tuple fanno riferimento o meno allo stesso studente?

Vincoli di Integrità Le strutture del modello permettono di definire come i dati verranno organizzati In molti casi però non è vero che qualsiasi insieme di tuple rappresentano informazioni corrette Al fine di evitare la presenza di tuple composte da informazioni non corrette il modello relazionale permette di definire dei vincoli di integrità sui dati di una relazione, cioè delle proprietà che devono essere soddisfatte dalle istanze Un vincolo può essere visto come un predicato che associa ad ogni istanza un valore vero o falso in modo da verificare che ciascuna istanza sia corretta e ammissibile

Esempio Un istanza di basi di dati con istanze non corrette Studenti Matricola Cognome Nome Data di Nascita 276545 Rossi Marco NULL 243064 Rossi Luca 23/04/1972 243064 Di Martino Gennaro 12/02/1972 Esami Studente Voto Corso 276545 25 01 200010 26 03 243064 36 05 Corsi Codice Titolo Docente 01 Analisi Giani 03 Chimica Fantoni 05 Chimica Baggio

Nota implementativa ai vincoli di integrità alcuni tipi di vincoli (ma non tutti) sono "supportati" dai DBMS: possiamo quindi specificare vincoli di tali tipi nella nostra base di dati e il DBMS ne impedisce la violazione per i vincoli "non supportati", la responsabilità della verifica è dell'utente o del programmatore

Vincoli di integrità Esistono diverse tipi di vincoli di integrità. Questi possono essere distinti in due categorie a seconda degli elementi di una base di dati coinvolti: Vincolo Intrarelazionale: sono vincoli il cui soddisfacimento è definito rispetto alle singole relazioni della base di dati, questi possono riguardare valori di una singola tupla o di più tuple appartenenti alla stessa relazione Vincolo Interrelazionale: se il vincolo coinvolge più relazioni

Vincoli intrarelazionali Coinvolgono le tuple di una sola relazione In generale coinvolgono più tuple (o tutte) della relazione Quando coinvolgono una sola tupla indipendentemente dalle altre, si parla di Vincolo di Tupla: è un vincolo che può essere valutato su ciascuna tupla indipendentemente dalle altre Se poi riguardano il singolo attributo, si parla di Vincolo di Valore o di Dominio: è un vincolo che impone una restrizione sul dominio (sui valori) di un singolo attributo

Vincoli di Tupla Esprimono condizioni sui valori di ciascuna tupla indipendentemente dalle altre Possono essere espressi tramite espressioni booleane (circa nel significato java) e aritmetiche Esempio: nella tabella Esami(STUDENTE,MATERIA,DATA,VOTO,LODE) la LODE può essere assegnata solo se il VOTO è 30 Vincolo: (LODE = L ) AND (VOTO = 30) nella tabella Pagamenti(DATA,IMPORTO,RITENUTE,NETTO) Il netto è pari alla differenza fra l importo e le ritenute Vincolo: NETTO = IMPORTO - RITENUTE

Vincoli di Dominio I valori nelle tuple devono essere del dominio (tipo) specificato nello schema E un Vincolo di base viene specificato per ogni attributo (alla creazione dello schema) riguarda il suo dominio, ovvero che tipo di dati ha senso per quell attributo i domini che si possono usare dipendono dal DBMS (Domini predefiniti) è possibile definire nuovi Domini Vincolo NOT NULL Impone alle tuple di non avere valori nulli su uno o più attributi

Vincoli di Dominio Altri vincoli di dominio possono essere specificati tramite espressioni booleane (circa nel significato java) e aritmetiche Esempio: nella tabella Esami(STUDENTE,MATERIA,DATA,VOTO,LODE) il VOTO deve essere compreso fra 18 e 30 (se si registrano solo gli esami superati) Vincolo: (VOTO >= 18) AND (VOTO<=30)

Chiavi Le tuple di una tabella hanno bisogno di un meccanismo per essere identificate univocamente A tal fine per ogni tabella viene definita una Chiave Una Chiave è un (sotto) insieme di attributi utilizzato per identificare univocamente le tuple di una relazione Un insieme degli attributi è definito superchiave di una relazione se non esistono due tuple distinte con gli stessi valori degli attributi componenti la superchiave nella tabella Tutti gli attributi di una tabella possono essere considerati super-chiave in quanto non sono inserite due tuple con valori identici degli attributi

Vincolo di chiave Una superchiave è chiave se essa è una superchiave minimale, cioè non esiste un altra superchiave composta da un sottoinsieme dei suoi attributi che sia ancora superchiave Quando tale proprietà è imposta come vincolo alle tuple di uno schema di relazione, tale vincolo è detto vincolo di chiave Tra tutte le chiavi di una relazione solitamente viene selezionata la chiave primaria che è una chiave su cui si aggiunge il vincolo di NOT NULL al fine di poter garantire l identificazione univoca di tutte le tuple, tale vincolo è detto vincolo di chiave primaria La chiave primaria viene indicata sottolineandola

Esempio - Chiave L insieme {Matricola, Nome, Cognome} è una superchiave L insieme {Matricola} è una superchiave. Essa è anche una superchiave minimale che può essere candidata a chiave primaria in quanto la Matricola difficilmente sarà sconosciuta L insieme {Nome, Corso} NON è una superchiave L insieme {Cognome, Corso} è una superchiave minimale, però lo è solo in relazione a questa specifica istanza di tuple, in generale è possibile avere due persone con lo stesso cognome che frequentano lo stesso corso di studi Studenti Matricola Cognome Nome Data di Nascita Corso 276545 Rossi Marco NULL Ing. Gestionale 253065 Rossi Luca 23/04/1972 Ing. Informatica 243064 Di Martino Luca 12/02/1972 Ing. Informatica

Esistenza delle chiavi Una relazione non può contenere ennuple distinte ma uguali Ogni relazione ha come superchiave l insieme degli attributi su cui è definita e quindi ha (almeno) una chiave

Importanza delle chiavi L esistenza delle chiavi garantisce l accessibilità a ciascun dato della base di dati In particolare garantisce la sua univoca identificabilità Le chiavi permettono di correlare i dati in relazioni diverse

Chiavi e valori nulli In presenza di valori nulli nella chiave, i valori della chiave non permettono di identificare le ennuple di realizzare facilmente i riferimenti da altre relazioni

esempio Sono presenti due chiavi Matricola Cognome, nome, data di nascita Studenti Matricola Cognome Nome Data di Nascita NULL Rossi Marco NULL 253065 Rossi Luca 23/04/1972 243064 Di Martino Gennaro NULL NULL Di Martino Gennaro 11/09/1995 La prima tupla presenta null in entrambe le chiavi Non è identificabile (se inserisco Rossi Marco, è lo stesso) Non può essere riferite in altre relazioni Le ultime due sono identificabili ma Rappresentano lo stesso studente?

Riferimenti tra relazioni Una base di dati solitamente è composta da diverse relazioni in cui le varie tuple sono collegate tra di loro attraverso riferimenti (rappresenati da valori). In questo caso la relazione Studenti e Esami sono collegate attraverso gli attributi Studente e Matricola, in particolare le tuple della tabella esami hanno come valore dell attributo Studente valori presenti nelle tuple della tabella Studenti nell attributo Matricola. Essendo questi riferimenti validi (non esiste nessuna tupla della tabella Esami che abbia un campo studente con un valore non presente nel campo Matricola in una delle tuple della tabella Studenti) questi sono effettivamente utilizzabili Studenti Matricola Cognome Nome Data di Nascita 276545 Rossi Marco NULL 253065 Rossi Luca 23/04/1972 243064 Di Martino Gennaro 12/02/1972 Esami Studente Voto Corso 276545 25 01 253065 26 03 243064 30 05 Corsi Codice Titolo Docente 01 Analisi Giani 03 Chimica Fantoni 05 Chimica Baggio

Vincoli di integrità referenziale Un vincolo di integrità referenziale o foreign key è un vincolo interrelazionale che permette di imporre che tali riferimenti siano in effetti utilizzabili. In particolare: Un vincolo di integrità referenziale (detto anche vincolo di foreign key ) fra un insieme di attributi X di una relazione R1 e un altra relazione R2 impone ai valori su X di ciascuna ennupla dell istanza di R1 di comparire come valori della chiave (primaria) dell istanza di R2.

Esempio: violazione del vincolo di integrità referenziale Infrazioni Codice 34321 53524 64521 73321 Data 1/2/95 4/3/95 5/4/96 5/2/98 Auto Prov Numero MI TO PR E39548 F34268 839548 Vigile 3987 3295 3295 9345 Prov MI TO PR PR Cognome Rossi Rossi Neri Numero 39548K E39548 839548 839548 Nome Mario Mario Luca

Conversione di diagrammi ER nel modello relazionale foglia@iet.unipi.it

Conversione modello E-R in Modello Relazionale Il Modello Relazionale che rappresenta la realtà di interesse può essere ricavato direttamente dal Modello ER attraverso una sequenza di operazioni di conversione.

Entità Una relazione (tabella) per ciascuna entità del Modello ER utilizzando per i campi gli stessi attributi semplici dell'entità di provenienza chiave primaria scelta tra le chiavi candidate

Relazioni Ad ogni relazione del modello E-R corrisponde una tabella nel modello relazionale, cui è assegnato il nome della corrispondente relazione del modello E-R Per le relazioni si deve prima di tutto esaminare la cardinalità: Le relazioni M:N devono essere tradotte in tabelle che hanno come attributi gli eventuali attributi della relazione e (da non dimenticare!) le chiavi di entrambe le entità collegate dalla relazione. Le relazioni 1:N si possono conglobare nella tabella relativa all'entità dalla parte dell' N. La chiave della tabella dalla parte dell' 1 viene inglobata nella tabella dalla parte dell' N (insieme agli attribute della relazione). Le relazioni 1:1 si possono conglobare come le 1:N, a scelta nell'una o nell'altra tabella.

(0,1) (1,1) Direzione Cognome Nome Impiegato (0,1) Afferenza (1,N) Dipartimento Nome Stipendio (0,N) DataAfferenza Indirizzo Partecipazione DataInizio (1,N) Progetto DataConsegna Nome Budget

Relazione Partecipazione M:N che lega Impiegato e Progetto Impiegato Cognome Nome Stipendio Rossi Marco 60000 Rossi Luca 50000 Di Martino Luca 20000 Progetto Nome Budget DataConsegna Progetto1 10000 10/10/2016 ProgettoII 20000 02/10/2015 ProgettoIII 1000 02/03/2017 Partecipazione Cognome Nome NomeProgetto Rossi Marco ProgettoI Rossi Luca ProgettoI Rossi Marco ProgettoIII

Relazione Afferenza 1:N che lega Impiegato e Dipartimento Dipartimento Nome Budget Aereonautica 1000000 Informatica 2000000 Chimica 100000 Impiegato Cognome Nome Stipendio NomeDip DataAfferenza Rossi Marco 60000 Aereonautica 10/02/1995 Rossi Luca 50000 Chimica 10/05/1996 Di Martino Luca 20000 Aereonautica 22/02/1998

Entità deboli Per ogni entità debole bisogna creare una relazione R ereditandone gli attributi. Bisogna inoltre includere, come chiave esterna, la chiave primaria dell'entità "proprietaria". La chiave primaria di R sarà l'insieme della chiave esterna più la chiave parziale.

Gerarchie Il modello relazionale è piatto e non può rappresentare le gerarchie che sono sostituite da entità e associazioni. Viene creata una tabella per ogni entità coinvolta nella specializzazione. Le tabelle delle entità figlie ereditano dall'entità genitore la chiave (come chiave esterna).

Eliminazione di ridondanze e anomalie cenni alle forme normali foglia@iet.unipi.it

Ridondanze e anomalie Il progetto logico di una base di dati basato su uno schema concettuale in cui le entità e associazioni reali sono ben separate in maniera corretta non dovrebbe contenere ridondanze o anomalie In ogni modo lo schema logico prodotto può essere verificato a posteriori per verificare la presenza di ridondanze e anomalie che possono essere eliminate o corrette

Esempio di schema con ridondanze e anomalie Impiegato Stipendio Progetto Bilancio Funzione Rossi 20000 Marte 2000 Tecnico Verdi 35000 Giove 15000 progettista Verdi 35000 Venere 15000 Progettista Neri 55000 Venere 15000 Direttore Neri 55000 Giove 15000 Consulente Neri 55000 Marte 2000 Consulente Mori 48000 Marte 2000 Direttore Mori 48000 Venere 15000 Progettista Bianchi 48000 Venere 15000 Progettista Bianchi 48000 Giove 15000 Direttore Lo stipendio di ciscun impiegato è unico e funzione sola dell impiegato stesso, indipendentemente dai progetti Il bilancio di ciscun progetto è unico e dipende solo dal progetto indipendentemente dagli impiegati

Anomalie Tale struttura particolare presenta le seguenti anomalie: Ridondanza: lo stipendio di ciascun impiegato è replicato per ogni progetto a cui partecipa Anomalia di aggiornamento: se lo stipendio di un impiegato cambia tutte le tuple corrispondenti devono essere aggiornate Anomalia di cancellazione: se un impiegato interrompe la partecipazione a tutti i progetti non si può conservare traccia del suo nome e del suo stipendio Anomalia di inserimento: analogamente un nuovo impiegato non può essere inserito fino a quando questo non partecipa ad almeno un progetto

Dipendenze funzionali Al fine di verificare la presenza di anomalie in uno schema logico si definisce un ulteriore vincolo di integrità tra gli attributi di una stessa relazione, la dipendenza funzionale Dati due attributi Y e Z di uno schema R(X) (o due sottoinsiemi Y e Z degli attributi X di R), si dice che esiste su R una dipendenza funzionale tra Y e Z, se per ogni coppia di tuple di R aventi gli stessi valori degli attributi di Y, risulta che hanno gli stessi valori anche sugli attributi Z In altre parole esiste un vincolo di dipendenza funzionale tra Y e Z in R se in ogni tupla il valore di Y determina il valore di Z (e.g. Impiegato determina Stipendio, Progetto determina Bilancio) Le dipendenze funzionali sono indicate con Y Z in R

Dipendenze funzionali non banali Su una relazione possono essere verificate dipendenze funzionali banali, in particolare quando alcuni attributi di Z compaiono in Y (e.g. Impiegato, Progetto Progetto) Si dicono dipendenze funzionali non banali quelle in cui nessun attributo di Z compare tra gli attributi di Y Il concetto di dipendenza funzionale generalizza quello di chiave in quanto tra la chiave e gli altri attributi sussiste una dipendenza funzionale

Forma Normale Data uno schema logico di una relazione, la verifica della sua struttura rispetto alle sue dipendenze funzionali da indicazione della presenza di anomalie e ridondanze A tal fine viene definita una particolare forma dello schema logico di una base di dati, la forma normale Una relazione R è in forma normale se per ogni dipendenza funzionale non banale Y Z su di essa, Y contiene una chiave K di R, cioè y è superchiave per R Se una relazione non soddisfa la forma normale, può essere applicata una decomposizione in forma normale, al fine di normalizzarla

Esempio Normalizzazione Dipendenze Formali: Impiegato, Progetto Funzione Impiegato Stipendio Progetto Bilancio Impiegato Stipendio Rossi 20000 Verdi 35000 Neri 55000 Mori 48000 Bianchi 48000 Impiegato Progetto Funzione Rossi Marte Tecnico Verdi Giove progettista Verdi Venere Progettista Neri Venere Direttore Neri Giove Consulente Neri Marte Consulente Mori Marte Direttore Mori Venere Progettista Bianchi Venere Progettista Bianchi Giove Direttore Progetto Bilancio Marte 2000 Giove 15000 Venere 15000