05.11.2015 Views

Apress.Expert.Oracle.Database.Architecture.9i.and.10g.Programming.Techniques.and.Solutions.Sep.2005

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 1 ■ DEVELOPING SUCCESSFUL ORACLE APPLICATIONS 47<br />

Summary<br />

In this chapter, we have taken a somewhat anecdotal look at why you need to know the database.<br />

The examples I gave throughout are not isolated—they happen every day, day in <strong>and</strong> day<br />

out. I observe a continuous cycle of these sorts of issues happening.<br />

Let’s quickly recap the key points. If you are developing with <strong>Oracle</strong>,<br />

• You need to underst<strong>and</strong> the <strong>Oracle</strong> architecture. You don’t have to know it so well that<br />

you are able to rewrite the server if you want, but you should know it well enough that<br />

you are aware of the implications of using a particular feature.<br />

• You need to underst<strong>and</strong> the locking <strong>and</strong> concurrency control features, <strong>and</strong> that every<br />

database implements them differently. If you don’t, your database will give “wrong”<br />

answers <strong>and</strong> you will have large contention issues, leading to poor performance.<br />

• Do not treat the database as a black box—that is, something you need not underst<strong>and</strong>.<br />

The database is the most critical piece of most applications. Trying to ignore it would<br />

be fatal.<br />

• Solve problems as simply as possible, using as much of <strong>Oracle</strong>’s built-in functionality as<br />

possible. You paid a lot for it.<br />

• Software projects come <strong>and</strong> go, <strong>and</strong> programming languages <strong>and</strong> frameworks come<br />

<strong>and</strong> go. We developers are expected to have systems up <strong>and</strong> running in weeks, maybe<br />

months, <strong>and</strong> then move on to the next problem. If you reinvent the wheel, you will<br />

never come close to keeping up with the frantic pace of development. Just as you would<br />

never build your own hash table class in Java—since Java comes with one—you should<br />

use the database functionality you have at your disposal. The first step to being able to<br />

do that, of course, is to underst<strong>and</strong> what it is you have at your disposal. I’ve seen more<br />

than one development team get in trouble, not only technically but also on a personal<br />

level, due to a lack of awareness of what <strong>Oracle</strong> provides for free.<br />

• And building on that last point—software projects come <strong>and</strong> go, programming languages<br />

come <strong>and</strong> go—but the data is here forever. We build applications that use data,<br />

<strong>and</strong> that data will be used by many applications over time. It is not about the application—it<br />

is about the data. Use techniques <strong>and</strong> implementations that permit the data to<br />

be used <strong>and</strong> reused. If you use the database as a bit bucket, making it so that all access<br />

to any data must come through your application, you have missed the point. You cannot<br />

ad hoc query your application. You cannot build a new application on top of your<br />

old application. But if you use the database, you’ll find adding new applications,<br />

reports, or whatever to be much easier over time.<br />

So, with those points in mind, let’s continue.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!