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

Documenti analoghi
LA NORMALIZZAZIONE. Prima parte

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

Normalizzazione di Basi di Dati

Corso di Basi di Dati

La in verifica forma teoria normale della normalizzazione fornisce comunque uno strumento di già

Normalizzazione. Definizione

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

Normalizzazione di Basi di Dati. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto San Giovanni

Normalizzazione Delle Relazioni

La normalizzazione. CdL Informatica Applicata UNIURB - Dott. Maurizio Maffi

La normalizzazione delle basi di dati

Progettare Basi di Dati

Angelo Chianese, Vincenzo Moscato, Antonio Picariello, Lucio Sansone. Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 6

NORMALIZZAZIONE. Fino ad ora. Dipendenze funzionali e Normalizzazione per basi di dati relazionali

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

Capitolo 9. Esercizio 9.1. Esercizio 9.2

Introduzione alla normalizzazione dei dati

TEORIA RELAZIONALE: INTRODUZIONE

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

Normalizzazione. Relazionali

Lezione basi di dati 26 gennaio NORMALIZZAZIONE

FORME NORMALI E NORMALIZZAZIONE

Corso di Basi di Dati

Parte III. L algebra relazionale

Forme normali e normalizzazione

Esercizio 9.1. Figura 9.20 Relazione per l esercizio 9.1. Soluzione:

Sommario. Introduzione... 13

Basi di dati Modelli e linguaggi di interrogazione

Basi di Dati e Sistemi Informativi. Progettazione Concettuale: Il modello Entità-Relazioni

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Teoria della Progettazione delle Basi di Dati Relazionali

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

b) Costruire direttamente le relazioni e poi correggere quelle che presentano anomalie

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

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie:

Equivalenza di Espressioni Algebriche

Normalizzazione di schemi relazionali

Le basi di dati. Lez. 3: Il Modello Relazionale

CAPITOLO V. DATABASE: Il modello relazionale

Normalizzazione (Codd, 1972)

BASI DI DATI DIPENDENZE FUNZIONALI E FORME NORMALI

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

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

TRADUZIONE DI SCHEMI

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Il modello relazionale

RELAZIONI E BASI DI DATI

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Normalizzazione. Lezione 7. Normalizzazione e integrità referenziale. Consideriamo la seguente tabella. Anomalie di inserimento

La gestione delle interrogazioni

Basi di Dati II. Qualità di schemi relazionali (2) Qualità di schemi relazionali. 1) Semantica degli attributi di una relazione

Ciclo di vita di un sistema informativo

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO - Ristrutturazione dello schema concettuale

Algoritmi di progettazione di basi di dati relazionali e altre dipendenze

Il modello logico dei dati

MEMORIA DI MASSA. Dispositivi per la memorizzazione di massa. sequenziali nastri magnetici tape cassette

Elena Baralis 2007 Politecnico di Torino 1

Il linguaggio SQL: le viste

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un negozio di libri online:

Il Modello Concettuale Enità-Relazione (ER)

Pag Politecnico di Torino 1

Le basi di dati. Lez. 2: Progettazione di un DB. Laboratorio di informatica gestionale

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Modello Relazionale. Architettura a tre livelli di un DBMS

Generalizzazione. Docente : Alfredo Cuzzocrea Tel. : Informatica

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

FORME NORMALI E DIPENDENZE

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.

Progettazione logica

PROGETTAZIONE LOGICA. Prof. Ing. Alfredo GARRO 1/6. Artista. Cantante. DataDiNascita. Codice. Nazionalità

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

3 Algebra Relazionale

Traduzione ER - relazionale

LABORATORIO di INFORMATICA

È fatta male? Perché? Come si può correggere?

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

1. Dire cosa si intende per componente intensionale e componente estensionale di una base di dati.

Indicare quale o quali delle seguenti affermazioni sono vere?

BASI DI DATI. Quaderno 4: Progetto di una base di dati e realizzazione di un applicazione web

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di società di assicurazioni che erogano polizze sanitarie.

Il modello relazionale dei dati. modello relazionale 1

Corso di Basi di Dati A.A. 2015/2016

Esercizi sulla normalizzazione (vedi anche note)

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

Requisiti della base di dati. Schema concettuale

SISTEMI INFORMATIVI E DATABASE

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

Progettazione di Database

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Operatori di base. σ F (r) = {t t r. F(t) = true} SELEZIONE σ F (r)

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

Algebra relazionale D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

I database. Introduzione alla teoria delle basi di dati

Strutture di accesso ai dati: B + -tree

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

PROGETTAZIONE FISICA

Transcript:

