Newsgroup: it.comp.lang.visual-basic
Titolo: Database in locale

Buona sera ragazzi!
Io ho gi� un'applicazione che funziona perfettamente (almeno per quello che 
serve a me) scritta in VB.net che fa uso di un database access....
Vorrei provare a "rifare" l'applicazione ma cambiando tipo di database, 
magari con MySql o Oracle Express...Per� ora come ora l'applicazione gira su 
un NAS (perch� cos� � accessibile a tutti i PC in rete) con il file .mdb di 
Access nella cartella dedicata al programma.
 
Se dov'essi utilizzare Oracle o MySql ho la possibilit� di ottenere il file 
con le tabelle o no? Perch� non ho ancora capito se questi tipi di Database 
lavorano appoggiandosi su un server oppure no... (non vorrei installare un 
server in locale su ogni pc...)
 
Si pu� fare qualcosa?? 
 

 server in locale su ogni pc...)
 
I due che hai menzionato necessitano di avere un motore attivo dedicato e quindi una macchina su cui girino i vari servizi.
Se vuoi un database embedded autonomo, in stile Access, le migliori alternative gratuite per .NET sono SQLite e SQL Server Compact
 

alternative gratuite per .NET sono SQLite e SQL Server Compact
 
In teoria ho visto stasera che il mio NAS ha già integrato MySQL con 
l'apposito PHPMyAdmin quindi in caso non dovrebbe esserci il problema di 
dover aver un vero e proprio file, dato che tutte le macchine in rete 
accedono al NAS e quindi poi accederebbero tranquillamente al Database....
Ma a livello prestazionale, anche solo per lavorare con "pochi" dati per 
tabella (sono 9 tabelle, la più grande contiene 14.000 record) è 
consigliabile migrare da Access a MySQL o SQLite o ancora SQL Server 
Compact? Tra i 3 quale sarebbe da preferire? 
 

Pippo ha spiegato il 04/07/2012 :

Ciao.
Data la modesta mole di dati da gestire, io escluderei MySQL, a meno 
che tu non abbia bisogno della gestione *avanzata* della multi-utenza, 
o di fare delle stored procedure. Il vantaggio degli altri tre 
consiste, come già scritto da Luca D, nell'essere indipendenti da 
qualsiasi installazione di motore. Tu hai già MySQL ed OK, ma non so se 
lo devi imparare.
SQL Compact Edition e Access sono praticamente uguali. SQLite invece 
non è tipizzato. Il Driver per i primi due è già compreso in .NET. Per 
l'altro devi usare componenti esterni, sempre gratuiti.
Personalmente sto usando Access con da 2 a 4 multiutenze e con tabelle 
da 400.000 records e va benissimo.
 
-- 
Fabrizio
 
 

 SQLite invece non è tipizzato. 
 
Mi accodo per porre una domanda al forum.
Il fatto di non essere tipizzato, crea una limitazione in termini di 
prestazioni, ad esempio nei confronti degli altri due?
Oppure potrei riformulare così: la tipizzazione è comoda solo per la 
coerenza dei dati, o influisce anche nelle prestazioni?
Mi verrebbe da pensare che tipizzato sia più prestante, ma attendo 
lumi.
Grazie.
 
-- 
Fabrizio
 
 


Senza nessuna pretesa di teoria ma solo osservando sul campo il 
comportamento dei miei neuroni
 
Il fatto di tipizzare o no è soltanto una moda dello scrivere: php non è 
tipizzato eppure ci fanno fior di siti web...
asp.net
 è fortemente 
tipizzato e ci fanno fior di siti web....e ciofeche in ambedue i casi!
 
Entrando nei database
SQLite considera alla fin fine tutto "testo"....ma anche 
postgresql...alla fin fine va a scrivere sequenze di BYTE sul disco.
 
PRESTAZIONI:
tabella nome utente e password
oppure
Nomelibro ISBN
e via dicendo e......
MILIONI di record
 
UN FILE RANDOM (distribuito casomai)....e passa la paura!
Ovviamente la cosa NON la dico io...ma la dice facebook ad esempio....
Cercati Database NoSQL....oppure cerca Cassandra....e vedrai che chi ha 
MILIONI di record "semplici" butta via un RDBMS ed usa una struttura 
dati alla LISP per scorrere milioni di records
 
MA
Fatturazione....Statistiche di vendita....Gestione portafoglio clienti
...Gestione interventi di manutenzione...etc etc
 
 
Tu qui hai una altra serie di problemi: TANTI dati da raccogliere... 
complessi e non del medesimo genere (ad esempio i colli venduti e gli 
interessi passivi)....e come ulteriore bonus: hai più impiegati addetti 
all'amministrazione!
 
La logica ...file random non basta più!
Hai bisogno di sql e casomai di estensioni proprietarie: per dire 
Postgresql fino a poco tempo fa era l'unico DB a gestire "nativamente" 
(con un estensione)i dati GIS o spaziali in genere
 
