You are on page 1of 28

Bases de Datos

Entradas desde el 20/10/2003

Indice Introduccin I.- Conceptos fundamentales II.- Bases de datos orientadas a objetos B!""# 2.1 $%u& es ".".' 2.2 $(or )u& ".".' 2.3 $%u& es una B!""' 2.* +n ,odelo Conceptual +nificado 2.- .r)uitectura de +na B!"" 2./ !esarrollo con Bases de !atos "" 2.0 1res Enfo)ues de Construccin de Bases de !atos "" 2.2 Impacto de la "rientacin a "bjetos en la In3enier4a del 5oft6are 2.7 8entajas en B!""s 2.10 (osibles !es9entajas 2.11 :endimiento 2.12 Caracter4sticas mandatorias re3las de oro 2.12.1 ,anifiesto de sistema de 3estin de B!"" 2.12.2 Caracter4sticas obli3atorias 2.12.3 Caracter4sticas opcionales 2.12.* Caracter4sticas abiertas 2.12.- Caracter4sticas 3enerales 2.12./ ;os sistemas de B!"" te proporciona el blo)ueo III.- .l3unos ejemplos de la tecnolo34a orientada a objetos 3.1 Caracter4sticas de los 5<B!"" 3.2 (rimer intento de Estandari=acin: "!,<-73 3.2.1 ;en3uaje "!; 3.2.2 ;en3uaje ",; 3.2.3 ;en3uaje "%; 3.3 $%u& es B!"9iedo3' 3.3.1 (alabras Cla9e 3.* (ro3ramacin ,odular 3.- "bjeti9os 3./ "tros aspectos a destacar 3.0 1rabajos relacionados 3.2 5istema de 3estin de B! en "8IE!"3

3.2.1 El sistema operati9o orientado a objetos 3.2.2 ,odelo de objetos de 50* 3.7 B!"9iedo3 aplica el est>ndar 3.10 5ituacin del 5<B!"" en "8IE!"3 3.11 (rototipo I 3.12 (rototipo II 3.13 (rototipo III 3.1* %u& 9iene despu&s de "" Conclusiones <losario Biblio3raf4a

Introduccin
En est& tema ?ablaremos de la e9olucin de los diferentes tipos de Bases de !atos @ por consi3uiente del sur3imiento de las Bases de !atos "rientadas a "bjetos B!""#.;as B!"" almacenan @ manipulan informacin )ue puede ser di3itali=ada representada# por objetosA proporcionan una estructura fleBible con acceso >3ilA r>pidoA con 3ran capacidad de modificacin. .dem>s combina las mejores cualidades de los arc?i9os planosA las bases jer>r)uicas @ relacionales. Como 9eremos a continuacin las B!"" representan el si3uiente paso en la e9olucin de las Bases de !atos para soportar el an>lisisA diseCo @ pro3ramacin "rientada a "bjetos. Est>s permiten el desarrollo @ mantenimiento de aplicaciones complejas @a )ue se puede utili=ar un mismo modelo conceptual @ as4 aplicarlo al an>lisisA diseCo @ pro3ramacinA esto reduce el problema entre los diferentes modelos atr>9e= de todo el ciclo de 9idaA con un costo si3nificati9amente menor. Como cual)uier base de datos pro3ramableA una base de datos orientada a objetos B!""# da un ambiente para el desarrollo de aplicaciones con un depsito persistente listo para su eBplotacin. (ermiten )ue el mismo modelo conceptual se apli)ue al an>lisisA diseCoA pro3ramacinA definicin @ acceso a la base de datos. Esto reduce el problema del operador de traduccin entre los diferentes modelos a tra9&s de todo el ciclo de 9ida. El modelo conceptual debe ser la base de las ?erramientas C.5E "" totalmente inte3radasA las cuales a@udan a 3enerar la estructura de datos @ los m&todos. .dem>s las B!"" ofrecen un mejor rendimiento de la m>)uina )ue las bases de datos por relacinA para aplicaciones clases con estructuras complejas de datos. 5in embar3oA las B!"" coeBistir>n con las bases de datos por relacin como una forma de estructura de datos dentro de una B!"".

Di3ura Eo.1# Bre9e Fistoria del !esarrollo de las Bases de !atos 5istemas de administracin "" de bases de datos por EjemploA 8ersantA "bjecti9it@# Como se muestra en la Di3ura Eo.1#A cuatro 3eneraciones de sistemas ?an manejado datos de computacin. .l principioA los len3uajes @ las instrucciones de m>)uina eran mu@ similaresA lo )ue produc4a un modelo de pro3ramacin orientado por procesos. (or ejemploA los pro3ramas para la suma se or3ani=aban en torno al proceso de suma de la m>)uina: los nGmeros se car3aban en re3istrosA se ejecutaba la instruccin de suma @ se trabajaban los posibles errores de desbordamiento superior inferior. .l3unos resultados se almacenaban para su uso posterior. En principio los pro3ramas ejecutaban las tareas @ nunca las escrib4an en un dispositi9o de almacenamiento. En est> etapaA uno de los pocos elementos )ue se almacenaban era el propio pro3rama. 5in embar3oA los pro3ramadores pronto se dieron cuenta del 9alor de re3istrar los resultados. ;a 3rabacin de los resultados del pro3rama aument con el ad9enimiento del almacenamiento en discos ma3n&ticos rotatoriosA lo )ue ofreci la posibilidad del acceso aleatorio a 3randes cantidades de datos almacenados.

I.- Conceptos fundamentales


"bjeto: es cual)uier cosa real abstracta acerca de la cual almacenamos datos @ los m&todos )ue controlan dic?os datos. (or ejem. En una empresa E,(;E.!" se aplica a los objetos )ue son personas empleadas por al3una or3ani=acin al3una IE51.ECI. podr4a ser Huan (&re=A ,ar4a 5>nc?e= etc. 1ipo de "bjeto: es una cate3or4a de objeto. Ejem: E,(;E.!". +n objeto es una Instancia de un tipo de objeto. (E:5"E. Huan (&re=# Encapsulado: es el resultado o acto# de ocultar los detalles de implantacin de un objeto respecto de su usuario.

+na 5olicitud: in9oca una operacin espec4ficaA con uno m>s objetos como par>metros. Es decirA es para )ue se lle9e acabo la operacin indicada @ )ue se produ=ca el resultado. En consecuencia las implantaciones se refieren a los objetos como solicitudes. Clase: es una implantacin de un tipo de objetos. Especifica una estructura de datos @ los m&todos operati9os permisibles )ue se aplican a cada uno de sus objetos. Ferencia: +na clase implanta el tipo de objeto. +na 5ubclase ?ereda propiedades de su clase padreA una subclase puede ?eredar la estructura @ los m&todos al3unos de los m&todos. En las B!"" los datos est>n encapsulados @ se dice )ue estos son acti9os m>s )ue pasi9osI debido a )ue por ejemplo: ;a clase ma@or detecta si tiene un ?ijo objeto# m>s o uno menosA es por esto )ue se dice )ue est>n acti9os @a )ue cuentan los ?ijos u objetos )ue tiene. En el modelo de objetos eBisten cuatro caracter4sticas fundamentales: .bstraccin: denota las caracter4sticas esenciales de un objeto )ue lo distin3uen de todos los dem>s tipos objetoA @ proporciona as4 fronteras conceptuales n4tidamente definidas respecto a la perspecti9a del obser9adorJ. +na abstraccin se centra en la 9isin eBterna de un objetoA @A por tanto sir9e para separar el comportamiento esencial de un objeto de su implantacin. ,odularidad: 5e basa en el concepto de fra3mentacin de los pro3ramas en componentes indi9iduales para reducir su complejidad en al3Gn 3radoA @ para crear adem>s una serie de fronteras bien definidas @ documentadas dentro del pro3ramaA dnde estas fronteras o interfaces tienen un incalculable 9alor cara a la comprensin del pro3rama. Herar)u4a: una clasificacin u ordenacin de abstracciones. 1ipos: Es un conjunto de objetos )ue tienen un mismo comportamiento comparten una misma funcionalidad# )ue se puede obser9ar desde afuera. <enericidad: permite construir clases 3en&ricas para otras clases. "bjetos Complejos: Est>n construidos mediante al3unos m>s simples mediante la aplicacin de constructores a ellos. ;os "bjetos m>s simples son objetos como: Inte3erA Car>cterA 5trin3 de B@tes de cual)uier lon3itudA booleanos punto flotante @ al3unos pueden ser de tipo atmico. Fa@ 9arios constructores de objetos complejos como son: ;istas @ arre3los. (or ejemplo: El jue3o m4nimo de constructores )ue el sistema debe tener son una lista @ un .rre3lo. ;as listas @ arre3los son importantes por)ueA pueden capturar ordenes las cuales ocurren en el mundo real @ tambi&n se pueden le9antar en muc?as especificaciones cient4ficas donde las necesidades de la 3ente son matricesA series de tiempo de informacin datos.

