lee oracle

46
Overview of Oracle Database Lee, JeongKyu ([email protected])

Upload: dhrumiljpatel

Post on 22-Nov-2014

485 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Lee oracle

Overview of Oracle Database

Lee, JeongKyu ([email protected])

Page 2: Lee oracle

Part 1. Introduction to Database System

Introduction to Database

History of RDBMS

Entity-Relationship Modeling

Database Language

Page 3: Lee oracle

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

Page 4: Lee oracle

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

Page 5: Lee oracle

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

Page 6: Lee oracle

Three-Level Database Architecture

External LevelThe users’ view of the database

Conceptual LevelThe community view of the database

Internal LevelThe physical representation of the database on the computer

Page 7: Lee oracle

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

Page 8: Lee oracle

Components of a DBMS

Application

ProgramsQueries

Database

Schema

DML

preprocessor

Query

processor

DDL

compiler

Program

object code

Database

manager

Dictionary

manager

Access

methods

File

manager

System

buffers

DBMS

Programmers Users DBA

Database and

system catalog

Page 9: Lee oracle

Components of Database Manager

Authorization

control

Integrity

checker

Command

processor

Query

optimizer

Transaction

managerScheduler

Buffer

manager

Recovery

manager

Data

Manager

Page 10: Lee oracle

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

Page 11: Lee oracle

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

Page 12: Lee oracle

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

Page 13: Lee oracle

When is a DBMS Relational?

Foundational rulesRule 0 : Foundational rule Rule 12 : Nonsubversion rule

Structural rulesRule 1 : Information representation Rule 6 : View updateing

Integrity rulesRule 3 : Systematic treatment of null values Rule 10 : Integrity independance

Data manipulation rulesRule2 : Guaranteed access Rule 4 : Dynamic online catalog based on the

relational model

Rule5 : Comprehensive data sublanguage Rule7 : High-level insert, update, delete

Data independence rulesRule8 : Physical data independence Rule 9 : Logical data independence

Rule11 : Distribution independence

Page 14: Lee oracle

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

Page 15: Lee oracle

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

Page 16: Lee oracle

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

Page 17: Lee oracle

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

Page 18: Lee oracle

DML

SELECT

INSERT

UPDATE

DELETE

DDL

CREATE(DROP) SCHEMA

CREATE(ALTER, DROP) DOMAIN

CREATE(ALTER, DROP) TABLE

CREATE(DROP) VIEW

CREATE(DROP) INDEX

Page 19: Lee oracle

Advanced SQL

View

Integrity Enhancement Feature

Primary key

Unique

Foreign key

Access Control

Embedded SQL

Host Language Variables

Application Programming Interface

Dynamic SQL

Page 20: Lee oracle

Part 2. Understanding Oracle Database

Overview of oracle Database Architecture

Memory Structure

Process Structure

Storage Structure

New Features

Page 21: Lee oracle

Overview of Oracle Architecture

SGAShared SQL Area Database Buffer Cashe

KByte1,200,000 KByte

Redo Log

Buffer

KByte2,100 KByte

PMON

LGWR

Data File

Raw Device

Server

USER

ARCH

TL-812

Archive Log Mode(50M)

* Fixed Size :

70 Kbyte

* Variavle Size :

490 MByte

4,000,000 KByte

* Total SGA Size :

1700 Mbyte

DBW0 CKPT

SMON RECO D000 S000 P000

Page 22: Lee oracle

Memory Structure : Shared Pool

Shared Pool

Library Cache

Shared

SQL Area

PL/SQL Procedures

and Package

Control Structuresfor examples;

LocksLibraryCache handlesand so on ...

Dictionary

Cache

Control Structuresfor example:

Character SetConversion MemoryNetwork Security Attributes

and so on ..

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

ReusableRuntimeMemory

Page 23: Lee oracle

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

SGAShared Pool

Shared SQL Area

Database Buffer Cache

Page 24: Lee oracle

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

change vector #1

change vector #1

redo record

Page 25: Lee oracle

Oracle Processes

Snnn

Users

DBWR

SGA

Database Buffer Cache Redo Log

Buffer

Data

Files

Redo Log

Files

Control

