Relación+2

=RELACIÓN 2 DE EJERCICIOS. TEMA 3=

1.- Define las funciones del administrador de la base de datos.

La tarea del DBA (database administrator) es crear la base de datos en sí y poner en vigor los controles técnicos necesarios para apoyar las políticas dictadas por el administrador de datos. El DBA se encarga también de garantizar el funcionamiento adecuado del sistema y de proporcionar otros servicios de índole técnica relacionados. El DBA cuenta por lo regular con un grupo de programadores de sistemas y otros asistentes técnicos. La responsabilidad general del DBA es facilitar el desarrollo y el uso de la Base de Datos dentro de las guías de acción definidas por la administración de los datos. El DBA es responsable sobre todo de:
 * Administrar la estructura de la Base de Datos
 * Administrar la actividad de los datos
 * Administrar el Sistema Manejador de Base de Datos
 * Establecer el Diccionario de Datos
 * Asegurar la confiabilidad de la Base de Datos
 * Confirmar la seguridad de la Base de Datos

2.- Indica las diferencias existentes entre las funciones de manipulación y de descripción.

// Función de descripción o de definición //. Esta función debe permitir al administrador de la base especificar los elementos de datos que la integran, su estructura, las relaciones que existen entre ellos, las reglas de integridad semántica, los controles a efectuar antes de autorizar el acceso a la base, etc. Esta función se lleva a cabo mediante el Lenguaje de Descripción o de Definición de Datos (LDD) propio de cada SGBD y debe suministrar los medios para definir las tres estructuras de datos – externa, lógica global e interna -, especificando las características de los datos a cada uno de estos niveles. // Función de manipulación //. Permite a los usuarios de la Base buscar, añadir, suprimir o modificar los datos de la misma, siempre de acuerdo con las especificaciones y las normas de seguridad establecidas por el administrador. Esta función se realiza mediante el Lenguaje de Manipulación de Datos (LMD) que facilita los instrumentos necesarios para la realización de estas tareas.

3.- ¿Qué tipos de usuarios interaccionan con una base de datos?

Los usuarios de la BD pueden ser clasificados en los siguientes grupos dependiendo de su grado de experiencia o de la manera en que se relacionan con el SGBD:

// Usuarios accidentales o ingenuos. //

Son usuarios poco complejos que interactúan con el sistema mediante alguna aplicación permanente, por ejemplo, una aplicación que los orienta mediante menús dirigidos (por ejemplo, el cajero de un banco). No son en absoluto conscientes de la existencia de la BD o del sistema que da soporte a sus operaciones. Las operaciones que pueden realizar son muy limitadas y sólo afectan a una porción concreta de la BD. // Usuarios online. //

Comunican con la base de datos directamente, o indirectamente a través de un interfaz de usuario o de un programa de aplicación. Estos usuarios pueden ser conscientes de estar conectados a un sistema de base de datos y pueden tener una cierta experiencia dentro de las operaciones a que tienen acceso a través del interfaz que estén usando. Dentro de este tipo se encuentran también usuarios complejos que interactúan con el sistema directamente sin escribir programas, escribiendo sus consultas en un lenguaje de consulta de BD. Los usuarios online pueden ser también //ingenuos// y estar comunicándose con la BD mediante determinadas ayudas y menús. // Programadores de aplicaciones. //

Desarrollan los programas o interfaces de usuario que utilizan los primeros y algunos de los segundos; en los programas están incrustadas las sentencias de acceso a la BD escritas en LMD. Puesto que la sintaxis del LMD es por lo común muy diferente a la del lenguaje huésped, las llamadas en LMD van precedidas y seguidas, generalmente, por algunos caracteres especiales para que el precompilador de LMD pueda generar el código adecuado. // Administrador de la BD. //

