Beruflich Dokumente
Kultur Dokumente
1
COURSE OBJECTIVES
2
COURSE PLAN
3
SESSION 1
INTRODUCTION TO
DBMS
4
INTRODUCTION TO DBMS
SESSION CONTENTS :
5
INFORMATION:
6
DATABASE:
NEED OF DATABASE:
7
DBMS CHARACTERISTICS
• Centralised Controls.
• Inconsistency elimination.
• Data can be shared.
• Standards.
• Controlled redundancy.
• Authorise access.
• Data integrity.
• Data independence.
• Performance and efficiency.
8
DBMS MODEL EVOLUTION
9
FILE MANAGEMENT SYSTEM
LIMITATIONS :
• Relationships between data items unknown.
• Code is dependent on data.
• Slow search process.
• Sorting records is difficult.
• Error prone.
• Interpretation of fields by accessing programs.
• Data inconsistency.
• Data redundancy.
• Changes to data structure cumbersome.
10
HIERARCHICAL DBMS
REPRESENTATION:
FEATURES
11
HIERARCHICAL MODEL EXAMPLE
Department
Department Non-project
Project
manager employee
Project Project
manager employee
12
DISADVANTAGES OF HIERARCHICAL DBMS
13
NETWORK DBMS
REPRESENTATION
FEATURES
14
NETWORK MODEL EXAMPLE
Managed by
Dept-mgr Department
Has project
Has employee Manages
Project Proj-mgr
Project ass.
Employee Employee ass. Assignment
15
NETWORK MODEL LIMITATIONS
16
RELATIONAL DBMS
REPRESENTATION :
• Relation - Table .
• Tuple - Record/Row .
• Attributes - Field/Columns .
• Domain - Set of valid values of attributes.
• Degree - Number of columns in a table.
• Cardinality - Number of rows in a table.
17
RELATIONAL MODEL EXAMPLE
RELATION ATTRIBUTES
18
KEYS
PRIMARY KEY
The column or set of columns which can
uniquely identify every row in a table is termed
as a CANDIDATE key. Every candidate key
satisfies these two properties,
• Uniqueness - At no time , no two row have the
same value for the column or the set of columns.
• Minimality - None of the columns can be
removed from the key without violating the
uniqueness property .
For a given table one candidate key is
designated as PRIMARY key and all other are
designated as ALTERNATE keys.
19
KEYS
FOREIGN KEY
20
FOREIGN KEY
EXAMPLE:
21
RELATIONAL MODEL FEATURES
22
RELATIONAL MODEL ADVANTAGES
23
INTEGRITY CONSTRAINTS
• ENTITY INTEGRITY
24
INTEGRITY CONSTRAINTS
• REFERENTIAL INTEGRITY
25
SESSION 2
DB2 OVERVIEW
AND
DATA OBJECTS
26
DB2 OVERVIEW
SESSION CONTENTS :
• DB2 History.
• DB2 and MVS Relationship .
• DB2 objects
> Storage Groups .
> Tablespaces.
> Tables .
> Indexes .
> Bufferpools .
• DB2 Data Types .
27
DB2 OVERVIEW
28
DB2 – SOME HISTORY
♦ The foundations of Relational Database technology
were laid by Dr. E.F. Codd, who in his paper ‘ A
Relational model of Data for Large Shared Data
Banks ’ laid the basic principles of RDBMS.
29
DB2 ENVIRONMENT
IMS
IMS TSO
TSO CICS
CICS
IMS
IMS IMS
IMS TSO
TSO TSO
TSO CICS
CICS CICS
CICS
online batch online batch
batch online batch
IMS online batch online online batch VSAM,
databases DAM files/
DB2 IMS
DB2
databases
MVS
DB2
DB2database
database DASD
DASD
30
DB2 ARCHITECTURE
IMS
IMS//DB
DB//DC
DC CICS
CICS TSO
TSO
SQL DB2
statements utilities
Locking
Locking Other
Services Relational Data components System
System
Services services
(IRLM) data Manager Buffer services
(IRLM) system Manager
Data Base Services
31
DB2 ARCHITECTURE
• System services
System services control the overall DB2 execution
environment . This includes managing the log datasets,
gathering statistics for performance monitoring, handling
system startup and shutdown.
32
DB2 ARCHITECTURE
33
DB2 DATA OBJECTS
♦ DATABASE
♦ STORAGE GROUP
♦ TABLESPACES
♦ TABLES
♦ INDEXES
♦ BUFFERPOOLS
♦ VIEWS
34
DB2 DATA OBJECTS
TABLESPACES
TABLE TABLE
TABLESPACES
TABLE
INDEX
INDEX
STORAGE GROUPS
35
STORAGE GROUPS
36
DATABASE
37
DB2 TABLESPACES
38
PAGES
SPACE PAGE
Header
Footer
Data records
Space : A ‘Space’ is a collection of one or more VSAM
linear datasets that are logically concatenated to form a linear
addressing range.
Pages : The datasets in a space contains pages . The pages
for a tablespace can be either 4KB or 32KB . All pages use a
control interval of 4KB; therefore when a page with 32KB is
needed , 8 CI’s are assigned .
39
PAGES
40
SIMPLE TABLESPACES
TABLESPACE
PAGE 1 PAGE 2
41
SIMPLE TABLESPACE
42
SEGMENTED TABLESPACE
TABLE3
TABLE1 TABLE2
43
SEGMENTED TABLESPACE
44
SEGMENTED TABLESPACE
45
PARTITIONED TABLESPACE
46
PARTITIONED TABLESPACES
• Advantage :
-improved data availability
-each part can be placed on a different DASD
volume thereby spreading the tablespace I/O load.
47
INDEX
Index
101
101 1
102 3 104 TABLE
103 4
104 2 102
103
Key Position
48
INDEXES
49
INDEXES – Terminology
50
INDEXES : Terminology
51
BUFFERPOOLS
52
VIEWS
Advantages :
• A view may be used as a part of security mechanism which
allows user to access only a portion of the table.
• Complicated queries can be stored as a view .
• Views can also minimize the program modification that may
be required when base table changes .
53
VIEWS
Example :
Cust_no Cust_name Cust_dob Cust_branch Cust_rating
111111 MACK 19501110 12 4 Basetable
222222 JACK 19770921 156 6
333333 PACK 19800202 8 3
54
DB2 - directory & Catalog
55
DATA TYPES: STRINGS
STRING
CHARACTER GRAPHIC
56
DATA TYPES : STRINGS
CHARACTER:
Character data type fields are used to store alphanumeric
data items .
• Fixed length character string : CHAR(X) or CHARACTER(X)
A fixed length character string is ‘CHAR’ must have its
length specified. Each value in this column is this length. A
shorter value is padded with blanks in the end. The length (value
of x) must be greater than 0 and less than 255 , it occupies x
bytes.
57
DATA TYPES : STRINGS
GRAPHIC
58
DATA TYPES : DATETIME
DATETIME
59
DATA TYPES : DATETIME
DATE
Date is represented as a sequence of eight unsigned
packed decimal digits occupying four bytes; permitted value are
legal dates in the range January 1st ,1 A.D to December 31st ,
9999 A.D .
Internal format :YYYYMMDD.
TIME
Time is represented as a sequence of six unsigned
packed decimal digits, occupying three bytes ; permitted values
of legal times is in the range midnight to midnight i.e 000000 to
240000
Internal format : HHMMSS.
60
DATA TYPES : DATETIME
TIMESTAMP
61
DATA TYPES : NUMERIC
NUMERIC
62
DATA TYPES : NUMERIC
INTEGER
Integer is used to store non-decimal numeric
information - 4-byte binary integer , 31 bits for number and
32nd bit to store sign of the number.
Range : -2,147,483,648 to 2,147,483,647.
SMALLINT
Two-byte binary,15 bits for number and 16th bit for
sign of the number.
Range : -32,768 to 32,767.
63
DATA TYPES : NUMERIC
DECIMAL(x,y)
64
DATA TYPES : NUMERIC
FLOAT(p)
65
SQL
STRUCTURED QUERY
LANGUAGE
66
STRUCTURED QUERY LANGUAGE
67
SQL – Structured Query language
SQ L
DD L DM L D CL
68
STRUCTURED QUERY LANGUAGE
69
SQL – DDL
DATA DEFINITION
LANGUAGE
70
DDL Operations
71
DDL – OBJECTS vs OPERATIONS
72
DDL – CREATE Storage Group
Syntax :
73
DDL – ALTER Storage Group
Syntax :
ALTER STOGROUP stogroup-name
ADD VOLUMES (vol1, vol2, ....... )
REMOVE VOLUMES (vol1, vol2, ....... )
[PASSWORD password ]
Example :
ALTER STOGROUP TRG1T01
ADD VOLUMES (DBPK03)
REMOVE VOLUMES (DBPK01)
74
DDL – CREATE Database
Syntax :
CREATE DATABASE database-name
[STOGROUP stogroup-name ]
[BUFFERPOOL bufferpool-name ]
Example :
CREATE DATABASE TRG1T01
STOGROUP TRG1T01
BUFFERPOOL BPO
75
DDL – CREATE TABLESPACE
Syntax :
76
DDL -Tablespace Parameters
77
DDL – Create Tablespace Parameters
78
DDL – CREATE TABLE
79
DDL – CREATE TABLE
Example :
80
DDL – CREATE TABLE Like Existing Table
Syntax :
81
DDL – ALTER TABLE
Syntax :
82
DDL – CREATE INDEX
83
DDL - CREATE INDEX
EXAMPLE :
84
DDL – CREATE VIEW
Syntax :
85
DDL – DROP Statement
86
DDL – DROP Dependencies
TABLESPACE
TABLE
TABLE
87
SQL – DML
DATA MANIPULATION
LANGUAGE
88
DML – Operations
89
DML – EXAMPLE
EMP
DEPT
DEPT# DNAME
10 Finance
20 Admin
30 Sales
40 Personnel
90
SELECT – SIMPLE QUERY
Output –
EMP# SAL
1000 8000.00
♦ SELECT *
FROM EMP
WHERE EMP# = 1000
Output –
91
DATA COMPARISON
• OPERATORS
> , < , = , >= , <= , <>
• BOOLEAN
NOT , AND ,OR .
• PARTIAL VALUES
% , _ , LIKE
• MISC.
IN , BETWEEN .
92
DML – Retrieving With Ordering
SELECT *
FROM EMP
ORDER BY DEPT#
Output –
93
DML - JOIN Queries
Simple Equijoin
Output –
94
DML – JOIN Queries
Self-Join
95
DML – Subqueries OR Nested queries
♦ Simple Subquery
SELECT EMP#
FROM EMP
WHERE SAL > ( SELECT SAL
FROM EMP
WHERE EMP# = 1000 )
96
DML - Correlated Subquery
97
DML - Correlated Subqueries
EXAMPLE:
SELECT DNAME
FROM DEPT
WHERE ‘ARUN’ IN
(SELECT ENAME
FROM EMP
WHERE DEPT# = EMP.DEPT#)
98
DML – Column Functions
99
DML – Column Functions
Example :
SELECT COUNT(*)
FROM EMP
Output –
EMP# MAX(SAL)
1001 9000
100
DML – SELECT Statement
Group By Clause
Output –
DEPT# SUM(SAL)
10 24000
20 9000
101
DML – SELECT Statement
SELECT DEPT#
FROM EMP
GROUP BY DEPT#
HAVING COUNT(*) > 1
Output –
DEPT#
10
102
DML – INSERT Statement
Syntax :
Example :
103
DML – UPDATE Statement
Syntax :
UPDATE table-name
SET col-name1 = expression
[, col-name2 =expression , ......]
[WHERE search-condition ]
Example :
UPDATE EMP
SET DEPT# = 20
SAL = SAL + 100
WHERE EMP# = 1004
104
DML – DELETE Statement
Syntax :
105
PROGRAM PREPARATION
106
DB2 PROGRAM PREPARATION
107
PROGRAM PREPARATION
COBOL
PROGRAM
WITH
EMBEDDED
SQL
MODIFIED DBRM’S
COBOL PGM
DB2 PRECOMPILER
DB2
COMPILE & CATALOG BIND
LINKEDIT
LOAD
PACKAGE
MODULE
108
EXECUTION CYCLE OF DB2 PROGRAM
• Precompilation
The Precompilation separates SQL statements from
NON-SQL statements.From this step onwards the further
processing is done in two separate paths.
NON-SQL PATH:
• Compilation And Linking
The non-SQL part of COBOL program goes through
compilation and linking ,after all the SQL statements are
commented .This results in a LOAD module
109
EXECUTION CYCLE OF DB2 PROGRAM (CONT.)
SQL PATH :
•Bind
110
EXECUTION CYCLE OF DB2 PROGRAM(CONT)
111
WHAT IS ...?
• DBRM
DBRM is a module containing SQL statements
extracted from the source program by the DB2 precompiler.It
is stored as a member of a partitioned dataset. It is not stored
in the db2 catalog or directory.
•BIND
Bind is a DB2 routine that analyses each SQL
statement and determines the most efficient access path to get
the data.It also checks for errors and accesses the DB2 catalog
to check that the resources mentioned in the SQL statement
actually exists and also that the binder is authorised to perform
each statement in the program.
112
WHAT IS ...?
•PLAN
113
WHAT IS ?
•PACKAGE
114
WHAT IS ...?
•COLLECTION
115
DB2 - APPLICATION PROGRAMMING
116
HOST LANGUAGES
♦ COBOL
♦ PL/I
♦ C
♦ ASSEMBLER
♦ FORTRAN
117
EMBEDDED SQL
118
STATIC SQL
Statement :
119
SQL Delimiters in COBOL
EXEC SQL
SQL Statement
END-EXEC
120
COBOL Host Variables
121
COBOL Host Variable
Example :
EXEC SQL
SELECT ENAME
INTO :WS-ENM
FROM EMP
WHERE EMP# = 1000
END-EXEC.
122
SQLCA
123
INCLUDE
EXEC SQL
INCLUDE SQLCA | SQLDA | member-name
END-EXEC.
124
ERROR HANDLING
125
ERROR HANDLING
WHENEVER :
EXEC SQL
WHENEVER < condition > < action >
END-EXEC.
Condition : SQLWARNING
SQLERROR
NOT FOUND
Action : CONTINUE
PERFORM para-name
126
PROCESSING MULTIPLE ROWS
Multi-Row
SELECT
TABLE
RESULT Retrieves one
TABLE row at a time.
127
DECLARE CURSOR
EXEC SQL
DECLARE CUREMP CURSOR FOR
SELECT EMP#, ENAME
FROM EMP
WHERE DEPT# = 10
END-EXEC.
128
OPEN CURSOR
EXEC SQL
OPEN cursor-name
END-EXEC.
129
FETCH CURSOR
EXEC SQL
FETCH CUREMP
INTO :WS-ENO, :WS-ENM
END-EXEC.
130
End-Of-Data Processing
TABLE
1000 Arun
1002 Rahul
1003 Rohit
131
CLOSE CURSOR
EXEC SQL
CLOSE CUREMP
END-EXEC.
132
DYNAMIC SQL
Statement :
At statement execution.
Access strategy not saved.
133
Executing a program using Dynamic SQL
Program
Translate,
Capture,
precompile Bind DSQL
format DSQL
DSQL
Precompile,
Link, Process
Bind DSQL
Process
Static SQL
134
STATIC vs DYNAMIC
Statement :
Bind :
135
TYPES OF DYNAMIC SQL
♦ EXECUTE IMMEDIATE
136
EXECUTE IMMDEDIATE
137
EXECUTE IMMEDIATE
Syntax :
EXEC SQL
EXECUTE IMMEDIATE :host variable
END-EXEC.
Example :
138
EXECUTE IMMEDIATE
Example ( Cond. )
PROCEDURE DIVISION.
MOVE 32 TO WS-HOSTVAR-LEN.
MOVE “DELETE FROM EMP WHERE DEPT# = 10” TO
WS-HOSTVAR-TXT.
EXEC SQL
EXECUTE IMMEDIATE :WS-HOSTVAR
END-EXEC.
139
NON-SELECT Dynamic SQL
140
Parameter Markers
141
FIXED LIST SELECT
142
FIXED LIST SELECT Dynamic SQL
Example :
SQL to execute :
SELECT EMP#, ENAME
FROM EMP
WHERE DEPT# = ?
143
FIXED LIST SELECT Dynamic SQL
Example (Cond.)
144
VARYING LIST SELECT Dynamic SQL
145
DB2 FEATURES
146
Transactions : ACID Properties
147
CONCURRENCY
Attributes of locks :
148
CONCURRENCY : DeadLock
User 1 User 2
Lock Requested
Lock held Lock held
Object 1 Object 2
149
NEED FOR BACKUP
FAILURES :
• Hardware Failure
• Program Failure
• Natural Calamity
150
RECOVERY UTILITIES
- MERGECOPY
• RECOVER - RECOVER
- QUIESCE
- REPORT
- CHECK
- REPAIR
151
RECOVERY UTILITIES
COPY
• Backup of pages are prepared
• Copies pages of a tablespace into a sequential dataset.
• DB2 lets users take a full backup called IMAGECOPY
or backup of changes only since the last backup called
INCREMENTAL backup.
MERGECOPY :
152
RECOVERY UTILITIES
QUIESCE :
CHECK :
153
RECOVERY UTILITIES
REPORT :
REPAIR :
154
SECURITY
DB2 Objects.
155
How Protection Is Achieved ?
156
DB2 Privileges
157
GRANTING Explicit Privileges
Syntax :
GRANT privilege
ON object-type object-name
TO ( user-id | PUBLIC )
WITH GRANT OPTION.
158
REVOKING Privileges
Syntax :
REVOKE privilege
ON object-type, object-name
FROM (user-id | PUBLIC )
159
Cascading REVOKE
160
DB2 - Utilities
LOAD
UNLOAD
REORG
RUNSTATS
161
LOAD Utility
Input :
• File containing data.
Output :
• Loaded table.
• Summary report of errors encountered.
162
LOAD Utility
Features :
• Indexes built.
163
UNLOAD Utility
OUTPUT:
• Sequential data set containing the unloaded data.
• Load control statements.
164
REORGANISING Utility
REORG :
165
RUNSTATS
166
SUMMARY
167