You are on page 1of 46

Overview of Oracle Database

Lee, JeongKyu (jelee@bridgeport.edu)

Part 1. Introduction to Database System

Introduction to Database
History of RDBMS
Entity-Relationship Modeling
Database Language

Introduction to Database

File-Based Approach
Each program defines and manages its own data
Limitation

Separation and isolation of data

Duplication of data

Data dependence

Incompatibility of files

Fixed queries/proliferation of application program

Database Approach
A shared collection of logically related data, designed

to meet the information needs of an organization

Database Management System(DBMS)


A software system that enables users to define, create and

maintain the database and provides controlled access to


database
DDL
DML : procedural, non-procedural
Control : security, integrity, concurrency control,
recovery control, user-accessible catalog

Components of the DBMS Environment


Hardware - Software - Data - Procedures - People

Advantages of DBMS
- Control of data redundancy - Economy of scale
- Data consistency
- Balance of conflicting requirements
- More information from the same amount of data
- Sharing of data
- Improved data accessibility and responsiveness
- Improved data integrity
- Increased productivity
- Improved security
- Improved maintenance through data
independence
- Enforcement of standards
- Increased concurrency
- Improved backup and recovery services

Disadvantages of DBMS
- Complexity, Size, Cost of DBMSs, Additional H/W costs
- Cost of conversion, Performance, Higher impact of a failure

Three-Level Database Architecture


External Level
The users view of the database

Conceptual Level
The community view of the database

Internal Level
The physical representation of the database on the computer

Functions of a DBMS
1. Data storage, retrieval, and update
2. A user-accessible catalog
3. Transaction support
4. Concurrency control services
5. Recovery services
6. Authorization services
7. Support for data communication
8. Integrity services
9. Services to promote data independence
10. Utility services

Components of a DBMS
Programmers

Users

DBA

Application
Programs

Queries

Database
Schema

DML
preprocessor

Query
processor

DDL
compiler

Program
object code

Database
manager

Dictionary
manager

Access
methods

File
manager

System
buffers

Database and
system catalog

DBMS

Components of Database Manager


Authorization
control
Integrity
checker

Command
processor

Query
optimizer

Transaction
manager

Scheduler

Buffer
manager

Recovery
manager

Data
Manager

History of RDBMS

History of DBMS
1960s - Apollo moon-landing project, GUAM
mid 1960s - IMS by IBM (hierarchical DBMS)
mid 1960s - IDS by GE (network DBMS)
1965 - CODASYL(Conference on Data SYStems

Language)
1967 -DBTG(Data Base Task Group)
1970 - E.F.Codd of the IBM Research Lab.
Late 1970s - System R project at IBM
1980s - commercial relational DBMS(DB2, Oracle,

Informix..)
Now - OODBMS, ORDBMS

Terminology
Relation : a relation is a table with columns and rows
Attribute : an attribute is a named column of a relation
Domain : a domain is the set of allowable values for

one or more attributes


Tuple : a tuple is a row of a relation
Degree : the degree of a relation is the number of

attributes it contrains
Cardinality : the cardinality of a relation is the number

of tuples it contains
Relational database : a collection of normalized

relation

Properties of Relations
The relation has a name that is distinct from all other

relation names
Each cell of the relation contains exactly on atomic

value
Each attribute has a distinct name
The values of an attribute are all from the same domain
The order of attributes has no significance
Each tuple is distinct; there are no duplicate tuples
The order of tuples has no significance, theoretically

When is a DBMS Relational?


Foundational rules
Rule 0 : Foundational rule Rule 12 : Nonsubversion rule

Structural rules
Rule 1 : Information representation

Rule 6 : View updateing

Integrity rules
Rule 3 : Systematic treatment of null values

Rule 10 : Integrity independance

Data manipulation rules


Rule2 : Guaranteed access

Rule 4 : Dynamic online catalog based on the


relational model

Rule5 : Comprehensive data sublanguage

Rule7 : High-level insert, update, delete

Data independence rules


Rule8 : Physical data independence
Rule11 : Distribution independence

Rule 9 : Logical data independence

Entity-Relationship Modeling

Concepts of the E-R Modeling


Entity Types
An object or concept that is identified by the enterprise as having an
independent existence

Attributes
A property of an entity or a relationship type

Relationship Types
A meaningful association among entity types

Normalization
A technique for producing a set of relations with desirable

properties, given the data requirements of an enterprise

UNF is a table that contains one or more repeating groups


1NF is a relation in which the intersection of each row and column contains one
and only one value

2NF is a relation that is in 1NF and every non-primary-key attribute is fully


functionally dependent on the primary key.

