lunes, 27 de agosto de 2007
Arquitectura de las BDD.
ARQUITECTURA DE UN SISTEMA DE BASES DE DATOS DISTRIBUIDAS.
La mayoría de los sistemas de manejo de bases de datos disponibles actualmente están basadas en la arquitectura ANSI-SPARC la cual divide a un sistema en tres niveles: interno, conceptual y externo.
La vista conceptual, conocida también como vista lógica global, representa la visión de la comunidad de usuarios de los datos en la base de datos. No toma en cuenta la forma en que las aplicaciones individuales observan los datos o como éstos son almacenados.
La vista conceptual está basada en el esquema conceptual y su construcción se hace en la primera fase del diseño de una base de datos.
Los usuarios, incluyendo a los programadores de aplicaciones, observan los datos a través de un esquema externo definido a nivel externo.
La vista externa proporciona una ventana a la vista conceptual lo cual permite a los usuarios observar únicamente los datos de interés y los aísla de otros datos en la base de datos.
Puede existir cualquier número de vistas externas y ellos pueden ser completamente independientes o traslaparse entre sí.
El esquema conceptual se mapea a un esquema interno a nivel interno, el cual es el nivel de descripción más bajo de los datos en una base de datos. Este proporciona una interfaz al sistema de archivos del sistema operativo el cual es el responsable del acceso a la base de datos. El nivel interno tiene que ver con la especificación de qué elementos serán indexados, qué técnica de organización de archivos utilizar y como los datos se agrupan en el disco mediante "clusters" para mejorar su acceso.
Desafortunadamente, no existe un equivalente de una arquitectura estándar para sistemas de manejo de bases de datos distribuidas.
La tecnología y prototipos de SMBDD se han desarrollado más o menos en forma independiente uno de otro y cada sistema ha adoptado su propia arquitectura.
Para definir un esquema de estandarización en bases de datos distribuidas se debe definir un modelo de referencia el cual sería un marco de trabajo conceptual cuyo propósito es dividir el trabajo de estandarización en piezas manejables y mostrar a un nivel general como esas piezas se relacionan unas con otras.
Para definir ese modelo de referencia se puede seguir uno de los siguientes tres enfoques:Basado en componentes. Se definen las componentes del sistema junto con las relaciones entre ellas.
Así, un SMBD consiste de un número de componentes, cada uno de los cuales proporciona alguna funcionalidad. Basado en funciones.
Se identifican las diferentes clases de usuarios junto con la funcionalidad que el sistema ofrecerá para cada clase. La especificación del sistema en esta categoría típicamente determina una estructura jerárquica para las clases de usuarios.
La ventaja de este enfoque funcional es la claridad con la cual se especifican los objetivos del sistema.
Sin embargo, este enfoque no proporciona una forma de alcanzar los objetivos. Basado en datos. Se identifican los diferentes tipos de descripción de datos y se especifica un marco de trabajo arquitectural el cual define las unidades funcionales que realizarán y/o usarán los datos de acuerdo con las diferentes vistas.
La ventaja de este enfoque es la importancia que asigna al manejo de datos. Este es un enfoque significativo para los SMBD dado que su propósito principal es manejar datos. Sin embargo, la desventaja de este enfoque es que es prácticamente imposible especificar un modelo arquitectural sin especificar los modelos para cada una de sus unidades funcionales. Este es el enfoque seguido por el modelo ANSI/SPARC.
fundamentos de los sistemas de informacion
El Diseño de Sistemas se define el proceso de aplicar ciertas técnicas y principios con el propósito de definir un dispositivo, un proceso o un Sistema, con suficientes detalles como para permitir su interpretación y realización física.
La etapa del Diseño del Sistema encierra cuatro etapas:
1.-El diseño de los datos: Trasforma el modelo de dominio de la información, creado durante el análisis, en las estructuras de datos necesarios para implementar el Software.
2.-El Diseño Arquitectónico: Define la relación entre cada uno de los elementos estructurales del programa.
3.-El Diseño de la Interfaz: Describe como se comunica el Software consigo mismo, con los sistemas que operan junto con el y con los operadores y usuarios que lo emplean.
4.-El Diseño de procedimientos: Transforma elementos estructurales de la arquitectura del programa. La importancia del Diseño del Software se puede definir en una sola palabra Calidad, dentro del diseño es donde se fomenta la calidad del Proyecto. El Diseño es la única manera de materializar con precisión los requerimientos del cliente.
El Diseño del Software es un proceso y un modelado a la vez. El proceso de Diseño es un conjunto de pasos repetitivos que permiten al diseñador describir todos los aspectos del Sistema a construir. A lo largo del diseño se evalúa la calidad del desarrollo del proyecto con un conjunto de revisiones técnicas:
El diseño debe implementar todos los requisitos explícitos contenidos en el modelo de análisis y debe acumular todos los requisitos implícitos que desea el cliente.
Debe ser una guía que puedan leer y entender los que construyan el código y los que prueban y mantienen el Software.
- Un diseño debe presentar una organización jerárquica que haga un uso inteligente del control entre los componentes del software.
- El diseño debe ser modular, es decir, se debe hacer una partición lógica del Software en elementos que realicen funciones y subfunciones especificas.
- Un diseño debe contener abstracciones de datos y procedimientos.
- Debe producir módulos que presenten características de funcionamiento independiente.
- Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los módulos y el entorno exterior.
Debe producir un diseño usando un método que pudiera repetirse según la información obtenida durante el análisis de requisitos de Software. Estos criterios no se consiguen por casualidad. El proceso de Diseño del Software exige buena calidad a través de la aplicación de principios fundamentales de Diseño, Metodología sistemática y una revisión exhaustiva.
Cuando se va a diseñar un Sistema de Computadoras se debe tener presente que el proceso de un diseño incluye, concebir y planear algo en la mente, así como hacer un dibujo o modelo o croquis.
miércoles, 22 de agosto de 2007
Con respecto a Sistemas Centralizados:
- Una de las ventajas de los sistemas distribuidos es la economía, pues es mucho más barato, añadir servidores y clientes cuando se requiere aumentar la potencia de procesamiento.
- El trabajo en conjunto. Por ejemplo: en una fábrica de ensamblado, los robots tienen sus CPUs diferentes y realizan acciones en conjunto, dirigidos por un sistema distribuido.
- Tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en muchas máquinas la falla de una de ellas no afecta a las demás, el sistema sobrevive como un todo.
Capacidad de crecimiento incremental. Se puede añadir procesadores al sistema incrementando su potencia en forma gradual según sus necesidades.
Con respecto a PCs Independientes:
- Se pueden compartir recursos, como programas y periféricos , muy costosos. Ejemplo: Impresora Láser , dispositivos de almacenamiento masivo, etc.
- Al compartir recursos, satisfacen las necesidades de muchos usuarios a la vez. Ejemplo: Sistemas de reservas de aerolíneas.
- Se logra una mejor comunicación entre las personas. Ejemplo: el correo electrónico.
Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre diferentes ordenadores.
DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
El principal problema es el software, es el diseño, implantación y uso del software distribuido, pues presenta numerosos inconvenientes. Los principales interrogantes son los siguientes:
¿Qué tipo de S. O., lenguaje de programación y aplicaciones son adecuados para estos sistemas?.
¿Cuánto deben saber los usuarios de la distribucion?.
¿Qué tanto debe hacer el sistema y qué tanto deben hacer los usuarios?.
La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una gran diversidad de criterios y de interpretaciones al respecto.
Otro problema tiene que ver con las redes de comunicación. Por ejemplo: -Perdida de mensajes, saturación en el tráfico, etc.
Un problema que puede surgir al compartir datos es la seguridad de los mismos.
En general se considera que las ventajas superan a las desventajas, si estas últimas se administran seriamente.
martes, 21 de agosto de 2007
Ventajas:
• Favorecer la naturaleza distribuidora de muchas aplicaciones, no solamente a nivel local si no incluso en diferentes lugares.
• Hay un acercamiento bastante notable a las estructuras organizacionales de las empresas.
• Se consigue una compartición de los datos, sin perder un determinado control local.
• El rendimiento se mejora. Cuando se distribuye una gran base de datos por múltiples sitios, las consultas locales y las transacciones tienen mejor rendimiento porque las bases de datos locales son más pequeñas. A parte de esta distribución, se puede conseguir lo siguiente en estos sistemas:
1.- Reducir el número de transacciones ejecutándose por sitio.
2.- Un paralelismo entre las consultas ejecutando varias en sitios diferentes, o
descomponiendo una de ellas en subconsultas que puedan ejecutarse en paralelo.
• Aumento de la fiabilidad y la disponibilidad ya comentadas en el objetivo 3.
• Los procesos de expansión se hacen más sencillos en nuestro sistema distribuido. Es decir, cuando se necesita añadir un sitio en nuestro sistema distribuido, el resto de operaciones que se ejecutan en los demás no se verán afectados.
• Por último, como ya dijimos en el objetivo 1, la autonomía de estos sistemas es grande.
Desventajas:
• Hay una menor seguridad en cuanto al control de acceso a los datos: control de replicas y errores que puedan producirse en la red.
• Mayor complejidad en el diseño e implementación del sistema. Además si la replicación de datos no se hace de forma adecuada, las ventajas se pueden transformar en desventajas.
• Excesivos costes en el intento de conseguir la transparencia mencionada anteriormente.
• Falta de estándares y de experiencia, una vez más en estos modelos avanzados de BD.
• No se puede garantizar al 100 % el rendimiento y la fiabilidad.
Para garantizar las ventajas anteriormente descritas, es necesario que el software del
SGBDD proporcione las siguientes funciones adicionales a las que un sistema centralizado ya tiene de por si:
• Capacidad para seguir la pista a la distribución y replicación de los datos en el catálogo del SGBDD.
• Capacidad para acceder a sitios remotos.
• Capacidad de idear estrategias de ejecución para consultas y transacciones que tiene acceso a datos de más de un sitio.
• Capacidad de recuperarse de caídas de sitios o fallos de la red.
• Capacidad de decidir a qué copia de un elemento de datos replicado acceder y de mantener la consistencia de las copias.
• Gestión del directorio o catálogo distribuido de la BDD.
• Seguridad, gestión apropiada de seguridad de datos y los privilegios de autorización,
acceso de los usuarios.