El objeto de constructores debe ser orto3onal cual)uier constructor debe ser aplicado a cual)uier objeto. Identidad de "bjetos: +n modelo si3nifica en un modelo una identidad de objeto. El objeto tiene una eBistencia la cual es independiente de su 9alorA esto es dos nociones de e)ui9alencia del objeto. !os objetos pueden ser id&nticosA )ue ten3an el mismo objeto pueden ser i3ualesA )ue ten3an el mismo 9alorI este tiene dos implicaciones una es la comparticin del objeto @ la otra es la actuali=acin del objeto. Comparticin de "bjetos: Es un modelo basado en la identidad de dos objetos contener compartir un componente la representacin pictrica de un objeto complejo es una 3r>fica mientras )ue est>n limitadas en un >rbol sin identidad de objeto. Considere el si3uiente ejemplo: +na persona tiene un nombre @ una edad @ un jue3o de niCos. .sumiendo )ue (edro @ 5usana ambos tienen un niCo de 1- aCos de edad llamado Huan en la 9ida real estas dos situaciones pueden le9antarse para presentarse como: 5usana @ (edro son padres del mismo niCo dos niCos est>n en9ueltos por: (edroA*0AK HuanA1-AKL#L#M 5usana es representada por: 5usanaA*1AK HuanA1-AKL#L# Es decirA no ?a@ forma de eBpresar )ue (edro @ 5usana son padres del mismo niCo en un modelo basado en la identidad estas dos estructuras pueden compartir una parte comGn Huan 1- no. Esto es capturando ambas situaciones. .sumiendo )ue (edro @ 5usana son ob9iamente padres de un niCo llamado Huan en este caso todas las actuali=aciones al ?ijo de Huan 9an a ser aplicadas al objeto de Huan @ consecuentemente tambi&n aplicadas al ?ijo de (edro.

II.- Bases de datos orientadas a objetos B!""#


2.1 Qu es O.O.? En esos mundos ""A el conocimiento se descentrali=a en todos los objetos )ue lo componenA cada objeto sabe ?acer lo su@o @ no le interesa saber cmo el 9ecino ?ace su trabajoA pero sabe )ue lo ?ace @ )u& es lo )ue puede ?acer. Como bien lo defini !an In3alls de 5malltalN con las si3uientes palabras: J;a orientacin a objetos proporciona una solucin )ue conduce a un +ni9erso de "bjetos Obien educadosO )ue se piden de manera cort&sA concederse mutuamente sus deseosJ. 2.2 Por qu O.O.? ;a meta es dejar la etapa en la )ue la construccin del soft6are es una labor de artesanosA @ pasar a la etapa en la )ue se pueda tener f>bricas de soft6areA con 3ran capacidad de reutili=acin de cdi3o @ con metodolo34a eficientes @ efecti9as )ue se apli)uen al proceso de produccin. 2.3 Qu es una BDOO? . finales de los 20Os aparecieron las primeras B!""A es una base de datos inteli3ente. 5oporta el paradi3ma orientado a objetos almacenando datos @ m&todosA @ no slo datos. Est> diseCada para ser efica=A desde el punto de 9ista f4sicoA para almacenar

objetos complejos. E9ita el acceso a los datosI esto es mediante los m&todos almacenados en ella. Es m>s se3ura @a )ue no permite tener acceso a los datos objetos#I esto debido a )ue para poder entrar se tiene )ue ?acer por los m&todos )ue ?a@a utili=ado el pro3ramador. 2.4 Un Modelo Conceptual Uni icado ;as t&cnicas "" utili=an los mismos modelos conceptuales para el an>lisisA diseCo @ construccin. ;a tecnolo34a de las B!"" da un paso m>s ?acia la unificacinA el modelo conceptual de la base de datos "" es i3ual al del resto del mundo ""A en lu3ar de utili=ar tablas por relacin independientes como 5%;. El uso del mismo modelo conceptual para todos los aspectos del desarrollo simplifica &steA particularmente con las ?erramientas C.5E ""I mejora la comunicacin entre usuariosA analistas @ pro3ramadoresA adem>s de )ue reduce las posibilidades de error.

2.! "rquitectura de Una BDOO En la si3uiente 1ablaEo1# se muestran al3unos de los principales productos de B!"" @ sus 9endedores. ;os primeros se diseCaron como una eBtensin de los len3uajes de pro3ramacin como 5malltalN CPP. El ;,! len3uaje para el manipulacin de datosI tambi&n conocido como !,;# @ el ;!! len3uaje para la definicin de los datosI tambi&n conocido como !!;# constru4an un len3uaje "" comGn. El diseCo de las B!"" actuales debe apro9ec?ar al m>Bimo &l C.5E e incorporar m&todos creados con cual)uier t&cnica poderosaA inclu@endo enunciados declarati9osA 3eneradores de cdi3os e inferencias con base en re3las.
Producto Gemstone Itasca Objectivity Object Store Ontos #ersant Proveedor Servio Corporation, Alameda,CA Itasca Systems,Inc.,Minneapolis,MN Objectivity,Menlo Park,Ca Object esi!n,Inc.,"urlin!ton,MA Ontos Inc.,"ellerica,MA #ersant Object $ec%nolo!y,Menlo Park,CA

1abla Eo.1# 5eis (roductos de B!"" @ sus (ro9eedores. .l3unas caracter4sticas son independientes de la ar)uitectura fundamental de una B!"" pero son comunes a la ma@or4a de ellas: Q 8ersiones.- ;a ma@or4a de los sistemas de bases de datos slo permiten )ue eBista una representacin de un ente de la base de datos dentro de esta. ;as 9ersiones permiten )ue las representaciones alternas eBistan en forma simult>nea.

Q 1ransacciones compartidas.- ;as transacciones compartidas soportan 3rupos de usuarios en estaciones de trabajoA los cuales desean coordinar sus esfuer=os en tiempo realA los usuarios pueden compartir los resultados intermedios de una base de datos. ;a transaccin compartida permite )ue 9arias personas inter9en3an en una sola transaccin

2.# Desarrollo con Bases de Datos OO ;as B!"" se desarrollan al describir en primer lu3ar los tipos de objetos importantes del dominio de a)uellos tipos de objetos. Estos tipos de objetos determinan las clases )ue conformar>n la definicin de la B!"". (or ejemplo: +na base de datos diseCada para almacenar la 3eometr4a de ciertas partes mec>nicas incluir4a clases como CI;IE!:"A E5DE:. M C+B". El comportamiento de CI;IE!:" podr4a incluir informacin relati9a a sus dimensionesA 9olumen >rea superficial: Clase de CI;IE!:"K .;1+:. D;"1.E1E #I :.!I" D;"1.E1E #I 8";+,EE D;"1.E1E #I .:E. !E 5+(E:DICIE D;"1.E1E #I LI 5e puede lle3ar a definiciones similares para el cubo @ la esfera. En la definicin anteriorA .;1+:.A:.!I" @ R:E. representan los mensajes )ue se pueden en9iar a un objeto CI;IE!:" . ;a Implantacin se lle9a a cabo en el mismo len3uajeA escribiendo funciones correspondientes a las solicitudes "": CI;IE!:"::.;1+:. # K:E1":E. CI;IE!:"S.;1+:.IL CI;IE!:"::8";+,EE # K:E1":E. (IT:.!I" #T.;1+:. #IL En este casoA la .ltura se almacena como un elemento de los datosA mientras )ue 9olume se calcula mediante la frmula apropiada. "bser9e )ue la implantacin interna de 9olume utili=a solicitudes para obtener altura @ radio. 5in embar3oA el aspecto m>s importante es la sencille= @ uniformidad )ue eBperimentan los usuarios de CI;IE!:". 5lo necesitan conocer la forma de en9iar una solicitud @ las solicitudes disponibles. 2.$ %res &n oques de Construcci'n de Bases de Datos OO ;as B!"" se pueden construir mediante al3uno de los tres enfo)ues si3uientes: Q El (rimero.- se puede utili=ar el cdi3o actual altamente complejo de los sistemas de administracin de las bases de datosA de modo )ue una B!"" se implante m>s r>pido sin tener )ue iniciar de cero. ;as t&cnicas orientadas a objetos se pueden utili=ar como medios para el diseCo sencillo de sistemas complejos. ;os sistemas se constru@en a partir de componentes @a probados con un formato definido para las solicitudes de las operaciones del componente. Q El 5e3undo: considera a la B!"" como una eBtensin de la tecnolo34a de las bases

