This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Hello there, I'm trying to practice with a relational database (DBMS). Designing databases and writing Java programs that depends on this database. I have some background in this with Access and SQL Server, but i prefer to use/learn with another one. I am seeing that i have one of two choices, IBM DB2 or Oracle. If someone can enlighten me of what the benefits of choosing one over another, i will really appreciate it. I mean by the 'benefits':
The ease of use generally and for a Java programmer specifically. Popularity Job opportunities Learning Resources Or any aspect that you believe is important. Cost doesn't count as i will not buy any of them for just learning and practicing
I don't think Oracle or IBM (db2) provide a free copy for learning. MySQL or Postgres are both free relational databases. Both use standard SQL and would be better practice than Access. MySQL has some use in industry. I'm not sure about Postgres. So to practice standard SQL/JDBC, you could use any of these. Oracle or db2 would only be needed if you are writing stored procedures.
That said, here are your criteria: Popularity - db2 and Oracle are the leaders. Oracle is usually listed as being more popular.
Job opportunities - Any. An employer will care that you know JDBC. Not database specific SQL.
Learning Resources - Oracle is stronger than db2. MySQL is up there with Oracle.
Thanks Jeanne for welcoming me and for the very useful information. Yes, maybe i need to write stored procedures (i have learnt that with MS SQL Server, didn't practice it enough though). I thought also of MySQL and it is a third option in my mind but as i know (version 4) lacks stored procedures and i didn't check what happened with version 5. For Postgres, it has stored procedures or something similar (as i remember but i might be wrong) but the learning curve is higher than MySQL. I have downloaded before Oracle 9i from their web site and indeed installed it. It didn't say what limitation is there! (I don't know what happened in Oracle as they offer JDeveloper without limitation, but in this case they say that). I think you made my thoughts clearer as there is no big difference between all of them when using JDBC and SQL to retrieve data. The other part (if i want to design and have some administration knowledge) depends on what job i have in mind. Mmmmm, i think it makes sense to me now. Gracias
Nawar, Oracle database is free for personal use and development purposes. As you have discovered, there is no problem with downloading it and installing it.
Each database has its own, propriatory language for implementing stored procedures. Oracle's language is called PL/SQL. I understand it is very similar to PostgreSQL's stored procedure language.
Oracle still is (and almost always has been) the market leader in database software. They have the largest market share.
And you can forget about database independence. There are also differences in the SQL implementation for each database as well as in the JDBC drivers they provide.
If you are looking to work for big companies, many of them use Oracle (or DB2). If you are looking at small companies or startups, then a lot of them use "MySQL". I'd concentrate on becoming an expert in one database, rather than learning a little about each one.
Good Luck, Avi.
Joined: Feb 08, 2005
Thanks Avi, I begin to remember now some of the notes i wrote to 'remind' me about this topic before I got busy with SCJP Cert. But because i have 2MB of memory in my head, i forgot where i put those notes and articles! Yes, I remember now that i read once about the SQL standard '92' and how the big ones (Oracle, MS ..etc) don't implement it fully, rather they keep their 'own' way. Even I read about 'Object oriented' way that exist 'somehow' in PstgreSQL, but no one else bothered about it which it said it would make database design and OO developer life much easier. Ok let's back to the 'real' life. Mmmm, I don't think i have something essential to add about the 'real' life as you explained it very well. Jeanne 'filtered' some doubts in my mind and you have answered all that remained. I can see very clear now and already made my choice. And yes, i need the 'Good Luck' so,