resumen de conceptos_final

20
“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema Resumen de Conceptos Examen Final (Especial) 1 BASES DE DATOS DISTRIBUIDAS Definición: Es una colección de datos (base de datos) construida sobre una red y que pertenecen, lógicamente, a un solo sistema distribuido, la cual cumple las siguientes condiciones: La información de la base de datos esta almacenada físicamente en diferentes sitios de la red. En cada sitio de la red, la parte de la información, se constituye como una base de datos en sí misma. Las bases de datos locales tienen sus propios usuarios locales, sus propios DBMS y programas para la administración de transacciones, y su propio administrador local de comunicación de datos. Estas base de datos locales deben de tener una extensión, que gestione las funciones de sociedad necesarias; la combinación de estos componentes con los sistemas de administración de base de datos locales, es lo que se conoce como Sistema Administrador de Base de Datos Distribuidas. Este gestor global permite que usuarios puedan acceder a los datos desde cualquier punto de la red, como si lo hicieran con los datos de su base de datos local, es decir, para el usuario, no debe existir diferencia en trabajar con datos locales o datos de otros sitios de la red. En consecuencia, la base de datos distribuida, es como una unidad virtual, cuyas partes se almacenan físicamente en varias bases de datos “reales” distintas, ubicadas en diferentes sitios. En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican entre sí a través de diversos medios de comunicación, tales como cables de alta velocidad o líneas telefónicas. No comparten la memoria principal ni el reloj. Los procesadores de un sistema distribuido pueden variar en cuanto su tamaño y función. Pueden incluir microcomputadores pequeños, estaciones de trabajo y sistemas de computadores grandes de aplicación general. Estos procesadores reciben diferentes nombres, tales como localidades, nodos o computadores. Un sistema distribuido de bases de datos consiste en un conjunto de localidades, cada uno de las cuales puede participar en la ejecución de transacciones que accedan a datos de una o varias localidades. La diferencia principal entre los sistemas de base de datos centralizados y distribuidos es que, en los primeros, los datos residen en una sola localidad, mientras que, en los últimos, se encuentran en varias localidades. Ejemplo de base de datos distribuida: Considere un banco que tiene tres sucursales, en cada sucursal, un ordenador controla las terminales de la misma y el sistema de cuentas. Cada computador con su sistema de cuentas local en cada sucursal constituye un "sitio" de la BDD; las computadoras están conectadas por la red. Durante las operaciones normales, las aplicaciones en las terminales de la sucursal necesitan sólo acceder la base de datos de la misma. Como sólo acceden a la misma red local, se les llaman aplicaciones locales. Desde el punto de vista tecnológico, aparentemente lo importante es la existencia de algunas transacciones que acceden a información en más de una sucursal. Estas transacciones son llamadas transacciones globales o transacciones distribuidas.

Upload: padilla-zambrana-dario

Post on 04-Jul-2015

147 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

1

BASES DE DATOS DISTRIBUIDAS Definición:

Es una colección de datos (base de datos) construida sobre una red y que pertenecen,

lógicamente, a un solo sistema distribuido, la cual cumple las siguientes condiciones:

• La información de la base de datos esta almacenada físicamente en diferentes sitios de la red.

• En cada sitio de la red, la parte de la información, se constituye como una base de datos en sí misma.

• Las bases de datos locales tienen sus propios usuarios locales, sus propios DBMS y programas para la

administración de transacciones, y su propio administrador local de comunicación de datos.

• Estas base de datos locales deben de tener una extensión, que gestione las funciones de sociedad

necesarias; la combinación de estos componentes con los sistemas de administración de base de

datos locales, es lo que se conoce como Sistema Administrador de Base de Datos Distribuidas.

• Este gestor global permite que usuarios puedan acceder a los datos desde cualquier punto de la red,

como si lo hicieran con los datos de su base de datos local, es decir, para el usuario, no debe existir

diferencia en trabajar con datos locales o datos de otros sitios de la red.

En consecuencia, la base de datos distribuida, es como una unidad virtual, cuyas partes se almacenan

físicamente en varias bases de datos “reales” distintas, ubicadas en diferentes sitios.

En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los

computadores de un sistema distribuido se comunican entre sí a través de diversos medios de

comunicación, tales como cables de alta velocidad o líneas telefónicas. No comparten la memoria principal

ni el reloj.

Los procesadores de un sistema distribuido pueden variar en cuanto su tamaño y función. Pueden incluir

microcomputadores pequeños, estaciones de trabajo y sistemas de computadores grandes de aplicación

general. Estos procesadores reciben diferentes nombres, tales como localidades, nodos o computadores.

Un sistema distribuido de bases de datos consiste en un conjunto de localidades, cada uno de las cuales

puede participar en la ejecución de transacciones que accedan a datos de una o varias localidades. La

diferencia principal entre los sistemas de base de datos centralizados y distribuidos es que, en los primeros,

los datos residen en una sola localidad, mientras que, en los últimos, se encuentran en varias localidades.

Ejemplo de base de datos distribuida:

Considere un banco que tiene tres sucursales, en cada sucursal, un ordenador controla las terminales de

la misma y el sistema de cuentas. Cada computador con su sistema de cuentas local en cada sucursal

constituye un "sitio" de la BDD; las computadoras están conectadas por la red. Durante las operaciones

normales, las aplicaciones en las terminales de la sucursal necesitan sólo acceder la base de datos de la

misma. Como sólo acceden a la misma red local, se les llaman aplicaciones locales.

Desde el punto de vista tecnológico, aparentemente lo importante es la existencia de algunas

transacciones que acceden a información en más de una sucursal. Estas transacciones son llamadas

transacciones globales o transacciones distribuidas.

Page 2: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

2

La existencia de transacciones globales será considerada como una característica que nos ayude a

discriminar entre las BDD y un conjunto de base de datos locales.

Una típica transacción global sería una transferencia de fondos de una sucursal a otra. Esta aplicación

requiere de actualizar datos en dos diferentes sucursales y asegurarse de la real actualización en ambos

sitios o en ninguno. Asegurar el buen funcionamiento de aplicaciones globales es una tarea difícil.

Ventajas de las Base de Datos Distribuidas • Descentralización.- En un sistema centralizado/distribuido, existe un administrador que controla

toda la base de datos, por el contrario en un sistema distribuido existe un administrador global que

lleva una política general y delega algunas funciones a administradores de cada localidad para que

establezcan políticas locales y así un trabajo eficiente.

• Economía: Existen dos aspectos a tener en cuenta.

o El primero son los costes de comunicación; si las bases de datos están muy dispersas y las

aplicaciones hacen amplio uso de los datos puede resultar más económico dividir la aplicación y

