View Full Version : [DB] aiuto normalizzazione DB
Tony Hak
29-06-2007, 10:28
ciao ragazzi ! devo fare un esame di base di dati solo che ho grandi difficolta sulla normalizzazione (1nf,2nf,3nf e Boyce Codd). Particolarmente ho difficolta a riconoscere le chiavi e trovare dipendenze funzionali. Potete darmi una mano con una spiegazione chiara ? grazissimo !:)
ciao, la 1nf è banale; per il resto, se non hai chiaro il concetto di chiave dipendenza funzionale parti da lì. il resto viene da sé.
ti consiglio di informarti su wiki, la sezione è sintetica ma mi sembra ci sia tutto l'indispensabile spiegato in modo chiaro:
http://it.wikipedia.org/wiki/Categoria:Teorie_su_base_dati
se ti rimangono dei dubbi in particolare chiedi pure!
Tony Hak
01-07-2007, 09:39
ciao, la 1nf è banale; per il resto, se non hai chiaro il concetto di chiave dipendenza funzionale parti da lì. il resto viene da sé.
ti consiglio di informarti su wiki, la sezione è sintetica ma mi sembra ci sia tutto l'indispensabile spiegato in modo chiaro:
http://it.wikipedia.org/wiki/Categoria:Teorie_su_base_dati
se ti rimangono dei dubbi in particolare chiedi pure!
perdonatemi ... non sono riuscito a capire come faccio ad identificare una chiave candidata..cioe', la chiave primaria ha le tuple distinte.. e la chiave in una relazione come faccio ad inviduarla ?
Superchiave: un insieme K di attributi che non può contenere due tuple t1 e t2 con t1[K] = t2[K]
Chiave: una superchiave che non contiene propriamente un’altra superchiave (cioè: una superchiave minimale)
una relazione (in 1NF) non può avere due tuple uguali tra loro ---> l’insieme di tutti gli attributi è per definizione una superchiave per lo schema di relazione; poiché il numero degli attributi è finito, ogni schema di relazione ha (almeno) una chiave.
quindi una superchiave ti consente di distinguere le tuple una dall'altra; per far sì che sia una chiave occorre che non contenga attributi "di troppo" (ovvero senza i quali si potrebbero comunque distinguere le tuple)
se non ti è ancora chiaro stasera ho più tempo e ti faccio un esempio...
la chiave primaria è una chiave che scegliamo noi (di solito quella con meno attributi), su cui non sono ammessi valori nulli. ma nella normalizzazione questo ha poca importanza.
Tony Hak
01-07-2007, 12:27
Superchiave: un insieme K di attributi che non può contenere due tuple t1 e t2 con t1[K] = t2[K]
Chiave: una superchiave che non contiene propriamente un’altra superchiave (cioè: una superchiave minimale)
una relazione (in 1NF) non può avere due tuple uguali tra loro ---> l’insieme di tutti gli attributi è per definizione una superchiave per lo schema di relazione; poiché il numero degli attributi è finito, ogni schema di relazione ha (almeno) una chiave.
quindi una superchiave ti consente di distinguere le tuple una dall'altra; per far sì che sia una chiave occorre che non contenga attributi "di troppo" (ovvero senza i quali si potrebbero comunque distinguere le tuple)
se non ti è ancora chiaro stasera ho più tempo e ti faccio un esempio...
la chiave primaria è una chiave che scegliamo noi (di solito quella con meno attributi), su cui non sono ammessi valori nulli. ma nella normalizzazione questo ha poca importanza.
eheh .. grazie della ris..pero' magari con qualche esempio .... ho un esercizio che dice : considerare la relazione in figura e individuare eventuali ridondanze e anomalie. Individuare la chiave e le dipendenze funzionali della relazione considerata e una decomposizione Boyce e Codd.La figura è :
DOCENTE---DIPARTIMENTO----FACOLTA---PRESIDE---CORSO
ditka--------matematica--------inge.--------halas--------program.
ditka--------matematica--------inge.--------halas--------BDD
wannstedt--fisica---------------inge.---------halas-------program.
wannstedt--fisica---------------scie.----------dent--------program.
dent--------fisica----------------scie.---------dent---------fisica
quali sono le chiavi .. ho letto su internet che le chiavi candidate le si possono riconoscere in quanto identificano univocamente una tupla. Quindi ho pensato che sono docente, facolta e corso. Se si perde una di questi attributi la tupla non ha senso.. o sbaglio ? help :P e le dipendenze poi ? per ogni chiave candidata devo vedere che dipende ? la tabella secondo la tua definizione è in 1nf .. il problema è metterla in 2nf, 3nf e B&C :D ... uffi ... ho l'esame il 18 .. l'er lo so fare... l'sql anche .. idem la tab relazionale. .mi manca solo la norma.. :( ...
Tony Hak
02-07-2007, 07:31
uppo :mbe:
puoi andare "a naso" come hai fatto ora, e va benissimo (infatti la risposta che hai dato è corretta, anche se in generale potrebbero essercene altre).
se vuoi essere sicuro è meglio addentrarsi nel merito delle dipendenze funzionali, che poi serviranno per la normalizzazione.
inizia a trovare tutte quelle non banali, poi vediamo come usarle ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.