3NF is a relation that is in 1NF, 2NF in which no non-primary-key attribute is


transitively dependent on the primary key

BCNF is a relation in which every determinant is a candidate key


4NF is a relation that is in BCNF and contains no trivial multi-valued
dependency

5NF is a relation that contains no join dependency

Conceptual Database Design


The process of constructing a model of the

information used in an enterprise, independent of all


physical considerations

Logical Database Design


The process of constructing a model of the

information used in an enterprise based on a specific


data model, but independent of a particular DBMS and
other physical considerations.

Physical Database Design


The process of producing a description of the

implementation of the database on secondary storage;


it describes the storage structures and access
methods used to archieve efficient access to the data

Database Language

SQL
1974 - SEQUEL by D.Chamberlin (IBM)
1975 - SQUARE by Boyce (System R project)
1976 - SEQUEL/2 (SQL) by Chamberlin and Boyce)
late 1970 - SQL(Oracle), QUEL(Ingres)
1982 - Relational Database Language(RDL) : ANSI
1987 - ISO standard
1989 - Integrity Enhancement Feature (ISO)
1992 - SQL2(SQL92) : ISO

DML
SELECT
INSERT
UPDATE
DELETE

DDL
CREATE(DROP) SCHEMA
CREATE(ALTER, DROP) DOMAIN
CREATE(ALTER, DROP) TABLE
CREATE(DROP) VIEW
CREATE(DROP) INDEX

Advanced SQL
View
Integrity Enhancement Feature
Primary key
Unique
Foreign key

Access Control
Embedded SQL
Host Language Variables
Application Programming Interface
Dynamic SQL

Part 2. Understanding Oracle Database


Overview of oracle Database Architecture
Memory Structure
Process Structure
Storage Structure
New Features

Overview of Oracle Architecture


PMON

SMON

D000

RECO

S000

Redo Log
Buffer

SGA
Shared SQL Area

P000

Database Buffer Cashe

* Total SGA Size :


1700 Mbyte
* Fixed Size :
70 Kbyte
* Variavle Size :
490 MByte

TL-812
4,000,000 KByte

Server

1,200,000 KByte

DBW0

CKPT

Data File
Raw Device

USER

2,100 KByte

LGWR

ARCH
Archive Log Mode(50M)

Memory Structure : Shared Pool


Shared Pool
Library Cache

Dictionary
Cache

Shared
SQL Area

PL/SQL Procedures
and Package

Control Structures
for examples;
Locks
Library
Cache handles
and so on ...

Control Structures
for example:
Character Set
Conversion
Memory
Network Security
Attributes
and so on ..

Reusable
Runtime
Memory

Shared Pool Contents


- Text of the SQL or PL/SQL statement
- Parsed form of the SQL or PL/SQL statement
- Execution plan for the SQL or PL/SQL
statements
- Data dictionary cache containing rows of data
dictionary information

Library Cache

- shared SQL area


- private SQL area
- PL/SQL procedures and package
- control structures : lock and library cache handles

Dictionary Cache

- names of all tables and views in the database


- names and datatypes of columns in database tables
- privileges of all Oracle users

SHARED_POOL_SIZE

Memory Structure :Database Buffer


Cache
Database Buffer Cache holds copies of data blocks read from disk
All users concurrently connected to the system share access to the buffer cache
Dirty List
LRU List
Size = DB_BLOCK_SIZE * DB_BLOCK_BUFFERS

SGA
Shared Pool
Shared SQL
Area

Database Buffer Cache

Memory Structure :Redo Log Buffer

Circular buffer containing information about changes made to the database

save it redo entry

Redo Entries is used when Database Recovery

DBWR write contents of Redo Log Buffer to Online Redo Log

LOG_BUFFER

change vector #1
redo record

change vector #1
change vector #1

Oracle Processes
SNPn

SMON

PMON

Pnnn

RECO

SGA
Database Buffer Cache

Snnn

Redo Log
Buffer
Offline
Storage
Device

Dedicated
Server
Process

DBWR
Dnnn

LCK0

User
Process

LGWR

ARCH

CKPT
Control
Files

Users

Data
Files

Redo Log
Files

Background Process
DBWR

(Database Writer)

- write all dirty buffers to datafiles


- Use a LRU algorithm to keep most recently used blocks in memory
- Defers write for I/O optimization
dirty list reaches a threshold length
A process scnas a specifed number of buffer in the LRU without finding free buffer
A time-out occurs
DBWR checkpoint occurs

LGWR

(Log Writer)

- writes redo log entries to disk


Commit occurs
The redo log buffers pool becomes one-third full
DBWR completes cleaning the buffer blocks at a checkpoint
LGWR time-out