realizarla localmente.

o El segundo aspecto es que cuesta menos crear un sistema de pequeños ordenadores con la

misma potencia que un único ordenador.

• Mejora de rendimiento: Pues los datos serán almacenados y usados donde son generados, lo cual

permitirá distribuir la complejidad del sistema en los diferentes sitios de la red, optimizando la labor.

• Mejora de fiabilidad y disponibilidad: La falla de uno o varios lugares o el de un enlace de

comunicación no implica la inoperatividad total del sistema, incluso si tenemos datos duplicados

puede que exista una disponibilidad total de los servicios.

• Crecimiento: Es más fácil acomodar el incremento del tamaño en un sistema distribuido, por que la

expansión se lleva a cabo añadiendo poder de procesamiento y almacenamiento en la red, al añadir

un nuevo nodo.

• Flexibilidad: Permite acceso local y remoto de forma transparente.

• Disponibilidad: Pueden estar los datos duplicados con lo que varias personas pueden acceder

simultáneamente de forma eficiente. El inconveniente, el sistema administrador de base de datos

debe preocuparse de la consistencia de los mismos.

• Control de Concurrencia: El sistema administrador de base de datos local se encarga de manejar

la concurrencia de manera eficiente.

Inconvenientes de las base de datos distribuidas. • El rendimiento que es una ventaja podría verse contradicho, por la naturaleza de la carga de trabajo,

pues un nodo puede verse abrumado, por las estrategias utilizadas de concurrencia y de fallos, y el

acceso local a los datos. Se puede dar esta situación cuando la carga de trabajo requiere un gran

número de actualizaciones concurrentes sobre datos duplicados y que deben estar distribuidos.

Page 3: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

3

• La confiabilidad de los sistemas distribuidos, esta entre dicha, puesto que, en este tipo de base de

datos existen muchos factores a tomar en cuanta como: La confiabilidad de los ordenadores, de la red,

del sistema de gestión de base de datos distribuida, de las transacciones y de las tazas de error de la

carga de trabajo.

• La mayor complejidad, juega en contra de este tipo de sistemas, pues muchas veces se traduce en

altos gastos de construcción y mantenimiento. Esto se da por la gran cantidad de componentes

Hardware, muchas cosas que aprender, y muchas aplicaciones susceptibles de fallar. Por ejemplo, el

control de concurrencia y recuperación de fallos, requiere de personal muy especializado y por tal

costoso.

• El procesamiento de base de datos distribuida es difícil de controlar, pues estos procesos muchas

veces se llevan a cabo en las áreas de trabajo de los usuarios, e incluso el acceso físico no es

controlado, lo que genera una falta de seguridad de los datos.

Desarrollo WEB

Caso particular de los sistemas Cliente-Servidor con representación remota. En donde se dispone

de un protocolo estándar: HTTP y un Middleware denominado WebServer. En la actualidad la aplicación de

sistemas informáticos basados en Internet, es una herramienta fundamental para las organizaciones que

desean tener cierta presencia competitiva.

Tecnologías de la lógica de la aplicación en el servidor web: a. CGI: Common Gateware Interface..- Son programas que se ejecutan en el servidor, pueden

servir como pasarela con una aplicación o base de datos o para generar documentos html de

forma automática. Cada petición http ejecuta un proceso, el cual analiza la solicitud y genera un

resultado. Son independientes del SO, y presentan la ventaja de que, dado un programa escrito

en un lenguaje cualquiera, es fácil adaptarlo a un CGI. Entre los lenguajes que se usan para CGIs,

el más popular es el Perl. b. Servlets: Pequeños programas en Java que se ejecutan de forma persistente en el servidor, y

que, por lo tanto, tienen una activación muy rápida, y una forma más simple de hacerlo. Estos

programas procesan una petición y generan la página de respuesta. c. ASP (Active Server Pages): Una página ASP es un fichero de sólo texto que contiene las

secuencias de comandos, junto con el HTML necesario, y que se guarda con la extensión “.asp”. Al ser llamado por el navegador, el motor ASP del IIS (Internet Information Server) se

encarga automáticamente de ejecutarlo como se suele hacer con un programa cualquiera, pero

cuya salida siempre será a través del navegador que le invoca. Es un entorno propietario de

Microsoft y el lenguaje de secuencia de comandos predeterminado del IIS es el VBScript, aunque

puede cambiarse. d. JSP (Java Server Pages), que consisten en pequeños trozos de código en Java que se insertan

dentro de páginas web, de forma análoga a los ASPs. Ambas opciones, hoy en día, son muy

populares en sitios de comercio electrónico. Frente a los ASPs, la ventaja que presentan es que

son independientes del sistema operativo y del procesador de la máquina. e. PHP es un lenguaje cuyos programas se insertan también dentro de las páginas web, al igual

que los ASPs y JSPs; es mucho más simple de usar, y el acceso a bases de datos desde él es

Page 4: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

4

muy simple. Es tremendamente popular en sitios de comercio electrónico con poco tráfico, por su

facilidad de desarrollo y rapidez de implantación. Consideraciones a tomar en el desarrollo de un sistema WEB a. Separar la lógica de la aplicación de la interfase de usuario. b. Utilizar métodos estándar de comunicación entre la lógica de aplicación y la interfase de usuario. c. Herramientas que permitan una fácil adaptación de las aplicaciones a los nuevos dispositivos que

irán apareciendo. d. Definir el coste en comunicaciones que debe asumir la organización. e. Tener en cuenta los procesos de réplica, periodicidad y el ancho de banda que consuman. f. Replantear la idoneidad de la ubicación de cada proceso. g. Extremar las pruebas al diseñar e implementar los protocolos de comunicación. Tendencias Actuales de las arquitecturas de sistemas WEB:

Variante de los fabricantes de Base de Datos

Variante de los fabricantes de pasarelas:

Page 5: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

5

Estructura de Base de Datos Distribuidas

Un sistema distribuido de base de datos consiste en un conjunto de localidades, cada una de las cuales

mantiene un sistema de base de datos local. Cada localidad puede procesar transacciones locales, o bien

transacciones globales entre varias localidades, requiriendo para ello comunicación entre ellas.

Las localidades pueden conectarse físicamente de diversas formas, las principales son:

• Red totalmente conectada

• Red prácticamente conectada

• Red con estructura de árbol

• Red de estrella

• Red de anillo

Las diferencias principales entre estas configuraciones son:

• Coste de instalación: El coste de conectar físicamente las localidades del sistema

• Coste de comunicación: El coste en tiempo y dinero que implica enviar un mensaje desde la

localidad A a la B.