de datos por relacin. !e este modoA las ?erramientasA t&cnicasA @ 9asta eBperiencia de la tecnolo34a por relacin se utili=an para construir un nue9o 5.B!. 5e pueden aCadir apuntadores a las tablas de relacin para li3arlas con objetos binarios de 3ran tamaCo B;"B#. ;a base de datos tambi&n debe proporcionar a las aplicaciones clientes un acceso aleatorio @ por partes a 3randes objetosA con el fin de )ue slo sea necesario recuperar a tra9&s de la red la parte solicitada de los datos. Q El 1ercero: refleBiona sobre la ar)uitectura de los sistemas de bases de datos @ produce una nue9a ar)uitectura optimi=adaA )ue cumple las necesidades de la tecnolo34a "". ;as compaC4as como 8ersantA "bjecti9it@A ItascaA etc. +tili=an est& enfo)ue @ afirman )ue la tecnolo34a de relacin es un subconjunto de una capacidad m>s 3eneral. .dem>s )ue las B!"" no de relacin son aproBimadamente dos 9eces m>s r>pidas )ue las bases de datos por relacin para almacenar @ recuperar la informacin compleja. (or lo tantoA son esenciales en aplicaciones como C.! @ permitir4an )ue un depsito C.5E fuera una facilidad de tiempo real en 9e= de una facilidad por lotes. ;a .r)uitectura de 8ersant est> desi3nada al soporte Cliente/5er9idor con acercamiento a la computacin distribuidaI cual)uier aplicacin de Cliente el ser9idor la procesaA usa las E!1 @ las m>)uinas ser9idoras )ue pueden cooperar en una B! distribuida de 8ersant. ;as B! pueden estar le9antadas como un sistema m-Cliente/n-5er9idor. +n ser9idor en el medioambiente de 8ersant es una m>)uina )ue est> corriendo los procesos del ser9idorA esta soporta accesos concurrentes por usuarios mGltiples de una o m>s B!. +n cliente es un proceso de aplicacin este tiene acceso a espacios de trabajo de B! persistentes pri9adas @ en adicin puede accesar di9ersas B! sobre ser9idores concurrentes con otras aplicaciones de cliente.

Di3. Eo. * .r)uitectura de 8ersant 2.( )*pacto de la Orientaci'n a O+,etos en la )n-enier.a del /o t0are. En las B!""A la or3ani=acin J<estin ,anejadora de !atos "bjeto "!,<#J representa el 100U de las B!"" industriales @ ?a establecido un est>ndar de definicin "!; - ;en3uaje de !efinicin de datos# @ manipulacin "%; - ;en3uaje de consulta# de bases de datos e)ui9alente a 5%;. :especto a las relacionalesA todas "racleA InformiBA etc.# est>n aCadiendo en ma@or o menor 3rado al3unos aspectos de la orientacin a objetos. .E5I Instituto Eacional Estadounidense de Est>ndar#A por su parteA est> definiendo un 5%;-3 )ue incorpora muc?os aspectos de la orientacin a objetos. El futuro del 5%;-3 es sin embar3o inciertoA @a )ue "!,< ?a ofrecido a .E5I su est>ndar para )ue sir9a de base para un nue9o 5%;A con lo )ue solo ?abr4a un Gnico est>ndar de base de datos. El 3rupo "!,< <rupo ,anejador de !atos "bjeto# naci de un 3rupo m>s 3randeA llamado J<rupo ,anejador de "bjetos ",<#JA donde est>n representados todas las cosas con al3una influencia en el sector. Este 3rupo esta definiendo un est>ndar uni9ersal por objetos. Este est>ndar permitir> )ue un objeto sea pro3ramado en cual)uier len3uaje @ sistema operati9o. Esto facilitar> enormemente el desarrollo de sistemas abiertos cliente-ser9idor. 2.1 2enta,as en BDOOs Est> su fleBibilidadA @ soporte para el manejo de tipos de datos complejos. (or ejemploA en una base de datos con9encionalA si una empresa ad)uiere 9arios clientes por referencia de clientes ser9icioA pero la base de datos eBistenteA )ue mantiene la informacin de clientes @ sus comprasA no tiene un campo para re3istrar )ui&n proporcion la referenciaA de )u& manera fue dic?o contactoA o si debe compensarse con una comisinA ser4a necesario reestructurar la base de datos para aCadir este tipo de modificaciones. (or el contrarioA en una B!""A el usuario puede aCadir una JsubclaseJ de la clase de clientes para manejar las modificaciones )ue representan los clientes por referencia. ;a subclase ?eredar> todos los atributosA caracter4sticas de la definicin ori3inalA adem>s se especiali=ar> en especificar los nue9os campos )ue se re)uieren as4 como los m&todos para manipular solamente estos campos. Eaturalmente se 3eneran los espacios para almacenar la informacin adicional de los nue9os campos. Esto presenta la 9entaja adicional )ue una B!"" puede ajustarse a usar siempre el espacio de los campos )ue son necesariosA eliminando espacio desperdiciado en re3istros con campos )ue nunca usan. ;a se3unda 9entaja de una B!""A es )ue manipula datos complejos en forma r>pida @ >3ilmente. ;a estructura de la base de datos est> dada por referencias o apuntadores l3icos# entre objetos. 2.13 Posi+les Des4enta,as

.l considerar la adopcin de la tecnolo34a orientada a objetosA la inmadure= del mercado de B!"" constitu@e una posible fuente de problemas por lo )ue debe anali=arse con detalle la presencia en el mercado del pro9eedor para adoptar su producto en una l4nea de produccin sustanti9a. (or esoA en este art4culo se propone )ue se eBplore esta tecnolo34a en un pro@ecto piloto. El se3undo problema es la falta de est>ndares en la industria orientada a objetos. 5in embar3oA el J<rupo ,anejador de "bjetosJ ",<#A es una or3ani=acin Internacional de pro9eedores de sistemas de informacin @ usuarios dedicada a promo9er est>ndares para el desarrollo de aplicaciones @ sistemas orientados a objetos en ambientes de cmputo en red. ;a implantacin de una nue9a tecnolo34a re)uiere )ue los usuarios iniciales acepten cierto ries3o. .)uellos )ue esperan resultados a corto pla=o @ con un costo reducido )uedar>n desilusionados. 5in embar3oA para a)uellos usuarios )ue planean a un futuro intermedio con una 9isin tecnol3ica a9an=adaA el uso de tecnolo34a a9an=adaA el uso de tecnolo34a orientada a objetosA paulatinamente compensar> todos los ries3os. 2.11 5endi*iento V ;as B!"" permiten )ue los objetos ?a3an referencia directamente a otro mediante apuntadores sua9es. Esto ?ace )ue las B!"" pasen m>s r>pido del objeto . al objeto B )ue las B!:A las cuales deben utili=ar comandos H"IE para lo3rar esto. Incluso el H"IE optimi=ado es m>s lento )ue un recorrido de los objetos. .s4A incluso sin al3una afinacin especialA una B!"" es en 3eneral m>s r>pida en esta mec>nica de ca=aapuntadores. V ;as B!"" ?acen )ue el a3rupamiento sea m>s eficiente. ;a ma@or4a de los sistemas de bases de datos permiten )ue el operador colo)ue cerca las estructuras relacionadas entre s4A en el espacio de almacenamiento en disco. Esto reduce en forma radical el tiempo de recuperacin de los datos relacionadosA puesto )ue todos los datos se leen con una lectura de disco en 9e= de 9arias. 5in embar3oA en una B!:A los objetos de la implantacin se traducen en representaciones tabulares )ue 3eneralmente se dispersan en 9arias tablas. .s4A en una B!:A estos ren3lones relacionados deben )uedar a3rupadosA de modo )ue todo el objeto se pueda recuperar mediante una Gnica lectura del disco. Esto es autom>tico en una B!"". .dem>sA el a3rupamiento de los datos relacionadosA como todas las subpartes de un ensambleA puede afectar radicalmente el rendimiento 3eneral de una aplicacin. Esto es relati9amente directo en una B!""A puesto )ue representa el primer ni9el de a3rupamiento. (or el contrarioA el a3rupamiento f4sico es imposible en una B!:A puesto )ue esto re)uiere un se3undo ni9el de a3rupamiento: un ni9el para a3rupar las ?ileras )ue representan a los objetos indi9iduales @ un se3undo para los 3rupos de ?ileras )ue representan a los objetos relacionados. 2.12 Caracter.sticas *andatorias ' re-las de oro +n sistema de B!"" debe satisfacer dos criterios: Q !ebe tener un B!,5 Q !ebe ser un sistema "" (or ejemplo: para la eBtensin posible este debe ser consistente en los actuales cortes de len3uajes de pro3ramacin ""

