La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DATABASE Introduzione ai database relazionali 1. 2 COSE UN SISTEMA INFORMATIVO? Un sistema informativo organizza e gestisce tutte le informazioni necessarie.

Presentazioni simili


Presentazione sul tema: "DATABASE Introduzione ai database relazionali 1. 2 COSE UN SISTEMA INFORMATIVO? Un sistema informativo organizza e gestisce tutte le informazioni necessarie."— Transcript della presentazione:

1 DATABASE Introduzione ai database relazionali 1

2 2 COSE UN SISTEMA INFORMATIVO? Un sistema informativo organizza e gestisce tutte le informazioni necessarie per eseguire gli scopi di una organizzazione

3 3 SISTEMA INFORMATICO SISTEMA INFORMATIVO SISTEMA INFORMATICO Quando viene automatizzato tramite strumenti elettronici diventa un

4 4 Dati e informazioni Un sistema informativo/informatico presenta 2 nozioni fondamentali che è bene distinguere: il concetto di dato e di informazione

5 5 Dato ed informazione Dato: valore in sé (un numero, una data, una frase) Informazione: conoscenza dei fatti, significato del dato, associazione tra uno o più dati.

6 6 Dato ed informazione I dati da soli potrebbero non avere alcun significato, e generalmente non forniscono informazione I dati assumono un significato quando vengono interpretati in un contesto e/o correlati in maniera opportuna

7 7 ESEMPIO: UN DATO 08/05/2013 Che informazione ci da? Sicuramente rappresenta un giorno, ma di per sé non significa nulla. Ma associando a tale dato un contesto che gli dà significato questo diventa una informazione

8 8 ESEMPIO: UNA INFORMAZIONE Data inizio lezioni studenti 12/09/2013 Il dato diventa una informazione

9 9 ESEMPIO: UN DATO MANZONI ALESSANDRO Che informazione ci da?

10 10 CONTESTO: ASSOCIAZIONE DI 2 DATI MANZONI ALESSANDRO I PROMESSI SPOSI Il dato messo in un certo contesto assume un certo significato

11 11 CONTESTO: Manzoni Alessandro Residente in Piazza Europa 26, Torino Lo stesso dato in un contesto diverso assume un significato diverso

12 12 INFORMAZIONE Associazione tra dato e suo significato FORMALMENTE Dato: un valore registrato su un supporto di memoria Significato Cosa rappresenta il dato memorizzato

13 13 I DATI E LE LORO CORRELAZIONI FORNISCONO INFORMAZIONI Informazione 2 Informazione 1 Dato1 Dato2Dato3 Dato7 Dato8

14 14 Cosè una BASE DI DATI (DATABASE)? E una raccolta organizzata di informazioni. Una collezione di dati opportunemente raggruppati ed organizzati in modo da poter rappresentare le informazioni di interesse

15 15 Cosè una BASE DI DATI (DATABASE)? E un modello del mondo reale (una rappresentazione informatica della realtà di interesse) E un modello del mondo reale che permette lutilizzo dei dati a utenti diversi con applicazioni diverse e di convertirli in informazioni utilizzabili

16 16 DATABASE - DBMS La sigla DBMS (Data Base Management System) indica il software utilizzato per la gestione di un database I programmi per la realizzazione di database (come ACCESS) esistono per permettere la catalogazione, la modifica e la facile estrazione delle informazioni

17 17 OBIETTIVI DI UN DATABASE Consistenza: i dati in essa contenuti devono essere significativi ed essere effettivamente utilizzabili nelle applicazioni dell'azienda Sicurezza: impedire che il data base venga danneggiato da interventi accidentali o non autorizzati Integrità: garantire che le operazioni effettuate sul data base da utenti autorizzati non provochino una perdita di consistenza ai dati