- A commit confirmation is not issued until the tx has been recorded in the rego
log file

Contd
PMON

(Process Monitor)

- Cleans up abnormally terminated connection


- Rolls back uncommited transactions
- Releases locks held by a terminated process
- Frees SGA resources allocated to the failed processes
- Database maintenance

SMON

(System Monitor)

- Performs automatic instance recovery


- Reclaims space used by temporary segments no longer in use
- Merges contiguous area of free space in the datafile

Contd
CKPT (Check

Point)

- is enabled by setting the parameter CHECKPOINT_PROCESS=TRUE


- If enabled, take over LGWRs task of updating files at a checkpoint
- Updates header of datafiles and control files at the end of checkpoint
- More frequent checkpoint reduce recovery time from instance failure
- CKPT improve the performance of database with many database files
ARCH

(Archiver)

- Copies redo log files to tape or disk for media failure


- Operates only when a log switch occurs
- Is optional and is only needed when in ARCHIVELOG mode
- May write to a tape drive or to a disk
LCKn

(Lock), Dnnn (Dispatcher), Snnn (Server),


RECO (Recover), Pnnn(Parallel), SNPn(Job Queue),
QMNn(Queue Monitor),

Server/User Process
User Processes
- A user process is used when a user runs an application program
- Runs the tool/application and is considered the client
- Passes SQL to the server process and receives the results
Server Processes
- A server process must place the data in the database buffer cache
- Parce and execute SQL statements
- Read data blocks from disk into the shred database buffers of the SGA
- Return the results of SQL statements to the user process
Parse : check syntax, security access, object resolution, optimization
Execute : applies the parse tree to the data, perform a physical read and
change
Fetch : Passes data to the user (only SELECT)

Oracle Files

Datafile

Redo Log Files

Control Files

Parameter File

Archive File

Log File (alert*.log, sqlnet.log, listener.log...)

Trace File

Storage Architecture

Physical storage structures


Data files
Segments
Extents
Blocks

Logical storage structures


Tablespaces
Tables / Clusters / Indexes
Rows
Columns

Physical Storage Architecture

Relationship among Segments, Extents, and Blocks

Segment
96K

Extent

Extent

24K

72K
2K
2K
2K
2K
2K
2K
2K
2K
2K
2K

2K
2K
2K
2K
2K
2K
2K
2K
2K
2K

2K
2K
2K
2K
2K
2K
2K
2K
2K
2K

Database Blocks

2K
2K
2K
2K
2K
2K
2K
2K
2K
2K
2K
2K

Logical Storage Architecture

Relationship between tablespaces and datafiles

Database
System Tablespace

DATA1.ORA

DATA2.ORA

USER Tablespace

DATA3.ORA

Contd

Objects stored in tablespaces


Tablespace (one or more datafiles)

Table
INDEX
INDEX

Table

INDEX

INDEX

INDEX

INDEX

INDEX

INDEX

INDEX

INDEX
Table

Database Files

Objects

(Physical structures associated


with only one tablespace)

(stored in tablespace may


span serveral datafiles)

Block
Header

Table Dictionary

Row Dictionary
Free Space

General Block Information


(Block add, Segment type)
85 ~ 100 bytes
Table info in Cluster

Row info in Block


(2 byte per row)

Row Data
using when New Row
Insert or Update
(pctfree, pctused)
Table or Index Data

PCTFREE / PCTUSED
PCTFREE
PCTFREE

PCTUSED
PCTUSED

20% Free space


61% Free space

PCTUSED = 40

PCTFREE = 20

Insert new row until 80%

20% use when Update

Can insert new row when below 60%


When Usage is below 40% (61% Free
space), block is listed in FREELIST

Extent
A set

of contiguous database blocks within a datafile.

Extent

are allocated when.

- The segment is created (INITIAL EXTENT)


- The segments grows (NEXT EXTENT)
- The table is altered to allocate extents.

Extent

are de-allocated when the

- The segment is dropped and truncated.


- The segment is larger than optimal and contains free extents
(for rollback segments only)

Each

segment is created with at least on extend( initial extent )

( Rollback segment : 2)

ALTER TABLE

table_name DEALLOCATE UNUSED

Segment
a set of one or more extents that contains all the data for a specific type of logical storage
structure within a tablespace
Data Segment
- A collection of extents that holds all of the data for a table or a cluster
Index Segment
- A collection of extents that holds all of the index data for search optimization on large tables
and clusters
Rollback Segment
- A collection of extents that holds rollback data for rollback, read-consistency, or recovery
Temporary segment
- A collection of extents that holds data belonging to temporary tables created during a sort
operation
Bootstrap segment
- An extent that contains dictionary definitions for dictionary tables to be loaded when the
database is opened.

