Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-01-2008, 15:35   #1
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
[Database] Dubbi su chiave di una relazione helpme :-/

L'esame si avvicina sempre di più...mancano 5 giorni

Ho qualche quesito vi prego di aiutarmi...

L'esercizio diceva questo:

1) Costruire uno schema E-R logico che rappresenti il database di una flotta di Portaerei. Il database
deve essere disegnato in modo da evidenziare quali aerei fanno parte di una certa portaerei e inoltre
deve tenere memoria del fatto che un' aereo atterra su una portaerei , che può essere anche diversa da
quella a cui appartiene. Ci interessa anche sapere quando avvengono gli atterraggi.

Si tenga conto delle seguenti specifiche :
a) gli oggetti da considerare sono le Portaerei, gli Aerei e i Piloti;
b) il pilota di un' aereo guida sempre lo stesso aereoplano ( da questo se ne deduce che i piloti
sono di stanziamento solo su una portaerei).
Evitare bene la ridondanza dei dati.

2) Costruire quindi lo schema fisico o normalizzato evidenziando bene chiavi di entità e chiavi di
relazioni ed eventuali attributi utili.

3) Dire quali e quante sono le tabelle necessarie per rappresentare il database.

Allora per ora escludiamo la normalizzazione che non ho ancora fatto. Il dubbio è un altro per ora.

Il mio schema E-R e lo schema tradotto è il seguente:



Con la relazione APPARTENENZA specifico che ad una portaerei appartengono di stanziamento minimo uno e massimo n aerei mentre un aereo è stanziato solo su di una singola portaerei.

Con la relazione VOLA dico che un pilota può volare su un solo aereo e che un aereo è pilotato da un solo pilota.

Con la relazione ATTERRAGGIO tengo traccia di quale aereo atterra su quale portaerei e tengo memoria della data e dell'ora in cui gli atterraggi avvengono.

Il secondo schema è lo schema relazionale vero e proprio che può anche essere visto così:

PORTAEREI(nome, anno_di_varo, numero_marinai)

AEREO(codice, modello, anno_di_produzione, nome_portaerei)

PILOTA(matricola, nome, ore_di_volo, aereo_pilotato)

ATTERRAGGIO(nome_portaerei, codice_aereo, data, ora)

Gli attributi in grassetto e sottolineati sono le chiavi, ora ovviamente ci sono i vincoli di integrità referenziale ma dai nomi che ho dato credo sia chiaro quali siano e cosa leghino tra loro.

Il problema è sulla relazione ATTERRAGGIO e sulle sue chiavi.

Vista tabellarmente dovrebbe essere una cosa del genere:

portaerei1 002 12/03/2007 15:30
portaerei2 002 12/03/2007 16:10
portaerei3 001 15/04/2007 12:05
portaerei3 001 15/04/2007 14:07
.......................................................
.......................................................

In pratica mi sà che i soli campi nome_portaerei e codice_aereo non bastano a formare la chiave in quanto non mi identificano univocamente una riga della tabella...ci devo mettere anche la data nella chiave? l'ora si o no?

Viste le specifiche lo schema E-R dite che è fatto decentemente?

Vi prego di farmi sapere qualcosa.

Grazie
Andrea
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 16:28   #2
ReaToMe
Member
 
Iscritto dal: Nov 2007
Messaggi: 274
Se devi tenere lo storico degli atterraggi, devi mettere la data in chiave.
Questo perchè un aereo può atterrare diverse volte sulla stessa portaerei.

Se non devi tenerne traccia, non hai bisogno di aggiungerla in chiave.
ReaToMe è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 16:37   #3
~ZeRO sTrEsS~
Senior Member
 
L'Avatar di ~ZeRO sTrEsS~
 
Iscritto dal: Nov 2002
Città: Mission world: Napoles, Milan, Madrid, Paris, London, Now AMSTERDAM!!!!! yahoooo!!! Next stop: California, Tnx TNS-NIPO!!
Messaggi: 2150
cosa significa E-R?
Io sto impazzendo da un mese sui DB di access

io per pilota e aereo farei una sola tabella... visto che il pilota vola sempre con lo stesso aereo.

Sinceramente non ho capito cosa vogliono dal database. Vogliono tenere traccia di dove vanno gli aerei o se possono atterrare su una portaerei perché giá piena??

