Could I design databases for a living?
September 25, 2007 6:43 PM   Subscribe

Can I, should I, make a career change into database design?

I'm a teacher, former graphic designer and amateur computer nerd. I've found that in building a backside for my classroom projects (using FileMaker) I've gotten way into database design. I find constructing a data model and making it talk to be strangely thrilling -- great mind food. I even like the theoretical side, data normalization and all that, without fully understanding it yet.

On my hardest teaching days I wonder if, at 37 and without IT experience, I could become a data architect for a living. Some questions:

-- Is it typically an interesting job? I know most people would find all of it painfully dull, but I'm wondering if people who start out finding data modeling interesting wind up hating the work. Is it all writing routine queries or are there big, juicy problem-solving projects to be had?

-- Is there a career path aside from years of entry-level work followed by slowly collecting new job titles? Can I teach myself and hope to work before I'm 50?

-- I assume FileMaker is a peashooter in a world of big guns like Oracle and SQL. Is this correct? What should I be learning? What about PHP?

-- Am I nuts?

Thanks in advance.
posted by argybarg to Computers & Internet (16 answers total) 13 users marked this as a favorite
If you understand HTML, PHP is an easy easy language to work with, MySQL too. For the MySQL, starting out using phpMYadmin helped me learn how to do both PHP and MySQL well.
posted by drezdn at 6:49 PM on September 25, 2007

Best answer: "-- Is it typically an interesting job? I know most people would find all of it painfully dull, but I'm wondering if people who start out finding data modeling interesting wind up hating the work. Is it all writing routine queries or are there big, juicy problem-solving projects to be had? "

Some of both. Typically, there is a tension between "doing it right" and "doing it so it works Tuesday".

And there are no "right" answers; the answers are dependent on the questions you'll want to ask of your model. (E.g, the HR database probably includes employees' race (for EEOC compliance) but not the thickness of their eyebrows. But eyebrow thickness would be very useful for a dating site's database, especially given that girls with thick eyebrows are hawt.)

SQL is very "regular" in that there are only a few fundamental things going on (attributes, aggregations, and relations), so once you know what you have to model, realizing that model isn;'t too hard. Finding out what you need to model is the bigger question.

I have no idea of the "career path"; I primarily market myself as a "programmer", but I've found that I tend to be more familiar with databases than many people who style themselves "DBAs", and that I get mistaken for a "DBA".

Can you teach yourself? Sure, SQL is easy and very regular. PHP is orthogonal to SQL; learn SQL, not PHP, if you want to learn SQL. There's a SQL Standard, and plenty of introductory books. Download a copy of postgresql, and the free version of MS SQL server. Pg is more standard's compliant but user-unfriendly; MS actually has a pretty friendly UI and is basically Sybase's T-SQL. Try everything on both, and learn where the vagaries of each.

Download some more complex databases; print our an ERD, then learn to understand ut just from the DDL. The first database I didn't immediately "get" taught me a lot. Study each RBDMS's informationm_schema database, both because knowing that will give you an edge, and to see how it represents information. Learn to use SQL statements to generate other SQL statements. Learn what meta-data is.

If in six months you're able to look back on the you of now and say, "look at all I didn't know", you may have a career.
posted by orthogonality at 7:04 PM on September 25, 2007 [2 favorites]

Being nuts isn't a drawback for IT work. Being driven, obsessive, in love with the work you do is a real asset. Start a larger project, or expand an existing one. Rewrite an existing project using MySQL or Oracle. Take a few night courses and talk to faculty about jobs or projects you can do to expand your skills. Build a portfolio. Don't worry about making a living, for no concentrate on getting the mad skills you know you want. A path will appear...
posted by RussHy at 7:05 PM on September 25, 2007

Oh. DO NOT start with MySQL. MySQL lags in compliance and has weird issues (I managed to crash a db server today, just by executing a prepared statement. Of something that worked fine as straight SQL). And its query optimizer is not great.

Learn using pg and ms-sql server. PG is very very compliant, and sql server is Sybase.
posted by orthogonality at 7:07 PM on September 25, 2007

