|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Cenni concettuali su basi di dati relazionali
Mettiamo che devo rappresentare gli esami sostenuti dagli studenti per determinati corsi, e ogni esame ha una data e un voto.
Quindi, ESAME è un'associazione fra STUDENTE e CORSO, ed ha due attributi DATA E VOTO. Considerando i seguenti vincoli d'integrità: 1)Uno studente può sostenere al massimo 29 esami. 2)Per un dato studente, un dato corso ed una certa data, può essere registrato un unico esame con un unico voto. 3)Per una certa data e per un certo studente si può registrare un unico esame relativo ad un preciso corso. Nemmeno vedo la differenza fra il 2 e 3 vincolo ma va beh... Senza prendere per ora in considerazione il secondo vincolo, un modello E/R potrebbe essere qusto giusto? Primo vincolo ![]() Ora, qui viene la parte che ho capito meno(fermo restando che non so se ho capito nemmeno la prima ![]() Secondo vincolo:reificazione di ESAME ![]() Intanto, questa reificazione perchè esprime il vincolo 2? Come si legge questo grafo? Io lo leggeri così:un esame è un'enitità definita da un voto ed è identificato da una data un preciso corso e un preciso studente. Come mai VOTO non è stato utlizzato nell'identificatore composto-mixed formato da STUDENTE, DATA E CORSO??? Andiamo avanti...considerando che le associazioni A e B non hanno un nome logico, manterrei quello detto prima: uno studente può sostenere al massimo 29 esami, ed un corso esiste anche se nessun studente ha sostenuto esami x quel corso. Sbaglio di molto? Terzo vincolo:modificazione della reificazione di ESAME ![]() In pratica è stato tolto l'identifiatore riferito al corso, quindi ora l'identificatore composto-mixed è formato solo da STUDENTE E DATA, cos'è cambiato ai fini pratici? Come si leggere ora il grafo? Perchè rispetta il 3 vincolo? Il post è lungo e probabilemente noiosissimo, spero che però qualcuno mi dia una manina a capire. Ultima modifica di MEMon : 20-05-2007 alle 13:31. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Non mi dite nulla? niente di niente?
![]() ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Attenzione a quello che scrivi. Le cardinalità tra le entità e le associazioni possono essere solo (0,N) o (1,1) o (1,N) non possono mai essere (0,29). Quando hai i vincoli di integrità quelli devono essere scritti a parte.
Ultima modifica di Manugal : 20-05-2007 alle 17:39. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ma ne sei sicuro? Perchè questo è un esempio che c'è sul libro che sto seguendo... del quale ovviamente non ho capito la spiegazione(troppo superficiale)
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Sicuro. Sto studiando anch'io Basi di dati.
![]() Se posso consigliarti una buona dispensa che riguarda tutta la progettazione concettuale (e logica) vai su http://multicommunity.di.uniroma1.it alla sezione Laboratorio di Basi di Dati I. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ti ringrazio...
Andiam bene allora, il libro su cui sto studiando(tra l'altro scritto dal prof che ci tiene il corso) è pure sbagliato... ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
E quindi come faccio ad esprimere che uno studente può sostenere al massimo 29 esami??
Comunque, del resto che ne pensi? |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Guarda magari si può fare anche come dice il tuo prof, a me però hanno insegnato che esistono solo quelle cardinalità e i vincoli vanno scritti a parte. Per quanto riguarda il resto dovrei vederlo più a fondo.
![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Si infatti sto notando...ma che palle, mi ricorda i tempi in cui alle superiori si dovevano fare i diagrammi di flusso per ogni stronzata di programma che si voleva fare.
Ma sta roba è davvero utile??? Sicuramente pratica NO. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Guarda anch'io credevo all'inizio che non fosse utile. Adesso ci è stato dato un progetto di una base di dati e dobbiamo fargli anche questo diagramma. Se fai bene questo diagramma, fidati hai risolto il 60%-70% del progetto. Perché da qua dipendono tutte le anomalie che potrebbero esserci una volta che progetterai la base di dati. Poi certo si riesce a farlo anche senza credo.
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Sarà... a me sembra una forzatura, forzati di rappresentare graficamente il modo di pensare di una persona, che non è il mio! Complica solo le cose.
Detto questo, se qualcuno vuole rispndere al primo post è ancora in tempo ![]() |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
Gli E-R fanno cag**e
__________________
Il sole è giallo |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Puoi dirlo forte!!!
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7249
|
Quote:
comunque non puoi esprimere vincoli del tipo massimo 29 oggetti.. devi mettere per forza 0..N e poi specificare anche in linguaggio naturale il vincolo. |
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ok, appurato che non posso esprimere cardinalità massima come un numero(ripeto l'ho preso pari pari dal libro), mi potresti spiegare il resto?
Cosa hanno apportato le modifiche via via fatte e perchè? Come cambia la lettura del grafo? Questo mi interessa... |
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7249
|
Quote:
mentre il vincolo 3 dice che a una coppia (studente, data) è associato un esame, a sua volta associato a un corso. quello che cambia in pratica è che il terzo vincolo non permette a uno studente di registrare esami diversi nella stessa data, mentre con il secondo vincolo era possibile (perchè la chiave si differenziava con il corso). |
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7249
|
Quote:
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7249
|
Quote:
![]() come dicevo prima ora è cambiato che uno studente non può più registrare due esami nella stessa data, anche se sono relativi a corsi diversi. ps. magari metti dei nomi sensati nelle relazioni.. io metterei "sostiene" al posto di A e "relativo a" al posto di B |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Azz grande mi hai fatto capire!!!
In pratica col secondo vincolo io posso avere due esami con stessa data e studente, ma di un corso diverso, mentre col in 3 vincolo io posso avere due esami con studente e/o data diversi. Perfetto! Una cosa, nei grafici reificati, le associazioni nuove(ad esempio A e B in questo caso) vanno lette? Cioè, assumono un senso per la lettura o sono inserite solo per trasformare l'associazione ESAME in una entità? Se ora volessi aggiungere questo vincolo: per un dato studente ed un dato corso può essere regeistrato un unico esame,con relativo voto e relativa data. Come cambierebbe l'ultimo grafico? In pratica sarebbe ancora più restrittivo giusto? In quanto il 3 vincolo permette che uno studente registri più esami anche dello stesso corso, purchè abbiano date diverse, mentre ora voglio che gli esami devono avere anche corso diverso. Ultima modifica di MEMon : 21-05-2007 alle 13:18. |
![]() |
![]() |
![]() |
#20 | ||
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Premetto che grafi di questo tipo non ne ho fatti (non allo stesso modo intendo) ma mi sembra di averci capito qualcosa:
Quote:
Ad ogni modo questo vincolo è ridondante, infatti è già incluso nel terzo. Quote:
|
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:46.