Need help choosing database
Hello, I have been reading TDWTF for a few months now.
I recently started a position as a Junior programmer at small (but growing fast) manufacturing plant. Our IT department consists of 3 people (including myself).
About 4 years ago one of the owners developed an application that is used throughout the whole company, everything from managing punch in/out in for workers, creating work orders, our change notice application, etc.
Anyways this was all developed in VB6 using access as the db. Although this might sound like a WTF (which I guess it probably is) the owner had zero previous knowledge of computer programming, and programming concepts, and taught himself everything about it. Which I think is fairly impressive considering how large the application is.
Presently the IT department (all 3 of us) are just about to start rewritting the application, and redesigning the database.
We have decided to rewrite the application in VB.Net (I would of prefered C#, but the other two people in the department want VB) and most likely be a client/server type application. We are still deciding on which database to use.
They are wanting to use Oracle, but I REALLY don't want to use it. I had to use it for school, and it was way too complex for what we needed it for. Also I have always heard Oracle is meant for big businesses (banks, etc), and after reading http://thedailywtf.com/forums/thread/84413.aspx it only confirms it.
Now we are still deciding which one to use, but I really dont know which is the best to use for a small (about 150 employees, but steadly growing) company.
I was thinking probably MS SQL server, as it seems easy to manage, yet powerful enough to do the job. Also stored procedures would be really nice. But other options would be nice to have to. We are (obviously) running everything on Windows OS (mainly XP, some 2000). The server is 2003.
What would be some other database vendors to consider? MySQL (I have used it a bit with a PHP application I developed, but didn't use anything advanced).
I also have heard some things about PostgreSQL, but I would need to do some research on it. Money also isn't really an issue. The owner already stated he would buy an Oracle license if we want.
What are your guys thoughts?
If you want to make stored procedures (lots of them), Oracle would be a good choice - PL/SQL is by far better than TSQL.
Other than that, I think MS SQL Server will serve you well.
I work with both Oracle and SQL Server on a daily basis and have worked with DB2, Sybase, and MySQL in the past. My personal preference right now is SQL Server since I just love the new features in 2005 (Integration Services and Reporting Services for the most part).
That being said each database has its pros and cons - I've often said each database sucks in their own special way. Oracle is a very powerful database and because of that has a higher learning curve than others. Management is a little more difficult, but the new features in 10g go along way in making it easier. SQL Server is a very good solution for most applications. Easy to install and maintain, but you sacrifice some power and flexibility. DB2 is a decent database as well - I like the overloading of procs the best. With MySQL, it's biggest drawback is it is a late comer in terms of procs, functions, and triggers. I've developed custom quoting and inventory systems on MySQL with very few issues that were actual database issues (A few corrupted index files).
My advice is to download the free versions of MsSQL (SqlExpress), Oracle, DB2, and Postgres and try them out. I personally would not go with MySQL at this time if you are looking at procs/functions. It just isn't there yet. MsSQL, Oracle, DB2 and Postgres all good databases - the biggest issue is going to be whether your team has the knowledge or is willing/able to learn how to support them.
Alright thanks, Since we are such a small IT department, we don't have a lot of time to spare, we are constantly being bugged to help fix a printer, plug in a monitor, back up some software, etc.
We still have to have a formal meeting, but I wouldnt be suprised if we went with MS SQL. I'm not sure of the experience of the other IT staff, but I have done quite a few stored procedures with MS SQL 2000, along with some reporting.
Since we are now only using Access, I dont think we need the huge jump from it to oracle, like you said, the learning curve on oracle seems to me that it would be pretty large, whereas MS SQL is much easier to manage, yet is still powerful.
Thanks for your reply.
You know you can buy software off the shelf that does this? From the brief description, I'd imagine that most basic accounting packages would do 90% of it and then you only need to calve off one module from the original Access to do the other 10%. This has the added benefit of keeping the users happy because they think they're still using Access but it's really just a thin front-end.
Maybe, but one of the owners said he wanted to keep all computer application we use "in house". Not only that, but sometime in the future once we do the rewrite and work out all the bugs, he said he may want to sell the application (or parts of it) to other manufacturing plants.
Hell I am not complaining. It means I have a secure job for a couple of years.. and for being straight out of college (just finished a few weeks ago)... I need a secure job (that pays alright) for a while until I build up some experience.
Steel seems to be the de-facto standard now when building bases. Concrete AND steel actually... Make sure you have multiple thick layers of it on the outside shell so that it can withstand heavy fire. I can't count the times when a critical database of mine was destroyed from a stupid AK round. Never again shall I trust aluminum. Sure, it's light and looks all shiny, but it's weaker than shit. The most critical part is the armor for sure, so don't skimp. I've never had a layered stainless steel/concrete database fall under enemy fire.
[quote user="GoatCheez"]Steel seems to be the de-facto standard now when building bases. Concrete AND steel actually... Make sure you have multiple thick layers of it on the outside shell so that it can withstand heavy fire. I can't count the times when a critical database of mine was destroyed from a stupid AK round. Never again shall I trust aluminum. Sure, it's light and looks all shiny, but it's weaker than shit. The most critical part is the armor for sure, so don't skimp. I've never had a layered stainless steel/concrete database fall under enemy fire.
Fluid layers help too. If get hit by high explosive clusters, you want some fluid layers to absorb some of the shock. Concrete distintegrates and steel gets mangled and bent, but if you put some kind of fluid layer in there, you'll withstand more of the heavy stuff. I'd suggest a sandwich composed of (from the outside in) steel, air, steel contrete, steel, air, steel, concrete, etc. I suggest air because it's still relatively cheap, but if you have the budget, latex is a lot of fun.