You are on page 1of 30

IT - 357

Case Study
Oracle

Contents

Startup & Shutdown


Processes
Memory
Storage
File
Indexes

Transaction Control
Application Development

Startup & Shutdown


An Oracle database is not available to users until the
Oracle DBA server is made available to the users
Start an instance of the Oracle server
Mount the database
Open the database

Oracle uses the initialization file init.ora for the initial


database configuration

The amount of memory to allocate


The names of control files
Various limits (Eg: SQL, Work Area Buffer limits)
Other system parameters (Eg: Default optimization for SQL)

Closing the database would be in the reverse order of


Startup

How Oracle DB is Opened


Startup Oracle Instance
Read the init.ora file.
Create SGA (System Global Area)
Create Background Processes

Database is Mounted
Open the control file
Get the data files and Redo Log files
Associate (Data Data Files) to the Instance

Open the Database: Opening a DB makes it


available for normal database operations
Oracle opens the online Datafiles and online Redo
Log files

Processes
Processes
Serving User Requests
Writing data to Data Files
Recording Transactions in Log Files
Monitoring the Functioning of the Database

Oracle Processes

Note: Multiple Users logged into the same


instance and accessing the same SGA

Oracle Processes
User Process: Serving Users (Sessions)
Server Process: SQL process, Read data,
Return results
Background Processes:

Database Writer (DBW0)


Log Writer (LGWR)
Archiver (ARC0)
System Monitor (SMON)
Process Monitor (PMON)
Recoverer (RECO-Mostly for Distributed Databases)

Oracle Processes (Another View)

Memory
Memory
System Global Area (SGA) (Heart of
Oracle)
Oracle Processes

Program Global Area (PGA) (Data and


Control information for Server Process)
SQL Work Area (Sort, Sort, Hash Operations)
Private Work Area (User Specific)

Oracle Memory SGA/PGA

When multiple users are concurrently connected to


the same instance, then the data in the instances
SGA is shared among the users.

Oracle Memory - SGA


Buffer Cache: Copies of data blocks read from
datafiles
Redo Log Buffer: Holds information about
changes made to the database (Used in
Recovery)
Shared Pool: Catalog/Library Area, SQL Areas
Large Pool: I/O Server Processes,
Backup/Recovery, Parallel Execution
Java Pool: Java Virtual Machine Code and Data

Oracle Memory - PGA


Private SQL Area:
SQL Code issued by Users or Programs

Session Memory:
Memory allocated to User Program Code

SQL Work Area:


User Data from the result of user Queries (SQL)
Used for Sorting/Hashing

Database Components (Theoretical)

Permanent Storage
Storage
Data Files (data content)
Online Redo Log Files (online backup)
Archive Log Files (archived backup files)
Initialization Files init.ora
Control Files (smooth database operation)
SGA Definition Files (memory definition)
Oracle Processing Log and Error Files
(monitor, debug)

Oracle Data Files

Each database is logically divided into one or more tablespaces


One or more datafiles are explicitly created for each tablespace to
physically store the data of all logical structures in a tablespace.
USERS Tablespace: Users tables, indexes and other objects
SYSTEM Tablespace: Oracle system related tables and Catalog
(metadata)
Files would contain Blocks - DB_BLOCK_SIZE parameter can be
set in Oracle. The value of this parameter must be a multiple of the
physical block size at the device level (operating system level).

File Storage Block

File Storage Blocks


The Oracle Database data block format is similar
regardless of whether the data block contains
table, index, or clustered data.
Oracle Data Block contains the following:

Header
Table Directory
Row Directory
Row Data
Free Space

File Storage Blocks


Header:

The header contains general block information,


The block address
Type of segment (for example, data or index)
Transaction history

Table Directory:
This portion of the data block contains information
about the table having rows in this block.
Data from more than one table may be stored in one
Block

Row Directory:
Contains information about the actual rows in the
block
Arrays of pointers where the row is located within the
Block (ROWIDs)

File Storage Blocks


Overhead (Header, Table and Row
Directory):
The data block header, table directory, and
row directory are referred to collectively
as overhead.

Free Space:
Free space is allocated for insertion of new
rows and for updates to rows that require
additional space (for example, when a trailing
null is updated to a non-null value)

