![]() |
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)
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 ?

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
è 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
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
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.
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...![]()
__________________
"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
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à!
| 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.