Oracle8 New Feature


VLDB, Warehouse

OLTP

Parallel DML
Parallel Index Scans
Star Query Optimization
Partitioning
Parallel Backup/Recovery
Incremental Backup
Point-in-time Recovery

Advanced Queuing
XA rewrite
Memory reduction
Serially reusable memory
New OCI Interface
Improve Function Performance

Objects

Network Computing

Object Relational Database


Object Type
Object View

Simple User Integration


Simple Maintenance
Simple Development

Oracle8i New Features


Data Warehousing

OLTP

Summary management
Analytic function
Hash and Composite
Paritioning
Resource Management
Transportable tablespace
Functional index, virtual
column
Application Development

Oracle Jserver, VM in Database


Java stored procedure,
function..
SQLJ: embedded SQL in Java
WebDB

Publish and subscribe capabilities


Database event trigger
Single table hash cluster
Object type column in partition
table
Partitioned index-organized table
Stable optimizer execution plans

Security

Virtual Private Database


LDAP integration
N-tier authentication/authorization
SSL and X.509v3, RAIDUS
support

Oracle 9i - The eBusiness Platform


Oracle9i continues Oracle8i's focus on the Internet by providing a series of

specific capabilities and product bundles targeted at eBusiness environments. In


addition, Oracle9i continues to add features and capabilities that extends existing
investment in mission-critical infrastructure. Oracle9i has been designed with
focus on certain key development areas.

Key Infrastructure Area

Key Application Area

Availability

Internet Contents Management

Scalability and Performance

B2B and B2C eBusiness

Security

Packaged Application

Development Platform

Business Intelligence

Manageability

Windows2000 Integration

Oracle Client/Server Architecture

NETWORK
Server b

Client
Application

Server/Server

Client/Server

Server A

Benefit of Client/Server Component


- Database S/W work on Server
- Minimize network resource
- concurrency, consistency, transparency

- Only Server upgrade to increase size


- Minimize Client H/W spec
- concurrency, consistency, transparency

SQL*Net
What

is SQL*Net?

- Oracles Client/Server middleware product


- transparent connection from client tool to DB ( from on DB to another )
- works across multiple network protocol and operation system
What

is TNS?

- Transparent Network Substrate


- Oracles Network applications to access the underlying network protocols transparently
- TNS-based application, Oracle Protocol Adapters, Network software like TCP/IP
Configuration

File

- TNSNAME.ORA ( Client )
- TNSNAV.ORA ( Client )
- SQLNET.ORA ( Client, Server )
- LISTENER.ORA ( Server )

SQL*Net Configuration
TNSNAME.ORA
info =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=brinfoa01)
(PORT=1521)
)
)
(CONNECT_DATA=
(SID=BRBINFO1)
)
)

SQLNET.ORA
# SQLNET.EXPIRE_TIME = 0
SQLNET.AUTHENTICATION_S
ERVICES=(none, beq)

LISTENER.ORA
LISTENER=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=brinfoa01)
(PORT=1521)
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=BRBINFO1)
(ORACLE_HOME=/oracle7/oracle7)
(ENVS='EPC_DISABLED=TRUE')
)
)
STARTUP_WAIT_TIME_LISTENER=0
CONNECT_TIMEOUT_LISTENER=0
LOG_DIRECTORY_LISTENER=/oracle7/oracle7/network/log
LOG_FILE_LISTENER=listener
TRACE_LEVEL_LISTENER=OFF

Net8
Networking Challenge

Support large mission-critical


client/server, and provide migration
path towards distributed object
architecture

Net8 Focus
1. Scalability : Connection Pooling, Multiplexing(Connection Manager)
2. Manageability : Configuration-free installation option,
Centralized client administration, Automated client configuration
3. Security : Oracle Security Server

ODBC / oo4o / JDBC


ODBC (Open Database Connectivity )
- Provide a way for client program (eg VB, Excel, Access) to access database
- is a standardized API, developed according to the specification of the SQL
Access Group, than allows one to connect to SQL database

oo4o (Oracle Object for OLE)


- a middleware product manufactured by Oracle that allows native access to Oracle7
databases from client applications via the Microsoft OLE standard
- OLE 2.0 Automation Server, Oracle Data Control, Two C++ Class Library

JDBC (Java Database Connectivity )


- a set of classes and interfaces written in Java to allow other Java programs to send
SQL statements to a relational database management system
- JDBC Thin for Java applets, JDBC OCI for Java application

You might also like