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?"
Re:Oracle is overrated (Score:2, Insightful)
RTFM.
Re:Oracle is overrated (Score:1)
Like "start with the one titled 'Database Concepts'", e.g.
Re:Oracle is overrated (Score:4, Funny)
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.
Not for geospatial data, it isn't (Score:2)
Actually, no. He said in his post that he was primarily interested in geospatial data. Oracle's Spatial option is designed specifically for data like this.
Plus, geospatial data often means huge databases. Oracle's ability to scale is much higher than MySQL's.
oracle classes (Score:1, Insightful)
MySQL speaks OpenGIS (Score:1, Offtopic)
Re:MySQL speaks OpenGIS (Score:2)
Re:MySQL speaks OpenGIS (Score:1, Offtopic)
PostgreSQL (Score:5, Informative)
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...
Re:MySQL speaks OpenGIS (Score:2)
Re:MySQL speaks OpenGIS (Score:1)
Tried Amazon? (Score:4, Informative)
Oracle Beginner's Guides [amazon.com]
Where to start? Where are you starting? (Score:3, Informative)
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.
Re:Where to start? Where are you starting? (Score:1, Insightful)
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]
Re:Where to start? Where are you starting? (Score:4, Informative)
Re:Where to start? Where are you starting? (Score:2)
You do not need to use a trigger for this, although you do need to use a sequen
Re:Where to start? Where are you starting? (Score:1)
Duh.
Re:Where to start? Where are you starting? (Score:2, Informative)
Even with max(id)+1 this is wrong. There are reasons databases provide ID generation primitives. One of the biggest is guaranteeing that an id given to a client is unique for that primitive.
Re:Where to start? Where are you starting? (Score:1)
Re:Where to start? Where are you starting? (Score:5, Informative)
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:
Re:Where to start? Where are you starting? (Score:2)
Re:Where to start? Where are you starting? (Score:2)
Re:Where to start? Where are you starting? (Score:2)
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:
Connect scott/tiger (Score:1)
Re:Connect scott/tiger (Score:1)
You should read Oracle's free e-book entitled
Oracle 10 day DBA. Every major release of Oracle has a version. It is a very good starting point.
Re:Connect scott/tiger (Score:1)
Re:The best place to start ... (Score:4, Insightful)
Maybe the best place for you, but to assume that MySQL is the best DB for everyone is just plain short-sighted.
If you must be a dick about it... (Score:1)
Re:If you must be a dick about it... (Score:2)
To many other people, however, freedom (in the sense of what? being able to read the source code?) is not the only, or even the most valid business criterion for selecting a database platform.
Feature set, scalability, high availability, performance on large data sets, and availability of both vendor support and a pool of employees experienced in the software are other things that go into making a platform decision.
Re:If you must be a dick about it... (Score:1)
OTAH, is YOUR food more important than YOUR freedom?, that's sad.
Re:The best place to start ... (Score:2)
And it's the best place to stay.
Only on slashdot would you see such a ridiculous comment...
Having worked with just about every RDBMS out there (including Oracle 7 - 10g) I can tell you that the reason Oracle has a well deserved reputation for being a behemoth is not so much its diversion from other platforms but because of its complete lack of decent management tools compared to other vendors. Every RDBMS is a behemoth if you are trying to manage it from a command line but pretty much all other ven
Re:The best place to start ... (Score:1)
i'm down w/ OSS but there is a time and a place for everything... and the truth is, most often (note: i didn't say always), there is not a place for OSS in the business world.
businesses want something that (1) works and (2) has a phone number they can call and bitch people out when that POS software doesn't work like that SOB liar salesmen said it would.
Re:The best place to start ... (Score:1)
We are 50% VoIP, 50% FWTs (Cellphone adapters). I Build our PBX and our Billing plataform.
Our Software PBX is based on Slackware + Asterisk + GnuGK + MySQL. Our Billing plataform is MySQL + Perl.
We are currently managing arround 1.750.000 minutes per month.
My Idealism is not just idealism, i put it in practice, and it works.
Re:The best place to start ... (Score:1)
Re:The best place to start ... (Score:1)
Ask Tom (Score:4, Insightful)
He also runs a web site that has been very useful to me as well.
Re:Ask Tom (Score:2, Informative)
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)
Serious Question for "ackdesha". (Score:2)
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
Re:Serious Question for "ackdesha". (Score:2, Interesting)
Whew - you had me scared there for a moment... (Score:2)
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.
Okay, the "playing bass in a band and sleeping on strange people's floors" provides much better context.
And I had wondered why a physics major would have been "lucky" to get a job as a database gearhead in 1997, at the very nascence of the great dot-com bubble.
But now it all makes sense.
Re:Whew - you had me scared there for a moment... (Score:1)
Re:Serious Question for "ackdesha". (Score:2)
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
Two areas to look at (Score:4, Insightful)
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.
Re:Wimp... (Score:1)
Learn standard SQL first (Score:3, Informative)
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)
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.
oreilly has a large catalog of oracle titles (Score:3, Informative)
Caution - O'Reilly's tuning advice has ... issues (Score:3, Informative)
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
Free Online Oracle 2 Day DBA Course (Score:3, Informative)
A good read after dealing with oracle... (Score:1)
Relational database theory (Score:2)
Pro Oracle Spatial (Score:2, Informative)
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.
Hope this is helpful... (Score:3, Informative)
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)
Re:Hope this is helpful... (Score:2)
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)
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
Re:OP: Some guidance (Score:2)
My theory is it slipped into the system, and it's unfortunately stuck. Talk about legacy code...
Wanted: SQL techniques and reference (Score:1)
Re:Wanted: SQL techniques and reference (Score:1)
Re:Wanted: SQL techniques and reference (Score:1)
Re:Wanted: SQL techniques and reference (Score:2)
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 (
Re:Wanted: SQL techniques and reference (Score:1)
I find the Oracle's heirarchical structures significantly simpler than the ANSI standard, which reminds me a lot of the MODEL stuff that Oracle introduced in 9i.
Where to start: (Score:4, Insightful)
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?
Re:Where to start: (Score:2)
Without any doubt... (Score:2, Insightful)
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
SQL for Web Nerds (Score:1)
Mastering Oracle SQL (Score:2)
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)
Kyte, Gruber, manuals (Score:2)
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.
Re:Kyte, Gruber, manuals (Score:1)
sqlplus is annoying. One free substitute that works much better (at least on unix) is Henplus.
Make them train you (Score:2)
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)
This is where everybody starts !
Some links for you (Score:2, Informative)
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
from nowhere to leader? (Score:1)
I'm guessing.... (Score:2)
http://gis.esri.com/esripress/display/index.cfm?f
A google search on geodatabases turns up a number of similar resources.
First of all (Score:1)
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.
Oracle certification sequences (Score:2)