Unidad 8 Flashcards

1
Q

Arquitectura de Sistemas de Bases de Datos

A

La arquitectura de un sistema de base de datos está influenciada en gran medida por la arquitectura tecnológica subyacente en la que se ejecuta el sistema de base de datos. En la arquitectura de un sistema de base de datos se reflejan aspectos como la conexión en red, el paralelismo y la distribución

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Arquitectura Centralizada

A

Los sistemas de bases de datos centralizados son aquellos que se ejecutan en un único sistema informático sin interaccionar con ninguna otra computadora. Tales sistemas comprenden el rango desde los sistemas de bases de datos monousuario ejecutándose en computadoras personales hasta los sistemas de bases de datos de alto rendimiento ejecutándose en grandes sistemas.

Se pueden distinguir dos formas de utilizar las computadoras:
*sistemas monousuario
*sistemas multiusuario.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Sistemas Monousuario

A

Un sistema monousuario típico es una unidad utilizada por una única persona que dispone de una sola CPU, de unidades de almacenamiento en disco y que trabaja con un sistema operativo que sólo permite un único usuario a la vez accediendo al sistema.

No tienen control de concurrencia

Las facilidades de recuperación en estos sistemas o no existen o son primitivas.

La mayoría de estos sistemas no
admiten SQL y proporcionan un lenguaje de consulta muy simple

No intentan dividir una consulta simple entre los distintos procesadores, sino que ejecutan cada consulta en un único procesador, posibilitando la concurrencia de varias consultas.

Estos sistemas soportan una mayor productividad, es decir, permiten ejecutar un mayor número de transacciones por segundo, a pesar de que cada transacción individualmente no se ejecuta más rápido.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Sistemas Multiusuario

A

Un sistema multiusuario típico dispone de un sistema operativo que permite la conexión simultánea de varios usuarios que se pueden conectar desde computadoras personales o desde terminales. Generalmente existirán uno o más servidores a los que los usuarios se conectarán y éstos brindarán el servicio requerido.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Arquitectura Cliente-Servidor

A

La computación cliente-servidor es la extensión lógica de la programación modular. El supuesto principal de la programación modular es la división de un programa grande en pequeños programas (llamados módulos), siendo más fáciles el desarrollo y la mantenibilidad.

Cualquier LAN puede ser considerada como un sistema cliente- servidor, desde el momento en que el cliente solicita servicios como datos, ficheros o imprimir desde el servidor. Cuando un usuario se conecta a Internet, interactúa con otras computadoras utilizando el modelo cliente-servidor.

El servidor es la computadora que contiene información (bases de datos, ficheros de texto…). El usuario, o cliente, accede a esos recursos vía programas cliente (aplicaciones) que usan TCP/IP para entregar la información a su computadora.

Cualquier aplicación que tenga una interfaz de usuario que se ejecute localmente en el cliente y un proceso que se ejecute en el servidor está en forma de cliente-servidor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Características de un Sistema Cliente-Servidor

A

● El servidor presenta a todos sus clientes una interfaz única y bien definida.
● El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa.
● El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra, ni de su sistema operativo.
● Los cambios en el servidor implican pocos o ningún cambio en el cliente.
●Si existen múltiples servidores de procesamiento de base de datos, cada uno de ellos deberá procesar una base de datos distinta, para que el sistema sea considerado un sistema cliente-servidor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Partes de un Sistema Cliente-Servidor

A

● El núcleo (back-end o sección posterior). Es el SGBD propiamente (servidor).
● La interfaz (front-end o sección frontal). Aplicaciones que funcionan sobre el SGBD (cliente).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Funciones del Cliente

A

● Administrar la interfaz gráfica de usuario
● Aceptar datos del usuario
● Procesar la lógica de la aplicación
● Generar las solicitudes para la base de datos
● Transmitir las solicitudes de la base de datos al servidor
● Recibir los resultados del servidor
● Dar formato a los resultados

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Funciones del servidor

A

● Aceptar las solicitudes de la base de datos de los clientes
● Procesar dichas solicitudes
● Transmitir los resultados al cliente
● Llevar a cabo la verificación de integridad
● Mantener los datos generales de la base de datos
● Proporcionar control de acceso concurrente
● Llevar a cabo la recuperación
● Optimizar el procesamiento de consultas y actualización

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Tipos de servidores