18 18 DATABASE DISTRIBUITI Gli archivi che compongono una base di dati possono risiedere sulle memorie di massa di computer diversi, facenti parte di una rete aziendale, i cui nodi possono essere anche fisicamente lontani Quando si verifica questo siamo di fronte ad un database distribuito In tal caso gli archivi sono integrati da un punto di vista logico

19 19 DATABASE DISTRIBUITI - VANTAGGI è possibile gestire archivi di dimensioni limitate laddove vengono creati facilitano il lavoro di manutenzione si può effettuare maggior controllo sulla sicurezza si può garantire comunque la disponibilità dei dati aggiornati a tutti gli utenti del sistema informativo aziendale, qualunque sia la loro posizione geografica o il computer da essi usato per lattività di elaborazione

20 20 ORGANIZZAZIONE DEI DATI Lorganizzazione dei dati è un aspetto di fondamentale importanza. Aver organizzato i dati in maniera corretta evita di doverli riorganizzare successivamente con grave dispendio di risorse. Un database ben strutturato consente di avere una organizzazione INTEGRATA dei dati.

21 21 ESEMPIO DI APPROCCIO TRADIZIONALE NON INTEGRATO Un'azienda utilizza in uffici diversi due diversi archivi A e B Matricola#NomeEtàRepartoBadget…. A) Informazioni sui dipendenti che lavorano nei reparti di unazienda Dipendente#NomeProgetto#Nome ProgettoTempo %…. B) Informazioni sui dipendenti per i diversi progetti Ognuno dei due modelli soddisfa le esigenze specifiche. Ma cosa succede se vogliamo sapere quali sono i reparti che hanno dipendenti che lavorano al progetto X ?

22 22 ESEMPIO DI APPROCCIO TRADIZIONALE NON INTEGRATO Matricola#NomeEtàRepartoBadget…. Dipendente#NomeProgetto#Nome ProgettoTempo %…. Difetti nella gestione non integrata: Sinonimi: gli stessi dati hanno codici differenti (Matricola# in A e Dipendente# in B) Lo stesso nome per dati differenti: Nome in A per dipendente e Nome in B per Dipendente Ridondanza dei dati: Reparto e Budget del reparto ripetuto per ogni dipendente; Progetto# e Nome Progetto ripetuti per ogni dipendente Rischio di anomalie negli aggiornamenti: una modifica effettuata sui valori dei dati in un archivio, ma non nellaltro, provoca inconsistenza dei dati A B

23 23 Difetti nella organizzazione non integrata dei dati Ridondanza dei dati, cioè gli stessi dati compaiono in maniera duplicata (inefficienza) Tutto ciò deriva dal fatto che i dati sono organizzati in archivi diversi, in modo non integrato tra loro La ridondanza può portare allincongruenza, nel caso in cui un dato venga aggiornato in un archivio e non in un altro, oppure siano presenti valori diversi per lo stesso dato Lincongruenza porta allinconsistenza dei dati, cioè i dati aziendali non sono più affidabili, perché non si sa in modo certo quale dei diversi valori sia quello corretto

24 24 VANTAGGI DI UNA CORRETTA LOGICA NEI DATABASE Indipendenza delle applicazioni dalla struttura fisica dei dati Indipendenza delle applicazioni dalla struttura logica dei dati Utilizzo da parte di più utenti con applicazioni diverse Facilità di accesso Eliminazione della ridondanza Eliminazione della inconsistenza Integrità dei dati Sicurezza dei dati

25 25 VANTAGGI DEI DATABASE manipolazione o trattamento dei dati, cioè la possibilità di inserire, modificare e cancellare i dati interrogazione, cioè la possibilità di ritrovare i dati, richiesti da unapplicazione, in modo semplice e veloce Il vero vantaggio di un database sono le operazioni sui dati organizzati

26 26 Come costruire un database REALIZZAZIONE FISICA DEL DATABASE (Access: tabelle, relazioni, query, maschere, report, ecc.) REALTA (Problema reale) ANALISI DATABASE LOGICO Entità (tabelle) Associazioni (interconnessioni tra le tabelle) IMPLEMENTAZIONE

