DB2 Concepts
DB2 Concepts
DB2 Concepts
2.1
Unit Objectives
DB2 DB2
DB2 for
OS/390
DB2 for
DB2 for OS/400
S/390, S/370 VSE and VM
AS/400
DB2 Product Components
DRDA Application
Administration Run-Time
Application Development
Client Client
Requester Client
Communication Support
Oracle Database
Connecting to DB2 UDB Database Servers
DB2 Personal Developer's Edition (PDE) includes:
DB2
Personal Run-Time Client
Edition includes:
Extenders
Netscape Communicator
DB2 Product Information
Accessing DB2
Command Line Administration
Applications
Processor Tools
APIs
Control Center
Commands Embedded
Command Center
SQL
Interactive Task Center
SQL Call Level
Development Center Interface
Journal
Event Analyzer JAVA
Health Center
SQL/API
Database Engine
End-User Access
END USER
Application
Analyst
Application Query
Programmer (I/C Consultant)
Tool
DBA
Systems DATA
Programmer BASE
What's in an Instance?
DB2 Product
INSTANCE_1 INSTANCE_2
CATALOG CATALOG
DB DB
DB_1 CONFIG DB_3 CONFIG
LOG
FILE_1 LOG FILE_3
JOIN
(federated)
CATALOG CATALOG
DB DB
DB_2 CONFIG DB_4 CONFIG
LOG
FILE_2 LOG
FILE_4
Application Application
Requestor Server
CONNECT TO dbname
USER userid USING password database
DB2 Object Hierarchy
Catalog Catalog
Index1 View1
View1 Index1
View3
VIEW
A B C D B C
Application Alternatives
Static SQL
Dynamic SQL
Perl
Call Level Interface
ODBC
OLE DB
Java Development
JDBC and SQLJ
Stored Procedures
User-Defined Functions
Application Programming Interfaces (APIs)
Distributed Transaction Processing
Static Embedded SQL
Table/Column Descriptions
Authorizations
PREPARE
Statistics
Package
Name:
Charge Card: Exp. Date:
Telephone:
Type: Date:
Destination:
Country: State:
Language:
Activities:
Cooking, Laundry, Household:
Number Traveling:
Mode of Transportation:
Cost:
SQLExecute(...);
SQL statements EXEC SQL FETCH ...
...
prepared during
SQLFetch(...); application execution
..
Prepare Prepare
DB2 parameters
client DB2
DB2 OLEDB
OLE DB OLE DB
DB2 consumer provider
client Source Data
Virtual Table
Java Applications
SQLJ
Application
SQLJ
Run-Time Classes
Remote
Database
Java
JDBC DB2 Client
Application
DB2 Java Applets
HTTPd
SQLJ Applet
JDBC Server Local DB2
SQLJ Run-Time
Classes Database
CLI
HTTP
Java/ TCP/IP
JDBC Socket
JDBC
Client
Applet
Remote DB2
Database
Stored Procedures
Network
DB2
DB2
Server
Database
Stored Procedure Builder
Development of DB2 stored procedures made simple
Supports development and debugging of Java and
SQL PL stored procedures on all DB2 UDB Server
platforms
Supports static (SQLJ) and dynamic (JDBC) SQL
GUI development environment
Users can focus on the logic of their SPs
Wizards simplify many tasks
Tool automates build process
Can be launched from MS Visual Studio and MS Visual
Basic; Integrated with VisualAge for Java
Benefits:
Ease of development
Portability across DB2 family
Stored Procedure Builder Example
DB2
Server DB2
Database
Functions
EURO
Conversion
Function EURO Convert ! EURO
Database Manager APIs
API -
Start Database Manager
Create Database
Backup Database
Bind
...
SQL -
Select
Insert
Update
...
X/Open XA Support for
Distributed Transaction Processing
(1) (2)
Resource Transaction
Managers Manager
(RMs) (TM)
(3)
Referential Integrity (1 of 3)
Some Basic Terms
PRIMARY
KEY
DELETEing a row
TABLES LINKED BY
REFERENTIAL CONSTRAINTS
RESTAURANTS
.NAME
C N R
DISCOUNT_
RATINGS PALS
TICKETS
.PLACE .FAVOR .NAME
DELETE Rules Exercise
PARENT C N R
ROW 3
ROW 4
ROW 12
ROW 1
SQL DDL
DELETE
SQL DCL
GRANT
CONNECT
COMMIT
ROLLBACK
Locking Strategies
Table Table
Row(s)
OR
Table Space
IN Intent None
IS Intent Share
IX Intent eXclusive
S Share
U Update
X eXclusive
Z superexclusive
Minimum* Supporting
Row Lock
Table Lock
S Share IS
U Update IX
X eXclusive IX
W Weak exclusive IX
NS Next key Share IS
NX Next key eXclusive IX
NW Next key Weak exclusive IX
Lock T
abl e
T
C
LE
SE
UP
DA
TE
Update WAIT
Lock Mode Compatibility
MODE OF LOCK B
MODE OF
LOCK A IN IS S IX SIX U X Z
X YES NO NO NO NO NO NO NO
Z NO NO NO NO NO NO NO NO
BR
GARAGE
BATH
B'FAST
FAMILY MASTER
BR
KITCHEN
BATH
LIVING
BATH STOPLETT
DINING
CONSTRUCTION
CLOSET BR
Unit of Recovery
SAVINGS CHECKING
DATA DATA
COMMIT
Changes will be made
Row Locks released
Certain Table Locks released
ROLLBACK
Changes backed out
All Locks released
Commit versus Rollback
COMMIT ROLLBACK
Backup
Updated
Database
Database
(failure)
"COMMIT"
"UPDATE" "UPDATE"
LOG
Data Recovery (2 of 2)
UTILITY
Backup
Recovered
Restore Database
"UPDATE"
LOG
CLP Syntax
db2
option-flag db2-command
sql-statement
?
phrase
message
sql-state
class-code
Starting a CLP Session
non-interactive mode
interactive mode
db2
db2=> connect to eddb
db2=> select * from syscat.tables
Command Center
QUIT versus
TERMINATE versus CONNECT RESET
quit No No