El primer criterio se traduce en - caracter4sticas como son: (ersistenciaA ,anejador de almacenamiento secundarioA ConcurrenciaA :ecuperacinA @ Dacilidad de %uer@A ;a 5e3unda se traduce en 2 caracter4sticas: "bjetos ComplejosA Identidad del objetoA EncapsulacinA 1ipos ClasesA 5obre paso con combinacin retrasadaA EBtensibilidad @ Completacin Computacional. 2.12.1 Mani iesto de siste*a de -esti'n de BDOO Esta publicacin intenta definir un sistema de B!"" @ describe las principales caracter4sticas. Femos separado estas caracter4sticas en 3 3rupos: W ,andatorias.- 5on las )ue el 5istema debe satisfacer a orden de tener un sistema de B!"" @ estos son: "bjetos complejosA Identidad de objetosA EncapsulacinA 1ipos ClasesA 5obre paso combinado con unin retardadaA EBtensibilidadA Completacin ComputacionalA (ersistencia @ ,anejador de almacenamiento secundarioA ConcurrenciaA :ecuperacin @ Dacilidad de %uer@. W "pcional.- 5on las )ue pueden ser aCadidas para ?acer el sistema mejor pero )ue no son ,andatorias estas son de: ?erencia mGltipleA c?e)ueo de tipos e inferencia distribucin @ diseCo de transacciones @ 9ersiones. W .biertas.- 5on los puntos donde el diseCador puede ?acer un nGmero de opciones @ estas son el paradi3ma de la pro3ramacin la representacin del sistema el tipo de sistema @ su uniformidad. Femos tomado una posicin no mu@ a la eBpectati9a para tener una palabra final m>s bien para pro9eer un punto de orientacin para un debate futuro. 2.12.2 Caracter.sticas o+li-atorias Este es un punto )ue no debe faltar en una B!. Q (redominancia combinada con enlace retardado.- 5e puede definir )ue sea EBcelA .utocadA etc. desde la pro3ramacin. Q EBtensibilidad.- (roporciona los tipos de datos como: CaracterA booleanoA 5trin3A etc. Q Concurrencia.- (ermite )ue 9arios usuarios ten3an acceso a una B! al mismo tiempo. Q :ecuperacin.- Cuando se ?ace una transaccin pero no se puede reali=ar @ se re3resa al mismo estado. Q Dacilidad de JConsultas a ,odoJ.- Esto es )ue se tienen diferentes est>ndares. 2.12.3 Caracter.sticas opcionales Esta depende del producto )ue se 9a@a a reali=ar. Q Ferencia ,Gltiple .- 1ienen caracter4sticas de padres diferentes @ proporcionan mecanismos para saber de 2 o m>s opciones cual con9iene. Q 8erificacin de tipos de inferencia - !istribucin.- %ue se puede tener parte de una B! en un ser9idor @ otra parte en otro. - 5istema de :epresentacin.- Dorma en como se presentan los es)uemas.

- +niformidad.- 1odo debe ser i3ual. !iseCo de 9entanasA etc. - .sociaciones @ Cardinalidad de .sociaciones.- Cardinalidad: 1:1 +no a +no#A1:, +no a ,uc?os#A,:1 ,uc?os a +no#A,:, ,uc?os a ,uc?os#. 2.12.4 Caracter.sticas a+iertas Es como si fuera una especiali=acin con cierta marca de soft6are. 2.12.! Caracter.sticas -enerales Q Control de Concurrencia - ,odo (esimista.- 1omo el dato no dejo )ue nadie lo tome para )ue no accesen al mismo dato. - ,odo "ptimista.- Es el )ue dice @o le saco una copia @ piensa nadie lo 9a a modificar. - ,odo ,iBto.- Combinacin del (esimista @ el "ptimista. - ,odo 5emioptimista.- 1oma las 9irtudes del "ptimista. 2.12.# 6os siste*as de BDOO te proporciona el +loqueo. Q Blo)ueos - Blo)ueos de ;ectura.- ;eer una dato @ )ue no )uieres )ue nadie lo modifi)ue mientras los estas usando. - Blo)ueos de Escritura.- Blo)uear el "bjeto mientras @o esto@ escribiendo nadie m>s puede escribir#. - Blo)ueos Eulos.- Es para 5incroni=acin. ejem. Jpapel "utJnotificacin de una impresora#. - Blo)ueos de Eotificacin.- Es para 5incroni=acin. ejem.Jpapel "utJ notificacin de una impresora#.

III.- Algunos ejemplos de la tecnologa orientada a objetos.


El objeti9o de este art4culo es presentar una de las l4neas de in9esti3acin en bases de datos sobre la )ue se est> trabajando en la +ni9ersidad de "9iedo. .ctualmente se est> desarrollando en esta +ni9ersidad un 5istema Inte3ral "rientado a "bjetos )ue inclu@e una m>)uina abstractaA sistema operati9oA compiladoresA bases de datosA interfaces de usuarioA subsistema 3r>ficoA subsistema multimediaA subsistema de comunicacionesA ?erramientas de an>lisisA diseCo @ desarrollo 9isual. !entro del campo de las bases de datos el objeti9o se centra en la construccin de un 5istema de 3estin de bases de datos orientados a objetos 5<B!""#A cu@as l4neas de desarrollo se muestran mu@ bre9emente en este art4culo. ;as bases de datos de objetos est>n diseCadas para simplificar la pro3ramacin orientada a objetos. .lmacenan los objetos directamente en la base de datosA @ emplean las mismas estructuras @ relaciones )ue los len3uajes de pro3ramacin orientados a objetos.

+n 5istema de <estin de Bases de !atos 5<B!# es un conjunto de datos relacionados entre s4 @ un 3rupo de pro3ramas para tener acceso a esos datos. +n 5istema de <estin de Bases de !atos "rientadas a "bjetos 5<B!""# se puede decir )ue es un 5<B! )ue almacena objetosA permitiendo concurrenciaA recuperacin. (ara los usuarios tradicionales de bases de datosA esto )uiere decir )ue pueden tratar directamente con objetosA no teniendo )ue ?acer la traduccin a re3istros o tablas. Di3.Eo.-# ;as bases de datos tradicionales almacenan slo datosA mientras )ue las bases de datos orientadas a objetos almacenan objetosA con una estructura arbitraria @ un comportamiento. +na simple met>fora Est?er !@son# a@uda a ilustrar la diferencia entre ambos modelos. Consideremos el problema de almacenar un coc?e en un 3araje al final del d4a. En un sistema de objetos el coc?e es un objetoA el 3araje es un objetoA @ ?a@ una operacin simple )ue es almacenar-coc?e-en-3araje. En un sistema relacionalA todos los datos deben ser traducidos a tablasA de esta forma el coc?e debe ser desarmadoA @ todos los pistones almacenados en una tablaA todas las ruedas en otraA etc. (or la maCanaA antes de irse a trabajar ?a@ )ue componer de nue9o el coc?e para poder conducir problema: al componer pie=as puede salir una moto en 9e= de un coc?e#. 3.1 Caracter.sticas de los /7BDOO +n 5<B!"" debe satisfacer dos criterios: 5er un sistema orientado a objetosA @ ser un sistema de 3estin de bases de datos. El primer criterio se traduce en oc?o caracter4sticas 3enerales XB""7*Y: abstraccinA encapsulacinA modularidadA jerar)u4aA control de tiposA concurrenciaA persistencia @ 3enericidad. El se3undo criterio se traduce en cinco caracter4sticas principales: persistenciaA concurrenciaA recuperacin ante fallos del sistemaA 3estin del almacenamiento secundario @ facilidad de consultas.

Di3. Eo./ Caracter4sticas de 5<B!"" Como se puede apreciar en el es)uema Di3.Eo./# la persistenciaA al i3ual )ue la concurrencia son caracter4sticas del 5<B!"" ?eredadas tanto del 5<B! como del modelo de objetos. ;a persistencia en el caso del 5<B! ?ace referencia a la conser9acin de los datos despu&s de la finali=acin del proceso )ue los cre. En el caso del modelo de objetosA se refiere no slo a la conser9acin del estado de un objetoA si no tambi&n a la conser9acin de la claseA )ue debe trascender a cual)uier pro3rama indi9idualA de forma )ue todos los pro3ramas interpreten de la misma manera el estado almacenado. ;a concurrencia ?eredada del 5<B! se refiere a la capacidad del sistema para 3estionar a mGltiples usuarios interactuando concurrentemente sobre el mismoA mientras )ue la concurrencia ?eredada del modelo de objetos ?ace referencia a la capacidad de distin3uir a un objeto acti9o de otro )ue no lo est>. - (ersistencia Es la capacidad )ue tiene el pro3ramador para )ue sus datos se conser9en al finali=ar la ejecucin de un procesoA de forma )ue se puedan reutili=ar en otros procesos. - Concurrencia 5e relaciona con la eBistencia de muc?os usuarios interactuando concurrentemente en el sistema. Este debe controlar la interaccin entre las transacciones concurrentes para e9itar )ue se destru@a la consistencia de la base de datos. - :ecuperacin (roporcionar como m4nimo el mismo ni9el de recuperacin )ue los sistemas de bases de datos actuales. !e forma )ueA tanto en caso de fallo de ?ard6are como de fallo de soft6areA el sistema pueda retroceder ?asta un estado co?erente de los datos. - <estin del almacenamiento secundario Es soportada por un conjunto de mecanismos )ue no son 9isibles al usuarioA tales como 3estin de 4ndicesA a3rupacin de datosA seleccin del camino de accesoA optimi=acin de consultasA etc. Estos mecanismos e9itan )ue los pro3ramadores ten3an )ue escribir pro3ramas para mantener 4ndicesA asi3nar el almacenamiento en discoA o trasladar los datos entre el disco @ la memoria principalA cre>ndose de esta forma una independencia entre los ni9eles l3icos @ f4sicos del sistema. - Dacilidad de Consultas (ermitir al usuario ?acer cuestiones sencillas a la base de datos. Este tipo de consultas tienen como misin proporcionar la informacin solicitada por el usuario de una forma correcta @ r>pida. 3.2 Pri*er intento de &standari8aci'n9 ODM7:13 ;a ma@or limitacin de las bases de datos orientadas a objetos es la carencia de un est>ndar. "!,<-73 "bject-"riented !atabase ,ana3ement <roup# es un punto de partida mu@ importante para ello ..dopta una ar)uitectura )ue consta de un sistema de 3estin )ue soporta un len3uaje de bases de datos orientado a objetosA con una sintaBis similar a un len3uaje de pro3ramacin tambi&n orientado a objetos como puede ser CPP o 5malltalN. El len3uaje de bases de datos es especificado mediante un len3uaje de definicin de datos "!;#A un len3uaje de manipulacin de datos ",;#A @ un len3uaje de consulta "%;#A siendo todos ellos portables a otros sistemas con el fin de conse3uir la portabilidad de la aplicacin completa.