• Fiabilidad: La frecuencia con que falla una línea de comunicación o una localidad.

• Disponibilidad: La posibilidad de acceder a información a pesar de fallos en algunas localidades o

líneas de comunicación.

Las localidades pueden estar dispersas, ya sea por un área geográfica extensa (a lo largo de un país),

llamadas redes de larga distancia; o en un área reducida (en un mismo edificio), llamadas redes de área

local. Para las primeras se utilizan en la comunicación líneas telefónicas, conexiones de microondas y

canales de satélites; mientras que para las segundas se utiliza cables coaxiales de banda base o banda

ancha y fibra óptica.

Diseño de la distribución:

Page 6: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

6

Introducción

El diseño de un sistema de base de datos distribuido implica la toma de decisiones sobre la ubicación de

los programas que accederán a la base de datos y sobre los propios datos que constituyen esta última, a

lo largo de los diferentes puestos que configuren una red de ordenadores. La ubicación de los programas,

a priori, no debería suponer un excesivo problema dado que se puede tener una copia de ellos en cada

máquina de la red (de hecho, en este documento se asumirá que así es). Sin embargo, cuál es la mejor

opción para colocar los datos: en una gran máquina que albergue a todos ellos, encargada de responder a

todas las peticiones del resto de las estaciones − sistema de base de datos centralizado −, o podríamos

pensar en repartir las relaciones, las tablas, por toda la red. En el supuesto que nos decantásemos por

esta segunda opción, ¿qué criterios se deberían seguir para llevar a cabo tal distribución? ¿Realmente este

enfoque ofrecerá un mayor rendimiento que el caso centralizado? ¿Podría optarse por alguna otra

alternativa? En los párrafos sucesivos se tratará de responder a estas cuestiones.

Tradicionalmente se ha clasificado la organización de los sistemas de bases de datos distribuidos sobre

tres dimensiones: el nivel de compartición, las características de acceso a los datos y el nivel de

conocimiento de esas características de acceso (vea la figura 1). El nivel de compartición presenta tres

alternativas: inexistencia, es decir, cada aplicación y sus datos se ejecutan en un ordenador con ausencia

total de comunicación con otros programas u otros datos; se comparten sólo los datos y no los programas,

en tal caso existe una réplica de las aplicaciones en cada máquina y los datos viajan por la red; y, se

reparten datos y programas, dado un programa ubicado en un determinado sitio, éste puede solicitar un

servicio a otro programa localizado en un segundo lugar, el cual podrá acceder a los datos situados en un

tercer emplazamiento. Como se comentó líneas atrás, en este caso se optará por el punto intermedio de

compartición.

Respecto a las características de acceso a los datos existen dos alternativas principalmente: el modo de

acceso a los datos que solicitan los usuarios puede ser estático, es decir, no cambiará a lo largo del tiempo,

o bien, dinámico. El lector podrá comprender fácilmente la dificultad de encontrar sistemas distribuidos

reales que puedan clasificarse como estáticos. Sin embargo, lo realmente importante radica, estableciendo

el dinamismo como base, cómo de dinámico es, cuántas variaciones sufre a lo largo del tiempo. Esta

dimensión establece la relación entre el diseño de bases de datos distribuidas y el procesamiento de

consultas.

La tercera clasificación es el nivel de conocimiento de las características de acceso. Una posibilidad es,

evidentemente, que los diseñadores carezcan de información alguna sobre cómo los usuarios acceden a la

base de datos. Es una posibilidad teórica, pero sería muy laborioso abordar el diseño de la base de datos

con tal ausencia de información. Lo más práctico sería conocer con detenimiento la forma de acceso de los

usuarios o, en el caso de su imposibilidad, conformarnos con una información parcial de ésta.

El problema del diseño de bases de datos distribuidas podría enfocarse a través de esta trama de opciones.

En todos los casos, excepto aquel en el que no existe compartición, aparecerán una serie de nuevos

problemas que son irrelevantes en el caso centralizado.

A la hora de abordar el diseño de una base de datos distribuida podremos optar principalmente por dos

tipos de estrategias: la estrategia ascendente y la estrategia descendente. Ambos tipos no son excluyentes,

y no resultaría extraño a la hora de abordar un trabajo real de diseño de una base de datos que se

pudiesen emplear en diferentes etapas del proyecto una u otra estrategia. La estrategia ascendente podría

Page 7: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

7

aplicarse en aquel caso donde haya que proceder a un diseño a partir de un número de pequeñas bases

de datos existentes, con el fin de integrarlas en una sola. En este caso se partiría de los esquemas

conceptuales locales y se trabajaría para llegar a conseguir el esquema conceptual global. Aunque este

caso se pueda presentar con facilidad en la vida real, se prefiere pensar en el caso donde se parte de cero

y se avanza en el desarrollo del trabajo siguiendo la estrategia descendente. La estrategia descendente

(vea la figura 2) debería resultar familiar a la persona que posea conocimientos sobre el diseño de bases

de datos, exceptuando la fase del diseño de la distribución. Pese a todo, se resumirán brevemente las

etapas por las que se transcurre.

Todo comienza con un análisis de los requisitos que definirán el entorno del sistema en aras a obtener

tanto los datos como las necesidades de procesamiento de todos los posibles usuarios del banco de datos.

Igualmente, se deberán fijar los requisitos del sistema, los objetivos que debe cumplir respecto a unos

grados de rendimiento, seguridad, disponibilidad y flexibilidad, sin olvidar el importante aspecto económico.

Como puede observarse, los resultados de este último paso sirven de entrada para dos actividades que se

realizan de forma paralela. El diseño de las vistas trata de definir las interfaces para el usuario final y, por

otro lado, el diseño conceptual se encarga de examinar la empresa para determinar los tipos de entidades

y establecer la relación entre ellas. Existe un vínculo entre el diseño de las vistas y el diseño conceptual. El

diseño conceptual puede interpretarse como la integración de las vistas del usuario, este aspecto es de

vital importancia ya que el modelo conceptual debería soportar no sólo las aplicaciones existentes, sino

que debería estar preparado para futuras aplicaciones. En el diseño conceptual y de las vistas del usuario

se especificarán las entidades de datos y se determinarán las aplicaciones que funcionarán sobre la base

de datos, así mismo, se recopilarán datos estadísticos o estimaciones sobre la actividad de estas

aplicaciones. Dichas estimaciones deberían girar en torno a la frecuencia de acceso, por parte de una

aplicación, a las distintas relaciones de las que hace uso, podría afinarse más anotando los atributos de la

relación a la que accede. Desarrollado el trabajo hasta aquí, se puede abordar la confección del esquema

