Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi A - F > Basi di dati ~ informatica triennale > Chiavi primarie
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
Guccio
.fedelissimo.

User info:
Registered: May 2009
Posts: 59 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 9:28:59 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Chiavi primarie

Salve a tutti, durante una lezione della Castano mi è sfuggita una cosa. Perchè è preferibile aggiungere un ID come chiave piuttosto che usare un valore della relazione che si sa essere unico?

15-12-2010 18:59
Click Here to See the Profile for Guccio Click here to Send Guccio a Private Message Find more posts by Guccio Add Guccio to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
CowBoy
.arcimaestro.

User info:
Registered: May 2006
Posts: 294 (0.04 al dì)
Location: Milano
Corso: F49 - Informatica
Anno: Laureato F49
Time Online: 3 Days, 13:40:27 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Prova a guardare nelle videolezioni, forse troverai qualche risposta. Probabilmente faceva riferimento ad entità con chiave primaria poco chiara, dove per logica non ci dovrebbero essere tuple ripetute, ma nella pratica servono codici "generici" o valori nulli.

__________________
.. ±·ø·±-`` MuSiC iS My LanGuAGe ´´-±·ø·± ..

23-12-2010 13:10
Click Here to See the Profile for CowBoy Click here to Send CowBoy a Private Message Find more posts by CowBoy Add CowBoy to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
number15
.grande:maestro.

User info:
Registered: Nov 2005
Posts: 652 (0.09 al dì)
Location:
Corso:
Anno:
Time Online: 121 Days, 13:57:11 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Re: Chiavi primarie

Originally posted by Guccio
Salve a tutti, durante una lezione della Castano mi è sfuggita una cosa. Perchè è preferibile aggiungere un ID come chiave piuttosto che usare un valore della relazione che si sa essere unico?


Magari hai già risolto, ma ti rispondo comunque.
E' semplicemente per un discorso di comodità: hai un dato molto più piccolo da portarti in giro.
Es. tabella utente ed usi come chiave primaria 'email' (diciamo varchar(60)).
Ora in ogni tabella in cui devi mettere la chiave esterna su email, devi creare un campo varchar(60) per contenere l'email.
Hai un campo più scomodo da gestire (errori di battitura in caso di data entry manuale, join più pesanti da fare sul varchar).

Conviene quindi creare SEMPRE un campo id_ tipo int unsigned AUTO_INCREMENT (o equivalenti + grandi o + piccoli).

In fase di data entry dovrai semplicemente lasciare quel campo nullo, e ti verrà garantito che ogni nuova tupla sarà unica.

Dovrai poi mettere una chiave unique su email per 'dire' che è una chiave candidata e che quindi non può avere valori duplicati.

Spero di essermi spiegato.
Ciao

__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com

Last edited by number15 on 06-02-2011 at 13:03

05-02-2011 08:56
Click Here to See the Profile for number15 Click here to Send number15 a Private Message Find more posts by number15 Add number15 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Guccio
.fedelissimo.

User info:
Registered: May 2009
Posts: 59 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 9:28:59 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Spiegato benissimo grazie mille :)

06-02-2011 12:49
Click Here to See the Profile for Guccio Click here to Send Guccio a Private Message Find more posts by Guccio Add Guccio to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
lferri469
.precettore.

User info:
Registered: Jan 2009
Posts: 84 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 12:57:57 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Re: Re: Chiavi primarie

Originally posted by number15
Magari hai già risolto, ma ti rispondo comunque.
E' semplicemente per un discorso di comodità: hai un dato molto più piccolo da portarti in giro.
Es. tabella utente ed usi come chiave primaria 'email' (diciamo varchar(60)).
Ora in ogni tabella in cui devi mettere la chiave esterna su email, devi creare un campo varchar(60) per contenere l'email.
Hai un campo più scomodo da gestire (errori di battitura in caso di data entry manuale, join più pesanti da fare sul varchar).

Conviene quindi creare SEMPRE un campo id_ tipo int unsigned AUTO_INCREMENT (o equivalenti + grandi o + piccoli).