En definiti9aA "!,<-73 intenta definir un 5<B!"" )ue inte3re las capacidades de las bases de datos con las capacidades de los len3uajes de pro3ramacinA de forma )ue los objetos de la base de datos apare=can como objetos del len3uaje de pro3ramacinA intentando de esta manera eliminar la falta de correspondencia eBistente entre los sistemas de tipos de ambos len3uajes .El 5<B!"" eBtiende el len3uaje con persistenciaA concurrenciaA recuperacin de datosA consultas asociati9asA etc. 3.2.1 6en-ua,e OD6 El len3uaje de definicin de datos "!;# en un 5<B!"" es empleado facilitar la portabilidad de los es)uemas de las bases de datos. Este "!; no es un len3uaje de pro3ramacin completoA define las propiedades @ los prototipos de las operaciones de los tiposA pero no los m&todos )ue implementan esas operaciones.

Di3.Eo.0#.:epresentacin 3r>fica de un es)uema de una base de datos. El "!; intenta definir tipos )ue puedan implementarse en di9ersos len3uajes de pro3ramacinI no est> por tanto li3ado a la sintaBis concreta de un len3uaje de pro3ramacin particular. !e esta forma un es)uema especificado en "!; puede ser soportado por cual)uier 5<B!"" )ue sea compatible con "!,<-73. ;a sintaBis de "!; es una eBtensin de la del I!; Interface !efinition ;an3ua3e# desarrollado por ",< como parte de C":B. Common "bject :e)uest BroNer .rc?itecture#. . continuacin se 9a a eBponer un bre9e ejemplo XC.17*Y de definicin de un interfa= mediante el len3uaje de definicin "!;#. El interfa= representado corresponde al tipo 5eccin de la Di3.Eo.0. 5eccin de interface secciones de la9e eBtensas esSseccionSdeA numero#Kattribute 5trin3 numeroI relations?ip (rofesor Es asesorada por in9erse (rofesor:: EnseCaI relations?ip (. 1iene (. in9erse (.::.sisteIrelations?ip Curso Es seccin de in9erse

Curso::1ieneSseccionesILI ;a traduccin "!;-CPPA por ejemploA se eBpresar> como una librer4a de clases @ una eBtensin a la 3ram>tica est>ndar de CPP. ;a librer4a de clases proporcionar> clases @ funciones para implementar los conceptos definidos en el modelo de objetosA @ la eBtensin consistir> en un conjunto de palabras reser9adas @ su sintaBis asociadaA )ue se aCadir>n a la declaracin de clases de CPP para proporcionar un soporte declarati9o para las interrelaciones. 3.2.2 6en-ua,e OM6 El len3uaje de manipulacin es empleado para la elaboracin de pro3ramas )ue permitan crearA modificar @ borrar datos )ue constitu@en la base de datos. "!,<-73 su3iere )ue este len3uaje sea la eBtensin de un len3uaje de pro3ramacinA de forma )ue se pueden reali=ar entre otras las si3uientes operaciones sobre la base de datos: CreacinA BorradoA ,odificacin e Identificacin de un objeto 3.2.3 6en-ua,e OQ6 El len3uaje de consulta propuesto por "!,<-73A presenta las si3uientes caracter4sticas V Eo es computacionalmente completo. 5in embar3oA las consultas pueden in9ocar m&todosA e in9ersamente los m&todos escritos en cual)uier len3uaje de pro3ramacin pueden incluir consultas. V 1iene una sintaBis abstracta. V 5u sem>ntica formal puede definirse f>cilmente. V (roporciona un acceso declarati9o a los objetos. V 5e basa en el modelo de objetos de "!,<-73. V 1iene una sintaBis concreta al estilo 5%;A pero puede cambiarse con facilidad. V (uede optimi=arse f>cilmente. V Eo proporciona operadores eBpl4citos para la modificacinA se basa en las operaciones definidas sobre los objetos para ese fin. V (roporciona primiti9as de alto ni9el para tratar con conjuntos de objetosA pero no restrin3e su utili=acin con otros constructores de colecciones. EBisten dos posibilidades para asociar un sublen3uaje de consulta a un len3uaje de pro3ramacin: fuerte @ d&bilmente. - El primer caso consiste en una eBtensin de la 3ram>tica del len3uaje asociado. - En el se3undo casoA las funciones )uer@ tienen unos ar3umentos 5trin3 )ue contienen las pre3untas.

3.3 Qu es BDO4iedo3? B!"9iedo3 es el 5istema de <estin de Bases de !atos "rientadas a "bjetos para "9iedo3. El objeti9o final es la construccin de un sistema de 3estin de bases de datos orientadas a objetos )ue estar> inte3rado con una m>)uina abstracta persistente @ un sistema operati9oA ambos totalmente orientados a objetos. 5e describen en este art4culo las ?iptesis de trabajo as4 como los mdulos principales en los )ue se ?a estructurado este sistema de 3estin de bases de datosA llamado B!"9iedo3A para su desarrolloA tratando m>s detalladamente a)uellos en los )ue se est> trabajando actualmente. 3.3.1 Pala+ras Cla4e "rientacin a objetosA m>)uina abstractaA 5<B!""A persistenciaA consultaA transaccinA 4ndice. ;os sistemas de 3estin de bases de datos orientadas a objetos 5<B!""# deben su aparicin principalmente al sur3imiento de nue9os tipos de aplicaciones para las )ue la representacin tabular del modelo relacional se ?ac4a insuficiente. El modelo de objetos representa mejor la sem>ntica @ el contenido de la nue9a informacin a almacenar.

3.4 Pro-ra*aci'n Modular En la pro3ramacin modularA los procedimientos con una funcionalidad comGn son a3rupados en mdulos separados. +n pro3rama por consi3uienteA @a no consiste solamente de una seccin. .?ora est> di9idido en 9arias secciones m>s pe)ueCas )ue interactGan a tra9&s de llamadas a procedimientos @ )ue inte3ran el pro3rama en su totalidad. Di3. Eo.2#.