conceptual global. Este esquema y la información relativa al acceso a los datos sirven de entrada al paso

distintivo: el diseño de la distribución. El objetivo de esta etapa consiste en diseñar los esquemas

conceptuales locales que se distribuirán a lo largo de todos los puestos del sistema distribuido. Sería

posible tratar cada entidad como una unidad de distribución; en el caso del modelo relacional, cada

entidad se corresponde con una relación. Resulta bastante frecuente dividir cada relación en subrelaciones

menores denominadas fragmentos que luego se ubican en uno u otro sitio. De ahí, que el proceso del

diseño de la distribución conste de dos actividades fundamentales: la fragmentación y la asignación. El

último paso del diseño de la distribución es el diseño físico, el cual proyecta los esquemas conceptuales

locales sobre los dispositivos de almacenamiento físico disponibles en los distintos sitios. Las entradas para

este paso son los esquemas conceptuales locales y la información de acceso a los fragmentos.

Por último, se sabe que la actividad de desarrollo y diseño es un tipo de proceso que necesita de una

monitorización y un ajuste periódicos, para que si se llegan a producir desviaciones, se pueda retornar a

alguna de las fases anteriores.

Diseño Existen diversas formas de afrontar el problema del diseño de la distribución. Las más usuales se

muestran en la figura 3. En el primer caso, caso A, los dos procesos fundamentales, la fragmentación y la

asignación, se abordan de forma simultánea. Esta metodología se encuentra en desuso, sustituida por el

enfoque en dos fases, caso B: la realización primeramente de la partición para luego asignar los

Page 8: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

8

fragmentos generados. El resto de los casos se comentan en la sección referente a los distintos tipos de la

fragmentación. Antes de exponer las alternativas existentes de fragmentación, se desean presentar las

ventajas e inconvenientes de esta técnica. Se ha comentado en la introducción la conveniencia de

descomponer las relaciones de la base de datos en pequeños fragmentos, pero no se ha justificado el

hecho ni se han aportado razones para efectuarlo. Por ello, desde este punto se va a intentar aportar las

razones necesarias para llevar a cabo esa descomposición, esa fragmentación.

El principal problema de la fragmentación radica en encontrar la unidad apropiada de distribución. Una

relación no es una buena unidad por muchas razones. Primero, las vistas de la aplicación normalmente

son subconjuntos de relaciones. Además, la localidad de los accesos de las aplicaciones no está definida

sobre relaciones enteras pero sí sobre subconjuntos de las mismas. Por ello, sería normal considerar como

unidad de distribución a estos subconjuntos de relaciones.

Segundo, si las aplicaciones tienen vistas definidas sobre una determinada relación (considerándola ahora

una unidad de distribución) que reside en varios sitios de la red, se puede optar por dos alternativas. Por

un lado, la relación no estará replicada y se almacena en un único sitio, o existe réplica en todos o algunos

de los sitios en los cuales reside la aplicación. Las consecuencias de esta estrategia son la generación de

un volumen de accesos remotos innecesario. Además, se pueden realizar réplicas innecesarias que causen

problemas en la ejecución de las actualizaciones y puede no ser deseable si el espacio de almacenamiento

está limitado.

Tercero, la descomposición de una relación en fragmentos, tratados cada uno de ellos como una unidad

de distribución, permite el proceso concurrente de las transacciones. También la relación de estas

relaciones, normalmente, provocará la ejecución paralela de una consulta al dividirla en una serie de

subconsultas que operará sobre los fragmentos.

Pero la fragmentación también acarrea inconvenientes. Si las aplicaciones tienen requisitos tales que

prevengan la descomposición de la relación en fragmentos mutuamente exclusivos, estas aplicaciones

cuyas vistas estén definidas sobre más de un fragmento pueden sufrir una degradación en el rendimiento.

Por tanto, puede ser necesario recuperar los datos de dos fragmentos y llevar a cabo sobre ellos operación

de unión y yunto , lo cual es costoso.

Un segundo problema se refiere al control semántico. Como resultado de la fragmentación los atributos

implicados en una dependencia se descomponen en diferentes fragmentos los cuales pueden destinarse a

sitios diferentes. En este caso, la sencilla tarea de verificar las dependencias puede resultar una tarea de

búsqueda de los datos implicados en un gran número de sitios.

Transparencia y Autonomía

En la sección anterior se vio que una relación r puede almacenarse de varias formas en un sistema de

base de datos distribuida. Es esencial que el sistema reduzca al mínimo la necesidad de que el usuario se

dé cuenta de cómo está almacenada una relación. Como veremos. un sistema puede ocultar los detalles

de la distribución de la información en la red. Esto se denomina transparencia de la red. La transparencia

de la red se relaciona, en algún modo, a la autonomía local. La transparencia de la red es el grado hasta el

cual los usuarios del sistema pueden ignorar los detalles del diseño distribuido. La autonomía local es el

grado hasta el cual el diseñador o administrador de una localidad pueden ser independientes del resto del

Page 9: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

9

sistema distribuido. Los temas de transparencia y autonomía serán considerados desde los siguientes

puntos de vista:

• Nombre de los datos.

• Repetición de los datos.

• Fragmentación de los datos.

• Localización de los fragmentos y copias.

Asignación de nombres y autonomía local

Todo elemento de información de una base de datos debe tener un nombre único. Esta propiedad se

asegura fácilmente en una base de datos que no esté distribuida. Sin embargo, en una base de dalos

distribuida, las distintas localidades deben asegurarse no utilizar el mismo nombre para dos datos

diferentes.

Una solución para este problema es requerir que se registren todos los nombres en un asignador central de nombres. Sin embargo, este enfoque tiene varias desventajas:

• Es posible que el asignador de nombres se convierta en un cuello de botella..

• Si el asignador de nombres se cae, es posible que ninguna de las localidades del sistema

distribuido pueda seguir trabajando.

• Se reduce la autonomía local, ya que la asignación de nombres se controla de forma centralizada.

Un enfoque diferente que origina una mayor autonomía local es exigir que cada localidad ponga como

prefijo un identificador de localidad a cualquier nombre que genere. Esto garantiza que dos localidades

nunca generarán el mismo nombre (ya que cada localidad tiene un identificador único). Además, no se

requiere un control central.

Esta solución al problema de asignación de nombres, logra autonomía local, pero no transparencia de la

red, ya que se agregan identificadores de localidad a los nombres. Así, la relación depósito podría llamarse

localidad17.depósito en vez de depósito simplemente.

Cada copia y fragmento de un elemento de información deben tener un nombre único. Es importante que

el sistema pueda determinar qué copias son copias del mismo elemento de información y qué fragmentos

son fragmentos del mismo elemento de información.

