Thread: 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: > 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? > > http://archives.postgresql.org/ >
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
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 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