Di3ura Eo.2#: (ro3ramacin ,odular. El pro3rama principal coordina las llamadas a procedimientos en mdulos separados @ pasa los datos apropiados en forma de par>metros. Cada mdulo puede contener sus propios datos. Esto permite )ue cada mdulo maneje un estado interno )ue es modificado por las llamadas a procedimientos de ese mdulo. 5in embar3oA solamente ?a@ un estado por mdulo @ cada mdulo eBiste cuando m>s una 9e= en todo el pro3rama. 3.! O+,eti4os El desarrollo del 5<B!"" B!"9iedo3 tiene como finalidad principal la 9erificacin de las ?iptesis )ue se plantean a continuacin: Q !esarrollo m>s sencillo del propio 5<B!"". Esto parece l3ico @a )ue al3unas de las funciones )ue deber4a implementar el 5<B! ej. (ersistencia# @a est>n disponibles dentro del propio sistema operati9o. .l tratarse de un sistema inte3ral orientado a objetosA se obtienen las 9entajas de la orientacin a objetos: as4 por ejemploA es posible reutili=ar el cdi3o de persistencia @a eBistenteA o eBtenderlo aCadiendo Gnicamente la funcionalidad adicional necesaria para el 5<B!"". Esta funcionalidad puede proporcionarse mediante un motor de base de datos adecuado )ue complemente las caracter4sticas proporcionadas por el sistema operati9o. Q ,a@or inte3racin en el sistema. Es decirA los objetos de la base de datos son simplemente unos objetos m>s dentro de los objetos del sistema operati9o )ue proporcionan ser9icios. Es m>sA puede pensarse en el 5<B!"" como el elemento )ue cumpla el papel de los sistemas de fic?eros en los sistemas operati9os tradicionales. El 5<B!"" no ser4a utili=ado como un sistema independiente del sistema operati9oA si no )ue el usuario podr4a utili=arlo como sistema de 3estin de los objetos del sistema operati9oA ?aciendo consulta sobre los mismos.

Q ,a@or rendimiento. !ado )ue el propio sistema inte3ral @a es orientado a objetosA no eBiste la necesidad de desarrollar capas superpuestas a un sistema operati9o tradicional para sal9ar el espacio eBistente entre el paradi3ma del sistema operati9o @ el de la base de datos. Q ,a@or producti9idad. ;a pro3ramacin de aplicaciones de bases de datos es m>s producti9a @a )ue no es necesario )ue el pro3ramador cambie constantemente de filosof4as: una para trabajar con la base de datos @ otra para manejar el sistema operati9o. .mbos elementos utili=an a?ora el mismo paradi3ma de orientacin a objetos. 3.# Otros aspectos a destacar Es un 5<B!"" )ue se constru@e sobre una m>)uina abstracta persistente totalmente orientada a objetos. El ?ec?o de basarse en una m>)uina abstracta permite )ue cual)uier aplicacin sobre este 5<B!"" sea portable a cual)uier plataformaA sin necesidad ob9iamente de sibreescribir el cdi3o. El 5<B!"" ?a de ser confi3urable @ modularA de forma )ue permita la eleccin del mecanismo de indeBacinA de la estrate3ia de estimacin de costosA etc. .un)ue inicialmente el primer prototipo se implemente con una t&cnica de indeBacin o con una estrate3ia de estimacin de costos concretaA eso no impide )ue se puedan ir incorporando a dic?o sistema nue9as t&cnicas @a eBistentes o al3unas inno9adorasA de forma )ue se puedan reali=ar comparati9as para 9er cual de ellas se comporta mejor @ en )ue situaciones. 3.$ %ra+a,os relacionados En la actualidad eBisten sistemas de 3estin de bases de datos orientadas a objetos as4 como simples 3estores de almacenamiento persistenteA tanto a ni9el comercial como a ni9el de in9esti3acin en pro@ectos reali=ados por diferentes uni9ersidades. ;o )ue no se ?an encontrado son 5<B!"" inte3rados con m>)uinas abstractas persistentes @ sistemas operati9os orientados a objetos. . continuacin se eBponen bre9emente las caracter4sticas de al3unos de los sistemas encontrados. 5?ore X5?ore 70Y es un sistema persistente de objetosA sucesor de EBodusA )ue est> siendo desarrollado en la +ni9ersidad de Zisconsin en +5.. :epresenta una me=cla entre las tecnolo34as de bases de datos orientadas a objetos @ los sistemas de fic?eros En 5?ore todo dato persistente es un objetoA @ todo objeto tiene una identidad especificada por un identificador de objeto Gnico. 1odos los datos persistentes son descritos mediante el len3uaje 5!; 5?ore !ata ;an3ua3e# parecido al "!; propuesto por "!,<. 5?ore permite el control de la concurrenciaA la recuperacin de ca4dasA el manejo de transacciones @ las consultas optimi=adas sobre ciertos tipos. .dem>sA implementa un espacio de nombresA un modelo de control de acceso similar a los de +niBA @ los ser9icios tradicionales de toda base de datos como el acceso asociati9o a los datosA la indeBacin @ el a3rupamiento. 1eBas X5in3?al 72Y es un sistema de almacenamiento persistente orientado a objetos desarrollado en la +ni9ersidad de 1eBas en .ustin. Fa sido implementado como una librer4a de CPPA de tal manera )ue cual)uier aplicacin enla=ada con dic?a librer4a

podr> crear @ manipular tanto objetos persistentes como transitorios. .l i3ual )ue la base de datos orientada a objetos comercial "bject5tore emplea un mecanismo de traduccin de punteros pointer s6i==lin3# cuando se produce el fallo de p>3ina. ;os objetos almacenan las referencias a otros objetos como identificadores de objetos persistentes sobre discoA pero cuando se trae una p>3ina a memoria todas las referencias sobre esa p>3ina son traducidas a punteros en memoria 9irtual. 1odo esto es reali=ado de una forma transparente al pro3rama clienteA @ una 9e= )ue las referencias a los objetos ?an sido traducidasA los pro3ramas clientes pueden acceder r>pidamente a los objetos en memoria. 1?or X1?or 70Y es un sistema de base de datos distribuido orientado a objetos desarrollado en el Instituto 1ecnol3ico de ,assac?usetts. (roporciona un sistema de almacenamiento persistente de objetosA permitiendo el acceso a los mismos mediante transacciones. En 1?or un objeto se con9ierte en persistente cuando es alcan=ado por el objeto ra4=. ;a ar)uitectura de 1?or se or3ani=a en torno a un repositorio de objetos residente en el ser9idor @ a unos pares front-end/cliente almacenados en los clientes. ;os procesos front-end son los )ue ?acen las 9eces de intermediarios entre el pro3rama cliente @ el repositorio de objetos. .dem>sA en el cliente para cada len3uaje soportado se proporciona una librer4a de cdi3o )ue implementa la interfa= entre el cliente @ el frontend. ;os objetos dentro de 1?or se especifican e implementan usando un nue9o len3uaje procedural de pro3ramacin llamado 1?eta. Este len3uaje es orientado a objetosA eBtensible @ fuertemente tipadoA permitiendo tanto la especificacin de la interfa= de un tipo como la implementacin del mismo 3.( /iste*a de -esti'n de BD en O2)&DO3 Oviedo3 es un Sistema Orientado a Objetos Integral que incluye mquina abstracta, sistema operativo, compiladores, bases de datos, interfaces de usuario, subsistema grfico, subsistema multimedia, subsistema de comunicaciones, herramientas de anlisis, diseo y desarrollo visual. as caracter!sticas fundamentales en las que se basa el modelo de objetos que impregna a Oviedo3 son las siguientes" #bstracci$n e Identidad de los objetos, %ncapsulaci$n, &erencia, 'olimorfismo, (oncurrencia y 'ersistencia. %ste modelo de objetos est soportado por la mquina abstracta (#)*#+O,I# que es nuestro -microprocesador- y su lenguaje mquina se denomina (#)*#+.,. a caracter!stica principal de esta mquina es que tan s$lo tiene objetos y todas las operaciones son sobre objetos. %l sistema Oviedo3 tiene su propio sistema operativo orientado a objetos que reali/a toda la gesti$n del sistema y da soporte al resto de las aplicaciones.

