|
Database Independence?
Altough it seems like two nice words, Author asks his question Can we write
database independent Applications? Do we need this? At the top of the section
he immediately answers: If you want to do such thing you should have execellent
knowledge about all databases and if you have such good knowledge you will never
want to intend such concept. I solve this pradox. He simply answers.
<<Database independence?
>>No!
Rest of the section he gives examples and proves his answer and urges us thinks
exactly the same.
If you move your Application from database A to database B it should work here
exactly the same or higher performance.(It is not same thing like witing Platform
Independent Applications)
As it is known Oracle supports row level Locking and suppoorts non-blocking reads
and Let's compare it with databse that supports blocking-reads(ie:when it is writing)
it blocks reads.
In a blocking read system you can block reader while using database trigger.But for
Oracle if you do not use FOR UPDATE clause you cannot serialize the insertions.(By the
way in the first (blocking read) deadlock may occur if both insertion comes at the same
instant since both writers will block each other.)
Therefore immediate results are:
* Databases are different. Experience in one will in part carry over to another but you
must be ready for some fundamental differences as well as some very minor
differences.
* Minor differences (such as treatment of Nulls) can have as big an impact as
fundamental differences (such as concurrency control mechanism).
* Being aware of the database and how it works and how its features are implemented is
the only way to overcome these issues.
|