Basi di Dati e Sistemi Informativi nei database relazionali Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Introduzione La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellazione è stato finora la ragionevolezza Esistono però metodi formali per assicurare la scelta di buoni schemi relazionali Tali metodi verranno essenzialmente utilizzati per verificare e raffinare lo schema 2 di 20

Scelta degli attributi: Linee guida informali (1/3) Progettare lo schema in modo che sia semplice descrivere il suo significato, prestare cioè attenzione alla semantica degli attributi Evitare di riunire in uno schema di relazione attributi propri di entità diverse del mondo reale Ridurre la ridondanza. Ha un duplice scopo: ridurre la storage area evitare le anomalie da aggiornamento Anomalie da aggiornamento: 1. Anomalie da inserimento 2. Anomalie da modifica 3. Anomalie da cancellazione 3 di 20

Linee guida informali (2/3) Impiegato_dipartimento Nome Cognome CF Data_n indirizzo StipAnnuo Id_imp Id_dip DipNome Dir_dip Data_in Anomalie da inserimento Inserimento di un nuovo impiegato inserimento dati dipartimento oppure null Inserimento dati nuovo dipartimento almeno 1 impiegato (Id_imp è PK, non null) Anomalie da cancellazione Eliminazione dell ultimo dipendente di un dipartimento perdita delle informazioni sul dipartimento Anomalie da modifica Nuovo direttore dipartimento modifica di tutte le tuple relative a impiegati di quel dipartimento 4 di 20

Linee guida informali (3/3) Ridurre il numero di valori null nelle tuple Valori null possono essere variamente interpretati: non applicabile, sconosciuto, non inserito In molti casi conviene creare nuove relazioni per ridurre i null Esempio: Se solo il 5% degli impiegati ha un fax personale avremo il 95% di null Impiegato_Fax Nome Cognome CF Data_n indirizzo StipAnnuo Id_Imp Id_dip Impiegato Tel. Fax. Fax_Impiegato Nome Cognome CF Data_n indirizzo StipAnnuo Id_Imp Id_dip Tel. Id_Imp Fax. Evitare le tuple spurie (cioè con informazioni non corrette) Può essere generata a seguito di un join naturale E necessario realizzare schemi che consentano di effettuare join con condizioni di uguaglianza su attributi che siano o chiavi primarie o chiavi esterne, così da garantire l assenza di tuple spurie 5 di 20

Dipendenze funzionali (1/3) Una dipendenza funzionale è un vincolo tra due insiemi di attributi di una base di dati e dipende dalla semantica dello schema Data uno schema relazionale R e due sottoinsiemi non vuoti di attributi X e Y esiste una dipendenza funzionale X Y se per ogni istanza r di R: t1 r,t2 r, x (t1) = x (t2) y (t1) = y (t2) Date due tuple in r se i valori su X coincidono, anche i valori su Y coincidono Se un vincolo su uno schema R indica che X sia una chiave candidata di R ciò implica che X Y per ogni sottoinsieme Y di attributi di R Non vale la proprietà : X Y Y X 6 di 20

Dipendenze funzionali (2/3) Sia F l insieme delle FD che sono specificate su uno schema R In generale ci saranno comunque altre FD non specificate esplicitamente Chiamiamo F +, chiusura di F, l insieme delle FD implicate da F Esistono regole, corrette e complete, per determinare le FD, detti assiomi di Armstrong: Riflessività: X Y X Y Incremento: X Y XZ YZ Transitività: X Y, Y Z X Z Possono essere anche determinate altre utili regole: Unione: X Y, X Z X YZ Decomposizione: X YZ X Y 7 di 20

Dipendenze funzionali (3/3) Un insieme F di dipendenze funzionale è minimo se: Ogni FD ha 1 solo attributo alla sua destra Non è possibile rimuovere alcuna FD da F ed avere ancora un insieme equivalente ad F La parte sinistra di ogni dipendenza funzionale è minima In tal modo otterremmo sicuramente schemi privi di ridondanza Problemi: il calcolo della F + è pesante e in genere va accettata una certa quantità di ridondanza per motivi di efficienza 8 di 20

Forme normali Un metodo formale per analizzare le relazioni Consente una eventuale decomposizione di relazioni in schemi che godono di migliori proprietà E in generale necessario che anche altre proprietà siano verificate per garantire un buon progetto: Lossless join (join non additivo o decomposizione senza perdite) Conservazione delle dipendenze 9 di 20

Prima Forma Normale (1NF) Coincide in pratica con la definizione di relazione Il dominio di ciascun attributo deve consistere di valori atomici e il valore di un attributo in una tupla deve essere un valore singolo del dominio Esiste una chiave primaria che identifica in modo univoco ogni tupla della relazione Il metodo di decomposizione è quello già descritto per il mapping ER relazionale 10 di 20

