Beginner's Questions
Hey, All,
I'm working on a project (for a friend and for self-education) and
want to learn a little more about what sorts of applications
PostgreSQL is used for. I'm currently looking at a single-computer
desktop application that may be scaled to a client-server model with
multiple desktop clients and a centralized server.
My database is quite small (only 13 lucky tables, though that may
expand a little) and will not hold a great amount of data. (There
will be at most records in the thousands for the single-user or tens
of thousands for the multi-user.) I will either use Java or C++ for
the project. I would run PostgreSQL as a child process.
Is PostgreSQL overkill for such a project? My other choices are to
go with a flat-file format or to use an embedded SQL server. The
reason to go with PostgreSQL are that I don't have to write as much
code, it's known to be reliable for what I'm doing, and it's known to
be reliable for what I might be doing. The reason to not go with
PostgreSQL is that it might be too much for a modest personal
computer; I don't know that the computers running this will even have
XP. (I'm not a MS Windows user, myself, unless I have to be. My
development boxes are a 1.1 GHz Athlon with 512 RAM with XP and a
dual-processor G4 with MacOS 10.4.)
Are there ballpark requirements for what such a database will need to
run?
Thanks!
Don
I'm running my database on a Pentium 2 with 450MHz CPU.
It runs dbmail and spamassassin's Bayes and has overhead available.
You'll find it works well enough for your database size.
As for being it overkill. I think you've answered your own questions:
I don't have to write as much code -- less bugs, less development time.
It's know to be reliable for what I'm doing -- less bugs, less
testing time.
So, if it *can* run on your machine why wouldn't you run it on your
machine?
I don't limit this thinking to just postgresql... You've identified
postgresql as something that can provide you with a simpler solution
to the architecture, you have sufficient hardware for it. And if for
some reason your estimates are wrong about the size of the project
you can easily grow for sometime with minor modifications, if any, to
your application.
On Mar 9, 2007, at 7:03 AM, Don Lavelle wrote:
Show quoted text
Hey, All,
I'm working on a project (for a friend and for self-education) and
want to learn a little more about what sorts of applications
PostgreSQL is used for. I'm currently looking at a single-computer
desktop application that may be scaled to a client-server model
with multiple desktop clients and a centralized server.My database is quite small (only 13 lucky tables, though that may
expand a little) and will not hold a great amount of data. (There
will be at most records in the thousands for the single-user or
tens of thousands for the multi-user.) I will either use Java or C+
+ for the project. I would run PostgreSQL as a child process.Is PostgreSQL overkill for such a project? My other choices are to
go with a flat-file format or to use an embedded SQL server. The
reason to go with PostgreSQL are that I don't have to write as much
code, it's known to be reliable for what I'm doing, and it's known
to be reliable for what I might be doing. The reason to not go
with PostgreSQL is that it might be too much for a modest personal
computer; I don't know that the computers running this will even
have XP. (I'm not a MS Windows user, myself, unless I have to be.
My development boxes are a 1.1 GHz Athlon with 512 RAM with XP and
a dual-processor G4 with MacOS 10.4.)Are there ballpark requirements for what such a database will need
to run?Thanks!
Don
---------------------------(end of
broadcast)---------------------------
TIP 4: Have you searched our list archives?
Don Lavelle <don.lavelle.bulk@gmail.com> writes:
My database is quite small (only 13 lucky tables, though that may expand a
little) and will not hold a great amount of data. (There will be at most
records in the thousands for the single-user or tens of thousands for the
multi-user.) I will either use Java or C++ for the project. I would run
PostgreSQL as a child process.
What do you mean by "a child process"? PostgreSQL is run as a server and then
you connect to it (either through TCP or using sockets). Or you were talking
about something you'll do with your code?
Is PostgreSQL overkill for such a project? My other choices are to go with a
flat-file format or to use an embedded SQL server. The reason to go with
PostgreSQL are that I don't have to write as much code, it's known to be
reliable for what I'm doing, and it's known to be reliable for what I might
be doing. The reason to not go with PostgreSQL is that it might be too much
for a modest personal computer; I don't know that the computers running this
will even have XP. (I'm not a MS Windows user, myself, unless I have to be.
My development boxes are a 1.1 GHz Athlon with 512 RAM with XP and a
dual-processor G4 with MacOS 10.4.)Are there ballpark requirements for what such a database will need to run?
You have the required hardware. I have PostgreSQL running on worse conditions
and performing very well.
--
Jorge Godoy <jgodoy@gmail.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 03/09/07 06:03, Don Lavelle wrote:
Hey, All,
I'm working on a project (for a friend and for self-education) and want
to learn a little more about what sorts of applications PostgreSQL is
used for. I'm currently looking at a single-computer desktop
application that may be scaled to a client-server model with multiple
desktop clients and a centralized server.My database is quite small (only 13 lucky tables, though that may expand
a little) and will not hold a great amount of data. (There will be at
most records in the thousands for the single-user or tens of thousands
for the multi-user.) I will either use Java or C++ for the project. I
would run PostgreSQL as a child process.Is PostgreSQL overkill for such a project? My other choices are to go
with a flat-file format or to use an embedded SQL server. The reason to
go with PostgreSQL are that I don't have to write as much code, it's
known to be reliable for what I'm doing, and it's known to be reliable
for what I might be doing. The reason to not go with PostgreSQL is that
it might be too much for a modest personal computer; I don't know that
the computers running this will even have XP. (I'm not a MS Windows
user, myself, unless I have to be. My development boxes are a 1.1 GHz
Athlon with 512 RAM with XP and a dual-processor G4 with MacOS 10.4.)Are there ballpark requirements for what such a database will need to run?
As others have said, PG will certainly, happily, run on this system.
It might be overkill, though, regarding complexity. Will you be
using triggers, stored procedures, foreign keys, etc? And how many
users in the multi-user version? If it'll just be a few people
doing SELECT/INSERT/UPDATE/DELETE and the queries are fast, SQLite
may be adequate to the task.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFF8WW1S9HxQb37XmcRApssAJ9fGUlZcEkVvhU1eNMMGN00ZVvRywCcC9mS
qgM91a6nCHBF3412UK8Tqb8=
=2RXq
-----END PGP SIGNATURE-----
Don,
It sounds like your project is similar to mine. My app is a scientific database that contains journal articles and data related to neuropsychological assessment. The goal is to support evidence-based clinical practice as well as to serve as a basis for research and a book I am working on. The database has 30 tables with up to three layers (parent-child-child). The ultimate size of the database will be in the 1000's of records.
I originally started the project in Paradox several years ago. Paradox was good for its day but it was deprecated and so I had to migrate. After much study (reading reviews, comparisons, mailing lists) I chose PostgreSQL. It is popular (so it won't be deprecated), has excellent documentation, the support group is super, and it is very reliable. It has some pretty important features; transactions and built-in referential integrity. I also develop in a Windows XP environment - without problems.
Regarding resources, my install of PostgreSQL takes up 100M of disk, with 57M used by the data directory (my database is only about 11M). I don't think that's too big of a footprint for modern programs.
I programmed my user interface in Java, using Eclipse. I found the learning curve for Eclipse to be pretty steep and, unlike PostgreSQL, the documentation and community support are uneven. Now that the interface is done, I'm pretty happy with it. The basic interface - without custom features needed for a specific purpose - is available on pgFoundry (the Komo project) and you can use it to get started. Have a look!
For output, I added JasperReports to my GUI and that works fine. Note that PostgreSQL, Eclipse, and JasperReports are all open source.
Good luck!
Michael Schmidt
Hi, all,
Thank you all for your help! From what I've gathered, similarly
sized projects run on 100 MB of disk space and a 450 MHz processor.
My GUI and application logic aren't going to need much more than
that, so I should be good to go!
PostgreSQL it is! I'm sure I will have many, many more questions as
I continue the development process.
Cheers!
Don
Import Notes
Resolved by subject fallback
We produce and sell a Java desktop app, distributed in an office
(~1-10 Users), with Postgres as the central data store. The users are
"technically illiterate", and they often have very low spec hardware.
It does all work very well.
Note that for postgres you will need NTFS (WIN32 is not possible).
Our user interface is Java, built with Netbeans IDE, and is based on
the Netbeans "Platform" (to provide lots of lifty infrastructure). We
are Object Oriented developers, so we are nearly "SQL illiterate", so
we do all our Postgres interaction via Hibernate (Object Relational
Mapper"), and it works really well.
All our tools and deliverables are free open source or built on free
open source. This is necessary as we are an self-funded startup who
eventually hope to sell this system into a thousand sites, so paying
license fees for DB (Oracle anyone?) or other deliverables per site
really changes the economics of our offering.
I must say the software stack we have (including postgres) is awesome,
although it does take a lot of effort to learn. The system (Java and
Postgres server) is OK on a 500MHz PIII, but the issue is that it
really does need 500MB RAM to work properly.
All the best.
-Damian
Show quoted text
On 3/10/07, Don Lavelle <don.lavelle.bulk@gmail.com> wrote:
Hi, all,
Thank you all for your help! From what I've gathered, similarly
sized projects run on 100 MB of disk space and a 450 MHz processor.
My GUI and application logic aren't going to need much more than
that, so I should be good to go!PostgreSQL it is! I'm sure I will have many, many more questions as
I continue the development process.Cheers!
Don
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
On 3/10/07, Don Lavelle <don.lavelle.bulk@gmail.com> wrote:
Hi, all,
Thank you all for your help! From what I've gathered, similarly
sized projects run on 100 MB of disk space and a 450 MHz processor.
My GUI and application logic aren't going to need much more than
that, so I should be good to go!PostgreSQL it is! I'm sure I will have many, many more questions as
I continue the development process.
For something like what you are doing, providing (and this is a BIG
providing) you won't want to distribute it under a commercial licence
without paying a fee (it has gpl and commercial), something like db4o
might be better. It is very lite and after you get used to it should
save you lots of development time. It is an object database, and
basically you just do things like
objectDatastore.set(myObject);
myOjbect = objectDatastore.get(ItsType);
And instead of having to have a separate object and sql models and
translation, you just have objects.
It works in a client server environment, and for small projects is quite nice.
Cheers
Anton