Io la farei cosi

2 tabelle ----> (piloti, aerei che pilotano, Appartenenza portaerei) / Codici delle portaerei. Su piloti ed aerei metto la chiave primaria.

Altra tabella dove ci sta partenza del volo, destinazione, arrivo del volo.

poi se vogliono sapere la disponibilitá di atterraggio su una portaerei faccio

X tabelle per quante sono le portaerei
X Query per quante sono le portaerei.

poi con una macro le collego tutte in modo con un click da aggiornare tutte le tabelle portaerei portaerei, in poche parole cancella le tabelle portaerei e le ricrea scrivendo pilota aereo e portaerei di atterraggio. Ovviamente metti una chiave primaria automatica sulle tabelle portaerei, in modo che poi ricavare un count down al riempimento della portaerei.
__________________
La libertá sopratutto di parola é un lusso che non ci si puo' permettere in italia, per la strada come su internet.
~ZeRO sTrEsS~ è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 16:38   #4
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da ReaToMe Guarda i messaggi
Se devi tenere lo storico degli atterraggi, devi mettere la data in chiave.
Questo perchè un aereo può atterrare diverse volte sulla stessa portaerei.

Se non devi tenerne traccia, non hai bisogno di aggiungerla in chiave.
Si il testo chiede di tenere traccia dei vari atterraggi: "e inoltre
deve tenere memoria del fatto che un' aereo atterra su una portaerei , che può essere anche diversa da
quella a cui appartiene".

Quindi metto in chiave data ed ora? perchè teoricamente un aereo può atterrare su una certa portaerei in una certa data, ripartire e andare in missione e poi riatterrare proprio sulla stessa portaerei da cui era partito...

Per quanto riguarda le forme normali quella tabella:
ATTERRAGGIO(nome_portaerei, codice_aereo, data, ora)

è sicuramente in prima forma normale perchè ogni campo è formato da dati atomici e non composti, è in 2nf perchè avendo tutti gli attributi che sono chiave non c'è la questione che gli attributi non chiave devono dipendere funzionalmente dalla chiave e credo per lo stesso discorso che possa anche essere considerata in terza forma normale...insomma non posso ottimizzarla più di tanto...

Secondo te dato il testo dell'esercizio il mio schema ER e la relativa traduzione in tabelle può essere considerata valida? insomma per te son da promuovere o da steccare?
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 16:39   #5
~ZeRO sTrEsS~
Senior Member
 
L'Avatar di ~ZeRO sTrEsS~
 
Iscritto dal: Nov 2002
Città: Mission world: Napoles, Milan, Madrid, Paris, London, Now AMSTERDAM!!!!! yahoooo!!! Next stop: California, Tnx TNS-NIPO!!
Messaggi: 2150
Quote:
Originariamente inviato da ReaToMe Guarda i messaggi
Se devi tenere lo storico degli atterraggi, devi mettere la data in chiave.
Questo perchè un aereo può atterrare diverse volte sulla stessa portaerei.

Se non devi tenerne traccia, non hai bisogno di aggiungerla in chiave.
emm non va bene perché potresti avere due aerei che partono o decollano alla stessa ora da due portaerei diverse... in questo modo non puoi aggiungere un record.
__________________
La libertá sopratutto di parola é un lusso che non ci si puo' permettere in italia, per la strada come su internet.
~ZeRO sTrEsS~ è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 16:45   #6
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da ~ZeRO sTrEsS~ Guarda i messaggi
cosa significa E-R?
Io sto impazzendo da un mese sui DB di access

io per pilota e aereo farei una sola tabella... visto che il pilota vola sempre con lo stesso aereo.

Sinceramente non ho capito cosa vogliono dal database. Vogliono tenere traccia di dove vanno gli aerei o se possono atterrare su una portaerei perché giá piena??

Io la farei cosi

2 tabelle ----> (piloti, aerei che pilotano, Appartenenza portaerei) / Codici delle portaerei. Su piloti ed aerei metto la chiave primaria.

Altra tabella dove ci sta partenza del volo, destinazione, arrivo del volo.

poi se vogliono sapere la disponibilitá di atterraggio su una portaerei faccio

X tabelle per quante sono le portaerei
X Query per quante sono le portaerei.