Seconda Forma Normale (2NF) Uno schema R è in questa forma se è in 1FN e ogni attributo non chiave ha una FD piena dall intera chiave primaria di R (non solo da una parte di essa) Impiegato_prog Nome Cognome CF N_prog indirizzo Stip_annuo Id_Imp Nome_prog Sede Ore_lav Impiegato_prog CF N_prog Ore_lav Impiegato Progetto Nome Cognome indirizzo StipAnnuo Id_Imp CF N_prog Nome_prog Sede 11 di 20

Terza Forma Normale (3NF) Uno schema R è in questa forma se è in 2FN e per ogni FD X Y, X è una superchiave di R oppure Y è un attributo primo (fa parte di una chiave di R) Non esistono attributi che dipendono da altri attributi non-chiave Impiegato_Dipartimento Nome Cognome CF Data_n indirizzo StipAnnuo Id_Imp Id_dip DipNome Dir_dip Data_in Impiegato Nome Cognome CF Data_n indirizzo StipAnnuo Id_Imp Id_dip Dipartimento Id_Dip DipNome Dir_dip Data_in 12 di 20

Forma Normale di Boyce-Codd Uno schema R è in questa forma se è in 3FN e per ogni FD X Y, X è una superchiave di R In altre parole R è in BCNF se le uniche FD non ovvie sono vincoli di chiave Se R è in BCNF è ovviamente anche in 3NF. Se una R è in 3NF, ma non in BCNF è ancora possibile ridondanza 3NF è comunque accettabile ed è sempre possibile decomporre una R attraverso relazioni in 3NF che godano anche del lossless-join e preservino le dipendenze 13 di 20

Problemi delle decomposizioni Interrogazioni più costose a causa dei join Perdita di informazione (tuple spurie) dovuta a join Il controllo delle dipendenze può richiedere l utilizzo di join 14 di 20

Decomposizione senza perdite (1/2) Data un relazione R(X) su un insieme di attributi Si parla di decomposizione senza perdite se il join delle proiezioni di R su X 1 e X 2 è uguale a R e non contiene tuple spurie X X X 1 X 2 ( R) X 2 1 ( R) R si decompone senza perdite su due relazioni se l insieme degli attributi comuni è chiave per almeno una delle relazioni decomposte [condizione sufficiente ma non necessaria] X R 1 X 2 X 0 X 0 X1 or X 0 X 2 15 di 20

Decomposizione senza perdite (Esempio) Impiegato_Progetto Impiegato Progetto Sede Rossi Marte Roma Impiegato Impiegato Rossi Sede Roma Verdi Giove Milano Verdi Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Impiegato JOIN Progetto Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Progetto Progetto Marte Giove Venere Saturno Milano Sede Roma Milano Milano Milano Neri Venere Milano Verdi Saturno Milano Neri Giove Milano Ogni impegato lavora in una sede e può partecipare a più progetti ma solo se assegnati alla sede di afferenza 16 di 20

Decomposizione senza perdite (2/2) Le relazioni in R sono ricostruibili con precisione Data R con FD F, se X Y viola la BCNF possiamo sempre decomporre in R-Y e XY ottenendo relazioni BCNF e lossless join, ma non è assicurata la conservazione delle dipendenze 17 di 20

Conservazione delle dipendenze Garantire sullo schema decomposto il soddisfacimento degli stessi vincoli presenti sullo schema originario (così da poterli verificare) Ciascuna delle dipendenze funzionali dello schema R di partenza, deve coinvolgere attributi che compaiono tutti insieme in uno degli schemi decomposti Le relazioni decomposte hanno le stesse capacità di R di rappresentare i vincoli di integrità e rilevare aggiornamenti non consentiti Esiste un algoritmo che garantisce il lossless join e la conservazione delle dipendenze con decomposizione in 3NF (non in BCNF) 18 di 20

Conservazione delle dipendenze (Esempio) Impiegato_Progetto Impiegato Progetto Sede Rossi Marte Roma Impiegato Impiegato Rossi Sede Roma Verdi Giove Milano Verdi Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Se aggiungo in Progetto la tupla (Neri, Marte) vado a violare in vincolo sulla sede. Nella tabella Progetto questa violazione non viene rilevata. Neri Progetto Impiegato Rossi Verdi Verdi Neri Neri Neri Milano Progetto Marte Giove Venere Saturno Venere Marte 19 di 20

Riassumendo Relazioni in BCNF sono prive di ridondanza Se non è possibile ottenere una decomposizione BCNF, lossless join e con conservazione delle dipendenze possiamo accontentarci di una 3NF Soprattutto considerare ciò che desideriamo, cioè tenere comunque in conto le prestazioni e le interrogazioni probabili 20 di 20