bdoo
DESCRIPTION
bases de datosTRANSCRIPT
-
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 .