Best answer: Filemaker indeed has a way of making you feel powerful without a lot of training. Filemaker also doesn't scale past much more than a desktop or workgroup application. So yeah, you'd want to get into Oracle, and getting into Oracle means learning how Oracle has set the world up for you. It's not going to be the logical and intuitive "data model" work you're enjoying now. Before you know it you'll be deep inside some massive company optimizing the speed of some query that performs some step in some automated programming, and you'll be completely hell and gone from the cool, powerful feeling you get from building Filemaker apps for people.

There is a niche in building Filemaker apps for people, though. As you have learned, it's a flexible tool and great for jobs of the right size. If you're willing to hustle your shit and find client for this work, you could scrape out a niche. I wouldn't recommend that, though. Too much hustling for clients.

So I'd suggest you learn more about databases before you make your decision about whether to work with them. Learn SQL - Oracle and MySQL use different SQL but a LOT is portable between them for basic purposes and MySQL is free and easy to get started with. Lots of good resources out there for it.

Once you get into real databases that don't have the GUI/WYSIWYG slickness of Filemaker you'll have a better sense of whether or not you want to work in the big bad world of serious databases. My guess is that you would shudder and fall down at the sight of an actual "big juicy problem."

You're on a Filemaker high right now. Don't trust it too far.
posted by scarabic at 7:35 PM on September 25, 2007 [1 favorite]

I learned SQL in an Oracle environment and found MySQL to be not that hard to pick up (again, for basic purposes, IANADBA). If Ortho says MySQL is funky and will teach you bad habits, that may be very very true. My thought is that if what you're starting with is Filemaker, you need to encounter some kind of SQL. MySQL may be the easiest for you to get going. Caveats and all.
posted by scarabic at 7:39 PM on September 25, 2007

Not to keep beating the drum, but MySQL was easy for scarabic (and me) because we learned on real databases. Learning on MySQL will teach poor habits, which will be hard to unlearn.
posted by orthogonality at 7:42 PM on September 25, 2007

Right. I expect DBAs to be geniuses.

Of course we need the query optimized, or whatever it is that you do. No I don't care about the details, it's just that this process used to finish before 8 AM when the workers start using the data and now it's going on to 9:30.

This is a cash flow issue, absolutely critical. I need you to have it working by Monday when everyone gets in the office. I'm sorry, but I don't have time to explain to you how we started using the database differently without bothering to tell you first. We don't have time to wait in this business, we expect IT to JUST WORK.

