Frequently Asked Questions
QUESTION :What are the major Components in an RDBMS ?
This describes the three major Components which make up the run-time processes.
1) The Database Server.
This takes the SQL, decides how to execute it, with a
sub-Component called the Query Optimiser, and produces a
Query Execution Plan.
It is possible to have many Database Server processes running
simultaneously, with each one tailored to a particular
kind of "SQL Query". I used to work as a DBA for Salomon, Smith Barney
supporting databases for Florida,England and Germany running on the
same UNIX box. I always had three Servers running, one for each location,
so that I could provide high-priority,high-CPU percentage,high-memory allocation
for the very demanding real-time applications,and lower-priority
for background batch jobs. It also allowed me to handle each database
independently, and bring down the server for England without affecting the
Servers and the Databases for Florida and Germany.
2) An Archive Process.
This writes completed Transactions onto a Journal or History File and
deletes them from the Log File. This is done to avoid the Log File getting
filled up because then everything fails and the Servers have to be brought
down to recover. This is an embarrassing process. The worst part is that
as the DBA, you often do not know that the Archive process is not running
until the Log File fills up, no more transactions can start, everybody's program
hangs and the phone rings off the hook. I also worked as a DBA at J.P.Morgan
where the user were just as demanding as Salomon, Smith Barney, so I created
some UNIX daemons which ran all the time and would notify me automatically
if the Archive process was not running. This was in the situation where the
normal messages from starting up the Database Server would not make it clear
whether the Archive process had started correctly.
3) A Recovery Process.
The Recovery Process handles the situations where is there is a Database crash
and it recovers to the last known point at which the Database was running OK and
had 'integrity'. In other words, all the data representing a consistent set of
related records had been written to the Database at the end of a committed Transaction,
with no open Transactions.