Quindi penso che la prima implementazione delle classi va bene solo quando ho a disposizione un Database Object oriented?E' così?
No, basta che scrivi il codice necessario a "riempire" le proprieta' che rappresentano le relazioni.
Ad esempio, se nella tua classe Giocatore c'e' la proprieta "torneo" che rappresenta il Torneo al quale il giocatore e' iscritto, vorra' dire che quando farai la query per caricare un Giocatore dal database, farai anche un'altra query per tirare su il Torneo a partire dalla foreign-key relativa al Torneo presente nella tabella che ospita i dati del Giocatore...

p.s. Esistono alcuni framework (http://www.hibernate.org a mio parere su tutti) che permettono proprio di colmare la discrepanza tra una logica di progettazione a oggetti tipica di un linguaggio come java (le entita' che avevi progettato erano corrette da un punto di vista logico) e la realta' di un database che invece segue una logica relazionale.
Il suo uso non e' proprio la cosa piu' intuitiva e rapida del mondo, pero' c'e' veramente un sacco di documentazione in giro dalla quale prendere spunto.