Buona alternativa gratuita a MS Access [chiuso]


102

Considera la necessità di sviluppare un'applicazione DB desktop leggera sulle piattaforme Microsoft.

Potrebbe essere fatto abbastanza facilmente con MS Access ma mi piacerebbe essere in grado di distribuirlo ad altri e non voglio pagare una licenza runtime.

Requisiti:

  • facile distribuzione ad altri
  • nessun problema di licenza runtime

Considerazioni e candidati:

  • Base dalla suite OpenOffice . Le mie preoccupazioni riguardavano la sua stabilità.
  • MySQL + scrive codice DB personalizzato in C ++ o Python o qualsiasi altra cosa sembra una soluzione piuttosto pesante.

Domanda : quali sono le alternative di database a basso costo o gratuite a MS Access?


Vedi anche: Motori di generazione di rapporti open source



@Schnapple

Bruceatk mi ha colpito su quello a cui sto pensando; non è tanto il motore DB quanto voglio le altre sottigliezze che Access porta alla festa. Il bel progettista di moduli, il bel motore di reporting, ecc. Ma tu sollevi un punto molto positivo sull'impronta dell'installazione. L'avevo considerato, ma non ho ancora preso alcuna decisione definitiva su come procedere con questo comunque. Probabilmente sarà comunque qualcosa di abbastanza leggero e un piccolo ingombro di installazione sarebbe sicuramente un vantaggio.


@Remou,

No, non sapevo che il runtime di MS Access 2007 è gratuito; Grazie per la segnalazione. L'ultima volta che mi ero preso la briga di indagare (non ricordo quando fosse) penso che fosse una licenza piuttosto costosa per il runtime perché penso che stessero cercando di venderla ai reparti IT aziendali.

E grazie anche a tutti gli altri che hanno risposto; Ero completamente all'oscuro di quelle altre opzioni che tutti voi avete indicato.


3
Tutte le soluzioni proposte nella risposta scelta riguardano il back-end (il db stesso). Non c'è mai stato alcun costo associato alla distribuzione di un database di jet! Quindi questa domanda è un po 'confusa se pcampbell sta cercando un front-end, un back-end o entrambi.
Patrick Honorez

1
@Patrick Honorez, inizialmente non è stato pcampbell a porre la domanda; L'ho fatto. L'ho convertito in Community Wiki molto tempo fa e pcampbell è stata l'ultima persona a modificarlo. Volevo qualcosa che includesse il backend, la query visiva e il motore di report. Il backend è facile: la query visiva e i rapporti non ho mai trovato in gran parte diversi da Access.
Onorio Catenacci

Non ho trovato Access instabile, purché tu abbia il JRE corretto. C'è anche Libre Office Base che puoi provare. Sebbene sia possibile importare tabelle da Access e anche se probabilmente non ti aspetti di essere in grado di eseguire VBA, non puoi nemmeno importare moduli. A parte questo, OOBase è un DB completamente fattibile (almeno per database più piccoli con richieste più leggere).
CodeLurker

Risposte:


61

Una cosa da tenere a mente qui è che il prodotto MS Access è molto più di un semplice motore di database grezzo. Fornisce una piattaforma completa per lo sviluppo di applicazioni, inclusi designer di moduli e menu, linguaggio e ambiente dell'applicazione client (VBA) e designer di report. Quando si prendono tutte queste cose insieme, MS Access non ha davvero pari.

Ma per l'ambito di questa domanda, siamo interessati al motore di database grezzo. Con quello in mente:

Mi vengono in mente SQLlite ,
Firebird ,
VistaDB (non gratuito),
SQL Server Compact Edition (non Express)
e ora SQL Server LocalDB
.