Tiene el control centralizado del sistema de base de datos incluyendo programas y datos.


 * Crea, modifica y mantiene los esquemas en los distintos niveles; cualquier cambio en los esquemas requiere su participación. Estas operaciones las realiza mediante el LDD.
 * Especifica las restricciones necesarias para que se mantenga la integridad.
 * Controla todas las autorizaciones de acceso a los datos.
 * Define las políticas de recuperación y respaldos de datos (backup).
 * No tiene que ser una única persona, lo normal es que sea un grupo.

// Otros //

Podemos considerar otro tipo de usuarios, los //usuarios especializados//, que no escriben las aplicaciones tradicionales de procesamiento de datos, sino aplicaciones de inteligencia artificial, sistemas expertos, aplicaciones de audio o gráficas, etc, aunque también pueden considerarse dentro del grupo de programadores de aplicaciones.

4.- Indica que es un lenguaje huésped y un lenguaje anfitrión.

// Lenguaje huésped: // es el LMD de bajo nivel, que se ocupa de la manipulación física de los datos (acceso físico), se llama huésped porque suele estar alojado en algún otro lenguaje de programación de propósito general. //Lenguaje anfitrión//: Es un lenguaje principal a partir del cual se desarrolla la actividad necesaria con la base de datos. No necesita de ningún lenguaje huésped.

5.- La gestión del espacio de almacenamiento, ¿a qué nivel de la arquitectura ANSI/SPARC pertenece?

La gestión del espacio de almacenamiento pertenece al nivel interno.

6.- Dibujar un diagrama de la arquitectura de sistemas de bases de datos (ANSI/SPARC).



7.- Indica las principales funciones realizadas por el SGDB.

Las funciones esenciales de un SGBD son:
 * Función de descripción o de definición. Esta función debe permitir al administrador de la base especificar los elementos de datos que la integran, su estructura, las relaciones que existen entre ellos, las reglas de integridad semántica, los controles a efectuar antes de autorizar el acceso a la base, etc. Esta función se lleva a cabo mediante el Lenguaje de Descripción o de Definición de Datos (LDD,) propio de cada SGBD y debe suministrar los medios para definir las tres estructuras de datos –externa, lógica global e interna-, especificando las características de los datos a cada uno de estos niveles.
 * Función de manipulación. Permite a los usuarios de la Base buscar, añadir, suprimir o modificar los datos de la misma, siempre de acuerdo con las especificaciones y las normas de seguridad establecidas por el administrador. Esta función se realiza mediante el Lenguaje de Manipulación de Datos (LMD) que facilita los instrumentos necesarios para la realización de estas tareas.
 * Función de utilización. Reúne todas las interfaces que necesitan los diferentes usuarios para comunicarse con la base y proporciona un conjunto de procedimientos para el administrador entre los que se encuentra el Lenguaje de Control de Datos (LCD). Además, en la mayoría de los SGBD existentes en el mercado, existen funciones de servicio, como cambiar la capacidad de los ficheros, obtener estadísticas de utilización, cargar archivos, etc., y otras relacionadas con la seguridad física – copias de seguridad, rearranque en caso de caída del sistema, etc. – y protección frente accesos no autorizados.

Las funciones principales de un SGBD son: 1. Crear y organizar la Base de Datos. 2. Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que los datos puedan ser accedidos rápidamente. 3. Manejar los datos de acuerdo a las peticiones de los usuarios. 4. Registrar el uso de las bases de datos. 5. Responsable del verdadero almacenamiento de los datos. 6. Respaldo y recuperación. Consiste en contar con mecanismos implantados que permitan la recuperación fácilmente de los datos en caso de ocurrir fallos en el sistema de base de datos. 7. Control de concurrencia. Consiste en controlar la interacción entre los usuarios concurrentes para no afectar la inconsistencia de los datos. 8. Seguridad e integridad. Consiste en contar con mecanismos que permitan el control de la consistencia de los datos evitando que estos se vean perjudicados por cambios no autorizados o previstos.

8.- Explica la diferencia entre la independencia física y lógica de los datos.