Files

Offline

Storage

DeviceDedicated

Server

Process

LCK0RECOPMONSMON

CKPTUser

Process

Dnnn

LGWR ARCH

SNPn

Pnnn

Page 26: Lee oracle

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

Page 27: Lee oracle

Cont’d

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

Page 28: Lee oracle

Cont’d

CKPT (Check Point)

- is enabled by setting the parameter CHECKPOINT_PROCESS=TRUE

- If enabled, take over LGWR’s 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),

Page 29: Lee oracle

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)

Page 30: Lee oracle

Oracle Files

Datafile

Redo Log Files

Control Files

Parameter File

Archive File

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

Trace File

Page 31: Lee oracle

Storage Architecture

Physical storage structures

Data files

Segments

Extents

Blocks

Logical storage structures

Tablespaces

Tables / Clusters / Indexes

Rows

Columns

Page 32: Lee oracle

Physical Storage Architecture

Relationship among Segments, Extents, and Blocks

Extent24K

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

2K

2K

2K

2K

2K

2K

2K

2K

2K

2K

2K

2K

Extent72K

Segment96K

Database Blocks

Page 33: Lee oracle

Logical Storage Architecture

Relationship between tablespaces and datafiles

USER TablespaceSystem Tablespace

Database

DATA3.ORADATA1.ORA DATA2.ORA

Page 34: Lee oracle

Cont’d

Objects stored in tablespaces

Table Table

Table

INDEX

INDEX

INDEX

INDEX

INDEX

INDEX

INDEX

INDEX

INDEX

INDEX

Tablespace (one or more datafiles)

Database Files(Physical structures associated

with only one tablespace)

Objects(stored in tablespace may

span serveral datafiles)

Page 35: Lee oracle

Block

HeaderTable Dictionary

Row Dictionary

Free Space

Row Data

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

Page 36: Lee oracle

PCTFREE / PCTUSED

PCTFREE

20% Free space

PCTUSED

PCTFREE = 20 PCTUSED = 40

61% Free space

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

Page 37: Lee oracle

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

Page 38: Lee oracle

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.

Page 39: Lee oracle

Oracle8 New Feature

VLDB, Warehouse

Parallel DML

Parallel Index Scans

Star Query Optimization

OLTP

Objects

Advanced Queuing

XA rewrite

Memory reduction

Serially reusable memory

New OCI Interface

Improve Function Performance

Partitioning

Parallel Backup/Recovery

Incremental Backup

Point-in-time Recovery

Object Relational Database

Object Type

Object View

Network ComputingSimple User Integration

Simple Maintenance

Simple Development

Page 40: Lee oracle

Oracle8i New Features

Data Warehousing OLTP

Application Development Security

Summary management

Analytic function

Hash and Composite Paritioning

Resource Management

Transportable tablespace

Functional index, virtual column

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

Oracle Jserver, VM in Database

Java stored procedure, function..

SQLJ: embedded SQL in Java

WebDB

Virtual Private Database

LDAP integration

N-tier authentication/authorization

SSL and X.509v3, RAIDUS support

Data encrypt, decrypt

Page 41: Lee oracle

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

Availability

Scalability and Performance

Security

Development Platform

Manageability

Windows2000 Integration

Key Application Area

Internet Contents Management

B2B and B2C eBusiness

Packaged Application

Business Intelligence

Page 42: Lee oracle

Oracle Client/Server Architecture

NETWORK

Server A

Server bClientApplication

Server/ServerClient/Server

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

Page 43: Lee oracle

SQL*Net

What is SQL*Net?

- Oracle’s 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

- Oracle’s 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 )

Page 44: Lee oracle

SQL*Net Configuration

TNSNAME.ORAinfo =

(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=

(PROTOCOL=tcp)

(HOST=brinfoa01)

(PORT=1521)

)

)

(CONNECT_DATA=

(SID=BRBINFO1)

)

)

LISTENER.ORALISTENER=

(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

SQLNET.ORA

# SQLNET.EXPIRE_TIME = 0

SQLNET.AUTHENTICATION_S

ERVICES=(none, beq)

Page 45: Lee oracle

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

Page 46: Lee oracle

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