UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Performance aspects of IMS Meagher, Robert Gerard 1980

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Notice for Google Chrome users:
If you are having trouble viewing or searching the PDF with Google Chrome, please download it here instead.

Item Metadata

Download

Media
831-UBC_1980_A6_7 M43.pdf [ 4.36MB ]
Metadata
JSON: 831-1.0051827.json
JSON-LD: 831-1.0051827-ld.json
RDF/XML (Pretty): 831-1.0051827-rdf.xml
RDF/JSON: 831-1.0051827-rdf.json
Turtle: 831-1.0051827-turtle.txt
N-Triples: 831-1.0051827-rdf-ntriples.txt
Original Record: 831-1.0051827-source.json
Full Text
831-1.0051827-fulltext.txt
Citation
831-1.0051827.ris

Full Text

PERFORMANCE ASPECTS OF IMS by ^ J EOBERT GERARD MEAGHER B . S c , S t . F r a n c i s X a v i e r U n i v e r s i t y , 1978 A THESIS SUBMITTED IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE DEGREE OF THE FACULTY OF GRADUATE STUDIES ( Department o f Computer Science) We a c c e p t t h i s t h e s i s as co n f o r m i n g t o t h e r e g u i r e d s t a n d a r d . THE UNIVERSITY OF BRITISH COLUMBIA June, 1980 (c) Robert G e r a r d Meagher, 1980 MASTER OF SCIENCE i n I n p r e s e n t i n g t h i s t h e s i s i n p a r t i a l f u l f i l m e n t of t h e r e g u i r e m e n t s f o r an advanced degree a t the U n i v e r s i t y o f B r i t i s h C o lumbia, I agree t h a t the L i b r a r y s h a l l make i t f r e e l y a v a i l a b l e f o r r e f e r e n c e and s t u d y . I f u r t h e r agree t h a t p e r m i s s i o n f o r e x t e n s i v e c o p y i n g o f t h i s t h e s i s f o r s c h o l a r l y purposes may be g r a n t e d by t h e Head of my Department or by h i s r e p r e s e n t a t i v e s . I t i s understood t h a t c o p y i n g o r p u b l i c a t i o n o f t h i s t h e s i s f o r f i n a n c i a l g a i n s h a l l n ot be a l l o w e d w i t h o u t my w r i t t e n p e r m i s s i o n , . Department of Computer S c i e n c e The U n i v e r s i t y of B r i t i s h Columbia 2075 Wesbrook P l a c e Vancouver, Canada V6T 1W5 June 25, 1980 i i i A b s t r a c t T h i s paper d e a l s w i t h t h e t u n i n g of t h e d a t a base management system IMS.. We w i l l l o o k a t IMS i n some d e t a i l ; i n p a r t i c u l a r , we w i l l c o n s i d e r t h o s e a s p e c t s of IMS which a r e tho u g h t t o have a measurable e f f e c t on performance a t an IMS i n s t a l l a t i o n . These a r e : the o r i g i n a l d e s i g n o f the d a t a base, t h e a d o p t i o n o f l o g i c a l r e l a t i o n s h i p s and secondary i n d e x e s and the c h o i c e o f a c c e s s method. Other f e a t u r e s a r e thou g h t t o have a l e s s e r e f f e c t but some of t h e s e w i l l a l s o be c o n s i d e r e d i These a s p e c t s w i l l be e v a l u a t e d by t h e i r a b i l i t y t o d e c r e a s e p r o c e s s i n g t i m e , i n c r e a s e f l e x i b i l i t y and/or de c r e a s e s t o r a g e r e g u i r e m e n t s . The p r o p o s a l s p r e s e n t e d i n t h e f i r s t p a r t of t h e paper w i l l be f u r t h e r e v a l u a t e d i n t h e f i n a l c h a p t e r . . The e x p e r i e n c e s of t h r e e IMS us e r s w i l l be i n c o r p o r a t e d t o s u p p o r t or r e f u t e t h e s e p r o p o s a l s , as w e l l as t o p r o v i d e i n s i g h t i n t o t h e k i n d s of performance s t u d i e s b e i n g done, when th e y a r e done and what r e s u l t s a r e e x p e c t e d . i v T a ble of C o n t e n t s A b s t r a c t - i i i L i s t o f T a b l e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v i L i s t of F i g u r e s ; . . . . . . . . . . . . . . . . . i . . . . . . . . . . . . . . . v i i AcJcnow l e dgements. v i i i 1. . P r e l u d e . . . . . . 1 Data Base Management Systems................ 1 I n f o r m a t i o n Management System;.. , 3 Per f o r m a n c e . . . . . . . . . . . . 3 S y n o p s i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. IMS Overview 6 I n t r o d u c t i o n , . • 6 Data Base O r g a n i z a t i o n . . . . . . . . . . . . . . . . . . . . . . 6 Data Base D e s i g n . . . . . . . . . . . . . . . . . . . . . . . 9 L o g i c a l R e l a t i o n s h i p s . . . . . . . . . 9 Secondary I n d e x e s . . . . . . . . . . . . . . . . . . . . . . . 11 Access Methods.... 12 C o n t r o l . . . . . 17 Te l e c o m m u n i c a t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 U t i l i t i e s . 22 C h e c k p o i n t / R e s t a r t . . 23 R e o r g a n i z a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . 23 S t a t i s t i c a l A n a l y s i s ; . . . . . . . . . . . , . . . . . . 24 3.. Database D e s i g n . . . . . 25 I n t r o d u c t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..._ 25 Data Model C h a r a c t e r i s t i c s . . . . . . . . . . . . . . . . . . . . 26 The Data Base Record.... 28 L o g i c a l R e l a t i o n s h i p s . . . . . . . . . . . . . . . . . . . . . . . 36 Secondary I n d e x e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4. A c c e s s Methods.. 47 I n t r o d u c t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 HSAM 48 HIS AM 49 HIDAM............................ ........... . 54 HDAM. 57 Space C o n s i d e r a t i o n s . ............... '» ....... . 58 Time C o n s i d e r a t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . 66 C o n s t r a i n t s and E x t e n s i o n s 69 D i s t r i b u t e d Free Space.................. 69 M u l t i p l e Data Set Groups . 71 Root-Only Access Methods..... 72 C h i l d - T w i n P o i n t e r s . . . . . . . . . . . . . . . . . . . . . 73 V 5., Other Performance C o n s i d e r a t i o n s . . . . . . . . . . . . . . 74 I n t r o d u c t i o n . 74 F a s t P a t h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 E x i t R o u t i n e s . . . 75 R e o r g a n i z a t i o n . . . . , 75 B u f f e r i n g F a c i l i t i e s * 76 A p p l i c a t i o n Programming 79 Main S t o r a g e Reguirements................... 81 6.. A p p l i c a t i o n s • . 83 I n t r o d u c t i o n . 83 Case 1: B.C. Hydro 84 Case 2: I.C.B.C. 86 Case 3: B.C. . T e l 88 C o n c l u s i o n s . . 90 F o o t n o t e s . 93 B i b l i o g r a p h y • 94 v i L i s t of T a b l e s Table 2.1 P r o c e s s i n g R o u t i n e s and P h y s i c a l Record I n t e r f a c e s f o r use w i t h IMS d a t a bases. Table 2. 2 DL/I s u b r o u t i n e codes and d e s c r i p t i o n s . T a b l e 3.1 E n t i t i e s , a t t r i b u t e s and r e l a t i o n s h i p s o f the ORDER data base. Table 3.2 Grouping a t t r i b u t e s i n t o segments. Table 4.1 A b b r e v i a t i o n s and d e s c r i p t i o n s . Table 4.2 Access method r a t i n g s f o r query response time. Table 4.3 Access method c o n s t r a i n t s . v i i L i s t o f F i g u r e s F i g u r e 2. 1 L o g i c a l d a t a s t r u c t u r e of t h e P a r t s d a t a base* . F i g u r e 2. 2 L o g i c a l R e l a t i o n s h i p between P a r t s and Orders d a t a bases* F i g u r e 2. 3 Secondary I n d e x i n g . F i g u r e 2. 4 Access methods and s t o r a g e s t r u c t u r e s . F i g u r e 2. 5 HSAM i m p l e m e n t a t i o n . F i g u r e 2. 6 HISAM i m p l e m e n t a t i o n . . F i g u r e 2. 7 HDAM i m p l e m e n t a t i o n . F i g u r e 2. 8 HIDAM i m p l e m e n t a t i o n . F i g u r e 2. 9 IMS/VS system f l o w . F i g u r e 3. 1 ORDER d a t a base - f i r s t normal form. . F i g u r e 3. 2 ORDER d a t a base - second normal form. F i g u r e 3. 3 ORDER d a t a base - t h i r d normal form.. F i g u r e 3. 3 ORDER d a t a base - f o u r t h normal form.. F i g u r e 3. 5 U n i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p . F i g u r e 3 . 6 B i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p u s i n g p h y s i c a l p a i r i n g . F i g u r e 3. 7 B i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p u s i n g v i r t u a l p a i r i n g * F i g u r e 3. 8 An o r d e r p r o c e s s i n g d a t a base. F i g u r e 3. 9 Secondary d a t a s t r u c t u r e . . F i g u r e 4. L o g i c a l r e c o r d of an ISAM/OSAM i m p l e m e n t a t i o n of a HISAM d a t a base. . F i g u r e 4. 2 L o g i c a l r e c o r d of a VSAM i m p l e m e n t a t i o n of a HISAM d a t a base. F i g u r e 4. 3 E f f e c t o f l o g i c a l r e c o r d l e n g t h on s t o r a g e space.. F i g u r e 4. 4 E f f e c t of c o n t r o l i n t e r v a l s i z e on s t o r a g e space.. F i g u r e 4. 5 C o n t r o l i n t e r v a l o f a HIDAM data base. v i i i Acknowledgements I would l i k e t o s i n c e r e l y thank Dr. P a u l G i l m o r e f o r h i s g u i d a n c e , c o n s t r u c t i v e c r i t i c i s m and f i n a n c i a l s u p p o r t f o r t h i s p r o j e c t . I am i n d e b t e d t o Gary Watson of B.C. Hydro, S a l i m Nuraney of I.C.B.C. and E m i l e C d t i o f B.C. T e l f o r t h e i r v a l u a b l e d o n a t i o n o f t i m e and e x p e r i e n c e . 1 Chapter J. - P r e l u d e Data Base Management Systems As we e n t e r t h e 80's the data and i n f o r m a t i o n p r o c e s s i n g r e g u i r e m e n t s of modern s o c i e t y are becoming i n c r e a s i n g l y complex and v a s t . As methods of p r o d u c t i o n and m a r k e t i n g have p r o g r e s s e d i n l e a p s and bounds, so t o o has t h e d a t a p r o c e s s i n g i n d u s t r y . As r e c e n t l y as 20 y e a r s ago, d a t a p r o c e s s i n g departments (as we know them today) were n o n e x i s t e n t . Today they a r e the very h e a r t o f t h e o r g a n i z a t i o n . As t h e s i z e and c o m p l e x i t y of o r g a n i z a t i o n s have i n c r e a s e d , t h e i r i n f o r m a t i o n needs have i n c r e a s e d even more r a p i d l y . No l o n g e r i s i t p o s s i b l e f o r one i n d i v i d u a l t o u n d e r s t a n d c o m p l e t e l y a l l a s p e c t s of the o r g a n i z a t i o n . H i e r a r c h i e s of c o n t r o l d e velop. Jobs become more and more s p e c i a l i z e d . O r g a n i z a t i o n s a r e a f f e c t e d not o n l y by l o c a l demands and t a s t e s but a l s o by governmental l e g i s l a t i o n and w o r l d t r a d e . F a c t s and f i g u r e s must be c o l l e c t e d , s t o r e d and made a v a i l a b l e f o r f u t u r e r e f e r e n c e - f o r t h e day t o day o p e r a t i o n of the company, t o s a t i s f y l e g a l r e g u i r e m e n t s and f o r management d e c i s i o n making. "The i m p o r t a n c e o f d a t a t o the f u n c t i o n i n g of t h e o r g a n i z a t i o n , c o u p l e d w i t h t h e l a r g e i n v e s t m e n t i n d e v e l o p i n g and m a i n t a i n i n g t h e data base, emphasizes t h a t d a t a s h o u l d be managed t o the same degree as o t h e r v a l u a b l e c o r p o r a t e r e s o u r c e s * 1 1 1 A d a t a base i s a c o l l e c t i o n of t h e s e f a c t s and f i g u r e s 2 f o r use by the o r g a n i z a t i o n . . A l t h o u g h not n e c e s s a r i l y , t h e dat a base i s o f t e n s t o r e d on tape o r d i s k w i t h a computer b e i n g used f o r s t o r a g e , r e t r i e v a l and p r o c e s s i n g . I t i s o f t e n t h e c a s e t h a t t h e s e data bases c o n t a i n g r e a t g u a n t i t i e s o f data of v a r i o u s k i n d s which a r e r e g u i r e d f o r a v a r i e t y o f purposes by s e v e r a l u s e r s . . Such a s c e n a r i o has prompted t h e development of a p a r t i c u l a r p i e c e of s o f t w a r e known as a Data Base Management System (DBMS). B a s i c a l l y , a DBMS p r o v i d e s a means by which the data can be s h a r e d by d i f f e r e n t u s e r s t o reduce redundancy and> i n c o n s i s t e n c y and t o e n f o r c e s t a n d a r d s and s e c u r i t y r e s t r i c t i o n s . I t i s , i n f a c t , a t o o l f o r managing the d a t a . . Many commercial d a t a base management systems have been developed and marketed. . The g e n e r a l i z e d f e a t u r e s of t h e s e systems make them a d a p t a b l e t o the p a r t i c u l a r r e g u i r e m e n t s o f d i f f e r e n t o r g a n i z a t i o n s , and once adopted, m o d i f i c a t i o n s a r e p o s s i b l e t o r e f l e c t the changing d a t a p r o c e s s i n g r e g u i r e m e n t s of t h e e n t e r p r i s e . Data base management systems have been on t h e market f o r the p a s t 10 y e a r s but o n l y r e c e n t l y have they been used e x t e n s i v e l y . New developments i n da t a base t e c h n o l o g y and a p p l i c a t i o n s a r e making i t i n c r e a s i n g l y e v i d e n t t h a t a DBMS i s a r e g u i r e m e n t i n most data p r o c e s s i n g e n v i r o n m e n t s . "At the 1979 I n d u s t r y B r i e f i n g h e l d by I n t e r n a t i o n a l Data C o r p o r a t i o n , i t was p r o j e c t e d t h a t d a t a management s o f t w a r e o f a l l t y p e s w i l l a c count f o r over h a l f of the p r o p r i e t a r y s o f t w a r e market revenues i n 1983 (e s t i m a t e d t o be $2.3 b i l l i o n ) . A s i z e a b l e p o r t i o n o f t h i s amount w i l l be spent s p e c i f i c a l l y f o r d a t a base management s y s t e m s . 1 , 2 3 I f i f 2 E i a t i o n Management System -IBM's I n f o r m a t i o n Management System (IMS) i s one of the o l d e s t d a t a base management systems on t h e market and y e t i t i s one o f t h e most s o p h i s t i c a t e d i n terms of o p t i o n s and f e a t u r e s a v a i l a b l e . I t i s a l s o , by f a r , the most w i d e l y used of a l l DBMSs.. I n 1979 the t o t a l number o f us e r s of IMS was a p p r o x i m a t e l y 1200. 3 IMS has gone through s e v e r a l s t a g e s of development. The i n i t i a l i m p l e m e n t a t i o n s ran under t h e o p e r a t i n g system OS/360 and were known as IMS/360 V e r s i o n 1 and IMS/360 V e r s i o n 2. The c u r r e n t v e r s i o n i s IMS/VS V e r s i o n 1 which r u n s under OS/VS (O p e r a t i n g S y s t e m / V i r t u a l S t o r a g e ) . This paper w i l l be concerned w i t h t h e l a t t e r which f o r the sake o f b r e v i t y w i l l be s h o r t e n e d t o IMS/VS o r s i m p l y IMS. Performance With growing i n f o r m a t i o n p r o c e s s i n g demands i t becomes i n c r e a s i n g l y i m p o r t a n t t h a t t h i s p r o c e s s i n g i s ex e c u t e d w i t h i n an a c c e p t a b l e t i m e frame and f o r an a c c e p t a b l e c o s t . . Thus, the c o n c e p t of performance, and i n t h i s case t h e performance of a DBMS, must be c o n s i d e r e d . . "... performance may be i n t e r p r e t e d as the t e c h n i c a l e g u i v a l e n t of t h e economic n o t i o n o f v a l u e . That i s , performance i s what makes a system v a l u a b l e t o i t s u s e r s . L i k e v a l u e , performance i s o n l y one of t h e two f a c e s o f r e a l i t y i n t h e economic w o r l d , the o t h e r s i d e b e i n g cost.'?* 4 To a c h i e v e a s p e c i f i e d l e v e l of performance f o r a l l u s e r s , t h e d a t a base d e s i g n e r must be concerned w i t h t h e c o s t / v a l u e t r a d e o f f s a s s o c i a t e d w i t h each p o t e n t i a l use of t h e d a t a base and must choose t h o s e d e s i g n s which o p t i m i z e t h e o v e r a l l performance; Such performance e v a l u a t i o n s t u d i e s a r e an ongoing c o n c e r n and do not y i e l d a permanent s o l u t i o n . As an e n t e r p r i s e ' s d a t a p r o c e s s i n g r e q u i r e m e n t s change, i t w i l l be n e c e s s a r y t o c o n s i d e r t h e s e changes (as f o r the i n i t i a l d e sign) from a performance s t a n d p o i n t . With a d a t a base management system a t l e a s t two a s p e c t s of performance a r e e v i d e n t - t h o s e which concern t h e d e v e l o p e r s of the DBMS and t h o s e which concern t h e i n d i v i d u a l i n s t a l l a t i o n and i t s p a r t i c u l a r a p p l i c a t i o n . . T h i s l a t t e r a s p e c t , which can b e s t be d e s c r i b e d as t u n i n g , w i l l be t h e s u b j e c t of t h i s paper.. Because of t h e n a t u r e o f a DBMS, i t s performance i s very much dependent upon the environment i n which i t i s b e i n g run and i n p a r t i c u l a r , the d a t a p r o c e s s i n g r e q u i r e m e n t s and the n a t u r e o f the a p p l i c a t i o n data o f t h e i n s t a l l a t i o n * \ 5 S y n o p s i s T h i s paper i s concerned w i t h data base management systems, i n p a r t i c u l a r , IMS/VS. I t i s a l s o concerned w i t h performance, i n p a r t i c u l a r , t h e t u n i n g of IMS/VS.. What w i l l be p r e s e n t e d i n the e n s u i n g c h a p t e r s w i l l be of i m p o r t a n c e t o system d e s i g n e r s and data base a d m i n i s t r a t o r s both d u r i n g t h e i n i t i a l d e s i g n of t h e IMS a p p l i c a t i o n and whenever any major m o d i f i c a t i o n s are made a t the i n s t a l l a t i o n . Only the most i m p o r t a n t a s p e c t s - t h o s e which a f f e c t performance most - w i l l be c o n s i d e r e d . One c o u l d e a s i l y go on a t g r e a t l e n g t h o u t l i n i n g minute d e t a i l s and t h e i r p r o b a b l e e f f e c t upon performance, however, i f t h e r e i s no n o t i c a b l e improvement i n performance, the s t u d y i s f u t i l e from a p r a c t i c a l s t a n d p o i n t , and t h a t i s what i t i s about p r a c t i c a l i t y . I n C h apter 2, IMS/VS w i l l be d i s c u s s e d i n s u f f i c i e n t d e t a i l s c as t o b r i e f l y i n t r o d u c e t h e r e a d e r t o the s u b j e c t . I t w i l l t h e n be p o s s i b l e t o c o n s i d e r performance i n c o n t e x t . Chapter 3 d e a l s w i t h t h e d e s i g n of the IMS d a t a base - how t h e data base s h o u l d be o r g a n i z e d ; Chapter 4 c o v e r s the a c c e s s methods used - how t h e data bases a r e a r r a n g e d on secondary s t o r a g e ; and Chapter 5 t r e a t s t h r e e o t h e r c o n s i d e r a t i o n s b u f f e r i n g , a p p l i c a t i o n programming and main s t o r a g e r e g u i r e m e n t s . C h a p t e r 6 w i l l r e l a t e d the t u n i n g e x p e r i e n c e s of t h r e e IMS i n s t a l l a t i o n s t o t h e a s p e c t s o f performance i n t r o d u c e d i n C h a p t e r s 3, 4 and 5. 6 Chapter 2 - IMS Overview In t r o d U G t i o n I n t h i s c h a p t e r an attempt w i l l be made to i n t r o d u c e t h e b a s i c s t r u c t u r a l e n t i t i e s of IMS. T h i s t r e a t i s e w i l l i n no way be complete. I t i s o f f e r e d here as background m a t e r i a l t o the e n s u i n g c h a p t e r s and hence w i l l be o r i e n t e d towards t h o s e t h i n g s which a f f e c t t h e performance of an IMS i n s t a l l a t i o n . . F o r an i n d e p t h coverage of t h i s t o p i c , the i n t e r e s t e d r e a d e r i s d i r e c t e d t o t h e f o l l o w i n g s o u r c e s : C h a p t e r s 13-18 o f D a t e [ 6 ] , pages 84-168 o f t h e IBM Systems J o u r n a l [ 2 7 ] , t h e IMS/VS G e n e r a l I n f o r m a t i o n Manual [ 1 6 ] and the IMS/VS P r i m e r [ 1 9 ] . . A l l of the above a r e v e r y r e a d a b l e and thorough.. F o r i n f o r m a t i o n not c o n t a i n e d i n t h e s e , one s h o u l d c o n s u l t t h e o t h e r IMS/VS manuals l i s t e d i n the b i b l i o g r a p h y . . Data Base O r g a n i z a t i o n IMS/VS i s a h i e r a r c h i c a l d a t a base management system. A p a r t i c u l a r i n s t a l l a t i o n w i l l p r o b a b l y c o n s i s t of s e v e r a l d a t a bases such as t h e one i l l u s t r a t e d i n F i g u r e 2. 1 . . 7 PART STOCK ORDER DETAIL F i g . . 2.1 L o g i c a l d ata s t r u c t u r e o f the PARTS d a t a base. T h i s i s a l o g i c a l r e p r e s e n t a t i o n of the p h y s i c a l d a t a base. L o g i c a l r e f e r s t o t h e way i n which the, data base i s viewed by v a r i o u s u s e r s . P h y s i c a l r e f e r s t o the way i n which the d a t a i s a c t u a l l y s t o r e d on magnetic tape o r d i r e c t a c c e s s s t o r a g e d e v i c e s . A h i e r a r c h y i s made up of p a r e n t - c h i l d r e l a t i o n s . I n t h i s example PART i s t h e p a r e n t of both STOCK and ORDER because i t i s i m m e d i a t e l y above i t i n the h i e r a r c h y . I n a s i m i l a r manner, ORDER i s t h e parent of DETAIL. C o r r e s p o n d i n g l y , DETAIL i s a c h i l d of ORDER and both STOCK and ORDER are c h i l d r e n of PART. A l l c h i l d r e n (which are of the same type) of a g i v e n p a r e n t a r e known as t w i n s . For example, a l l o c c u r r e n c e s of STOCK f o r a g i v e n PART are t w i n s . PART i s s a i d t o be the r o o t of the h i e r a r c h y because i t 8 has no p a r e n t . Each r o o t o c c u r r e n c e d e t e r m i n e s one data base r e c o r d which may c o n t a i n s e v e r a l o c c u r r e n c e s o f STOCK, ORDER and DETAIL. There w i l l of c o u r s e be s e v e r a l o c c u r r e n c e s o f PART and t h u s s e v e r a l data base r e c o r d s . PART, STOCK, ORDER and DETAIL a r e s a i d to be segments. The segment i s t h e s m a l l e s t amount of data which may be t r a n s f e r r e d by one a c c e s s t o t h e d a t a base. However, a segment i s made up of one o r more f i e l d s , f o r example, the PART segment may c o n t a i n f i e l d s which r e p r e s e n t the p a r t number, the p a r t name and the p a r t c o l o r . One of the f i e l d s o f a segment may be d e s i g n a t e d as t h e segment seguence f i e l d or key.. I f a segment has a key, segments of t h a t t y p e o c c u r under t h e i r p a r e n t segment i n a s c e n d i n g or d e s c e n d i n g key v a l u e seguence. For r o o t segments, t h e key must be unigue.. Other segments may have m u l t i p l e o c c u r r e n c e s o f the same key, but when i n s e r t i n g such a segment i t i s n e c e s s a r y t o s p e c i f y i f i t s h o u l d be p l a c e d FIRST, LAST or HERE ( c u r r e n t p o s i t i o n i n the h i e r a r c h y ) w i t h r e s p e c t t o o t h e r o c c u r r e n c e s of t h e same key. The seguence f i e l d i s a l s o used as a l l o r p a r t o f a s y m b o l i c p o i n t e r t o a segment i n a data base. The s y m b o l i c p o i n t e r i s a c t u a l l y t h e . c o n c a t e n a t i o n o f t h e keys i n the seguence f i e l d s of a l l segments t h a t must be r e t r i e v e d t o r e a c h the d e s i r e d segment, i n c l u d i n g t h e seguence- f i e l d key o f t h e d e s i r e d segment. A l l segments t h a t f a l l below a n o t h e r segment ( i . e . , i t s c h i l d r e n , i t s c h i l d r e n ' s c h i l d r e n , e t c . ) are known as i t s 9 dependents. The h i e r a r c h i c a l seguence i s t h e o r d e r i n which the h i e r a r c h y i s s t o r e d . In IMS t h e h i e r a r c h i c a l seguence f o l l o w s a p r e o r d e r t r a v e r s a l of t h e t r e e (see [ 2 ] , pp. 8 4 ) . When t h e da t a base o f F i g u r e 2.1 i s s t o r e d , i t w i l l c o n s i s t o f the f i r s t o c c u r r e n c e of PART f o l l o w e d by a l l STOCKS a s s o c i a t e d w i t h t h a t PART f o l l o w e d by a l l ORDERs a s s o c i a t e d w i t h t h a t PART. Each ORDER w i l l be f o l l o w e d i m m e d i a t e l y by a l l DETAILS a s s o c i a t e d w i t h t h a t ORDER. A l l o f t h i s c o m p r i s e s one da t a base r e c o r d and w i l l be f o l l o w e d by t h e next o c c u r r e n c e o f PART and thus t h e nex t d a t a base r e c o r d . Data Base Design When d e s i g n i n g a d a t a base f o r a p a r t i c u l a r i n s t a l l a t i o n , t h e r e a r e many f e a t u r e s of IMS which may be adapted t o b e s t s u i t the - environment. Three such t h i n g s w i l l be o u t l i n e d h e r e , namely: l o g i c a l r e l a t i o n s h i p s , secondary i n d e x e s and a c c e s s methods. L o g i c a l R e l a t i o n s h i p s As was n o t e d , each IMS l o c a t i o n w i l l p r o b a b l y c o n t a i n s e v e r a l d a t a bases. I t i s o f t e n t h e case t h a t t h e same d a t a must be c a r r i e d i n s e v e r a l data bases. T h i s redundant d a t a can r e s u l t i n i n c o n s i s t e n c i e s and i n c r e a s e t h e work r e g u i r e d i n i n s e r t i o n , d e l e t i o n and u p d a t i n g . To prevent t h i s , l o g i c a l r e l a t i o n s h i p s s h o u l d be used. L o g i c a l r e l a t i o n s h i p s p r o v i d e a f a c i l i t y t o i n t e r r e l a t e 10 segments from d i f f e r e n t h i e r a r c h i e s (data b a s e s ) . I n d o i n g so, new h i e r a r c h i c a l s t r u c t u r e s a r e d e f i n e d which p r o v i d e a d d i t i o n a l a c c e s s c a p a b i l i t i e s t o t h e segments i n v o l v e d . These segments need not come from d i f f e r e n t d a t a b a s e s , though, as i t i s p o s s i b l e t o l o g i c a l l y r e l a t e segments from the same d a t a base. . The b a s i c mechanism used t o b u i l d a l o g i c a l r e l a t i o n s h i p i s t o s p e c i f y a c h i l d segment as a l o g i c a l c h i l d , by r e l a t i n g i t t o a second p a r e n t , the l o g i c a l p a r e n t . . F i g u r e 2.2 i l l u s t r a t e s such a l o g i c a l r e l a t i o n s h i p . Parts Data Base Orders Data Base ORDER DETAIL SHIPMENT' F i g . . 2.2 L o g i c a l r e l a t i o n s h i p between P a r t s and Orders d a t a bases. In t h i s i l l u s t r a t i o n , DETAIL and SHIPMENT are both p h y s i c a l c h i l d r e n of OEDEE.. By making DETAIL a l o g i c a l c h i l d of PART, PART becomes the l o g i c a l p a r e n t of DETAIL. Thus, two acce s s p a t h s a r e p r o v i d e d t o DETAIL, through PART and t h r o u g h ORDEB. 11 Of c o u r s e , t h i s s t r u c t u r e i s t r a n s p a r e n t t o the user when he q u e r i e s the d a t a base.. S p e c i a l c i r c u m s t a n c e s a r i s e , though, when an attempt i s made t o i n s e r t , d e l e t e or r e p l a c e . For example, what i f a new DETAIL segment i s t o be i n s e r t e d and the c o r r e s p o n d i n g PART does not e x i s t ? I t i s n e c e s s a r y t o e x p l i c i t l y s t a t e the course of a c t i o n t o be f o l l o w e d i f such a s i t u a t i o n a r i s e s . Secondary Indexes I n IMS, a secondary i n d e x can be used t o i n d e x a g i v e n segment on the b a s i s of any f i e l d o f t h a t segment or on t h e b a s i s of any f i e l d i n a dependent o f t h a t segment. The f i e l d on which t h e i n d e x i s based may be a c o n c a t e n a t i o n of up t o f i v e such f i e l d s (from t h e same segment) t a k e n i n any o r d e r . Each secondary i n d e x r e p r e s e n t s a d i f f e r e n t a c c e s s path to t h e d a t a base o t h e r t h a n v i a t h e r o o t key.. Such an a c c e s s path can p r o v i d e f a s t e r r e t r i e v a l of d a t a . F i g u r e 2.3 shows an example of a secondary i n d e x . Parts Data Base. ORDER# Secondary Index Data Base STOCK DETAIL F i g . . 2.3 Secondary i n d e x i n g . 12 I t can be seen from t h i s i l l u s t r a t i o n t h a t a new d a t a base i s e s t a b l i s h e d which i s known as an i n d e x d a t a base.. I n t h i s example, the segment ORDER i s the i n d e x s o u r c e segment as i t c o n t a i n s t h e f i e l d ORDER* on which t h e i n d e x i s c o n s t r u c t e d . Each segment i n the in d e x d a t a base c o n t a i n s an ORDER* f i e l d and a p o i n t e r t o t h e a p p r o p r i a t e segment i n t h e P a r t s d a t a base. These segments a r e known as i n d e x p o i n t e r segments and are . o r d e r e d on t h e i n d e x f i e l d . The segment p o i n t e d t o by t h e index data base i s known as t h e i n d e x t a r g e t segment.. Of c o u r s e , the i n d e x s o u r c e segment and t h e index t a r g e t segment may be the same segment. The in d e x t a r g e t segment i s u s u a l l y , but not always* the r o o t segment of the data base. Access Methods IMS has two ac c e s s l e v e l s f o r t h e s t o r a g e of d a t a base r e c o r d s . The f i r s t l e v e l c o n s i s t s of the r o u t i n e s w i t h i n t h e IMS c o n t r o l program.. These r o u t i n e s p r o c e s s t h e second l e v e l a c c e s s methods which r e f l e c t t h e o r g a n i z a t i o n of the da t a on tape o r d i s k . See Table 2 .1 and F i g u r e 2 . 4 . 13 P r o c e s s i n g R o u t i n e s : H i e r a r c h i c a l S e q u e n t i a l Access Method (HSAM) H i e r a r c h i c a l Indexed S e q u e n t i a l Access Method (HISAM)* H i e r a r c h i c a l D i r e c t Access Method (HDAM) H i e r a r c h i c a l Indexed D i r e c t Access Method (HIDAM) P h y s i c a l Record I n t e r f a c e s : OS/VS Indexed S e q u e n t i a l Access Method (ISAM) OS/VS S e q u e n t i a l A ccess Method (SAM) OS/VS V i r t u a l S t o r a g e Access Method (VSAM) IMS/VS O v e r f l o w S e q u e n t i a l Access Method (OSAM) •HISAM can a l s o be used as a p h y s i c a l r e c o r d i n t e r f a c e . . T a b l e 2.1 P r o c e s s i n g R o u t i n e s and P h y s i c a l Record I n t e r f a c e s f o r use w i t h IMS data bases.. Processing Routines Data Bases Physical [ Record SAM Interfaces HIDAM piSAM/OSAA/j or VSAM HIDAM F i g . 2. 4 Access methods and s t o r a g e s t r u c t u r e s . 14 The a c t u a l data i s s t o r e d i n data s e t s , the o r g a n i z a t i o n of which i s determined by the p h y s i c a l r e c o r d i n t e r f a c e . . For example, an HSAM d a t a base i s s t o r e d i n a SAM d a t a s e t . . I n t h e c a s e o f a HISAM o r a HIDAM data base, two data s e t s a re needed (one f o r the i n d e x and one f o r t h e r e s t o f . the d a t a ) . I f VSAM i s chosen as t h e p h y s i c a l r e c o r d i n t e r f a c e , the i n d e x data s e t i s known as a Key Sequenced Data Set (KSDS) and t h e o t h e r d a t a s e t i s kncwn as an E n t r y Sequenced Data Set. (ESDS). O t h e r w i s e , ISAM or HISAM and OSAM a r e used f o r t h e s e p u r p o s e s . I n an HSAM da t a base, t h e h i e r a r c h i c a l sequence i s r e p r e s e n t e d e n t i r e l y by p h y s i c a l c o n t i g u i t y . The segments of each data* base r e c o r d are s t o r e d i n h i e r a r c h i c ( p r e o r d e r ) sequence, i n one or more c o n s e c u t i v e d a t a s e t r e c o r d s . The l a s t segment of one r e c o r d i s f o l l o w e d i m m e d i a t e l y by the r o o t segment o f t h e next data base r e c o r d . . See F i g u r e 2.5 f o r an i l l u s t r a t i o n . S A M one data base record F i g . . 2.5 HSAM i m p l e m e n t a t i o n . HISAM a l l o w s f o r i n d e x e d a c c e s s t o t h e r o o t segment and 1 5 s e q u e n t i a l a c c e s s t o dependent segments. I t r e g u i r e s two d a t a s e t s f o r i m p l e m e n t a t i o n . . These may be ISAM and OSAM or i f VSAM i s used, t h e s e two a r e r e p l a c e d by KSDS and ESDS r e s p e c t i v e l y . A g a i n , d a t a base r e c o r d s a r e s t o r e d i n p h y s i c a l l y c o n t i g u o u s l o c a t i o n s i n h i e r a r c h i c a l seguence. However, t h e s t o r a g e area i s d i v i d e d i n t o an i n d e x e d a r e a (ISAM or KSDS) and an o v e r f l o w area (OSAM or ESDS). The r o o t segment and as many segments of t h e da t a base r e c o r d as can be accommodated are s t o r e d i n the f o r m e r , the l a t t e r i s used t o s t o r e t h e remainder of t h e r e c o r d . P h y s i c a l p o i n t e r s a re used to c h a i n t h e i n d e x a r e a p a r t o f t h e r e c o r d t o the p a r t of the r e c o r d s t o r e d i n t h e o v e r f l o w area and to c h a i n subseguent d a t a s e t r e c o r d s i n the o v e r f l o w a r e a , i f more tha n one i s r e g u i r e d . See F i g u r e 2.6 f o r an i l l u s t r a t i o n . ISAM or KSDS OSAM or ESDS 3 F i g . . 2.6 HISAM i m p l e m e n t a t i o n . HDAM p r o v i d e s d i r e c t a c c e s s t o t h e r o o t segment by a h a s h i n g f u n c t i o n and c h a i n i n g . The s t o r a g e a r e a i s made up o f 1 6 a s e r i e s of data s e t s which a re d i v i d e d i n t o a r o o t a d d r e s s a b l e a r e a and an o v e r f l o w a r e a . E i t h e r OSAM or ESDS a r e used f o r thes e purposes. Each data s e t h o l d s a l l o c c u r r e n c e s of a g i v e n s e t of segment t y p e s . The r e c o r d s t r u c t u r e i s m a i n t a i n e d by p o i n t e r s which connect the segments i n h i e r a r c h i c a l seguence.. The r o o t a d d r e s s a b l e a r e a i s used t o s t o r e r o o t segments and a l i m i t e d number of dependent segments.. Synonym c h a i n s a r e used t o connect a l l r o o t segments t h a t hash t o the same data s e t r e c o r d . . Dependent segments o f a data base r e c o r d a r e s t o r e d i n t h e o v e r f l o w a r e a and are connected by p h y s i c a l p o i n t e r s . . See F i g u r e 2.7.. OSAM or ESDS Primary Data Set Secondary Data Set Root Addressable Area Overflow-Area F i g . 2.7 HDAM i m p l e m e n t a t i o n . 17 HIDAM i s s i m i l a r t o HDAM exc e p t t h a t r e c o r d s e q u e n c i n g i s m a i n t a i n e d t h r o u g h an i n d e x d a t a base which i s implemented as an ISAM o r KSDS da t a s e t . See F i g u r e 2.8. Primary Index Data Base HIDAM Physical Data Base HISAM or KSDS OSAM or ESDS Primary Data Set Secondary Data Set F i g 2.8 HIDAH i m p l e m e n t a t i o n . . C o n t r o l IMS/VS i s a c o n t r o l program t h a t p r o v i d e s d a t a management and d a t a communication management s e r v i c e s . I t o p e r a t e s under the c o n t r o l and w i t h t h e f a c i l i t i e s of OS/VS as one o f t h e OS/VS p r o c e s s i n g programs. I t t h e r e f o r e r e q u i r e s one o r more OS/VS r e g i o n s which, once c r e a t e d , a r e r e f e r r e d t o as IMS/VS 18 regions. Figure 2.9 shows the o v e r a l l system flow. os/vs Data Commun-i c a t i o n s T T C o n t r o l Region User.. T e r m i n a l s TMS/VS C o n t r o l Modules 3^ E Message S c h e d u l e r Common S e r v i c e A p p l i c a t i o n Programs f o r Message P r o c e s s i n g Message P r o c e s s i n g R e g i o n A p p l i c a t i o n Programs f o r B a t c h P r o c e s s i n g B a t c h Message P r o c e s s i n g Region] Fig. 2.9 IMS/VS system flow, s The OS/VS nucleus and i t s resident extensions provide the service modules and access methods necessary f o r an IMS/VS application program. The data communication feature of IMS/VS provides 19 f a c i l i t i e s t h a t p e r m i t users t o communicate through t e r m i n a l s w i t h a s i n g l e o n - l i n e e x e c u t i o n of t h e system. Communication may t a k e t h e form o f : (1) t r a n s m i s s i o n of messages between t e r m i n a l s and u s e r - w r i t t e n a p p l i c a t i o n programs; (2) t r a n s m i s s i o n of messages between t e r m i n a l s ; and (3) t r a n s m i s s i o n of commands and command re s p o n s e s between t e r m i n a l s and the o n - l i n e e x e c u t i o n . When an i n p u t message i s r e c e i v e d from a t e r m i n a l , t h e data communication f a c i l i t y c a l l s the common s e r v i c e and t h e message i s l o g g e d and queued.. Once messages are queued and w a i t i n g f o r p r o c e s s i n g and a r e g i o n i s a v a i l a b l e f o r message p r o c e s s i n g , c o n t r o l i s passed t o message s c h e d u l i n g . There i t i s d e t e r m i n e d from t h e message p r e f i x which message p r o c e s s i n g program i s needed.. I f n e c e s s a r y , t h i s a p p l i c a t i o n program i s l o a d e d ; c o n t r o l i s th e n passed t o i t . The a p p l i c a t i o n program w i l l t hen make r e q u e s t s f o r i n p u t messages and/or d a t a from t h e d a t a bases.. These r e q u e s t s a re handled by Data Language/I (DL/I) which r e f e r e n c e s e i t h e r common s e r v i c e ( f o r gueued messages) o r IMS d a t a bases ( f o r dat a base r e g u e s t s ) . The a p p l i c a t i o n program may a l s o g e n e r a t e i t s own messages f o r gueuing o r make m o d i f i c a t i o n s t o the d a t a bases. These a p p l i c a t i o n programs a r e w r i t t e n i n a host language ( P L / I , COBOL or Assembler Language) from which DL/I may be i n v o k e d by s u b r o u t i n e c a l l s . There a r e n i n e such DL/I s u b r o u t i n e s . . See Table 2.2 f o r a l i s t and d e s c r i p t i o n s . 20 Code D e s c r i p t i o n GO Get Unique GN Get Next GNP Get Next W i t h i n P a r e n t GHO Get Hold Unique GHN Get Hold Next GHNP Get Hold Next W i t h i n P a r e n t ISRT I n s e r t ,. DLET D e l e t e REPL Replace T a b l e 2. 2 DL/I s u b r o u t i n e codes and d e s c r i p t i o n s . These DL/I c a l l s e n a ble t h e a p p l i c a t i o n program t o n a v i g a t e t h r o u g h t h e data base. A p o s i t i o n p o i n t e r (as many i as one f o r each p o s s i b l e path i n the h i e r a r c h i c a l t r e e ) marks the p r o g r e s s t h r o u g h the data base i n a p r e o r d e r t r a v e r s a l o f th e d a t a base t r e e . . When the a p p l i c a t i o n program t e r m i n a t e s or r e q u e s t s a n o t h e r i n p u t message, a l l i t s queued output messages a re t r a n s m i t t e d t o the d e s i g n a t e d o u t p u t t e r m i n a l s . IMS/VS can a l s o be used f o r b a t c h p r o c e s s i n g . . In t h i s c a s e , a s u b s e t of t h e IMS/VS c o n t r o l f a c i l i t y , the b a t c h a p p l i c a t i o n program and DL/I a l l o p e r a t e out o f a s i n g l e OS/VS r e g i o n . These b a t c h p r o c e s s i n g j o b s a re s u b m i t t e d as o r d i n a r y 21 OS/VS j o b s and cannot use t h e IMS/VS da t a bases c o n c u r r e n t l y w i t h t h e message p r o c e s s i n g programs. For each a p p l i c a t i o n program (batch or message p r o c e s s i n g ) a program s p e c i f i c a t i o n b l o c k (PSB) i s c r e a t e d . I t d e f i n e s the a p p l i c a t i o n d a t a s t r u c t u r e r e g u i r e d by t h a t a p p l i c a t i o n program.. Each PSB c o n t a i n s one o r more program communication b l o c k (PCB), one f o r each l o g i c a l data base the program i n t e n d s to use. The PCB p r o v i d e s a mapping from the l o g i c a l d a t a base to the p h y s i c a l data base. . I t a l s o s p e c i f i e s t h e k i n d s of a c c e s s e s a l l o w e d by t h e program, i e . read o n l y , update, i n s e r t , and/or d e l e t e . T e l e c o m m u n i c a t i o n s The t e l e c o m m u n i c a t i o n s f a c i l i t y o f IMS/VS p r o v i d e s t h e l i n k a g e between t e r m i n a l s and t h e remainder of the IMS/VS system. Because o f the l a r g e number of t e r m i n a l t y p e s s u p p o r t e d by IMS/VS, the concept of a l o g i c a l t e r m i n a l has been p r o v i d e d . A l o g i c a l t e r m i n a l i s an a b s t r a c t i o n of a r e a l t e r m i n a l i n which o n l y t h o s e a s p e c t s n e c e s s a r y f o r w r i t i n g a p p l i c a t i o n programs and the o p e r a t i o n of the system are a p p a r e n t . One p h y s i c a l t e r m i n a l can have one o r more l o g i c a l t e r m i n a l s a s s o c i a t e d w i t h i t . . The IMS/VS u s e r r e f e r s t o a l o g i c a l t e r m i n a l and never has t o worry about p h y s i c a l t e r m i n a l a d d r e s s e s . I f a p h y s i c a l t e r m i n a l i s r e n d e r e d 22 i n o p e r a t i v e , the l o g i c a l t e r m i n a l s n o r m a l l y a s s o c i a t e d w i t h t h a t t e r m i n a l can be a s s i g n e d t o a n o t h e r p h y s i c a l t e r m i n a l . . The master t e r m i n a l i s a l o g i c a l t e r m i n a l t h a t a c t s as the o p e r a t i o n a l c e n t r e of IMS/VS. I t has complete c o n t r o l over IMS/VS and i s r e s p o n s i b l e f o r such t h i n g s as i n i t i a l s t a r t - u p , m o n i t o r i n g and f o r d y n a m i c a l l y a l t e r i n g t h e o p e r a t i o n o f the system. A l l i n p u t and o u t p u t messages a r e w r i t t e n t o a system l o g t o a s s i s t i n backout and r e c o v e r y . Each message i s a l s o gueued i n main s t o r a g e with d i r e c t a c c e s s s t o r a g e f o r backup as r e g u i r e d . I n t h i s way, messages can be r e c e i v e d by t h e system a l t h o u g h t h e r e s o u r c e s n e c e s s a r y t o p r o c e s s them may not be i m m e d i a t e l y a v a i l a b l e . A message f o r m a t t i n g s e r v i c e (MFS) a l l o w s a p p l i c a t i o n programs t o d e a l w i t h l o g i c a l messages i n s t e a d o f d e v i c e dependent d a t a . . MFS uses i n f o r m a t i o n about th e format o f messages g o i n g t o and coming from d e v i c e s and a p p l i c a t i o n programs t o do the f o r m a t t i n g . T h i s a l l o w s t h e user t o change t h e p r e s e n t a t i o n of d a t a on a , d e v i c e w i t h o u t a c t u a l l y c h a n g i n g t h e a p p l i c a t i o n program. U t i l i t i e s IMS/VS p r o v i d e s many u t i l i t i e s t o a i d i n the day t o day r u n n i n g of the system. Three such u t i l i t i e s w i l l be i n t r o d u c e d h e r e , namely: c h e c k p o i n t / r e s t a r t , r e o r g a n i z a t i o n 23 and s t a t i s t i c a l a n a l y s i s . . C h e c k p o i n t / R e s t a r t To ensure t h e i n t e g r i t y of i t s d a t a bases and message p r o c e s s i n g , IMS/VS uses c h e c k p o i n t / r e s t a r t . At r e g u l a r i n t e r v a l s d u r i n g IMS/VS e x e c u t i o n , c h e c k p o i n t s a r e w r i t t e n t o the l o g tape (see F i g u r e 2.9). T h i s i s t o l i m i t t h e amount o f r e p r o c e s s i n g r e q u i r e d i n the case o f an emergency r e s t a r t . A c h e c k p o i n t i s t a k e n a f t e r a s p e c i f i e d number o f l o g r e c o r d s a r e w r i t t e n t o t h e l o g tape o r a f t e r a c h e c k p o i n t command i s i s s u e d by an a p p l i c a t i o n program. I n case of f a i l u r e , IMS/VS i s r e s t a r t e d u s i n g t h e c u r r e n t l o g t a p e . The data base changes made by i n c o m p l e t e a p p l i c a t i o n programs are backed out and ou t p u t messages g e n e r a t e d by t h e s e programs are d e l e t e d . The i n p u t messages a l r e a d y p r o c e s s e d a re then requeued. Message p r o c e s s i n g programs are then r e s t a r t e d and b a t c h j o b s are r e s u b m i t t e d . . R e o r g a n i z a t i o n Over t i m e , i t may become n e c e s s a r y t o r e o r g a n i z e one o r more of the da t a bases. T h i s i s e x p e d i e n t when a number o f i n s e r t s and d e l e t e s cause segments of a data base r e c o r d t o be no l o n g e r p h y s i c a l l y a d j a c e n t o r when d e l e t e d segments c o n t i n u e t o occupy s t o r a g e space. Some s t r u c t u r a l changes may be made d u r i n g r e o r g a n i z a t i o n , f o r i n s t a n c e , a secondary i n d e x or a l o g i c a l r e l a t i o n s h i p may be added. There a r e t h r e e major s t e p s i n r e o r g a n i z a t i o n : (1) u n l o a d 24 t h e d a t a base; (2) d e l e t e the o l d s p a c e , r e d e f i n e the new space and o p t i o n a l l y make s t r u c t u r a l changes; and (3) r e s t o r e the d a t a base. Each of these s t e p s i n v o l v e s the r u n n i n g o f s e v e r a l u t i l i t y programs dependent upon the t ype of s t o r a g e s t r u c t u r e used and the number and k i n d of s t r u c t u r a l changes t o be made. S t a t i s t i c a l A n a l y s i s The IMS/VS s t a t i s t i c a l a n a l y s i s u t i l i t i e s p r o v i d e s t a t i s t i c a l i n f o r m a t i o n about o n l i n e IMS/VS o p e r a t i o n . The i n f o r m a t i o n i s c o l l e c t e d from the IMS/VS system l o g . V a r i o u s r e p o r t s a r e a v a i l a b l e g i v i n g such t h i n g s as the number o f messages gueued but not s e n t , message t r a f f i c f o r l i n e s , p h y s i c a l t e r m i n a l s and l o g i c a l t e r m i n a l s and t o t a l and average CPU t a s k t i m e s . T h i s i n f o r m a t i o n i s u s e f u l i n d e t e r m i n i n g system l o a d c h a r a c t e r i s t i c s and f o r d e t e c t i n g b o t t l e n e c k s . . 25 Chapter 3 - Data Base Design I n t r o d u c t i o n — T The d e s i g n of an IMS data base i s n e i t h e r unique nor s t r a i g h t f o r w a r d . . Depending on the i n s t a l l a t i o n , t h e d e s i g n s t a g e can l a s t f o r s e v e r a l months t o a year and, b e i n g a r e p e a t i n g p r o c e s s , the a n a l y s i s - d e s i g n - i m p l e m e n t a t i o n c y c l e w i l l p r o b a b l y e x i s t f o r t h e e n t i r e l i f e of the a p p l i c a t i o n . . I n t h e p a s t , d a t a base d e s i g n has been r e g a r d e d p r i m a r i l y as a p r o c e s s of c o n v e r s i o n - a d a p t i n g t h e e x i s t i n g f i l e s and d a t a s t r u c t u r e s t o make them c o m p a t i b l e w i t h the DBMS. A more open-minded and d e f i n i t i v e approach i s needed. "Data base g e n e r a t i o n s h o u l d not be r e g a r d e d as a c o n v e r s i o n problem, but as an o p p o r t u n i t y t o p l a n t h e o r g a n i z a t i o n , use and management of d a t a . . The emphasis s h o u l d be on a n a l y s i n g the d a t a r e q u i r e m e n t s of a b u s i n e s s or o t h e r e n t e r p r i s e , and on t h e a c c u r a t e r e f l e c t i o n of t h e s e r e q u i r e m e n t s i n the schemas." 6 F o r t u n a t e l y , t h e t r i a l and e r r o r approach t o data base d e s i g n i s b e i n g r e p l a c e d by a more p u r p o s i v e methodology. "Data base d e s i g n has moved a l o n g way from b e i n g a b l a c k a r t toward b e i n g a r i g o r o u s s c i e n c e , but t h e r e i s s t i l l room f o r t h e a r t i s t . The d e s i g n e r must s t i l l d i s c o v e r from time t o time a way of d o i n g something t h a t seems i m p o s s i b l e . ' ! 7 I n t h i s d e s i g n w i l l be model which c h a p t e r the pe c o n s i d e r e d , p e r m i t t h e rformance components of data base The c h a r a c t e r i s t i c s of a d a t a n e c e s s a r y p r o c e s s i n g w i t h i n an 26 o r g a n i z a t i o n w i l l be o u t l i n e d . F o l l o w i n g t h i s , t h e d e s i g n o f the d a t a base r e c o r d w i l l be examined and f i n a l l y t h e performance a s p e c t s o f l o g i c a l r e l a t i o n s h i p s and secondary i n d e x e s w i l l be l o o k e d a t . . F i r s t some d e f i n i t i o n s . E n t i t i e s a r e c o n c e p t s o r o b j e c t s of i n t e r e s t t o an o r g a n i z a t i o n , something about which f a c t s are g a t h e r e d and k e p t . 8 F o r example, departments and employees may be thought of as e n t i t e s . An e n t i t y may be connected t o a n o t h e r e n t i t y by a r e l a t i o n s h i p ; t h i s d e f i n e s a mapping between t h e two e n t i t i e s . F o r example, departments a r e made up of employees; the r e l a t i o n s h i p going from departments t o employees i s t h a t of employment.. E n t i t i e s a l s o have a t t r i b u t e s . An a t t r i b u t e i s a p r o p e r t y o f an e n t i t y and would not n o r m a l l y be m e a n i n g f u l e x c e p t when c o n s i d e r e d w i t h the e n t i t y t o which i t b e l o n g s . F or example; name, s a l a r y , wage and m a r i t a l s t a t u s might a l l be c o n s i d e r e d a t t r i b u t e s o f an employee, A t r a n s a c t i o n i s t h e b a s i c b u i l d i n g b l o c k of an e n t e r p r i s e ' s d a t a p r o c e s s i n g needs.. I t i s an a c t i o n o r s e t o f a c t i o n s which r e g u i r e a c c e s s t o t h e data base. For example, an employee i s added t o a department or an employee's s a l a r y changes. See T a b l e 3.1 f o r f u r t h e r examples.. Data Model C h a r a c t e r i s t i c s The c h o i c e of IMS as a d a t a base management system imposes s e v e r e c o n s t r a i n t s on the way i n which t h e da t a base 27 c o n t e n t may . be viewed.. The h i e r a r c h i c a l model c o n t a i n s i n h e r e n t c h a r a c t e r i s t i c s which may or may not be p r e s e n t i n a r e l a t i o n a l or network. model. Because of t h e s e c h a r a c t e r i s t i c s , t h e a p p r o p r i a t e n e s s o f t h e h i e r a r c h i c a l model i s dependent upon the da t a p r o c e s s i n g r e g u i r e m e n t s of t h e o r g a n i z a t i o n . In g e n e r a l , IMS (or any h i e r a r c h i c DBMS) i s most e x p e d i e n t when t h e s t r u c t u r e t o be modelled i s h i e r a r c h i c a l i n n a t u r e . T h i s o c c u r s when the mapping between e n t i t i e s i s one-to-many. F or example, each department has many employees and each s h i p p i n g o r d e r i s made up o f s e v e r a l p a r t s each o f which may have s e v e r a l components. Pure h i e r a r c h i e s are h a r d t o f i n d though - an employee may a c t u a l l y work i n two d i f f e r e n t departments and what i s c o n s i d e r e d a component f o r one o r d e r may a c t u a l l y be a p a r t f o r another o r d e r . These many-to-many r e l a t i o n s h i p s , w h i l e not i m p o s s i b l e t o model, u s u a l l y e n t a i l d u p l i c a t i o n o f s t o r e d d a t a o r e x t r a p r o c e s s i n g when a h i e r a r c h i c a l s t r u c t u r e i s imposed upon them. B e f o r e work can be done on t h e d e s i g n of the data base an e x t e n s i v e a n a l y s i s o f t h e o r g a n i z a t i o n must be made i n o r d e r t o d e t e r m i n e t h e da t a r e g u i r e m e n t s . . I n t h i s a n a l y s i s , e n t i t i e s , r e l a t i o n s h i p s , a t t r i b u t e s and t r a n s a c t i o n s w i l l be i s o l a t e d . F o r e a c h , p e r t i n e n t i n f o r m a t i o n such as p r o b a b i l i t y f r e q u e n c i e s , volumes, s e c u r i t y c o n s t r a i n t s and p r i o r i t y o f a c c e s s w i l l be c o l l e c t e d or p r o j e c t e d so t h a t t h e y can be used i n t h e d e s i g n s t a g e . Armed w i t h t h i s i n f o r m a t i o n t h e system d e s i g n e r w i l l s e t 28 about m o d e l l i n g t h e o r g a n i z a t i o n w i t h IMS data b a s e s . E n t i t i e s w i l l be grouped i n t o one or more da t a bases. Each d a t a base w i l l r e f l e c t r e l a t i o n s h i p s between e n t i t i e s and must be c o n s t r u c t e d so t h a t t h e v a r i o u s t r a n s a c t i o n s can be performed as e a s i l y and as c h e a p l y as p o s s i b l e w i t h o u t s e v e r e l y a f f e c t i n g t h e performance o f t h e system. The data d i c t i o n a r y i s an i m p o r t a n t t o o l which can be used t o a s s i m i l a t e t h i s i n f o r m a t i o n and p r o v i d e t h e c o n n e c t i o n between t h e a n a l y s i s and d e s i g n s t a g e s . IBM has developed a program p r o d u c t known as t h e Data Base/Data Communication Data D i c t i o n a r y (DB/DC Data D i c t i o n a r y ) which s u p p o r t s IMS/VS. When t h e DB/DC Data D i c t i o n a r y i s adopted the user has a computer p r o c e s s a b l e d i c t i o n a r y i n which he can s t o r e and r e t r i e v e d e f i n i t i o n s , d a t a d e s c r i p t i o n s , r e l a t i o n s h i p s of d a t a and program i n f o r m a t i o n . The d i c t i o n a r y d e a l s w i t h e n t i t i e s and the a t t r i b u t e s which c h a r a c t e r i z e e n t i t i e s and r e l a t i o n s h i p s . F o r more i n f o r m a t i o n see the DB/DC Data D i c t i o n a r y G e n e r a l I n f o r m a t i o n Manualf 7 1 . The Data Base Becord The o r g a n i z a t i o n o f data i n t o d a t a base r e c o r d s can be th e d e f i n i t i v e d e s i g n c h o i c e w i t h r e g a r d t o the system's performance. A good d a t a base d e s i g n s h o u l d : (1) r e f l e c t t h e o r g a n i z a t i o n o f the data i n the r e a l w o r l d , (2) p e r m i t t h e p r o c e s s i n g of as many d i f f e r e n t t r a n s a c t i o n s a s n e c e s s a r y w i t h 2 9 a m i n i m a l amount of e f f o r t , and (3) meet performance s t a n d a r d s so as not t o o v e r - t a x the t o t a l system. These are o f t e n c o n f l i c t i n g o b j e c t i v e s and the c h o i c e of a compromise d e s i g n may be a d i f f i c u l t t a s k . For each data base i t i s f i r s t n e c e s s a r y t o s e l e c t a r o o t . . A l l o t h e r e n t i t i e s i n t h e d a t a base must be r e l a t e d ( e i t h e r d i r e c t l y o r through o t h e r e n t i t i e s ) to the r o o t i n a p a r e n t - c h i l d t y p e r e l a t i o n s h i p . " U n f o r t u n a t e l y , h i e r a r c h i c a l methods a r e i n c a p a b l e o f s u p p o r t i n g more than a s i n g l e r o o t ; c o n s e q u e n t l y , they have f o r c e d a g e n e r a t i o n o f d e s i g n e r s t o s e l e c t a s i n g l e e n t i t y type as supreme when i n f a c t t h e r e a r e u s u a l l y s e v e r a l t h a t a r e l o g i c a l p e e r s , t h a t i s , n e i t h e r s u p e r i o r nor i n f e r i o r , n e i t h e r i n d e p e n d e n t nor dependent, n e i t h e r p a r e n t nor c h i l d . 1 1 9 Because of t h e way IMS data base r e c o r d s a r e s t o r e d , t h e r o o t i s a l w a y s the f i r s t segment o f t h e r e c o r d t o be a c c e s s e d , making i t f a s t e r t o r e t r i e v e the r o o t than any o t h e r segment. The c h o i c e of a r o o t w i l l a l s o determine the number of d a t a base r e c o r d s - one f o r each r o o t o c c u r r e n c e - as w e l l as the o r d e r i n which t h e r e c o r d s w i l l be a c c e s s e d ; e x c e p t f o r HDAM, r e c o r d s a r e s t o r e d i n a s c e n d i n g or descending o r d e r based on the v a l u e of the r o o t key. For i l l u s t r a t i v e purposes, a data base which i s t o c o n s i s t o f the e n t i t i e s , a t t r i b u t e s and r e l a t i o n s h i p s g i v e n i n T a b l e 3.1 w i l l be c o n s i d e r e d . . S t a r t i n g from these i n i t i a l d e f i n i t i o n s we w i l l proceed t o d e v e l o p an IMS data base. The r e a d e r s h o u l d note t h a t t h e r e s u l t i n g d e s i g n w i l l not be o p t i m a l , r a t h e r , i t p r o v i d e s an i n i t i a l d a t a base upon which 30 improvements can be made depending on t h e us e r s own performance demands. N e i t h e r w i l l t he r e s u l t i n g d e s i g n (nor i n t e r m e d i a t e d e s i g n s , f o r t h a t matter) be unigue. Even i n t h e s i m p l e example g i v e n t h e r e may be c h o i c e s o t h e r than t h e ones chosen. Ent i t i e s : A t t r i b u t e s : ORDERS Number PARTS Number, C o l o r , S i z e CUSTOMERS Number, Address, C i t y , R o u t i n g R e l a t i o n s h i p s : Each o r d e r has an a s s o c i a t e d p a r t or p a r t s . . Each o r d e r has an a s s o c i a t e d customer. Each c i t y has an a s s o c i a t e d r o u t i n g . T a b l e 3.1 E n t i t i e s , a t t r i b u t e s and r e l a t i o n s h i p s of the ORDER dat a base. S i n c e t h i s d a t a base i s t o p r o c e s s t r a n s a c t i o n s c o n c e r n i n g t h e f i l l i n g and s h i p p i n g of o r d e r s , we w i l l c a l l i t the ORDER d a t a base. . S i n c e both PARTS and CUSTOMERS a r e r e l a t e d t o ORDERS we w i l l s e l e c t ORDERS t o be t h e r o o t of t h e dat a b a s e , l e a v i n g the a t t r i b u t e s of PARTS and CUSTOMERS t o be dependents o f ORDERS. F i g u r e 3.1 shows the h i e r a r c h i c a l 31 r e p r e s e n t a t i o n o f such a data base so f a r . ORDERNO. PARTNO. PARTCOLOR PARTSIZE OUSTNO. CUSTADD. CUSTCITY CUSTROUTE F i g . 3. 1 ORDER da t a base - f i r s t normal form. We w i l l use n o r m a l i z a t i o n (see Date £6] and G e a r h a r t [12]) t o produce a v i a b l e IMS h i e r a r c h y . . F i g u r e 3.1 i s s a i d to be i n f i r s t normal form, i t c o n s i s t s o f a r o o t and a l l e n t i t i e s (and t h e i r a t t r i b u t e s ) which a r e r e l a t e d t o the r o o t . The second normal form can be a c h i e v e d by d i s t i n g u i s h i n g s u b o r d i n a t e keys f o r the v a r i o u s l e v e l s i n t h e h i e r a r c h y . These k e y s , when compounded w i t h t h e r o o t of the data base become t h e c o n c a t e n a t e d keys of t h e segments i n t h e IMS da t a base. A s s o c i a t e d w i t h each key w i l l be a s e t o f a t t r i b u t e s . Together t h e y form an IMS segment. F i g u r e 3.2 shows the ORDER data base i n second normal form. PARTS and CUSTOMERS have been broken i n t o two s e p a r a t e segments, t h e keys of which a re PARTNO., and CUSTNO. 32 ORDERNO. CUSTNO. ADDRESS CITY ROUTING F i g . . 3.2 ORDER d a t a base - second normal form. At t h i s p o i n t i t may t u r n out t h a t some a t t r i b u t e s of a segment are a c t u a l l y r e l a t e d t o o t h e r a t t r i b u t e s i n the segment.. I n t h i s c a s e , t h i r d normal form can be o b t a i n e d by removing t h e s e a t t r i b u t e s from the segment, making one of them the key of a new segment and making t h e new segment a c h i l d o f the o l d segment.. I n t h e case of t h e ORDER d a t a base, ROUTING was a c t u a l l y r e l a t e d t o c i t y and not CUSTNO., t h e r e f o r e a new segment was formed w i t h CITY as a key and ROUTING as an a t t r i b u t e . . F i g u r e 3.3 shows t h e d a t a base i n t h i r d normal form. . 3 3 ORDERNO. PARTNO. COLOR SIZE CUSTNO. ADDRESS F i g . 3.3 ORDER da t a base - t h i r d normal form. _ I f a segment has two or more a t t r i b u t e s each o f which may take on more than one v a l u e f o r a g i v e n key v a l u e , f u r t h e r n o r m a l i z a t i o n i s n e c e s s a r y . F o u r t h normal form r e q u i r e s t h a t o n l y one of t h e s e a t t r i b u t e s be kept i n the segment and t h a t the o t h e r s be removed t o a dependent segment. I n our example both COLOE and SIZE a re m u l t i v a l u e d ; each p a r t comes i n a number o f c o l o r s and i n a number o f s i z e s . F i g u r e 3.4 shows the data base i n f o u r t h normal form where SIZE i s removed t o a dependent segment. 34 ORDERNO. PARTNO. COLOR CUSTNO. ADDRESS CITY ROUTING F i g . 3.4 ORDER data base - f o u r t h normal form.. Such a p r o c e s s of n o r m a l i z a t i o n w i l l produce a wo r k i n g d a t a base, but not n e c e s s a r i l y one which i s o p t i m a l from a performance s t a n d p o i n t . S e v e r a l f a c t o r s must be c o n s i d e r e d which w i l l a f f e c t t h e s t o r a g e r e g u i r e m e n t s and/or a c c e s s t i m e s of t h e d a t a base. These f a c t o r s may d i c t a t e t h a t new segments be c r e a t e d , t h a t two or more segments be c o n s o l i d a t e d i n t o one or t h a t s u b t r e e s be r e p o s i t i o n e d . T a b l e 3.2 summarizes t h e g e n e r a l g u i d e l i n e s t o be f o l l o w e d t o dete r m i n e whether f i e l d s s h o u l d be grouped i n t o 35 one segment o r s h o u l d be l e f t i n s e p a r a t e segments. Group i n one segment ^ — ^ Separate segments Few o c c u r r e n c e s (<3) M u l t i p l e o c c u r r e n c e s (>10) S m a l l (<20 bytes) Large (>100 bytes) High use (every a c c e s s t o reco r d ) Low use (once a month) Read-only Update, i n s e r t , d e l e t e G e n e r a l use Secured use Table 3.2 Grouping a t t r i b u t e s i n t o s e g m e n t s . 1 0 Very l a r g e and v e r y s m a l l segments can have a n e g a t i v e e f f e c t on the d a t a base.. Long segments w i l l r e q u i r e l a r g e r b l o c k or c o n t r o l i n t e r v a l s i z e s l e a d i n g t o wasted space when s m a l l e r segments a r e put i n t h e same b l o c k or c o n t r o l i n t e r v a l . Performance i s improved when a l l segments of t h e d a t a base a r e about the same s i z e . When a segment i s e x c e p t i o n a l l y l o n g an improvement i n performance may be sought i n one of two ways. I f the l o n g segment i s seldom used i t may be d e s i r a b l e t o p l a c e i t i n a s e p a r a t e d a t a s e t group (see C o n s t r a i n t s and E x t e n s i o n s , C h a p t e r 4 ) . I f the l o n g segment has a number o f f i e l d s a s s o c i a t e d w i t h i t , i t may be p o s s i b l e t o break the segment i n t o two segments based upon the usage of the f i e l d s . However, a d d i n g a new segment does i n c r e a s e t h e p r o c e s s i n g 36 n e c e s s a r y t o a c c e s s t h e dependent segment and s h o u l d o n l y be undertaken when the advantages a r e c l e a r . . I f a segment has a v a r i a b l e l e n g t h f i e l d , t he f i e l d s h o u l d be p l a c e d a t t h e end of t h e segment.. F i e l d s t h a t do not always o c c u r i n a segment s h o u l d be made i n t o v a r i a b l e l e n g t h f i e l d s so t h a t space i s c o n s e r v e d when t h e f i e l d does not o c c u r . I t s h o u l d be remembered, though, t h a t v a r i a b l e l e n g t h f i e l d s i n c r e a s e the amount of p r o c e s s i n g n e c e s s a r y e s p e c i a l l y i f a number of i n s e r t s and/or d e l e t e s a re e x p e c t e d . When d e v e l o p i n g a f i n a l d e s i g n , i t must be remembered t h a t segments w i t h i n a d a t a base r e c o r d a r e s t o r e d i n h i e r a r c h i c a l o r d e r . . That i s , segments a r e s t o r e d from t o p t o bottom w i t h i n t h e h i e r a r c h y and from l e f t t o r i g h t w i t h i n s u b t r e e s . T h e r e f o r e , segments t h a t a re r e f e r e n c e d most f r e g u e n t l y s h o u l d be c l o s e t o t h e t o p l e f t of t h e h i e r a r c h y . The l e a s t f r e g u e n t l y a c cessed segments s h o u l d be i n the bottom r i g h t of the h i e r a r c h y . . I t i s i m p o r t a n t t o note t h a t t o a c c e s s a segment i t i s n e c e s s a r y t o a c c e s s a l l o f t h e segments on the h i e r a r c h i c a l path up t o t h a t p o i n t , u n l e s s a secondary i n d e x i s used. These i m p l i e d a c c e s s e s s h o u l d a l s o be c o n s i d e r e d when t h e o r d e r i n g of the t r e e i s b e i n g d e t e r m i n e d . Locjica 1 R e l a t i o n s h i p s As p o i n t e d out e a r l i e r , d u p l i c a t i o n of d a t a not o n l y 37 wastes s t o r a g e space but a l s o i n c r e a s e s the overhead i n m a i n t a i n i n g two c o p i e s o f t h e d a t a . L o g i c a l r e l a t i o n s h i p s reduce t h e s e problems by e n a b l i n g one copy of t h e d a t a to be a c c e s s e d from two d i f f e r e n t d a t a bases. These c o n n e c t i o n s between or w i t h i n data bases may be e i t h e r u n i d i r e c t i o n a l o r b i d i r e c t i o n a l , and i n the case of b i d i r e c t i o n a l , may be implemented by p h y s i c a l p a i r i n g or v i r t u a l p a i r i n g . , L o g i c a l r e l a t i o n s h i p s u t i l i z e p h y s i c a l or s y m b o l i c p o i n t e r s t o e s t a b l i s h t h e r e l a t i o n s h i p s . P h y s i c a l p o i n t e r s a r e o f t h e t y p e used to implement p h y s i c a l data bases and c o n s i s t of a r e l a t i v e b y t e a d d r e s s of a segment from t h e b e g i n n i n g of a data s e t . . P h y s i c a l p o i n t e r s can o n l y be used w i t h HDAM or HIDAM and not w i t h HISAM data b a s e s . S y m b o l i c p o i n t e r s are the c o n c a t e n a t i o n of t h e keys i n t h e seguence f i e l d s of a l l segments t h a t must be r e t r i e v e d t o r e a c h t h e d e s i r e d segment. A u n i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p a l l o w s the user t o t r a v e r s e between the d a t a bases i n one d i r e c t i o n o n l y . . I t i s implemented by p l a c i n g a l o g i c a l p a r e n t p o i n t e r ( e i t h e r p h y s i c a l or s y m b o l i c ) i n one of t h e segments. F i g u r e 3 . 5 g i v e s an example. 38 Parts Data Base Orders Data Base ORDER s STOCK DETAIL F i g . 3.5 D n i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p . I n t h i s c a s e , each STOCK segment w i l l c o n t a i n a p o i n t e r t o i t s l o g i c a l p a r e n t ORDER. I n a b i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p u s i n g p h y s i c a l p a i r i n g a dependent segment i s r e p e a t e d and a l o g i c a l p a r e n t p o i n t e r i s p l a c e d i n each of the two d u p l i c a t e segments. Two pa t h s a r e c r e a t e d each i n the same way as the s i n g l e u n i d i r e c t i o n a l path was c r e a t e d . See F i g u r e 3,6. 3 9 Parts Data Base Orders Data Base ORDER si STOCK DETAIL Fi g . . 3 . 6 B i d i r e c t i o n a l l o g i c a l relationship using physical pairing.. Parts. Data Base Orders Data Base jfj ORDER DETAIL Fi g . . 3 . 7 B i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p using v i r t u a l pairing. 40 I n a b i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p u s i n g v i r t u a l p a i r i n g , t he path i n one d i r e c t i o n i s implemented i n the same way as f o r the u n i d i r e c t i o n a l c a s e . The r e v e r s e p a t h , i n t h i s c a s e , i s implemented by c h a i n i n g OEDEE and a l l a s s o c i a t e d STOCKS w i t h l o g i c a l c h i l d and l o g i c a l t w i n p o i n t e r s and p l a c i n g a p h y s i c a l p a r e n t p o i n t e r i n each STOCK o c c u r r e n c e . See F i g u r e 3.7. R e g a r d l e s s o f whether p h y s i c a l o r v i r t u a l p a i r i n g i s used, s i m i l a r r e s u l t s a r e reached. Paths a r e p r o v i d e d from PART t h r o u g h STOCK t o ORDER and form ORDER t h r o u g h STOCK t o PART. I n t h e u n i d i r e c t i o n a l case o n l y one of t h e s e paths can e x i s t . The c h o i c e of u n i d i r e c t i o n a l or b i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p s i s dependent upon t h e p r o c e s s i n g r e q u i r e m e n t s . The u s e r s h o u l d r e a l i z e t h a t more p r o c e s s i n g and s t o r a g e overhead i s r e g u i r e d when b i d i r e c t i o n a l l o g i c a l r e l a t i o n s h i p s a r e used and so u n i d i r e c t i o n a l r e l a t i o n s s h o u l d be chosen over b i d i r e c t i o n a l whenever p o s s i b l e . For a more d e t a i l e d t r e a t m e n t o f l o g i c a l r e l a t i o n s h i p s see Chapter 4 o f t h e S y s t e m s / A p p l i c a t i o n s Design Guide[20].. The c h o i c e o f p h y s i c a l or v i r t u a l p a i r i n g can have a s i g n i f i c a n t i m p a c t on performance. P h y s i c a l p a i r i n g i s b e s t s u i t e d t o t h e a p p l i c a t i o n i n which a c c e s s e s a r e made from both s i d e s of t h e r e l a t i o n s . I n our example, t h i s would mean t h a t i t i s e g u a l l y p r o b a b l e t o want t o go from PART t o ORDER as t o go from ORDER t o PART. . I t must be remembered, though, t h a t the STOCK segment i s r e p e a t e d and t h i s r e g u i r e s overhead i n s t o r a g e as w e l l as p r o c e s s i n g (maintenance o f the second copy 41 i s t h e r e s p o n s i b i l i t y o f t h e system and not o f t h e u s e r ) . T h i s d u p l i c a t e segment i s not r e q u i r e d i n v i r t u a l p a i r i n g . However, v i r t u a l p a i r i n g h e a v i l y f a v o r s one path over t h e o t h e r . . I n our example, t h e path from PART t o ORDER i s e q u i v a l e n t t o t h a t i n the p h y s i c a l p a i r i n g example.. To go from ORDER t o PART, however, r e q u i r e s t h a t a t w i n c h a i n be f o l l o w e d . Each r e t r i e v a l o f a segment a l o n g t h i s c h a i n must be c o n s i d e r e d as an I/O and t h e r e f o r e may r e q u i r e a g r e a t d e a l more p r o c e s s i n g (depending on t h e l e n g t h of t h e chain) t h a n t h e o t h e r p a t h . Because o f t h i s , v i r t u a l p a i r i n g f a v o r s t h e a p p l i c a t i o n s i n which a c c e s s i n g i s m o s t l y from one s i d e (or i n which t h e t w i n c h a i n i s a s s u r e d t o be s h o r t ) and i n which t h e number o f updates o f the l o g i c a l c h i l d segment i s g r e a t e r than f o r p h y s i c a l p a i r i n g . A c h o i c e must a l s o be made between p h y s i c a l and s y m b o l i c p o i n t e r s . P h y s i c a l p o i n t e r s p r o v i d e f a s t a c c e s s t o t h e l o g i c a l p a r e n t , however, s y m b o l i c p o i n t e r s t e l l more about t h e segment b e i n g c o n s i d e r e d , . When p h y s i c a l p o i n t e r s a r e used, the segment must be a c c e s s e d b e f o r e i t s c o n c a t e n a t e d key can be d e t e r m i n e d . I f t h e l o g i c a l p a r e n t ' s c o n c a t e n a t e d key (or a p a r t o f i t ) i s used as a s e a r c h argument, time can be saved by u s i n g a s y m b o l i c p o i n t e r as i t i s not n e c e s s a r y t o go i n t o t h e o t h e r d a t a base t o determine the key. A s y m b o l i c p o i n t e r r e g u i r e s more s t o r a g e space but t h i s space i s e a s i l y j u s t i f i e d i f s e a r c h e s such as t h i s a r e common. When s y m b o l i c p o i n t e r s a r e used e x c l u s i v e l y , t ime i s saved i n r e o r g a n i z i n g t h e da t a base as i t i s not n e c e s s a r y t o 42 g a t h e r , s o r t , match and a p p l y t h e a d d r e s s e s used w i t h t h e d i r e c t p o i n t e r s . When v i r t u a l p a i r i n g i s s e l e c t e d i t i s p o s s i b l e t o s e l e c t t w i n f o r w a r d , t w i n backward, l o g i c a l c h i l d f i r s t o r l o g i c a l c h i l d l a s t p o i n t e r s or a c o m b i n a t i o n o f t h e s e . L o g i c a l c h i l d l a s t i s u s e f u l when segments are t o be i n s e r t e d or d e l e t e d a t th e end o f t h e c h a i n and l o g i c a l c h i l d f i r s t when segments a r e to be i n s e r t e d or d e l e t e d a t t h e f i r s t of t h e c h a i n . Twin backward p o i n t e r s a r e u s e f u l when the segment t o be a c c e s s e d i s l i k e l y t o be near t h e end o f the c h a i n and t w i n f o r w a r d p o i n t e r s when t h e segment t o be a c c e s s e d i s l i k e l y t o be near th e b e g i n n i n g of the c h a i n . C o m b i n a t i o n s o f t h e s e have t h e e f f e c t o f t h e combined advantages, however, i t s h o u l d be n o t e d t h a t each p o i n t e r r e q u i r e s a d d i t i o n a l s t o r a g e space and a d d i t i o n a l overhead f o r maintenance. . Secondary. Indexes Secondary i n d e x e s can be used t o e s t a b l i s h an a l t e r n a t e a c c e s s p a t h t o a d a t a base. They a r e p a r t i c u l a r e l y u s e f u l i n d a t a bases w i t h a l a r g e number o f segment t y p e s when i t i s n e c e s s a r y t c p r o v i d e d i r e c t a c c e s s t o one of the dependent segment t y p e s . P r o c e s s i n g t i m e can be saved by go i n g d i r e c t l y t o t h e d e s i r e d segment as opposed t o t r a c i n g the h i e r a r c h i c a l p a t h . . They can a l s o be used t o e s t a b l i s h a p r o c e s s i n g o r d e r o t h e r t h a n t h a t i n which t h e data base i s s t o r e d . 43 When secondary i n d e x i n g i s used an i n d e x data base i s c r e a t e d . . T h i s data base i s implemented i n a VSAM data s e t and c o n t a i n s a s e a r c h f i e l d and a d i r e c t a d d r e s s or s y m b o l i c p o i n t e r t o the t a r g e t segment. . I f HISAM i s used t h e p o i n t e r must be s y m b o l i c . D i r e c t a d d r e s s o r s y m b o l i c p o i n t e r s can be used f o r HDAM or HIDAM da t a s e t s . Secondary i n d e x e s a re not a l l o w e d i n HSAM da t a s e t s . The index may be c r e a t e d s e l e c t i v e l y o r s p a r s e l y by s u p p r e s s i n g the c r e a t i o n o f an i n d e x e n t r y f o r some of t h e s o u r c e segments. The s o u r c e f i e l d used t o d e f i n e t h e secondary i n d e x need not be unique. I f a non-unigue sou r c e f i e l d i s used, subsequent r e c o r d s with the same s o u r c e f i e l d a r e s t o r e d i n a secondary data s e t and c h a i n e d t o t h e primary data s e t . I n o r d e r t o produce unique keys (and save h a v i n g t o a c c e s s a secondary d a t a s e t ) , a subsequence f i e l d may be s p e c i f i e d . T h i s f i e l d w i l l a l s o be taken from the source segment and i s s t o r e d i n t h e i n d e x d a t a base as w e l l . The i n d e x d a t a base i t s e l f may be used as a s m a l l e x t r a c t d a t a base. By d u p l i c a t i n g a f r e g u e n t l y used f i e l d the user can have q u i c k a c c e s s t o t h i s d a t a and t h e maintenance of the d a t a base i s p r o v i d e d by the system ( i . e . , changes i n t h e l a r g e r d a t a base are r e f l e c t e d i n t h e i n d e x d a t a base a u t o m a t i c a l l y ) . The r e c o r d s w i t h i n t h e i n d e x d a t a base a r e s t o r e d i n a s c e n d i n g key v a l u e (source f i e l d ) sequence. T h i s p r o v i d e s f o r an a l t e r n a t e p r o c e s s i n g sequence. I f t h e t a r g e t f i e l d i s t h e r o o t of t h e d a t a base, p r o c e s s i n g of t h i s d a t a base may be 44 performed i n an order other than t h a t i n which i t i s st o r e d . This i s p a r t i c u l a r e l y u s e f u l when s e v e r a l a p p l i c a t i o n programs wish t o use the same data base i n a number of d i f f e r e n t ways. When a secondary index has been defined, access i s provided (through the index) to the index t a r g e t segment type and a l l segment types i n the h i e r a r c h i c path of the index tar g e t segment. This i n c l u d e s the parents as well as the dependents of the target segment. Figures 3.8 and 3.9 i l l u s t r a t e t h i s p oint. Figure 3.8 shows a data base f o r which a secondary index i s to be defined. ORDER I CUSTOMER PART ADDRESS ROUTING SI2 !E COLOR SUPPLIER QUANTITY DATE F i g . . 3.8 An order processing data base. Let us say that the SUPPLIER segment i s both the source and the ta r g e t segment of a secondary index. Then a secondary data s t r u c t u r e w i l l be defined as shown i n Figure 3.9. 45 SUPPLIER QUANTITY ORDER F i g . . 3. 9 Secondary data s t r u c t u r e . The secondary data s t r u c t u r e i s formed by making the index t a r g e t segment type the r o o t . The parent segment types of the index t a r g e t segment type are then placed i n reverse order i n the l e f t - h a n d subtree. The other dependents of the target segment type are then placed i n the right-hand subtrees• When c o n s i d e r i n g the adoption of a secondary index the extr a processing reguired to maintain the index data base must be taken i n t o account.. An index allows access to a segment 46 with one I/O i n a d d i t i o n t o the index I/O. This should be compared with the number of I/Os normally r e q u i r e d to access the segment. An a d d i t i o n a l I/O i s required each time an index record i s created or destroyed and two I/Os are required f o r each m o d i f i c a t i o n . The time required to create the index data base i n i t i a l l y and t o reorganize i t should a l s o be considered. Such t h i n g s may be outweighed i f the number of changes t o the source f i e l d i s small or i f the t r a n s a c t i o n s which w i l l use the secondary index are of high p r i o r i t y . Not to be neglected are the a c t u a l storage reguirements of the index data base.. As was pointed out, each VSAM record contains a d u p l i c a t e of the source f i e l d and a po i n t e r to the tar g e t segment. In a d d i t i o n t o t h i s there i s some c o n t r o l i n f o r m a t i o n and ( o p t i o n a l l y ) subseguence f i e l d s . . This can run i n t o a s u b s t a n t i a l amount of storage space and f o r t h i s reason such t h i n g s as s e l e c t i v e indexing or shorter search f i e l d s may be considered. 47 Chapter 4 - Access Methods In t r o d u c t i o n I n t h i s c h a p t e r t h e a c c e s s methods i n t r o d u c e d i n Ch a p t e r 2 w i l l be d e a l t w i t h i n more d e t a i l . I n p a r t i c u l a r , the f o u r p r o c e s s i n g r o u t i n e s and t h e i r c o r r e s p o n d i n g p h y s i c a l r e c o r d i n t e r f a c e (see F i g . 2.4) w i l l be e v a l u a t e d and compared w i t h r e s p e c t t o t h e two performance measures - time and space. The performance of an a c c e s s method i s dependent upon t h e s t r u c t u r e o f t h e f i l e i n which t h e data i s s t o r e d . . The problem remains, t h e r e f o r e , t o s e l e c t an a c c e s s method which i s o p t i m a l f o r t h e data base t h a t i s t o be s t o r e d and f o r t h e g u e r i e s t h a t a r e t o be a p p l i e d t o the data base. But as p o i n t e d out by Yao and Merten [ 4 2 ] , t h i s may be a d i f f i c u l t t a s k : "No u n i v e r s a l l y o p t i m a l f i l e s t r u c t u r e e x i s t s and no g e n e r a l method i s a v a i l a b l e f o r s e l e c t i n g an o p t i m a l f i l e s t r u c t u r e f o r a p a r t i c u l a r a p p l i c a t i o n . " 1 * However, t h e c h o i c e o f an a c c e s s method may be one o f t h e most i m p o r t a n t f a c t o r s i n d e t e r m i n i n g performance a t an IMS i n s t a l l a t i o n . " V a r i o u s f i l e o r g a n i z a t i o n s seek t o perform b e t t e r i n c e r t a i n r e s p e c t s f o r c e r t a i n d a t a base and t y p i c a l guery c h a r a c t e r i s t i c s . 1 1 1 2 For t h e s e r e a s o n s , much o f t h e e v a l u a t i o n c o n t a i n e d i n 4 8 t h i s c h a p t e r i s r e l a t i v e and s e r v e s o n l y t o compare t h e a c c e s s methods. I n what f o l l o w s , each a c c e s s method w i l l f i r s t be l o o k e d a t i n g r e a t e r d e t a i l . A t t e n t i o n w i l l be p a i d t o t h e u n d e r l y i n g s t o r a g e s t r u c t u r e and the i d e a l p r o c e s s i n g environment f o r each.. F o l l o w i n g t h i s each a c c e s s method w i l l be c o n s i d e r e d w i t h r e g a r d t o the time/space t r a d e o f f . F i n a l l y , some c o n s t r a i n t s and e x t e n s i o n s w i l l be c o n s i d e r e d . HSAM I n an HSAM da t a base segments a r e s t o r e d i n h i e r a r c h i c a l sequence and so must be l o a d e d i n t h a t o r d e r . Data base r e c o r d s a r e s t o r e d i n a s c e n d i n g or descending key sequence ( i f a key i s s p e c i f i e d ) and must be l o a d e d and r e t r i e v e d i n t h a t o r d e r . Each SAM data s e t c o n s i s t s of a number o f f i x e d l e n g t h b l o c k s . The r e c o r d s a re s t o r e d s e q u e n t i a l l y s t a r t i n g w i t h t h e f i r s t r e c o r d and p r o c e e d i n g i n h i e r a r c h i c a l sequence f o r s u b o r d i n a t e segments. Each b l o c k w i l l c o n t a i n s e v e r a l segments. I f t h e r e i s not s u f f i c i e n t room a t t h e end of t h e b l o c k t o s t o r e a complete segment, t h e r e m a i n i n g space i s l e f t b l a n k and t h e segment i s s t o r e d i n t h e next b l o c k . . When one r e c o r d ends t h e next r e c o r d f o l l o w s i m m e d i a t e l y , i n the same b l o c k i f p o s s i b l e . . See F i g u r e 2.5. The o n l y major performance c r i t e r i a f o r an HSAM data base 4 9 i s t h e s e l e c t i o n of an o p t i m a l block, s i z e . The b l o c k must be at l e a s t as l a r g e as the l a r g e s t segment and s h o u l d be s e l e c t e d so as t o mimimize t h e amount of unused space l e f t a t t h e end of t h e b l o c k . . P r o c e s s i n g i s done s e q u e n t i a l l y through the d a t a base so t h a t when cne segment i s found the s e a r c h f o r the next b e g i n s where t h e l a s t l e f t o f f . To p r o c e s s t h e data base randomly i t i s n e c e s s a r y t o s t a r t a t t h e f i r s t of t h e data s e t f o r each s e a r c h and scan s e q u e n t i a l l y u n t i l t h e d e s i r e d segment i s found. . Updating r e q u i r e s t h a t t h e e n t i r e d a t a base be r e w r i t t e n onto a n o t h e r t a p e o r d i s k . , F o r a l l p r a c t i c a l purposes t h e n , i n s e r t i o n , d e l e t i o n or r e p l a c e m e n t of segments i s not p o s s i b l e . For t h e s e r e a s o n s , HSAM d a t a bases a r e g e n e r a l l y o n l y used f o r d a t a which i s not e x p e c t e d t o undergo many changes and f o r which s e g u e n t i a l p r o c e s s i n g (eg. . p r o d u c i n g r e p o r t s ) i s t h e u s u a l mode o f a c c e s s . . HSAM i s a l s o u s e f u l as backup f o r o t h e r d a t a bases as i t r e g u i r e s a m i n i m a l amount o f s t o r a g e space and can be kept on t a p e . A l s o , i t s s t r u c t u r e l e n d s i t s e l f t o t h e dump/reload format o f a backup d a t a base. HISAM With a HISAM d a t a base e i t h e r ISAM/OSAM o r VSAM may be s e l e c t e d as t h e p h y s i c a l r e c o r d i n t e r f a c e . I n e i t h e r case t h e 5 0 data base c o n s i s t s of an ISAM o r KSDS d a t a s e t which c o n t a i n s t h e r o o t and as many of the dependent segments as can f i t i n one r e c o r d and an OSAM or ESDS d a t a s e t which c o n t a i n s the remainder of t h e dependents and, i n t h e case o f ISAM/OSAM, any da t a base r e c o r d s which a re i n s e r t e d a f t e r i n i t i a l i z a t i o n . . Each d a t a s e t i s made up of l o g i c a l r e c o r d s . Each l o g i c a l r e c o r d c o n t a i n s as many segments ( i n h i e r a r c h i c a l sequence) as w i l l f i t , p o i n t e r s t o m a i n t a i n t h e h i e r a r c h i c sequence among l o g i c a l r e c o r d s and some unused space. See F i g u r e 2.6. For ISAM/OSAM t h e l o g i c a l r e c o r d i s of t h e form i l l u s t r a t e d i n F i g u r e 4. 1.. 3 byte 1 byte 3 byte Root Segment Segment Segment Hierarchic 'Unused Pointer Code Pointer : , F i g . . 4.1 L o g i c a l r e c o r d of an ISAM/OSAM i m p l e m e n t a t i o n o f a HISAM d a t a base. r o o t -The key t h r e e b y t e r o o t seguence which has p o i n t e r s p e c i f i e s the next r o o t i n been added s i n c e i n i t i a l i z a t i o n 51 and i s t h e r e f o r e i n the OSAM da t a s e t . . The t h r e e b y t e h i e r a r c h i c p o i n t e r s p e c i f i e s the l o g i c a l r e c o r d which c o n t a i n s the next segment i n h i e r a r c h i c seguence. For VSAM t h e l o g i c a l r e c o r d i s of t h e form i l l u s t r a t e d i n F i g u r e 4.2. 4 byte 1 byte Hierarchic Segment Segment Segment Unused Pointer Code 4.2 L o g i c a l r e c o r d of a VSAM i m p l e m e n t a t i o n of a HISAM base. The f o u r b y t e h i e r a r c h i c p o i n t e r s p e c i f i e s the l o g i c a l r e c o r d which c o n t a i n s t h e next segment i n h i e r a r c h i c seguence. When new da t a base r e c o r d s a re added a f t e r i n i t i a l i z a t i o n t h e y a r e i n s e r t e d i n t h e i r c o r r e c t p l a c e s i n t h e KSDS da t a s e t and e x i s t i n g r e c o r d s a re moved as n e c e s s a r y . . Because of t h i s t h e r e i s no need t o m a i n t a i n r o o t p o i n t e r s . I n a d d i t i o n , VSAM l o g i c a l r e c o r d s a re s t o r e d i n c o n t r o l i n t e r v a l s . Each c o n t r o l i n t e r v a l c o n t a i n s a f i x e d number o f l o g i c a l r e c o r d s (some of them unused) and t e n by t e s of VSAM F i g . d a t a 52 c o n t r o l i n f o r m a t i o n . . Such an i m p l e m e n t a t i o n m i n i m i z e s t h e number of l o g i c a l r e c o r d s which must be moved when a new r e c o r d i s i n s e r t e d . The c o n t r o l i n t e r v a l s are m a i n t a i n e d i n B - t r e e f a s h i o n and the t e n b y t e s of c o n t r o l i n f o r m a t i o n a r e used t o m a i n t a i n t h i s B - t r e e . With a HISAM da t a base, performance i s a f f e c t e d by t h e c h o i c e o f l o g i c a l r e c o r d l e n g t h and by the c h o i c e of c o n t r o l i n t e r v a l l e n g t h . These can a f f e c t both space r e q u i r e m e n t s and ac c e s s t i m e . F i g u r e 4.3 shows the e f f e c t of i n c r e a s i n g t h e l o g i c a l r e c o r d l e n g t h on t h e t o t a l space r e g u i r e d f o r t h e d a t a base and on the number o f l o g i c a l r e c o r d s r e g u i r e d . High Low-F i g . . 4.3 E f f e c t o f l o g i c a l r e c o r d l e n g t h on s t o r a g e s p a c e . 1 3 The l o g i c a l r e c o r d must be a t l e a s t as lo n g as t h e l o n g e s t segment. As the l o g i c a l r e c o r d l e n g t h i n c r e a s e s , t h e 53 number of l o g i c a l records decreases u n t i l the l o g i c a l record length i s as long as the longest data base record. At t h i s point the number of l o g i c a l records i s egual to the number of data base records and the l o g i c a l records curve goes f l a t . Correspondingly, the t o t a l storage space tends to r i s e i f the l o g i c a l record length i s e i t h e r too short or too long. Changing the c o n t r o l i n t e r v a l s i z e w i l l have a s i m i l a r e f f e c t ; however, the storage space curve w i l l be much steeper i n t h i s case as the overhead i s greater. See Figure 4.4. High I Low T o t a l Space — Number of C o n t r o l I n t e r v a l s C o n t r o l I n t e r v a l Length F i g . 4.4 E f f e c t of c o n t r o l i n t e r v a l s i z e on storage space. In HISAM d e l e t i o n s are taken care of by s e t t i n g a f l a g . This means t h a t deleted segment space i s not a v a i l a b l e f o r reuse (except i n the case of root segments i n the KSDS data set under VSAM). Processing can be done e i t h e r s e q u e n t i a l l y , 54 by f o l l o w i n g the h i e r a r c h i c seguence p o i n t e r s f o r each r o o t segment; or d i r e c t l y , by s c a n n i n g the index d a t a base f o r t h e a p p r o p r i a t e r o o t and then f o l l o w i n g the h i e r a r c h i c p o i n t e r s . I t s h o u l d be n o t e d , however, t h a t i f a da t a base i s v e r y v o l a t i l e ( i . e . , has a l o t of i n s e r t i o n s and d e l e t i o n s ) performance can be s e v e r l y degraded by the need t o jump from t h e i n d e x e d a r e a t o t h e o v e r f l o w a r e a (and v i c e versa) when s e g u e n t i a l l y p r o c e s s i n g the d a t a base. For t h e s e r e a s o n s HISAM s h o u l d be used f o r d a t a bases i n which b o t h s e g u e n t i a l and d i r e c t a c c e s s by r o o t segment i s r e g u i r e d and which do not r e g u i r e e x t e n s i v e segment i n s e r t i o n or d e l e t i o n . HIDAM A HIDAM d a t a base c o n s i s t s of two p a r t s •*> t h e index d a t a base and t h e da t a d a t a base. As wit h HISAM the s e a r e implemented w i t h KSDS and ESDS ( f o r VSAM) or w i t h HISAM/OSAM. In a d d i t i o n the d a t a p o r t i o n o f t h e d a t a base i s composed o f a r o o t a d d r e s s a b l e a r e a and an o v e r f l e w a r e a . See F i g u r e 2.8.. The i n d e x d a t a base c o n t a i n s one l o g i c a l r e c o r d f o r each d a t a base r e c o r d . Each l o g i c a l r e c o r d c o n s i s t s of an i n d e x segment f o r t h e r o o t o f t h e data base r e c o r d and a p o i n t e r t o the a p p r o p r i a t e l o g i c a l r e c o r d i n t h e ESDS or OSAM da t a s e t . I n a d d i t i o n , i f HISAM/OSAM i s used, t h e r e i s a l s o a p o i n t e r t o m a i n t a i n t h e index seguence when new r o o t s a r e added a f t e r 55 i n i t i a l i z a t i o n . The index segment must be unique. The e n t i r e d a t a base r e c o r d i s s t o r e d i n c o n t r o l i n t e r v a l s i n the ESDS or HISAM d a t a s e t . . Each c o n t r o l i n t e r v a l c o n t a i n s a f r e e space anchor p o i n t , f r e e space e l e m e n t s , an anchor p o i n t a r e a , segments, unused (f r e e ) space and ( i n t h e case o f a VSAM implementation) seven b y t e s o f c o n t r o l i n f o r m a t i o n . See F i g u r e 4.5. Free Space Anchor 7 bytes Anchor Point Segment Segment Pointer Length ID Unused Control Point Area Info. Free Space Element F i g . 4.5 C o n t r o l i n t e r v a l o f a HIDAM data base (7 b y t e s o f c o n t r o l i n f o r m a t i o n f o r VSAM i m p l e m e n t a t i o n o n l y ) . The f r e e space anchor p o i n t i s f o u r b y t e s l o n g and c o n t a i n s the o f f s e t i n by t e s t o t h e f i r s t f r e e space element i n t h e c o n t r o l i n t e r v a l . The f r e e space element i s used t o i d e n t i f y each a r e a o f f r e e space i n t h e c o n t r o l i n t e r v a l which i s e i g h t b y t e s o r more i n l e n g t h . T h i s f r e e space element i s i t s e l f e i g h t b y t e s l o n g and c o n s i s t s of a f r e e space c h a i n p o i n t e r f i e l d , an a v a i l a b l e l e n g t h f i e l d , and a t a s k ID f i e l d t o i n d i c a t e which program f r e e d the space. The anchor p o i n t a r e a i s f o u r b y t e s 56 l o n g and h o l d s p o i n t e r s t o o t h e r c o n t r o l i n t e r v a l s t o m a i n t a i n t h e h i e r a r c h i c seguence.. The f i r s t c o n t r o l i n t e r v a l of an OSAM da t a s e t or the second c o n t r o l i n t e r v a l of an ESDS (the f i r s t , i n the l a t t e r c a s e , i s used f o r VSAM c o n t r o l i n f o r m a t i o n ) i s r e s e r v e d f o r a b i t map. T h i s b i t map i s used t o determine whether o r n o t space i s a v a i l a b l e i n a p a r t i c u l a r c o n t r o l i n t e r v a l . Depending on the s i z e of t h e c o n t r o l i n t e r v a l and t h e number of c o n t r o l i n t e r v a l s used i t may be n e c e s s a r y t o have s e v e r a l b i t maps i n o r d e r t o c o v e r t h e e n t i r e d a t a base. I n t h i s c a s e , subseguent b i t maps are d i s t r i b u t e d t h r o u g h o u t the d a t a s e t and c h a i n e d by an anchor p o i n t a r e a a t the f i r s t of each b i t map c o n t r o l i n t e r v a l . As with HISAM, an i m p o r t a n t performance c o n s i d e r a t i o n i s t h e s e l e c t i o n o f an o p t i m a l c o n t r o l i n t e r v a l s i z e . . A l s o t o be c o n s i d e r e d i s t h e wise use of d i s t r i b u t e d f r e e space (see C o n s t r a i n t s and E x t e n s i o n s ) which can h e l p t o minimize t h e amount o f moving r e q u i r e d when new segments are t o be i n s e r t e d . Because o f t h e c h a i n i n g of f r e e space and t h e a b i l i t y t o s p e c i f y d i s t r i b u t e d f r e e space, a HIDAM data base i s a b l e , t o re u s e t h e space o c c u p i e d by d e l e t e d segments and i n s e r t new segments i n p r o x i m i t y t o i t s p o s i t i o n i n the h i e r a r c h i c a l seguence. . T h e r e f o r e , HIDAM i s u s e f u l when b o t h s e g u e n t i a l and d i r e c t p r o c e s s i n g a r e r e g u i r e d and when many i n s e r t i o n s and d e l e t i o n s a re p r o b a b l e . . 57 HD AM A d a t a base u s i n g t h e HDAM a c c e s s method w i l l use the same s t o r a g e s t r u c t u r e as a HIDAM da t a base w i t h o u t t h e i n d e x d a t a base. See F i g u r e 2.7. HDAM uses a h a s h i n g f u n c t i o n , i n s t e a d of an i n d e x , t o p r o v i d e d i r e c t a c c e s s t o r o o t segments. T h i s h a s h i n g f u n c t i o n may be e i t h e r u s e r s u p p l i e d or one o f many s u p p l i e d by IMS. When c h o o s i n g a h a s h i n g f u n c t i o n the user d e t e r m i n e s t h e s i z e of the r o o t a d d r e s s a b l e a r e a . The us e r a l s o s p e c i f i e s t h e maximum number o f b y t e s of a data base r e c o r d t o be s t o r e d i n t h e r o o t a d d r e s s a b l e a r e a ; the remainder a r e s t o r e d i n t h e o v e r f l o w a r e a . The h a s h i n g f u n c t i o n produces a c o n t r o l i n t e r v a l and an anchor p o i n t number. When m u l t i p l e key v a l u e s hash t o t h e same c o n t r o l i n t e r v a l and anchor p o i n t , the synomyms a r e c h a i n e d t o g e t h e r i n as c e n d i n g key v a l u e sequence. The user may s p e c i f y t h a t from one t o t e n synonym c h a i n s be used per anchor p o i n t . There a re many ways i n which the performance o f a HDAM dat a base may be a f f e c t e d . A h a s h i n g f u n c t i o n s h o u l d be chosen which p r o v i d e s a good d i s t r i b u t i o n o f hash v a l u e s t o pr e v e n t t h e use of synonym c h a i n s whenever p o s s i b l e . . The s i z e o f t h e r o o t a d d r e s s a b l e a r e a s h o u l d not be t o o s m a l l so as t o i n c r e a s e the number o f synonyms, nor s h o u l d i t be t o o l a r g e so as t o have t o o much wasted space. The number of b y t e s of a data base r e c o r d t o be s t o r e d i n the r o o t a d d r e s s a b l e a r e a s h o u l d not be t o o s m a l l so as t o make t h e 58 t i m e r e g u i r e d t o f o l l o w p o i n t e r s e x c e s s i v e nor s h o u l d i t be t o o l o n g so as t o waste space when t h e data base r e c o r d s a r e s h o r t , s I n c r e a s i n g the number of synonym c h a i n s w i l l d e c r e a s e t h e l e n g t h o f t h e i n d i v i d u a l c h a i n s as w i l l i n c r e a s i n g the number of anchor p o i n t s or the s i z e o f the r o o t a d d r e s s a b l e a r e a . The s h o r t e r t h e synonym c h a i n s the l e s s time w i l l be spent f o l l o w i n g p o i n t e r s . The HDAM a c c e s s method p r o v i d e s f a s t , d i r e c t a c c e s s by e l i m i n a t i n g the need to s e a r c h an i n d e x . However, the key s e t s h o u l d be r e l a t i v e l y s t a b l e and must be c a p a b l e of b e i n g randomized. I t i s p o s s i b l e to s e g u e n t i a l l y p r o c e s s t h e r e c o r d s as they are p h y s i c a l l y s t o r e d i n the d a t a s e t b u t , depending on the key and the h a s h i n g f u n c t i o n used, t h i s o r d e r i s not n e c e s s a r i l y t h e same as the r o o t key o r d e r . T h i s may make s e g u e n t i a l a c c e s s by r o o t key o r d e r i m p o s s i b l e . As f o r HIDAM, t h i s method i s good when many i n s e r t i o n s and d e l e t i o n s a r e e x p e c t e d . S_pa.ce C o n s i d e r a t i o n s One o f t h e most i m p o r t a n t performance c o n s i d e r a t i o n s i s the amount of secondary s t o r a g e the d a t a base w i l l r e g u i r e . Our a b i l i t y t o c a l c u l a t e a c c u r a t e l y t h e e x a c t amount of s t o r a g e r e g u i r e d i s hampered by such t h i n g s as v a r i a b l e s i z e s of segments, a v a r i a b l e number of dependents f o r any p a r e n t 59 and the general v i c i s s i t u d e of the data base. However, we can make approximations to the storage reguirements under the d i f f e r e n t access methods and use these f i g u r e s f o r comparative purposes when deciding which access method to use. The f o l l o w i n g i s an attempt t o make these approximations. For each access method a formula w i l l be derived r e l a t i n g the t o t a l storage reguirements to the v a r i a b l e s which apply t o i t . Table 4.1 contains a l i s t of ab b r e v i a t i o n s used i n these formulas and t h e i r meanings. 60 SH T o t a l s t o r a g e r e q u i r e m e n t (bytes) . SRI S t o r a g e r e q u i r e d f o r the p r i m a r y data s e t ( b y t e s ) . SR2 Storage r e g u i r e d f o r secondary data s e t s ( b y t e s ) . WASS Weighted average of segment s i z e ( b y t e s ) . S i Length o f segment i ( b y t e s ) . O i O c c u r r e n c e s o f segment i . OS Unusable space ( b y t e s / u n i t of storage) . BF B l o c k i n g f a c t o r ( b y t e s / b l o c k ) or ( b y t e s / i n t e r v a l ) . LRL L o g i c a l r e c o r d l e n g t h (bytes) . . BLOCKS Number o f b l o c k s r e g u i r e d ( b l o c k s ) . . RECORDS Number o f l o g i c a l r e c o r d s r e q u i r e d ( r e c o r d s ) . CNTL. Number o f c o n t r o l i n t e r v a l s r e q u i r e d ( i n t e r v a l s ) . n T o t a l number o f segments. m F i r s t segment i n secondary d a t a s e t . k Number o f r o o t s per c o n t r o l i n t e r v a l . f b f f Free b l o c k f r e g u e n c y f a c t o r (0 t o 100 e x c l u d i n g 1 ) . f s p f Free space p e r c e n t a g e f a c t o r (0 t o 9 9 ) . BMP Stor a g e reguirement f o r b i t maps ( b y t e s ) . T a b l e 4.1 A b b r e v i a t i o n s and d e s c r i p t i o n s . The weighted average segment s i z e (WASS) i s the p r o d u c t of t h e l e n g t h o f each segment and t h e number o f o c c u r r e n c e s o f t h a t segment summed over a l l segments, d i v i d e d by the t o t a l number of o c c u r r e n c e s : 61 WASS n £sioi i = l n i = l The weighted average segment s i z e of segments i n the secondary data sets only (WASS1) i s given by the formula: n S i O i i=m WASS 1 n -i Oi i=m The t o t a l storage reguirement (SR) i s always the sum of the storage reguirement f o r the primary data set (SRI) and f o r the secondary data sets (SR2) : SR ' = SRI + SR2 For HSAM the t o t a l storage reguirement i s given by the amount of space needed to s t o r e the data plus a p o r t i o n of each block which i s l e f t unused: 62 n S i O i + US * BLOCKS where: US = WASS 2 n BLOCKS E s i o i i = l BF - US For HISAM (as f o r HIDAM and HDAM) the amount of storage reguired depends upon whether ISAM/OSAM or VSAM i s used. For an ISAM/OSAM implementation there i s one l o g i c a l record i n the index f o r each occurrence of a root segment: SRI = LRL * Oi The secondary data sets are made up of the t o t a l space reguired to st o r e the remaining segments plus the unused space at the end of each record: n SR2 S i O i + U.S * RECORDS . i=m 6 3 where: US = WASS' + ? , 2 n n SiOi RECORDS = — : LRL - US The VSAM i m p l e m e n t a t i o n i s s l i g h t l y d i f f e r e n t . S i n c e the c o n t r o l i n t e r v a l s a r e m a i n t a i n e d l i k e B - t r e e s , on the average each w i l l o n l y be t h r e e g u a r t e r s f u l l . Each c o n t r o l i n t e r v a l a l s o has t e n byt e s of c o n t r o l i n f o r m a t i o n : SRI = LRL * 01 * k + Oi * 10 . 3 k A l s o , each l o g i c a l r e c o r d c o n t a i n s a f i v e byte ( v s . . seven f o r ISAM/OSAM) p o i n t e r , which i s c o n s i d e r e d unused space: US = WASS' + 7 2 The o t h e r d e f i n i t i o n s remain t h e same as f o r ISAM/OSAM. I n the ISAM/OSAM i m p l e m e n t a t i o n of HIDAM each i n d e x r e c o r d c o n t a i n s t h e r o o t p l u s a f o u r b y t e p o i n t e r : SRI = ( S i + k ) * Oi 64 l a the secondary data set there i s a seven byte p o i n t e r i n each c o n t r o l i n t e r v a l : US = WASS + 7 2 and the t o t a l number of c o n t r o l i n t e r v a l s i s : n CNTL = S i O i i = l BF - US Each b i t map i s a c o n t r o l i n t e r v a l with e i g h t bytes of c o n t r o l i n f o r m a t i o n . The number of b i t maps required depends on the s i z e of the c o n t r o l i n t e r v a l and the number of c o n t r o l i n t e r v a l s required t o s t o r e the data: BMP = C CNTL " V BF V B F - 8 / the t o t a l storage requirements are then given by : SR2 = > S i O i + US * CNTL * f b f f * 1 J / f b f f - 1 1 - f s p f 1 0 0 + BMP 65 The s i g n i f i c a n c e o f f b f f and f s p f w i l l be i n t r o d u c e d l a t e r . With a VSAM i m p l e m e n t a t i o n of HIDAM, each l o g i c a l r e c o r d i n t he i n d e x d a t a base w i l l o n l y be t h r e e g u a r t e r s f u l l : -SRI = ( S i + k ) * Oi * k 3 I n the se c o n d a r y d a t a s e t s each c o n t r o l i n t e r v a l c o n t a i n s f o u r t e e n b y t e s of c o n t r o l i n f o r m a t i o n : US = WASS + 14 2 And each b i t map c o n t r o l i n t e r v a l has f i f t e e n b y t e s o f c o n t r o l i n f o r m a t i o n ( t h e r e i s a l s o an e x t r a c o n t r o l i n t e r v a l a t t h e f i r s t of t h e da t a s e t ) : BMP = ( CNTL + j f\ * \BF - 15 J BF The CNTL and SE2 d e f i n i t i o n s a r e t h e same. The HDAM i m p l e m e n t a t i o n w i l l be t h e same as th e HIDAM i m p l e m e n t a t i o n w i t h o u t t h e i n d e x data base.. So, f o r HDAM under ISAM/OSAM: 66 US = WASS + 7 2 n i S i O i i = l CNTL = * BF - US BMP = ( CNTL ) * BF VJBF - 8 7 SR = I / S i O i + US * BLOCKS | * f b f f * 1 + BMP f b f f - 1 1 - f s p f i = l / 100 and f o r a VSAM i m p l e m e n t a t i o n : US = WASS + 14 BMP = f CNTL + 1 ) * BF VPF - 15 J Time C o n s i d e r a t i o n s I n o r d e r t o make a c c u r a t e time e s t i m a t e s of v a r i o u s q u e r i e s under the d i f f e r e n t a c c e s s methods i t would be n e c e s s a r y t o o b t a i n a p r e c i s e count of the q u e r i e s and t e s t them under the ac c e s s methods o r perform some t y p e o f 67 S i m u l a t i o n [ 33 ]. Both o f t h e s e a l t e r n a t i v e s a r e c o s t l y and time consuming, i n f a c t , the former may be p r o h i b i t a t i v e l y so and t h e l a t t e r l e n d s i t s e l f t o a p p r o x i m a t i o n s and assu m p t i o n s . A " g u i c k and d i r t y " method of e v a l u a t i n g the a l t e r n a t i v e s i s p r e s e n t e d . T a b l e 4,2 r e l a t e s each o f the p h y s i c a l r e c o r d i n t e r f a c e s a s s o c i a t e d w i t h each a c c e s s method t o seven f a c t o r s r e p r e s e n t a t i v e o f modes of p r o c e s s i n g g u e r i e s . Weight HSAM SAM HISAM ISAM/ OSAM HISAM VSAM HIDAM HISAM/ OSAM HIDAM VSAM HD AM OSAM HD AM VSAM Update 1 3 4 5 5 5 5 I n s e r t i o n 1 3 2 4 4 5 5 D e l e t i o n 1 5 5 3 3 4 4 Bet r i e v a l 2 2 3 4 4 5 5 S e g u e n t i a l P r o c e s s i n g 3 3 3 5 5 2 2 D i r e c t Access P r o c e s s i n g 2 3 3 4 4 5 5 R e o r g a n i z a t i o n 5 4 1 1 2 2 T o t a l s X X X X X X X X Table 4.2 Access method r a t i n g s f o r guery response time. Each a c c e s s method i s g i v e n a r a t i n g f o r each guery t y p e . A r a t i n g of 1 i s poor w h i l e a r a t i n g o f 5 i n d i c a t e s t h a t t h i s 68 i s t h e b e s t a c c e s s method t o use f o r t h i s p a r t i c u l a r t y p e o f gu e r y . . To e v a l u a t e t h e d i f f e r e n t a c c e s s methods, a weight s h o u l d be a p p l i e d t o each guery a c c o r d i n g t o how o f t e n such a guery i s e x p e c t e d and t h e i m p o r t a n c e t h e user p l a c e s on i t s q u i c k r e s p o n s e . These weights a r e r e c o r d e d i n the f i r s t column and then a p p l i e d t o each o f t h e r a t i n g s . The weight t i m e s t h e r a t i n g i s r e c o r d e d i n the second column under t h e a p p r o p r i a t e a c c e s s method. These columns a r e t h e n summed t o p r o v i d e a comparison of t h e d i f f e r e n t a c c e s s methods. The arguments used i n a s s i g n i n g t h e s e r a t i n g s were o u t l i n e d e a r l i e r i n t h i s c h a p t e r when t h e a c c e s s methods were c o n s i d e r e d i n d e t a i l . I t may be b e n e f i c i a l t o i n c l u d e s t o r a g e c o s t s i n t h i s same way. I f s t o r a g e c o s t s a r e t o be i n c l u d e d , r a t i n g s can be a s s i g n e d u s i n g the s t o r a g e r e g u i r e m e n t s f o r each a c c e s s method and a new row can be added t o t h e t a b l e . . The user t h e n a s s i g n s a weight t o t h e s t o r a g e r e q u i r e m e n t s row and the t o t a l s c a l c u l a t e d w i l l t a k e s t o r a g e r e g u i r e m e n t s i n t o c o n s i d e r a t i o n . A g a i n , i t s h o u l d be noted t h a t t h i s method o f comparison does not p r o v i d e an a b s o l u t e measure of the t i m e r e q u i r e d t o s a t i s f y a query. R a t h e r , i t p r o v i d e s a r e l a t i v e r a t i n g so t h a t t h e v a r i o u s a c c e s s methods may be compared i n t h i s r e s p e c t . 69 C o n s t r a i n t s and E x t e n s i o n s When d i s c u s s i n g the v a r i o u s methods so f a r , a t t e n t i o n has been p a i d t o o n l y the b a s i c a t t r i b u t e s o f each method; however, f o r each t h e r e a r e a number of c o n s t r a i n t s and e x t e n s i o n s t h a t may a p p l y . . The c o n s t r a i n t s a r e summarized i n Table 4.3. These w i l l be the f i r s t e l i m i n a t i n g f a c t o r s when s e l e c t i n g an a c c e s s method. Gi v e n t h a t an a c c e s s method i s a c c e p t a b l e under t h e s e c o n d i t i o n s , o n l y then w i l l f u r t h e r c o n s i d e r a t i o n be n e c e s s a r y . E x t e n s i o n s e x i s t i n many forms, but f o u r i m p o r t a n t ones are o u t l i n e d here. A g a i n , one s h o u l d c o n s u l t T a b l e 4.3 t o determine which a c c e s s methods t h e s e a p p l y t o . D i s t r i b u t e d Free Space I n a d a t a base i n which t h e r e i s much segment i n s e r t a c t i v i t y , performance can be s e v e r l y degraded i f i n s e r t e d segments cannot be p l a c e d p h y s i c a l l y a d j a c e n t t o t h e i r r e l a t e d segments. I n o r d e r t o a l l e v i a t e t h i s problem, a s e t amount of f r e e (unused) space may be d i s t r i b u t e d throughout t h e d a t a s e t at i n i t i a l i z a t i o n . . Two f a c t o r s a r e used t o determine how much f r e e space i s s e t a s i d e . The f r e e b l o c k f r e g u e n c y f a c t o r ( f b f f ) s p e c i f i e s t h a t e v e r y nth c o n t r o l i n t e r v a l i n t h e d a t a s e t w i l l be l e f t as f r e e space. The range of the f b f f i s from 0 t o 100 e x c l u d i n g 1. 70 HSAM SAM HISAM ISAM/ OSAM HISAM VSAM HIDAM HISAM/ OSAM ilDAM VSAM HDAM OSAM HDAM VSAM L o g i c a l R e l a t i o n s Supported? no yes yes yes yes yes yes Secondary Indexes Supported? no yes yes yes yes yes yes D e l e t e d Segment Space Reusable? no no no yes yes yes yes D i s t r i b u t e d Free Space F a c t o r ? no no no yes yes yes yes M u l t i p l e Data Set Groups ? no yes no yes yes yes yes tlnigue Key For Root R e g u i r e d ? no yes yes yes yes no no Root Only Access Method A v a i l a b l e ? yes no yes no no no no H i e r a r c h y Determines P h y s i c a l C o n t i g u i t y ? yes yes yes no no no no Child-Tw i n P o i n t e r s Supported? no no no yes yes yes yes I n s e r t , D e l e t e and Rep l a c e P o s s i b l e ? no yes yes yes yes yes yes D i r e c t A c c e s s t o Segments P o s s i b l e ? no yes yes yes yes yes yes Table 4 . 3 Access method c o n s t r a i n t s . 7 1 The f r e e space percentage f a c t o r ( f s p f ) s p e c i f i e s t h e minimum per c e n t a g e o f each c o n t r o l i n t e r v a l t o be l e f t as f r e e space. I t can t a k e on any v a l u e from 0 t o 99.. These f a c t o r s have been i n c o r p o r a t e d i n t o t h e s t o r a g e r e g u i r e m e n t f o r m u l a s f o r HIDAM and HDAM data bases. I t s h o u l d be noted t h a t a l t h o u g h you decrease the a c c e s s time when you i n c r e a s e the amount of f r e e s p a c e , you do t h i s at the expense of i n c r e a s i n g t h e t o t a l amount of s t o r a g e space r e g u i r e d . I t i s i m p o r t a n t t o choose v a l u e s of f b f f and f s p f w i t h t h i s t r a d e - o f f i n mind. M u l t i p l e Data Set Groups Data bases o f t e n e x i s t i n which t h e l e n g t h s of t h e segments are g u i t e d i f f e r e n t . I n t h i s c a s e , l o g i c a l r e c o r d l e n g t h s which are o p t i m a l f o r the s h o r t segments may not n e c e s s a r i l y be a p p r o p r i a t e f o r the l o n g e r segments, o r v i c e v e r s a . I n such a case i t may be a p p r o p r i a t e t o have one l o g i c a l r e c o r d l e n g t h f o r seme of the segments and a n o t h e r l e n g t h f o r o t h e r segments.. IMS/VS a l l o w s m u l t i p l e d ata s e t groups.. T h i s means t h a t t h e secondary dae broken up i n t o as many as t e n data s e t groups, each h a v i n g i t s own l o g i c a l r e c o r d l e n g t h , A case of d r a m a t i c performance improvement by u s i n g m u l t i p l e d ata s e t groups has been r e p o r t e d by Bruce Sicherman i n the IMS Newsle11er[34 ]. The most d r a m a t i c r e s u l t was a 95% r e d u c t i o n i n I/Os f o r a p a r t i c u l a r t r a n s a c t i o n . I n o t h e r d a t a bases, where m u l t i p l e data s e t groups were e f f e c t i v e , an 72 average e l a p s e d time improvement o f 33% was measured. A l t h o u g h m u l t i p l e data s e t groups can s i g n i f i c a n t l y d e c r e a se the amount of s t o r a g e space and/or t h e number of I/Os r e q u i r e d t h e r e i s an i n c r e a s e i n t h e overhead f o r m a i n t a i n i n g t h e d i f f e r e n t d a t a s e t groups. As w e l l , t h e p h y s i c a l p r o x i m i t y of r e l a t e d segments might be a f f e c t e d . A g a i n , a t r a d e - o f f between space and t i m e e x i s t s . Root-Only Access Method Two o t h e r a c c e s s methods e x i s t which have not y e t been d i s c u s s e d . They a r e t h e Si m p l e H i e r a r c h i c S e q u e n t i a l A c c e s s Method (SHSAM) and t h e Simple H i e r a r c h i c Indexed S e q u e n t i a l A c cess Method (SHISAM). I n both c a s e s t h e d a t a base r e c o r d may c o n s i s t of o n l y a s i n g l e segment - t h e r o o t . . The p r e f i x , which n o r m a l l y i d e n t i f i e s the t y p e of segment, i s not needed. Other than t h e above two d i s t i n c t i o n s , a SHSAM da t a base i s s t o r e d s i m i l a r t o a HSAM d a t a base and a SHISAM d a t a base i s s t o r e d s i m i l a r t o a HISAM d a t a base. The s a v i n g comes i n the form of both t i m e and space. Less space i s r e g u i r e d because t h e p r e f i x e s are not needed and l e s s t i m e i s needed t o ac c e s s a segment as t h e r e i s o n l y one t y p e . However, SHSAM and SHISAM o n l y a p p l y t o a very unique k i n d of data base and cannot n o r m a l l y be used. C h i l d - T w i n P o i n t e r s When p o i n t e r s a r e used t o a c c e s s a d a t a base they c o n n e c t t h e segments i n h i e r a r c h i c a l sequence. To a c c e s s a p a r t i c u l a r 73 c h i l d of a parent i t i s necessary to go through a l l the children which come.before the desired c h i l d in h i e r a r c h i c a l seguence. To provide more dire c t access to c h i l d segments, child-twin pointers may be s p e c i f i e d . When child-twin pointers are used, a pointer to each c h i l d i s sp e c i f i e d in the pointer f i e l d s of the parent segment thus enabling you to go d i r e c t l y to the desired c h i l d . This i s p a r t i c u l a r i l y important i n data bases in which the segment types are processed randomly. I t should be noted that child-twin pointers can only be s p e c i f i e d i n the place of hierarchic pointers - the two kinds cannot e x i s t together. The type of processing and the performance expected from each kind must be considered before one of the two i s selected. 7 4 Chapter 5 - Other Performance Considerations Introduction In a system as large as IMS there e x i s t s a great number of factors which, i n one way or another, determine the performance of the system. . In the previous two chapters some of the more prominent issues ( i . e . , those which are thought to have the greatest e f f e c t on performance) have been discussed. It i s not possible to present here a complete enumeration of a l l relevant factors with t h e i r various merits, vices and int e r a c t i o n s . Such a study i s beyond the scope of t h i s paper and may well be impracticable.. For the sake of completeness three more topics w i l l be covered i n some d e t a i l - buffering f a c i l i t i e s , application programming and main storage requirements. Each of these w i l l be covered i n i t s own section l a t e r in t h i s chapter. In addition to these, there are some other matters which bear mentioning. These l a t t e r topics - the fast path feature, user e x i t routines and data base reorganization - w i l l be introduced here with what i s hoped to be s u f f i c i e n t references to s a t i s f y the interested reader. . Fast Path The f a s t path feature i s an alternate transaction processing mode. I t i s suitable for applications which require good response c h a r a c t e r i s t i c s and which may have large transaction volumes but which only need simple data base 75 s t r u c t u r e s . Fast path runs i n c o n j u n c t i o n with the IMS/VS data communication f a c i l i t y and does not r e p l a c e i t . Data bases u s i n g the f a s t path f e a t u r e can be accessed by e i t h e r f a s t path or IMS/VS t r a n s a c t i o n s . For more i n f o r m a t i o n on the f a s t path f e a t u r e see the Fast Path Feature General Information Manualf141.. In a d d i t i o n , f o r design c o n s i d e r a t i o n s see Chapter 6 of the Sys t e m / A p p l i c a t i o n Design Guide[20 ] and Chapters 1 - 5 of the System Programming Reference Man.uair 211. E x i t Routines IMS pr o v i d e s f o r the use of e x i t r o u t i n e s . These r o u t i n e s may be e i t h e r w r i t t e n by the user or drawn from a l i b r a r y of r o u t i n e s s u p p l i e d by IMS. E x i t r o u t i n e s allow the use of i n t e r n a l l y generated data as w e l l as p e r m i t t i n g users to i n c o r p o r a t e p r o c e s s i n g e x t e n s i o n s of t h e i r own.. Of p a r t i c u l a r i n t e r e s t (with regard to performance) i s the Segment Edit/Compression E x i t which permits t h e e d i t i n g of a segment duri n g i t s movement between the data base b u f f e r p o o l and the i n p u t / o u t p u t of the a p p l i c a t i o n program. Thus, one can compress data f o r storage and expand i t again f o r p r o c e s s i n g . User e x i t r o u t i n e s are covered i n Chapters 3 and 4 of the Sy.st.em Programming Reference Manuair 211.. Some design c o n s i d e r a t i o n s are given i n the System/Ap_glication Design Guide[20] pp. 4. 125 - 4. 148.. 76 R e o r g a n i z a t i o n Data base r e o r g a n i z a t i o n i s a t o p i c which must be c o n s i d e r e d i n an a p p l i c a t i o n which i s i n any way v o l a t i l e . R e o r g a n i z a t i o n i s the a c t of r e s t r u c t u r i n g a data base t o r e f l e c t changes i n p r o c e s s i n g o r t o improve performance i n a da t a base i n which u t i l i z a t i o n o f space and/or c o n t i g u i t y o f segments has been degraded due to a number of i n s e r t s and d e l e t e s . The a c t u a l and CPO time r e g u i r e d f o r such an o p e r a t i o n i s u s u a l l y s u b s t a n t i a l and must be weighed a g a i n s t t h e improved performance expected from the r e o r g a n i z a t i o n . . R e o r g a n i z a t i o n of IMS data bases i s d i s c u s s e d i n Chapter 5 o f the D t i l i t i e s R e ference Manual[22] and more g e n e r a l l y i n th e S y s t e m / A p p l i c a t i o n Design Guide[ 20 ] pp. . 4.150 - 4. 152. For a d i s c u s s i o n o f the p r i n c i p l e s of r e o r g a n i z a t i o n see " R e s t r u c t u r i n g f o r Large Data Bases: Three L e v e l s o f A b s t r a c t i o n " [ 2 8 ] and "Database R e o r g a n i z a t i o n - P r i n c i p l e s and P r a c t i c e " [ 3 5 ]. B u f f e r i n g F a c i l i t i e s I n IMS/VS p o o l s of b u f f e r s a re m a i n t a i n e d t o decrease t h e r e g u i r e d number of a c c e s s e s t o secondary s t o r a g e by a l l o w i n g b l o c k s o f d a t a t o remain i n v i r t u a l s t o r a g e as l o n g a s p o s s i b l e . Three t y p e s of b u f f e r p o o l s e x i s t - the ISAM/OSAM b u f f e r p o o l , t h e VSAM sh a r e d r e s o u r c e p o o l and t h e DL/I b u f f e r h a n d l e r p o o l . 77 The DL/I b u f f e r h a n d l e r p o o l i s used i n c o n j u n c t i o n w i t h an ISAM/OSAM b u f f e r p o o l or a VSAM shared r e s o u r c e p o o l depending on the a c c e s s method of t h e da t a base i n use.. I t i s used f o r r e c o r d i n g b u f f e r i n g s e r v i c e s a c t i v i t y . T h i s i n c l u d e s s t a t i s t i c s on b u f f e r i n g s e r v i c e s as w e l l as r e c o r d i n g c a l l s f o r b u f f e r i n g s e r v i c e s , open and c l o s e of d a t a bases and program i s o l a t i o n enqueues and degueues. Data bases t h a t use the VSAM a c c e s s method s h a r e t h e use of b u f f e r s i n t h e VSAM shared r e s o u r c e p o o l . Data bases t h a t use the ISAM c r OSAM ac c e s s method share t h e use of b u f f e r s i n t h e ISAM/OSAM b u f f e r p o o l . . B u f f e r s a r e combined i n s u b p o o l s ; a l l b u f f e r s w i t h i n a s u b p o o l b e i n g of t h e same l e n g t h . B u f f e r s a re c h a i n e d t o g e t h e r i n a use c h a i n . Empty b u f f e r s a r e p l a c e d a t t h e bottom o f t h e c h a i n and are a l w a y s ready f o r use. As b u f f e r s are a c c e s s e d t h e y a r e p l a c e d a t the t o p of t h e c h a i n . When a d a t a s e t i s opened i t i s a s s i g n e d a b u f f e r s u b p o o l which c o n t a i n s b u f f e r s a t l e a s t as l a r g e as t h e d a t a s e t b l o c k or c o n t r o l i n t e r v a l s i z e . When a r e t r i e v a l r e g u e s t o c c u r s , the b u f f e r p o o l i s s e a r c h e d , u s i n g the use c h a i n , t o see i f t h e r e q u i r e d segment i s i n v i r t u a l s t o r a g e . I f i t i s f o u n d , the a p p r o p r i a t e b u f f e r i s p l a c e d a t the t o p of t h e use c h a i n . I f i t i s not f o u n d , the b u f f e r at t h e bottom o f t h e c h a i n ( the l e a s t r e c e n t l y used) i s s e l e c t e d . . I f i t c o n t a i n s o l d d a t a and t h a t d a t a has been changed, the b u f f e r i s w r i t t e n out. The r e g u e s t e d d a t a i s then r e a d i n t o t h e b u f f e r and the b u f f e r i s moved t o the top o f the use c h a i n . 78 The number and s i z e of each k i n d of b u f f e r p o o l i s d e t e r m i n e d by the user. A t i m e / s p a c e t r a d e o f f e x i s t s h e r e which must be r e c o n c i l e d t o p r o v i d e a c c e p t a b l e performance f o r an i n s t a l l a t i o n . P r o v i d i n g a v a r i e t y of b u f f e r s u b p o o l s and i n c r e a s i n g t h e t o t a l number of b u f f e r s w i l l improve t h e response t i m e as l e s s I/O w i l l be r e g u i r e d t o s a t i s f y each DL/I r e g u e s t . However, t h i s a l s o means t h a t more v i r t u a l s t o r a g e i s t a k e n up by the b u f f e r s - some of which may not be used a t a l l t i m e s . I f i t i s n e c e s s a r y t o use b u f f e r s which a r e l a r g e r t h a n t h e b l o c k or c o n t r o l i n t e r v a l s i z e some space w i l l be wasted a t t h e end of each b u f f e r . The b e s t s i t u a t i o n i s t o have th e b u f f e r s i z e e g u a l t o the b l o c k or c o n t r o l i n t e r v a l s i z e but t h i s may l i m i t t h e number of data s e t s which may use a p a r t i c u l a r s u b p ool and t h u s have t h e whole s u b p o o l go t o waste when no a p p r o p r i a t e d a t a s e t i s i n use. A d a t a base w i t h h i g h a c t i v i t y may tend t o o v e r l o a d a p a r t i c u l a r s u b p o o l . . T h i s may be a v o i d e d by d e f i n i n g the d a t a s e t b l o c k or c o n t r o l i n t e r v a l s i z e i n such a way t h a t the d a t a base i s a s s i g n e d a unigue s u b p o o l . T h i s w i l l r e l i e v e the s t r a i n on o t h e r s u b p o o l s and reduce c o n t e n t i o n among d a t a s e t s . . When d e t e r m i n i n g which d a t a s e t s w i l l s h a r e .. s u b p o o l s i t i s i m p o r t a n t t o c o n s i d e r how t h e a p p l i c a t i o n programs w i l l a c c e s s t h e d a t a bases. ; For example: Are segments g e n e r a l l y r e q u e s t e d o n c e - o n l y ? I s r e t r i e v a l of r e c o r d s i n h i e r a r c h i c a l or some o t h e r o r d e r ? Are a c e r t a i n p ercentage o f segments 7 9 always r e q u e s t e d ? C o n t e n t i o n can be reduced by g r o u p i n g t o g e t h e r d a t a bases t h a t have s i m i l a r p r o c e s s i n g r e g u i r e m e n t s or which never r e g u i r e the same s u b p o o l a t the same t i m e . . lE£ii£Stion Programming One of t h e g r e a t e s t c r i t i c i s m s o f IMS i s t h a t i t imposes a h i e r a r c h i c a l s t r u c t u r e on the da t a and t h a t i t r e g u i r e s a programmer t o be f a m i l i a r w i t h a t l e a s t p a r t o f t h i s s t r u c t u r e i f she/he i s t o w r i t e programs which s u c c e s s f u l l y p e r f o r m t r a n s a c t i o n s . . To go one s t e p f u r t h e r , a more comprehensive knowledge of both t h e data s t r u c t u r e and DL/I p r o c e s s i n g i s n e c e s s a r y i f t h e s e t r a n s a c t i o n s a r e t o be c a r r i e d out i n an e f f i c i e n t manner. By b e i n g aware of the o r d e r i n which the d a t a base i s s t o r e d t h e a p p l i c a t i o n programmer can g r e a t l y reduce t h e number o f I/Os by p r o c e s s i n g t h e da t a base i n t h a t o r d e r whenever p o s s i b l e . The e x i s t e n c e o f secondary i n d e x e s o r t h e p o s s i b i l i t y of i n t r o d u c i n g such i n d e x e s s h o u l d be made known t o a l l a p p l i c a t i o n programmers. F a c i l i t i e s such as t h e s e , which are designed f o r a s p e c i f i c a p p l i c a t i o n , may have a use i n a n o t h e r a p p l i c a t i o n as w e l l . When p r o c e s s i n g data bases i t i s b e s t t o r e t r i e v e a r o o t segment and p r o c e s s a l l segments of t h a t r e c o r d b e f o r e moving on t o a n o t h e r r o o t o r another d a t a base. S i n c e a r o o t and i t s c h i l d segments can t y p i c a l l y be r e t r i e v e d w i t h one a c c e s s . 80 time i s saved by d o i n g as much p r o c e s s i n g as p o s s i b l e on a g i v e n r e c o r d when i t i s i n v i r t u a l s t o r a g e . Search t i m e can be s i g n i f i c a n t l y d ecrease by making a l l DL/I c a l l s as f u l l y g u a l i f i e d as p o s s i b l e . , T h i s e n t a i l s s p e c i f y i n g a v a l u e f o r each key of each segment on the h i e r a r c h i c a l path t o t h e d e s i r e d segment. . T h i s reduces t h e number o f paths to s e a r c h and t h u s e l i m i n a t e s some of t h e overhead. When a segment i s t o be r e t r i e v e d i t i s n e c e s s a r y t o i s s u e a DL/I 'get' c a l l (see T a b l e 2.2 f o r a summary of DL/I s u b r o u t i n e c a l l s and d e s c r i p t i o n s ) . I f t h i s segment i s t o be changed i n any way a 'get h o l d ' c a l l i s r e q u i r e d . Because t h e r e i s v e r y l i t t l e performance d i f f e r e n c e between a 'get* and a 'get h o l d * c a l l , the 'get h o l d * s hould be used whenever t h e r e i s a r e a s o n a b l e chance (about 5% or more) t h a t t h e segment w i l l be changed. . T h i s e l i m i n a t e s the need t o do both a 'get' and a 'get h o l d ' . When i n s e r t i n g and d e l e t i n g f i e l d s o r segments i t i s i m p o r t a n t t o bear i n mind the p o l i c y implemented by the a c c e s s method b e i n g used.. The i n s e r t i o n o r d e l e t i o n of l o n g e r o r s h o r t e r f i e l d s or segments may have adverse e f f e c t s on p e r f o r m a n c e . These p o l i c i e s have been d i s c u s s e d i n Chapter 4 under t h e a p p r o p r i a t e a c c e s s methods.. Whenever p o s s i b l e , i t i s a l w a y s b e t t e r t o use t h e ' r e p l a c e ' c a l l o v e r a ' d e l e t e ' f o l l o w e d by an ' i n s e r t ' as t h i s e l i m i n a t e s t h e need t o make changes t o p o i n t e r s and reduces space management overhead.. With each DL/I c a l l one or more o p t i o n a l command codes 81 may be s p e c i f i e d . Of p a r t i c u l a r i n t e r e s t i s the D command code ( f o r a complete t r e a t m e n t of comand codes see c h a p t e r 3 of t h e A p p l i c a t i o n Programming R e f e r e n c e ManualT 1 5 ] ) . The D command code a l l o w s the i s s u a n c e o f path c a l l s , A path i s a h i e r a r c h i c a l seguence o f segments* one per l e v e l , l e a d i n g from a segment a t a h i g h e r l e v e l t o one a t a lower l e v e l . . A p a t h c a l l e n a b l e s a h i e r a r c h i c a l p a t h o f segments t o be i n s e r t e d o r r e t r i e v e d w i t h one c a l l . . "The c o r r e c t usage of path c a l l s can have a s i g n i f i c a n t performance advantage. You s h o u l d use i t whenever p o s s i b l e , even i f t h e chance o f t h e e x i s t e n c e of the need f o r the dependent segment (s) i s r e l a t i v e l y s m a l l . . For i n s t a n c e , i f you would need, i n 10% or more o f the o c c u r r e n c e s , t h e f i r s t dependent segment a f t e r you i n s p e c t t h e p a r e n t , then i t i s g e n e r a l l y advantageous t o use a path c a l l t o r e t r i e v e them both i n i t i a l l y . The f i r s t dependent segment ( i n t h i s case) i s r e t r i e v e d at almost no a d d i t i o n a l c o s t . " 1 * Main S t o r a g e Requirements When a system as l a r g e as IMS i s i n s t a l l e d t h e r e i s bound t o be an i n c r e a s e i n t h e amount o f main and secondary s t o r a g e r e g u i r e d . The secondary s t o r a g e r e g u i r e m e n t s f o r the d a t a bases t h e m s e l v e s was d i s c u s s e d i n Chapter 4.. I n a d d i t i o n t o t h i s t h e amount of main s t o r a g e r e g u i r e d i s determined by t h e user s * a p p l i c a t i o n and environment. For example; the number of d a t a b a s e s , t h e number of u s e r s of each d a t a base and t h e number of remote t e r m i n a l s w i l l a l l have an e f f e c t on t h e 82 t o t a l main storage reguirements. In some r e s p e c t s , the amount of main storage reguired i s determined by what i s considered by the user to be "acceptable" performance l e v e l s and which t r a d e - o f f s are made to i n s u r e t h a t these performance l e v e l s are met.. For example, d e c i s i o n s t o use secondary indexes, l o g i c a l r e l a t i o n s h i p s and f a s t path processing w i l l each a f f e c t the main storage reguirements. In other r e s p e c t s , a c e r t a i n amount of main storage i s reguired t o support the basic IMS/VS system - independent of the a p p l i c a t i o n , environment or s e l e c t e d o p t i o n a l f e a t u r e s . The developers of a new IMS i n s t a l l a t i o n should be aware of the demands that the adoption of the system w i l l have on main storage. S i m i l a r i l y , when an e x i s t i n g IMS system i s being tuned the e f f e c t of proposed improvements on the main storage reguirements should be known before a f i n a l d e c i s i o n i s made. F o r t u n a t e l y , these storage reguirements can be e a s i l y and a c c u r a t e l y estimated.. Chapter 5 of the Systems Programming Reference Manual/ 211 provides a d e t a i l e d d e s c r i p t i o n of these c a l c u l a t i o n s i n c l u d i n g worksheets and examples; f o r t h i s reason they w i l l not be d u p l i c a t e d here. I t i s s u f f i c i e n t f o r our purposes to note that such a procedure f o r making accurate estimates e x i s t s as these estimates w i l l be u s e f u l i n a thorough performance study. 83 Chapter 6 z A p p l i c a t i o n s I n t r o d u c t i o n The r o l e of performance e v a l u a t i o n a t a p a r t i c u l a r i n s t a l l a t i o n may be v a s t l y d i f f e r e n t from t h a t a t a n o t h e r i n s t a l l a t i o n . The needs of the u s e r community, the d a t a p r o c e s s i n g h i s t o r y o f t h e e n t e r p r i s e , t h e type of a p p l i c a t i o n and t h e a c t u a l system c o n f i g u r a t i o n a l l combine t o d e t e r m i n e t h e number and k i n d of performance s t u d i e s t o be c a r r i e d out i n the o r g a n i z a t i o n . These s t u d i e s may range from ad hoc measurements f o r l o c a t i n g b o t t l e n e c k s when t h e system i s r e s p o n d i n g p o o r l y t o s o p h i s t i c a t e d m o n i t o r s which p r o v i d e feedback f o r o p t i m i z i n g f i l e o r g a n i z a t i o n s and r e s t r u c t u r i n g data b a s e s . I n t h i s paper we have c o n s i d e r e d ways i n which the performance of an IMS i n s t a l l a t i o n may be improved.. The g u e s t i o n of the p r a c t i c a l i t y o f such methods remains unanswered. There may be a l a r g e gap between what i n t h e o r y seems t o be j u s t i f i e d and what i n r e a l i t y i s a c t u a l l y done.. T h i s i s not t o say t h a t t h e t h e o r y i s wrong nor t h a t t h e method i s c o r r e c t . . What i s i m p o r t a n t , i n t h i s c a s e , i s t h a t s o l u t i o n s t o performance problems be e f f e c t i v e and i m p l e m e n t a b l e . I n o r d e r t o o b t a i n a ' r e a l w o r l d ' p e r s p e c t i v e , systems p e r s o n n e l from t h r e e l a r g e IMS i n s t a l l a t i o n s were i n t e r v i e w e d . The r e m a i n d e r of t h i s c h a p t e r i s based upon t h o s e i n t e r v i e w s . T h i s i s not meant t o be taken as a s t a t i s t i c a l sample nor 84 would i t be a p p r o p r i a t e t o draw f i r m c o n c l u s i o n s a t t h i s p o i n t , however, they do serve t o p o i n t out the k i n d s of t h i n g s which a r e b e i n g done wit h r e g a r d t o performance and may i n d i c a t e t h e a p p r o p r i a t e n e s s of the performance i s s u e s p r e s e n t e d i n t h i s paper. Case _1: B. C. Hydro The IMS a p p l i c a t i o n a t B. C. Hydro c o n s i s t s of one l a r g e d a t a base w i t h over 60 segments. T h i s i s i n c o n t r a s t t o t h e arguments p r e s e n t e d i n Chapter 4 which suggest t h a t data bases a r e more e f f i c i e n t i f t h e y a r e s m a l l e r . I n a d d i t i o n . Chapter 3 recommends t h a t d a t a bases be de s i g n e d w i t h a s p e c i f i c r e l a t i o n s h i p among the segments, which, i n t h i s c a s e , would i m p l y s e v e r a l s m a l l e r d a t a bases. . IMS was f i r s t adopted t h e r e i n 1971 and a t t h a t time l i t t l e was known about IMS and l e s s about t h e e f f e c t s o f d e s i g n on performance. . The f i r s t i m p l e m e n t a t i o n used HISAM as the a c c e s s method p r i m a r i l y because i t was w e l l known and had been i n use f o r s e v e r a l y e a r s at many o t h e r i n s t a l l a t i o n s , l i t t l e was known about t h e o t h e r 'new' a c c e s s methods. However, because t h e d a t a base was v e r y v o l a t i l e and a l a r g e number of segments ended up i n t h e secondary data s e t , HIDAM was adopted t o reduce t h e s w i t c h i n g from p r i m a r y t o secondary d a t a s e t s when s e q u e n t i a l l y p r o c e s s i n g t h e d a t a base.. I t was l a t e r r e a l i z e d t h a t i t was never r e a l l y n e c e s s a r y t o p r o c e s s the data base i n 85 r o o t key seguen.ce and hence t h e i n d e x was b e i n g m a i n t a i n e d u s e l e s s l y . Because o f t h a t HDAM i s now bei n g used. As can be seen h e r e , t h e importance of d o i n g a thorough a n a l y s i s of t h e e n t e r p r i s e ' s d a t a p r o c e s s i n g needs i s an i n t e g r a l p a r t o f t h e data base d e s i g n . . T h i s p o i n t was made i n Chap t e r 3 and t h i s example i l l u s t r a t e s some of the p o s s i b l e r e p e r c u s s i o n s . There i s an u n o f f i c i a l p o l i c y a t B.C. Hydro t o keep the d a t a base s i m p l e . L o g i c a l r e l a t i o n s h i p s and secondary i n d e x e s a r e not b e i n g used because i t i s tho u g h t t h a t t h i n g s such as t h e s e w i l l o v e r t a x IMS and l e a d t o unnecessary d e l a y s due t o i n c r e a s e d p r o c e s s i n g demands. I n f a c t , much of what c o u l d be done by IMS i s done by s p e c i a l macros or w i t h i n the a p p l i c a t i o n programs. The r e a s o n i n g behind t h i s i s t h a t IMS i s a v e r y g e n e r a l i z e d system, developed t o handle as many cas e s as p o s s i b l e . . T h e r e f o r e , i f you w r i t e t h e code y o u r s e l f , w i t h o n l y one purpose i n mind, you e l i m i n a t e the overhead n e c e s s a r y t o lo o k a f t e r a v a r i e t y of c a s e s . A l t h o u g h t h i s i d e a of r e p l a c i n g o r supp l e m e n t i n g some IMS t a s k s has not been d i s c u s s e d p r e v i o u s l y , i t seems t o be a v i a b l e s o l u t i o n t o some s p e c i a l i z e d problems. D i f f i c u l i t i e s may a r i s e , though, i f the macros make use o f IMS i n t e r n a l s -e s p e c i a l l y when a new r e l e a s e o f IMS i s i s s u e d . Performance s t u d i e s at B. C. Hydro t a k e the form o f ongoing e x c e p t i o n r e p o r t i n g . S t a t i s t i c s a r e r o u t i n e l y c o l l e c t e d but a performance s t u d y i s r e a l l y o n l y c a r r i e d out when r e s p o n s e . t i m e i s degraded or d i s k space i s a t a premium. 86 A l t h o u g h t h e d a t a base i s very v o l a t i l e , the t o t a l number of segments does n ot va r y by much. The d a t a p r o c e s s i n g r e g u i r e m e n t s a r e r e l a t i v e l y the same from year t o y e a r . For t h e s e r e a s o n s , and because HDAM i s now be i n g used, r e o r g a n i z a t i o n o f t h e d a t a base i s i n f r e g u e n t and m o d i f i c a t i o n s t o t h e da t a base s t r u c t u r e amount t o changes t o o n l y a few segments per y e a r . T h i s seems t o be i n agreement w i t h what would be recommended by u s i n g T a b l e 4.2. Case 2: I . C. B. C. The I n s u r a n c e C o r p o r a t i o n of B r i t i s h Columbia has been u s i n g IMS t o l o o k a f t e r i t s d a t a p r o c e s s i n g needs s i n c e 1974. There a r e over 40 s e p a r a t e data bases i n a l l , d e a l i n g w i t h v a r i o u s f a c e t s o f employee and customer r e l a t i o n s . Each d a t a base has r e l a t i v e l y few segment t y p e s and r e f l e c t s a s p e c i f i c r e l a t i o n s h i p among e n t i t i e s as was recommended i n Chapter 3. Most d a t a bases a r e implemented under HDAM but HIDAM, HSAM and SHISAM are a l s o used. When an in d e x i s r e g u i r e d f o r a data base, VSAM i s always used. When HDAM i s used, a l l d a t a base r e c o r d s a r e r o o t a d d r e s s a b l e so t h a t i t i s never n e c e s s a r y t o use o v e r f l o w c h a i n s . T h i s i s p o s s i b l e because the r o o t keys a r e e v e n l y d i s t r i b u t e d . T h i s d i s t r i b u t i o n i s monitored and the r a n d o m i z i n g r o u t i n e changed i f n e c e s s a r y . The i m p o r t a n c e o f u s i n g an a p p r o p r i a t e r a n d o m i z i n g r o u t i n e and of r e d u c i n g t h e useage o f o v e r f l o w c h a i n s was o u t l i n e d i n 87 C h a p t e r 4 and seems t o be s u p p o r t e d here. I . C. B. C. h a n d l e s i n s u r a n c e p o l i c i e s f o r the whole p r o v i n c e of B r i t i s h Columbia.. T h i s makes i t n e c e s s a r y t o s u p p o r t over 200 user t e r m i n a l s and s u p p l y them w i t h good response t i m e s . Over t h e past t h r e e y e a r s t h e y have been a b l e t o d e c r e a s e the average r e s p o n s e t i m e from 12 t o 2 seconds, d e s p i t e t h e f a c t t h a t t h e l o a d has i n c r e a s e d 10 ti m e s t o an average o f 60,000 on l i n e t r a n s a c t i o n s per day a t p r e s e n t . Both l o g i c a l r e l a t i o n s h i p s and secondary i n d e x e s a r e used and s i g n i f i c a n t performance improvements have been g a i n e d by t h e i r i m p l e m e n t a t i o n . . The use of p r e s o r t s t o arrange t h e t r a n s a c t i o n s i n t o the same o r d e r as t h e s t o r e d r e c o r d s was a l s o f o u n d t o be b e n e f i c i a l i n many c i r c u m s t a n c e s . Macros are u t i l i z e d t o p r o v i d e s e r v i c e s not a v a i l a b l e t h r o u g h IMS and i n some c a s e s t o r e p l a c e i n e f f i c i e n t IMS r o u t i n e s . A t I . C. B..C., c o n s i d e r a b l e a t t e n t i o n i s p a i d t o performance m o n i t o r i n g and improvement. I n p a r t i c u l a r , two packages - Data Base M o n i t o r and Data Communications M o n i t o r -ar e r u n e v e r y day t o p r o v i d e a snapshot r e p o r t of the usage o f t h e d a t a bases and communications network. Another monitor -C o n t r o l IMS - i s c o n t i n u a l l y r e c o r d i n g b u f f e r p o o l usage, queue s i z e s and t e r m i n a l a c t i v i t y . The advantages o f u s i n g such m o n i t o r s was d i s c u s s e d i n Chapter 2. To improve performance, c o n s i d e r a t i o n i s a l s o g i v e n t o such hardware f e a t u r e s as d i s k and c h a n n e l speeds and t h e s i z e of main memory. Because on l i n e s e r v i c e i s p r o v i d e d t o remote s t a t i o n s i n a l l of B r i t i s h C o lumbia, the way i n which t h e s e 88 t e r m i n a l s a r e connected t o t h e c e n t r a l computer has a s i g n i f i c a n t e f f e c t on performance and t h e r e f o r e must a l s o be t a k e n i n t o c o n s i d e r a t i o n . These t o p i c s a r e beyond t h e scope of t h i s paper but i n many ca s e s prove t o be t h e b o t t l e n e c k s t o improved performance. Case 3: B. C. T e l IMS has been i n use a t B. C. T e l s i n c e 1976. There a re a c t u a l l y t h r e e d i f f e r e n t IMS s y s t e m s . i n o p e r a t i o n : one f o r p r o d u c t i o n , one f o r development and one f o r t e s t i n g . . The p r o d u c t i o n and t e s t i n g systems run on the same machine w i t h o t h e r (non-IMS) a p p l i c a t i o n s . . A t o t a l of 25 d i f f e r e n t d a t a bases have been developed and a p p r o x i m a t e l y 700 t e r m i n a l s a l l over B r i t i s h Columbia a r e i n use f o r on l i n e p r o c e s s i n g . HISAM, HIDAM, and HDAM are a l l b e i n g used w i t h VSAM as th e p r o c e s s i n g r o u t i n e . The s i g n i f i c a n t performance advantage of u s i n g VSAM over ISAM/OSAM has not been a r t i c u l a t e d i n the p r e v i o u s c h a p t e r s but seems t o be e v i d e n t from a l l t h r e e o f t h e s e o r g a n i z a t i o n s . Both l o g i c a l r e l a t i o n s and secondary i n d e x e s have been u t i l i z e d t o c r e a t e i n c r e a s e d f l e x i b i l i t y and ease o f a c c e s s d e s p i t e t h e f a c t t h a t t h e y degrade performance. Such t r a d e o f f s , as d i s c u s s e d i n Chapter 3, were expected. The B. C. T e l Customer d a t a base o c c u p i e s f o u r 3350 d i s k s and absorbs hundreds o f changes a day. I t e x p e r i e n c e s a 10 t o 15% growth r a t e each y e a r , but because VSAM i s b e i n g used t h i s 89 does not c r e a t e problems and a d d i t i o n a l space i s a c q u i r e d as n e c e s s a r y . The T o l l d ata base which r e c o r d s customer c h a r g e s , must be r e o r g a n i z e d e v e r y two weeks r e g u i r i n g about 6 hours o f e l a p s e d t i m e . However, t h i s d a t a base i s kept i n m u l t i p l e data s e t s which a r e r e o r g a n i z e d i n d i v i d u a l l y , c u t t i n g down on the i n c o n v i e n c e and time r e g u i r e d t o r e o r g a n i z e . The advantages of u s i n g m u l t i p l e data s e t groups i n c a s e s such as t h i s were p r e s e n t e d i n Chapter 4.. Performance i s monitored on a d a i l y b a s i s w i t h t h e Data Communications M o n i t o r and w i t h t h e System Log. . These p r o v i d e i n f o r m a t i o n on b u f f e r usage, I/C w a i t s , page f a u l t s , t r a n s a c t i o n r a t e s , d a t a base c a l l s , e t c . As was d i s c u s s e d i n Chap t e r 5, t h e s e l e c t i o n o f c o r r e c t b u f f e r s i z e s can have a s i g n i f i c a n t e f f e c t on performance. Although t h e s e do not u s u a l l y p r e c i p i t a t e data base or system changes t h e y a r e u s e f u l when a new a p p l i c a t i o n i s bei n g developed. When problems do a r i s e , a t r i a l and e r r o r approach i s used t o r e c o n c i l e the s i t u a t i o n a l t h o u g h w i t h some problems the cau s e s (and t h u s t h e s o l u t i o n s ) a r e more e a s i l y p e r c e i v e d . At B. C. T e l , a s t r o n g emphasis i s p l a c e d on a th o r o u g h a n a l y s i s of such t h i n g s as t r a n s a c t i o n t y p e s and volumes, e x p e c t e d r e s p o n s e t i m e s , c a l l seguences, e t c . , b e f o r e a d a t a base i s d e s i g n e d f o r a new a p p l i c a t i o n . Because of t h i s , new a p p l i c a t i o n s a r e brought on l i n e w i t h few problems. Emphasis i s a l s o p l a c e d on i n c o r p o r a t i n g p l a n s f o r f u t u r e a p p l i c a t i o n s i n t o d e s i g n s whenever p o s s i b l e . 9 0 C o n c l u s i o n s I n t h i s paper an e f f o r t was made t o p i n p o i n t t h o s e a s p e c t s of IMS which a f f e c t system performance.. In a d d i t i o n t o t h i s , t h r e e IMS i n s t a l l a t i o n s were examined t o t e s t t h e a b i l i t y o f such a s p e c t s t o r e g u l a t e performance. I t was found t h a t t h e t o p i c s c o v e r e d here a r e t h o s e which a r e i m p o r t a n t from a performance s t a n d p o i n t . Of t h e s e , t h e c h o i c e o f a c c e s s method w i l l p r o b a b l y have th e g r e a t e s t e f f e c t . Where p o s s i b l e , HDAM s h o u l d be used. HIDAM s h o u l d be adopted i f an i n d e x i s n e c e s s a r y . VSAM i s the most e f f i c i e n t p h y s i c a l r e c o r d i n t e r f a c e and i t s a d d i t i o n a l s t o r a g e r e g u i r e m e n t s a r e e a s i l y j u s t i f i e d by i t s a b i l i t y t o r e u s e space. . I t i s i m p o r t a n t t o d i s t r i b u t e f r e e space t h r o u g h o u t t h e d a t a s e t s , but d e t e r m i n i n g the c o r r e c t amount i s dependent upon th e a p p l i c a t i o n and i n p a r t i c u l a r , the f r e g u e n c y o f update. M u l t i p l e data s e t groups a r e u s e f u l when the s i z e o f the segments w i t h i n a d a t a base v a r y c o n s i d e r a b l y o r when the d a t a base has v e r y few r o o t s , each w i t h a l a r g e g u a n t i t y o f c h i l d r e n . . O t h e r w i s e , they w i l l i n c r e a s e t h e amount of s t o r a g e r e g u i r e d and a c t u a l l y degrade t h e response t i m e . . L o g i c a l r e l a t i o n s h i p s and secondary i n d e x e s may be regarded as a r e t r o g r e s s i o n . They do, however, s i m p l i f y a p p l i c a t i o n programming and may be c o n s i d e r e d a performance improvement i n the l o n g r u n . I n c o r r e c t or i n a p p r o p r i a t e usage of t h e s e can have s e v e r e n e g a t i v e e f f e c t s . . While the d e s i g n of an IMS data base can a f f e c t performance, i t i s more l i k e l y t o a f f e c t the f a c i l i t y o f d e v e l o p i n g a p p l i c a t i o n programs th a n i t i s t o a f f e c t r e s p o n s e t i m e s . . The p r o c e s s i n g o r d e r s h o u l d be k e p t i n mind and segments s h o u l d be a s c l o s e t o the same l e n g t h as p o s s i b l e . . Changes t o such t h i n g s as the number and s i z e of b u f f e r p o o l s , c o n t r o l i n t e r v a l l e n g t h s and b l o c k i n g f a c t o r s can produce n o t i c i b l e improvements. The need f o r a change i n these a r e a s i s u s u a l l y d e t e c t e d by examining the system l o g o r u s i n g some o t h e r m o n i t o r i n g t o o l . The degree o f change i s u s u a l l y determined by e x p e r i m e n t a t i o n . . IMS i s a very l a r g e and g e n e r a l i z e d data base management system. Because r e g u i r e m e n t s and a p p l i c a t i o n s change from i n s t a l l a t i o n t o i n s t a l l a t i o n t h e r e w i l l o f t e n be more e f f i c i e n t ways of d o i n g t h i n g s than would n o r m a l l y be done by IMS. These may be used t o augment IMS but s h o u l d never d u p l i c a t e s e r v i c e s t h a t can be done b e t t e r by IMS nor s h o u l d they a t t e m p t t o manage the d a t a t h a t IMS has c o n t r o l o v e r . , I n many i n s t a l l a t i o n s t h e r e may be o t h e r f a c t o r s which have an o v e r r i d i n g e f f e c t on performance. For example, i n a system w i t h remote t e r m i n a l s , where much of the response t i m e i s t a k e n up w i t h d a t a t r a n s f e r , i t w i l l be more b e n e f i c i a l t o l o o k at ways of i m p r o v i n g t h e l i n e speed than a t t e m p t i n g t o reduce t h e p r o c e s s i n g t i m e . . T h i n g s such as t h e i n t e r f a c e between IMS and t h e o p e r a t i n g system, network c h a r a c t e r i s t i c s , t h e use o f r e e n t e r a n t and r e u s a b l e code and hardware c h a r a c t e r i s t i c s have not been t r e a t e d h e r e . . T h i s i s not t o say t h a t t h e y a r e not 92 important, on the contrary, these are often more important, but f a l l i nto a d i f f e r e n t class of performance study. In conclusion, i t i s my opinion that a more rigorous approach to performance evaluation at the organization l e v e l i s needed.. Performance improvements seem to be done haphazardly and more by i n t u i t i o n than by reasoning. Tools such as gueing theory and simulation have applications here and could be used at both the design and tuning stages of system development. Technigues of system analysis are necessary to insure that the users needs are being s a t i s f i e d and that the system meets these needs i n an e f f i c i e n t manner.. 9 3 F o o t n o t e s I. . CODASYL Systems Committee, " S e l e c t i o n and A c q u i s i t i o n of Data Base Management Systems," (March 1976) , p. 4. . 2. Datapro 70 The EDP Buyers B i b l e , V o l , 3 (Deban, N.J. : M c G r a w - H i l l , A p r i l 1979), p. 70E-010-61A. 3.. I b i d . p. 70E-010-61K. 4.. Domenico F e r r a r i , Computer Systems Performance E v a l u a t i o n (Englewood C l i f f s , N. J . : P r e n t i c e - H a l l I n c . , 1978), p. 2. 5. IMS/VS V e r s i o n _1 G e n e r a l I n f o r m a t i o n Manual, R e l e a s e 1.5, 9 t h . . ed. (San J o s e : IBM Corp., A p r i l 1979) p.. 2.37.. 6. . D.C. T s i c h r i t z i s and F.H. Lo c h o v s k y , " D e s i g n i n g t h e Data Base," Datamation V o l . , 24, No. 8 (Aug. 1978) p.. 147. 7. E.M. G e a r h a r t , "IMS Data Ease D e s i g n , " P r o c e e d i n g s of SHARE 52 (March 1979) p. 365. 8. D.C. T s i c h r i t z i s and F.H. Lochovs k y , " D e s i g n i n g t h e Data Base," Datamation V o l . . 24, No. 8 (Aug. . 1 9 7 8 ) p. 147. 9.. John K.. Lyon, The Data Base A d m i n i s t r a t o r (New York: John W i l e y and Sons, 1970) p. . 21. . 10.. IMS/VS V e r s i o n _1 P r i m e r . Release 1.5, 1 s t . ed. (San J o s e : IBM Corp., Sept. 1978) p. 2.78. I I . . S.B. Yao and A.G. Merten, " S e l e c t i o n of F i l e O r g a n i z a t i o n Osing an A n a l y t i c Model," ACM T r a n s a c t i o n s on Database Systems V o l . 1, No. 2 (June 1976) p. 256. 12. A l f o n s o F. Cardenas, " E v a l u a t i o n and S e l e c t i o n o f F i l e O r g a n i z a t i o n - A Model and System," Communications o f the ACM V o l . . 16, No.. 9 (Sept.. 1973) p.. 547.. 13. IMS/VS V e r s i o n J_ S y s t e m s / A p p l i c a t i o n Design G u i d e , R e l e a s e 1.5, 7 t h . . ed. (San J o s e : IBM Corp . 7 S e p t . . 1978f p. 4. 25. 14.. IMS/VS V e r s i o n J_ P r i m e r , R e l e a s e 1.5, 1 s t . . ed. (San J o s e : IBM Cor p . , S e p t . . 1978) p.. 4.22.. 94 B i b l i o g r a p h y I. "A Buyers Guide t o Data Base Management Systems." Datapro 70 The EDP Buyers B i b l e , V o l . 3. Deban, N. J . : M c G r a w - H i l l . A p r i l 1979. 2... Aho, A l f r e d L., John E. _ H o p c r o f t and J e f f r e y D. . Ullman. The D e s i g n and A n a l y s i s of Computer A l g o r i t h m s . R e a d i n g , Mass.: Addison-Wesley P u b l i s h i n g Co., 1974.. 3. Ben w e l l , N i c h o l a s . Benchmarking: Computer E v a l u a t i o n and Measurement. Washington, D.C: Hemisphere P u b l i s h i n g C o r p . , 1974. 4.. Cardenas, A.F. " E v a l u a t i o n and S e l e c t i o n o f F i l e O r g a n i z a t i o n - A Model and System." Communications of t h e ACM, V o l . . 16, No. 9. (Sept. . 1973) pp. 540-548. 5. "Data Base D e s i g n Methodology - P a r t I . " Data Base Management. P h i l a d e l p h i a : Auerbach P u b l i s h e r s , I n c . , 1976. 6. Date, C.J. An I n t r o d u c t i o n t o Database Systems, 2nd., ed. Reading, Mass.: Addison-Wesley P u b l i s h i n g Co., 1977.. 7. DB/DC Data D i c t i o n a r y G e n e r a l I n f o r m a t i o n Manual, R e l e a s e 3.0, 3 r d . , ed. GH20-9104-2." San JoseT IBM~Corp., Oct.. 1978. 8. D e a r n l e y , P. " M o n i t o r i n g Database System Performance." The Computer J o u r n a l , V o l . . 21, No. 1 (Feb. 1978) pp. 15-19. 9.. Drummond, M.E.. J r . . "A P e r s p e c t i v e on System Performance E v a l u a t i o n . " IBM Systems J o u r n a l . V o l . ; 8, No.. 4 (1969) pp. 252-263. 10. " E s t a b l i s h i n g a Framework f o r Data Base P l a n n i n g . " Data Base Management. P h i l a d e l p h i a : Auerbach P u b l i s h e r s I n c . , 1976. I I . F e r r a r i , Domenico. Computer Systems Performance E v a l u a t i o n . . Englewood C l i f f s , N.J.: P r e n t i c e - H a l l I n c . , 1978. 12. G e a r h a r t , E.M.. "IMS Data Base D e s i g n . " P r o c e e d i n g s o f SHARE 52. SHARE I n c . (1979) pp. 350-380. 13. IMS A p p l i c a t i o n Development F a c i l i t y Program D e s c r i p t i c n / O p e r a t o r s Manual, V e r s i o n 1, Release 2, 4 t h . ed. SG20-1931-3. San Jose : IBM Corp., Nov. 1978. 14.. IMS F a s t P a t h F e a t u r e G e n e r a l I n f o r m a t i o n Manual. 3 r d . ed. GH20-9069-2. San Jose:~IBM C o r p . , A p r i l 1978. 95 15. IMS/VS V e r s i o n _1 A p p l i c a t i o n Programming R e f e r e n c e I§£iistir R e l e a s e 1.5, 7th7. ed. . SH20-9026-6... San J o s e : IBM Corp., S e p t . . 0. m,. ; 16. IMS/VS V e r s i o n J. G e n e r a l I n f o r m a t i o n Manual, R e l e a s e 1.5, 9 t h . . i d . . GH20-1260-8. San~Jose: IBM Corp., A p r i l 1979.. 17. IMS/VS V e r s i o n J, Master Index and G l o s s a r y , Release 1.5, 4 t h . ed. SH20-9085-3.. San J o s e : IBM Corp., Dec. 1978. 18.. IMS/VS V e r s i o n _1 O p e r a t o r s R e f e r e n c e Manual, R e l e a s e 1.5, 7 t h . ed. SH20-9028-6. San J o s e : IBM Corp., Sept. 1978.. 19.. IMS/VS V e r s i o n _1 P r i m e r , R e l e a s e 1.5, 1 s t . , ed. SH20-9145-0. . San J o s e : IBM Corp., Sept.. 1978. 20. IMS/VS Vers i o n _1 S y s t e m s / A p p l i c a t i o n Design G u i d e , R e l e a s e ~ 1 . 5 , 7 t h . ed. SH20-9035-6. ~San J o s e : IBM Corp., Sept.. 1978. 21 IMS/VS V e r s i o n 1_ Systems Programming Ref e r e n c e Manual, R e l e a s e 1.5, 8 t h . . ed.. SH20-9027-7.. San J o s e : IBM Corp., Oct. 1978. 22. . IMS/VS V e r s i o n J. U t i l i t i e s R e f e r e n c e Manual, R e l e a s e 1.5, 7 t h . ed. SH20-9029-6. San J o s e : IBM Corp., Sept. 1978. 23. . K i n g , John L e s l i e and Edward L. . Schrems. . " C o s t - r B e n e f i t A n a l y s i s i n I n f o r m a t i o n System Development and O p e r a t i o n . " Computing S u r v e y s , V o l . 10, No. 1 (March 197 8) pp. 19-34. . 24.. Lochovsky, F.H. and D.C. T s i c h r i t z i s , Data Base Manage ment Systems. New York: Academic P r e s s , 1977. 25. . Lyon, John K. The Database A d m i n i s t r a t o r . New York: John W i l e y and Sons, 1970. 26.. McGee, W.C.. "On User C r i t e r i a f o r Data Model E v a l u a t i o n . " ACM T r a n s a c t i o n s on Database Systems, V o l . . 1, No.. 4 (Dec. 1976) pp.. 370-387.. 27.. McGee, W.C. , "The IMS/VS System." IBM Systems J o u r n a l , V o l . 16, No. 2 (1977) 28.. Navathe, S.B.. and J.P. F r y . " R e s t r u c t u r i n g f o r Large Data Bases: Three L e v e l s o f A b s t r a c t i o n . " ACM T r a n s a c t i o n s on Database Systems, V o l . . 1, No. 2 (June 1976) pp.. 138-158. 29.. Nunamaker, J.E. and Benn R. K o n s y n s k i , J r . . "Computer Aided A n a l y s i s and Design of I n f o r m a t i o n Systems." Communications of t h e ACM, V o l . 19, No. 12 (Dec. 1976) pp. 674-6877 30.. R a v e r , N.. and G.O.. Hubbard.. "Automated L o g i c a l Data 96 Base D e s i g n : Concepts and A p p l i c a t i o n s . " IBM Systems J o u r n a l , V o l . 16, No. 3 (1977) pp. 287-312. 31.. Ross, Ronald G. " E v a l u a t i n g Data Base Management Systems." J o u r n a l of Systems Management. V o l . . 27, No.. 1 ( J a n . . 1 976) pp. ~30-35. 32. " S e l e c t i o n and A c g u i s i t i o n of Data Base Management Systems." CODASYL Systems Committee.. March 1976.. 33. Senko, M.E., V. Y. Lum and P.J. Owens. "A F i l e O r g a n i z a t i o n E v a l u a t i o n Model (FOREM)." I F I P Congress (1968) pp. 514r519. 34.. S i c h e r m a n , Bruce.. "Dramatic Performance Improvement With a S i m p l e Technigue." IMS N e w s l e t t e r , V o l . 3, No.. 3 (Nov. 1979).. 35. S o c k r e t , G.H. and R.P. G o l d b e r g , "Database R e o r g a n i z a t i o n - P r i n c i p l e s and P r a c t i c e . ' ! Computing S u r v e y s , V o l . . 11, No. 4 ( D e c . 1979) pp. 371-395. 36. Thompson, S t e v e . . "An E x p e r i e n c e i n IMS/VS Tuning." IMS N e w s l e t t e r , V o l . . 3, No.. 3 (Nov.. 1979). 37. Tod, Mary K a t h l e e n . "Performance C o n s i d e r a t i o n s i n R e l a t i o n a l and H i e r a r c h i c a l Data Base Management Systems." M.Sc. T h e s i s . . 0. B. C. , Feb.. 29, 1980. 38;: T s i c h r i t z i s , D.C. and F.H.. Lochovsky. " D e s i g n i n g t h e Data Base." Datamation, V o l . 24, No. 8 (Aug.. 1978) pp. 147-151. 39.. Welsh, Myles E.. " G e t t i n g Ready f o r IMS/VS." Datamation, V o l . . 24, No.. 13 ( D e c . 1978) pp.. 109-118.. 40. W i e d e r h o l d , G i o . Database D e s i g n . New York: M c G r a w - H i l l Book Co., 1977. 41.. Yao, S.B., K.S. Das and T.J. Teorey.. "A Dynamic Database - R e o r g a n i z a t i o n A l g o r i t h m . " ACM T r a n s a c t i o n s on Database Systems, V o l . 1, No. 2 (June 1976) pp. 159-174. 42.. Yao, S.B. and A.G. Merten. " S e l e c t i o n of F i l e O r g a n i z a t i o n Using an A n a l y t i c Model." P r o c e e d i n g s of t h e I n t e r n a t i o n a l C o n f e r e n c e ! o n Very Large Data Bases (Sept. 1975) pp. . 255-267. . 

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            data-media="{[{embed.selectedMedia}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
https://iiif.library.ubc.ca/presentation/dsp.831.1-0051827/manifest

Comment

Related Items