La independencia lógica es la capacidad de modificar el esquema conceptual sin tener que alterar los esquemas externos ni los programas de aplicación. Se puede modificar el esquema conceptual para ampliar la base de datos o para reducirla. Si, por ejemplo, se reduce la base de datos eliminando una entidad, los esquemas externos que no se refieran a ella no deberán verse afectados. La independencia física es la capacidad de modificar el esquema interno sin tener que alterar el esquema conceptual (o los externos). Por ejemplo, puede ser necesario reorganizar ciertos ficheros físicos con el fin de mejorar el rendimiento de las operaciones de consulta o de actualización de datos. Dado que la independencia física se refiere sólo a la separación entre las aplicaciones y las estructuras físicas de almacenamiento, es más fácil de conseguir que la independencia lógica

9.- ¿Qué es el diccionario de datos?

Un diccionario de datos contiene las características lógicas de los datos que se van a utilizar en el sistema que estamos programando, incluyendo nombre, descripción, alias, contenido y organización. Estos dicccionarios se desarrollan durante el análisis de flujo de datos y ayuda a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño del proyecto.

10.- Diferencias entre el LDD y LMD de un sistema gestor de base de datos.

LMD es un lenguaje que permite a los usuarios acceder o manipular datos. Hay dos tipos: LMD procedimentales que requieren que se especifiquen los datos requeridos y como se buscarán, y los LMD no procedimentales que solo requiere que se especifique que datos se requieren.  La misión del L.D.D. es describir y definir todos los esquemas que participen en la base de datos. Esto consiste en la descripción de los objetos que vamos a representar. La descripción de todas las estructuras que formen nuestra base de datos. 11.- Indica los componentes principales de un sistema gestor de base de datos.

Un SGBD tiene varios módulos, cada uno de los cuales realiza una función específica. El sistema operativo proporciona servicios básicos al SGBD, que es construido sobre él.
 *  El //procesador de consultas// es el componente principal de un SGBD. Transforma las consultas en un conjunto de instrucciones de bajo nivel que se dirigen al gestor de la base de datos.
 * El //gestor de la base de datos// es el interface con los programas de aplicación y las consultas de los usuarios. El gestor de la base de datos acepta consultas y examina los esquemas externo y conceptual para determinar qué registros se requieren para satisfacer la petición. Entonces el gestor de la base de datos realiza una llamada al gestor de ficheros para ejecutar la petición.
 * El //gestor de ficheros// maneja los ficheros en disco en donde se almacena la base de datos. Este gestor establece y mantiene la lista de estructuras e índices definidos en el esquema interno. Si se utilizan ficheros dispersos, llama a la función de dispersión para generar la dirección de los registros. Pero el gestor de ficheros no realiza directamente la entrada y salida de datos. Lo que hace es pasar la petición a los métodos de acceso del sistema operativo que se encargan de leer o escribir los datos en el buffer del sistema.
 * El //preprocesador del LMD// convierte las sentencias del LMD embebidas en los programas de aplicación, en llamadas a funciones estándar escritas en el lenguaje anfitrión. El preprocesador del LMD debe trabajar con el procesador de consultas para generar el código apropiado.
 * El //compilador del LDD// convierte las sentencias del LDD en un conjunto de tablas que contienen metadatos. Estas tablas se almacenan en el diccionario de datos.
 * <span style="color: #000000; display: block; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">El //gestor del diccionario// controla los accesos al diccionario de datos y se encarga de mantenerlo. La mayoría de los componentes del SGBD acceden al diccionario de datos.

