473,386 Members | 1,753 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Databases: Which one's right for me?

Hi all,

Having never used a database before and immersing myself in reading
stuff about databases over the last two days I have come to this
conclusion, I still don't know which one I need. I've been using
Python for a while, storing things that I'll need later in files. I am
now looking for a better solution; ergo the need for a database.

Basically I need a db that will travel with my executable script and
faithfully store and edit the data needed in that script. People using
this script will need to be stand alone users. Having a client/server
arrangement is not possible over a network.

Also, installing some type of db engine outside of Python is also not
possible. This rules out installing such readily available databases
as mySQL or any other type of db that must have a separate install.
Everything must be contained within the Python executable package.
However, all of the users WILL have MS Access already installed. So
that is a good possibility, and I have already played around with DAO
and run a couple of scripts with it.

However, I've also read some things about the Python independent db
called Gadfly. This is also an interesting possibility as it reduces
the need to even have Access around and lowers the complexity in
freezing applications (which can run into problems when using COM
clients sometimes).

So from reading I've narrowed it down to two possibilities - MS Access
with DAO and Gadfly. What I can't get from reading is experience or
someone who has done this type of thing before and already knows which
one will work best based on what I need to do. Or, if there exists
another solution other than the two I mentioned, please throw that out
there because it's almost impossible to completely examine every
possibility out there. All suggestions are helpful.

Thanks ahead of time,
Marc
Jul 18 '05 #1
8 1309
On Sat, 2004-01-10 at 12:17, Marc wrote:
Hi all,

Having never used a database before and immersing myself in reading
stuff about databases over the last two days I have come to this
conclusion, I still don't know which one I need. I've been using
Python for a while, storing things that I'll need later in files. I am
now looking for a better solution; ergo the need for a database.

Basically I need a db that will travel with my executable script and
faithfully store and edit the data needed in that script. People using
this script will need to be stand alone users. Having a client/server
arrangement is not possible over a network.
You know about pickling, don't you, specifically cPickle. If not,
investigate that first.
Also, installing some type of db engine outside of Python is also not
possible. This rules out installing such readily available databases
as mySQL or any other type of db that must have a separate install.
Everything must be contained within the Python executable package.
However, all of the users WILL have MS Access already installed. So
that is a good possibility, and I have already played around with DAO
and run a couple of scripts with it. .... So from reading I've narrowed it down to two possibilities - MS Access
with DAO and Gadfly. What I can't get from reading is experience or
someone who has done this type of thing before and already knows which
one will work best based on what I need to do. Or, if there exists
another solution other than the two I mentioned, please throw that out
there because it's almost impossible to completely examine every
possibility out there. All suggestions are helpful.


Look at the support for the various flavours of the BSD database which
are part of the standard Python library, and also the shelve interface
to those databases.

