aspose file tools*
The moose likes Jobs Discussion and the fly likes Advice on Data Base for newbie : Should I take the MySQL exam ? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Careers » Jobs Discussion
Bookmark "Advice on Data Base for newbie : Should I take the MySQL exam ?" Watch "Advice on Data Base for newbie : Should I take the MySQL exam ?" New topic
Author

Advice on Data Base for newbie : Should I take the MySQL exam ?

Rahul Sudip Bose
Ranch Hand

Joined: Jan 21, 2011
Posts: 637

I am an electronics engineer switching over to IT, taking the SCJP 1.6 soon. I am NEW to DB and since DB is important, i was wondering if :

[1] I should take the MySQL exam ? DOES IT HAVE ANY VALUE ? A POST SAYS ITS "NOT BEEN UPGRADED FOR LONG"
[2] Are there any other such exams ?
[3] How much time is needed to prepare for this ?
[4] Can i study the "Official cert guide" right-away or do i have read other subjects to be able to understand it ?

any advice and suggestions are welcome.
regards
rb.

PS : Can i post this in the jdbc section since that is frequented by DB folks and i would love to have the benefit of their advice as well.



SCJP 6. Learning more now.
Mike Isano
Ranch Hand

Joined: Jan 19, 2007
Posts: 144
Don't bother with the exam. Most employers are using Microsoft SQL Server or Oracle. Just download the free versions of each, and start playing. Learn about database design as well as how to make backups, etc.


Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 31074
    
232

If you want to be a software developer, I would say no. If you want to maintain databases, I would start with a different one as Mike noted.

I prefer you didn't post this in JDBC. Certification discussion is better here in Job Discussion or in one of our certification forums.

Jeanne
JDBC Forum Moderator


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Rahul Sudip Bose
Ranch Hand

Joined: Jan 21, 2011
Posts: 637

Mike Isano wrote:Don't bother with the exam. Most employers are using Microsoft SQL Server or Oracle. Just download the free versions of each, and start playing. Learn about database design as well as how to make backups, etc.



True, but i also see some job ads that say "PHP and MySQL". Is there any cert in oracle or ms-sql ? Can you suggest some books/links to begin the same ?
Why are ms-sql and oracle more popular than my-sql ?

thanks
rb.
Rahul Sudip Bose
Ranch Hand

Joined: Jan 21, 2011
Posts: 637

Jeanne Boyarsky wrote:If you want to be a software developer, I would say no. If you want to maintain databases, I would start with a different one as Mike noted.



I dont know much about DB, so please bear with me if the doubts sound silly. I want to use/apply DB and perhaps have some knowledge of its internals but not make one. (Like knowing how to drive a car, few things inside the hood...but i dont want to be an automobile engineer ) What is meant by "maintaining a DB" ?

thanks
rb.
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 31074
    
232

Rahul Sudip Bose wrote:True, but i also see some job ads that say "PHP and MySQL". Is there any cert in oracle or ms-sql ? Can you suggest some books/links to begin the same ?
Why are ms-sql and oracle more popular than my-sql ?

As a developer, it's better to know SQL and not tie yourself to a specific database. Oracle is bigger and more corporate. Mysql and postgres are both very good in the free space though and you can learn what you need on them. My concern about certifying in a database is that is sends the wrong message. If you do get one, make sure it is clearly a developer certification and not an administration one.

Rahul Sudip Bose wrote:I dont know much about DB, so please bear with me if the doubts sound silly. I want to use/apply DB and perhaps have some knowledge of its internals but not make one. (Like knowing how to drive a car, few things inside the hood...but i dont want to be an automobile engineer ) What is meant by "maintaining a DB" ?

A DBA (database administrator) may code stored procedures/sql, but is not generally a developer. Here's a list of some DBA responsibilities.
Rahul Sudip Bose
Ranch Hand

Joined: Jan 21, 2011
Posts: 637

Thanks for your wonderful response, the link in particular.
Jeanne Boyarsky wrote:
My concern about certifying in a database is that is sends the wrong message. If you do get one, make sure it is clearly a developer certification and not an administration one.


Please tell me what is the "wrong message". What is the difference between a developer cert and admin one ?
Is there any certification for SQL (not company specific) ?

Jeanne Boyarsky wrote:
A DBA (database administrator) may code stored procedures/sql, but is not generally a developer. Here's a list of some DBA responsibilities.


I am a little confused because the link treats developers, admin , analyst as one !!! This is from the link :
"A Database Admininstrator, Database Analyst or Database Developer is the person responsible for managing the information within an organization....."
"......The primary role of the Database Administrator is to administer, develop, maintain and implement the policies and procedures necessary to ensure the security and integrity of the corporate database......"

regards
rb.
chris webster
Bartender

