se usi java c'è hibernate che fa questo (e taaaanto altro) lavoro per te e sicuramente lo fa meglio

In ogni modo che lo faccia tu o lo faccia hibernate:

1) in generale si ma non è detto. Nelle entity puoi usare tutto cio che l'oop ti permette di fare e il modello relazionale no, oppure avere proprietà calcolate che non esistono nel db. L'importante è che da qualche parte ci sia qualcuno che sappia come tradurre l'entity in una tupla e viceversa attraverso cio che viene definito mapping.

2) un array di B in A equivale ad una relazione uno a molti da A verso B nel db. Percio l'array è una proprietà con metodo get che internamente fa una join.