Slashdot Mirror


Oracle Beginnings - Where to Start?

Scalli0n asks: "I'm a programmer with a solid computer science background, but I'd like to know where I should start with the behemoth that is Oracle - my bosses tell me that I need to learn it to store geodatabases (since I work with geospatial intelligence) and I have no clue where to start since nobody can even tell me of a good beginners book - any suggestions?"

5 of 102 comments (clear)

  1. Tried Amazon? by mrobinso · · Score: 4, Informative
    --
    -- Karma whore? You betcha. --
  2. for what it's worth by ackdesha · · Score: 5, Informative

    About 8 years ago I was in a similar spot. Fresh out of college with a physics degree, I was lucky enough to be hired into a good situation using Oracle everyday to manage a large pharm. corp's marketing DB. I had little programming experience, and no unix or DB experience, and had to get up to speed quickly. I haven't touched Oracle in several years, but my advice is to not only read as much of the Oracle manuals as you can stomach, but also pick a language like perl or python to cozy up to. A lot of the tasks you'll need to do are best handled with gnu unix utilities and scripting. Ask other people to review your schema designs. Avoid application programming at the DB level (PL/SQL). Take advantage of subqueries and hints and find a good system to analyze the query cost and tune your SQL (some used toad, i didn't). Looking at my bookshelf it looks like I wore out "Oracle Performance Tuning and Optimization" by Edward Whalen, and "Oracle8 HOW-TO" by Honour, Dalberth, Kaplan. These are probably really outdated by now, but look for something like a cookbook approach to suppliment the official manual. Hope that helps some. Cheers.

  3. Re:Oracle is overrated by mrobinso · · Score: 4, Funny
    Well, the question starts off with "I'm a programmer with a solid computer science background...", so I'm assuming we're dealing with a reasonably intelligent creature with a university education, since computer science starts there.

    One can safely assume then that the user is reasonable intelligent and could discern from the manual titles or chapters where to start. For example, I would think that a beginner would want to start with Chapter 1, or a manual titled "Getting Started". Something like that.

    If a beginner starts off with "Triggers, Stored Procedures, & Advanced Normalization Theory", well then, going back to the solid computer science background, I assume he or she is familiar with terms like "chomp", "bitten squarely on the ass", "pebkac", and "you're fired".

    I was certainly tempted to point the questioner to both mysql and postgresql (ahem, in no particular order), and also ask if his bosses were qualified to single out Oracle to exclusion of other less costly and better documented products, and whether or not the logic behind that decision was questioned. My first duty as the point person in my outfit's IT strategy is help them refrain from making stupid decisions, not read manuals to learn how to cope with them.

    Frankly, if he's going to hit the ground running with Oracle, with little or no experience, the manual I would be most inclined to point him to is "How To Write An Effective Resume". All hell is certainly about to break loose.

    --
    -- Karma whore? You betcha. --
  4. Re:Where to start? Where are you starting? by abulafia · · Score: 5, Informative
    That's pretty much the essence of Oracle, really- it's very flexible and powerful, but kind of a pain in the ass to use.

    This is the best summary of Oracle ever. Very true.

    I've been working with Oracle on and off since v.7.3 (ca. 1996 or so). Which is sort of a worst-case - if you use it quite a bit, you start to feel comfortable, then leave it alone for a while and forget all the dumb little workarounds and tricks.

    For whatever it is worth, my advice is:

    • Start keeping a directory of files with snippets of plsql/sql/series of steps of how you did something. If you have OCD like me, you can even make these executable scripts and everything. If you're a child of the modern world, you might instead use a wiki or something. The important thing is to keep a log of some sort - you will want to refer back to it.
    • Remember to google. Whenever you run in to a problem, I promise you someone else has been there before, and talked about it online. Get used to searching around.
    • Become comfortable with the error codes. They suck, but in their own demented way, do actually help. It takes time to learn what they're actually telling you, which is usually different than what they say
    • Whether or not you're concerned with optimization (and you will be, at some point), get comfortable with explain and tkprof. Wrapping your head around how the optimizer works gives a fair amount of insight that is generally useful.
    • Don't be afraid of plsql. It sometimes feels as if you're building a house in the dark or something, but there's a lot of value in it. I know several folks who draw a hard line here - "well, I can use it like a DB, but programming in it is not what I do". They miss out on a lot of the value of Oracle.
    • Make sure you're comfortable with sqlplus. The Quest tools are great, and vastly improve productivity, but the time will come when you need to muck around with the v$ and dba_whatever tables, or have to manually reset a sequence, or something, and making sure you can handle sqlplus (and selecting out the twisted joins required to get anything useful out of said tables) is invaluble. I am not making this up: last time I had a full time job, I got a promotion out of the fact that I was the only one in engineering who was able to use it to diagnose a weird logic problem. (Well, there were other factors, but a high-pressure situation when you can ask and get answers from the DB and nobody else can looks impressive. I have not yet tried this technique with the ladies.)
    • And all the general database tips: if you aren't already good at design, learn, learn, learn. Don't ignore the theory: if you don't know the difference between third-normal and Boyce-Codd, go learn it. Don't just read: make test DBs in each form, and build test cases in each one. Make sure you understand at least the basics of set theory. I'm not kidding - folks will tell you it doesn't matter, but the difference between a competent DB developer and a great one is frequently a deep understanding of theory. Being in a line of work that exposes me to designs done by a lot of other people, I can tell a surprising amount about their knowledge and work habits by looking at how they build DBs.
    Anyway. That ended up being kind of a random brain dump. Hope something was useful.
    --
    I forget what 8 was for.
  5. PostgreSQL by commanderfoxtrot · · Score: 4, Informative

    I thought PostgreSQL's OpenGIS was far better than MySQL's; this certainly used to be the case - has it changed?

    Just to get more back on topic, PostgreSQL has excellent Oracle SQL compliance, so it's probably a good DB to play with to bring you up to speed. I know I always felt a little bit concerned learning DB2 on the actual mainframe...

    --
    http://blog.grcm.net/