Lee Oracle
-
Upload
nomay-malik -
Category
Documents
-
view
225 -
download
0
description
Transcript of Lee Oracle
Overview of Oracle DatabaseOverview of Oracle Database
Lee, JeongKyu ([email protected])
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 LevelThe community view of the database
Internal LevelThe 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
Application
Programs
Application
ProgramsQueriesQueries
Database
Schema
Database
Schema
DML
preprocessor
DML
preprocessor
Query
processor
Query
processor
DDL
compiler
DDL
compiler
Program
object code
Program
object code
Database
manager
Database
manager
Dictionary
manager
Dictionary
manager
Access
methods
Access
methods
File
manager
File
manager
System
buffers
System
buffers
DBMS
Programmers Users DBA
Database and
system catalog
Components of Database Manager
Authorization
control
Authorization
control
Integrity
checker
Integrity
checker
Command
processor
Command
processor
Query
optimizer
Query
optimizer
Transaction
manager
Transaction
managerSchedulerScheduler
Buffer
manager
Buffer
manager
Recovery
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 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
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
AttributesA property of an entity or a relationship type
Relationship TypesA 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
SGAShared SQL Area Database Buffer Cashe
KByte1,200,000 KByte
Redo LogBuffer
KByte2,100 KByte
PMON
LGWR
Data File Raw Device
Server
USERARCH
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
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
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 ListLRU ListSize = DB_BLOCK_SIZE * DB_BLOCK_BUFFERS
SGAShared 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
change vector #1
change vector #1
redo record
Oracle Processes
Snnn
Users
DBWR
SGA
Database Buffer Cache Redo Log Buffer
Data Files
Redo Log Files
Control Files
Offline Storage Device
Dedicated Server
Process
LCK0RECOPMONSMON
CKPTUser
Process
Dnnn
LGWR ARCH
SNPn
Pnnn
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
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
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),
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
Extent24K
2K2K2K2K2K2K2K2K2K2K
2K2K2K2K2K2K2K2K2K2K
2K2K2K2K2K2K2K2K2K2K
2K2K2K2K2K2K2K2K2K2K
2K2K
Extent72K
Segment96K
Database Blocks
Logical Storage Architecture
Relationship between tablespaces and datafiles
USER TablespaceSystem Tablespace
Database
DATA3.ORADATA1.ORA DATA2.ORA
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 associatedwith only one tablespace)
Objects(stored in tablespace mayspan serveral datafiles)
Block
HeaderTable Dictionary
Row Dictionary
Free Space
Row DataRow 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
PCTFREE / PCTUSED
PCTFREEPCTFREE PCTFREEPCTFREE
20%20% Free spaceFree space
PCTUSEDPCTUSED PCTUSEDPCTUSED
PCTFREE = 20 PCTUSED = 40
61%61% Free spaceFree 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
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, WarehouseParallel DMLParallel Index ScansStar Query Optimization
OLTP
Objects
Advanced QueuingXA rewriteMemory reductionSerially reusable memoryNew OCI InterfaceImprove Function Performance
PartitioningParallel Backup/RecoveryIncremental BackupPoint-in-time Recovery
Object Relational DatabaseObject TypeObject View
Network ComputingSimple User IntegrationSimple MaintenanceSimple Development
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
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
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
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 )
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=0CONNECT_TIMEOUT_LISTENER=0LOG_DIRECTORY_LISTENER=/oracle7/oracle7/network/logLOG_FILE_LISTENER=listenerTRACE_LEVEL_LISTENER=OFF
SQLNET.ORA# SQLNET.EXPIRE_TIME = 0
SQLNET.AUTHENTICATION_SERVICES=(none, beq)
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