Title: ORACLE Architecture and Administration
1 International Technology University Lecture
1 Overview of Oracle Database
2Part 1. Introduction to Database System
- Introduction to Database
- History of RDBMS
- Entity-Relationship Modeling
- Database Language
3Introduction 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
4Introduction to Database
- 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
5Introduction to Database
- 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
6Introduction to Database
- 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
7Introduction to Database
- 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
8Introduction to Database
Programmers
Users
DBA
Application Programs
Queries
Database Schema
DBMS
DML preprocessor
Query processor
DDL compiler
Program object code
Database manager
Dictionary manager
Access methods
File manager
Database and system catalog
System buffers
9Introduction to Database
- Components of Database Manager
Authorization control
Integrity checker
Command processor
Query optimizer
Transaction manager
Scheduler
Data Manager
Buffer manager
Recovery manager
10History 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
11RDBMS Terminology
- 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 contains - Cardinality the cardinality of a relation is
the number of tuples it contains - Relational database a collection of normalized
relation
12Properties of Relations
- 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
13Properties of Relations
- When is a DBMS Relational?
- Foundational rules
- Rule 0 Foundational rule Rule 12
Non-subversion rule - Structural rules
- Rule 1 Information representation Rule 6 View
updateing - Integrity rules
- Rule 3 Systematic treatment of null values Rule
10 Integrity independence - 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 Rule 9
Logical data independence - Rule11 Distribution independence
14Entity-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
15Normalization
- 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
16Database Views
- 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
17Database 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
18Database Language
- DML
- SELECT
- INSERT
- UPDATE
- DELETE
- DDL
- CREATE(DROP) SCHEMA
- CREATE(ALTER, DROP) DOMAIN
- CREATE(ALTER, DROP) TABLE
- CREATE(DROP) VIEW
- CREATE(DROP) INDEX
19Structured Query Language - SQL
- SQL
- View
- Integrity Enhancement Feature
- Primary key
- Unique
- Foreign key
- Access Control
- Embedded SQL
- Host Language Variables
- Application Programming Interface
- Dynamic SQL
20Part 2. Understanding Oracle Database
- Overview of oracle Database Architecture
- Memory Structure
- Process Structure
- Storage Structure
- New Features
21Overview of Oracle Architecture
D000
SMON
RECO
S000
PMON
P000
Total SGA Size
1700
Mbyte
Fixed Size
SGA
70
Kbyte
Variavle
Size
490
MByte
TL-812
KByte
KByte
KByte
KByte
4,000,000
KByte
2,100
1,200,000
LGWR
CKPT
DBW0
ARCH
Archive Log Mode(50M)
22Memory Structure Shared Pool
Shared Pool
- 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
Library Cache
Dictionary Cache
Control Structures for example Character
Set Conversion Memory Network Security
Attributes and so on ..
Reusable Runtime Memory
23Memory 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
24Memory 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
25Oracle Processes
Dedicated Server Process
Snnn
26Background Process
- DBWR (Database Writer)
- - write all dirty buffers to data files
- - 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 scans a specified 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 text has been recorded in the redo - log file
27Contd
- PMON (Process Monitor)
- - Cleans up abnormally terminated connection
- - Rolls back uncommitted 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
28Contd
- CKPT (Check Point)
- - is enabled by setting the parameter
CHECKPOINT_PROCESSTRUE - - If enabled, take over LGWRs task of
updating files at a checkpoint - - Updates header of data files 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),
29Server/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 - - Parse 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)
30Oracle Files
- Data file
- Redo Log Files
- Control Files
- Parameter File
- Archive File
- Log File (alert.log, sqlnet.log,
listener.log...) - Trace File
31Storage Architecture
- Physical storage structures
- Data files
- Segments
- Extents
- Blocks
- Logical storage structures
- Tablespaces
- Tables / Clusters / Indexes
- Rows
- Columns
32Physical Storage Architecture
- Relationship among Segments, Extents, and Blocks
33Logical Storage Architecture
- Relationship between tablespaces and data files
34Contd
- Objects stored in tablespaces
35Block
General Block Information (Block add, Segment
type) 85 100 bytes Table info in
Cluster Row info in Block (2 byte per
row) using when New Row Insert
or Update (pctfree, pctused) Table or Index
Data
36PCTFREE / PCTUSED
20 Free space
PCTFREE
PCTUSED
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
37Extent
- A set of contiguous database blocks within a data
file. - 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
38Segment
- 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. -
39Oracle 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
40SQLNet
- What is SQLNet?
- - 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 )
41SQLNet Configuration
- TNSNAME.ORA
- info
- (DESCRIPTION
- (ADDRESS_LIST
- (ADDRESS
- (PROTOCOLtcp)
- (HOSTbrinfoa01)
- (PORT1521)
- )
- )
- (CONNECT_DATA
- (SIDBRBINFO1)
- )
- )
- LISTENER.ORA
- LISTENER
- (ADDRESS_LIST
- (ADDRESS
- (PROTOCOLtcp)
- (HOSTbrinfoa01)
- (PORT1521)
- )
- )
- SID_LIST_LISTENER
- (SID_LIST
- (SID_DESC
- (SID_NAMEBRBINFO1)
- (ORACLE_HOME/oracle7/oracle7)
- (ENVS'EPC_DISABLEDTRUE')
- )
- )
- STARTUP_WAIT_TIME_LISTENER0
- CONNECT_TIMEOUT_LISTENER0
- SQLNET.ORA
- SQLNET.EXPIRE_TIME 0
- SQLNET.AUTHENTICATION_SERVICES(none, beq)
42Networking Challenge
- Networking Challenge
- Support large mission-critical client/server, and
provide migration path towards distributed object
architecture
- 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
43ODBC / 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