[Tech] Interbase

Marco Ermini markoer@markoer.org
Lun 20 Nov 2000 16:19:14 CET


Franco Bagnoli wrote:
> 
> On Mon, 20 Nov 2000, Marco Ermini wrote:
> 
> > una risposta precisa, o meglio la risposta e': DIPENDE... ;-) dipende da
> > cosa vuoi fare e da come lo fai. Il DB dovrebbe essere scelto dopo che
> > tutta l'applicazione e' gia' stata progettata... certo se PostgreSQL,
> 
> allora: esiste un sistema per astrarre le caratteristiche del database
> dall'implementazine delle chiamate? qualcosa tipo il tie del perl (che
> pero' e' limitato) o una libreria "generica" in modo da cambiare database
> "in corsa" senza riscrivere tutto il software?

In Perl esistono delle API chiamate DBI, se non sbaglio, che dovrebbero
astrarre dal DB usato.

In realta' non ha senso voler completamente "astrarre". L'applicazione
va sempre scritta pensando al DB che usi. Se usi MySQL dovrai
progettarla usando tante transazioni atomiche (cosi' le chiamano i
progettisti di MySQL) e lockando manualmente le tabelle quando serve; se
usi altri DB preferirai gestire una unica transazione e fare commit o
rollback. Non credo che il design si possa astrarre con un'API.

Al limite, potrebbero esistere delle API che permettano di astrarre la
sintassi SQL fra DB piu' o meno simili o usando un subset delimitato di
features (quello che fa ODBC) ma ormai quasi tutti i DB implementano la
sintassi ANSI SQL 92 (mi pare che PostgreSQL manchi di qualcosa ma non
ricordo cosa). Al limite, potra' essere diversa la sintassi delle outer
join...
es. in MySQL scrivi:
 select id_prodotto, cliente
   from prodotti join client on (prodotti.id_prodotto =
clienti.id_prodotto)
in Oracle scrivi
 select id_prodotto, cliente
   from prodotti, (+) client
 where prodotti.id_prodotto = clienti.id_prodotto
in altri db si puo' fare in altri modi...


ciao ciao ciao




Maggiori informazioni sulla lista flug-tech