In fase di data entry dovrai semplicemente lasciare quel campo nullo, e ti verrà garantito che ogni nuova tupla sarà unica.

Dovrai poi mettere una chiave unique su email per 'dire' che è una chiave candidata e che quindi non può avere valori duplicati.

Spero di essermi spiegato.
Ciao


ciao number15,
vi volevo chiedere un info perche sono un attimo in crisi :)
volevo chiedervi nel caso in cui avessi un associazione ternaria nel quale tre entita puntano alla stessa relazione, è possibile piu che possibile dire corretto associare secondo voi l'id di tale relazione (che a livello di sql verrebbe trasformata in tabella contenente le chiavi primarie delle entità) come FOREIGN KEY in una delle entità associate?
non so se mi sono spiegato...
ciao e grazie a tutti

30-03-2011 13:51
Click Here to See the Profile for lferri469 Click here to Send lferri469 a Private Message Find more posts by lferri469 Add lferri469 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
number15
.grande:maestro.

User info:
Registered: Nov 2005
Posts: 652 (0.09 al dì)
Location:
Corso:
Anno:
Time Online: 121 Days, 13:57:11 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ciao,
mi posteresti un esempio per capire meglio la situazione?

__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com

30-03-2011 14:14
Click Here to See the Profile for number15 Click here to Send number15 a Private Message Find more posts by number15 Add number15 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
lferri469
.precettore.

User info:
Registered: Jan 2009
Posts: 84 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 12:57:57 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by number15
Ciao,
mi posteresti un esempio per capire meglio la situazione?


ciao number, inanzitutto grazie per avermi risposto.
ti giro l'esempio.
per prima cosa ti vorrei chiedere se secondo te uno schema di questo tipo si possa ritenere corretto anche in presenza di una ciclo...
per qunato riguarda invece la richiesta che ti avevo fatto prima la parte in questione è quella che associa sedi e contratti ad attività.
la relazione works conterra le tre chiavi primarie delle tre entità, ma a livello teorico si potrebbe inserire un id_works come foreing keys in attività?
il mio scopo è quello che dato uno schema er di questo tipo garantire la possibilità di inserire delle attività solo se esiste un contratto o una sede associata.

grazie mille per l aiuto

Attachment: esempio.jpg
This has been downloaded 7 time(s).

30-03-2011 15:02
Click Here to See the Profile for lferri469 Click here to Send lferri469 a Private Message Find more posts by lferri469 Add lferri469 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
number15
.grande:maestro.

User info:
Registered: Nov 2005
Posts: 652 (0.09 al dì)
Location:
Corso:
Anno:
Time Online: 121 Days, 13:57:11 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Cosa intendi per 'inserire delle attività'?
Intendi per esempio poterla scegliere da un elenco?
Se sì, io aggiungere uno/due campi enum in attività del tipo ha_contratto(Y,N), ha_sede(Y,N) (o semplicemente è_selezionabile(Y,N)) che gestisci tramite trigger after insert on works.

Quindi id_works in attività direi che non ha senso.

Ciclo?

__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com

30-03-2011 17:48
Click Here to See the Profile for number15 Click here to Send number15 a Private Message Find more posts by number15 Add number15 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
lferri469
.precettore.

User info:
Registered: Jan 2009
Posts: 84 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 12:57:57 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by number15
Cosa intendi per 'inserire delle attività'?
Intendi per esempio poterla scegliere da un elenco?
Se sì, io aggiungere uno/due campi enum in attività del tipo ha_contratto(Y,N), ha_sede(Y,N) (o semplicemente è_selezionabile(Y,N)) che gestisci tramite trigger after insert on works.

Quindi id_works in attività direi che non ha senso.

Ciclo?


ciao number grazie mille!
per ciclo intendevo quella ciclicità che è presente tra le 4 entità... nel senso se è fattibile creare un modello e/r cosi o oppure no.

31-03-2011 13:51
Click Here to See the Profile for lferri469 Click here to Send lferri469 a Private Message Find more posts by lferri469 Add lferri469 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 05:09.    Post New Thread    Post A Reply
  Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.044 seconds (65.53% PHP - 34.47% MySQL) con 28 query.