27 27 Passi da seguire per la costruzione di DBMS REALTA DATABASE LOGICO MODELLO LOGICO CONCETTUALE Si rappresenta la realtà dei dati e le associazioni tra essi attraverso uno schema Si definisce lorganizzazione, la composizione ed il formato dei dati negli archivi elettronici MODELLO FISICO Realizzazione fisica del DBMS (ad es. in Access) Progettazione Implementazione

28 28 Il livello concettuale: il metodo relazionale modello entità/associazioni Il modello entità/associazioni (in inglese E/R = Entity/Relationship), introdotto nel 1976 da Peter P. Chen, permette di costruire un modello concettuale dei dati indipendente dalle applicazioni Gli elementi di un modello E/R sono: Entità e attributi Associazioni

29 29 MODELLO RELAZIONALE I dati vengono catalogati in tabelle dette Entità Le Entità vengono correlate tramite Associazioni (Relazioni) Le proprietà di entità e associazioni vengono descritte tramite gli Attributi

30 30 ENTITA Cosè? E una qualsiasi cosa che può essere distintamente identificata Cioè un oggetto che Ha una propria individualità (sia distinguibile concettualmente da altri oggetti) Abbia per noi rilevanza

31 31 ENTITA – istanze (individui) Lentità è un oggetto (concreto o astratto) utile per descrivere la realtà che si vuole rappresentare Ad esempio una persona, un modello di automobile, un movimento contabile, una prova sostenuta da uno studente, possono essere considerate entità Infatti gli studenti sono classificabili nel tipo entità Studente, i diversi modelli di automobile sono classificabili nel tipo entità Automobile Ciascuno studente rappresenta unistanza (un individuo) del tipo entità Studente, ciascuna automobile rappresenta unistanza (un individuo) del tipo entità Automobile

32 32 ASSOCIAZIONE (Relazione) Cosè? Lassociazione (in inglese relationship) è un legame che stabilisce uninterazione tra le entità Per esempio tra lentità Persona e lentità Automobile esiste unassociazione che può essere descritta nel linguaggio naturale secondo due versi: una persona possiede una o più automobili e unautomobile è posseduta da una persona Quindi si può dire che tra lentità Persona e lentità Automobile esiste lassociazione Possiede; tra lentità Automobile e lentità Persona esiste lassociazione Posseduta da.

33 33 ATTRIBUTI Cosè? Un attributo è una proprietà di una entità o di una associazione Rimanendo allesempio precedente delle autovetture, per lentità automobile possiamo avere i seguenti attributi: Modello, Produttore, Cilindrata, PrezzoListino. Notare che Modello e Produttore potrebbero essere individuate come Entità e non come attributi e ciò dipenderà esclusivamente da ciò che si deve fare, cioè dalla nostra analisi della realtà.

34 34 ATTRIBUTI Le caratteristiche di ogni attributo sono: Il formato cioè il tipo di valori che può assumere; per esempio: il tipo carattere, numerico o data/ora La dimensione cioè la quantità massima di caratteri o cifre che possono essere inseriti L'opzionalità cioè la possibilità di non essere sempre valorizzato: lattributo è obbligatorio se deve avere valore non nullo, facoltativo se sono accettabili valori nulli

35 35 ATTRIBUTI Chiave: Si indica con il termine chiave o chiave primaria (primary key) l'insieme di uno o più attributi che consentono di distinguere unistanza dall'altra: esempi di chiavi sono il codice di un prodotto o la matricola di un dipendente Valore Nullo: Il valore nullo, in inglese Null, (da non confondere con la stringa di caratteri blank o con un numero di valore zero) rappresenta uninformazione mancante, inapplicabile o sconosciuta Dominio: I diversi valori assunti dagli attributi determinano le diverse istanze dellentità. L'insieme dei possibili valori assunti da un attributo si chiama dominio dell'attributo

