.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ informatica triennale (http://www.dsy.it/forum/forumdisplay.php?forumid=211)
-- Un dubbio (http://www.dsy.it/forum/showthread.php?threadid=31442)


Posted by misterx on 07-07-2007 06:36:

Un dubbio

dubbio: nello schema in figura si dice che è possibile non digitare nulla nei campi Cod-Carta e Tipo della tabella Clienti.
Mi chiedo allora lo scopo della cardinalità minima, che tra le altre cose è pure segnata

Da com'è fatto quello schema, si dovrebbe essere obbligati a rimpire tutti i campi.......o no ?



Posted by Simone_155 on 07-07-2007 10:54:

Si, in teoria sia!
Se lo traduci così sei proprio obbligato...
Ma dove l'hai trovato sto schema?

__________________
"There is a creature alive today who has survived millions of years of evolution without change, without passion, and without logic. It lives to kill. A mindless eating machine, it will attack and devour anything. It is as though God created the devil and gave him jaws."
- From the preview for 'JAWS' - 1975


Posted by misterx on 07-07-2007 10:57:

è una slide della Castano

quindi per come è fatta quella base di dati, ogni cliente è obbligato ad avere una carta di credito, in caso contrario non è inseribile


Posted by Simone_155 on 07-07-2007 12:11:

Per come è fatto lo schema si!
Per la cardinalità dal lato "cliente" è min 1 e max 1, idem per il lato "carta credito"
Quindi direi di sì, obbligatorio per entrambi.

__________________
"There is a creature alive today who has survived millions of years of evolution without change, without passion, and without logic. It lives to kill. A mindless eating machine, it will attack and devour anything. It is as though God created the devil and gave him jaws."
- From the preview for 'JAWS' - 1975


Posted by misterx on 07-07-2007 12:48:

non capisco perchè si sostiene nelle videolezioni(la 22 per l'esattezza) che se si mantiene la base di dati così com'è ed esistono clienti senza carta di credito, ci si ritrova ad avere parecchi valori nulli nei rispettivi campi di cliente relativi alla chiave esterna.

Ma se non è possibile avere clienti senza carta!!!!!!!

Difatti poi per evitare valori nulli, viene proposta una alternativa che fa divenire la partecipazione di cliente (0,1) facoltativa.

Viene spostata la chiave esterna sul lato destro e si può popolare la tabella clienti senza avere questa volta valori nulli.

Il dubbio continua a rimanermi.


Posted by Simone_155 on 07-07-2007 16:13:

Beh, ma perchè sull'ER esprimi un vincolo di obbligatorietà!
E fini qui ci siamo...
Ma nella traduzione, mettendo la chiave esterna in clienti, puoi tranquillamente mettere un cliente con carta di credito a NULL...alla fine perdi il vincolo di obbligatorietà!

Potrai specificarlo solo quando in SQL farai FOREIGN KEY su COd-Carta, Tipo specificando Cod-Carta e Tipo come attributi NOT NULL

Alla fine, la partecipazione totale o parziale che sia, nello schema relazionale ti può aiutare solo a decidere dove mettere gli attributi che rappresentano la foreign key!
Perchè il relazionale non consente di esprimere l'obbligatorietà!
Quella, come ho detto prima, la esprimi quando implementi, usando il DDL...

Penso di non aver detto scemenze...correggetemi se sbaglio...:D

__________________
"There is a creature alive today who has survived millions of years of evolution without change, without passion, and without logic. It lives to kill. A mindless eating machine, it will attack and devour anything. It is as though God created the devil and gave him jaws."
- From the preview for 'JAWS' - 1975


Posted by misterx on 07-07-2007 16:40:

Originally posted by Simone_155
Beh, ma perchè sull'ER esprimi un vincolo di obbligatorietà!
E fini qui ci siamo...
Ma nella traduzione, mettendo la chiave esterna in clienti, puoi tranquillamente mettere un cliente con carta di credito a NULL...alla fine perdi il vincolo di obbligatorietà!



ma appunto perchè sull'ER che ho postato c'è il vincolo di obbligatorietà, non dovrebbe essere consentito l'inserimento di valori nulli.
E' come dire che se non hai carta di credito sei out

Ovvio che poi nell'SQL me la gioco con un NOT NULL se voglio esprimere l'obbligatorietà o meno, mah

Per me resta uno schema discutibile e la traduzione in relazionale della slide non è fedele alla realtà se accetta valori nulli.


All times are GMT. The time now is 12:38.
Show all 7 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.