A

*iterativos
*concurrentes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Servidor iterativo

A

Un servidor iterativo realiza los siguientes pasos:
1. Espera que llegue una consulta de un cliente.
2. Procesa la consulta.
3. Envía la respuesta al cliente que envió la consulta.
4. Vuelve al estado inicial.

El problema del servidor iterativo es el paso 2. Durante el tiempo en el que el servidor está procesando la consulta, ningún otro cliente es servido.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Servidor Concurrente

A

Un servidor concurrente realiza los siguientes pasos:
1. Espera que llegue la consulta de un cliente.
2. Cuando llega una nueva consulta, comienza un nuevo proceso para manejar esta consulta (cómo se realiza este paso depende del sistema operativo). El nuevo servidor maneja la totalidad de la consulta. Cuando se ha procesado completamente, este nuevo proceso termina.
3. Se vuelve al primer paso.

La ventaja del servidor concurrente es que el servidor ejecuta un nuevo proceso para manejar cada consulta. Cada cliente tiene su “propio” servidor. Asumiendo que el sistema operativo permite la multiprogramación, clientes múltiples y servicio concurrente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Servidores de transacciones

A

También llamados sistemas servidores de consultas, proporcionan una interfaz a través de la cual los clientes pueden enviar peticiones para realizar una acción que el servidor ejecutará y cuyos resultados se devolverán al cliente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Servidores de datos

A

Los sistemas servidores de datos permiten que los clientes puedan interactuar con los servidores realizando peticiones de lectura o modificación de datos en unidades tales como archivos o páginas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Tipos de Arquitecturas Cliente-Servidor

A

*Arquitectura de 2 capas
*Arquitectura de 3 capas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Arquitectura de 2 capas

A

La arquitectura cliente-servidor tradicional es una solución de 2 capas. Consta de tres componentes distribuidos en dos capas: cliente y servidor. Los tres
componentes son:
● Interfaz de usuario
● Gestión del procesamiento
● Gestión de la base de datos

Hay 2 tipos de arquitecturas cliente servidor de dos capas:
● Clientes obesos (thick clients): La mayor parte de la lógica de la aplicación (gestión del procesamiento) reside junto a la lógica de la presentación (interfaz de usuario) en el cliente, con la porción de acceso a datos en el servidor.
● Clientes delgados (thin clients): solo la lógica de la presentación reside en el cliente, con el acceso a datos y la mayoría de la lógica de la aplicación en el servidor. Es posible que un servidor funcione como cliente de otro servidor. Esto es conocido como diseño de dos capas encadenado.

17
Q

Limitaciones Arquitectura de 2 capas

A

● Existe un número de usuarios máximo (generalmente 100). Más allá de este número de usuarios se
excede la capacidad de procesamiento.
● No hay independencia entre la interfaz de usuario y los tratamientos, lo que hace delicada la
evolución de las aplicaciones.
● Dificultad de relocalizar las capas de tratamiento consumidoras de cálculo.
● Reutilización delicada del programa desarrollado bajo esta arquitectura.

18
Q

Arquitectura de 3 capas

A

La arquitectura de 3 capas surgió para superar las limitaciones de la arquitectura de 2 capas. La tercera capa (servidor intermedio) está entre el interfaz de usuario (cliente) y el gestor de datos (servidor). La capa intermedia proporciona gestión del procesamiento y en ella se ejecutan las reglas y lógica de procesamiento.
Permite a cientos de usuarios. La arquitectura de 3 capas es usada cuando se necesita un diseño cliente/servidor que proporcione incrementar el rendimiento, flexibilidad, mantenibilidad, reusabilidad y escalabilidad mientras se esconde la complejidad del procesamiento distribuido al usuario

19
Q

Limitaciones Arquitectura de 3 capas

A

*Es complicado de construir.
*Las herramientas de programación no proporcionan todos los servicios deseados.
*La separación de la interfaz gráfica de usuario, la lógica de gestión de procesamiento y la lógica de datos no es siempre obvia.

20
Q

Middleware

A

El middleware es el software que proporciona un conjunto de servicios que permite el acceso transparente a los recursos en una red. El middleware es un módulo intermedio que actúa como conductor entre dos módulos de software. Para compartir datos, los dos módulos de software no necesitan saber cómo comunicarse entre ellos, sino cómo comunicarse con el módulo de middleware.