Cosa porta sulle prestazioni tutto ciò?
 
Spesso un rallentamento
 
MyISAM di mysql è più lento di INNOdb...ma Innodb gestisce le 
transazioni...se non ti servono....sai dove trovare velocità!
 
Devo gestire un sistema cartografico? Postgresql c'ha tutto....ma se mi 
voglio far del male lo faccio anche con Access....solo che non è 
ottimizzato per farlo!
 
A me piace SQLite come sistema basato su un unico file...perchè?
Perchè lo mangia LINUX.....ACCESS NO!
 
Spesso lo stand alone diventa distribuito....nel webserver rimane 
comunque un accesso da localhost...c'ha le transazioni...è abbastanza 
veloce per db piccoli come diceva l'autore!
 
Alzando la complessità?
SQLserver imho c'ha una nicchia strana....costa poco per competere con 
ORACLE....costa tanto per competere con MySQL.
Se lo tengono le aziende medio-piccole con windows
 
Però sempre più spesso io vedo server linux e.... li sopra ci mettono 
mysql! Perchè?
io son cattivo...perchè ci son tanti tutorial su come installare 
LAMP....meno su come installare postgresql!!!
Il mio comune usa mysql per il sito web...e postgresql per gestire le 
news del comune (siamo 150.000 persone dopo Firenze c'è Prato)
 
 
Tornando al tema
pochissimi utenti "pochi record"
SQLite cross SO (c'ha tutto)
 
SQL multiutente CROSS SO
MySQL
Postgresql(su windows l'ho provato sia con VB6 che con VB.net)
 
http://npgsql.projects.postgresql.org/
 
 
Windows solo e soltanto
SQLserver

On 05/07/2012 08:31, wodka40[LinuxMint] wrote:
invertito
MyISAM più veloce di InnoDB...di poco ma più veloce...e non sempre.....
la scelta di un motore db spesso è imposta....e il problema non si pone!!!
Aruba ad esempio da (dava ora non so se è cambiato...ma non credo) solo 
MyISAM su mysql
 
http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/
 
 
 

 Se vuoi un database embedded autonomo, in stile Access, le migliori alternative gratuite per .NET sono SQLite e SQL Server Compact
 
Aggiungo Firebird:
http://www.firebirdsql.org/en/downloads/
 
http://firebirdsql.it/
 

 Perchè lo mangia LINUX.....ACCESS NO!
Perchè Access necessita del Jet? E SQL Compact Edition di cosa ha 
bisogno?
Grazie ;)
 
-- 
Fabrizio
 
 

On 05/07/2012 09:38, Fabrizio Alessandri wrote:
Access non esite!
Access è l'interfaccia grafica di JET!
Infatti in vb6 si usava oledb e jet...e anche con 
vb.net
 si può...e si 
accede al jet!
 
E' una dll(o 2 o 3 non ricordo)...ovviamente sotto linux non funziona! 
Ci sono strani porting ma non so come girano!
 
SQLite....
in pratica è una libreria C che puoi linkare a tutto!
 
Molto probabilmente il tuo telefonino se non è proprio vecchissimo 
mantiene la rubrica con sqlite!
 
In pratica è un file dati ed  un provider per accedere a tale 
file...esiste per tutto da windows a linux....anche MAC!
 
Io lo trovo comodo perchè il php da aruba è dato anche sotto windows....
ma non esiste un DB cross web server....sotto IIS ti danno di default 
Access...ma sotto Apache? Sqlite!
 
Se compri SQLserver ci son casini ad usarlo (devi sempre essere localhost)
lo stesso per mysql!
 
Ed allora mi son ingegnato....se in BIN di 
asp.net
 metto le dll di 
SQLite 
asp.net
 lo supporta alla facciaccia di aruba...e posso 
semplicemente trasportare UN UNICO DB da una webapp all'altra!
 
Almeno non reinvento la ruota tutte le volte (in progetti piccoli ovvio)
 
 
 

 Access è l'interfaccia grafica di JET!
Come avevo subodorato.
E SQL Compact Edition? Sempre una DLL (quindi non cross)?
Grazie!
 
-- 
Fabrizio
 
 

Perchè lo mangia LINUX.....ACCESS NO!
 
:) Ho aspettato a risponderti non perchè me ne sono andato, ma semplicemente 
perchè volevo come si evolveva la discussione!
Beh, ringrazio tutti quelli che hanno risposto!! E, in attesa di capire come 
aggiornare PHPMyAdmin e MySQL sul NAS provo a vedere come funziona SQLite! 
 


NON FUNZIONA l'approccio che intuisco vorresti fare:
In mysql NON hai un solo file!
 
Un sistemista scafato in questi giorni...m'ha preso dal mio notebook una 
intera cartella e l'ha copiata sul server mysql....
MA
mi ha detto che si può fare SOLO per TUTTI i database altrimenti si 
scassano tutti i file di indice e quant'altro!Quindi di poca utilità in 
produzione!
 
Scordati di copiare il file mdb come facevi con access....
 
Però com phpmyadmin se leggi bene hai ESPORTA ed IMPORTA.....non fa 
altro che crearti un file di testo con tutti i comandi SQL(se scegli 
l'opzione di esportazione SQL) per esportare una tabella o la tabella+dati!
 
è comodo....con poche modifiche...spesso nulla....funziona anche su 
altri database!!!!

In mysql NON hai un solo file!
 
Si si, ho capito che non ha un solo file perchè è tutto un motore che gira 
per tener su il Database!
Avevo già iniziato a fare un piccolissimo DB (una tabella con due record) e 
a provare ad aprire con 
vb.net
; funzionava tutto, il problema era che per 
utilizzare l'ultima versione del connector (preso dal sito MYSql) occorreva 
una versione di MYSql >= 5....Sul NAS è la 4, e stavo cercando di capire 
come aggiornarlo.
Il NAS monta un sistema operativo Linux, ma non si conosce la 
distribuzione....Oltretutto non ha installato il gestore dei pacchetti 
rpm...
 
Ovviamente se dov'essi riuscire ad aggiornare il tutto poi non mi 
interesserebbe più il fatto di avere un Database su unico file, in quanto il 
NAS è accessibile a tutti nella rete (è una rete home-privata) 
 

> "wodka40[LinuxMint]"  ha scritto nel messaggio
zac
se hai un pannello di controllo e ce l'avrai di sicuro....probabilmente 
c'è scritto.....
 
se riesci ad aprire una shell
http://www.cyberciti.biz/faq/find-linux-distribution-name-version-number/
 
 
Però se è un nas di qualità avra una distro dedicata.....FreeNAS però 
non è linux è freeBSD!...mal di nulla basta saperlo!
 
CMQ
non ha gli rpm?
se non è freeBSD sarà debian?
 
Upgrade da Debian e derivati...ubuntu...mint etc
http://www.laurenwood.org/anyway/2005/02/upgrading-mysql-on-debian/
 
 
http://www.ovaistariq.net/490/a-step-by-step-guide-to-upgrading-to-mysql-5-5/
 
 
freeBSD
Non ha pacchetti ha ....pacchetti chiamati PORT (che suppergiù son la 
solita cosa)...basta avere il PORT giusto e fa da se anche freeBSD
http://forums.freebsd.org/showthread.php?t=5147
 


http://forums.freebsd.org/showthread.php?t=5147
 
portupgrade: not found
 
:-) Concordi con me se lo butto dalla finestra?
Attenderò quelli del forum ufficiale per vedere cosa mi dicono....Ma 
guardando l'attività che hanno dubito che risponderanno! 
 

 esco ad a
busy box
è un modo per comprimere diverse applicazioni in un solo eseguibile per 
sistemi linux embedded
http://it.wikipedia.org/wiki/BusyBox
 
 
la vedo grama
 

accedono al NAS e quindi poi accederebbero tranquillamente al Database....
 
Credo ti sfugga il particolare che MySQL � un RDBMS client/server e non un 
file-based come JetEngine.
 

 guardando l'attività che hanno dubito che risponderanno!
 
SE e ripeto se....hai una attività...qualsiasi...dalla vendita di ghiaia 
alla produzione di scendiletto in lana merino...avrai un ufficio 
amministrativo.....se ce l'hai ed ha qualche anno.....
in qualche recesso....sotto montagne di polvere...c'è un vecchio pc 
dimenticato!(casomai un 486 o un pentium 1 2 3...stella!)
 
Una distro linux....
da una genrica...ad una specifica
http://www.freenas.org/
 
http://freenasitaliano.altervista.org/Costruire_un_NAS/FreeNAS_Italiano_-_Introduzione_a_FreeNAS.html
 
 
che poi è pure divertente sta cosa....costruisci quello che vuoi tu come 
vuoi tu e capendo pure cosa fai!
 
Per dire "ere informatiche prestoriche fà..."
Il mio primo gateway per condividere l'adsl che la telecom proibiva di 
condividere tra più pc....(vi ricordate il modem  MANTA ?)....fu un 
vecchio 386 con 64MB ram + freeBSD
 
 
MA TORNANDO IT
 
perchè vuoi aggiornare mysql?...che cosa non ti fa fare? Cosa non ti 
funziona?
 

funziona?
Era perchè il nuovo connector .net di MySQL (versione 6.5.4) richiedeva una 
versione di MySQL >= 5....Io sul NAS avevo la versione 4...
 
Comunque ormai mi sto arrangiando con SQLite... :D Anche se devo dire che 
sto avendo difficoltà nel trasportarmi il database, perchè di la c'erano 
anche campi con date...
:) Mi devo trovare una buona applicazione per lavorare sul database 
SQLite....Qualcuna l'ho già trovata (tipo SQLite2009 Pro, sqliteadmin, 
sqlitebrowser) ma dove fa uno non fa l'altro...