Also look at PySQLite (see http://pysqlite.sourceforge.net/ ) and
MetaKit (http://www.equi4.com/metakit/python.html).

--

Tim C

PGP/GnuPG Key 1024D/EAF993D0 available from keyservers everywhere
or at http://members.optushome.com.au/tchur/pubkey.asc
Key fingerprint = 8C22 BF76 33BA B3B5 1D5B EB37 7891 46A9 EAF9 93D0

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQA//1nGeJFGqer5k9ARAv0jAJ4lUqxhapAMJ/dlUUJY11wAb3f6AwCfWgRb
p/6ZZT4XsGj4o2aGUvsS3UM=
=6oAk
-----END PGP SIGNATURE-----

Jul 18 '05 #2
What do you need to do with the database? For a lot of standalone
applications, one of the standard Python dbm modules is good enough.
Jul 18 '05 #3
Marc wrote:
Hi all,
[snip]
Basically I need a db that will travel with my executable script and
faithfully store and edit the data needed in that script. People using
this script will need to be stand alone users. Having a client/server
arrangement is not possible over a network.

Also, installing some type of db engine outside of Python is also not
possible.
[snip]
Or, if there exists
another solution other than the two I mentioned, please throw that out
there because it's almost impossible to completely examine every
possibility out there. All suggestions are helpful.

Thanks ahead of time,
Marc


Firebird 1.5 has a nice stand-alone database capability I use for demos.

You don't have to install anything on the target machine, but it's not
something that can be packed up in a python exe, as far as I know. You
have to have the Firebird database, its dll, config file and message
file in the same directory as your Python program, but that's all.

Firebird, as a database, is worth a look. I'd spend an hour evaluating
it before using ACCESS and DAO.

You might run into deployment problems with ACCESS 2, 3, 4, 5, 7,
2000/DAO on Windows 95, Windows 98, Windows NT, Windows XP, service
packs 1-5, plus corruption/compaction headaches. But that's just my
experience. "You have moved the mouse, please insert the ACCESS
installation CD...".

If you just want some data persistency, use pickle.

Jul 18 '05 #4
Marc:
Basically I need a db that will travel with my executable script and
faithfully store and edit the data needed in that script.


Have a look at ZODB.

Introduction:
http://www.python.org/workshops/2000...ton/zodb3.html

Programming guide (PDF):
http://cvs.zope.org/ZODB3/Doc/zodb.pdf?rev=1.3

--
René Pijlman
Jul 18 '05 #5
Rene Pijlman <re********************@my.address.is.invalid> writes:
Marc:
Basically I need a db that will travel with my executable script and
faithfully store and edit the data needed in that script.


Have a look at ZODB.

Introduction:
http://www.python.org/workshops/2000...ton/zodb3.html


Which doesn't have a built-in query system, so isn't a database in the
same way as a relational DB like Postgres or Oracle. It's more like
BSDDB + pickle.
John
Jul 18 '05 #6
Rene Pijlman <re********************@my.address.is.invalid> wrote in message news:<qu********************************@4ax.com>. ..
Marc:
Basically I need a db that will travel with my executable script and
faithfully store and edit the data needed in that script.


Have a look at ZODB.

Introduction:
http://www.python.org/workshops/2000...ton/zodb3.html


BTW, I would like to see somewhere an explanation of how
ZODB concurrency control and recovery work. Please inform if
there is some information. I'm not encouraged by the fact that
in what documentation I can find the definitions are not the
standard ones. For example

zodb.pdf:
"""
Isolation means that two programs or threads running in two different
transactions cannot see each other's changes until
they commit their transactions.
"""
Database System Concepts, 4th edition, Silberchatz, Korth, Sudarshan p.566
"""
Isolation: Even though multiple transactions may execute concurrently
the system guarantees that for every pair of transactions Ti and Tj
it appears to Ti that either Tj finished executing before Tj started
or Tj started executing after Ti finished.
"""
The zodb definition is far weaker than the standard one (at least in
this document). Maybe they really meant something different?

For an example of what I'm looking for please see the xsdb documentation
http://xsdb.sourceforge.net/concurrency.html
or the gadfly documentation
http://gadfly.sourceforge.net/recover.html

-- Aaron Watters
===
....and somewhere in the eprom
that hacker he switched context
but in is cryptic code I found
a statement I could parse:
you got to know when to kludge up
know when to core dump
know when to single step
know when to "run"
you never count your source lines
while your sittin' at the keyboard
there'll be time enough for metrics
when the hackings done.
The Hacker (with apologies to The Gambler)
Jul 18 '05 #7
On Sat, 2004-01-10 at 19:50, John J. Lee wrote:
Rene Pijlman <re********************@my.address.is.invalid> writes:
Marc:
Basically I need a db that will travel with my executable script and
faithfully store and edit the data needed in that script.


Have a look at ZODB.

Introduction:
http://www.python.org/workshops/2000...ton/zodb3.html


Which doesn't have a built-in query system, so isn't a database in the
same way as a relational DB like Postgres or Oracle. It's more like
BSDDB + pickle.


A database is a lot more than a query system, although for some
applications query support is very important. Zope has a custom query
system, called the catalog, that is built on top of ZODB. Whether ZODB
sans a builtin query system is suitable really depends on the
application.

Jeremy

Jul 18 '05 #8
On Mon, 12 Jan 2004, Jeremy Hylton wrote:
On Sat, 2004-01-10 at 19:50, John J. Lee wrote: [...about ZODB...]
Which doesn't have a built-in query system, so isn't a database in the
same way as a relational DB like Postgres or Oracle. It's more like
BSDDB + pickle.


A database is a lot more than a query system, although for some
applications query support is very important. Zope has a custom query
system, called the catalog, that is built on top of ZODB.


I thought ZCatalog was dependent on Zope?

There is IndexedCatalog, of course.

Whether ZODB
sans a builtin query system is suitable really depends on the
application.


Of course.
John

Jul 18 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

11
by: Joshua Beall | last post by:
Hi All, I am working on a registration system, and one of the things I am going to need to be able to do it setup the database tables for each event that I have registration for. Normally I...
7
by: Bart Torbert | last post by:
Hello, I am starting to examine using SQLServer instead of Oracle. I went through the SQLServer import utility to copy tables from Oracle into SQLServer. I then checked the size of the...
13
by: Selma_g | last post by:
Hi, I am wondering if the bufferpools and agent memory canbe shared within a EE UDB instance (running 7.2 AIX 5 now but going to V8.1). Our business model requires us to add about 1-2 db's per...
1
by: Prakash RudraRaju | last post by:
Hi, I have recently migrated MSAccess Tables (nearly 120) to MySQL. To test successful migration I want to compare all tables. I have linked MySQL tables through ODBC connection. I want to...
1
by: Kristen | last post by:
Hi, I'm not sure if this can be done or not but here goes... I write an application that uses Access and an MDW file to control who can open the database. Right now I have a bunch of different...
9
by: Luke Vogel | last post by:
Hi all. This is a bit of a newbie type question. I am trying to figure out what is the best way to connect to a database; ado.net, odic others? I've found a couple of examples that show you...
48
by: phillip.s.powell | last post by:
MySQL 3.23.58 - 4.0.17 (yep, several database server instances, don't ask) I have database Spring with table Students I have database Summer with table Students I am tasked to produce a...
3
by: Frank | last post by:
Hi, I have two databases in DB2 v8.2 (Windows 2003 Server platform) and right now both databases are on my c-drive. Unfortunately space on this drive is becoming low and I want to relocate the...
8
by: situ | last post by:
Hello all, i have Database1 and database2, is it possible to make database connection to database2 by running stored procedure on database1. Thanks and Regards Situ
1
by: dreamznatcher | last post by:
Hello, Not sure whether this is the right group to ask this, but there are so many groups out there I got kinda lost! Please help me out on this career dilemma I'm going through, or kindly forward...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.