UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA EXT. EN SANTA LUCIA COTZ. EXAMEN GENERAL PRIVADO ING. OSCAR PAZ
EXAMEN ESCRITO
ANALISIS Y DISEÑO
OSCAR JOEL CONTRERAS ROJAS 2990-08-2609 02 de Octubre de 2014
TEMA III Desarrolle los siguientes conceptos:
1. ¿CUÁL ES LA DIFERENCIA ENTRE UN ADMINISTRADOR DE DATOS Y UN ADMINISTRADOR DE LA BASE DE DATOS? Administrador de Datos: en sí sería cualquier cosa que maneje una base de datos, en otras palabras, siendo más específico un software que controle y administre datos. Se dedica a ver por la integridad de los datos contenidos en la base de datos Administrador de la Base de Datos: es una persona como tal que tiene a su cargo distintas bases de datos a su cargo. Realiza funciones de respaldo y recuperación de bases de datos. Manejo de dispositivos. Control de usuarios, etc.
2. DEFINA QUE ES UN ATRIBUTO EN UN MODELO ENTIDAD RELACION Los atributos son las características que definen o identifican a una entidad. Estas pueden ser muchas, y el diseñador solo utiliza o implementa las que considere más relevantes. Los atributos son las propiedades que describen a cada entidad en un conjunto de entidades.
3. CUAL ES LA DIFERENCIA ENTRE DATO E INFORMACION Un dato es un estímulo que puede dirigirse a cualquiera de los sentidos, sin ninguna carga semántica, es decir ningún significado, son una mera expresión de existencia de la realidad y no aportan comprensión sobre la misma. La información es una cadena de datos que construye un mensaje, es decir, que aporta un significado. Las computadoras pueden albergar miles de datos. Es la interpretación humana lo que las convierte en información. Un dato solo es una serie de cosas que me sirven para obtener o llegar a un resultado, en el caso de sistemas, un dato no es más que la forma estructurada en la que se almacenan las cosas. Una información es el resultado de un análisis o un proceso, generalmente de datos
4. DESCRIBA LOS TRES NIVELES DE LA ARQUITECTURA ANSI/SPARC PARA BASE DE DATOS El objetivo de la arquitectura de tres niveles es el de separar los programas de aplicación de la base de datos física. a)
Nivel interno: Tiene un esquema interno que describe la estructura física de almacenamiento de base de datos. Emplea un modelo físico de datos y los únicos datos que existen están realmente en este nivel.
b)
Nivel conceptual: tiene esquema conceptual. Describe la estructura de toda la base de datos para una comunidad de usuarios. Oculta los detalles físicos de almacenamiento y trabaja con elementos lógicos como entidades, atributos y relaciones.
c)
Nivel externo o de vistas: tiene varios esquemas externos o vistas de usuario. Cada esquema describe la visión que tiene de la base de datos a un grupo de usuarios, ocultando el resto.
5. ¿QUE ES UN SISTEMA ADMINISTRADOR DE LA BASE DE DATOS (DBMS)? (Data Base Management System) Un sistema administrador de bases de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien mediante aplicaciones al efecto.
6. ¿CUAL ES LA DIFERENCIA ENTRE UN DBMS Y UN RDBMS? DBMS – Sistema de Gestión de Base de datos Ejemplo: Sistema de archivos XML RDBMS – Sistema de Gestión de Base de datos Relacional Ejemplos: RDBMS – SQL Server, Oracle Con la necesidad de mejores medios para almacenar y recuperar datos, se creó el DBMS (Sistema de Gestión de Bases de Datos). Un DBMS almacena datos en una tabla donde las entradas se presentan bajo una categoría específica y están indexadas adecuadamente. El DBMS es un sistema muy competente para darle seguimiento a los datos, pero no balancea estos muy bien.
Para hacer frente a este obstáculo, se desarrolló el RDBMS o (Sistema de Gestión Relacional de Bases de Datos). Una base de datos relacional, contiene datos en más de una tabla. Cada tabla contiene una base de datos, que a continuación, está vinculada a otras tablas, con respecto a sus relaciones. Esto se explica mejor con un ejemplo: Supongamos que tiene un negocio de reparación de coches al que se desea construirle una base de datos, necesitará una lista de sus clientes y los coches que poseen. Podría ser un poco más complejo si se aplican en DBMS pero con RDBMS puede hacerlo con facilidad. Puede crear dos tablas, una para los clientes y otra para los coches y luego vincularlas entre sí. Con eso, fácilmente puede extraer información de un cliente y luego que coches que poseen.
7. UN DSL DE QUE TIPOS DE SUBLENGUAJES ESTA COMPUESTO a) DDL. (Lenguaje de definición de datos).- Con el que es posible definir o declarar los objetos de la base de datos. b) DML. (Lenguaje de manipulación de datos).- Con el que es posible manipular o procesar dichos objetos.
8. DEFINA EL NIVEL CONCEPTUAL DE LA ARQUITECTURA ANSI/SPARC Nivel conceptual: tiene esquema conceptual. Describe la estructura de toda la base de datos para una comunidad de usuarios. Oculta los detalles físicos de almacenamiento y trabaja con elementos lógicos como entidades, atributos y relaciones.
9. DEFINA QUE SON LAS CORRESPONDENCIAS EN LA ARQUITECTURA ANSI/SPARC Es el proceso de transformar peticiones y resultados de un nivel a otro nivel (Interno, Conceptual, Externo) en la arquitectura ANSI/PARC.
Estos procesos pueden requerir bastante tiempo, por lo que algunos SGBD no cuentan con vistas externas.
10. CUAL ES LA DIFERENCIA ENTRE UN DDL Y UN UML Lenguaje de definición de datos (DDL) El lenguaje de definición de datos (Data Definition Language), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para modificar, borrar o definir las tablas en las que se almacenan los datos de la base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE. Lenguaje de manipulación de datos (DML) Un lenguaje de manipulación de datos (Data Manipulation Language) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional.
11. EN UNA BASE DE DATOS, PARA QUE SIRVE EL DICCIONARIO DE DATOS
Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización. En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del flujo de datos de todo el sistema. Los elementos más importantes son flujos de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos.
12. DEFINA CUALES ACTIVIDADES DEBE ASEGURAR UN DBMS BASADO EN LA ARQUITECTURA ANSI/SPARC a) Manejar vistas de usuario b) Independencia de datos c) Ampliar el catálogo o diccionario, de modo que incluya información sobre cómo establecer la correspondencia entre las peticiones de los usuarios y los datos, entre los diversos niveles
13. DESCRIBA LA ARQUITECTURA CLIENTE/SERVIDOR Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. La interacción cliente-servidor es el soporte de la mayor parte de la comunicación por redes. Ayuda a comprender las bases sobre las que están construidos los algoritmos distribuidos. La arquitectura Cliente/Servidor agrupa conjuntos de elementos que efectúan procesos distribuidos y computo cooperativo. La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de información, en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos. Se denomina cliente al proceso que inicia el diálogo o solicita los recursos y servidor, al proceso que responde a las solicitudes.
14. QUE ES EL BACK-END Back-End hace referencia al estado final de un proceso
15. EN QUE SE DIFERENCIA EL BACK END DEL FRONT-END Back-End hace referencia al estado final de un proceso. Front-End, que se refiere al estado inicial de un proceso. La idea general es que el Front-end es responsable de recoger entradas de los usuarios, y ser procesadas de tal manera que cumplan las especificaciones para que el Back-End pueda usarlas. La conexión entre Front-End y el Back-End es un tipo de interfaz. Back-End adquiere un significado más especial en determinados contextos
16. DESCRIBA COMO FUNCIONA EL TWO FACE COMMIT En interconexión de computadores y Base de datos, el protocolo commit de dos fases es un algoritmo distribuido que permite a todos los nodos de un sistema distribuido ponerse de acuerdo para hacer commit a una transacción. El resultado del protocolo en que todos los nodos realizan commit de la transacción o abortan, incluso en el caso de fallos en la red o fallos en nodos. Las dos fases del algoritmo son la fase de petición de commit, en el cual el coordinador intenta preparar a todos los demás, y la fase commit, en la cual el coordinador completa las transacciones a todos los demás participantes. Funciona de la siguiente manera: Fase de petición del Commit El coordinador envía un mensaje consulta para commit a todos los participantes. Los participantes ejecutan la transacción hasta el punto donde ellos serán preguntados para realizar commit. Ellos pueden escribir una entrada a su log undo (log de deshacer) y una entrada a su log redo(log de rehacer). Cada participante responde con un mensaje acuerdo si la transacción tuvo éxito, o un mensaje abortar si falló la transacción. El Coordinador espera hasta que tenga un mensaje de cada participante. Fase Commit Éxito Si el coordinador de esta página recibió un mensaje acuerdo de todos los participantes durante la fase de petición de commit: El coordinador envía un mensaje commit a todos los participantes. Cada participante completa la operación, y libera todos los bloqueos y recursos mantenidos durante la transacción. Cada participante envía un reconocimiento (ack) al coordinador. El coordinador completa la transacción cuando ha recibido todos los reconocimientos. Fracaso Si algún participante envió un mensaje abortar durante la fase de petición de commit: El coordinador envía un mensaje Rollback a todos los participantes. Cada participante deshace la transacción usando el log undo (log de deshacer), y libera los recursos y bloqueos mantenidos durante la transacción. Cada participante envía un reconocimiento (ack) al coordinador. El Coordinador completa la transacción cuando han sido recibidos los reconocimientos.
17. DESCRIBA LAS TRES PRIMERAS FORMAS NORMALES
a) Primera Forma Normal (1FN) Una tabla está en Primera Forma Normal si:
Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos. La tabla contiene una clave primaria única. La clave primaria no contiene atributos nulos. No debe existir variación en el número de columnas. Los Campos no clave deben identificarse por la clave (Dependencia Funcional) Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados Una tabla no puede tener múltiples valores en cada columna. Los datos son atómicos (a cada valor de X le pertenece un valor de Y y viceversa). Esta forma normal elimina los valores repetidos dentro de una Base de Datos.
b) Segunda Forma Normal (2FN) Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal).
En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependencia completamente funcional. Una dependencia funcional es completamente funcional si al eliminar los atributos A de X significa que la dependencia no es mantenida, esto es que . Una dependencia funcional es una dependencia parcial si hay algunos atributos que pueden ser eliminados de X y la dependencia todavía se mantiene, esto es . Por ejemplo {DNI, ID_PROYECTO} HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente funcional dado que ni DNI HORAS_TRABAJO ni ID_PROYECTO HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO} NOMBRE_EMPLEADO es
parcialmente dependiente dado que DNI mantiene la dependencia.
NOMBRE_EMPLEADO
c) Tercera Forma Normal (3FN) La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre los atributos que no son clave. Un ejemplo de este concepto sería que, una de pendencia funcional X->Y en un esquema de relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde se mantiene X->Z y Z->Y.
Por ejemplo, la dependencia SSN->DMGRSSN es una dependencia transitiva en EMP_DEPT de la siguiente figura. Decimos que la dependencia de DMGRSSN el atributo clave SSN es transitiva vía DNUMBER porque las DNUMBER→DMGRSSN son
dependencias mantenidas, y
SSN→DNUMBER DNUMBER no es
y un
subconjunto de la clave de EMP_DEPT. Intuitivamente, podemos ver que la dependencia de DMGRSSN sobre DNUMBER es indeseable en EMP_DEPT dado que DNUMBER no es una clave de EMP_DEPT.
Formalmente, un esquema de relación está en 3 Forma Normal Elmasri-Navathe, si para toda dependencia funcional , se cumple al menos una de las siguientes condiciones: es súper llave o clave. es atributo primo de ; esto es, si es miembro de alguna clave en . Además el esquema debe cumplir necesariamente, con las condiciones de segunda forma normal.
18. DESCRIBA LA FORMA NORMAL BOYSE – CODD Forma Normal de Boyce-Codd (FNBC) La tabla se encuentra en FNBC si cada determinante, atributo que determina completamente a otro, es clave candidata. Deberá registrarse de forma anillada ante la presencia de un intervalo seguido de una formalización perpetua, es decir las variantes creadas, en una tabla no se llegaran a mostrar, si las ya planificadas, dejan de existir. Formalmente, un esquema de relación está en FNBC, si y sólo si, para toda dependencia funcional válida en , se cumple que es súper llave o clave.
De esta forma, todo esquema que cumple FNBC, está además en 3FN; sin embargo, no todo esquema que cumple con 3FN, está en FNBC.
19. DESCRIBA LAS ETAPAS DEL CICLO DE VIDA DEL DESARROLLO DE SOFTWARE Es la forma mediante la cual se describen los diferentes pasos que se deben seguir para el desarrollo de un software, partiendo desde una necesidad hasta llegar a la puesta en marcha de una solución y su apropiado mantenimiento. El ciclo de vida para un software comienza cuando se tiene la necesidad de resolver un problema, y termina cuando el programa que se desarrolló para cumplir con los requerimientos. Existen varias versiones del ciclo de vida del software entre las cuales se destacan: el ciclo de vida clásico o en cascada, el modelo en espiral, el desarrollo de prototipos, el modelo por incrementos y el modelo extremo. Las etapas son las siguientes:
REQUERIMIENTOS: En esta etapa es la parte inicial, ya que consiste en obtener los requerimientos para saber la funcionalidad del software, se utilizan métodos para la colección de información como entrevistas a los involucrados, cuestionarios, etc. ANÁLISIS: En esta etapa se debe entender y comprender de forma detallada cual es la problemática a resolver, verificando el entorno en el cual se encuentra dicho problema, de tal manera que se obtenga la información necesaria y suficiente para afrontar su respectiva solución. Esta etapa es conocida como la del QUÉ se va a solucionar. DISEÑO: Una vez que se tiene la suficiente información del problema a solucionar, es importante determinar la estrategia que se va a utilizar para resolver el problema. Esta etapa es conocida bajo el CÓMO se va a solucionar. IMPLEMENTACIÓN: partiendo del análisis y diseño de la solución, en esta etapa se procede a desarrollar el correspondiente programa que solucione el problema mediante el uso de una herramienta computacional determinada. PRUEBAS: Los errores humanos dentro de la programación de los computadores son muchos y aumentan considerablemente con la complejidad del problema. Cuando se termina de escribir un programa de computador, es necesario realizar las debidas
pruebas que garanticen el correcto funcionamiento de dicho programa bajo el mayor número de situaciones posibles a las que se pueda enfrentar.
DOCUMENTACIÓN: Es la guía o comunicación escrita en sus diferentes formas, ya sea en enunciados, procedimientos, dibujos o diagramas que se hace sobre el desarrollo de un programa. La importancia de la documentación radica en que a menudo un programa escrito por una persona, es modificado por otra. Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). MANTENIMIENTO: una vez instalado un programa y puesto en marcha para realizar la solución del problema previamente planteado o satisfacer una determinada necesidad, es importante mantener una estructura de actualización, verificación y validación que permitan a dicho programa ser útil y mantenerse actualizado según las necesidades o requerimientos planteados durante su vida útil. Para realizar un adecuado mantenimiento, es necesario contar con una buena documentación del mismo.
20. DE QUE ELEMENTOS ESTA COMPUESTO LA METODOLOGIA RUP
Inicio (Define el alcance del proyecto, reglas, arquitectura de negocio) Elaboración (definición, análisis, diseño, diagramas) Construcción (implementación) Transición (fin del proyecto y puesta en producción
TEMA II En base al modelo, escriba las siguientes consultas:
SELECCIONE TODOS LOS ARTICULOS QUE SE VENDIERON EN LA TEMPORADA DE MAYORES VENTAS, EXCEPTUANDO EL DIA DE LA MADRE SELECT ID_ARTICULO, NOMBRE_ARTICULO FROM (ARTICULO A, ORDEN_COMPRA O, TEMPORADA T WHERE A.ID_PRODUCTO = O.ID_PRODUCTO AND T.ID_TEMPORADA = O.ID_TEMPORADA WHERE NOMBRE_TEMPORADA IN (SELECT NOMBRE_TEMPORADA FROM TEMPORADA GROUP BY NOMBRE_TEMPORADA HAVING COUNT(*) < ANY (SELECT COUNT(*) FROM TEMPORADA WHERE NOMBRE_TEMPORADA = ´DIA_DE_LA_MADRE´)) GROUP BY ID_ARTICULO;
SELECCIONE TODAS LAS ORDENES DE COMPRA QUE SE GENERARON AUTOMATICAMENTE EN LOS ULTIMOS 90 DIAS, EXCEPTUANDO AQUELLAS QUE SEAN ELECTRONICOS O JUGUETES SELECT * FROM ORDEN_COMPRA SYSDATE <90 HAVING COUNT(*) < ANY (SELECT COUNT(*) FROM CATEGORIA_ARTICULO C, ARTICULO A WHERE C.ID_ARTICULO = A.ID_ARTICULO AND NOMBRE_CATEGORIA = ´ELECTRONICO´ AND NOMBRE_CATEGORIA = ´JUGUETE´) HAVING ID_ARTICULO
SELECCIONE EL TOP 10 DE LOS ARTICULOS MAS VENDICIOS EN LOS ULTIMOS 30 DIAS Y QUE NO HAYAN TENIDO UNA SOLA VENTA EN LOS ULTIMOS 60 DIAS A PARTIR DE LA PRIMERA VENTA
SELECT TOP 10 A.ID_ARTICULO, A.NOMBRE_ARTICULO, SUM(O.CANTIDAD) FROM ARTICULO A, ORDEN_COMPRA O WHERE A.ID_PRODUCTO = O.ID_PRODUCTO AND ID_ARTICULO IN (SELECT ID_ARTICULO FROM ARTICULO A, ORDEN_COMPRA O WHERE A.ID_PRODUCTO = O.ID_PRODUCTO BETWEEN SYSDATE <30 AND FECHA_ORDEN IN (SELECT COUNT(FECHA_ORDEN) FROM ORDEN_COMPRA WHERE SYSDATE <60)) ORDER BY SUM(CANTIDAD)