Transparencia de la repetición y la fragmentación

No es conveniente requerir que los usuarios hagan referencia a una copia específica de un elemento de

información. El sistema debe ser el que determine a qué copia debe acceder cuando se le solicite su

lectura, y Cuando se solicita un dato, no es necesario especificar la copia. El sistema utiliza una

tabla−catálogo para determinar cuáles son todas las copias de ese dato.

De manera similar, no debe exigirse a los usuarios que sepan cómo está fragmentado un elemento de

información. Es posible que los fragmentos verticales contengan id−tuplas, que representan direcciones

de tuplas. Los fragmentos horizontales pueden haberse obtenido por predicados de selección complejos.

Page 10: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

10

Por tanto, un sistema de bases de datos distribuido debe permitir las consultas que se hagan en términos

de elementos de información sin fragmentar. Esto no presenta problemas graves, ya que siempre es

posible reconstruir el elemento de información original a partir de sus fragmentos. Sin embargo, este

proceso puede ser ineficiente.

Transparencia de localización

Si el sistema es transparente en cuanto a repetición y fragmentación, se ocultará al usuario gran parte del

esquema de la base de datos distribuida. Sin embargo, el componente de los nombres que identifican a la

localidad obliga al usuario a darse cuenta del hecho de que cl sistema está distribuido.

La transparencia de localización se logra creando un conjunto de seudónimos o alias para cada usuario.

Así, el usuario puede referirse a los datos usando nombres sencillos que el sistema traduce a nombres

completos.

Con el uso de seudónimos, no será necesario que el usuario conozca la localización física de un dato.

Además, el administrador de la base de datos puede cambiar un dato de una localidad a otra sin afectar a

los usuarios.

Esquema completo de asignación de nombres

Ya vimos que un nombre proporcionado por el usuario debe pasar por varios pasos de traducción antes de

que pueda servir como referencia a una copia específica de un fragmento determinado en una localidad

específica.

Para ilustrar cómo funciona el esquema, consideramos un usuario que se encuentra en la sucursal 1 (L1).

Este usuario emplea el seudónimo depósito−local para el fragmento local depósito−F1 de la relación

deposito.

Cuando este usuario hace referencia a depósito−local, el subsistema de procesamiento de consultas busca

depósito−local en la tabla de seudónimos y la sustituye por Ll.depósito.F1. Es posible que L1.depósito.Fl

esté repetido. Si es así, debe consultarse la tabla de copias para elegir una copia. Esta copia podría

también estar fragmentada, lo que haría necesario consultar la tabla de fragmentación. En la mayor parte

de los casos, sólo es preciso consultar una o dos tablas.

Transparencia y actualizaciones De alguna forma es más difícil hacer transparente la base de datos para usuarios que la actualizan que

para aquellos que sólo leen datos. El problema principal es asegurarse de que se actualizan todas las

copias de un dato y también los fragmentos afectados. En el caso más general, el problema de

actualización de información repetida y fragmentada está relacionado con el problema de actualización de

vistas.

Page 11: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

11

BASES DE DATOS ORIENTADAS A OBJETOS

INTRODUCCION

La mayoría de las aplicaciones actuales de bases de datos están basadas en tradicionales sistemas

manejadores de bases de datos (SMBD). Con la madurez que han cobrado los sistemas orientados a

objetos en el mercado y la creciente popularidad del modelo Entidad Vínculo Extendido (EVE), es

necesario encontrar respuesta a las siguientes preguntas:

• ¿Cómo mapear un esquema EVE a su esquema correspondiente orientado a objetos?

• ¿Cómo hacer la reingeniería de anteriores aplicaciones convencionales para producir bases de

datos orientadas a objetos?

Muchas organizaciones que actualmente usan tecnología orientada a objetos también desean los

beneficios de los OODBMS (Object Oriented DataBase Management System). En otras palabras, se desea

la migración de bases de datos y aplicaciones de bases de datos relacionales a orientadas a objetos. La

migración a la tecnología de objetos consiste de la ingeniería reversa de los programas de aplicación y la

migración de la base de datos.

El objetivo de la migración de la base de datos es tener un esquema equivalente y la base de datos

disponibles bajo los nuevos OODBMS. Esto desde luego puede ser logrado por medio de la transformación

manual del código de los programas lo cual resulta demasiado complicado. Para esto existen tres enfoque

que hacen uso de la tecnología de objetos para bases de datos relacionales.

• Construir una interfase orientada a objetos sobre el sistema de base de datos relacional.

• La migración a un sistema de base de datos relacional/objetos.

• Conversión del esquema de base de datos relacional a uno orientado a objetos.

El primer enfoque retiene la base de datos relacional y crea una interfase orientada a objetos encima de

ésta. Este enfoque es el mas fácil; no existe interrupción del sistema para la migración de datos y no

existe perdida semántica de la información. Por otro lado el rendimiento disminuye debido que no existe

un buen acoplamiento entre los dos paradigmas en el tiempo de ejecución.

En el segundo enfoque, los datos deben ser migrados de acuerdo con el DBMS (por ejemplo Oracle 7 a 8),

y las características orientadas a objetos solo pueden ser explotadas con la modificación o extensión del

esquema.

El tercer enfoque es la migración de la base de datos en donde un nuevo esquema bajo el OODBMS es

creado y los datos son migrados de la base de datos relacional a la orientada a objetos.

Cada uno de los tres enfoques anteriores tiene sus ventajas y desventajas. Especialmente el tercero, una

metodología y herramientas de soporte son críticas para una migración exitosa.

Page 12: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

12

TRANSFORMACIÓN DE ESQUEMAS RELACIONALES A OBJETOS

Formación de Tipos de Entidades Complejas

Consiste en agrupar recursivamente entidades y vínculos de un esquema EVE, usando abstracciones

semánticas como la agregación, generalización y asociación. Algunas variaciones a la técnica de formación

de clusters es útil no solo para mejorar el entendimiento del esquema conceptual de la base de datos y su

complejidad asociada, también contribuye a la formación de entidades complejas, y por lo tanto puede ser

usada como paso importante en el proceso de mapeo de un diagrama inicial EVE a un esquema orientado

a objetos.

La Técnica de Formación de Clusters

El procedimiento consiste en realizar iterativamente de forma arriba-abajo y empezando de entidades

atómicas en el esquema EVE y construir entidades mas complejas (clusters de entidades) hasta que el

nivel de abstracción n sea alcanzado, o hasta que no existan mas operaciones de clusters por realizar. El

nivel n de clusters representa la profundidad deseable de jerarquías de agregación en el esquema de

objetos complejos.