Joined: Mar 01, 2009
Posts: 1873
    
  16

If you're going to be developing database applications (and most commercial applications will use a database somewhere), you need to know how databases work, and you should find out a little bit about data modelling etc, because in my experience this will put you ahead of about 70% of pure Java developers.

Pick up a beginner's guide to your preferred database and work through it. Don't worry about database administration (DBA) stuff i.e. how to install, manage and back up your database server in a real-world setting, because unless you want to be a DBA, there will always be somebody around who knows how to do this stuff.

Don't bother with certification at this stage, and probably not for MySQL anyway. MySQL is widely used but not in the corporate world, where Oracle, IBM or SQL Server are the usual choices.

I'm an Oracle software developer (sorry, Jeanne!) so obviously I would recommend you download the free Oracle 10g Express Edition, which is a fully functional stand-alone version of Oracle that you can install on your home PC to explore how to use a commercial database. But there are also free versions of other commercial databases as well e.g. I think SQL Server Express is free.

Generic SQL is useful on any database, but many recruiters will insist on experience with a particular DB (even if it might not really be necessary), so it can be helpful to be able to say you know at least a bit about a particular DB. In any case, you should try to understand (and respect) the tools you're going to be working with, and simply regarding all databases as a black box is not necessarily the way to get the most out of them.

Good luck!


No more Blub for me, thank you, Vicar.
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 31074
    
232

Chris,
Your cert has developer in the name.

Rahul,
My concern about a developer having an admin cert is that it leads me to believe they want to be a DBA and not a developer. Why train someone who is going to leave?
Rahul Sudip Bose
Ranch Hand

Joined: Jan 21, 2011
Posts: 637

Jeanne Boyarsky wrote:... Why train someone who is going to leave?


Please explain what that means ?
chris webster
Bartender

Joined: Mar 01, 2009
Posts: 1873
    
  16

Hi Rahul,

Don't get too hung up on certification. Most certification is provided by vendors, so they will obviously certify people for their specific database e.g. MySQL, Oracle, not for generic SQL etc. But you don't need certification at this stage. You just need to get started with a database and find out how to use it for developing a simple application, how to use SQL, how to define tables, keys etc.

You can do this by getting hold of an introductory book to your preferred database, and ideally by doing a bit of extra work on finding out just the basics of relational data modelling (e.g. from an introductory college textbook on databases). This will help you not just when writing your own database code, but also when you start looking at Java tools such as Hibernate, which takes a particular approach to managing the interface between Java and a database.

But the best thing to do is simply pick a DB, get a book, and start playing with it. Work through the book or some tutorials, and maybe try to think of a simple application you could build for yourself so you can practice designing tables/keys etc. You'll learn much more by trying things out for yourself and you may even find you enjoy it.

As for the difference between a DBA and a "database developer": in most places I've worked, the DBA is like a system administrator but specialising in managing the database. They make sure the database keeps running, has plenty of disk space, doesn't fall over when more than 3 people try to connect, back up the data regularly, install software patches and much more. Some DBAs may also have development experience, and this can be very helpful, but others may come into it from being Unix sys admins for example. Not all DBAs make good developers (and vice versa), because these are different skill sets.

A "database developer" is somebody who develops database applications, using a variety of tools and languages, but usually with a strong focus on what many people call "data-centric" applications e.g. data warehouses, OLTP systems, whatever. As a database developer for most of the last 20 years, I've done a lot of data analysis and data-modelling, data-centric application design/development, and so on, but not much DBA work. Knowing some of that DBA stuff about how a specific database works under the covers can certainly help you to be a better developer, but like I say, it is a different skill from development.

Finally, I'm guessing that Jeanne simply meant that if your certificates tell people you're a "DBA", but you apply for a "developer" job, they may wonder if you really want to be a developer or a DBA. So forget about the certificates right now, and don't worry too much about all this stuff, just grab whichever DB seems suitable for you and get started!

Hope this helps.

Chris
Rahul Sudip Bose
Ranch Hand

Joined: Jan 21, 2011
Posts: 637

chris webster wrote:....
Chris


Thanks for your informative response. I will start "playing" with some DB soon. But i was wondering why does oracle offer MySQL also when its not the first preference of corporates ?

Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 31074
    
232

chris webster wrote:Finally, I'm guessing that Jeanne simply meant that if your certificates tell people you're a "DBA", but you apply for a "developer" job, they may wonder if you really want to be a developer or a DBA. So forget about the certificates right now, and don't worry too much about all this stuff, just grab whichever DB seems suitable for you and get started!

Right. If you want to be a DBA and are "settling" for a developer job, you will leave as soon as a DBA job comes up. Training new people is expensive and companies prefer to train people who will stay longer. This may not apply to you, but perception still exists in the minds of someone reading your resume.