(But occasionally you get to do cool things. A few months ago a DBA me over lunch about something he had done that was creative and impressive that we didn't even know we needed.)
posted by Pants! at 7:56 PM on September 25, 2007

Heck, you're lucky if the devs even run the design past the DBA before putting it into production. "It works for 100 rows, it should work for a million, right?"
posted by smackfu at 8:24 PM on September 25, 2007

Typically, there is a tension between "doing it right" and "doing it so it works Tuesday".

Welcome to $AnyJobThatInvolvesMakingSomething.
posted by contraption at 8:46 PM on September 25, 2007

Download a copy of postgresql, and the free version of MS SQL server

It should be said that you can download any of the Oracle software for free. This page lets you get versions for Windows, Linux and OS X. And there are tons of whitepapers, and sample code. I know Oracle really well (since learning on Oracle 6.0.36 in 1992) and so I may be biased, but if you want to start diving in deep, you can, and then discover whether this all still excites you as much.
posted by vacapinta at 9:15 PM on September 25, 2007 [3 favorites]

Best answer: I can assure you that people do get work putting together small applications in Filemaker, because I spend most of my time porting those things to PostgreSQL when the person leaves or the application needs to scale. These people invariably programmed their applications too, with PHP or Perl or whatever was handy for the simple reason that if the project had been split between developer(s) and a DBA the DBA would not have used Filemaker.

If you pick up a programming language I think you can get in on something like this, especially if you have other applicable skills you can offer. In an IT helpdesk position or something I could really see you pitching a Filemaker-based automation to a problem in the department and getting some time off from closing tickets to work on that. Not so glamorous, but an 'in' nonetheless. I envy your teaching position a bit and personally couldn't see stepping back to something like that, but YMMV.

Being in at the beginning of a project like this can have a lot of the excitement you talk about on the programming side as well, since nobody has a significant enough stake in it yet to bother to micromanage every aspect of its development. Finding the most elegant code to get from point A to point B involves a lot of the same kind of thinking as hammering out the database scheme.

As you know, Filemaker is not really a serious solution for the type of problems that usually need solving in business applications. Not that you can't do anything useful with it, but you can't do anything useful that will last and grow gracefully. Definitely learn SQL. MySQL is utter shite, think PostgreSQL, MSSQL, Oracle, DB2, Firebird, or anything else with a good number of google results that's not MySQL. With experience in a real RDMS you start to open up the possibility of getting a purely database-oriented job, but I kind of doubt you'd get hired in that capacity in the short-term.

Some web programming experience will make your odds a lot better. I hate PHP almost as much as I hate MySQL, but can't discount it outright since there really are a lot of positions that call for it. Better choices from my perspective are C#, Python, Ruby, or Java. In some cases here this is tied to your choice of RDMS: MSSQL jobs will almost certainly want C#, Oracle will typically want Java, PostgreSQL is nice with Python or Ruby because you can easily write stored procedures with them.

That's all I got on the practical stuff... as for whether it's really interesting? No, not really. You'll quickly reach a point with SQL where you can write queries to get data in any form you want off the top of your head. Sometimes clients will ask for something that will be engaging to implement only because it was too insane to ever occur to your during the design phase, but how fun that is depends on how busy you are with other things. Profiling queries for performance is basically rote: run the analyze tool, rewrite the slow part, run again, ad nasueum. Very rarely you'll want to denormalize something for performance (I'm told, I haven't had the opportunity yet). I think that might be fun. Making the scheme in the first place is also pretty blah because the principles of normalization point you to a very specific architecture for any given application.
posted by moift at 9:30 PM on September 25, 2007 [1 favorite]

my impression of dba work is that it's not so glamorous. you're not the programmer, nor generally the lead designer, so your designs will largely be off of a spec rather than from your head (which sounds like the interesting part for you).

my impression is also that there is a sort of strange tension in dba work. programmers can (and often do) the same stuff as dbas, which means dba work generally comes only in large organizations with lots of delegation. there's a bit of IT that goes into it as well, as it's not uncommon for dbas to be in charge of replication, backups, and the like.

i use php everyday for work, and i enjoy it, but i'm a programmer. you get to know the ins and outs of a language with experience, and there are quite a few for php (as there are for most languages used on the web). it's tough, but if you are passionate about programming, then i'm confident you can do well.

good luck, whatever you do choose.
posted by moz at 9:52 PM on September 25, 2007

You also might want to consider Microsoft SQL Server 2000 (or 2005 I guess). It's pretty popular in mid-rage environments, and increasingly on the lower end as well. You can also get a free developers version for windows.

I've never used Oracle, but I've worked with Access, PostgreSQL, MySQL and MS-SQL server. They're all very similar.

-- Is there a career path aside from years of entry-level work followed by slowly collecting new job titles? Can I teach myself and hope to work before I'm 50?

You would definitely need to go back to school, but you might not need a whole four years.

But there is a whole "lower rung" of IT work that, IMO, sucks ass.
posted by delmoi at 10:13 PM on September 25, 2007

Nothing much to add at this point, except to repeat the recommendation not to start with MySQL. PostgreSQL is a good choice, and MS SQL Server is also good (and pretty easy to get started with without worrying about administrative details). Oracle is good, but you have to worry more about administration, and DB2 is fundamentally sound, but it can be a total pain in the ass, so I wouldn't recommend starting with it.
posted by klausness at 3:38 AM on September 26, 2007

Vacapinta has already mentioned a download link for Oracle, and I just want to highlight Oracle Express, the entry-level, free version of Oracle. People who have installed it found it easy to use.
posted by of strange foe at 8:56 AM on September 26, 2007

« Older Why did I waste my youth pulling the sides off...   |   Sleeper train from Cairo to Luxor Newer »
This thread is closed to new comments.