36 36 MODELLO LOGICO Entità Attributi (campi) Tipi di dato Chiave primaria Associazione / Relazione 1 a 1 1 a N N a M

37 37 Rappresentazione grafica. Schema E/R La rappresentazione classica ERD = Entity-Relationship Diagram Entità: si rappresenta con un rettangolo contenente all'interno il nome dell'entità Associazione: è rappresentata da una linea, che unisce le due entità interessate Versi dellassociazione: la descrizione compare a fianco della linea e dellentità di partenza del verso STUDENTECLASSE Fa parte della si compone degli

38 38 Rappresentazione grafica. Schema E/R La rappresentazione classica ERD = Entity- Relationship Diagram Attributi Individuazione della chiave STUDENTE Codice studente Cognome Nome..

39 39 ESEMPIO: REALTA: SCUOLA Istruzione superiore Vogliamo catalogare le anagrafiche di una scuola QUALI POTREBBERO ESSERE LE NOSTRE ENTITA?

40 40 ENTITA STUDENTI INSEGNANTI CLASSI

41 41 ATTRIBUTI Sono le caratteristiche di una entità che desideriamo conservare, catalogare. Sono le proprietà che caratterizzano una entità o anche una associazione

42 42 ESEMPIO SCUOLA STUDENTI Cognome Nome Indirizzo Cap Città Provincia Telefono Data nascita Luogo nascita …. INSEGNANTI Cognome Nome Indirizzo Cap Città Provincia Telefono Materia CLASSI Nome classe Aula

43 43 TABELLE ENTITA Una entità è per noi una tabella dove le righe sono le istanze, gli individui (i record) dellentità e le colonne sono gli Attributi NomeCognome Data nascita Luogo Nascita MarioRossi 02/04/1975 Milano FrancescaVerdi24/11/1974Prato AlbertoBianchi 14/12/1974 Roma …… … … ENTITA Record Attributo (campo)

44 44 TIPO DI DATO Ogni attributo deve avere un tipo di dato definito. Ovvero ogni colonna della tabella deve avere valori dello stesso tipo NOMEDESCRIZIONEACCESS ByteIntero da 0 a 255Numerico Byte SmallintIntero da a Numerico Intero IntegerIntero da a Numerico Intero lungo Numerico Contatore FloatNumero realeNumerico Precisione singola Numerico Precisione doppia Numerico Valuta DatetimeData/oraData/Ora CharTesto fino a 255 caratteriTesto MemoTesto esteso fino a più di caratteriMemo BooleanTrue e falseSi/No

45 45 CHIAVE PRIMARIA Una chiave primaria è la colonna (o linsieme di più colonne) che definisce un individuo (una riga) di una entità (tabella) in modo univoco.

46 46 CHIAVE PRIMARIA Alcune entità (poche) hanno una chiave primaria naturale altre hanno bisogno di una chiave artificiale (il codice) Addirittura per catalogare una persona si ha bisogno del Codice Fiscale che non è nientaltro che un attributo artificiale UNIVOCO che garantisce che la persona sia individuata in maniera univoca

47 47 Procedendo con lanalisi Una volta individuate entità, attributi, chiavi primarie si deve procedere con lindividuare le ASSOCIAZIONI (RELAZIONI) che intercorrono tra le varie entità.

48 48 ASSOCIAZIONI Unassociazione tra le entità può essere: obbligatoria quando il legame tra le entità deve essere sempre presente opzionale quando può essere presente

49 49 ASSOCIAZIONI Il grado del verso dell'associazione indica quante istanze dell'entità di arrivo si associano all'istanza dell'entità di partenza. Il grado può essere: 1 a 1Biunivoca 1 a NUno a molti N a MMolti a molti