Para asegurar una alta cohesión semántica de las entidades complejas, las operaciones de agrupación se

realizan con un orden de prioridad (precedencia). Este orden es definido en términos del concepto de

cohesión, para representar el grado de importancia de los vínculos entre las entidades en una entidad

cluster.

Operaciones de Agrupamiento y Orden de Prioridad

El orden de prioridad se aplica como se especifica a continuación: Cuando una entidad E tiene vínculos

con ordenes de prioridad k y k+1, entonces el agrupamiento de orden k es el seleccionado. Cuando una

entidad E es candidato a dos agrupamientos de la misma prioridad (excepto para la absorción de entidad

débil), entonces se tomarán en cuenta las reglas adicionales que se detallan posteriormente.

Absorción de Entidad Débil

Una entidad fuerte E es colapsada con todas sus entidades dependientes directas para formar una entidad

compleja única y cuya etiqueta corresponde al nombre de la entidad débil. Los vínculos débiles así como

los vínculos uno-a-muchos y sus correspondientes entidades asociadas a E son también absorbidas en la

entidad compleja. En la presencia de una secuencia de entidades y vínculos débiles, el agrupamiento

empieza con la entidad mas dependiente y ensambla entidades en cascada.

Agrupación Dominante

Definimos como entidad dominante a aquella entidad que se encuentra en asociación binaria con al menos

dos entidades por un vínculo uno-a-muchos. La agrupación dominante consiste en ensamblar una entidad

dominante con sus vínculos y entidades relacionadas. El nombre de la entidad cluster es idéntico al

nombre de la entidad dominante.

Page 13: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

13

Agrupación por Generalización y Categorización

La agrupación por generalización/categorización consiste en crear entidades complejas cuyo nombre es

idéntico al nombre del supertipo/categoría y cuyos componentes son los subtipos/supertipos inmediatos

de la entidad generalizada o categoría. Una categoría es definida como un subconjunto de la unión de

algunas clases.

Agrupación de Vínculos

Los vínculos n-arios de cualquier grado pueden ser agrupados en entidades cluster, reflejando la

semántica de los vínculos como un todo. El nombre de la entidad cluster no es necesariamente idéntico al

nombre del vínculo. Este último corresponde al nombre del vínculo especialmente cuando la asociación es

un vínculo binario muchos-a-muchos o un vínculo n-ario. En el proceso de mapeo, la traslación de una

entidad cluster obtenida por la formación de clusters de vínculos toma en cuenta la naturaleza de las

entidades en relación: entidades llave, participación mandatoria/opcional, y el número de asociaciones en

la cual la entidad está involucrada.

Reglas Adicionales

Se definen a continuación cuatro reglas adicionales las cuales auxilian para preservar la secuencia lógica y

natural de visualizar la base de datos a diferentes niveles de abstracción, para mantener toda la semántica

de los datos, y para manejar algunas situaciones de conflicto.

Agrupamiento Paso a Paso

- Cuando se está formando un nuevo grupo en el esquema Ci (esquema con nivel de cluster i), el

resultado es un esquema Ci+1 debido a que por lo menos una operación de agrupamiento es realizada en

Ci. Al esquema inicial se le asigna en nivel 0.

- Si la operación de formación de clusters n-esima en el nivel i es realizada alrededor de la entidad E,

entonces esto conduce a una entidad cluster con una etiqueta, y un nivel expresado por <i.n>. La

etiqueta de la entidad compleja depende del tipo de cluster: es el nombre de la entidad dominante ( o

fuerte, generalizada o categoría), o el nombre del vínculo si es un vínculo binario muchos-a-muchos o un

vínculo ternario.

- Una operación de agrupamiento no puede ser realizara en el nivel i si involucra entidades complejas

recientemente formadas en el mismo nivel, por lo tanto debe ser pospuesta hasta el siguiente nivel.

Consistencia

Para evitar la posibilidad de pérdida de la semántica asociada con los datos, y para preservar los vínculos

iniciales dentro y fuera de las entidades complejas, se realiza lo siguiente: cuando un componente (o

subcomponente) Ei de una entidad compleja Ej tiene vínculo (ISA-A o asociación) con otra entidad, el lado

apropiado de este vínculo será etiquetado por Ej-1...Ei representando la trayectoria necesaria para

alcanzar el componente Ei dentro de Ej.

Cascadeo

Si una entidad Ei es candidato tanto para la operación de formación de un cluster de cualquier tipo

(absorción de entidad débil, agrupación dominante, generalización/categorización o por vínculos) como

una entidad esclavo (i.e. componente de una entidad compleja potencial E); así como también candidato

Page 14: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

14

para la operación de formación de cluster como una entidad maestro (i.e. una entidad cuyo nombre es

idéntico al nombre del cluster potencial como son entidades dominantes/fuertes, entidades generalizadas

y entidades del lado uno en un vínculo uno-a-muchos) entonces la operación de formación de cluster

interna (i.e.la que involucra Ei como maestro) es aplicada antes del agrupamiento que involucra Ei como

esclavo. Un caso especial, en la presencia de secuencias de entidades débiles con sus correspondientes

vínculos, el agrupamiento de absorción empieza de la entidad y vínculo mas dependientes, y formando

iterativamente entidades complejas hasta que la entidad fuerte sea encontrada.

Visibilidad/Invisibilidad de Entidades

En todos los sistemas de información, existen entidades que son relevante a muchos procedimientos y

necesidades de usuarios. En general estas entidades en cierta forma deben ser visibles en cualquier nivel

de abstracción del esquema inicial, y no deben ser escondidas dentro de alguna entidad compleja. Por lo

tanto, cualquier operación de agrupamiento que encapsule una entidad llave está prohibida.

Mapeo del Esquema EVE con Clusters a un Esquema Orientado a Objetos

La etapa de mapeo de un esquema EVE con clusters a un esquema orientado a objetos maneja la

descripción de objetos complejos y toma en cuenta los vínculos y restricciones semánticas

Definición 1. Definimos un esquema de base de datos orientado a objetos estructuradamente como un par

(S,Sigma) que consiste de una colección de tipos de entidades E1 ,..., Em cerrados bajo referencias y

supertipos, y un conjunto Sigma de restricciones de integridad inter-entidades. Un tipo de entidad Ei

puede ser descrito por las siguientes propiedades:

- Supertipos: conjunto de supertipos de Ei .

- Estructura: agregación de atributos (atómicos o complejos) Aj relacionados con los tipos propios o

definidos por el usuario.

- Vínculos: conjunto de asociaciones en las cuales Ei participa.

- Especializaciones: conjunto de especializaciones <Sub,CD,Herencia>, donde Ei es la entidad

generalizada.

