Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Obviously i'll have to make some sort of choice at what DB i choose to go with (MS-SQL/MYSQL/etc) but this question isn't about that.

The question mainly is what other languages/tools would be helpful for someone wanting to get into Database Programming/Administration. I assume PHP would be helpful with MySQL along with XML Probably (or not?) however Im not sure of what else. Im pretty fluent in C/C++ but if I wanted to get more in depth with the NoSQL databases out there I probably need to brush up on my Java skills.

Also Side question.....is 25 too young to be getting into this stuff? I took a few Database classes in College (Which I just recently graduated from), but I don't want it to be too late to learn something new.

share|improve this question
    
It's never too late to learn something new. –  Anna Lear Sep 14 '11 at 3:35

4 Answers 4

up vote 6 down vote accepted

For a DBA, you need to know about the following (among others):

1- Operating system(s), LANs, Security

2- Storage device types (RAID 5, etc.)

3- SQL for RDBMS

4- Database design and modeling, including design optimization, index types and when to use each type, use of partitions, etc.

5- Stored procedures (if the language supports it)

6- Tools particular to the database such as backup, recovery and 3rd party tools

7- Types of application systems (OLTP, Data Warehouse, maybe real time)

8- General server security and in particular your chosen database security

9- Cloud environments

Regarding the age, I don't think it matters. What is important is the brains.

Now the thing to consider is the effect of Cloud databases on the future market demand for DBAs - This is something I don't know enough about, so research it.

share|improve this answer
    
I agree with everything here. Also I am 19 years old and I work as a programmer full time and DBA/System Admin part time for a webhosting company. –  WojonsTech Sep 14 '11 at 2:00
1  
Wow! This is remarkable @WojonsTech –  Emmad Kareem Sep 14 '11 at 2:12
    
I started hitting the keyboard at 18 months old, buidling computers in 3rd grade, html in 4th grade c/c++ 6th grade, Linux 8th grade, LAMP 9th Grade. JAVA 10thgrade. Beowulf clusters 11th Grade. and sinces then just learning everything and everything i can. –  WojonsTech Sep 14 '11 at 3:03
    
+1, infrastructure angle is key to anything truly DBAish -- welcome to operations, guy. –  Wyatt Barnett Sep 14 '11 at 3:21

Besides the items Emmad gave, I'd add to the list:

  1. Locks - get a good understanding of how each database system uses locks
  2. NoSQL vs SQL databases - Both have their place; they have very different strengths and weaknesses. Get to know those so that you can help recommend the right tool for the job.
  3. Scaling & Replication - It is becoming more and more important to have a database that can scale to the demand. Sometimes this is nothing more than upgrading hardware; other times it is a much more involved solution. Understanding these options can be very valuable.

I also would not worry so much about a specific product. If you want to learn, SQL Server or MySQL are your best choice because they have decent tools and very good free versions. Oracle and DB2 are good products but they are expensive and last time I looked, don't have any free versions available for home users.

Oracle offers a free version.

share|improve this answer
    
As a super basic rule of thumb SQL has the strengths that NoSQL has as weakness and NoSQL strengths are what SQL has for weakness. If you ever really come into making an app that you cant pick it may be important to look at both. Also if you can flush logs/backups in on to a nosql it can keep ur sql running fast :) Learn not only about locking but also about indexing, learn sorting algritums and searching algrithums. Those 4 get really imporant for how data is searched and stored and updated. –  WojonsTech Sep 14 '11 at 3:13

DBA and developer are different roles. In a small company you can do both but it is more usual for there to be a DBA and a database developer.

Emmad covers most of the DBA role but you also need to understand intimately the factors that go into making your database perform well or badly, memory management, SQL tuning etc. Some databases give you lots of tuning tools & options (Oracle) others try to be a black box (MySQL, Interbase) which means that you have more problems tracking down the root cause of performance issues.

Database developers write stored procedures to do significant back-end processing. For that you need to know SQL in all of its' varieties: DDL, DML & PL. Knowing database tuning helps as well so you don't write horribly slow code, although a good DBA can help with this.

share|improve this answer
    
I think its best to express what your saying that. DBA is a system admin they are not as much programers but IT people for the servers and keep them runnin and at the correct config for networks and other things. while developers are more like programmers. And work on the little idea. –  WojonsTech Sep 14 '11 at 3:14
    
also keep in mind that a DBA can easily be outsourced they come in when there is a server issue or an update is needed or on there monthly checkin. While the developer is in house just becasuse you can outsource your dba just change the password once they leave but the developer knows how ur database works. –  WojonsTech Sep 14 '11 at 3:17
    
I know what you're saying and it actually stems from ignorance of what a GOOD DBA does compared to the average. Average DBAs keep backups, applies patches, adds users & reactively deals with performance issues. A top DBA writes scripts to automate the "boring" stuff & then proactively monitors the database to maintain peak performance. A good DBA also understands the database as well as the data architect. They are rare though, I've only worked with a couple in 20 years of database programming. –  mcottle Sep 14 '11 at 7:24
    
I am guessing the reason why i do not know the differances is because I am a sysAdmin/DBA/programmer so they have all gotten tangled togetather. –  WojonsTech Sep 14 '11 at 22:00

Before immersing yourself in vendor-specific aspects, learn the science behind RDBMS. Also learn the SQL standard. You'll be using it ad nauseum (but that's a good thing in this case).

Then once you are comfortable with the aforementioned you should find an RDBMS that suits your desires. If you're a Microsoft professional, you'd want to go with SQL Server. If you are a Sun professional, then Oracle...etc. etc. etc.

The tools and the hey-that's-cool things will come with time and experience. If I was you, I'd be more concerned with the bigger picture on data science.

And no, 25 is definitely not too young to invest in a promising career of database administration/development. Follow your passion! Databases are awesome...

share|improve this answer
    
+1 for databases are awsome you can use some basic programing lanauge fill up a test database will random info and just messa round and learn so many things about how it finds data. –  WojonsTech Sep 14 '11 at 6:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.