Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Databases Programming Software Books Education Media IT

Oracle Beginnings - Where to Start? 102

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?"
This discussion has been archived. No new comments can be posted.

Oracle Beginnings - Where to Start?

Comments Filter:
  • oracle classes (Score:1, Insightful)

    by Bluntzilla ( 898192 )
    i would suggest seeing if your companmy will send you to a user confrence or some classes for a couple g's
  • by jamie ( 78724 )
    Just checking, your bosses know MySQL supports OpenGIS [mysql.com], right?
    • Just checking, but does it really matter? He asked a question, and I doubt he has the ability to come in and say, "Hey, use this open source database instead." Sometimes people need to use closed source software, and have to learn how to use it. Answer his question or keep your mouth shut.
    • PostgreSQL (Score:5, Informative)

      by commanderfoxtrot ( 115784 ) on Saturday September 17, 2005 @05:07PM (#13586527) Homepage
      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...
    • He asked for help with Oracle, because apparently that is what his organization wants him to use. He didn't ask for OSS alternatives to Oracle. Which by the way Oracle still is far and away a better rdms than MySQL.
    • Because the main player in the GIS arena has oracle as its main platform.
  • Tried Amazon? (Score:4, Informative)

    by mrobinso ( 456353 ) on Saturday September 17, 2005 @10:50AM (#13584530) Homepage
    Here you go:

    Oracle Beginner's Guides [amazon.com]

  • by Praetorian42 ( 248627 ) on Saturday September 17, 2005 @10:55AM (#13584561) Homepage
    This is another one of those classic "We need more Info" Ask Slashdot's.

    Do you mean that you don't even know SQL, and you need to start from the ground up for everything? Do you know SQL and have a decent background in MySQL? How about Postgres? I'm going to assume that you have some SQL knowledge, it's just you need to know about Oracle itself.

    Learning Oracle is no different than any other technology, really. When I started my current job a little over a year ago, I had no clue about Oracle, I just discovered new features as I needed them. I was in a shared office with 2 oracle DBAs, and so there was quite a bit of communal learning there. Anyways, one of our DBAs left last month, and I've since been "promoted" to programmer/DBA. Oracle isn't really so much a behemoth (I learned enough to become a half-DBA in about a year), but it does have quite a few quirks that can leave your head scratching if you're used to some other RDBMS's.

    First, if you're going to do anything interesting, you are (unfortunately) going to have to learn PL/SQL. PL/SQL is a big pain in the ass. Dynamic SQL is a pretty powerful tool (Feature?), but the way it is implemented with PL/SQL and Oracle is clumsy at best, and debugging is nearly impossible by any conventional means. Implementation for triggers and stored procedures is a bit more straightforward once you get used to the syntax.

    Triggers are pretty important- if you're used to auto_increment fields in MySQL, in order to do it with Oracle (at least 9i.. I don't know much about 10g), you need to create a sequence, and then a trigger which will pull the next value out of the sequence and put it into the field (if it's null). While you have much more flexibility this way, it takes about 5 minutes to do something which would take a half-second in MySQL. 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.

    But once you get used to it, it's not all that bad. Oracle has some pretty impressive query/table optimization tools, and if you spend the time on it, you can get most everything running incredibly fast.

    Oh, and if you run windows, get TOAD (or TOra for *nix), and it will help you cheat with most of this stuff. For TOAD at least, if you do anything the WYSIWYG way, you can always look at the SQL to see what the hell it is actually doing, which is a pretty decent way to learn.
    • by Anonymous Coward

      The parent post exemplifies the problem with asking for technical advice on slashdot. It's mostly on target but contains just enough misinformation (for example, the part about using triggers to emulate MySQL's auto_increment [you definitely don't want to use a trigger for that]) to be dangerous. Instead of listening to people on slashdot, pick up some of the better Oracle books:

      Effective Oracle by Design [amazon.com]

      Expert Oracle [amazon.com]

      Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Soluti [amazon.com]

    • by MagicM ( 85041 ) on Saturday September 17, 2005 @02:53PM (#13585884)
      Instead of Toad, I would recommend PL/SQL Developer [allroundautomations.com].
    • Triggers are pretty important- if you're used to auto_increment fields in MySQL, in order to do it with Oracle (at least 9i.. I don't know much about 10g), you need to create a sequence, and then a trigger which will pull the next value out of the sequence and put it into the field (if it's null). While you have much more flexibility this way, it takes about 5 minutes to do something which would take a half-second in MySQL.

      You do not need to use a trigger for this, although you do need to use a sequen

    • by abulafia ( 7826 ) on Saturday September 17, 2005 @03:34PM (#13586099)
      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.
      • 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.
    • Actually, I quite like PL/SQL - it's an _awful_ lot like Ada. (Admittedly getting it to give you output can be a pain.) To come to grips with its idiosyncrasies, read anything by Stephen Feuerstein.
    • This is another one of those classic "We need more Info" Ask Slashdot's.

      No, this is nowhere near the classic "we need more info" ask slashdot. If you want to win the classic crown, it has to read more like this:

      Hi. (As will soon become obvious) I don't know anything about the subject matter, I haven't done any investigation (not even a google search...), I'm not sure (1) exactly what I need it for or (2) how large scale it needs to be, or (3) how fast it needs to be, or (4) what it will be h

  • Perhaps you should hire an experienced DBA.

  • Ask Tom (Score:4, Insightful)

    by the eric conspiracy ( 20178 ) on Saturday September 17, 2005 @11:06AM (#13584644)
    Tom Kyte is a sort of help Guru for the Oracle community. His book Effective Oracle by Design is excellent can contains a lot references to other material.

    He also runs a web site that has been very useful to me as well.

    • Re:Ask Tom (Score:2, Informative)

      by dshannon ( 704783 )
      Tom's website is at http://asktom.oracle.com/ [oracle.com]

      I've found it extremely useful for dealing with specific as well as general problems with Oracle.

      But in general, if you know one RDBMS, then until you need specific features it's not too hard - I taught myself with the aid of the manuals and some experimentation. HTH

      Dan
  • for what it's worth (Score:5, Informative)

    by ackdesha ( 572569 ) on Saturday September 17, 2005 @11:21AM (#13584734)
    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.

    • This is a serious question for ackdesha - not a spam or a troll or whatever.

      ackdesha, you wrote: 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.

      Again, not a troll, but a serious question: Wasn't this extraordinarily depressing - to have been a physics major and then immediately turn around and get dumped in a 9-5 doing DB work for a marketing department?

      I've had some incredibly depress

      • Fair enough. Actually, the chain of events went Physics degree -> playing bass in a band and sleeping on strange people's floors -> working at http://www.acxiom.com/ [acxiom.com] -> then moving on. So, I guess I needed some stability at the time. I considered continuing on with physics, but I really don't think I was cut out for it. I'm guessing most people don't stumble into a degree in physics, but I did somehow. At Acxiom I managed the marketing database for Schering-Plough for roughly 2 years and then
      • I'm in a similar situation. I'm doing my PhD in literature and philosophy - wrote my MA thesis on Freud and the Uncanny, and my dissertation would be on alternative economic models in utopian/science fiction and in the high tech industry (gift-economy for the geeks in the humanities - someone must tell them what's going on in their language).

        Anyhow, with my MA and doctorate (which I'll hopefully get in two years) I will be qualified to teach at a university. Only problem is that they don't throw tenures at

  • by richg74 ( 650636 ) on Saturday September 17, 2005 @11:21AM (#13584735) Homepage
    You didn't actually tell us whether you have any other data base experience. In general, when you're setting out to use an RDBMS (whether it's Oracle, DB/2, Sybase, PostgreSQL, whatever), there are two areas to tackle:
    1. A general understanding of how and why relational databases work.
    2. The specifics of how to use your particular platform.
    (To put it into a more purely programming context, you might think of the first as like what you might find in Knuth's Art of Computer Programming, and the second as like Kernighan & Ritchie's The C Programming Language.)

    It's been a while since I used Oracle, so I can't really give you any current recommendations for no. 2. (O'Reilly has some offerings in this category that, in their early editions, were pretty decent.) For no. 1, though, I suggest you pick up a copy of A Guide to the SQL Standard, by Chris Date and Hugh Darwen. Date is one of the "pioneers" of relational data bases, and this book is a good reference to the "why" of how they work.

  • by sobiloff ( 29859 ) on Saturday September 17, 2005 @11:45AM (#13584877)

    Oracle is, for the most part, a SQL-compliant database at its core. So, you'll want to get a good handle on basic SQL first, then you can sign up for the Oracle Technical Network to get access to the Oracle-specific documentation at <http://www.oracle.com/technology/documentation/da tabase10gr2.html [oracle.com]>. There are probably Oracle-specific commands that you will find useful for your specific geospatial data.

    When I learned SQL I used the book "The Practical SQL Handbook" by Bowman, Emerson and Darnovsky. It was very readable, used meaningful examples, and presented the topics in an appealing order. I've recommended it to two or three others during my career and they liked the book, too.

  • RBDMS (Score:3, Informative)

    by bleaknik ( 780571 ) <jamal@h@khan.gmail@com> on Saturday September 17, 2005 @11:49AM (#13584902) Homepage Journal
    There are several different options for relational databases, and despite what the slashdot community thinks, MySQL isn't necessarily the right one.

    Let's first assume that you're devoted to the Oracle [oracle.com] platform. Oracle has some nice advantages compared to some of the other RBDMS. It handles triggers very well, it supports a java based client for end user applications (programmed via PL/SQL), and it's damned fast (when it's setup up very well). Notably, you will need a dedicated Oracle server with pretty robust specs fi you want it to run well.

    Now, a brief comparison of other products in case you are not devoted to Oracle.

    Access is relatively cheap and easy to use if you're not going to be doing a lot concurrent operations on the DB.

    MySQL [mysql.com] is one of the most efficient databases I've worked with in terms of speed, assuming you've got a well normalized [wikipedia.org] database. You can also run MySQL from a nondedicated machine for quite some time before you need a dedicated box (your results may vary). MySQL does have some limitations, though.

    As best as I can tell, MS SQL Server runs pretty well, but seems like an oversized version of Access. This can be a good or a bad thing, depending on how you look at it. It does offer decent performance, an easy user interface, and it's a Microsoft product, which of course comes with positives and negatives.

    There's also IBM's DB2 platform which (last I used it) had a fast db engine, and a horribly slow front end.

    Wikipedia has a nice article that distinguishes between the different RDBMS [wikipedia.org] out there. If you haven't yet picked a platform, I would suggest that you start there.

    There are several things you can do, once you've picked a RDBMS, however, your best approach is to learn SQL. SQL is pretty standard amongst the DB engines, and if you can use it well, you'll be golden. This has been my favorite reference manual [barnesandnoble.com], although I must it admit if you're first learning SQL, the reading is quite dry. I would also recommend that you find a good resource for whichever database engine you end up using, because each of them has specific functions and keywords that you might need to look up from time to time.

    Finally, one last question, if you don't mind me asking... If you've got a computer science background, why don't you have a good basic understanding of RDBMS? I mean, when it comes down to it they're all basically the same. Maybe I'm wrong, but it makes me wonder...

    Consequentially, if you're boss is willing to hire me, I might just be looking for a job. :)
  • Here is a link to Learning Oracle [oreilly.com]. Here is a link to all of their oracle titles [oreilly.com].
    • The tuning advice given by the O'Reilly books is quite useful if and only if you are going to have a single user accessing the data.

      However, if you intend to allow multiple people to access the data at one time (i.e. a web site), then burn those books and start reading about performance tuning on Tom Kyte's website.

      The main problem in the O'Reilly books is that they completely ignore the effect of the queries on resources that are shared globally by all users on the database. In a perfect world, there wo

  • In my experience, you may find this book [amazon.com] helpful.
  • If you have trouble with concepts, rather than the specifics of how Oracle implements those, you might want to look at e.g. "C.J. Date, An Introduction to Database Systems". It's the "classic" in its field.
  • Pro Oracle Spatial (Score:2, Informative)

    by dicey ( 16889 )
    For the spatial extension in Oracle I'd recommend http://www.amazon.com/exec/obidos/tg/detail/-/1590 593839/102-1378503-5410527?v=glance [amazon.com]

    For the normal Oracle stuff, I'm sure there's 101 books out there that you could find useful depending on what angle you want to approach it from. Check out the documentation on the oracle site - also might be worth getting a login for Oracle's OTN and checkout the forums.
  • by tchuladdiass ( 174342 ) on Saturday September 17, 2005 @01:50PM (#13585593) Homepage
    Most of the Oracle programming books I've found start off either too heavy (assuming you already know a lot of oracle dba stuff), or too basic, where you still don't get the info you need.
    I came across one back a while ago that struck a perfect balance, at least for me, in that I was able to go from 0 Oracle experience to setting up tables and writting the app I needed for a work project within about a week. The book is at work, but I think it's "Oracle 9i Programming: A Primer" by Rajshekhar Sunderraman (at least, that's the one I found on Amazon, I think it's the same book I used, I'll double check on Monday at work and get back to you)
    • Ok, now that I've had a chance to retrieve this book, I can give you a bit more info on it.
      It starts off talking about the relational data model, then goes into using SQL Plus (Oracle's command line tool for interacting with the database). The 3rd chapter is all about embedded SQL, specifically putting Oracle SQL statements in C. The process here is you run your C code (with embedded SQL) through Oracle's ProC compiler (basically acts like a pre-processor), which outputs another C file that you then run t
  • OP: Some guidance (Score:3, Informative)

    by Glonoinha ( 587375 ) on Saturday September 17, 2005 @02:30PM (#13585798) Journal
    Contact the professor that is teaching the Boston University MET* CS_579 class L2 Database Management. His name is Ellis Cohen and he is a hard-core Oracle guy, has a full semester worth of studies in everything that is database and is very Oracle 10g centric. All his stuff is delivered in PowerPoint (yea, yea - but it works) and he has excellent homework exercises that walk you through every aspect of the engine, including all the fun freaky stuff.

    The class was one of the more difficult classes I have taken, but I came out of there on par with most of our DBAs (and more fluent in Oracle 10g than a few of them.)

    I honestly don't know how he will respond to you contacting him, but if you want to be an Oracle heavy, he can show you the way.

    * Metropolitan College
    • Does he know the history behind empty strings and NULL's in Oracle?

      My theory is it slipped into the system, and it's unfortunately stuck. Talk about legacy code...

  • I've been looking for a general Oracle SQL (not pl/sql) reference and intermediate and advanced SQL techniques. Maybe that would be 2 different books, but I like books that have thorough examples under each language or command topic. Any suggestions?
    • Yep, Effective Oracle by Design by Kyte as mentioned earlier - check out his website as mentioned earlier: asktom.com
      • It sounds like it has a lot of discussion on schema design and performance tuning. Usually for Oracle systems I don't have much say in the schema design and just want to know more SQL techniques and have a handy example-heavy reference.
        • Joe Celko's books would be a good place to start ("SQL For Smarties") for expanding your mind regarding SQL.

          But he writes all his queries using ANSI-standard syntax where possible. Oracle 10g (9.2) just seemed to join the modern ages to support ANSI join syntax as well.

          --typical Oracle left outer join syntax:
          Select a.name, b.*, c.*
          from table_a a, table_b b, table_c c
          where a.id = b.id (+) and b.id2 = c.id2 (+)

          --ANSI 89 left outer join syntax:
          Select a.name, b.*
          from table_a a
          LEFT OUTER JOIN table_b b (
  • Where to start: (Score:4, Insightful)

    by sakusha ( 441986 ) on Saturday September 17, 2005 @04:40PM (#13586405)
    At the beginning.

    I spent many years doing computer tutoring. I was quite successful with one strategy, sitting down with the client and saying, "Let's start on page 1 of the manual."

    Your Oracle software came with a manual, right?
  • the best place to start is to find a job where Oracle is NOT a requirement.

    I've been working with Oracle for the past year, and suffering every minute of it.

    They've constructed an RDBMS with AWESOME potential, but not only is the documentation generally aweful, the system itself is so unnecessarily complicated and, to quote Neal Stephenson, "crufty", that it takes a certain mentality to deal with the myriad little things that need tweaking and tuning (read Oracle SQL Statement Tuning if you don't believ
  • A good introduction to SQL databases with lots of Oracle-related examples is SQL for Web Nerds [greenspun.com].

  • I like Mastering Oracle SQL [oreilly.com] from O'Reilly. It assumes no previous familiarity with SQL.

    If you are looking to do stored procedures, it touches briefly on PL/SQL (Procedural Language/Structured Query Language), which an Oracle proprietary language, but does not explain it in depth.

    For SQL, and specifically explaining Oracle's quirks and proprietary functions, it is very good.
  • GIS is it? (Score:2, Interesting)

    by Strixy ( 753449 )
    Your applications may be different from those I've worked with (being that I am a geographer, not a programmer). When you mention geodatabases the first thing that popped into my head was GIS ( http://www.gis.com/ [gis.com] ). And my first solution was to recommend taking a night class twice a week and get your company to reimburse you upon succesful completion of the course. If GIS is what you are interested in interfacing with there should be a university in your area that will cover what you need to know. If not,
  • Get one of Tom Kyte's books. While none of them is exactly for beginners, you're also not fresh from college, are you?

    The above applies when you have some understanding of basic SQL already. If not, get Martin Gruber's classic book 'Understanding SQL'; it is so venerable that you'll have no trouble getting it via p2p or irc, too ;)

    Then, Oracle's own documentation supplied with the database server is well enough written, if somehow voluminous. Don't shy to look there.
  • If the company needs you trained up on Oracle, point out to them that Oracle has an excellent training program that will get you up to speed (and certified!) in just a few weeks. Their training has many paths and areas of focus---DBA, developer, etc. They even do specialty training on stuff like Oracle Spatial (their GIS specialty module)

    As you have pointed out, Oracle is a big 'un. If your company wants to entrust its data to it, they should entrust its care to an employee they've trained to use it.

  • www.LazyDBA.com (Score:1, Informative)

    by Anonymous Coward
    www.LazyDBA.com [lazydba.com]

    This is where everybody starts !

  • The Oracle Technology Network
    http://otn.oracle.com/ [oracle.com] - LOTS of FREE online books and tutorials.

    Ask 'Tom'
    http://asktom.oracle.com/ [oracle.com] - a place to go to ask questions and read FAQs ... but mostly the latter.

  • I'm guessing that your real question isn't how to use Oracle, but how to create a geodatabase. You might try "Designing Geodatabases: Case Studies in GIS Data Modeling"
    http://gis.esri.com/esripress/display/index.cfm?fu seaction=display&websiteID=85&moduleID=0/ [esri.com]

    A google search on geodatabases turns up a number of similar resources.
  • Go to technet.oracle.com and register. That will enable you to download Oracle's documentation.

    Read and understand the Concepts guide. It's important.

    Then read the Oracle Spatial User's Guide and Reference.

    After that, you should have some semblance of a clue. If you want good Oracle books, any of Tom Kyte's or Jonathan Lewis' would be a good place to start.
  • I think Oracle has put together pretty good lists of basic topics organized well in their certification sequences. Pick either the DBA or the developer one and start working the books (maybe even try and pass the exams). You will learn a lot and understand Oracle by the time you are certified.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...