Rahul Sudip Bose wrote: But i was wondering why does oracle offer MySQL also when its not the first preference of corporates ?

They took over mysql. There's a lot of discussion/speculation as to why. Search why oracle bought mysql for some opinions.
Rahul Sudip Bose
Ranch Hand

Joined: Jan 21, 2011
Posts: 637

Saw some sites from the search...deleted MySQL.
--Now what to learn - oracle express or ms-sql express ?
--Do the free editions prepare one for handling the paid versions OR are they just "toy" versions and i will have to learn the paid versions from scratch, once in a job ?
--Which is easier for newbies to DB ?
--Do i have to learn about DB first(from say, korth & silberstaz) or i can jump directly to oracle or ms ?

regards
rb


chris webster
Bartender

Joined: Mar 01, 2009
Posts: 1873
    
  16

Rahul Sudip Bose wrote:Saw some sites from the search...deleted MySQL.
--Now what to learn - oracle express or ms-sql express ?
--Do the free editions prepare one for handling the paid versions OR are they just "toy" versions and i will have to learn the paid versions from scratch, once in a job ?
--Which is easier for newbies to DB ?
--Do i have to learn about DB first(from say, korth & silberstaz) or i can jump directly to oracle or ms ?


Oracle Express edition (XE) is a fully functional Oracle 10g database i.e. it includes all the core tools and interfaces etc. The main limitation is that it's single processor only, allows only one database instance, and is restricted to 4GB of user data. But you can develop serious Oracle applications on XE then move them seamlessly onto an enterprise-scale Oracle server (I often do this when I'm prototyping Oracle code because it's often easier to work on a local machine than on a shared server). Anything you learn on Oracle XE is solid experience for working on an enterprise Oracle DB later on.

Oracle provides lots of online tutorial material, but you might want to invest in a book aimed at developing DB applications with Oracle XE.

But it might be easier to start with a simple MySQL book to learn the basics of SQL and so on, then move onto Oracle XE or SQL Server Express. Anything you learn about SQL and basic data modelling etc is transferable to any relational database, and will give you a good foundation for exploring the more specific features of commercial databases.
Rahul Sudip Bose
Ranch Hand

Joined: Jan 21, 2011
Posts: 637

thanks.will check out those books soon.

regards
rb
Stefan Feldmann
Ranch Hand

Joined: Nov 07, 2013
Posts: 43
We are now in progress to migrate Oracle 11g to MySQL 5.6. It's not true that MySQL is not for enterprise (corporate world).

I recommend you 1Z0-882 "Oracle Certified Professional, MySQL 5.6 Developer" (OCP).



MySQL Architecture

Use MySQL client programs to interface with the MySQL Server interactively and in batch
Describe SQL Modes and their impact on behavior of MySQL
Identify characteristics which have session scope

General MySQL Syntax

Explain MySQL implementation of identifiers including case sensitivity, qualified names, aliases and use of reserved words
Identify MySQL data type properties and appropriate usage
Recognize and use common functions and expressions for all MySQL data types
Identify and use comment syntax
Describe and utilize prepared statements
Describe transactions and transaction isolation levels and the impact they have on database behavior

Creation and Design of MySQL Schema Objects

Design and create normalized databases
Create and modify tables using appropriate data types and indexing
Describe and create table constraints enforcing data integrity
Creating and modifying views
Identify and use various methods to obtain metadata for MySQL database objects

Creation, Design and Use of MySQL Stored Programs

Describe and use triggers
Create and execute stored procedures
Create and use stored functions
Implement error handling within stored procedures

Querying for Data

Execute a basic SELECT statement
Limit rows returned by a SELECT statement
Limit columns returned by a SELECT statement
Apply sorting to SELECT statement results
Execute SELECT statements which aggregate and group data

Modifying Data

Describe and execute INSERT statements
Describe and execute REPLACE statements
Describe and execute UPDATE statements
Describe and execute TRUNCATE statements
Describe and execute LOAD DATA statements
Describe and execute DELETE statements

Joins, subqueries and UNION

Identify, describe and use JOINs in MySQL commands
Describe and utilize subqueries in MySQL commands
Perform operations using UNION clause

MySQL Application Development

Identify key characteristics, features and options for PHP, Java and .NET development using MySQL standard drivers
Write a basic Java application that uses MySQL
Write a basic PHP application that uses MySQL
Write a basic .NET application that uses MySQL
Interpret MySQL error messages
Collect available diagnostic information
Describe and use NoSQL and memcached API

Basic Optimizations

Identify statements requiring optimization
Recognize and create optimal indexes for query optimization
Recognize and fix sub-optimal SQL commands
Identify appropriate optimization strategies for InnoDB usage
Optimize performance through data normalization


 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Advice on Data Base for newbie : Should I take the MySQL exam ?