Un altro pensiero: mentre la domanda originale fa domande sui database desktop, è probabile che alcune persone atterreranno qui alla ricerca di un database da utilizzare con un sito web. È importante ricordare che questi sono tutti database in-process e come tali sono raramente, se non mai, appropriati per l'uso sul Web. Se si desidera creare un sito Web, in cui è normale che sia necessario supportare un accesso simultaneo significativo, in genere si desidera un motore di server di database , come MS SQL, Postgresql, MySQL, Oracle o i loro fratelli. Allo stesso tempo, questi motori di server sono raramente, se non mai, appropriati per un'applicazione desktop per utente singolo.


... ad eccezione di Firebird, che si trova a cavallo del confine e può essere utilizzato in entrambi gli scenari. Aspetti positivi, però.
user60401

7
SQLite, lo adoro.
Alix Axel

Perché SQL Server Compact Edition e non Express? È solo a causa delle dimensioni?
Mark3308

@Mark - Express Edition è ancora un database di classe server e non un database in-process come gli altri. Leggi la seconda parte della risposta e tutto ciò che riguarda i motori del server (inclusa l'ultima frase) si applica a Express Edition.
Joel Coehoorn

OK, non mi ero reso conto che la Compact Edition fosse un database In Process. Grazie per la segnalazione.
Mark3308

127

Quando le persone chiedono una sostituzione per Access, molti pensano solo al database, ma ciò che chiedono veramente sono tutte le altre funzionalità di Access. Di solito non si preoccupano di quale database viene utilizzato da Access.

Alcune delle funzionalità fornite da Access sono: moduli, creazione di query, report, macro, gestione del database e un qualche tipo di linguaggio quando è necessario andare oltre ciò che forniscono le procedure guidate.

SQLite , MySQL e FireBird sono back-end di database gratuiti. Non hanno quelle funzioni di accesso aggiuntive incorporate. Qualsiasi alternativa gratuita ad Access richiede la combinazione di qualcosa come SQLite e un linguaggio di sviluppo.

Probabilmente la migliore opzione gratuita sarebbe SQLite e Visual Basic 2008 o C # 2008 Express Edition . Ciò avrebbe una forte dipendenza dal runtime, quindi l'installazione su un client nudo potrebbe richiedere abbastanza il programma di installazione.

Non esiste davvero un'opzione non di accesso gratuita con requisiti minimi di runtime. Vorrei che ci fosse.

Mi interesserà sapere se qualcuno conosce delle buone alternative.


5
sì .. le persone non si rendono conto del potere dell'accesso come ambiente di sviluppo integrato come hai evidenziato ... non c'è niente di gratuito paragonabile all'accesso di Microsoft con anche la maggior parte (figuriamoci tutte) le funzionalità integrate. quando hai accesso ... puoi fare molte cose in una frazione di tempo che richiede per ottenere con altri mezzi ... 100% d'accordo con la tua risposta @bruceatk
ihightower


68

Schnapple chiede:

Ti riferisci al concetto di un database gratuito da distribuire con un'applicazione, o un database "file singolo, nessuna installazione" tipo Access?

Ehm, nessuno che abbia alcuna competenza con lo sviluppo di applicazioni di Access distribuirà mai un singolo MDB / ACCDB come archivio di applicazioni / dati. Qualsiasi applicazione Access non banale deve essere suddivisa in un front-end con i moduli / query / report (ad esempio, oggetti dell'interfaccia utente) e un back-end (solo tabelle di dati).

È chiaro che ciò che è necessario qui è uno strumento di sviluppo di applicazioni di database come Access. Nessuna delle risposte del solo database risponde in alcun modo a ciò.

Informazioni su Access prima di rispondere alle domande di Access:

  • Access è uno strumento di sviluppo di applicazioni di database fornito con un motore di database predefinito chiamato Jet.

  • Ma un'applicazione di Access può essere creata per funzionare con i dati in quasi tutti i database back-end, a condizione che sia presente un driver ISAM o ODBC o OLEDB per quel motore di database.

La stessa Microsoft ha fatto un buon lavoro nell'offuscare la differenza tra Access (strumento di sviluppo) e Jet (motore di database), quindi non sorprende che molte persone non riconoscano la differenza. Ma gli sviluppatori dovrebbero usare un linguaggio preciso, e quando intendi il motore di database, usa "Jet", e quando intendi la piattaforma di sviluppo front-end, usa "Access".


Tecnicamente, David, in Access 2007 e versioni successive dei file, utilizza una versione di Jet specifica per Office chiamata Access Connectivity Engine (ACE).
Bobort

17

Ad essere onesti, non ci sono alternative gratuite a MS Access. Almeno se intendi uno strumento di sviluppo del database (moduli, rapporti, query, supporto VBA ecc.). Se pensi a MS Access come a un motore di database (intendi in effetti MS Jet o ACE), allora sì, hai molte possibilità. Esistono molti motori di database gratuiti: i più popolari sono MySQL e PostgreSQL. Posso consigliarli entrambi, dipende da cosa vuoi fare.

Per la scrittura di frontend di database C ++ è una delle scelte peggiori. Dovresti considerare MS Visual C #, MS Visual Basic .NET o ... Anche Java / Swing (se parliamo di applicazione desktop). Se pensi al frontend abilitato per il web, considera PHP (con MySQL o PostgreSQL sul backend) o ASP.NET (con MSSQL Server sul backend).

Ti consiglio vivamente di non usare C ++ per questo tipo di lavoro. Questo linguaggio è molto efficiente e flessibile, ma lo sviluppo avanzato di database frontend con C ++ non è l'idea migliore. Il C ++ è ottimo per la programmazione di sistema, lo sviluppo di giochi, le simulazioni matematiche e fisiche, ovunque l'efficienza sia la chiave - come le applicazioni in tempo reale ecc. I frontend non devono essere demoni della velocità: dovrebbero avere un aspetto gradevole e avere un utente finale avanzato caratteristiche (come l'ordinamento, la colorazione, ecc.). Se stai cercando strumenti gratuiti, forse C # Express o Visual Basic.NET Express 2008 sarebbe la scelta giusta? O forse Java / Swing (controlla l'IDE NetBeans)? Forse SharpDevelop? Ma non C ++ ... Lascia C ++ per le cose che meglio si adattano.


15

Dai un'occhiata a suneido .

Ho realizzato un'app GIS abbastanza complicata come esperimento alcuni anni fa (database, gui complessa, report, client / server). È stata un'esperienza piacevole (a parte alcuni problemi di documentazione ...) e sono diventato produttivo molto velocemente.

Non lo uso più principalmente perché:

  • non è veramente scopo generale
  • non è multipiattaforma (solo Windows)
  • Ho deciso di smettere di esplorare le tecnologie esotiche e di specializzarmi in qualcosa di più mainstream.

10

Delle alternative al software libero queste non sono state ancora menzionate:

Vorrei anche tenere d'occhio gli strumenti DB RAD che la comunità Flex / Air sta inventando, poiché con questi strumenti è possibile ottenere desktop e interfacce web unificate.


1
Rekall sembra essere morto e Glom sembra essere immaturo e non ancora molto utilizzato. Salterei del tutto il paradigma client-server e andrei con qualcosa di web 2.0, come WaveMaker.
Robin Green

1
Glom non sembra essere stato aggiornato dal 2012, quindi probabilmente è morto a questo punto.
WhatEvil

9

Oracle XE con Application Express.

  • Ha una bella GUI basata sul web,
  • È un database "reale"
  • Scalerà oltre un singolo desktop
  • Offre un percorso di scala chiaro oltre un piccolo team
  • Applicazioni come web based, facilmente accessibili.
  • Può convertire fogli di calcolo Excel in applicazioni

7

Il problema è trovare un'alternativa a MS Access che includa un ambiente di sviluppo visivo, drag and drop con un database "ragionevole" in cui l'intero kit e caboodle possono essere distribuiti gratuitamente.

Il mio primo suggerimento sarebbe quello di guardare questo elenco molto completo di alternative a MS Access (molte delle quali sono gratuite), seguito da uno sguardo a questo elenco di strumenti di sviluppo di database open source su osalt.com.

Il mio secondo suggerimento sarebbe quello di dare un'occhiata a WaveMaker, che è una sorta di PowerBuilder open source per il cloud (disclaimer: io lavoro lì, quindi non dovrebbe essere considerato una fonte imparziale di informazioni ;-)

WaveMaker combina un IDE drag and drop con un back-end Java open source. È concesso in licenza con la licenza Apache e vanta una comunità di sviluppatori composta da 15.000 persone.


Trovo che le valutazioni all'URL citato siano piuttosto benefiche per le alternative di Access. Nessuno di loro si avvicina molto a replicare il set di funzionalità di Access. Ciò non significa che siano ottime scelte per qualsiasi numero di progetti, ma solo che non possono sostituire tutto ciò che fa Access. L'unica piattaforma che conosco che si avvicina è FileMaker, che è relativamente debole nello scripting e nella connettività dei dati.
David-W-Fenton

Questo è un buon collegamento @C Keene. Grazie per averlo condiviso.
Onorio Catenacci

Sono d'accordo con te @David Fenton - MS Access è un prodotto molto maturo e completo. Se vuoi qualcosa che faccia tutto ciò che fa MS Access, allora MS Access è l'unico prodotto che si adatta al conto. La "risposta giusta" si riduce a quali particolari compromessi sei disposto a fare (ad esempio, script o report limitati) e quali altri vantaggi ottieni dalla nuova piattaforma (ad esempio, open source, basata su Java, ecc.)
C Keene

7

NuBuilder ( www.nubuilder.net ) potrebbe avere ragione.

NuBuilder è un'applicazione Web PHP con licenza GPLv3 che richiede MySQL come database di backend. Sia gli utenti che i programmatori utilizzano l'interfaccia web.

Lo promuovono come alternativa gratuita a MS Access basata sul web. In questi giorni sto creando la mia seconda applicazione NuBuilder. Il NuBuilder sembra essere sviluppato in modo molto attivo e l'ho trovato stabile e ben documentato (a condizione che tu possa sopportare tutorial video.)


6

Potresti voler esaminare SQLite ( http://sqlite.org/ ). Tutto dipende dal tuo utilizzo però. La concorrenza, ad esempio, non è la sua più grande virtù. Ma ad esempio Firefox lo utilizza per memorizzare le impostazioni ecc.


6

Nel contesto di un forum di programmazione, di solito non si pensa al programmatore che necessita anche della parte applicativa del database. Normalmente un programmatore desidera utilizzare il proprio ambiente di sviluppo per la logica aziendale e il front-end e utilizzare semplicemente le capacità di archiviazione, query, recupero ed elaborazione dati del database.

Se vuoi davvero tutte queste altre cose, allora stai parlando di un ambiente di runtime molto più ampio e complicato. Non troverai più nulla di "leggero". Anche lo stesso MS Access non è più idoneo, perché non è certo leggero. È solo una fortuna in quanto molti utenti potrebbero già averlo, facendolo sembrare leggero.

Questo non significa che non troverai nulla. Solo che non è probabile che abbia lo stesso livello di maturità o distribuzione di Access, soprattutto perché il motore di accesso sottostante è già integrato in Windows.


6

La licenza di runtime di Access non è mai stata così costosa: il costo per gli strumenti / estensioni per sviluppatori è stato di circa $ 300 da quando ricordo (che risalirebbe ad Access 2 Developers Toolkit o ADT), ma quello ti dà la possibilità di distribuire la tua app con il runtime a un numero illimitato di utenti. Finché la tua app runtime è stata utilizzata da tre o più utenti, avresti risparmiato denaro (assumendo un costo di $ 100 / utente per installare una copia completa di Access).

Il runtime per Access 2007 è completamente gratuito, ma in realtà il costo prima non era poi così eccezionale.

Marc Gravell ha aggiunto (in quello che avrebbe dovuto essere un commento, secondo me):
Essere liberi, però, è certamente un incoraggiamento per le persone a provarlo, cosa che il prezzo di $ 300 avrebbe davvero scoraggiato.


5

VistaDB ha una versione express che è gratuita ed è sintassi e driver compatibili con SQL Server. VistaDB è un singolo file e richiede solo il loro driver .dll per funzionare nel tuo progetto asp.net o winforms.

Poiché è compatibile con la sintassi e l'origine dati, è possibile eseguire l'aggiornamento a SQL Server, se necessario.

dal loro sito:

VistaDB è un'applicazione ASP.NET e WinForms completamente gestita e sicura che utilizza C #, VB.NET e altri linguaggi compatibili con CLR.

VistaDB.net



4

Ti riferisci al concetto di un database gratuito da distribuire con un'applicazione, o un database "file singolo, nessuna installazione" tipo Access?

Ad esempio, cose come SQL Server Express Edition richiedono l'installazione di runtime, la creazione e il montaggio di database, voci nei menu Start delle persone che non riconoscono (l'altro giorno mia moglie ha chiesto perché SQL Server era sul suo laptop) mentre un database di Access può essere eseguito in un singolo file.

Immagino che quello che sto chiedendo sia: vuoi pensare al database come un documento su cui scrivi o come un'istanza di qualcosa sulla macchina di qualcun altro?


4

Che mi dici di r: Base? Nel passato r: Base era un RDMBS DOS (allora Windows) molto robusto e questo è il periodo pre-accesso / pre-Paradox. Il suo concorrente più vicino era dBase, ma all'epoca non era completamente relazionale. Ho sviluppato alcune applicazioni r: Base molto carine E, come Access oggi, avevo un generatore di report integrato, una funzione di moduli, query e manipolazione di tabelle .. Con mia sorpresa, è ancora vivo! http://www.rbase.com/ Ha tutte le offerte di accesso, a quanto pare. Potrebbe essere qualcosa da considerare.


1
Wow, pensavo che anche r: Base fosse sparita. Buon collegamento Ottimale.
Onorio Catenacci

@SmartMethod, hai qualche strumento nascosto da RBase (* .rbf) a qualche altro DB, come Access o MSSQL?
Admiral Land

@Admiral Land - non nel recente passato, no. È passato un bel po 'di tempo. L'ultimo che ho fatto è stato r: Base to MS SQL Server all'inizio del 2010 per un client.
Taptronic

1
@SmartMethod, risolvo il mio problema, grazie!
Admiral Land

4

Kexi 2007.1.1 potrebbe essere quello che stai cercando.

La sua versione express è gratuita ma la dimensione del DB è limitata. La versione completa costa $ 72.

La descrizione dalla sua home page: Kexi è un'applicazione facile da usare per la progettazione visiva di database per Linux e MS Windows. Kexi compete con MS Access, FoxPro, Oracle Forms e FileMaker.

Visita http://www.kexi-project.org/about.html per i dettagli.




3

Molto in linea con la risposta di Aurelio, ora lavoro in Ruby on Rails su alcune applicazioni che avrei potuto fare in precedenza in MS Access. Il database di back-end per un'app Rails. di solito è MySql (funziona abbastanza bene ed è disponibile sulla maggior parte degli hosting Web condivisi) o PostgreSQL (la scelta migliore quando possibile).


È un piacere vederti, Steve! Non ho notizie da anni e spero che tu stia andando bene ... Mi piacerebbe saperne di più sulla tua esperienza con Ruby on Rails. L'ho guardato e sembra un impegno troppo grande per un progetto troppo ingombrante (sembra una grande biblioteca dal mio punto di vista, e quindi impone la sua logica - non letteralmente, ma metaforicamente).
David-W-Fenton,

Fare bene è relativo - ne parlerò presto su altri canali. Personalmente, amo Rails e l'ho fatto per anni, ma non affermerei mai che sia giusto per tutti. Si tratta di un grande impegno, ma il linguaggio Ruby è molto potente ed espressiva, ed è una gioia di imparare, IMO. Rails è un framework "supponente", che incorpora un'ampia raccolta di librerie predefinite, tuttavia molte librerie sono opzionali e scambiabili, quindi è meno restrittivo di quanto potrebbe sembrare a prima vista. Anche la community di Rails è davvero fantastica, il che ovviamente conta molto.
Steve Jorgensen


2

Avrei lo stesso problema da parte tua. Avevo un'applicazione di accesso alla SM ma volevo andare su un'applicazione web accessibile a tutti e senza pagare soldi alla SM. Quindi ho deciso di utilizzare MySql e Wavemaker (open source) per ottenere l'ambito .. Sono molto felice di questa decisione. e questo è il risultato http://www.mara-database.org/


Non credo che tu stia rispondendo alla domanda che è stata posta.
David-W-Fenton


2

Quello che sembra che tu stia cercando non è solo un programma di database, ma un database con moduli, rapporti, ecc (fondamentalmente un IDE di sorta). Consiglierei di provare OpenOffice.org Base, fornito con la suite per ufficio. È gratuito e open source. Non è neanche lontanamente lucido come l'accesso, ma fa più o meno le stesse cose.

Inoltre, se conosci l'accesso, sarà almeno in qualche modo familiare.

http://www.openoffice.org/

EDIT: Mi dispiace, non ho letto che stai considerando OpenOffice.org. Per quanto riguarda la stabilità, ho avuto un crash e ho fatto alcune cose "strane" quando ci giocavo, ma Access ha fatto la stessa cosa. Il modo migliore per scoprirlo è giocarci un po 'e vedere se ti si addice.


1

Penso che il database incluso con OpenOffice.org contenga il progettista di moduli. Tuttavia, non ho mai provato a scrivere codice per questo. Un post sul forum che ho visto aveva un collegamento a un tutorial che dicevano conteneva del codice.

Ho iniziato a creare un database per mia moglie e l'interfaccia risultava piuttosto buona per quanto ne sapevo.

oooForum.org tutorial


2
Mi piacerebbe usare il materiale incluso in OO.0 ma l'ultima volta che l'ho controllato, era troppo primitivo per essere usato.
Onorio Catenacci

0

per sqlite, controlla l'estensione per firefox. Offre una GUI utile.


Questo non ti consentirà solo di gestire il database e non di creare effettivamente una "applicazione desktop leggera"?
JeffO

Vero, ma penso che l'interrogante stesse chiedendo il database e non l'applicazione desktop leggera. MSAccess è abbastanza bravo in questo, più difficile da sostituire.
Christopher Mahan

@Christopher Mahan: ti è venuta esattamente l'idea dalle ripetute affermazioni dell'interrogante originale che stava chiedendo dell'intero pacchetto (in particolare lo sviluppo front-end), che "stava chiedendo il database e non l'applicazione desktop leggera"? La domanda è abbastanza chiara che è l'intero pacchetto, quindi qualsiasi risposta che sia solo database è completamente sbagliata per la domanda.
David-W-Fenton

@ David: hai ragione, ovviamente. Ho costruito molti molti db con accesso. Quello era il mio lavoro a tempo pieno nel 1997-1999. Ricordo di aver creato una funzione modulo per ricollegare automaticamente le tabelle in base alle vicinanze della rete.
Christopher Mahan

-1

VistaDB è l'unica alternativa se hai intenzione di eseguire il tuo sito Web su hosting condiviso (quasi tutti non ti consentono di eseguire i tuoi siti Web in modalità Full Trust) e anche se hai bisogno di un semplice sito Web abilitato per la distribuzione x-copy.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.