bdoo

21
Sistemas de Información (Tercer Curso) Enxeñeria Técnica en Informática de Sistemas Escola Técnica Superior de Enxeñería Universidade de Santiago de Compostela SISTEMAS DE BASES DE DATOS BASADOS EN OBJETOS José Ramón Ríos Viqueira 2 J.R.R.V. – SI – Sistemas de bases de datos orientados a objetos SISTEMAS DE BASES DE DATOS BASADOS EN OBJETOS BASES DE DATOS ORIENTADAS A OBJETOS BASES DE DATOS OBJETO-RELACIONALES LENGUAJE DE PROGRAMACIÓN ORIENTADOS A OBJETOS Persistencia BASES DE DATOS RELACIONALES Orientación a Objetos

Upload: jose-carlos-juanos-maculet

Post on 08-Nov-2015

217 views

Category:

Documents


2 download

DESCRIPTION

bases de datos

TRANSCRIPT

  • S i s t e m a s d e I n f o r m a c i n ( T e r c e r C u r s o )

    E n x e e r i a T c n i c a e n I n f o r m t i c a d e S i s t e m a s

    E s c o l a T c n i c a S u p e r i o r d e E n x e e r a

    U n i v e r s i d a d e d e S a n t i a g o d e C o m p o s t e l a

    S I S T E M A S D E B A S E S D E D A T O S

    B A S A D O S E N O B J E T O S

    J o s R a m n R o s V i q u e i r a

    2J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    S I S T E M A S D E B A S E S D E D A T O S

    B A S A D O S E N O B J E T O S

    B A S E S D E D A T O S

    O R I E N T A D A S A O B J E T O S

    B A S E S D E D A T O S

    O B J E T O - R E L A C I O N A L E S

    L E N G U A J E D E

    P R O G R A M A C I N

    O R I E N T A D O S A O B J E T O S

    P e r s i s t e n c i a

    B A S E S D E D A T O S

    R E L A C I O N A L E S

    O r i e n t a c i n a

    O b j e t o s

  • S i s t e m a s d e I n f o r m a c i n ( T e r c e r C u r s o )

    E n x e e r i a T c n i c a e n I n f o r m t i c a d e S i s t e m a s

    E s c o l a T c n i c a S u p e r i o r d e E n x e e r a

    U n i v e r s i d a d e d e S a n t i a g o d e C o m p o s t e l a

    S I S T E M A S D E B A S E S D E D A T O S

    O R I E N T A D O S A O B J E T O S

    J o s R a m n R o s V i q u e i r a

    4J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    n d i c e

    M O T I V A C I N

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    P E R S I S T E N C I A D E O B J E T O S

    D I S C U S I N

  • 5J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    M O T I V A C I N

    A p l i c a c i o n e s t r a d i c i o n a l e s d e l a s B D

    A p l i c a c i o n e s d e g e s t i n c o n v e n c i o n a l e s

    N o m i n a s , c o n t a b i l i d a d , e t c .

    U s o d e r e g i s t r o s d e l o n g i t u d f i j a y r e d u c i d a

    C a m p o s d e c a d a r e g i s t r o c o r t o s , d e l o n g i t u d f i j a y t i p o a l f a n u m r i c o

    T i p o s s i n e s t r u c t u r a

    S e c u m p l e l a p r i m e r a f o r m a n o r m a l

    N u e v a s a p l i c a c i o n e s d e l a s B D

    M e j o r a s e n e l h a r d w a r e

    I n t e g r a c i n d e n u e v o s t i p o s d e i n f o r m a c i n e n l a B D

    E j e m p l o s

    D i s e o a s i s t i d o p o r o r d e n a d o r ( C A D )

    S i s t e m a s d e I n f o r m a c i n G e o g r f i c a ( G I S )

    S i s t e m a s d e i n f o r m a c i n M u l t i m e d i a ( M M )

    I n g e n i e r a d e l s o f t w a r e a s i s t i d a p o r o r d e n a d o r ( C A S E )

    A l m a c e n a m i e n t o y r e c u p e r a c i n d e d o c u m e n t o s

    6J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    M O T I V A C I N

    E j e m p l o ( G e s t i n d e r e c t n g u l o s )

    i d

    1

    2

    x 1

    1

    3

    y 1

    1

    2

    x 2

    5

    7

    y 2

    3

    4

    r e c t a n g u l o s

    S E L E C T i d

    F R O M r e c t a n g u l o s

    W H E R E

    ( x 1 > = 0 a n d x 1 < = 2 a n d y 1 < = 0 a n d y 1 < = 2 )

    O R ( x 2 > = 0 a n d x 2 < = 2 a n d y 2 < = 0 a n d y 2 < = 2 )

    O R ( x 1 > = 0 a n d x 1 < = 2 a n d y 2 < = 0 a n d y 2 < = 2 )

    O R ( x 2 > = 0 a n d x 2 < = 2 a n d y 1 < = 0 a n d y 1 < = 2 )

    O R ( x 1 < = 0 a n d x 2 > = 2 a n d y 1 < = 0 a n d y 2 > = 2 )

    O R ( x 1 < = 0 a n d x 2 > = 2 a n d y 1 > = 0 a n d y 1 < = 2 )

    O R ( x 1 > = 0 a n d x 1 < = 2 a n d y 1 < = 0 a n d y 2 > = 2 )

    O R ( x 2 > = 0 a n d x 2 < = 2 a n d y 1 < = 0 a n d y 2 > = 2 )

    O R ( x 1 < = 0 a n d x 2 > = 2 a n d y 2 > = 0 a n d y 2 < = 2 )

    1 2 3 4 5 6 7

    1

    2

    3

    4

    S E L E C T i d

    F R O M r e c t a n g u l o s

    W H E R E

    x 1 < = 2 a n d y 1 < = 2

    a n d x 2 > = 0 a n d y 2 > = 0

    + e f i c i e n t e

  • 7J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    M O T I V A C I N

    E j e m p l o ( G e s t i n d e r e c t n g u l o s )

    P o d r e l o p t i m i z a d o r g e n e r a r l a s e g u n d a c o n s u l t a a p a r t i r d e l a

    p r i m e r a ?

    C o n l a t e c n o l o g a a c t u a l , N O !

    A d e m s , l o s r b o l e s B , n o s o n l o s m s e f i c i e n t e s p a r a e s t e t i p o d e

    p r o b l e m a

    P r o b l e m a s

    N e c e s i d a d e s d e i n f o r m a c i n s i m p l e s s e t r a d u c e n e n e x p r e s i o n e s

    S Q L d e m a s i a d o c o m p l e j a s

    L a e f i c i e n c i a e n l a e j e c u c i n d e e s a s c o n s u l t a s e s m u y b a j a

    S o l u c i n

    I n c o r p o r a r e n e l S G B D c a r a c t e r s t i c a s p r e s e n t e s e n l e n g u a j e s O . O .

    D i f e r e n c i a e n t r e l e n g u a j e s d e p r o g r a m a c i n y g e s t o r e s d e B D

    L a s a p l i c a c i o n e s s e e s c r i b e n p a r a s o l u c i o n a r u n p r o b l e m a e s p e c f i c o

    U n a b a s e d e d a t o s s e d i s e a p a r a r e s o l v e r u n c o n j u n t o d e p r o b l e m a s ,

    a l g u n o d e l o s c u a l e s n i s e c o n o c e e n e l m o m e n t o d e l d i s e o .

    8J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    n d i c e

    M O T I V A C I N

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    P E R S I S T E N C I A D E O B J E T O S

    D I S C U S I N

  • 9J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    O b j e t o

    Q u e e s u n o b j e t o ?

    U n o b j e t o e s c u a l q u i e r c o s a ! !

    E n t i d a d d e l m o d e l o E n t i d a d / R e l a c i n

    O b j e t o s m u t a b l e s e i n m u t a b l e s

    I n m u t a b l e s ( i n c o r p o r a d o s ) : r e a l e s , e n t e r o s , e t c .

    M u t a b l e s ( d e f i n i d o s p o r u s u a r i o ) : e m p l e a d o s , d e p a r t a m e n t o s , e t c .

    E s t r u c t u r a d e l o s o b j e t o s

    C o n j u n t o d e a t r i b u t o s :

    D e t i p o : I n m u t a b l e , r e f e r e n c i a a m u t a b l e ;

    l i s t a s , a r r a y s , c o l e c c i o n e s , e t c . d e c u a l q u i e r a d e e l l o s

    C o n j u n t o d e o p e r a c i o n e s y m t o d o s

    E n c a p s u l a m i e n t o

    E s t r u c t u r a i n t e r n a n o e s v i s i b l e .

    A c c e s o a a t r i b u t o s a t r a v s d e l a s o p e r a c i o n e s p b l i c a s

    I m p l i c a i n d e p e n d e n c i a f s i c a d e d a t o s

    S i s t e m a s r e a l e s : P r o p i e d a d e s p r i v a d a s , p b l i c a s y p r o t e g i d a s

    1 0J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    I d e n t i d a d

    E n e l m o d e l o r e l a c i o n a l : I d e n t i d a d d e f i n i d a p o r e l u s u a r i o ( c l a v e )

    M o d e l o O . O . : C a d a o b j e t o m u t a b l e t i e n e u n i d e n t i f i c a d o r ( O I D ) .

    E l O I D s e p u e d e u s a r c o m o u n p u n t e r o a l o b j e t o .

    E l u s u a r i o n o t i e n e q u e p r e o c u p a r s e d e g e n e r a r l o s i d s .

    C l a s e s d e o b j e t o s

    A g r u p a n o b j e t o s c o n l a m i s m a e s t r u c t u r a

    C a d a o b j e t o e s u n a i n s t a n c i a d e u n a c l a s e

    D i f e r e n c i a e n t r e c l a s e y t i p o d e d a t o s . U n a c l a s e i n c l u y e :

    V a r i a b l e d e t i p o c o n j u n t o c o n t o d a s s u s i n s t a n c i a s

    U n m t o d o c o n s t r u c t o r p a r a c r e a r i n s t a n c i a s n u e v a s .

  • 1 1J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    H e r e n c i a

    J e r a r q u a s d e e s p e c i a l i z a c i n / g e n e r a l i z a c i n

    S u p e r c l a s e s y s u b c l a s e s

    A t r i b u t o s y o p e r a c i o n e s c o m u n e s l o c a l i z a d o s e n l a s u p e r c l a s e .

    S u b c l a s e s h e r e d a n e s t a s p r o p i e d a d e s c o m u n e s

    H e r e n c i a e s t r u c t u r a l y d e c o m p o r t a m i e n t o

    S e c o n s i g u e r e u t i l i z a c i n d e c d i g o y p o l i m o r f i s m o .

    H e r e n c i a m l t i p l e

    G r a f o s A c c l i c o s D i r i g i d o s ( G A D ) e n l u g a r d e r b o l e s

    P r o b l e m a : H e r e d a r l a m i s m a p r o p i e d a d d e v a r i a s s u p e r c l a s e s .

    C o l e c c i o n e s d e o b j e t o s

    S e u t i l i z a n r e f e r e n c i a s a l o s o b j e t o s ( O I D s ) p a r a i n c l u i r l o s e n

    c o l e c c i o n e s .

    P e r m i t e n l a c r e a c i n d e J e r a r q u a s y G A D s d e a g r e g a d o s

    E s t o p e r m i t e e x a m i n a r l o s d a t o s d e s d e d i f e r e n t e s n i v e l e s d e d e t a l l e

    1 2J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    L e n g u a j e s O r i e n t a d o s a O b j e t o s

    I n c o r p o r a c i n d e c o n c e p t o s d e O . O . e n b a s e s d e d a t o s

    I n c o r p o r a c i n s l o e n l a s h e r r a m i e n t a s d e a n l i s i s y d i s e o

    U s o d e u n l e n g u a j e O . O . p a r a m o d e l a r

    E / R e x t e n d i d o

    U M L

    T r a n s f o r m a c i n d e l o s c o n c e p t o s d e O . O . a l m o d e l o r e l a c i o n a l

    I n c o r p o r a c i n e n e l l e n g u a j e d e l a b a s e d e d a t o s

    E x t e n s i n d e l l e n g u a j e d e u n S G B D

    B a s e s d e d a t o s O b j e t o - r e l a c i o n a l e s

    L e n g u a j e s d e p r o g r a m a c i n O . O . e x t e n d i d o s p a r a t r a b a j a r c o n

    b a s e s d e d a t o s

    L e n g u a j e s d e p r o g r a m a c i n O . O . p e r s i s t e n t e s

  • 1 3J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    n d i c e

    M O T I V A C I N

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    P E R S I S T E N C I A D E O B J E T O S

    L e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    S i s t e m a s C + + p e r s i s t e n t e s

    J a v a D a t a O b j e c t s ( J D O )

    D I S C U S I N

    1 4J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    L e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    I n t r o d u c c i n

    L o s o b j e t o s e n u n l e n g u a j e d e p r o g r a m a c i n n o p e r s i s t e n t r a s l a

    e j e c u c i n d e u n a a p l i c a c i n

    1 . D a t o s p e r s i s t e n t e s e n l e n g u a j e s d e p r o g r a m a c i n a l m a c e n a d o s e n

    a r c h i v o s

    2 . A l m a c e n a r d a t o s p e r s i s t e n t e s e n u n S G B D

    I n c o r p o r a r S Q L e n e l l e n g u a j e d e p r o g r a m a c i n

    S Q L e m b e b i d o y l i b r e r a s d e a c c e s o a d a t o s

    3 . L e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    I n c o r p o r a r c o n s t r u c t o r e s e n u n l e n g u a j e O . O . c o n v e n c i o n a l p a r a

    d o t a r l o d e l a p o s i b i l i d a d d e h a c e r p e r s i s t e n t e s s u s o b j e t o s

    O D M G ( O b j e c t D a t a M a n a g e m e n t G r o u p )

  • 1 5J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    L e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    D i f e r e n c i a e n t r e l e n g u a j e s c o n S Q L i n c o r p o r a d o y

    l e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    C o n S Q L : D i f e r e n t e s t i p o s d e d a t o e n t r e e l l e n g u a j e a n f i t r i n y e l

    S Q L . T r a n s f o r m a c i n e s r e s p o n s a b i l i d a d d e l p r o g r a m a d o r .

    A p a r e c e n e r r o r e s n o d e t e c t a d o s y s e n e c e s i t a m u c h o c d i g o

    P e r s i s t e n t e s : P e r s i s t e n c i a d e o b j e t o s t o t a l m e n t e i n t e g r a d a e n e l

    l e n g u a j e . L o s c a m b i o s d e f o r m a t o s o n t r a n s p a r e n t e s a l

    p r o g r a m a d o r . P r o g r a m a d o r n o n e c e s i t a c o n o c e r S Q L n i

    p r e o c u p a r s e d e l a t r a n s f o r m a c i n d e o b j e t o s a r e l a c i o n e s

    C o n S Q L : E l p r o g r a m a d o r r e c i b e l o s d a t o s d e l S G B D y e s s u

    r e s p o n s a b i l i d a d g e s t i o n a r l o s e n m e m o r i a . D e b e d e p r e o c u p a r s e d e

    m a n t e n e r l a c o h e r e n c i a e n t r e l a c o p i a e n m e m o r i a y l a c o p i a e n l a

    B D

    P e r s i s t e n t e s : E l p r o g r a m a d o r n o n e c e s i t a e s c r i b i r c d i g o p a r a

    b u s c a r d a t o s e n m e m o r i a n i p a r a g u a r d a r l o s e n d i s c o .

    1 6J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    L e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    E n f o q u e s p a r a c o n s e g u i r p e r s i s t e n c i a d e o b j e t o s

    P o r c l a s e s : N u e v a s i n t a x i s q u e p e r m i t a d e c l a r a r q u e u n a c l a s e e s

    p e r s i s t e n t e . T o d o s l o s o b j e t o s d e e s a c l a s e s e r n c r e a d o s c o m o

    p e r s i s t e n t e s .

    P o c o f l e x i b l e . A v e c e s i n t e r e s a q u e a l g u n o s o b j e t o s d e u n a c l a s e

    s e a n p e r s i s t e n t e s y o t r o s n o

    P o r c r e a c i n : S e e x t i e n d e l a s i n t a x i s d e c r e a c i n d e o b j e t o s p a r a

    p e r m i t i r l a c r e a c i n d e o b j e t o s p e r s i s t e n t e

    P o r m a r c a s : T o d o s l o s o b j e t o s s e c r e a n i g u a l . L o s o b j e t o s

    p e r s i s t e n t e s s e m a r c a n c o m o t a l e s d e s p u s d e s u c r e a c i n

    P o r r e f e r e n c i a : U n o o v a r i o s o b j e t o s s e d e c l a r a n c o m o p e r s i s t e n t e s

    d e f o r m a e x p l i c i t a ( p o r a l g u n o d e l o s p r o c e d i m i e n t o s a n t e r i o r e s ) .

    L o s o b j e t o s a l o s q u e s e h a g a r e f e r e n c i a d e s d e u n o d e l o s o b j e t o s

    a n t e r i o r e s , s e r n p e r s i s t e n t e s t a m b i n .

    V e n t a j a : F o r m a s e n c i l l a d e d e c l a r a r c o m o p e r s i s t e n t e u n a e s t r u c t u r a

    c o m p l e j a .

  • 1 7J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    L e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    N e c e s i d a d d e i d e n t i f i c a d o r e s p e r s i s t e n t e s

    P a r a c o n s e g u i r l a p e r s i s t e n c i a d e o b j e t o s , s e n e c e s i t a u n m t o d o

    d e g e n e r a c i n d e i d e n t i f i c a d o r e s ( O I D s ) p e r s i s t e n t e s

    E n m u c h o s l e n g u a j e s d e p r o g r a m a c i n , e l O I D e s u n p u n t e r o a l a

    u b i c a c i n e n m e m o r i a d e l o b j e t o ( C + + )

    E n l e n g u a j e s O . O . c o n p e r s i s t e n c i a s e n e c e s i t a n i d e n t i f i c a d o r e s

    q u e p e r s i s t a n e n t r e e j e c u c i o n e s d e p r o g r a m a s y t a m b i n a

    r e o r g a n i z a c i o n e s e s t r u c t u r a l e s d e d a t o s .

    O I D s i m p l e m e n t a d o s c o m o p u n t e r o s p e r s i s t e n t e s a l o s o b j e t o s .

    E s t o s p u n t e r o s p e r m a n e c e n i n a l t e r a d o s d e s p u s d e l a e j e c u c i n d e l o s

    p r o g r a m a s y d e s p u s d e c i e r t a s r e o r g a n i z a c i o n e s d e l o s d a t o s

    S e u t i l i z a n d e i g u a l f o r m a q u e l o s p u n t e r o s i n t e r n o s d e l a m e m o r i a

    1 8J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    L e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    A l m a c e n a m i e n t o y a c c e s o a o b j e t o s p e r s i s t e n t e s

    G u a r d a r p o r s e p a r a d o l o s v a l o r e s d e l o s a t r i b u t o s d e c a d a o b j e t o

    E l c d i g o d e c a d a m t o d o p u e d e g u a r d a r s e c o m o p a r t e d e l

    e s q u e m a d e l a c l a s e

    E n a l g u n o s s i s t e m a s e s t e c d i g o s e a l m a c e n a p o r s e p a r a d o

    E v i t a r e l t e n e r q u e i n t e g r a r u n c o m p i l a d o r

    F o r m a s d e a c c e d e r a l o s o b j e t o s

    D a r u n n o m b r e d i s t i n t o a c a d a o b j e t o ( e f i c a z s l o s i h a y p o c o s o b j e t o s )

    E x p o n e r l o s O I D s d e l o s o b j e t o s

    G u a r d a r l a s c o l e c c i o n e s d e o b j e t o s y p e r m i t i r q u e l o s p r o g r a m a s i t e r e n

    s o b r e s e l l a s p a r a b u s c a r l o s o b j e t o s d e s e a d o s

    U n a c o l e c c i n e s u n o b j e t o ( c o n j u n t o s , b o l s a s , l i s t a s , a r r a y s , e t c . )

    U n a c l a s e e u n c a s o e s p e c i a l d e c o l e c c i n

    C o m b i n a c i n d e l a s t r e s f o r m a s d e a c c e s o ( m a y o r a d e s i s t e m a s )

    D a r n o m b r e s a c l a s e s , o t r a s c o l e c c i o n e s y o b j e t o s e s p e c i a l e s

    U s a r O I D s p a r a a c c e d e r a l r e s t o d e l o s o b j e t o s

  • 1 9J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    n d i c e

    M O T I V A C I N

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    P E R S I S T E N C I A D E O B J E T O S

    L e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    S i s t e m a s C + + p e r s i s t e n t e s

    J a v a D a t a O b j e c t s ( J D O )

    D I S C U S I N

    2 0J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    S i s t e m a s C + + P e r s i s t e n t e s

    C a r a c t e r s t i c a s g e n e r a l e s

    C a m b i o s m n i m o s e n l a s i n t a x i s d e C + +

    F a c i l i t a e l u s o d e l s i s t e m a

    F a c i l i t a l a i m p l e m e n t a c i n

    E j e m p l o

    D e f i n i c i n d e u n a c l a s e " P e r s i s t e n t _ O b j e c t "

    C l a s e s p e r s i s t e n t e s h a n d e s e r s u b c l a s e s d e " P e r s i s t e n _ O b j e c t "

    S e r e d e f i n e n a l g u n o s o p e r a d o r e s p a r a a d a p t a r l o s a l a p e r s i s t e n c i a

    d e o b j e t o s ( S o b r e c a r g a )

    E j e m p l o s : " " , N e w , e t c .

    E j e m p l o s d e B D O O b a s a d a s e n C + + p e r s i s t e n t e

    O 2 , O B J E C T S T O R E , V E R S A N T , O B J E C T I V I T Y

    E s t n d a r O D M G

    O D L ( O b j e c t D e f i n i t i o n L a n g u a g e )

    O M L ( O b j e c t M a n i p u l a t i o n L a n g u a g e )

    O Q L ( O b j e c t Q u e r y L a n g u a g e )

  • 2 1J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    S i s t e m a s C + + P e r s i s t e n t e s

    O D L

    c l a s s P e r s o n a : p u b l i c P e r s i s t e n t _ O b j e c t {

    p u b l i c :

    S t r i n g n o m b r e ;

    S t r i n g d i r e c c i o n ;

    } ;

    c l a s s C l i e n t e : p u b l i c P e r s o n a {

    p u b l i c :

    i n t e d a d ;

    i n t i d _ c l i e n t e ;

    S e t < R e f < C u e n t a > > c u e n t a s

    i n v e r s e C u e n t a : : t i t u l a r e s ;

    } ;

    C l i e n t e

    S u c u r s a l

    C u e n t a

    P e r s o n a

    *

    *

    c l a s s S u c u r s a l : p u b l i c P e r s i s t e n t _ O b j e c t {

    p u b l i c :

    S t r i n g n o m b r e ;

    S t r i n g d i r e c c i o n ;

    S e t < R e f < C u e n t a > > c u e n t a s

    i n v e r s e C u e n t a : : s u c u r s a l ;

    } ;

    c l a s s C u e n t a : p u b l i c P e r s i s t e n t _ O b j e c t {

    p r i v a t e :

    i n t s a l d o ;

    p u b l i c :

    i n t n u m e r o ;

    S e t < R e f < C l i e n t e > > t i t u l a r e s

    i n v e r s e C l i e n t e : : c u e n t a s ;

    R e f < S u c u r s a l > s u c u r s a l

    i n v e r s e S u c u r s a l : : c u e n t a s ;

    i n t c a l c u l a r _ s a l d o ( ) ;

    i n t a c t u a l i z a r _ s a l d o ( i n t d e l t a ) ;

    } ;

    *

    2 2J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    S i s t e m a s C + + P e r s i s t e n t e s

    O D L

    C l a s e s p e r s i s t e n t e s : T o d a s l a s c l a s e s c u y o s o b j e t o s p u e d e n s e r

    p e r s i s t e n t e s a p a r e c e n e n l a j e r a r q u a c o m o d e s c e n d i e n t e s d e

    " P e r s i s t e n t _ O b j e c t "

    P u n t e r o s p e r s i s t e n t e s : L o s t i p o s d e d a t o p u n t e r o a o b j e t o s d e u n a

    d e t e r m i n a d a c l a s e " * n o m b r e _ c l a s e " s e s u s t i t u y e n p o r u n t i p o

    p l a n t i l l a " R e f < n o m b r e _ c l a s e > " d e p u n t e r o s p e r s i s t e n t e s .

    T i p o s p l a n t i l l a : T o m a n c o m o p a r m e t r o s o t r o s t i p o s d e d a t o .

    C o l e c c i o n e s p e r s i s t e n t e s : L o s t i p o s d e d a t o c o n j u n t o ,

    m u l t i c o n j u n t o , l i s t a s , a r r a y s , e t c . s e s u s t i t u y e n p o r s u s r e s p e c t i v o s

    t i p o s p e r s i s t e n t e s . P o r e j e m p l o : S e t < n o m b r e _ c l a s e > . S e u s a n

    t i p o s p l a n t i l l a p a r a d e f i n i r l o s .

    I n t e g r i d a d r e f e r e n c i a l : P a l a b r a c l a v e " i n v e r s e " .

    R e s u m e n : C l a s e s P e r s i s t e n _ O b j e c t , R e f , S e t , e t c . d e f i n i d a s e n

    u n a b i b l i o t e c a d e p e r s i s t e n c i a .

    E x t e n s i n m n i m a d e l l e n g u a j e : p a l a b r a c l a v e i n v e r s e

  • 2 3J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    S i s t e m a s C + + P e r s i s t e n t e s

    O M L

    I n s e r c i n d e o b j e t o s

    i n t n u e v a _ c u e n t a ( s t r i n g n o m b r e , s t r i n g d i r e c c i o n , i n t e d a d ) {

    D a t a b a s e * b d ;

    T r a n s a c t i o n t r a n s ;

    R e f < C u e n t a > c u e n t a ;

    R e f < C l i e n t e > c l i e n t e ;

    b d = D a t a b a s e : : o p e n ( " b a n c o " ) ;

    t r a n s . b e g i n ( ) ;

    c u e n t a = N e w ( b d ) C u e n t a ;

    c l i e n t e = N e w ( b d ) C l i e n t e ;

    c l i e n t e - > n o m b r e = n o m b r e ;

    c l i e n t e - > d i r e c c i o n = d i r e c c i o n ;

    c l i e n t e - > e d a d = e d a d ;

    c u e n t a - > t i t u l a r e s . i n s e r t _ e l e m e n t ( c l i e n t e ) ;

    . . .

    t r a n s . c o m m i t ( ) ;

    }

    2 4J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    S i s t e m a s C + + P e r s i s t e n t e s

    O M L

    I n s e r c i n d e o b j e t o s

    N u e v a s c l a s e s : D a t a b a s e , T r a n s a c t i o n , S e s s i o n , C o n e c t i o n , e t c .

    C r e a c i n d e n u e v o s o b j e t o s :

    O p e r a d o r " N e w ( b d ) n o m b r e _ c l a s e "

    c r e a u n o b j e t o p e r s i s t e n t e n u e v o d e l t i p o i n d i c a d o y l o

    a l m a c e n a e n l a b a s e d e d a t o s a l a q u e s e r e f i e r e l a v a r i a b l e

    b d .

    P u n t e r o s p e r s i s t e n t e s :

    O p e r a d o r - > r e d e f i n i d o p a r a p u n t e r o s p e r s i s t e n t e s .

    C o l e c c i o n e s p e r s i s t e n t e s :

    n o m b r e _ c o l e c c i o n . i n s e r t _ e l e m e n t ( o b j ) , i n s e r t a u n o b j e t o e n u n a

    c o l e c c i n p e r s i s t e n t e

  • 2 5J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    S i s t e m a s C + + P e r s i s t e n t e s

    O M L

    A c c e s o a l o s o b j e t o s

    U s o d e v a r i a b l e s e s t t i c a s e n l a s c l a s e s

    c l a s s C l i e n t e : p u b l i c P e r s o n a {

    . . .

    s t a t i c S e t < R e f < < C l i e n t e > > t o d o s _ l o s _ c l i e n t e s

    . . . }

    C l i e n t e : : t o d o s _ l o s _ c l i e n t e s . i n s e r t _ e l e m e n t ( c l i e n t e ) ;

    E n l a d e c l a r a c i n

    d e l a c l a s e O D L

    S i e m p r e q u e s e

    c r e e u n c l i e n t e

    n u e v o

    P u e d e i n c l u i r s e

    e n e l c o n s t r u c t o r

    i n t v i s u a l i z a r _ c l i e n t e s _ p o r _ e d a d ( i n t e d a d ) {

    D a t a b a s e * b d ;

    T r a n s a c t i o n t r a n s ;

    I t e r a t o r < R e f < C l i e n t e > > i t e r ;

    R e f < C l i e n t e > p ;

    b d = D a t a b a s e : : o p e n ( " b a n c o " ) ;

    t r a n s . b e g i n ( ) ;

    i t e r = C l i e n t e : : t o d o s _ l o s _ c l i e n t e s . c r e a t e _ i t e r a t o r ( ) ;

    W h i l e ( i t e r . n e x t ( p ) ) {

    i f ( p - > e d a d < e d a d ) v i s u a l i z a r _ c l i e n t e ( p ) ;

    }

    }

    S e u s a n i t e r a d o r e s

    2 6J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    S i s t e m a s C + + P e r s i s t e n t e s

    O M L

    A c c e s o a l o s o b j e t o s

    U s o d e n o m b r e s d e c o l e c c i o n e s y d e o b j e t o s

    i n t n u e v a _ s u c u r s a l ( s t r i n g n o m b r e , s t r i n g d i r e c c i o n ) {

    D a t a b a s e * b d ;

    T r a n s a c t i o n t r a n s ;

    R e f < S u c u r s a l > s u c u r s a l ;

    b d = D a t a b a s e : : o p e n ( " b a n c o " ) ;

    t r a n s . b e g i n ( ) ;

    s u c u r s a l = N e w ( b d ) S u c u r s a l ;

    s u c u r s a l - > n o m b r e = n o m b r e ;

    s u c u r s a l - > d i r e c c i o n = d i r e c c i o n ;

    b d - > s e t _ o b j e c t _ n a m e ( s u c u r s a l , n o m b r e ) ;

    . . .

    t r a n s . c o m m i t ( ) ;

    }

    A s i g n a u n

    n o m b r e e n l a

    b a s e d e d a t o s a

    l a s u c u r s a l

    c r e a d a

  • 2 7J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    S i s t e m a s C + + P e r s i s t e n t e s

    O M L

    A c c e s o a l o s o b j e t o s

    U s o d e n o m b r e s d e c o l e c c i o n e s y d e o b j e t o s

    n u e v a _ s u c u r s a l ( " n u e v a 1 " , " C a l l e n u e v a 3 , 1 2 3 4 3 b a n c o p o l i " ) ;

    D a t a b a s e * b d ;

    T r a n s a c t i o n t r a n s ;

    R e f < S u c u r s a l > n u e v a 1 ;

    I t e r a t o r < R e f < C l i e n t e > > i t e r C l i ;

    I t e r a t o r < R e f < C u e n t a > > i t e r C u e n ;

    R e f < C l i e n t e > p C l i ;

    R e f < C u e n t a > p C u e n ;

    b d = D a t a b a s e : : o p e n ( " b a n c o " ) ;

    t r a n s . b e g i n ( ) ;

    n u e v a 1 = b d - > l o o k _ u p _ o b j e c t ( " n u e v a 1 " ) ;

    i t e r C u e n = n u e v a 1 . c u e n t a s . c r e a t e _ i t e r a t o r ( ) ;

    W h i l e ( i t e r C u e n . n e x t ( p C u e n ) ) {

    i t e r C l i = p C u e n - > t i t u l a r e s . c r e a t e _ i t e r a t o r ( ) ;

    W h i l e ( i t e r C l i . n e x t ( p C l i ) ) {

    i f ( p C l i - > e d a d < 3 5 ) v i s u a l i z a r _ c l i e n t e ( p C l i ) ;

    }

    }

    E j e m p l o : v i s u a l i z a l o s c l i e n t e s c o n e d a d < 3 5 d e l a s c u e n t a s d e l a

    s u c u r s a l n u e v a 1

    O b t i e n e l a

    s u c u r s a l a

    p a r t i r d e s u

    n o m b r e

    2 8J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    S i s t e m a s C + + P e r s i s t e n t e s

    O Q L

    L e n g u a j e d e c l a r a t i v o ( p a r e c i d o a S Q L )

    E l r e s u l t a d o n o t i e n e p o r q u e s e r u n c o n j u n t o d e o b j e t o s

    D a s o p o r t e a l a i n d e p e n d e n c i a f s i c a d e d a t o s

    I n t e r n a m e n t e s e p u e d e n d e c l a r a r n d i c e s d e a c c e s o

    P e r m i t e l a i n c o r p o r a c i n d e o p t i m i z a c i n d e c o n s u l t a s

  • 2 9J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    n d i c e

    M O T I V A C I N

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    P E R S I S T E N C I A D E O B J E T O S

    L e n g u a j e s d e p r o g r a m a c i n p e r s i s t e n t e s

    S i s t e m a s C + + p e r s i s t e n t e s

    J a v a D a t a O b j e c t s ( J D O )

    D I S C U S I N

    3 0J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    J a v a D a t a O b j e c t s ( J D O )

    J D O

    D e f i n e i n t e r f a c e s y c l a s e s q u e p e r m i t e n a l o s p r o g r a m a d o r e s

    a l m a c e n a r l a s i n s t a n c i a s d e l o s o b j e t o s d e a p l i c a c i n e n m e m o r i a

    p e r s i s t e n t e .

    O b j e t i v o s

    P r o p o r c i o n a r u n a v i s i n J a v a d e l a i n f o r m a c i n p e r s i s t e n t e d e l a s

    a p l i c a c i o n e s

    P e r m i t i r l a c o n e x i n d e d i s t i n t a s i m p l e m e n t a c i o n e s d e a l m a c e n e s

    d e p e r s i s t e n c i a s i n a f e c t a r a l c d i g o d e l a a p l i c a c i n

    A p l i c a c i n

    S G B D

    A r c h i v o sInte

    rface

    s JD

    O

    I m p l e m e n t a c i n

    J D O

    I m p l e m e n t a c i n

    J D O

    I m p l e m e n t a c i n d e r e f e r e n c i a : h t t p : / / j a v a . s u n . c o m / p r o d u c t s / j d o /

  • 3 1J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    J a v a D a t a O b j e c t s ( J D O )

    D e f i n i c i n d e c l a s e s

    C d i g o J a v a n o r m a l

    p u b l i c c l a s s D i r e c c i o n {

    p r i v a t e S t r i n g c a l l e ;

    p r i v a t e i n t n u m e r o ;

    p r i v a t e S t r i n g l o c a l i d a d ;

    p u b l i c D i r e c c i o n ( S t r i n g c a l l e , i n t n u m e r o ,

    S t r i n g l o c a l i d a d ) {

    t h i s . c a l l e = c a l l e ;

    t h i s . n u m e r o = n u m e r o ;

    t h i s . l o c a l i d a d = l o c a l i d a d

    }

    p u b l i c t o S t r i n g ( ) {

    r e t u r n c a l l e + " , " + n u m e r o + " , " + l o c a l i d a d ;

    }

    }

    P e r s o n a D i r e c c i o n

    p u b l i c c l a s s P e r s o n a {

    p r i v a t e S t r i n g n o m b r e ;

    p r i v a t e S t r i n g a p e l l i d o s ;

    p r i v a t e i n t e d a d ;

    p r i v a t e D i r e c c i o n d i r ;

    p u b l i c P e r s o n a ( S t r i n g n o m b r e ,

    S t r i n g a p e l l i d o s , i n t e d a d ) {

    t h i s . n o m b r e = n o m b r e ;

    t h i s . a p e l l i d o s = a p e l l i d o s ;

    t h i s . e d a d = e d a d ;

    }

    p u b l i c s e t D i r ( d i r e c c i o n d i r ) {

    t h i s . d i r = d i r ;

    }

    p u b l i c g e t D i r ( ) { r e t u r n d i r }

    p u b l i c t o S t r i n g ( ) {

    r e t u r n n o m b r e + " " + a p e l l i d o s + " ( " + e d a d + " ) " ;

    }

    }

    C l a s e s p e r s i s t e n t e s d e c l a r a d a s

    c o m o " P e r s i s t e n c e C a p a b l e "

    e n l a i m p l e m e n t a c i n J D O

    3 2J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    J a v a D a t a O b j e c t s ( J D O )

    A l m a c e n a r o b j e t o s e n m e m o r i a p e r s i s t e n t e

    P r o p e r t i e s p r o p s = n e w P r o p e r t i e s ( ) ;

    . . . / / E s t a b l e c e r l a s p r o p i e d a d e s p a r a o b t e n e r l a f a c t o r a d e g e s t o r e s d e p e r s i s t e n c i a

    P e r s i s t e n c e M a n a g e r F a c t o r y p m f = J D O H e l p e r . g e t P e r s i s t e n c e M a n a g e r F a c t o r y ( p r o p e r t i e s ) ;

    P e r s i s t e n c e M a n a g e r p m = p m f . g e t P e r s i s t e n c e M a n a g e r ( ) ;

    t r y {

    p m . c u r r e n t T r a n s a c t i o n . b e g i n ( ) ;

    P e r s o n a p = n e w P e r s o n a ( " J u l i o " , " H e r n a n d e z " , 2 3 ) ;

    D i r e c c i o n d = n e w D i r e c c i o n ( " T o r r e b l a n c a " , 3 2 , " E s t o p o l i s " ) ;

    p e r s o n a . s e t D i r ( d ) ;

    p m . m a k e P e r s i s t e n t ( p ) ;

    p m . c u r r e n t T r a n s a c t i o n . c o m m i n t ( ) ;

    O b j e c t o i d = p m . g e t O b j e c t I d ( p e r s o n a ) ;

    S t r i n g t e x t O i d = o i d . t o S t r i n g ( ) ;

    }

    f i n a l l y {

    i f ( p m . c u r r e n t T r a n s a c t i o n ( ) . i s A c t i v e ( ) ) p m . c u r r e n t T r a n s a c t i o n ( ) . r o l l b a c k ( ) ;

    i f ( ! p m . i s C l o s e d ( ) ) p m . c l o s e ( ) ;

    }

    D e p e n d e d e l a

    i m p l e m e n t a c i n

    L a D i r e c c i n s e

    h a c e p e r s i s t e n t e

    p o r r e f e r e n c i a

    I d e n t i f i c a d o r

    p e r s i s t e n t e d e l o b j e t o

    I d e n t i f i c a d o r

    p e r s i s t e n t e d e l o b j e t o

    e n f o r m a t o t e x t o

  • 3 3J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    J a v a D a t a O b j e c t s ( J D O )

    A c c e s o a l o s o b j e t o s p e r s i s t e n t e s

    A c c e s o a t r a v s d e l O I D p e r s i s t e n t e d e l o b j e t o

    P r o p e r t i e s p r o p s = n e w P r o p e r t i e s ( ) ;

    . . . / / E s t a b l e c e r l a s p r o p i e d a d e s p a r a o b t e n e r l a f a c t o r a d e g e s t o r e s d e p e r s i s t e n c i a

    P e r s i s t e n c e M a n a g e r F a c t o r y p m f = J D O H e l p e r . g e t P e r s i s t e n c e M a n a g e r F a c t o r y ( p r o p e r t i e s ) ;

    P e r s i s t e n c e M a n a g e r p m = p m f . g e t P e r s i s t e n c e M a n a g e r ( ) ;

    O b j e c t o i d = p m . n e w O b j e c t I d I n s t a n c e ( P e r s o n a . c l a s s , t e x t O i d ) ;

    P e r s o n a p = ( P e r s o n a ) p m . g e t O b j e c t B y I d ( o i d , t r u e ) ;

    S y s t e m . o u t . p r i n t l n ( p . t o S t r i n g ( ) ) ;

    p m . c l o s e ( ) ;

    E l u s o d e O i d s e n f o r m a t o d e t e x t o p e r m i t e p a s a r l o s c o m o p a r m e t r o

    e n a p l i c a c i o n e s w e b .

    r e f r e s c a r l a c a c h

    3 4J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    J a v a D a t a O b j e c t s ( J D O )

    A c c e s o a l o s o b j e t o s p e r s i s t e n t e s

    A c c e s o a t o d a s l a s i n s t a n c i a s p e r s i s t e n t e s d e u n a c l a s e

    P r o p e r t i e s p r o p s = n e w P r o p e r t i e s ( ) ;

    . . . / / E s t a b l e c e r l a s p r o p i e d a d e s p a r a o b t e n e r l a f a c t o r a d e g e s t o r e s d e p e r s i s t e n c i a

    P e r s i s t e n c e M a n a g e r F a c t o r y p m f = J D O H e l p e r . g e t P e r s i s t e n c e M a n a g e r F a c t o r y ( p r o p e r t i e s ) ;

    P e r s i s t e n c e M a n a g e r p m = p m f . g e t P e r s i s t e n c e M a n a g e r ( ) ;

    E x t e n t e x t = p m . g e t E x t e n t ( P e r s o n a . c l a s s , f a l s e ) ;

    j a v a . u t i l . I t e r a t o r i t r = e x t . i t e r a t o r ( ) ;

    t r y {

    w h i l e ( i t r . h a s N e x t ( ) )

    {

    P e r s o n a p = ( P e r s o n a ) i t r . n e x t ( ) ;

    S y s t e m . o u t . p r i n t l n ( p . g e t D i r ( ) . t o S t r i n g ( ) ) ;

    }

    }

    f i n a l l y {

    e x t . c l o s e ( i t r ) ;

    }

    p m . c l o s e ( ) ;

    r e c u p e r a r t a m b i n l a s

    s u b c l a s e s

  • 3 5J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    J a v a D a t a O b j e c t s ( J D O )

    A c c e s o a l o s o b j e t o s p e r s i s t e n t e s

    A c c e s o m e d i a n t e c o n s u l t a s e n J D O Q u e r y L a n g u a g e ( J D O Q L )

    P r o p e r t i e s p r o p s = n e w P r o p e r t i e s ( ) ;

    . . . / / E s t a b l e c e r l a s p r o p i e d a d e s p a r a o b t e n e r l a f a c t o r a d e g e s t o r e s d e p e r s i s t e n c i a

    P e r s i s t e n c e M a n a g e r F a c t o r y p m f = J D O H e l p e r . g e t P e r s i s t e n c e M a n a g e r F a c t o r y ( p r o p e r t i e s ) ;

    P e r s i s t e n c e M a n a g e r p m = p m f . g e t P e r s i s t e n c e M a n a g e r ( ) ;

    E x t e n t e x t = p m . g e t E x t e n t ( P e r s o n a . c l a s s , f a l s e ) ;

    Q u e r y c o n s u l t a = p m . n e w Q u e r y ( P e r s o n a . c l a s s , e x t , " t h i s . e d a d > = 1 8 " ) ;

    c o n s u l t a . s e t O r d e r i n g ( " n o m b r e a s c e n d i n g " ) ;

    C o l l e c t i o n r e s u l t a d o = ( C o l l e c t i o n ) c o n s u l t a . e x e c u t e ( ) ;

    t r y {

    I t e r a t o r i t r = r e s u l t a d o . i t e r a t o r ( ) ;

    w h i l e ( i t r . h a s N e x t ( ) )

    S y s t e m . o u t . p r i n t l n ( i t r . n e x t ( ) . t o S t r i n g ( ) ) ;

    }

    f i n a l l y {

    c o n s u l t a . c l o s e ( r e s u l t a d o ) ;

    }

    p m . c l o s e ( ) ;

    3 6J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    J a v a D a t a O b j e c t s ( J D O )

    M o d i f i c a c i n d e o b j e t o s p e r s i s t e n t e s

    t r y {

    p m . c u r r e n t T r a n s a c t i o n ( ) . b e g i n ( ) ;

    P e r s o n a p = ( P e r s o n a ) p m . g e t O b j e c t B y I d ( o i d , t r u e ) ;

    D i r e c c i o n d = N e w D i r e c c i o n ( " R u e d e l a p a z " , 3 4 , " l o t o c o p o l i s " ) ;

    p . s e t D i r ( d ) ;

    p m . c u r r e n t T r a n s a c t i o n ( ) . c o m m i t ( ) ;

    }

    f i n a l l y {

    i f ( p m . c u r r e n t T r a n s a c t i o n ( ) . i s A c t i v e ( ) ) p m . c u r r e n t T r a n s a c t i o n ( ) . r o l l b a c k ( ) ;

    i f ( ! p m . i s C l o s e d ( ) ) p m . c l o s e ( ) ;

    }

  • 3 7J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    P E R S I S T E N C I A D E O B J E T O S

    J a v a D a t a O b j e c t s ( J D O )

    B o r r a d o d e o b j e t o s p e r s i s t e n t e s

    t r y {

    p m . c u r r e n t T r a n s a c t i o n ( ) . b e g i n ( ) ;

    P e r s o n a p = ( P e r s o n a ) p m . g e t O b j e c t B y I d ( o i d , t r u e ) ;

    p m . d e l e t e P e r s i s t e n t ( p ) ;

    p m . c u r r e n t T r a n s a c t i o n ( ) . c o m m i t ( ) ;

    }

    f i n a l l y {

    i f ( p m . c u r r e n t T r a n s a c t i o n ( ) . i s A c t i v e ( ) ) p m . c u r r e n t T r a n s a c t i o n ( ) . r o l l b a c k ( ) ;

    i f ( ! p m . i s C l o s e d ( ) ) p m . c l o s e ( ) ;

    }

    l a d i r e c c i n s e b o r r a r

    e n c a s c a d a

    E n l a i m p l e m e n t a c i n d e b e e x i s t i r u n r e c o l e c t o r d e b a s u r a

    e n c a r g a d o d e l i b e r a r e l e s p a c i o d e o b j e t o s n o

    r e f e r e n c i a d o s

    3 8J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    n d i c e

    M O T I V A C I N

    O R I E N T A C I N A O B J E T O S : C O N C E P T O S

    P E R S I S T E N C I A D E O B J E T O S

    D I S C U S I N

  • 3 9J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    D I S C U S I N

    L e n g u a j e d e c o n s u l t a d e p r o p s i t o g e n e r a l

    P r o c e d i m e n t a l ( C + + , J a v a , e t c . )

    + c o m p l e j o + c o s t e , + e r r o r e s

    M s d i f c i l o i m p o s i b l e i n c o r p o r a r t c n i c a s d e o p t i m i z a c i n

    D e c l a r a t i v o ( O Q L , J D O Q L )

    L o s a t r i b u t o s d e b e n d e s e r p b l i c o s

    S e p i e r d e l a e n c a p s u l a c i n y l a i n d e p e n d e n c i a f s i c a d e d a t o s

    Q u e p a s a s i s u s t i t u i m o s u n a r r a y p o r u n a l i s t a ?

    C l a s e s d e r i v a d a s : P r o y e c c i n e n a l g u n o s a t r i b u t o s d e u n a c l a s e

    C l a s e r e s u l t a d o ? O I D ? Q u e m t o d o s s e a p l i c a n ?

    J o i n d e d o s c l a s e s

    O Q L : E l r e s u l t a d o n o s i e m p r e e s u n a c l a s e

    M o d e l o n o e s c e r r a d o

    J D O Q L : L e n g u a j e d e c o n s u l t a l i m i t a d o ( s l o f i l t r o s )

    V i s t a s : N o r m a l m e n t e n o s e p e r m i t e n .

    A c c e s o a d a t o s a t r a v s d e c a m i n o s ( P a t h s )

    M o d e l o j e r r q u i c o ?

    4 0J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    D I S C U S I N

    D e c l a r a c i n d e r e s t r i c c i o n e s d e i n t e g r i d a d

    N o s e p u e d e n c o d i f i c a r e n u n l e n g u a j e d e c l a r a t i v o

    I n s e r c i n d e c d i g o d e v a l i d a c i n e n l o s m t o d o s

    P r o b l e m a s

    E l c u a n d o s e e j e c u t a l a c o m p r o b a c i n l o d e t e r m i n a e l u s u a r i o y

    n o e l s i s t e m a

    S e p u e d e e s t a r s e g u r o d e q u e s i e m p r e q u e s e a c c e d a a l d a t o ,

    d e s d e c u a l q u i e r m t o d o ( c o d i f i c a d o o p o r c o d i f i c a r ) , s e v a a

    e f e c t u a r l a v a l i d a c i n ?

    S i l a r e s t r i c c i n c a m b i a C u n t o s m t o d o s d e b e n m o d i f i c a r s e ?

    H a y u n c a t l o g o d e r e s t r i c c i o n e s ?

    S e e j e c u t a r n d u r a n t e o p e r a c i o n e s a t p i c a s

    c a r g a m a s i v a d e d a t o s

    e t c .

  • 4 1J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    D I S C U S I N

    R e l a c i o n e s e n t r e o b j e t o s

    S e m o d e l a n m e d i a n t e p u n t e r o s

    1 : 1 , p u n t e r o d e u n o b j e t o a o t r o ( a v e c e s e n u n a s o l a d i r e c c i n )

    1 : N , e n u n l a d o p u n t e r o , e n e l o t r o l a d o c o l e c c i n d e p u n t e r o s

    M : N , c o l e c c i o n e s d e p u n t e r o s e n a m b o s l a d o s

    R e l a c i o n e s t e r n a r i a s ?

    V u e l t a a l m o d e l o e n r e d ?

    I n t e g r i d a d r e f e r e n c i a l

    V a l i d a c i n d e p u n t e r o s ( J D O ) . D e c l a r a r q u e u n a r e f e r e n c i a e s l a

    i n v e r s a d e o t r a ( O Q L )

    B o r r a d o s y m o d i f i c a c i o n e s a u t o m t i c a s

    E n m u c h o s c a s o s s e a s u m e n b o r r a d o s e n C A S C A D A

    J e r a r q u a s , r e c o l e c t o r d e b a s u r a .

    N o s e p e r m i t e a l u s u a r i o c o n t r o l a r e l c o m p o r t a m i e n t o .

    4 2J . R . R . V . S I S i s t e m a s d e b a s e s d e d a t o s o r i e n t a d o s a o b j e t o s

    D I S C U S I N

    U n l e n g u a j e d e p r o g r a m a c i n O . O . p e r s i s t e n t e , e s

    r e a l m e n t e u n S G B D ?

    U n S G B D r e l a c i o n a l s e p r o p o r c i o n a l i s t o p a r a s e r u s a d o

    S i s t e m a g e s t o r d e d a t o s d e p r o p s i t o g e n e r a l

    U n S G B D O r i e n t a d o a O b j e t o s p u e d e v e r s e c o m o u n c o n j u n t o d e

    h e r r a m i e n t a s q u e p e r m i t e n a u n p r o g r a m a d o r d e f i n i r u n a l m a c n

    d e d a t o s p a r a u n a a p l i c a c i n e n c o n c r e t o

    D e f i n i r c l a s e s c o n m t o d o s ( c d i g o ) a d a p t a d o a u n a a p l i c a c i n

    c o n c r e t a

    S e d a p o c a i m p o r t a n c i a a :

    C o m p a r t i r d a t o s e n t r e a p l i c a c i o n e s

    I n d e p e n d e n c i a f s i c a d e d a t o s

    L e n g u a j e s d e c o n s u l t a d e c l a r a t i v o s y d e p r o p s i t o g e n e r a l

    V i s t a s e i n d e p e n d e n c i a l g i c a d e d a t o s

    e t c .