50 50 ASSOCIAZIONE 1 a 1 Associazione 1:1 (uno a uno) o biunivoca Ogni istanza (ogni individuo) della prima entità si deve associare ad una sola istanza (ad un solo individuo) della seconda entità e viceversa.

51 51 ASSOCIAZIONE 1 a 1 Ad un elemento di una entità corrisponde uno ed un solo elemento della seconda entità Anagrafica Codice persona Nome Cognome Indirizzo Cap Città Provincia Telefono Cellulare Nascita Codice persona Data nascita Luogo nascita Provincia Nome padre Cognome padre Nome madre Cognome madre 11

52 52 ASSOCIAZIONE 1 a N Associazione 1:N (uno a molti) o semplice Ogni istanza (individuo) della prima entità si può associare a una o più istanze (individui) della seconda entità, mentre ogni istanza della seconda entità si deve associare ad una sola istanza della prima.

53 53 ASSOCIAZIONE 1 a N Supponiamo di voler catalogare gli impiegati della nostra azienda con eventuali figli a carico. Nella nostra analisi dobbiamo individuare le entità per questa realtà. Lentità che individuiamo immediatamente è la tabella Impiegati. Impiegati Codice impiegato Nome Cognome …….

54 54 Impiegati + figli a carico Codice impiegatoNomeCognome Lentità impiegato in formato tabellare Come fare a catalogare i figli a carico?

55 55 Soluzione ERRATA Codice impiegatoNomeCognome…Figlio 1Figlio 2Figlio 3… Cosa succede se un impiegato ha più figli di quanto previsto? Quanto è abbastanza? 3? 5? 20? Anche se prevediamo 20 figli, nel caso della media 1/2/3 figli tutti gli altri campi rimarranno vuoti: abbiamo spreco di spazio Come fare per esempio a trovare tutti i figli di nome Michele? Su quale campo cercare? Figlio 1? Figlio 2? …. Figlio 20? Come fare se in un futuro vogliamo aggiungere ulteriori informazioni riguardanti i figli?

56 56 Soluzione Cè un errore di analisi: i figli a carico vanno visti come Entità separata e non come attributi dellentità impiegati. IMPIEGATIFIGLI A CARICO 1N La relazione che esiste tra gli impiegati ed i figli a carico è di tipo 1 a N 1 impiegato può avere N Figli a carico 1 IMPIEGATO N FIGLI 1 figlio a carico può avere un solo padre che è impiegato e che lo tiene a carico 1 FIGLIO A CARICO 1 IMPIEGATO

57 57 ASSOCIAZIONE N a M Associazione N:M (molti a molti) o complessa Ogni istanza (individuo) della prima entità si può associare a una o più istanze (individui) della seconda entità e viceversa

58 58 ASSOCIAZIONE N a M LIBRI Codice libro Titolo Sottotitolo Descrizione Anno pubblicazione Codice casa editrice AUTORI Codice autore Nome Cognome NM Entità: Libri e Autori 1 Autore N Libri (Un Autore può scrivere più libri) 1 Libro N Autori (Un libro può anche essere scritto da più autori)

59 59 ASSOCIAZIONE N a M Entità: Studenti universitari ed esami sostenuti ESAMI Codice esame Nome ….. STUDENTI Matricola Nome Cognome …… NM 1 Studente N Esami (Uno Studente può avere sostenuto più esami) 1 Esame N Studenti (Un esame può essere stato effettuato da più studenti)

60 60 CHIAVI, ATTRIBUTI E RELAZIONI Come si realizza una associazione 1 a 1 ? Tabella 1Tabella La chiave primaria della Tabella 1 è uguale alla chiave primaria della tabella 2

61 61 Esempio Relazione 1 a 1 Anagrafica Codice persona * Cognome Nome Indirizzo Cap Città Provincia Telefono Cellulare Nascita Codice persona * Data nascita Luogo nascita Provincia Nome padre Cognome padre Nome madre Cognome madre 11 (con lasterisco indichiamo i campi che sono in chiave primaria)