Es el encargado del acceso a los datos: acepta las consultas y datos recuperados directamente de la aplicación y los transmite por la red. También es responsable de enviar de vuelta a la aplicación, los datos de interés y de la generación de códigos de error

21
Q

Ventajas del Modelo Cliente-Servidor

A

● Interoperabilidad: los componentes clave (cliente, servidor y red) trabajan juntos.
● Flexibilidad: la nueva tecnología puede incorporarse al sistema.
● Escalabilidad: cualquiera de los elementos del sistema puede reemplazarse cuando es necesario, sin impactar sobre otros elementos. Si la base de datos crece, las computadoras cliente no tienen que equiparse con memoria o discos adicionales. Esos cambios afectan solo a la computadora en la que
se ejecuta la base de datos.
● Usabilidad: mayor facilidad de uso para el usuario.
● Integridad de los datos: entidades, dominios, e integridad referencial son mantenidas en el servidor de la base de datos.
● Accesibilidad: los datos pueden ser accedidos desde múltiples clientes.
● Rendimiento: se puede optimizar el rendimiento por hardware y procesos.
● Seguridad: la seguridad de los datos está centralizada en el servidor.

22
Q

Inconvenientes del Modelo Cliente-Servidor

A

● Hay una alta complejidad tecnológica al tener que integrar una gran variedad de productos. El
mantenimiento de los sistemas es más difícil pues implica la interacción de diferentes partes de
hardware y de software, distribuidas por distintos proveedores, lo cual dificulta el diagnóstico de
fallos.
● Requiere un fuerte rediseño de todos los elementos involucrados en los sistemas de información
(modelos de datos, procesos, interfaces, comunicaciones, almacenamiento de datos, etc.). Además,
en la actualidad existen pocas herramientas que ayuden a determinar la mejor forma de dividir las
aplicaciones entre la parte cliente y la parte servidor.
● Es más difícil asegurar un elevado grado de seguridad en una red de clientes y servidores que en un
sistema centralizado (cuanto más distribuida es la red, mayor es su vulnerabilidad).
● A veces, los problemas de congestión de la red pueden reducir el rendimiento del sistema por debajo
de lo que se obtendría con una única máquina (arquitectura centralizada). También la interfaz gráfica
de usuario puede a veces ralentizar el funcionamiento de la aplicación.
● Existen multitud de costos ocultos (formación en nuevas tecnologías, cambios organizativos, etc.)
que encarecen su implantación.
● La arquitectura cliente-servidor es una arquitectura que está en evolución, y como tal no existe
estandarización.

23
Q

Triggers

A

Un trigger es un procedimiento de aplicación invocado de forma automática por el SGBD cuando ocurre algún evento. El desarrollador escribe un código de gatillo e informa al SGBD de su existencia y de las condiciones bajo las cuales se deberá invocar dicho gatillo. Cuando se cumplen tales condiciones, el SGBD llamará al gatillo.

En un sistema cliente-servidor, los triggers residen en y son invocados por el servidor. Son útiles, pero pueden resultar un problema. En presencia de ellos, un usuario puede provocar una actividad en la base de datos que no espera o que ni siquiera conoce.

En un entorno multiusuario, los procedimientos de tipo trigger necesitan bloqueos. La transacción que genera el evento que dispara el trigger puede haber obtenido bloqueos que entran en conflicto con dicho trigger. En tal situación, una transacción puede crear un interbloqueo consigo misma.

24
Q

Control de Procesamiento Concurrente

A

*Control mediante el bloqueo pesimista
*Control mediante bloqueos optimistas

25
Q

Arquitectura Distribuida

A

Un sistema de computación distribuida consiste en un conjunto de computadores que están interconectados entre sí formando una red, y que cooperan para realizar una determinada tarea. Un sistema de computación distribuida parte un problema grande en pequeñas piezas, y soluciona cada una de ellas eficientemente de una manera coordinada.

Podemos definir una base de datos distribuida como aquella cuyos datos están repartidos entre más de una máquina, y un sistema de gestión de bases de datos distribuidas como el software que gestiona una base de datos distribuida haciendo que la distribución de los datos sea transparente al usuario, es decir, los usuarios actúan como si todo estuviese junto en una sola base de datos.