- Categoría: descripción de los supertipos que participan en la unión (si es aplicable).

- Restricciones: conjunto de restricciones inter-entidad.

Las entidades generalizadas son definidas por la tripleta <Sub,CD,Herencia>, donde:

* Sub representa las entidades que especializan el supertipo.

* CD es un par de dos valores booleanos que indican si la generalización es completa o no y si las

instancias de subtipos se traslapan o no.

* Herencia indica como los subtipos son formados.

Page 15: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

15

Debido a que una misma entidad puede ser una generalización para mas de un criterio de especialización,

existen tantas tripletas como tipos de especialización para esa entidad.

La extensión de Ei es el conjunto de objetos Oi1 ,..., Oip cuyo tipo es Ei . Una extensión D de la base de

datos de un esquema Ses el conjunto de todas las instancias de las entidades en S las cuales verifican

todo el conjunto de restricciones de integridad intra e inter-entidades.

Reglas de Transformación

Una vez que el diagrama de objetos complejos es producido, la descripción del esquema OO entonces

puede ser producida. Existen al menos dos tipos de mapeos para un diagrama entidad-vínculo a un

esquema OO: el primer tipo, llamado traducción estable consiste en convertir cada entidad y cada vínculo

en un objeto, mientras que el segundo, llamado traducción mapeada, consiste en integrar un vínculo en

una clase de objeto usando referencias, y creando una clase de objeto para cada vínculo ternario.

Definimos una entidad Ej en el esquema inicial (es decir que no este en clusters) como un candidato

potencial para absorción por otra entidad Ei cuando ocurre uno de los siguientes casos:

- Ej es solamente un vínculo 1:1 o uno 1:N o solamente un vínculo ternario que involucra Ei , y Ej no tiene

otra asociación en el esquema bajo consideración.

- Ej es una entidad débil con respecto a Ei y participa solo a vínculos débiles (si existe alguno) como una

entidad fuerte.

El proceso de traducción es el siguiente:

- Cada entidad del diagrama EVE con clusters es mapeado a un tipo de objeto. La estructura del tipo de

objeto complejo depende de las operaciones de agrupamiento usadas para la formación de la entidad

compleja. Excepto para entidades que son candidatos para absorción, cada componente del objeto

complejo es recursivamente mapeado a un tipo de objeto. Los atributos multivaluados son expresados

usando el conjunto o lista de constructores. Los atributos agregados son expresados usando el constructor

de tuplas.

- Dependiendo de la paridad del vínculo y de las cardinalidades (mimimal y maximal) de las asociaciones,

cada vínculo es mapeado ya sea a un nuevo atributo (tanto referencias a tipos de objetos o atributos

actuales) agregadas a las entidades apropiadas; o nuevas entidades haciendo referencia a las entidades

concernientes.

Es importante notar que durante el proceso de traducción e independientemente de la forma en que

fueron formadas las entidades complejas Ei , la referencia a una entidad Ej dentro de una entidad Ei

puede tomar una de las siguientes formas:

- la estructura actual (atributos) de Ej cuando Ej es candidato a absorción por Ei

- un atributo referencia (apuntador) en cualquier otro caso.

Page 16: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

16

Absorción de entidad débil y agrupación dominante.

Para este tipo de agrupación, es creado un tipo complejo como una agregación de la entidad

fuerte/dominante y las entidades débil/relacionadas. Cada vínculo dentro de la agrupación es mapeado a

una atributo referencia cuyo nombre es la etiqueta del vínculo, y cuyos tipos conforman el tipo de entidad

débil/relacionadas.

Agrupamiento de Vínculos

Existen dos enfoques para la traducción de vínculos: uno que describe explícitamente los vínculos como

una estructura clase. El segundo enfoque mapea los vínculos en un par de referencias directa e inversa.

En este último caso, los atributos referencia son usados para expresar los vínculos entre objetos y

asegurar la navegación en una o ambas direcciones. Para describir los vínculos inversos, son usados

atributos referencia inversos.

• Traducción de Vínculos uno-a-uno

La traducción de vínculos uno-a-uno depende del tipo de las dos entidades (entidades llave o

entidades no llave) y sus cardinalidades minimales en el vínculo (participación opcional vs.

mandatoria), y sobre el número de otras asociaciones en la cual cada una de las dos entidades se

encuentra involucrada).

• Traducción de direcciones uno-a-muchos

Para agrupamiento de vínculos binarios uno-a-muchos, tenemos que agregar la entidad en la

parte del lado "uno" con la parte del lado "muchos" que corresponde a las múltiples ocurrencias

de las entidades débil/relacionadas por una ocurrencia de la entidad fuerte, seguida por los

atributos conectados al vínculo si existe alguno.

• Traducción de vínculos muchos-a-muchos y ternarios

Para vínculos muchos-a-muchos y ternarios, una nueva estructura es creada por medio de la

agregación de referencias a las entidades participantes así como los atributos asociados con los

vínculos.

Generalización/Categorización

La definición de una entidad generalizada incluye la especificación del vínculo generalizado descrito por la

tripleta <Sub,CD,Herencia> así como su estructura. El mapeo de una entidad generalizada y sus entidades

especializadas puede ser percibida como una traducción de vínculos 1:1 entre la entidad generalizada y

cada uno de sus subtipos.

Una categoría es descrita en un esquema OO principalmente por el significado de dos de sus propiedades:

su estructura y sus superclases. La estructura es la agregación del nombre de la superclase apropiada

junto con un atributo referencia a la instancia de esa superclase. La segunda propiedad enumera las

superclases participantes.

Page 17: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

17

La elección de un mapeo dado depende también de:

- El patrón de uso esperado.

- La evolución esperada del esquema de base de datos.

- Las peculiaridades de los OODBMS que se encuentran aún en consideración.

GEMSTONE

GemStone fue originalmente creado específicamente como un DBMS Smalltalk. La mayoría de los ODBMS

han usado C++. En 1987, Smalltalk era de muy poco interés. Curiosamente, Smalltalk por si mismo

provee un tipo de funcionalidad de base de datos: es un ambiente de programación en el cual clases

predefinidas son almacenadas en una imagen de sistema. Desafortunadamente, la imagen Smalltalk es

estrictamente para usuario único y no ofrece soporte para acceso concurrente.

GemStone fue introducido en 1987 y es el ODBMS comercial con mas tiempo en el mercado. GemStone es

particularmente preferible para ser usado en aplicaciones cliente/servidor multiusuario y multiplataforma,

soporta acceso concurrente de múltiples lenguajes, incluyendo Smalltalk-80, Smalltalk/V, C++ y C.