62 62 Esempio Relazione 1 a 1 Le chiavi primarie delle due tabelle sono uguali Cod. personaCognomeNomeIndirizzo 1242RossiFrancoVia Leopardi … 1318VerdiAlbertoLargo Umberto … Cod. personaData NascitaLuogo Nascita /07/1961Milano /10/1980Roma 1 1

63 63 Relazione 1 a N Come si realizza una associazione 1 a N? Tabella 1Tabella 2 1 N ESISTONO 2 MODI La chiave primaria della tabella 1 (padre) è contenuta nella chiave primaria della tabella 2 (figlia) La chiave primaria della tabella 1 (padre) è un attributo della tabella 2 (figlia)

64 64 1 a N (Padre – Figlio) La chiave primaria della tabella 2 (figlia) contiene la chiave primaria della tabella 1 (padre) IMPIEGATI Codice impiegato * Cognome Nome ….. FIGLI A CARICO Codice impiegato * Codice figlio * Nome Cognome …. 1N

65 65 1 a N (Lookup) La chiave primaria della tabella 1 (padre) è un attributo della tabella 2 (figlia) LIBRI Codice libro * Titolo Sottotitolo Descrizione Anno pubblicazione Codice casa editrice 1 N CASE EDITRICI Codice casa editrice * Ragione sociale Indirizzo Cap Città Telefono Fax Provincia URL

66 66 Relazione N a M Come si realizza una associazione N a M? Tabella 1Tabella 2 N M Tramite una tabella aggiuntiva e 2 relazioni 1 a N

67 67 Relazione N a M LIBRI Codice libro * Titolo Sottotitolo Descrizione Anno pubblicazione Codice casa editrice AUTORI Codice autore * Nome Cognome ….. NM

68 68 Relazione N a M LIBRI Codice libro * Titolo Sottotitolo Descrizione Anno pubblicazione Codice casa editrice AUTORI Codice autore * Nome Cognome ….. LIBRI AUTORI Codice libro * Codice autore * La relazione N ad M viene spezzata tramite 2 relazioni 1 a N 1 NN 1

69 69 NORMALIZZAZIONE Una volta creata una prima bozza di uno schema logico relazionale, è necessario effettuare una serie di verifiche sulla correttezza del procedimento svolto. Queste potranno portare a modificare la struttura dello schema al fine di renderlo corretto ed evitare il verificarsi, nella gestione dei dati, di errori difficilmente ovviabili a posteriori. Tale processo è detto normalizzazione ed è effettuabile mediante procedimenti di tipo algebrico matematico, basati sul concetto di dipendenza funzionale. Vediamone in maniera informale le regole principali.

70 70 NORMALIZZAZIONE È un processo con il quale le tabelle vengono trasformate in altre tabelle in modo che ognuna di esse corrisponda a un singolo oggetto della realtà rappresentata Le regole della normalizzazione sono definite per evitare inconsistenza dei dati e anomalie nelle operazioni di aggiornamento

71 71 NORMALIZZAZIONE Uno schema logico concettuale può definirsi corretto se rispetta: Prima forma normale Seconda forma normale Terza forma normale

72 72 DEFINIZIONI Chiave (chiave primaria): l'insieme di uno o più attributi che identificano in modo univoco una n-upla (riga della tabella) Attributo non-chiave: un campo che non fa parte della chiave primaria Dipendenza funzionale tra attributi: il valore di un attributo A1 determina un singolo valore dell'attributo A2 (in simboli A1 è A2) Dipendenza transitiva: un attributo A2 dipende da A1 e l'attributo A3 dipende da A2; allora A3 dipende transitivamente da A1 se A1 A2 e A2 A3 allora A1 A3 in modo transitivo