Los principales componentes del gestor de la base de datos son los siguientes:
 * <span style="color: #000000; display: block; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Control de autorización//. Este módulo comprueba que el usuario tiene los permisos necesarios para llevar a cabo la operación que solicita.
 * <span style="color: #000000; display: block; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Procesador de comandos.// Una vez que el sistema ha comprobado los permisos del usuario, se pasa el control al procesador de comandos.
 * <span style="color: #000000; display: block; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Control de la integridad.// Cuando una operación cambia los datos de la base de datos, este módulo debe comprobar que la operación a realizar satisface todas las restricciones de integridad necesarias.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Optimizador de consultas.// Este módulo determina la estrategia óptima para la ejecución de las consultas.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Gestor de transacciones.// Este módulo realiza el procesamiento de las transacciones.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Planificador (scheduler).// Este módulo es el responsable de asegurar que las operaciones que se realizan concurrentemente sobre la base de datos tienen lugar sin conflictos.
 * <span style="color: #000000; display: block; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Gestor de recuperación.// Este módulo garantiza que la base de datos permanece en un estado consistente en caso de que se produzca algún fallo.
 * <span style="color: #000000; display: block; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Gestor de buffers.// Este módulo es el responsable de transferir los datos entre memoria principal y los dispositivos de almacenamiento secundario. A este módulo también se le denomina //gestor de datos//.

12.- ¿Qué es un modelo de datos?

Un modelo de datos es un lenguaje orientado a describir una Base de Datos. Típicamente un modelo de datos permite describir:
 * Las estructuras de datos de la base: El tipo de los datos que hay en la base y la forma en que se relacionan.
 * Las restricciones de integridad: Un conjunto de condiciones que deben cumplir los datos para reflejar correctamente la realidad deseada.
 * Operaciones de manipulación de los datos: típicamente, operaciones de agregado, borrado, modificación y recuperación de los datos de la base.

Otro enfoque es pensar que un modelo de datos permite describir los elementos de la realidad que intervienen en un problema dado y la forma en que se relacionan esos elementos entre sí.

13.- ¿Qué son los lenguajes de cuarta generación? Pon ejemplos.

Son herramientas encargadas de optimizar el desarrollo de software automatizando la creación de este. Se han utilizado principalmente en la generación de código para GUI y además en la implementación de programas que facilitan las tareas de los desarrolladores y clientes. Son lenguajes no procedimentales. Ejemplo: SQL y QBE.

14.- Indica las principales ventajas de un sistema de bases de datos. ¿Existen algunas desventajas?

Sobre las ventajas ya hemos hablado sufucientemente a lo largo de este capítulo. Resumiendo podemos decir que un SGBD proporciona:
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">Gestión y control centralizado de los datos.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">Reducción de redundancias.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">Compartición de datos.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">Integridad.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">Seguridad.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">Control de concurrencia.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">Independencia de datos, permitiendo cambios y crecimiento.

Con respecto a las //desventajas// (relacionadas sobre todo con SGBD grandes), debemos citar las siguientes:
 * <span style="color: #000000; display: block; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Coste de software y hardware:// Además del coste de comprar el software, probablemente haya que ampliar o subir de versión el hardware (upgrade) para que el programa pueda almacenarse y funcione correctamente; además, si no, el sistema podría degradarse y los tiempos de respuesta subir drásticamente por la sobrecarga que añade el SGBD al tener que implementar la seguridad, integridad y datos compartidos. Recordemos que estamos hablando de SGBD grandes, no por supuesto de los de ordenadores personales.
 * <span style="color: #000000; display: block; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Coste de migración de aplicaciones:// Un coste adicional, también, es la migración de las aplicaciones para pasar a un entorno integrado.
 * <span style="color: black; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">Las operaciones de respaldo y recuperación de los datos en caso de fallo son complejas, debido al acceso concurrente de múltiples usuarios.
 * <span style="color: #000000; display: block; line-height: normal; margin-bottom: 0.0001pt; margin-top: 0cm; text-align: justify;">//Criticidad del SGBD:// La centralización también significa que los datos de la organización, están almacenados en un único lugar, en la base de datos, con lo que cualquier fallo de seguridad u operación del SGBD puede afectar a toda la organización (sistemas distribuidos y compartidos).