GemStone también provee un dialecto de Smalltalk (Smalltalk DB, formalmente conocido como OPAL)

como DDL y DML internos, los cuales pueden ejecutar métodos o aplicaciones enteras en la base de datos.

Características Principales

Base de Datos Activa

GemStone permite a desarrolladores de aplicaciones escribir métodos los cuales son almacenados y

ejecutados directamente en la base de datos. Estos métodos pueden ser accesados ya sea internamente o

por aplicaciones cliente externas. Esto puede reducir significativamente el tráfico en la red y permitir a las

aplicaciones tomar ventaja del poder superior de cómputo de el servidor. También elimina la necesidad de

cambiar las aplicaciones cuando las condiciones de negocios cambian.

Soporte Concurrente para Múltiples Lenguajes

GemStone provee soporte concurrente para aplicaciones desarrolladas con Smalltalk, C++, C y con la

herramienta de desarrollo propia de GeODE. Todas las aplicaciones, independientemente del lenguaje en

que estén escritas, pueden tener acceso simultaneo a los mismos objetos de la base de datos.

La Interfase C de GemStone es una librería de funciones que pueden ser llamadas desde lenguajes que

permiten llamadas a funciones C, incluyendo Ada, COBOL, Pascal, FORTRAN, LISP, y C Objetivo.

La Interfase C++ de GemStone provee almacenamiento persistente para aplicaciones C++. Una vez

almacenados en GemStone, los objetos C++ toman una identidad propia y existen independientemente de

los programas que los crearon. Estos pueden ser usados por otros programas, incluso aquellos escritos en

otros lenguajes.

Control de Transacciones Multiusuario Flexibles

Page 18: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

18

Usuarios múltiples pueden operar en la base de datos simultáneamente, con una variedad de modos para

el control de transacciones disponibles (como bloqueo optimista o pesimista).

Seguridad a Nivel de Objeto

El control de autorización puede ser aplicado a cualquier objeto en la base de datos, permitiendo una

refinación de la seguridad de objetos.

Esquema Dinámico y Evolución de Objetos

GemStone soporta la modificación de esquema través del versionamiento de clases y permite total

migración de objetos entre versiones de sus clases con un simple envío de mensajes. La migración es

totalmente personalizadle y puede ser revertida.

Servicios de Producción

GemStone incluye características requeridas por bases de datos de producción, incluyendo respaldo en

línea, recuperación por falla rápida, integridad referencial, señalización de eventos, notificadores y control

de concurrencia incluyendo control optimista, pesimista y basado en el comportamiento.

Escalabilidad

GemStone tiene la capacidad para soportar 1,000 logins y 100 usuarios activos concurrentemente en un

servidor SMP de tamaño mediano. Esta característica indica que GemStone es lo suficientemente poderoso

por lo menos para aplicaciones departamentales.

Gateways

GemStone incorpora gateways o bridges (puentes) de datos que permiten a aplicaciones de objetos

integrar datos válidos, en formatos SQL, IMS, VSAM y otros. El nivel de integración entre GemStone y

datos válidos y aplicaciones puede variar desde un simple query hasta intensiva interoperabilidad de

lectura/escritura. Esta nueva característica es particularmente útil en el papel que desempeña GemStone

como servidor de aplicaciones, como una de las principales tareas de este servidor para mapear peticiones

de clientes en una variedad de administradores de datos.

Arquitectura

GemStone fue diseñado como un sistema cliente-servidor y consiste de dos tipos de procesos: El Gem y el

Stone, y el GemStone Smalltalk Interfase (GSI).

* El Gem es el front-end, y puede correr ya sea en el cliente o en el servidor, esto dependiendo de las

consideraciones como el tráfico en la red y el rendimiento. Maneja la compilación Smalltalk y provee una

librería de clases predefinidas de cerca de 500 clases y 12,000 métodos. Cuando es remoto al Stone, el

Gem puede ser configurado para buscar, almacenar en cache o bloquear páginas, objetos, o segmentos

de datos completos. Cada Gem toma aproximadamente 1MB de RAM, y esto pone un límite práctico al

número de usuarios simultáneos soportados. Una máquina de 32 bits tiene un espacio de

direccionamiento virtual de 4GB, y puede tener hasta 1GB de RAM física. La mitad de la cual es asignada

al cache, y los restantes 500MB son suficientes para 500 usuarios.

* El Stone es el administrador de datos, el se ejecuta siempre en el servidor. Este ve después del núcleo

de la base de datos, funciones como E/S de disco, concurrencia, transacciones, recuperación y seguridad.

Existe un Stone por base de datos.

* El GSI siempre se ejecuta en el cliente. Traduce clases Smalltalk y mantiene la coherencia de cache, la

cual permite la ejecución de métodos en el servidor y asegura una vista consiste de la base de datos a

todos los clientes. Existen dos versiones de GSI disponibles: una versión enlazada, la cual comparte el

mismo espacio de direccionamiento con el Gem; y una versión RPC, la cual permite al GSI ser ejecutado

en una máquina remota.

Page 19: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

19

Los son automáticamente recolectados a la basura cuando no son referenciados por ningún otro objeto.

Caso de Estudio

A continuación se realizará la transformación del caso de estudio de la base de datos académica

anteriormente analizada con el modelo EVE. Para esto partiremos del siguiente esquema de base de datos.

En este caso las reglas de agrupación de objetos complejos se aplican como sigue:

� En primer lugar se aplica la regla de absorción de entidad débil en el recuadro marcado con 1.1.

� Posteriormente se aplica la regla de agrupación dominante, en la cual la entidad dominante es

ALUMNO y las entidades absorbidas son: BECAS, DES_PROF y DISTINCIONES, ésta operación está

marcada en el recuadro 2.1.

� En el mismo nivel de agrupación se realiza la operación de la generalización en la cual las entidades

subtipos ESPECIALES y BASICAS son agrupadas en una entidad compleja y la etiqueta correspondiente es

la del supertipo, que en este caso es FORMACION ACADEMICA. Esta operación de agrupamiento está

marcada con el recuadro 2.2.

� Por último el nivel de agrupamiento más alto corresponde a la formación de la entidad compleja en la

cual la entidad compleja es absorbida por la entidad llave ALUMNO.

Page 20: Resumen de conceptos_final

“Escuela Militar de Ingeniería” Mcal. Antonio José de Sucre

Base de Datos II Ing. Osamu Yokosaki Análisis de Sistema

Resumen de Conceptos Examen Final (Especial)

20

después de aplicar las reglas anteriores, el diagrama EVE se reduce únicamente a una sola entidad

compleja, la cual posteriormente será utilizada para su implantación haciendo uso de un OODBMS, como

es GemStone.