73 73 Prima forma normale 1FN Requisiti della Prima forma normale tutte le righe della tabella contengono lo stesso numero di colonne gli attributi rappresentano informazioni elementari i valori che compaiono in una colonna appartengono allo stesso dominio ogni riga è diversa da tutte le altre lordine con il quale le righe compaiono nella tabella è irrilevante In particolare gli attributi devono essere informazioni non ulteriormente scomponibili, cioè non devono avere sottoattributi, né essere gruppi di attributi ripetuti.

74 74 Prima forma normale 1FN La prima forma normale stabilisce che in una tabella non possono esistere colonne definite per contenere una molteplicità di valori. Una tabella quindi non può contenere una struttura vettoriale (array), al contrario di quanto consentito in linguaggi di programmazione come il Pascal, il C. Le tabelle che contengano una colonna non rispondente a questa condizione vanno trasformate, creando per ciascuna riga della tabella di partenza tante righe quanti sono i valori multipli presenti nella colonna considerata

75 75 Esempio 1FN IMPIEGATI Una tabella di questo genere NON è in Prima forma normale in quanto lattributo figli a carico contiene più valori. Cod. impiegatoCognomeNomeData nascitaFigli a carico RossiFranco09/11/1961Marco Giuseppe Sandra VerdiAlberto24/04/1963Sonia Claudio

76 76 Esempio 1FN Con un processo di normalizzazione la tabella deve essere trasformata in 2 tabelle Cod. impiegatoCognomeNomeData nascita RossiFranco09/11/ VerdiAlberto24/04/1963 Cod. impiegatoCod. FiglioNome Marco Giuseppe Sandra Sonia Claudio 1 N

77 77 Seconda forma normale 2FN Requisiti della Seconda forma normale E in prima forma normale tutti i suoi attributi non-chiave dipendono dallintera chiave, cioè non possiede attributi che dipendono soltanto da una parte della chiave T2(A1,A2,A3) T3(A1,A4) T4(A2,A5) La seconda forma normale elimina la dipendenza parziale degli attributi dalla chiave. Esempio: La Tabella T1(A1,A2,A3,A4,A5) con (A1, A2) A3 A1 A4A2 A5 non è in 2FN, e può essere normalizzata in 2FN con le tabelle:

78 78 Seconda forma normale 2FN La seconda forma normale riguarda quindi le tabelle in cui la chiave primaria sia composta da più attributi e stabilisce che, in questo caso, tutte le colonne corrispondenti agli altri attributi dipendano dallintera chiave primaria. ESEMPIO: Inventario CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino Chiave primaria: Codarticolo + CodMagazzino

79 79 Esempio 2FN Inventario CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino Chiave primaria CodArticolo + CodMagazzino Dipendenze funzionali (CodArticolo, CodMagazzino) Quantità CodMagazzino IndirizzoMagazzino CodArticolo DescArticolo Si ha dipendenza parziale dalla chiave: NON E in 2FN

80 80 Esempio 2FN Inventario CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino Problemi indirizzo del magazzino ripetuto per ogni prodotto (ridondanza) Descrizione dellarticolo ripetuto per ogni magazzino (ridondanza) se cambia lindirizzo magazzino, occorre modificare molte righe con errori nellaggiornamento si avrebbero indirizzi diversi per lo stesso magazzino o descrizioni diverse per lo stesso articolo(inconsistenza) se non ci sono prodotti in un magazzino, non si può conoscere il suo indirizzo o la descrizione dellarticolo se larticolo non è presente in nessun magazzino, non si può conoscere la sua descrizione esatta

81 81 Esempio 2FN Inventario CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino Soluzione: mettere in 2FN Inventario CodArticolo CodMagazzino Quantità Articolo CodArticolo DescArticolo Magazzino CodMagazzino IndirizzoMagazzino 1 N 1 N