poi con una macro le collego tutte in modo con un click da aggiornare tutte le tabelle portaerei portaerei, in poche parole cancella le tabelle portaerei e le ricrea scrivendo pilota aereo e portaerei di atterraggio. Ovviamente metti una chiave primaria automatica sulle tabelle portaerei, in modo che poi ricavare un count down al riempimento della portaerei.
Aspe no...allora schema E-R intendo schema entity-relationship ed è una metodologia di progettazione dei database che prevede le entità (ovvero gli oggetti che fanno parte) e le relazioni che collegano queste entità...poi lo schema andrebbe revisionato (ovvero ottimizzato per certe istruzioni che vengono eseguite con maggior frequenza) ma questa cosa non è richiesta nel compito d'esame...successivamente lo schema E-R viene tradotto in schema relazionale cioè in tabelle (cioè le entità e le relazioni dello schema E-R devono essere trasformarte in relazioni dello schema relazionale ovvero tabelle), per ultima cosa bisogna normalizzare queste tabelle cioè ricondurle eventualmente non lo fossero in una forma ulteriormente ottimizzata (in genere ci si ferma in terza forma normale) usando delle opportune metodologie.

Acces non c'entra nulla con quello di cui parlavo...apparte che usiamo MySql ma Acces ha anche una progettazione molto più banale in quanto serve per fare piccoli database quindi tante pippe mentali te le eviti e in genere se devi usare acces pensi direttamente in tabelle evitando di netto la fase di progettazione...anche questo è un piccolo database ma l'esame richiede la progettazione in quanto il fine del corso è insegnare appunto la metodologia precisa su come operare con i DB...poi per farci impazzire con un DB grosso c'è il progettone da portare...anche perchè in 2 ore di compito vogliono vedere se hai capito come si progetta e non farti fare un mega DB...
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 16:48   #7
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da ~ZeRO sTrEsS~ Guarda i messaggi
emm non va bene perché potresti avere due aerei che partono o decollano alla stessa ora da due portaerei diverse... in questo modo non puoi aggiungere un record.
gli aerei da tener traccia sono solo quelli che atterrano e non quelli che decollino ed è fisicamente impossibile che uno stesso aereo atterri nello stesso minuto di se stesso...
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 16:49   #8
ReaToMe
Member
 
Iscritto dal: Nov 2007
Messaggi: 274
Quote:
Originariamente inviato da ~ZeRO sTrEsS~ Guarda i messaggi
emm non va bene perché potresti avere due aerei che partono o decollano alla stessa ora da due portaerei diverse... in questo modo non puoi aggiungere un record.
Scusa ma no ti seguo.
ReaToMe è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 16:51   #9
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da ReaToMe Guarda i messaggi
Scusa ma no ti seguo.
evidentemente ha capito che bisognava tener traccia dei decolli e degli atterraggi su di una portaerei invece bisogna tener traccia solo degli aerei che atterrano su di una certa portaerei e come dicevo prima inserendo la data e l'orario di atterraggio la riga è certamente identificata in maniera univoca.

Sai per caso illuminarmi anche su quella domanda circa la normalizzazione?

Grazie
Andrea
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 17:05   #10
ReaToMe
Member
 
Iscritto dal: Nov 2007
Messaggi: 274
Io ti promuoverei.
Ma quello che ti deve promuovere è un altro.
ReaToMe è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2008, 17:21   #11
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
ehehe è cmq più incoraggiante di: "non hai capito una ceppa"...cmq per te la normalizzazione di quella relazione è corretta?
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
La GTX 2080 Ti mai arrivata sul mercato,...
Hoolow Knight: Silksong, il gioco che a ...
Duolingo crolla in Borsa: la minaccia ar...
Battlefield 6: i giocatori console potra...
Citroen Racing, la marca ritorna alle co...
Windows 10 ESU: come partecipare al prog...
ASUS Vivobook 16X a meno di 470€ su Amaz...
Con Agent Payments Protocol di Google gl...
Windows 10 muore, gli attivisti insorgon...
NVIDIA sarà il primo cliente di T...
Stellantis cancella il pick-up elettrico...
Microsoft termina il supporto per Office...
VaultGemma di Google è il primo L...
Uno studio svela come usiamo ChatGPT, il...
Bucano con una trivella la galleria ferr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:49.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v