3.(.1 &l siste*a operati4o orientado a o+,etos $%u& es 50*' 50* es la denominacin dada al sistema operati9o )ue sir9e de base al sistema "9iedo3A @ por tantoA )ue se ejecuta sobre la m>)uina abstracta Carba@onia. 5us si3las son 5istema "perati9o para "9iedo3 "9iedo "rientado a "bjetos#. ;a caracter4stica fundamental )ue se busca en este sistema operati9o es )ue ofre=ca al

eBterior un entorno formado Gnica @ eBclusi9amente por objetos situados en un espacio de objetos potencialmente infinito en el )ue slo eBiste un conceptoA el concepto de objeto )ue eBiste indefinidamente @ )ue sir9e operaciones cuando otros se lo pidan utili=ando los mensajes como medio de comunicacin. !esaparecen por completo en este sistema operati9o conceptos como el de espacio de direcciones @ el de proceso. En cuanto al primeroA dado )ue el Gnico concepto soportado es el de objetoA podr4a decirse )ue &stos inte3ran el espacio de direcciones necesario para almacenar su informacin. En cuanto al se3undoA desaparece como tal por)ue el flujo de ejecucin 9a asociado a cada objeto. En esteJ sentido se consideran los objetos Jacti9osJA cuando se in9oca un m&todo de un objeto es &ste el )ue se acti9a @ se procede a ejecutar la parte del cdi3o correspondienteA teniendo en cuenta )ue esta ejecucin depende eBclusi9amente del propio objeto. El sistema operati9o trabaja a ni9el de objetos @ reali=a funciones en base a este concepto. (or esta ra=nA las tareas )ue reali=a son claramente diferentes a las efectuadas por un sistema operati9o cl>sico 3estin de procesosA memoriaA e/sA fic?erosA etc.#. (or otra parteA ?a@ )ue tener en cuenta )ue &ste se ejecuta sobre la m>)uina abstracta orientada a objetos. ;as tareas )ue tiene asi3nadas 50* son b>sicamenteA la 3estin de la se3uridadA la persistenciaA la concurrencia @ la distribucinA )ue se 9er>n posteriormente con al3o m>s de detalle. 3.(.2 Modelo de o+,etos de /34 ;as l4neas maestras )ue 3u4an el diseCo del sistema operati9o son: [ ,odelo de objetos intencionadamente est>ndarA con las caracter4sticas m>s comunes de los len3uajes de pro3ramacin m>s eBtendidos: encapsulacinA ?erencia @ polimorfismo. - ,odo de trabajo eBclusi9amente 00: la Gnica entidad )ue se soporta es el objetoA )ue puede crear clases )ue ?ereden de otrasA crear objetos de una clase @ en9iar mensajes a otros objetos. - 5implicidad: ,antenerse lo m>s fieles posible a las l4neas anterioresA buscando la m>Bima sencille=. .l3unas caracter4sticas importantes )ue se desean los objetos en consonancia con las l4neas anteriores son: - .bstraccin Gnica. ;a Gnica entidad eBistente en el sistema es el objetoA sea cual sea su 3ranularidad. - "bjetos ?omo3&neos. 1odos los objetos tienen la misma consideracinA no ?a@ objetos especiales )ue reciban un trato distinto. ;os objetos propios del 5" no son diferentes del resto de objetos de usuario. - 1ransparencia. ;os objetos deben ser ajenos a la eBistencia de mecanismos del 5" )ue permiten conse3uir caracter4sticas como persistenciaA en94o de mensajesA distribucinA etc. - "bjetos autocontenidos. ;os objetos deben tener un alto 3rado de autonom4aA @ su comportamiento no debe depender de otros objetos. 1oda la informacin acerca del

objeto est> encapsulada en el mismo. Esto facilita la consecucin con transparencia de objeti9os como la persistenciaA la distribucinA etc. Esto decanta el modelo de objetos a un modelo de objetos acti9oA en el )ue el objeto encapsula su computacin. - ;a informacin acerca del objeto est> encapsulada en el mismo. Esto facilita la consecucin con transparencia de objeti9os como la persistenciaA la distribucinA etc. Esto decanta el modelo de objetos a un modelo de objetos acti9oA en el )ue el objeto encapsula su computacin - Dinalidad ?a de soportar @ facilitar la definicin de operadores de comparacin definidos por el usuario - El sistema ?a de permitir la seleccin del es)uema en funcin del tipo de dato cu@o acceso pretende acelerarse. 3.1 BDO4iedo3 aplica el est;ndar El 5<B!"" B!"9iedo3 e9identemente necesitar> len3uajes de bases de datos. Inicialmente los len3uajes adoptados para el sistema se3uir>nA al menos en lo posibleA el est>ndar propuesto por "!,< 2.0. +na 9e= fijado el est>ndar a se3uir ?a@ )ue tener en cuenta las si3uientes consideraciones: Q Es necesario seleccionar el len3uaje de pro3ramacin orientado a objetos# )ue se tomar> como base para los len3uajes de bases de datos "!;A ",; @ "%;# anteriormente mencionados. Este len3uaje puede ser CPPA Ha9aA etc.A pero tambi&n puede apro9ec?arse un len3uaje CPP "9iedo3# )ue @a ?a sido diseCado dentro de "9iedo3 @ cu@o cdi3o objeto una 9e= compilado es el len3uaje de la m>)uina abstracta Carba@n#. Q El len3uaje de manipulacin para B!"9iedo3 se conse3uir> ampliando el len3uaje CPP "9iedo3 para )ue proporcione las funcionalidades para la definicin de transaccionesA consultasA etc. Cual)uier pro3rama de manipulacin implementado con este len3uaje debe 3enerar al ser compilado como cdi3o objeto Carba@n. Q 5er> necesario traducir las especificaciones reali=adas en "!; @ "%;A bien al len3uaje intermedio CPP de "9iedo3 )ue despu&s se compilar> @ 3enerar> Carba@n#A o bien directamente al len3uaje de la m>)uina abstracta. En el primer prototipo )ue se est> constru@endo se 3enera directamente Carba@n. Q El cdi3o objeto ser> enla=ado con el motor de base de datos de "9iedo3 para obtener todas las funcionalidades del 5<B!. Q Cuando se anali=a el es)uema propuesto por "!,< se obser9a )ue mientras )ue "!; @ "%; parece )ue pueden ser f>cilmente comprendidos @/o empleados por cual)uier pro3ramador de la base de datos no ocurre lo mismo con el len3uaje de manipulacin. .un)ue se parte del ?ec?o de )ue el pro3ramador del 5<B! tiene )ue conocer el len3uaje de pro3ramacin seleccionado como baseA se considera )ue el ni9el de conocimiento eBi3ido puede resultar eBcesi9o. Es por eso )ue aun)ue en principio en B!"9iedo3 se parte de los len3uajes propuestos por "!,< en una fase m>s a9an=ada se puede considerar el diseCo de un nue9o len3uaje )ue inte3re las capacidades de los len3uajes de pro3ramacin con los de bases de datosA estableciendo entre ambos una coneBin naturalA de forma )ue el manejo de la

base de datos no supon3a un esfuer=o eBcesi9amente 3rande para el usuario. En resumenA el sistema B!"9iedo3 es un 5<B!"" )ue se enmarca dentro del sistema inte3ral orientado a objetos "9iedo3. 5u construccin se ?a modulari=ado en prototipos. El primer prototipoA sobre el )ue se est> trabajando actualmenteA inclu@e un motor de base de datosA or3ani=ado a modo de jerar)u4a de clases )ue permite la manipulacin de la base de datos @ el procesamiento de las consultas a@ud>ndose para ello de un mecanismo de indeBacin confi3urable. !ic?o prototipo permitir> la 3estin de un repositorio de objetosA as4 como de un cat>lo3o dnde se re3istren todas las clases definidas en el es)uema. ;os len3uajes de base de datos se3uir>n b>sicamente el est>ndar "!,< 2.0. El campo para futuras l4neas de in9esti3acin nue9os prototipos# es mu@ 9ariado: transaccionesA 9ersionadoA e9olucin de es)uemasA mejoras en la 3estin del almacenamiento mediante t&cnicas de a3rupamiento de datosA etc. 3.13 /ituaci'n del /7BDOO en O2)&DO3 ;a ideal inicial de este subpro@ecto dentro del (ro@ecto "9iedo3 es la construccin de un 5<B!"" Di3.Eo.7# )ue est& totalmente inte3rado con las caracter4sticas de la m>)uina abstracta @ del sistema operati9o de la mismaA apro9ec?ando al m>Bimo las posibilidades )ue ofrecen.

Di3.Eo.7# Idea Inicial del (ro@ecto "9iedoo3 3.11 Prototipo ) El primer paso en el desarrollo de este prototipo Di3Eo.10#A @ del sistema en 3eneralA consistir> en el diseCo del len3uaje de definicin de datos "!;#A el len3uaje de manipulacin de datos ",;# @ el len3uaje de consulta "%;#. Este diseCo intentar> se3uirA en la medida de lo posibleA las pautas impuestas por el est>ndar "!,<-73.

El paso si3uiente se basa en conocer el len3uaje de pro3ramacin )ue se 9a a emplear como base para los len3uajes de bases de datos anteriormente mencionados. 5e intentar> )ue estos len3uajes sean lo menos dependientes posible del len3uaje de pro3ramacin. En este primer prototipo Di3Eo.10# el len3uaje de pro3ramacin seleccionado ser> un CPP comercial. . continuacinA el si3uiente mdulo consistir> en la traduccin de estos len3uajes de bases de datos "!; @ ",;#A al len3uaje de pro3ramacin seleccionadoA en este caso CPPA de manera )ue el pro3rama objeto as4 obtenido se pueda compilar con un compilador comercialA para posteriormente disponer de todas las capacidades de los sistemas de 3estin de bases de datos mediante el JlinNadoJ enla=ado# con un motor de base de datos. En este casoA el motor de base de datos empleado es el de Borland B!E#. En el caso del len3uaje de consulta "%;#A en 9e= de un traductor se puede emplear un int&rprete a9an=ado de "%; Di3.Eo.10# )ue permita obtener las respuestas a las consultas de forma interacti9a. El JlinNadoJ enla=ado# con el motor de base de datos se reali=ar4a durante la construccin del int&rprete. (rototipo I

