V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

16
Le basi di dati relazionali A.S. 2014/2015 14 novembre 2014 Prof. Ugo LOPEZ

description

Slide della lezione di Informatica del 14 novembre 2014, classe V A Informatica, Istituto IIS "Pentasuglia" Matera

Transcript of V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Page 1: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Le basi di dati relazionaliA.S. 2014/2015 – 14 novembre 2014Prof. Ugo LOPEZ

Page 2: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Is your DBMS really Relational (Codd, 1985) – Le 12 (13) regole di Codd - 10) Affinché un sistema possa definirsi sistema relazionale per la gestione di basi di dati

(RDBMS), tale sistema deve usare le proprie funzionalità relazionali (e solo quelle) pergestire la base di dati

1) Le informazioni nel database devono essere rappresentate in maniera univoca, eprecisamente attraverso valori in colonne che costituiscano, nel loro insieme, righe ditabelle

2) Tutti i dati devono essere accessibili senza ambiguità. Ogni singolo valore scalare neldatabase dev'essere logicamente indirizzabile specificando il nome della tabella che locontiene, il nome della colonna in cui si trova e il valore della chiave primaria della rigain cui si trova

3) Il DBMS deve consentire all'utente di lasciare un campo vuoto, o con valore NULL. Inparticolare, deve gestire la rappresentazione di informazioni mancanti e quellodiinformazioni inadatte in maniera predeterminata, distinta da ogni valore consentito(per esempio, "diverso da zero o qualunque altro numero" per valori numerici), eindipendente dal tipo di dato. Queste rappresentazioni devono inoltre essere gestite dalDBMS sempre nello stesso modo

Page 3: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Is your DBMS really Relational (Codd, 1985) – Le 12 (13) regole di Codd - 2

4) La descrizione della struttura del database e degli oggetti che locompongono deve avvenire ad un livello logico, tramite un dizionario dimetadati, e questo dizionario deve essere accessibile agli utenti delDatabase con le stesse modalità e lo stesso linguaggio di interrogazioneutilizzato per accedere ai dati

5) Tutti i contenuti del database devono essere accessibili attraverso almenoun linguaggio relazionale (come ad esempio l'SQL) che abbia le seguenticaratteristiche:

– abbia una sintassi lineare (ovvero le cui istruzioni possono essere semanticamenteinterpretate con una semplice lettura da sinistra verso destra)

– possa essere utilizzato sia in forma interattiva che dall’interno di applicazioni

– supporti operazioni di definizione e di manipolazione dei dati, le regole di sicurezza ei vincoli di integrità del database

Page 4: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Is your DBMS really Relational (Codd, 1985) – Le 12 (13) regole di Codd - 36) In un database relazionale si possono creare viste che forniscono l’accesso a

specifici subset di informazioni. Laddove il contenuto in termini di dati di queste visteè concettualmente modificabile, lo deve anche essere nella pratica

7) Da un database possiamo reperire informazioni multiple costituite da set di datiprovenienti da più righe e/o più tabelle. Gli stessi set di dati, piuttosto che le singoleinformazioni, devono anche poter essere inseriti, aggiornati e cancellati

8) La struttura logica di un database deve essere indipendente dalle strutture dimemorizzazione fisica: modifiche al piano fisico (come i dati vengono memorizzati,su quali unità, con quale organizzazione, ecc.) non devono richiedere uncambiamento alle modalità di accesso al database

9) Le modifiche al livello logico (tabelle, colonne, righe, chiavi primarie, ...) non devonorichiedere cambiamenti non giustificati alle applicazioni che utilizzano il database

Page 5: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Is your DBMS really Relational (Codd, 1985) – Le 12 (13) regole di Codd - 4

10) I vincoli di integrità propri delle entità e delle relazioni, le regole di sicurezzae le restrizioni di accesso devono essere definiti nel dizionario del databasee sono quindi separati dalle applicazioni che lo utilizzano. Deve quindiessere possibile modificare tali vincoli senza inutilmente interessare leapplicazioni esistenti

11) La distribuzione di porzioni del database su una o più allocazione fisiche ogeografiche deve essere invisibile agli utenti del sistema. Le applicazioniesistenti devono continuare ad operare con successo quando i dati esistentivengono ridistribuiti in modo diverso

12) Gli strumenti di accesso ai dati non devono poter annullare le restrizioni deldatabase, per esempio aggirando i vincoli di integrità, le relazioni o le regoledi sicurezza

Page 6: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Approfondimento

• http://it.wikipedia.org/wiki/12_regole_di_Codd

Page 7: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Normalizzazione

In informatica la normalizzazione è un procedimento voltoall'eliminazione della ridondanza informativa e del rischio di incoerenzadal database. Esistono vari livelli di normalizzazione (forme normali) checertificano la qualità dello schema del database

Page 8: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Prima forma normale

Si dice che una base dati è in 1NF (prima forma normale) se vale laseguente relazione per ogni relazione contenuta nella base dati.

Una relazione è in 1NF se e solo se:

– non presenta gruppi di attributi che si ripetono (ossia ciascun attributo è definitosu un dominio con valori atomici).

– esiste una chiave primaria (ossia esiste un insieme di attributi, che identifica inmodo univoco ogni tupla della relazione)

Page 9: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Esempio 1

E’ 1NF?

Page 10: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Esempio 2

E adesso?

Page 11: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Esempio 3

E’ 1NF?

Page 12: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Seconda forma normale

Una base dati è invece in 2NF (seconda forma normale) quando è in1NF e per ogni tabella tutti i campi non chiave dipendono funzionalmentedall'intera chiave composta e non da una parte di essa

Page 13: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Esempio

Da cosa dipendono i campi non chiave primaria?

Page 14: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Terza forma normale

Una base dati è in 3NF (terza forma normale) se è in 2NF e per ognidipendenza funzionale non banale X->Y è vera una delle seguenticondizioni:

• X è una superchiave della relazione

• Y è membro di una chiave della relazione

Page 15: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Teorema 1

Ogni relazione può essere portata in 3NF

Page 16: V A Informatica - IIS "Pentasuglia" MT - 14-11-2014 - Le basi di dati relazionali

Teorema 2

Sia data una tabella T(X), con X insieme degli attributi di T, e duesottoinsiemi A e B di X tali che A ? B = X; siano date, inoltre, due tabelleT1 e T2rispettivamente con insiemi di attributi A e B. Condizionesufficiente affinché la decomposizione di X su A e B sia «senza perdita»è che l'insieme C - A ∩ B sia una superchiave per T1(A) o T2(B)