82 82 Terza forma normale 3FN Requisiti della Terza forma normale E in Seconda forma normale tutti gli attributi non-chiave dipendono direttamente dalla chiave, cioè non possiede attributi che dipendono da altri attributi che non sono in chiave T2(A1,A2,A3) T3(A2,A4) La terza forma normale elimina la dipendenza transitiva degli attributi dalla chiave. Esempio: La Tabella T1(A1,A2,A3,A4) con A2 A4 non è in 3FN, e può essere normalizzata in 3FN con le tabelle:

83 83 Terza forma normale 3FN La terza forma normale stabilisce che non esistano dipendenze tra le colonne di una tabella se non basate sulla chiave primaria. ESEMPIO: Impiegati CodImpiegato Nome Reparto TelefonoReparto Chiave primaria CodImpiagato Dipendenze funzionali CodImpiegato Reparto Reparto TelefonoReparto

84 84 Esempio 3FN Impiegato Problemi telefono del Reparto ripetuto per ogni Impiegato di quel Reparto (ridondanza) se il telefono cambia, occorre modificare molte righe con errori di aggiornamento, si avrebbero telefoni differenti se un Reparto non ha impiegati, non si può conoscere il suo telefono CodImpiegato Nome Reparto TelefonoReparto Soluzione: mettere in 3FN Impiegato CodImpiegato Nome Reparto Reparto Reparto TelefonoReparto

85 85 RIASSUMENDO Con la normalizzazione: la tabella iniziale viene scomposta in più tabelle complessivamente forniscono le stesse informazioni di partenza mantengono le dipendenze tra gli attributi in ciascuna di esse ogni attributo dipende direttamente dalla chiave vengono evitati problemi di ridondanza e di inconsistenza dei dati non ci deve essere perdita complessiva delle informazioni

86 86 RIASSUMENDO Prima forma normale Seconda forma normale Terza forma normale possiede i requisiti fondamentali del modello relazionale, in particolare ogni attributo è elementare, non ci sono righe uguali, non ci sono attributi di gruppo o ripetuti è in prima forma normale e non ci sono attributi non-chiave che dipendono parzialmente dalla chiave è in seconda forma normale e non ci sono attributi non-chiave che dipendono transitivamente dalla chiave

87 87 Integrità referenziale Per integrità referenziale si intende linsieme di regole che garantiscono lintegrità dei dati di un modello relazionale rendendo valide le associazioni tra le tabelle ed eliminando gli eventuali errori di inserimento, cancellazione o modifica di dati collegati tra loro.

88 88 Integrità referenziale Chiave1ChiaveE2 Per ogni valore non nullo della chiave esterna, deve esistere un valore corrispondente della chiave primaria nella tabella associata Chiave2 Ogni valore di ChiaveE2 della Tabella 1 deve avere un valore presente nella Chiave2 della tabella 2 oppure il valore di ChiaveE2 deve essere nullo Tabella 1 Tabella 2

89 89 Effetti integrità referenziale Non è possibile immettere un valore nella chiave esterna di una tabella associata, se tale valore non esiste tra le chiavi della tabella primaria Esempio: Se esiste una integrità referenziale (Foreign key) tra lordine ed il cliente: un ordine non può essere assegnato ad un cliente che non esiste nella tabella dei clienti. Non è possibile eliminare una riga dalla tabella primaria, se esistono righe legate ad essa attraverso la chiave esterna nella tabella correlata Esempio: Non è possibile eliminare un cliente dalla tabella dei clienti se ci sono ordini assegnati a quel cliente nella tabella degli ordini.

90 90 Effetti integrità referenziale Non si può modificare il valore assegnato ad una chiave nella tabella primaria, se essa compare in qualche riga della tabella correlata Esempio: Non è possibile modificare il valore alla chiave di un cliente se si sono ordini per quel cliente già registrati nella tabella degli ordini.


Scaricare ppt "DATABASE Introduzione ai database relazionali 1. 2 COSE UN SISTEMA INFORMATIVO? Un sistema informativo organizza e gestisce tutte le informazioni necessarie."

Presentazioni simili


Annunci Google