Di3.Eo.10# (rototipo I del 5<B!"" de "9iedo3 En esta primera fase se reali=a una traduccin de los objetos a tablasA @a )ue el motor de base de datos si3ue trabajando sobre un sistema operati9o tradicional orientado a fic?eros. Es decirA los datos al final estar>n almacenados en tablas del estilo !baseA (aradoBA %uattro (roA etc. Como se puede apreciarA en esta fase se emplear>n una serie de ?erramientas comerciales compilador de CPPA B!EA.. # )ue ser>n sustituidas en etapas posteriores por ?erramientas )ue tendr> el propio sistema "9iedo3A pero )ue

toda94a no est>n implementadas. 5e acude a estas ?erramientas comerciales en este prototipoA por)ue el objeti9o del mismo es a9an=ar en el diseCo @ prueba de los len3uajes de bases de datos mientras se constru@en el sistema operati9o @ la m>)uina abstracta de "9iedo3. 3.12 Prototipo )) ;os contenidos de este prototipo Di3Eo.11# son muc?o m>s ambiciososA @a )ue apro9ec?ar>n plenamente las caracter4sticas ofrecidas por la m>)uina abstracta @ por el sistema operati9o de "9iedo3. . pesar de estoA los mdulos a desarrollar se3uir>n siendo los mismosA pero con al3unas notables diferencias: Q En 9e= de utili=ar como len3uaje de pro3ramacin CPPA se emplear> otro len3uaje mu@ similarA pero dnde el cdi3o objeto )ue se 3enera al compilar un pro3rama con este len3uajeA es el len3uaje C.:B.M"E# de la m>)uina abstracta. Q ;os traductores @ el int&rprete para los len3uajes de definicinA de manipulacin @ de consultaA tendr>n )ue 3enerar un cdi3o objeto en este nue9o len3uajeA en 9e= de en el CPP comercial empleado en el prototipo anterior. Q El motor de base de datosA @a no ser> el B!E si no )ue ser> propio @ desarrollado en funcin de las caracter4sticas )ue nos proporcione el sistema operati9o. .)u4 ?abr> )ue prestar especial atencin a temas como la persistenciaA se3uridadA distribucinA concurrenciaA 3eneracin @ mantenimiento de 4ndicesA\ Q ;a informacinA es decirA los objetos se almacenar>n @a como tales al proporcionar el sistema operati9o la persistencia de los mismosA a diferencia del prototipo anterior en el )ue se almacenaban en tablas.

(rototipo II Di3.Eo.11# 3.13 Prototipo ))) Este prototipo Di3Eo.12# constitu@e una ampliacin del anteriorA cara a facilitar al usuario su trabajo con este sistema de 3estin de bases de datos. Con esta finalidad se ?a incorporado un nue9o componente Ferramientas 8isuales# a los @a eBistentes en el prototipo anterior. Este nue9o elemento puede descomponerse en dos mdulos principales. El primer mdulo consiste en un conjunto de ?erramientas 9isuales para el desarrolloA )ue permitir>n tanto definir el es)uema de la base de datosA como manipular o consultar los datos en ella almacenados de forma totalmente 9isual. El objeti9o de estas ?erramientas en este sistema es )ue la cantidad de cdi3o )ue ten3a )ue escribir el usuario sea la m4nima posible. El se3undo mdulo consiste en un conjunto de ?erramientas tambi&n 9isualesA )ue faciliten las tareas de administracin de la base de datosA del ser9idor @ de los usuarios. Este mdulo 9a a eBi3ir la eBistencia de un len3uaje de control )ue permita la proteccin de la base de datosA la restriccin de los accesos tanto a objetos como a m&todosA etc.

(rototipo III Di3. Eo. 12#

3.14 Qu 4iene despus de OO ;a orientacin del objeto es uno de los )ueridos de la tecnolo34a ?o@. ;a IB, est> inte3rando a3resi9amente tecnolo34a de "" en cada aspecto de su estrate3ia. +n ejemplo de esto es iniciati9a de IB,Os 5an Drancisco. Como sabemosA tecnolo34as du jour es los fenmenos ef4meros. 1an )u& 9iene despu&s de "". Esta sesin presentar> la 9ista de la tecnolo34a futura de un departamento principal del :]! de las ?erramientas de desarrollo de la aplicacin de "". !iscute el potencial @ las limitaciones pr>cticos de la tecnolo34a actual de "". (resenta una 9ista del potencial futuro de "" @ de las tecnolo34as posibles )ue cre=can fuera de "" de ?o@. Conclusiones En Conclusin sabemos )ue las B!"" representan el si3uiente paso en la e9olucin de las bases de datosA para soportar el .n>lisisA !iseCo @ (ro3ramacin "". ;as B!"" permiten el desarrollo @ mantenimiento de aplicaciones complejas con un costo 5i3nificati9amente menor. (ermiten )ue el mismo modelo conceptual se apli)ue al .n>lisisA diseCoA pro3ramacinA definicin @ acceso a la base de datos. Esto reduce el problema del operador de traduccin entre los diferentes modelos a tra9&s de todo el ciclo de 9ida. El modelo conceptual debe ser la base de las ?erramientas C.5E "" totalmente inte3radasA las cuales a@udan a 3enerar la estructura de datos @ los m&todos. ;as B!"" ofrecen un muc?o mejor rendimiento de la m>)uina )ue las bases de datos por relacinA para aplicaciones o clases con estructuras complejas de datos. 5in embar3oA ;as B!"" coeBistir>n con las bases de datos por relacin durante los prBimos aCosA puesto )ue a menudo se utili=ar> un modelo por relacin como una forma de estructura de datos dentro de una B!"". (odemos decir )ue en conclusin con el caso de "racle ?a aumentado la demanda de una representacin de objetos complejos en las actuales aplicaciones con9encionales. <;"5.:I" B!"": Bases de !atos "rientadas a "bjetos B!:: Bases de !atos por :elacin B;"B: "bjetos Binarios de <ran 1amaCo B!""7*: Bases de !atos orientados a "bjetos 7* C.!: !iseCo .sistido por Computadora C.E: In3enier4a .po@ada por computadora C":B.: Common "bject :e)uest BroNer .r)uitecture# E!1: Estacin de 1rabajo .-1:EE: +nico >rbol para todas las clases de Herar)u4a F-1:EE: +n >rbol para cada clase en la Herar)u4a ;!! !!;: ;en3uaje de definicin de !atos ;,! !,;: ;en3uaje de ,anejo de !atos ;"BO5: 1ales como 84deoA (ro3ramas Ejecutables etc. "": "rientacin a "bjetos "!;: Est>ndar de !efinicin de ;en3uaje de !atos ",<: <rupo ,anejador de "bjetos ",;: ;en3uaje de ,anipulacin de !atos "!,<: <estin ,anejadora de datos "bjeto

"%;: E)ui9alente al 5%; ;en3uaje de Consulta# 5%;: ;en3uaje de Consulta 5<B!: 5istema de <estin de Bases de !atos 5<B!"": 5istema de <estin de Bases de !atos "rientada a "bjeto 5": 5istema "perati9o BIB;I"<:.DI. ,art4nAHames. .Co. .n>lisis @ !iseCo "rientado a "bjetos.2da.Edicin (rentice Fall Interamericana.,&Bico (a3s.-1--7. Consultas por Internet : +ni9ersidad de "9iedo. !esarrollo de 5<B!"" en "9iedo3 666.+nio9i.es/^o9iedo3/belen/jindbd7/.?tml.//Eo9/1777 Bolet4n Inform>tico. (anorama de las !B"" ?ttp://666.uaemeB.mB/publica/informatia/boletin/panorama.?tml 3/Eo9/77 InfoseeN. J1rabajos relacionadosJ ?ttp://666.infoseeN.com 2//!ic/77 ,anifesto de .tNinson . J5istemas manejadores de bases de datos ""J ?ttp://666.cs.cmu.edu/afs/cs.cmu.edu/user/clamen/""!B,5/,anifesto/?t,anifesto/ ,anifesto.?tml10/!ic/77 W ZZZ.lifia.info.unlp.edu.ar/^luciod/obicour/3.?tm W ZZZ.unio9i.es/^o9iedo3/pruebas/a-frames.?tm W ZZZ.unio9i.es/^o9iedo3/belen/jin3soft7/.?tml W ZZZ.tienda.net/tec?/9isualfoBp.?tm W ZZZ.lml.ls.fi.upm.es/^jjamor/pfc/node22.?tml W ZZZ.atenea.lasalle.edu.co/^crojasm/oot101.?tml Mart<a &st<ela 5ui8 %i,erina ,:ui=_capufe.3ob.mB

http://www.elrinconcito.com/articulos/BaseD atos/BasesDatos.htm

You might also like