File Storage Blocks


Row Data:
This portion of the data block contains table or
index data. Rows can span blocks.

NULLs: To conserve space, a null in a


column only stores the column length
(zero). Oracle does not store data for the
null column.

Oracle B Plus Tree

Cost of Disk Access (Older Sem)


Search: Start at root; use key comparisons to get
to leaf.
Cost = log F N
F = Fanout (# Pointers/node) = Order of the Node
N = # Leaf Nodes

Essentially the Height of the tree = Number of


nodes to be traversed in a path from the root to
a leaf node

Search using Index (Older Sem)

Example: Given the following data file EMPLOYEE(NAME, SSN,


ADDRESS, JOB, SAL, ... )
Given:
A record size R = 150 bytes
block size B = 512 bytes r = 30,000 records. Blocks are
unspanned
We get:
Blocking factor Bfr= B div R= 512 div 150= 3 records/block
Number of file blocks b= (r/Bfr)= (30,000/3)= 10,000 blocks
Average linear search cost of:
(b/2)= 10,000/2= 5,000 block accesses
If the file records are ordered, the binary search cost would be:
log2b= log210,000= 14 block accesses
For an index on the SSN field, assume the field size VSSN=9 bytes,
assume the record pointer size PR=7 bytes. Then:
index entry size RI=(VSSN+ PR)=(9+7)=16 bytes
index blocking factor BfrI= B div RI= 512 div 16= 32 entries/block
number of index blocks b= (r/ BfrI)= (30,000/32)= 938 blocks
binary search needs log2b= log2938= 10 block accesses

Oracle - SQL Processing


Parse
Translating a SQL statement, verifying it to be a valid
statement
Performing data dictionary lookups to check table and
column definitions
Acquiring parse locks on required objects so that their
definitions do not change during the statement's parsing
Checking privileges to access referenced schema
objects
Determining the optimal execution plan for the statement
Loading it into a shared SQL area
For distributed statements, routing all or part of the
statement to remote nodes that contain referenced data

Oracle - SQL Processing

Query Processing
Stage 3: Describe Results
Stage 4: Defining Output
Stage 5: Bind Any Variables
Stage 6: Execute the Statement
Stage 7: Parallelize the Statement
Stage 8: Fetch Rows of a Query Result

Transaction Management Commands


COMMIT: Commits all the changes which
has been done, to the Disk (Permanent)
ROLLBACK: Reverts all the changes
which has been done.

Read Consistency

Statement Level
Read Consistency

As data blocks are read on behalf of a query, the blocks


which have not been written to the disk need to be
queried. Only when the data is committed (written) to
the disk, then the modified data can be read.

Design Of Applications
Entity Relationship (E-R) Diagram
Convert E-R Diagram to Schema Diagram
Validate and refine the Schema Diagram using
Functional Dependencies and Normalization
Create the Physical Schema using Data
Definition languages (DDL)
Create additional objects (such as Indexes,
Views, Constraints, Triggers, Procedures etc)
depending upon the applications.

Normalization

Normalization: The process of decomposing unsatisfactory "bad" relations by


breaking up their attributes into smaller relations
Normal form: Condition using keys and FDs of a relation to certify whether a relation
schema is in a particular normal form
Normal Forms:

1st NF:
NO Composite attributes
NO Multi-valued attributes

2nd NF:
Every non-prime attribute A in R is fully functionally dependent on
the primary key

3rd NF:
The Relation should be in 2NF and no non-prime attribute A in R is
transitively dependent on the primary key
Informally speaking: Every non-key attribute must depend on the
whole key, and nothing but the key

BCNF:
Stricter form of 3NF

References
Oracle Documentation
http://docs.oracle.com/cd/B28359_01/serv
er.111/b28318/toc.htm
Processes:
http://docs.oracle.com/cd/B28359_01/server.111/b28318/process.htm
Memory (Primary & Secondary):
http://docs.oracle.com/cd/B28359_01/server.111/b28318/memory.htm
http://docs.oracle.com/cd/B28359_01/server.111/b28318/physical.htm
Transaction Management:
http://docs.oracle.com/cd/B28359_01/server.111/b28318/transact.htm

You might also like