301125 - Bases De Datos Avanzadas: Curso Electivo

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingenier

Views 210 Downloads 3 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

301125 - BASES DE DATOS AVANZADAS Curso Electivo

ANÍVAR CHAVES TORRES (Director Nacional)

JAVIER JIMENEZ (Acreditador)

San Juan de Pasto 7 de febrero de 2012

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

La primera versión de este documento fue escrita por el ingeniero Rogelio Vásquez Bernal, posteriormente ha sido actualizado por otros profesionales, docentes de la UNAD, cuyos nombres no fueron registrados. Esta versión del documento ha sido editada por Anívar Chaves Torres. Este documento fue preparado para estudiantes de Ingeniería de sistemas de la Unad y se acoge a la licencia Creative Commons 3.0. En consecuencia, se permite su uso con fines académicos, siempre que se reconozca el crédito al autor. Se prohíbe la reproducción, por cualquier medio, con fines comerciales. Los ejemplos y ejercicios han sido diseñados exclusivamente con fines didácticos, el autor, el editor y la universidad no asumen ninguna responsabilidad por la aplicación de los mismos en con propósitos diferentes a la comprensión de los temas de este curso.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

CONTENIDO Número de créditos y dedicación horaria................................................................................. 6 Protocolo........................................................................................................................................ 7 Introducción general al curso ................................................................................................... 14 Unidad I. Bases de datos distribuidas..................................................................................... 15 Capitulo 1. Conceptos básicos de bases de datos ........................................................... 15 Lección 1. Modelo entidad relación................................................................................. 15 Lección 2. Elementos del Modelo entidad relación....................................................... 18 Lección 3. Álgebra relacional ........................................................................................... 28 Lección 5. Transacciones ................................................................................................. 39 Capítulo 2. Diseño de bases de datos distribuidas........................................................... 50 Lección 6. Bases de datos distribuidas .......................................................................... 50 Lección 7. Bases de datos distribuidas .......................................................................... 55 Lección 8. Fragmentación................................................................................................. 59 Lección 9. Tipos de fragmentación de datos ................................................................. 64 Lección 10. Diseño de replica .......................................................................................... 68 Capitulo 3. Consultas............................................................................................................. 70 Lección 11. Consultas distribuidas .................................................................................. 70 Lección 12. Descomposición de una consulta y localización de datos distribuidos 74 Lección 13. Transacciones Distribuidas ......................................................................... 76 Lección 14. Consistencia de la base de datos interna................................................. 84 Lección 15. Catálogo ....................................................................................................... 101 Unidad 2. Bodegas de datos .................................................................................................. 106 Capítulo 4. Diseño de bodegas de datos ......................................................................... 106

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Lección 16. Introducción ................................................................................................. 106 Lección 17. Construcción y manejo de una bodega de datos .................................. 108 Lección 18. Construcción del Data Warehouse. ......................................................... 109 Lección 19. Estrategias recomendadas para diseño de datos ................................. 111 Lección 20. Factores de riesgo...................................................................................... 114 Capitulo 5. Minería de datos............................................................................................... 115 Lección 22. Fundamentos del Data Mining.................................................................. 116 Lección 23. Alcance de Data Mining ............................................................................. 117 Lección 24. Fases de un Proyecto de Minería de Datos ........................................... 119 Lección 25. Cómo Trabaja el Data Mining?................................................................. 120 Capítulo 6. Herramientas de minería de datos................................................................ 122 Lección 26. Redes neuronales artificiales:................................................................... 122 Lección 27. Árboles de decisión: ................................................................................... 123 Lección 28. Método del vecino más cercano:.............................................................. 124 Lección 29. Algoritmos genéticos .................................................................................. 125 Lección 30. Regla de inducción: .................................................................................... 126 Unidad 3. Bases de datos orientadas a objetos.................................................................. 127 Capítulo 7. Orientación a objetos ...................................................................................... 127 Lección 31. Introducción ................................................................................................ 127 Lección 32. Conceptos básicos: .................................................................................... 129 Lección 33. Arquitectura de administrador de sistemas de BDOO.......................... 132 Lección 34. Sistema administradores de bases de datos orientadas a objetos (SABD-OO) ....................................................................................................................... 134 Lección 35. El sistema Postgres................................................................................... 135 Capitulo 8. Lenguaje de Modelado Unificado UML ........................................................ 136

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Lección 36. Introducción ................................................................................................. 136 Lección 37. ¿Método o Lenguaje de Modelado? ........................................................ 138 Lección 38. Una perspectiva de UML ........................................................................... 140 Lección 39. Diagramas de Secuencia .......................................................................... 145 Lección 40. Diagramas de Colaboración...................................................................... 147 Capítulo 9. Modelado con UML ......................................................................................... 148 Lección 41. Modelando el comportamiento de las Clases con Diagramas de Estado ............................................................................................................................................ 148 Lección 42. Diagramas de Actividad............................................................................. 150 Lección 43. Modelando Componentes de Software ................................................... 152 Lección 44. Modelando la Distribución y la Implementación..................................... 153 Lección 45. Diseño de Bases de Datos Relacionales -- Una extensión informal de UML .................................................................................................................................... 154

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Número de créditos y dedicación horaria El curso de Bases de datos avanzada está configurado como curso de 3 créditos. El sistema de créditos, garantiza procesos de movilidad entre instituciones del sistema de educación superior e indica la cantidad de tiempo que un estudiante debe invertir para conocer y manejar los temas propuestos en un curso académico. Para la UNAD, por cada crédito académico, el estudiante debe invertir: 2 horas de trabajo individual por semana. El tiempo de trabajo individual lo define el estudiante, de acuerdo a su disponibilidad de tiempo. En este espacio se incluye el tiempo de trabajo colaborativo. 1 hora de trabajo en acompañamiento con tutor. Sea mediante tutorias CV o ST Es decir, que el curso exige que el estudiante mínimo invierta 144 horas en el semestre

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Protocolo Introducción El curso de Bases de datos Avanzada hace una revisión acerca de diversas aplicaciones, en cuanto a bases de datos se refiere, que permiten identificar ventajas, desventajas y áreas de aplicación. Este curso es electivo, pretende fortalecer los conocimientos básicos de bases de datos y revisar los temas de diferentes tipos de aplicación. Es un curso metodológico, de tres créditos (3), lo que significa que deben realizar procesos de aprendizaje de por lo menos 144 horas en el semestre: 108 horas de dedicación independiente, investigando, leyendo, interiorizando los conceptos, desarrollo de actividades colaborativas con otros compañeros de curso; 36 horas de acompañamiento tutorial, donde se resuelven dudas, se apoya el proceso individual y de grupo. El curso pretende: Conocer otros tipos de modelos de datos. Determinar las condiciones, necesidades, ventajas y desventajas de los diferentes tipos de bases de datos. Aplicar los conceptos de acuerdo a los requerimientos de la empresa Justificación Los sistemas de bases de datos, son los más importantes para el manejo eficiente de información. Aunque el sustento teórico sigue siendo el mismo, las realidades de la empresa, las aplicaciones de la información almacenadas en las bases de datos, como soporte decisional, las inclusión de los objetos en el mundo planificado y pensado para registros planos, hace de este curso importante para ver otras realidades y retos en el desarrollo de los sistemas de bases de datos. Las competencias que promueve el curso y que son necesarias son: Cognitiva: Capacidad de apropiarse de un conjunto de conocimientos a través del desarrollo, monitoreo y aplicación de procesos de pensamiento. Comunicativa: Capacidad de comprender, expresar mensajes y de desarrollar procesos argumentativos, apoyados por las relaciones interpersonales.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Contextual: Capacidad de ubicar el conocimiento en el contexto científico, político, cultural, tecnológico, social y en el plano nacional e internacional, así como la disposición y capacidad para aplicarlo en procesos de transformación que inciden en la calidad de vida de la población. Valorativa: Capacidad de apropiarse de valores como el respeto a la vida y a las ideas de los demás; la dignidad humana, la convivencia, la solidaridad, la tolerancia y la libertad que orientan las acciones del individuo como persona, como ser social y como profesional. Para el logro de éstas competencias, es necesario que se planifique de manera responsable el proceso de auto estudio por parte del estudiante si se quieren lograr resultados positivos en el aprendizaje de los conceptos incluidos en el curso. Este proceso se puede planificar en diferentes momentos: Autoestudio: Estudio individual del material sugerido y consulta de otras fuentes documentales (consultas en bibliotecas, Internet, bibliografía recomendada, consulta a bases de datos documentales, entre otros) Trabajo en grupos colaborativos: Creación de grupos de estudio o discusión con el propósito de proponer ideas, resolver dudas o preparar consultas estructuradas al tutor. Consultas al tutor: Consulta al tutor de las inquietudes surgidas en el punto anterior. Retroalimentación: Una vez el tutor haya resuelto las inquietudes, estudie nuevamente el tema, teniendo en cuenta las sugerencias o respuestas dadas en los encuentros por el tutor. Procesos de evaluación: Una vez se haya realizado el proceso de retroalimentación, desarrolle los diferentes momentos de evaluación propuestos en el curso como son la autoevaluación, coevaluación y heteroevaluación. Se entiende por autoevaluación, el proceso autocritico, donde el estudiante determina si su conocimiento del tema es aceptable o si debe reiniciar el proceso. Coevaluación, proceso mediante el cual, el grupo de estudiantes que desarrolla actividades colaborativas en un tema, califica el desempeño de cada uno de sus compañeros. Por último, una vez el estudiante ha pasado los filtros necesarios para garantizar las competencias básicas del curso, se presenta ante los procesos de evaluación propuestos por el tutor.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Intensionalidades formativas Propósitos El curso pretende definir un marco de trabajo que facilite el desarrollo de conocimientos alrededor de los temas propuestos Reconocer la existencia de modelos de datos y sus implicaciones en los sistemas de información Determinar cuando se deben usar las estructuras de bases de datos definidas en el curso académico Objetivos   

 

Reconocer las ventajas de las bases de datos en los procesos de análisis de información y como herramienta para la toma de decisiones. Entender el modelo de bases de datos distribuido, sus ventajas, desventajas y las posibilidades del modelo sobre la plataforma de alta velocidad de trasmisión. Conocer y aplicar los conceptos de bodegas de datos, como herramienta indispensable para almacenar información que facilite procesos de análisis y toma de decisiones Conocer las técnicas de minería de datos, sus aplicaciones y los resultados obtenidos. Reconocer los conceptos básicos de un sistema de base de datos orientado a objetos, el modelo de datos, sus ventajas, desventajas y aplicaciones.

Metas 

Que el estudiante refuerce los conocimientos de bases de datos relacionales, el uso de SQL y tenga los conceptos básicos para administrar una base de datos



Que el estudiante pueda aplicar los modelos de datos usados para los sistemas de bases de datos transaccionales, bodegas de datos y modelos de datos orientados a objeto Que el estudiante conozca que técnicas puede aplicar para minería de datos. Que el estudiante pueda plantear proyectos que requieran las tecnologías desarrolladas en el curso

 

Competencias Las competencias que promueve el curso y que son necesarias son: Cognitiva: Capacidad de apropiarse de los conocimientos planteados en el contenido del curso a través del desarrollo, monitoreo y aplicación de procesos de pensamiento.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Comunicativa: Capacidad de comprender, expresar mensajes y de desarrollar procesos argumentativos, apoyados por las relaciones interpersonales. Contextual: Capacidad de ubicar el conocimiento en el contexto científico, político, cultural, tecnológico, social y en el plano nacional e internacional, así como la disposición y capacidad para aplicarlo en procesos de transformación que inciden en la calidad de vida de la población. Valorativa: Capacidad de apropiarse de valores como el respeto a la vida y a las ideas de los demás; la dignidad humana, la convivencia, la solidaridad, la tolerancia y la libertad que orientan las acciones del individuo como persona, como ser social y como profesional. El curso busca que el estudiante reconoce las diferentes áreas de aplicación de las bases de datos, diseñando y construyendo soluciones eficientes que permiten apoyar los procesos de toma de decisiones en la empresa. Unidades didácticas Repaso Conceptos Bases de datos. Este tema incluye, Modelo Entidad Relación, normalización de datos y SQL. Unidad I. Bases de datos distribuidas, que son, modelo de datos Entidad Relación, fragmentación y replicación, transacciones, consultas y catalogo distribuido. Unidad II. Bodegas de datos, que son, modelo relacional, modelo copo de nieve. Carga de datos y minería de datos. Unidad III Bases de datos orientadas a objeto. Objetos, propiedades, diseño de objetos UML, SQL.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Estructura del curso

Contexto teórico El curso de bases de datos avanzada, se ha pensado como un curso electivo que quiere fortalecer los temas vistos en el curso básico. Se intenta mostrar el sustento teórico en los sistemas de bases de datos distribuidos, sistema que hoy retoma importancia por los desarrollos en los medios de comunicación que han reactivado ese tipo de proyectos. De otro lado, hoy en día los sistemas de bodegas de datos tienen un espacio claro en la empresa, para permitir, al revisar la historia, crear el concepto de fidelidad y conocimiento de los gustos del cliente para ofrecer mejores servicios. De otro lado, la idea de objetos y como los sistemas de bases de datos los utilizan, es importante por el auge que ha tomado este tipo de sistemas. Metodología Con el propósito de dar cumplimiento a las intencionalidades formativas del curso, es importante que se planifique de manera responsable el proceso de aprendizaje

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

teniendo en cuenta las características de la metodología de educación a distancia, por tal razón, este proceso se puede estructurar mediante las siguientes fases: Reconocimiento: Mediante esta etapa se pretende reconocer los conocimientos previos del estudiante, por lo tanto la función didáctica consiste en crear actividades mediante las cuales se identifican los propósitos del curso, sus intencionalidades y se presenta el desarrollo del curso. Esta fase puede desarrollarse de manera individual a través del estudio del protocolo del curso, el modulo y las fuentes documentales suministradas por el tutor y a través de actividades grupales desarrolladas por el tutor. Profundización: Teniendo en cuenta que esta se refiere al conjunto de actividades previamente planificadas conducentes al dominio de conceptos y competencias de ordenes diferentes, se han definido los siguientes propósitos de formación: 

Trabajo personal: desarrolladas por el estudiante, a través de: estudio del material sugerido en el curso académico, consulta de fuentes documentales (bibliografía de documentos impresos en papel: libros y revistas; bibliografía de documentos situados en Internet; direcciones de sitios Web de información especializada y bibliotecas)



Trabajo en grupo: desarrolladas por estudiantes a través de pequeños grupos colaborativos de carácter obligatorio, con el propósito de: socialización del trabajo personal, desarrollo de actividades en equipo, elaboración de informes, de acuerdo con las actividades programadas en la guía didáctica.



Tutoría en grupo de curso: teniendo en cuenta las inquietudes presentadas por el estudiante a partir del trabajo personal y del trabajo en grupo, el tutor estará dispuesto a resolver las consultas mediante la valoración de informes y el intercambio de conocimientos en el tratamiento de las temáticas propuestas.



Tutoría individual: entendida como el acompañamiento que el tutor debe ofrecer al estudiante mediante el uso de las tecnologías de información y la comunicación, tales como: correo electrónico, salas de conversación, foros de discusión, el teléfono y Chat; también se puede complementar con encuentros presenciales.

Transferencia: todo conocimiento, habilidad, destreza o competencias puede permitir la transferencia de situaciones conocidas a situaciones desconocidas; por lo tanto en esta fase requiere que tomando como referencia las fases de reconocimiento y profundización que se elaboren ensayos, evaluaciones, mapas conceptuales y talleres de aplicación en las diferente fases del curso académico. Sistema de evaluación Los procesos de evaluación del aprendizaje estarán correlacionados y articulados de manera necesaria al principio de autonomía y generaran en el estudiante competencias para la realización de procesos de auto evaluación, coevaluación y heteroevaluación. A continuación se indica cada uno de estos procesos:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Autoevaluación: Es aquella que realiza el mismo estudiante, donde a medida que va estudiando, se va planteando preguntas que el mismo las resuelve. De esta forma el estudiante hace su propio seguimiento, identificando avances y dificultades, lo que hace el proceso de autoaprendizaje muy dinámico y participativo. Este tipo de evaluación NO tiene ponderación en la valoración del curso, solo es una forma de identificar fortalezas, oportunidades, debilidades y amenazas en el proceso de aprendizaje. Coevaluación: Cuando el estudiante realiza estudio en grupo colaborativo, los compañeros pueden valorar los avances, por medio de la Coevaluación, en ésta los compañeros se evalúan entre sí, con el fin de identificar los avances y detectar debilidades y fortalezas en el desarrollo de los temas que se están estudiando. La Coevaluación es un espacio para desarrollar habilidades comunicativas y NO tiene ponderación en la valoración del curso. Heteroevaluación: Es aquella preparada por el Tutor o por el Docente Titular del Curso, para hacer el seguimiento al rendimiento académico de los estudiantes, se puede realizar por medio de parciales, quices, revisión de informes, trabajos, portafolios, evaluación nacional y otros. Este estilo de evaluación es la utilizada por la UNAD para determinar la aprobación o no del curso académico. El sistema de evaluación tendrá como referente las diversas fases de aprendizaje: Reconocimiento, Profundización y Transferencia, las cuales se valoraran de la siguiente forma: Fase de reconocimiento: diez por ciento (10%) Fase de profundización: treinta por ciento (30%) Fase de transferencia: veinte por ciento (20%) Examen nacional: cuarenta por ciento (40%).

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Introducción general al curso “Un sistema de base de datos es básicamente un sistema computarizado para llevar registros”1 El modulo base de datos avanzada tiene como propósito fundamental profundizar algunos temas tratados en base de datos básica y presentar un esquema nuevo para un nivel más avanzado. Los temas aquí tratados requieren de un buen conocimiento de bases de datos y un gran deseo por profundizar cada uno de ellos en la bibliografía y cibergrafía recomendada. Los estudiantes deben trabajar el modulo acompañado de la guía de actividades y del protocolo académico para lograr así el propósito del curso académico.

1

C.J. DATE. Introducción a los sistemas de bases de datos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Unidad I. Bases de datos distribuidas Capitulo 1. Conceptos básicos de bases de datos Lección 1. Modelo entidad relación Es una técnica para definir las necesidades de información de una organización. El modelo entidad relación en su forma más simple implica identificar asuntos importantes dentro de la organización (entidades) , propiedades de esos asuntos (atributos) y como se relacional entre si (relación). Esto tiene valor solamente dentro del contexto de lo que se realiza en la empresa y en la forma de actuar de estas funciones de gestión sobre el modelo de información. 1.1. Objetivos del modelo entidad relación Proporcionar un modelo preciso de las necesidades de información de la organización. Proporcionar un modelo independiente de cualquier almacenamiento de datos y método de acceso, que permita tomar decisiones de las técnicas de implementación y coexistencia con sistemas antiguos. 1.2. Importancia del modelo entidad relación Ofrece un medio efectivo y preciso de especificar y controlar la definición de las necesidades de información. A continuación se indican diez temas clave que se necesitan tener en cuenta cuando se utiliza el modelo: 

Dato: un recurso clave

Hoy en día un dato, como recurso, se acepta por ser importante para la evolución satisfactoria de la organización como lo son los recursos financieros, humanos y físicos. 

Compromiso con la dirección La dirección debe confirmar los requisitos de información. No importa lo inteligente que usted resulte al modelar, tendrá un éxito limitado sin el compromiso de la dirección.



Convenciones En todo momento se deben aplicar convenciones rigurosas, estándares y directrices, incluyendo los conceptos de normalización de datos.



Definición mínima

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Se debería definir o modelar cualquier información o concepto de datos sólo de una forma, y a continuación configurar asociaciones para los objetos relacionados. Como por ejemplo, se debería definir una vez una cosa denominada “Pedido de compra” y a continuación relacionarlo con el departamento, los productos, las funciones de autorización y así sucesivamente, como se requiera. 

Independencia de los datos Se deben definir los requisitos de información de forma que sean independientes de cualquier almacenamiento final o método de acceso y que nos permita tener una visión creativa y objetiva de la empresa y del diseño subsiguiente.



Patrones genéricos Deberían buscarse patrones genéricos de datos para permitir a los usuarios utilizarlos en su gestión, además de tener la oportunidad de perfeccionar la forma de procesar sus datos y de sugerir estructuras más rentables y flexibles para los diseñadores de bases de datos.



Actitud y calidad Los modelizadores deben comenzar aplicar las convenciones automáticas y velozmente, pero sin sacrificar el rigor. También debe aprovechar cualquier oportunidad con los usuarios para mejorar la precisión de los modelos.



Comunicación Debe haber comunicación con los usuarios finales, en términos que ellos puedan entender aunque debe seguir siendo técnicamente riguroso. Estas técnicas de modelización se han utilizado durante muchos años para ayudar a altos ejecutivos, directores y a otros a comprender su gestión. Es esencial utilizar un lenguaje claro, sin abreviaturas, para lograr su comprensión. Con un usuario final no deberíamos utilizar la palabra entidad.



Relevancia Los requisitos de información solamente pueden tener valor si aportan las necesidades funcionales de la organización, dentro del marco de trabajo de los objetivos y propósitos de la empresa.



Un medio, no un fin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Aunque el modelo entidad relación es muy potente, ofrecer una idea increíble de la compañía y actuar como un marco de trabajo para el diseño de los datos, solo es una técnica intermedia, aunque desde luego importante. Autoevaluación Una de las ventajas del modelo Entidad Relación es: Es un modelo de datos estándar que organiza la información del sistema. Es un modelo de datos que indica como se almancena la información en los discos Es un modelo de datos donde cada persona define su estandar para identificar los elementos del modelo Es un modelo que se implementa directamente en el computador

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Lección 2. Elementos del Modelo entidad relación El modelo entidad relación para ser funcional requiere de la definición de unos elementos, los cuales se precisan a continuación: Entidad Se define como entidad a cualquier objeto real o abstracto, que existe en un contexto determinado o puede llegar a existir y del cual deseamos guardar información. Representación de entidad: Una entidad se representa en forma de diagrama con un recuadro y en su interior un nombre. El nombre se muestra en singular y con letras mayúsculas (figura 1).

Figura1. Representación de entidad Reglas para definir una entidad: Cualquier objeto sólo puede ser representado por una entidad. Es decir las entidades son mutuamente exclusivas en todos los casos. Cada entidad debe ser identificada en forma única. Es decir, cada instancia (aparición) de una entidad debe encontrarse separada e identificable claramente de todas las demás instancias de ese tipo de entidad. Relación Se entiende por relación a la asociación, vinculación o correspondencia entre entidades. Por ejemplo entre la entidad PROFESOR y la entidad CURSO podemos establecer la relación IMPARTE porque el profesor imparte cursos. Una relación es binaria en el sentido de que es siempre una asociación entre exactamente dos entidades, o entre una entidad y ella misma. Cada relación tiene dos extremos, para cada uno de los cuales tiene un: 

Nombre



Grado / cardinalidad (cuantos)



Opcionalidad (opcional u obligatorio).

Estas propiedades se utilizan para describir la asociación desde un extremo; se deben definir ambos extremos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Representación de una relación: Una relación se representa mediante una línea que une dos recuadros de entidades, o recursivamente (recurrentemente) une un recuadro de entidad consigo mismo. La relación es una función que indica por cada elemento de la relación A cuantos elementos dependen en la relación B. Los valores se dividen en dos (2) y se conocen como cardinalidad de la relación (Figura 2). El primer valor, denominado cardinalidad mínima, indica el menor número de elementos en esa relación; generalmente ese valor puede ser 0 ó 1. Si el valor es 0, se dice que la relación es opcional y la gráfica de la relación se presenta con un circulo en la terminación de la relación ó se hace con una línea punteada. Si el valor es 1, se dice que la relación es obligatoria, la cual se presenta en la terminación de la relación mediante una línea perpendicular o mediante una línea continua. El segundo valor de la cardinalidad, cardinalidad máxima, indica la cantidad máxima de registros de la relación B por cada valor de la relación A; generalmente son valores 1, o muchos (2, 3, ....n). La representación se realiza con la terminación conocida como "pata de gallina", que es, la terminación con 3 líneas.

Figura 2. Representación de una relación Es útil pensar acerca de una relación de uno a muchos como una relación padre a hijo, con la existencia del hijo encontrándose en una forma dependiente de su padre. Relación recursiva Es una relación que se llama así misma, a continuación se muestra una relación recursiva, por ejemplo, jefe y empleado.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Figura 3. Relación recursiva Nombre de las relaciones: El nombre de cada extremo de una relación se sitúa cerca al extremo apropiado en minúsculas como se muestra a continuación.

Figura 4. Nombre relaciones Cuando la terminación de la relación es obligatoria, la frase “debe ser” se utiliza para preceder al nombre final de la relación; para los nombres finales opcionales de la relación se utiliza la frase “puede ser”

Figura 5. Ejemplo nombre relaciones

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Cada ENTIDAD-A debe ser el nombre-extremo-1 una y solo una ENTIDAD-B, y de derecha a izquierda: Cada ENTIDAD-B puede ser el nombre-extremo-2 y una o más ENTIDADes-A. Para la figura 5, la lectura de esa representación sería: Cada TIQUETE debe ser para uno y sólo un PASAJERO y, cada PASAJERO se puede observar en uno o más TIQUETES. Atributos Las entidades se componen de atributos que son cada una de las propiedades o características que tienen las entidades. Cada ejemplar de una misma entidad posee los mismos atributos, tanto en nombre como en número, diferenciándose cada uno de los ejemplares por los valores que toman dichos atributos. Ejemplo si consideramos la entidad PROFESOR y definimos los atributos Nombre, Teléfono, Salario; podríamos obtener lo siguiente: Juan Pérez Rodríguez, 4253250, 800.000 Martha López Jiménez, 8553260, 600.000 Representación de los atributos Para representar un atributo hay que escribir su nombre en singular y en minúscula, y de forma opcional con un ejemplo de su valor.

Figura 6. Incorporando atributos En el ejemplo siguiente, los atributos candidatos son esenciales para ayudar a distinguir entre dos entidades.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Figura 7. Atributos candidatos En la gráfica, por cada tiquete debe tenerse un código y una fecha expedición. Para ese modelo, un pasajero tiene su identificación y el nombre del pasajero Características del atributo Las siguientes normas simples ayudan a crear un modelo preciso, completo y flexible. Un atributo describe una entidad El atributo debe describir la entidad en contra de lo que se muestra. Esto puede ser obvio, pero es el error más común que se encuentra en los atributos. Por ejemplo. ¿El "número de asiento" es un atributo de un cupón, billete, tarjeta de embarque, avión o asiento de un avión? Obviamente es un atributo de ASIENTO, pero en la vida real el número a menudo se ve duplicado muchas veces; por ejemplo, en una tarjeta de embarque, que se muestra como una entidad en la Figura 8. ¿Por qué? En el mundo real, un número de asiento es una forma muy conveniente de representar una relación. Por el contrario, cuando se encuentran estas situaciones hay que dibujar la línea de relación (si es necesario , crear la entidad a la que se refiere), como se muestra a continuación. Para que sirva de guía la mayoría de las entidades sólo se describirán manejando entre dos y ocho atributos. Si se tienen más, probablemente existirán muchas relaciones y/o entidades perdidas.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Figura 8. Asignar un atributo a la entidad correcta Leer nombres de atributos No hay que utilizar el nombre de la entidad como parte del nombre del atributo. Sería redundante, ya que el atributo sólo describe la entidad. En el ejemplo anterior, el “el número asiento” realmente ayudó a identificar una entidad perdida llamada ASIENTO que se podría describir con el atributo ’número’ y quizás con otros atributos como ‘tipo’. Para leer atributos que se nombren de esta manera, se pueden utilizar de una de las dos formas:

Por ejemplo, asiento número o número de asiento. Eliminar atributos repetidos (primera forma normal) Una entidad que sólo tenga un valor para un atributo en cualquier momento. Si son esenciales muchos valores, se debe crear una entidad nueva para mantenerlos en la relación muchos a uno unidos con la entidad original.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Figura 9. Un atributo repetido indica una entidad perdida. Siguiendo la norma anterior se obtiene:

Figura 10. Añadir la entidad perdida Esta es una norma o regla que se llama normalmente ’Primera forma normal’ Nombre en singular El nombre de un atributo debe ir en singular. Los nombres plurales generalmente reflejan el problema de los atributos repetidos que se ha mostrado anteriormente. ¿Es una entidad? Un atributo se convierte en una entidad cuando tiene importancia por sí misma, con sus propias relaciones y atributos. Identificador único Cada entidad debe ser identificable únicamente por una combinación de atributo y/o relación. De esta forma se podría buscar siempre cualquier atributo candidato que ayude a identificar una entidad. El valor del atributo debe ser dependiente de todo el identificador único. (segunda forma normal)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Hay que quitar los atributos por los que los valores son dependientes sólo de parte del identificador único. Esto se conoce como ’Segunda forma normal’ . Dichos atributos normalmente suponen una entidad perdida, pero relacionada. Los atributos deben ser dependientes directamente del identificador único (tercera forma normal) Hay que quitar los atributos que no sean dependientes directamente del identificador único de la entidad. Esto se conoce como ‘Tercera forma normal’. En el subtema tres se profundizara el concepto de normalización. Identificador único Definición Cada entidad debe ser únicamente identificable de forma que cada instancia de la entidad esté separada y sea claramente identificable de todas las otras instancias de ese tipo de entidad. El identificador único puede ser un atributo, una combinación de relaciones o una combinación de atributos y relaciones. Una entidad puede tener más de un medio alternativo de identificación única. El método primario se puede mostrar en el diagrama entidad-relación antecediendo a un atributo que forme el identificador con una marca ‘#’ , y colocando una barra cruzada en el caso de una (s) línea (s) de relación. Figura 11

Figura 11. Muestra de identificadores únicos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Así, pues, para identificar únicamente una tarjeta de embarque se necesita:

embarque se hayan reemitido; para volver a sentar a una familia junta después de que alguien no haya aparecido en el vuelo ruta de la línea aérea, se necesita el número de vuelo.

Figura 12. Refinamiento de Entidades Norma de Diseño Las normas simples del diseño que siguen a continuación se han definido para que el diagrama sea fácil de leer, aplicable para personas que necesiten trabajar con ellas y para maximizar la calidad y la precisión. Diagrama de Subconjunto Cuando se trata un área funcional en particular con un usuario o un diseño con los diseñadores, es bueno crear un diagrama de subconjunto y expresar las ideas de nuevo más eficazmente como un vehículo de comunicación con ese propósito. Durante el proceso se van a encontrar omisiones y errores, que se pueden corregir rápidamente la perspectiva diferente es una potente herramienta analítica. Esmerado y pulcro Hay que organizar el diagrama de forma que los recuadros de las entidades estén alineados y que las líneas de las relaciones sean rectas en sentido horizontal o vertical. Hay que dibujar el menor número de líneas cruzadas posible. Hay que evitar Construir un diagrama que tenga demasiadas líneas paralelas que estén muy juntas. Hay que utilizar el mayor espacio en blanco que se pueda para evitar el sentimiento de congestión y utilice de vez en cuando la línea en diagonal para ayudar a la estética del diagrama.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Reconocimiento de patrones La mayoría de las personas tienen la capacidad incorporada de reconocer formas y patrones en un instante y por tanto pueden recordar fácilmente el tema. Los modelizadores pueden beneficiarse de esto haciendo que cada diagrama sea claramente diferente en forma. Texto Hay que asegurarse de que el texto no sea ambiguo. Hay que evitar las abreviaturas y las jergas. Hay que utilizar las convenciones de lectura descritas anteriormente y leer todo el diagrama para asegurarse de que es completo y preciso. Un buen diagrama entidad relación debería ser semánticamente completo. Para mejorar la comprensión y la precisión al leerlo, hay que añadir adjetivos y ejemplos cuando sea necesario.

Figura 13. Reconocimiento de patrones Grado de relación Hay que situar la terminación de muchas (ramificaciones) de las relaciones a la izquierda o en la parte superior de la línea de relación. Se ha probado que esta técnica ha incrementado la precisión del modelo formando la consideración de las relaciones, desde las entidades que aparecen con más frecuencia a las menos frecuentes. Autoevaluación Una relación reflexiva es Relación entre la entidad A y ella misma Relación entre la entidad A y la entidad B Relación entre la entidad A y sus atributos Relación entre los atributos de la entidad A y la llave principal

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Lección 3. Álgebra relacional Es necesario que el lector se familiarice con el término “relación”, entendida en dos aspectos, en primer lugar cuando mencionamos esta palabra en el modelo entidad relación se hace referencia a la asociación entre dos o más entidades, y, al hablar de “relación” en el álgebra relacional se está haciendo referencia a tablas, puesto que las tablas son esencialmente relaciones. El Álgebra relacional es un lenguaje de consulta procedural. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación, por lo tanto, es posible anidar y combinar operadores. Hay ocho operadores en el álgebra relacional que construyen relaciones y manipulan datos, estos son: 1. Selección

2. Proyección

3. Producto

4. Unión

5. Intersección

6. Diferencia

7. Join

8. División Tabla 1 - Operadores del Álgebra relacional

Las operaciones de proyección, producto, unión, diferencia, y selección son llamadas primitivas, puesto que las otras tres se pueden definir en términos de estas. Se hace necesario en este punto incluir un modelo de datos de ejemplo en el cual trabajar para generar ejemplos de comandos y operadores. Para este efecto se incluye un modelo básico de administración de Radio taxis. El Gráfico que se presenta a continuación representa el Modelo conceptual (Modelo Lógico) o Diagrama de EntidadRelación, (este adopta una metodología similar a la anterior):

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Figura 14 - Esquema de Relaciones de Ejemplo Los Esquemas de relaciones que se pueden construir a partir de este modelo son los siguientes: Dueño = {rut, nombre, teléfono, dirección, vigencia} Chofer = {rut, nombre, teléfono, dirección, fecha_licencia_desde, fecha_licencia_hasta, vigencia} Vale = {correlativo, hora_desde, hora_hasta, metraje_total, tarifa_total} Móvil = {patente, rut_dueño, rut_chofer, marca, modelo, año} Viaje = {correlativo_vale, patente_movil, Hora_Desde, hora_hasta, origen, destino, tarifa, metraje}

1. Selección El operador de selección opta por tuplas que satisfagan cierto predicado, se utiliza la letra griega sigma minúscula (σ) para señalar la selección. El predicado aparece como subíndice de σ. La Relación que constituye el argumento se da entre paréntesis después de la σ. Ejemplos :

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

2. Proyección La operación de proyección permite quitar ciertos atributos de la relación, esta operación es unaria, copiando su relación base dada como argumento y quitando ciertas columnas, La proyección se señala con la letra griega pi mayúscula (Π). Como subíndice de Π se coloca una lista de todos los atributos que se desea aparezcan en el resultado. La relación argumento se escribe después de Π entre paréntesis. Ejemplos :

3. Producto. En álgebra relacional el producto de dos relaciones A y B es: A Veces B o A X B Produce el conjunto de todas las Tuplas t tales que t es el encadenamiento de una tupla a perteneciente a A y de una b que pertenece a B. se utiliza el símbolo X para representar el producto. Ejemplos: Dueño x Móvil 4. Unión.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

En álgebra relacional la unión de dos relaciones compatibles2 A y B es: A UNION B o A U B Produce el conjunto de todas las tuplas que pertenecen ya sea a A o a B o a Ambas. Al igual que en teoría de conjuntos el símbolo U representa aquí la unión de dos relaciones. Ejemplo :

Devuelve todos los Dueños y los Chóferes.

5. Intersección. En álgebra relacional la intersección de dos relaciones compatibles A y B

A INTERSECCION B o A ∩ B Produce el conjunto de todas las tuplas pertenecientes a A y B. Al igual que en teoría de conjuntos el símbolo ∩ representa aquí la intersección entre dos relaciones. Ejemplo: (Dueño)

(Chofer)

Devuelve todos los dueños que también son chóferes

6. Diferencia En álgebra relacional la diferencia entre dos relaciones compatibles A y B A MENOS B o A – B Produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B. 2

Relaciones Compatibles: En el álgebra relacional la compatibilidad se aplica a las operaciones de Unión, Intersección y Diferencia. Cada operación requiere dos relaciones que deben ser compatibles, esto significa que deben ser del mismo grado, n, y el i-ésimo atributo de cada una (i= 1, 2...n) se debe basar en el mismo dominio.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Ejemplo:

Devuelve todos los dueños que NO son chóferes 7. Join o Reunión. En álgebra relacional el JOIN entre el atributo X de la relación A con el atributo Y de la relación B produce el conjunto de todas las tuplas t tal que t es el encadenamiento de una tupla a perteneciente a A y una tupla b perteneciente a B que cumplen con el predicado “A.X comp B.Y es verdadero” (siendo comp un operador relacional y los atributos A.X y B.Y pertenecientes al mismo dominio). Si el operador relacional “comp” es “=” entonces el conjunto resultante es un EQUI-JOIN. Si se quita uno de éstos (usando una proyección) entonces el resultado es un JOIN-NATURAL.

Ejemplo :

8. División En álgebra relacional el operador de división divide la relación A con grado m + n por la relación B entregando como resultado una relación con grado m. El atributo m + i de A y el atributo i de B deben estar definidos dentro del mismo dominio. Así el resultado de A DIVIDIDO POR B o A / B produce la relación C con un sólo atributo X, tal que cada valor de x de C.X aparece como un valor de A.X, y el par de valores (x, y) aparece en A para todos los valores y que aparecen en B. Ejemplo:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Selecciona todos los autos a cuyos chóferes les caduca la licencia el 01/01/1999 Nota del autor: los resultados de cada uno de los ejemplos citados en este tema están al final del modulo como un anexo. Autoevaluación Los operadores Selección y Proyección son conocidos como operadores Unarios porque Son operadores unarios porque se aplican sobre una tabla o relación Son operadores unarios porque se aplican a un conjunto de tuplas Son operadores unarios porque se aplican a los índices Son operadores unarios porque se aplican a un tablespace

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Lección 4. Normalización de datos La normalización de datos es un procedimiento que asegura que un modelo de datos se ajusta a algunos estándares útiles. Para los datos y los modelos entidad-relación, estos estándares se han definido para minimizar la duplicación de datos, proporcionar la flexibilidad necesaria para soportar requisitos funcionales y para permitir que el modelo se estructure sobre una amplia variedad de diseños alternativos de base de datos. Modelo entidad – relación El modelo entidad-relación tiende a producir entidades que están normalizadas de forma natural. Esto debido a que se sigue un proceso simple, como el siguiente:

información. Estas entidades deben ser mutuamente exclusivas, y se representan en un diagrama por medio de un recuadro con el nombre de la entidad en singular y en mayúsculas. ñadir las relaciones de gestión, las cuales se han nombrado como asociaciones significativas entre entidades. Estas relaciones se muestran como una línea entre dos recuadros; cada terminación tiene un grado (un triángulo o ramificación que significa muchos; si no hay triángulo significa uno) y la opcionalidad (una línea de puntos significa opcional, una línea continua significa obligatorio).

conocer. Estos atributos se muestran dentro de la entidad como nombres en minúsculas.

ser identificada de forma única. Esto se hará mediante alguna combinación de atributos y/o relaciones. Cuando un atributo es parte del identificador único se muestra con una marca #. Cuando una relación es parte del identificador único se muestra mediante una barra cruzada cruzando la línea de relación. El seguimiento del proceso anterior dará rigurosa y automáticamente un modelo normalizado, pero depende de la buena comprensión del analista acerca de lo que es realmente un atributo, una relación y una entidad.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Normalización Para comprobar que un modelo entidad-relación tiene todas sus entidades unívocamente identificadas, se ha normalizado completamente y por tanto se ajusta a la tercera forma normal; se pueden aplicar las siguientes comprobaciones simples: Asegurar que todas las entidades son identificables de forma única Por una combinación de atributos y / o relaciones Primera forma normal: [1NF] Eliminar los atributos repetidos o grupos de atributos. Si existe más de un valor a la vez para un atributo o para más de uno con el mismo nombre, se define una entidad nueva, la cual se describe mediante ese atributo. El identificador único de esta nueva entidad consta de uno de los atributos que se fueron con ella y la relación (de muchos a uno) se lleva a la entidad original.

Figura 15 Primera forma normal

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Segunda forma normal: [2NF] Eliminar atributos dependientes sólo en parte del identificador único. Si una entidad tiene un identificador único compuesto de más de un atributo y/o relación, y si otro atributo depende sólo de parte de este identificador compuesto, entonces el atributo, y la parte del identificador del que depende, deberán formar la base de una nueva entidad. La entidad nueva se identifica por la parte emigrada del identificador único de la entidad original, y tiene una relación de uno a muchos unido a la entidad original. Tercera forma normal: [3NF] Eliminar los atributos dependientes de atributos que no son parte del identificador único. Si un atributo de una entidad es dependiente de otro atributo, que no es parte del identificador único, entonces estos atributos deberían formar la base de la nueva entidad, que tenga una relación de uno a muchos con la entidad original. El identificador único de la entidad nueva es el atributo del que depende el otro atributo. A continuación se presenta la representación de esta forma:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Figura 16. Segunda y tercera forma normal En general, “una relación R está en la tercera forma normal (3NF) si y sólo si en cualquier momento cada tupla (línea relacional) de R se compone de un valor clave primario que identifica alguna identidad, junto con un grupo de cero o más valores independientes mutuamente que describen esa entidad de alguna manera”3 Además, “una relación R está en la cuarta forma normal (4NF) si y únicamente si donde quiera que haya una dependencia multivalores (MVD) en R, digamos A todos los atributos de R son también funcionalmente dependientes de A. En otras palabras, las únicas dependencias (funcionales o multivalores) en R son de la forma K multivalores) son de verdad dependencias funcionales (FD). 3

Date, C.J. An Introduction to Database System, 4ed. 1986. Adisson-Wesley Publishing Co

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

También, “una relación R está en quinta forma normal (5NF), también denominada forma normal de unión de protección (PJ/PN), si y únicamente si cada dependencia de unión en R es una consecuencia de las claves candidatas de R.” Desnormalización de datos La desnormalización de datos es el procedimiento inverso, llevado a cabo puramente por razones de mejorar la realización de sistemas de producción, particularmente cuando están computarizados. La desnormalización sólo se debe realizar sobre el diseño. No poner en peligro nunca el modelo de gestión. La desnormalización en formas manuales de procedimientos es necesariamente muy común, como queda evidenciado por el hecho de que la mayor parte de los formularios en papel mantienen grandes datos de referencias. Todos conocemos los problemas que se pueden originar cuando ese dato se cambia y se tiene que volver a emitir el grupo entero de formularios. Autoevaluación Una Base de datos que no esté en 3FN Tiene problemas a nivel de inserción y borrado de datos Tiene problemas al generar el backup Tiene problemas a nivel de generación de roles Tiene problemas de identidad

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Lección 5. Transacciones Una transacción es una unidad de la ejecución de un programa que accede y posiblemente actualiza varios elementos de datos. Se delimita dependiendo del lenguaje por las sentencias inicio transacción y fin transacción y se compone de todas las instrucciones que se encuentran entre estos dos delimitadores. Propiedades de la transacción Para asegurar la consistencia de los datos se necesita que el sistema de base de datos tengan las propiedades llamadas ACID: (Atomicity, Consistency, Isolation, Durability Atomicidad, Consistencia, Aislamiento, Durabilidad [Silberschatz97]). A continuación explicamos cada una de estas propiedades:

Asegura que o bien todos los efectos de la transacción se reflejan en la base de datos, o bien ninguno de ellos; un fallo no puede dejar a la base de datos en un estado en el cual una transacción se haya ejecutado parcialmente. ia: Asegura que si la base de datos es consistente inicialmente, la ejecución de la transacción deja la base de datos en un estado consistente.

Asegura que en la ejecución concurrente de transacciones, estas están aisladas unas de otras, de tal manera que cada una tiene la impresión de que ninguna otra transacción se ejecuta concurrentemente con ella.

Asegura que una vez que la transacción se ha comprometido, las actualizaciones hechas por la transacción no se pierden, incluso si hay un fallo en el sistema. Una transacción que termina con éxito se dice que está comprometida (commited), una transacción que haya sido comprometida llevará a la base de datos a un nuevo estado consistente que debe permanecer incluso si hay un fallo en el sistema. En cualquier momento una transacción sólo puede estar en uno de los siguientes estados:

ejecución.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

transacción. cución normal.

base de datos a su estado anterior al comienzo de la transacción.

Cuando varias transacciones se ejecutan concurrentemente, existe la posibilidad de que se pierda la consistencia de datos. Se hace necesario por lo tanto un sistema que controle la interacción entre las transacciones concurrentes. Puesto que una transacción por definición conserva la consistencia, una ejecución lineal de transacciones la garantiza también. Un sistema que asegure esta propiedad se dice que asegura la secuencialidad.

Concurrencia Existen varios esquemas de control de concurrencia que aseguran la secuencialidad, todos estos esquemas o bien retrasan una operación o bien abortan la transacción que ha realizado la operación. Los más conocidos son los protocolos de bloqueo, el esquema de ordenación por marcas temporales, las técnicas de validación, el esquema de granularidad múltiple y los esquemas multiversión. Un protocolo de bloqueo es un conjunto de reglas que indican el momento en que una transacción puede bloquear o desbloquear un objeto de la base de datos. El protocolo de bloqueo de dos fases permite que una transacción bloquee un objeto sólo después de que haya desbloqueado otro objeto distinto, este método asegura la secuencialidad. El esquema de ordenación por marcas temporales asegura la secuencialidad seleccionando previamente un orden en todo par de transacciones. Existen 2 formas de implementar este esquema, uno es por medio de valores timestamp (dependientes del reloj del sistema) y por medio de un contador lógico que se incrementa cada vez que asigna una nueva marca temporal. Este protocolo asegura la secuencialidad en cuanto a conflictos y la ausencia de interbloqueos, si una de las transacciones viola la norma la transacción se retrasa y se le asigna una nueva marca temporal. Por ejemplo, una operación leer se puede retrasar porque todavía no se ha escrito el valor apropiado o incluso rechazar si ha sobrescrito el valor que supuestamente se iba a leer. Un esquema de validación es un método de control de concurrencia adecuado para transacciones de sólo lectura y en las cuales la tasa de conflictos es baja. Se basa en dividir una transacción en 3 etapas (lectura, validación y escritura) y trabajar con el

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

esquema de marcas temporales sobre la etapa de validación. De esta manera se quita una sobrecarga en la etapa de lectura, en la cual no se necesita un esquema de control de concurrencia dado que toda lectura lleva a la base de datos al mismo estado de consistencia. Una manera distinta manejar la concurrencia es por medio de la granularidad, este concepto permite agrupar varios elementos de datos y definirlos como un todo para efectos de sincronización. Se define como una jerarquía de distintos niveles, donde el nivel superior puede representar toda la base de datos, se esquematiza como estructura de árbol donde los nodos hijos de un nodo interno representan las dependencias de datos asociadas. Se utilizan los tipos de bloqueos Compartidos y Exclusivos más un nuevo tipo de bloqueo llamado el bloqueo intencional, el cual indica que existen nodos descendientes que tienen bloqueos compartidos o exclusivos. El esquema multiversión se basa en la creación de nuevas versiones de los elementos de datos cada vez que una transacción vaya a escribir dicho elemento. Cuando se va a realizar una escritura el sistema elige una de las versiones para que se lea. El esquema de control de versiones garantiza que la versión que se va a leer se elige de forma que asegure la secuencialidad por medio de marcas temporales. En este esquema una operación de lectura tiene éxito siempre, sin embargo, una operación de escritura puede provocar el retroceso de una transacción. Un sistema está en estado de interbloqueo si existe un conjunto de transacciones tal que toda transacción del conjunto está esperando a otra transacción del conjunto. En tal situación, ninguna de las transacciones puede progresar. Existen 2 métodos para tratar los interbloqueos y ambos provocan un retroceso de las transacciones, la diferencia radica en que uno es preventivo y otro curativo. El protocolo de prevención de interbloqueos asegura que el sistema nunca llegará a un estado de interbloqueos mientras que el método de detección y de interbloqueos permite que el sistema llegue a un estado de interbloqueos para luego tratar de recuperarse. La prevención se usa normalmente cuando la probabilidad de que el sistema llegue a un estado de interbloqueo es relativamente alta, de lo contrario lo más conveniente es usar la detección y recuperación.

Seguridad y recuperación de datos Los fallos que ocurren en un computador pueden darse por diferentes motivos (fallos de disco, cortes de energía o fallos en el software). En cada uno de estos casos puede perderse información concerniente a la base de datos. Existen varios tipos de fallas, a considerar:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

sistema. Un error lógico ocurre cuando una transacción no puede continuar con su ejecución normal a causa de una condición interna como lo es un desbordamiento o un exceso de recursos. Un error del sistema ocurre cuando el sistema se encuentra en un estado no deseado como en el caso de los interbloqueos.

software de base de datos. Comúnmente causa la pérdida del contenido de la memoria primaria y aborta el procesamiento de una transacción. ólo sirve la recuperación por medio de copias existentes en medios de almacenamiento secundario como cintas magnéticas. La forma más aceptada de lograr un tipo de almacenamiento lo más estable posible es replicando la información en varios medios de almacenamiento no volátil, con modos de fallos independientes. Los sistemas RAID (disposición redundante de discos independientes) garantizan que el fallo de un sólo disco no conduzca a la perdida de datos. Sin embargo los sistemas RAID, no pueden proteger al sistema de una pérdida de datos en el caso de una catástrofe geográfica, para tales efectos muchos sistemas de almacenamiento guardan copias de seguridad en cintas en otros lugares, no obstante, como las cintas no pueden ser trasladadas continuamente, los últimos cambios realizados luego del traslado de cintas no se pueden volver a recuperar en el caso de tales desastres. Los sistemas más seguros guardan copias de cada bloque de almacenamiento en otra disposición geográfica, datos que se transmiten por medios de redes de computadores al sistema de respaldo remoto... El estado de un sistema de base de datos puede no volver a ser consistente en caso de que ocurran fallos, para preservar la consistencia es necesario que cada transacción sea atómica. Garantizar la propiedad de atomicidad es responsabilidad del esquema de recuperación. Existen básicamente 2 esquemas que garantizan la atomicidad. Basados en el registro histórico. Todas las modificaciones se graban en el registro histórico, el cual debe estar guardado en almacenamiento estable. En el esquema de modificación diferida, durante la ejecución de una transacción, se difieren todas las operaciones de escritura hasta que la transacción se compromete parcialmente, momento en el cual se utiliza la información del registro histórico asociado con la transacción para ejecutar las escrituras diferidas. Con la técnica de modificación inmediata todas las modificaciones se aplican directamente en la base de datos. Si ocurre una caída se utiliza la información del registro histórico para llevar a la base de datos a un estado estable previo.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Paginación en la sombra. Durante la vida de una transacción se mantienen 2 tablas de páginas: la tabla actual de páginas y la tabla de páginas sombra. Ambas tablas son idénticas al principio de la transacción, sin embargo, la tabla actual de páginas puede ir cambiando luego de cada operación escribir. Todas las operaciones de lectura y escritura utilizan la tabla de páginas actual, cuando una transacción se compromete parcialmente se desecha la tabla de páginas sombra y la tabla actual se convierte en la nueva tabla de páginas. Si la transacción fracasa, simplemente se desecha la tabla actual de páginas. El procesamiento de transacciones se basa en un modelo de almacenamiento en el cual la memoria principal contiene una memoria intermedia para el registro histórico, una memoria intermedia para la base de datos y una memoria intermedia para el sistema. Una implementación eficiente de un esquema de recuperación de datos requiere que sea mínimo el número de escrituras de la base de datos y que sea realizado en almacenamiento estable. Los registros del registro histórico pueden guardarse inicialmente en la memoria intermedia del registro histórico pero deben ser llevados a almacenamiento estable bajo dos situaciones:

que referencien a la transacción Ti antes de grabar el registro que indique que la transacción Ti ha sido comprometida os los registros del registro histórico pertenecientes a los datos de un bloque antes de que ese bloque de datos se escriba desde la memoria intermedia a la base de datos. Consultas El Procesamiento de consultas hace referencia a la serie de actividades a seguir para llevar a cabo la recuperación de datos desde una base de datos. Estas actividades incluyen la traducción de consultas en lenguajes de consultas de alto nivel (Ej: SQL) a expresiones que se puedan implementar en un nivel físico, así como también los algoritmos de evaluación y optimización de consultas. Recuperación Una de las ventajas principales del modelo relacional presentado por Codd en 1970 es la que tiene relación con la independencia de los datos que se entiende aquí como la separación entre el modelo (lógico) y la implementación (física). Esta separación nos permite desarrollar una poderosa semántica lógica independiente de una implementación física particular.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Uno de los desafíos de la independencia de datos es que la codificación de una consulta para la base de datos se componga de 2 fases: 1. La descripción lógica de la consulta (que se supone que debe hacer). 2. La definición del plan de ejecución físico (el que muestra como implementar la consulta). Antes de empezar el procesamiento de la consulta el sistema debe traducir la consulta a un medio de representación interno con el cual le sea fácil operar. Así, por ejemplo para SQL la representación más útil es la del álgebra relacional extendida (árbol relacional). Este proceso cumple la misma función que el analizador léxico y sintáctico de un compilador, es decir, revisa la sintaxis de la consulta y chequea que todos lo identificadores sean nombres de objetos de la base de datos, en el caso de las vistas reemplaza el nombre de la vista por la expresión relacional que la representa. El plan de ejecución es un árbol relacional armado a partir de la consulta y que sólo puede ser entendido por el motor de ejecución de consultas. La transformación de la consulta a un plan puede ser hecha efectivamente a mano y en algunos casos de consultas simples que se ejecutan miles de veces esta podría ser la mejor estrategia, sin embargo, una de las ventajas que nos ofrece el modelo relacional es la capacidad de usar la información del catalogo de la base de datos, que como se verá más adelante, podrá responder una gran cantidad de preguntas distintas. Por otro lado, aunque una consulta simple pueda ser ejecutada miles de veces, no existe un camino mecánico que garantice que el plan de ejecución elegido satisfaga la consulta que se quiere implementar, puesto que: 1. Un Plan calculado a mano (o un plan precalculado) será invalidado por cambios lógicos dentro del esquema o por cambios físicos en el camino de acceso a la información o en el almacenamiento físico. 2. Si los parámetros de la consulta (o los datos) cambian, la relación optima que asocia a un plan con una consulta por sobre otros puede cambiar. La siguiente figura nos muestra los pasos en el procesamiento de una consulta.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Figura 17 - Pasos en el procesamiento de una consulta SQL Después de enviar la consulta, la base de datos debe producir su correspondiente plan de ejecución. El primer paso en este proceso es traducir la consulta desde SQL a un árbol lógico en álgebra relacional, proceso comúnmente llamado parser. El Próximo paso es traducir el árbol de la consulta en el plan de ejecución. Generalmente existe un gran número de planes que implementan al árbol de la consulta; el proceso de encontrar el mejor de estos planes se le denomina optimización de consultas. Cálculo relacional La manipulación del modelo relacional esta basada en el álgebra relacional; sin embargo, de igual forma podemos indicar que también esta basada en el cálculo relacional. Álgebra y cálculo son alternativos entre sí, la diferencia entre ellos es la siguiente: mientras que el álgebra proporciona un conjunto de operadores explícitos (juntar, unir, proyectar, etc), que pueden usarse para indicar al sistema cómo construir cierta relación dada, al cálculo simplemente proporciona una notación para establecer la definición de esa relación deseada en términos de dichas relaciones dadas4 El cálculo relacional de tuplas describe la información deseada sin dar un procedimiento específico para obtenerla. Las consultas en el cálculo relacional de tuplas se expresan como: 4

C.J Date, Introducción a los Sistemas de Bases de Datos, Prentice Hall

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

{ t | P(t)}, Es decir, son el conjunto de tuplas t tales que se cumple el predicado P para cada t. Siguiendo la misma notación, se utiliza t[A] para el valor de la tupla t en el atributo A.

Si sólo se desea obtener un atributo de la tupla, se utiliza el constructor “Existe” de la lógica matemática. Así, si lo que se desea es el Nombre de los dueños de taxis que estén vigentes:

"Conjunto de todas las tuplas t tales que existe una tupla s en la relación Dueño para la que los valores de t y de s son iguales en el atributo Nombre y el valor de s para el atributo vigencia = ‘S’ ". La variable de tupla t se define sólo en el atributo Nombre, puesto que éste es el único atributo para el que se especifica una condición para t. Así, el resultado es una relación sobre (Nombre). Si lo que se desea es obtener las tarifas de todos los viajes que ha efectuado todos los móviles de marca “chevrolet”, la consulta requiere de dos cláusulas “Existe” conectadas por el operador de conjunción lógica “y”.

Que se lee como el conjunto de todas las tuplas (tarifa) correspondientes a los viajes que han hecho todos los móviles de marca “chevrolet”. Considérese ahora la consulta “obtener todos los RUT de los dueños de móviles, cuyos móviles no hayan efectuado nunca un viaje”:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

que ocupa la cláusula “Existe” para exigir que el dueño posea un móvil y la cláusula “no existe” para eliminar a aquellos móviles que tengan viajes realizados. La consulta que se presenta a continuación utiliza la implicación, la fórmula “P implica Q” significa que “si P es verdad entonces Q debe ser verdad”, se introduce el constructor “para todo”. Se desea Selecciona todos los autos a cuyos chóferes les caduca la licencia el “01/01/1999”.

Sin embargo como la intención del modulo no es la de suplir al texto, se recomienda consultar el tema completo en la bibliografía recomendada. Optimización de consultas Las consultas de base de datos relacionales son o bien declarativas o algebraicas. Los lenguajes algebraicos permiten la transformación algebraica de la consulta, luego, basándose en la especificación algebraica de la consulta es relativamente fácil para el optimizador generar diversos planes equivalentes para la consulta y elegir el menos costoso. Dado este nivel de generalidad, el optimizador puede ser visto como el generador de código de un compilador para el lenguaje SQL, que produce el código que será interpretado por el motor de ejecución de consultas, excepto que el optimizador marca énfasis en la capacidad de producir el código más eficiente, haciendo uso para tales efectos del catálogo de la base de datos, de donde obtiene información estadística de las relaciones referenciadas por la consulta, algo que los lenguajes de programación tradicionales no hacen. Un aspecto de la optimización de consultas se sitúa en el nivel del álgebra relacional. Dado un conjunto de reglas se trata de encontrar una expresión que sea equivalente a la expresión dada pero que sea más eficiente en la ejecución.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Con el fin de seleccionar la mejor estrategia para la recuperación de datos el optimizador “estima” un costo que estará relacionado a cada plan de ejecución. Este costo está determinado por fórmulas predefinidas en base a información que se posee de la tabla y que se ha rescatado previamente del catálogo de la base de datos, en realidad el optimizador no siempre escoge el plan más óptimo, ya que encontrar la estrategia óptima puede consumir mucho tiempo, por lo tanto se dice que el optimizador “sólo escoge una estrategia razonablemente eficiente”. La manera con la que el optimizador utiliza esa información, las distintas técnicas y algoritmos que aplica y las transformaciones algebraicas que se realizan son las que diferencian a los optimizadores de bases de datos. Un optimizador basado en el costo genera una serie de planes de evaluación para una consulta y luego elige el que tiene un menor costo asociado, las medidas de costo comúnmente tienen que ver con la E/S y el tiempo de CPU utilizado en ejecutar la consulta, sin embargo, es cuestión de cada SGBD el elegir las medidas de costo que mejor representen el criterio de minimización en la utilización de recursos. Autoevaluación Una de las propiedades de la transacción es la de Aislamiento. En bases de datos, el Aislamiento significa Una transacción A no puede ver datos de una transacción B, mientras la transacción B no termine. Una transacción A puede ver datos de una transacción B siempre Una transacción A no puede ver datos de una transacción B, mientras B no le asigne timesptamp Una transacción A no puede ver datos de una transacción B, mientras tenga abiertas tablas Referencias CERI S, Pelagatti G.,Distributed databases principles & systems.. Ed. MacGraw-Hill. 1985. DATE, C. J, Introducción a los sistemas de bases de datos. Ed. Prentice Hall. Séptima edición. SILVERSCHATZ, Korth y Sudarshan, Fundamentos de bases de datos, Ed MacGrawHill. Cuarta edición OTZU, Valduriez, Distributed databases, Ed. MacGraw-Hill www.lsi.us.es/docencia/asignaturas/dbd.html

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

www.cieloprogramadores.com

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Capítulo 2. Diseño de bases de datos distribuidas Lección 6. Bases de datos distribuidas Introducción y fundamentos de Base de Datos Distribuidas. La cantidad de innovaciones tecnológicas que ha habido en los últimos años ha promovido un cambio en la forma de observar a los sistemas de información y, en general, a las aplicaciones computacionales. Existen avances tecnológicos que se realizan continuamente en circuitos, dispositivos de almacenamiento, programas y metodologías. Sin embargo, los cambios tecnológicos van de la mano con la demanda de los usuarios y programas para la explotación exhaustiva de tales dispositivos mejorados. Por tanto, existe un continuo desarrollo de nuevos productos los cuales incorporan ideas nuevas desarrolladas por compañías e instituciones académicas. Aún cuando es posible que un usuario común no perciba los desarrollos relevantes de nuevos productos, para las aplicaciones existe una demanda permanente por mayor funcionalidad, mayor número de servicios, más flexibilidad y mejor rendimiento. Así, al diseñar un nuevo sistema de información o al prolongar la vida de uno ya existente, se debe buscar siempre formas para enlazar las soluciones ofrecidas por la tecnología disponible a las necesidades de las aplicaciones de los usuarios. Un área en la cual las soluciones están integrando tecnología con nuevas arquitecturas o formas de hacer las cosas es, sin lugar a dudas, el área de los sistemas distribuidos de información. Ellos se refieren al manejo de datos almacenados en facilidades de cómputo localizadas en muchos sitios ligados a través de una red de comunicaciones. Un caso específico de estos sistemas distribuidos es lo que se conoce como bases de datos distribuidas, tópico a estudiar en estas notas. Conceptualización de Bases de Datos Distribuidas. Los sistemas de bases de datos distribuidas son un caso particular de los sistemas de cómputo distribuido en los cuales un conjunto de elementos de procesamiento autónomos (no necesariamente homogéneos) se interconectan por una red de comunicaciones y cooperan entre ellos para realizar sus tareas asignadas. Históricamente, el cómputo distribuido se ha estudiado desde muchos puntos de vista. Así, es común encontrar en la literatura un gran número de términos que se han usado para identificarlo. Entre los términos más comunes que se utilizan para referirse al

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

cómputo distribuido podemos encontrar: funciones distribuidas, procesamiento distribuido de datos, multiprocesadores, multicomputadoras, procesamiento satelital, procesamiento tipo "backend", computadoras dedicadas y de propósito específico, sistemas de tiempo compartido, sistemas funcionalmente modulares. Existen muchos componentes a distribuir para realizar una tarea. En computación distribuida los elementos que se pueden distribuir son:

procesamiento de información.

radas en una actividad de

Figura 18. Motivación de los sistemas de bases de datos distribuidos. Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones (ver Figura18). Un sistema de base de datos distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones, de tal forma que, un usuario en cualquier sitio puede accesar los datos en cualquier parte de la red exactamente como si los datos estuvieran almacenados en su sitio propio. Un sistema de manejo de bases de datos distribuidas (SMBDD) es aquel que se encarga del manejo de la BDD y proporciona un mecanismo de acceso que hace que la distribución sea transparente a los usuarios. El término transparente significa que la

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

aplicación trabajaría, desde un punto de vista lógico, como si un solo SMBD ejecutado en una sola máquina, administrara esos datos. Un sistema de base de datos distribuida (SBDD) es entonces el resultado de la integración de una base de datos distribuida con un sistema para su manejo. Dada la definición anterior, es claro que algunos sistemas no se pueden considerar como SBDD. Por ejemplo, un sistema de tiempo compartido no incluye necesariamente un sistema de manejo de bases de datos y, en caso de que lo haga, éste es controlado y administrado por una sola computadora. Un sistema de multiprocesamiento puede administrar una base de datos pero lo hace usualmente a través de un solo sistema de manejo de base de datos; los procesadores se utilizan para distribuir la carga de trabajo del sistema completo o incluso del propio SMBD pero actuando sobre una sola base de datos. Finalmente, una base de datos la cual reside en un solo sitio de una red de computadoras y que es accesada por todos los nodos de la red no es una base de datos distribuida (Figura 19). Este caso se trata de una base de datos cuyo control y administración esta centralizada en un solo nodo pero se permite el acceso a ella a través de la red de computadoras.

Figura 19. Un sistema centralizado sobre una red. El medio ambiente típico de un SMBDD consiste de un conjunto de sitios o nodos los cuales tienen un sistema de procesamiento de datos completo que incluye una base de datos local, un sistema de manejo de bases de datos y facilidades de comunicaciones. Si los diferentes sitios pueden estar geográficamente dispersos, entonces, ellos están

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

interconectados por una red de tipo WAN. Por otro lado, si los sitios están localizados en diferentes edificios o departamentos de una misma organización pero geográficamente en la misma ubicación, entonces, están conectados por una red local (LAN) (Figura 20).

Figura 20. Un medio ambiente distribuido para bases de datos. Tipos de bases de datos distribuidas. En términos generales, podemos decir que existen dos tipos de sistemas de bases de datos distribuidas, homogéneas y sistemas de bases de datos distribuidas heterogéneas. La homogeneidad o heterogeneidad, puede darse a diferentes niveles, Hardware, Software o sistema operativo. Para este curso, se asume que cuando se indica la homogeneidad del sistema, se hace referencia a que en todos los sitios del sistema, existe el mismo sistema de administración de base de datos y generalmente incluye el mismo modelo de datos. Un sistema de bases de datos distribuido, incluye diferentes sistemas manejadores de bases de datos, probablemente con modelos de datos diferentes que hay que compatibilizar y con retos a nivel de comunicación entre los sistemas de bases de datos que conforman el sistema, para dar la visión al usuario de integración y de un único sistema de bases de datos.

Autoevaluación

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Una base de datos distribuida heterogenea es Aquella que incluye diferentes modelos de datos y motores de administración de datos Aquella que tiene los mismos modelos de datos y motores de administración de datos Aquella que incluye diferentes sitios Aquella que incluye redes de datos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Lección 7. Bases de datos distribuidas En el presente capítulo se mostrará los aspectos importantes referentes al diseño de una base de datos distribuida. Se revisará el problema de fragmentación de los datos así como la transparencia que un sistema de datos distribuidos debe guardar respecto a la vista del usuario. Se presentarán los algoritmos para fragmentación horizontal, fragmentación horizontal derivada y fragmentación vertical. En la parte final de este capítulo se discute el problema de asignación de fragmentos. El problema de diseño El problema de diseño de bases de datos distribuidos se refiere, en general, a tomar decisiones acerca de la ubicación de datos y programas a través de los diferentes sitios de una red de computadoras. Este problema debería estar relacionado al diseño de la misma red de computadoras. Sin embargo, en estas notas únicamente el diseño de la base de datos se toma en cuenta. La decisión de donde colocar a las aplicaciones tiene que ver tanto con el software del SMBDD (sistema manejador de base de datos distribuidas) como con las aplicaciones que se van a ejecutar sobre la base de datos. El diseño de las bases de datos centralizadas contempla los puntos siguientes: 1. Diseño del "esquema conceptual" el cual describe la base de datos integrada (esto es, todos los datos que son utilizados por las aplicaciones que tienen acceso a las bases de datos). 2. Diseño "físico de la base de datos", esto es, mapear el esquema conceptual a las áreas de almacenamiento y determinar los métodos de acceso a las bases de datos. En el caso de las bases de datos distribuidas se tienen que considerar los problemas siguientes: 1. Diseño del “esquema conceptual”, donde se busca describir el modelo de datos de todo el sistema 2. Diseño de la fragmentación, este proceso se determina mediante la división de las tablas en fragmentos horizontales, verticales o mixtos, dependiendo de las necesidades de información detectadas en la etapa de análisis del sistema. 3. Diseño de la asignación de los fragmentos, esto determina la forma en que los fragmentos se mapean en los sitios o nodos del sistema. 4. Diseño de replicación. Proceso que indica en que lugar (nodos), se ubican copias de tablas o fragmentos y la frecuencia de actualización de la información. Objetivos del Diseño de la Distribución de los Datos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

En el diseño de la distribución de los datos, se deben de tomar en cuenta los siguientes objetivos: Procesamiento local. La distribución de los datos, para maximizar el procesamiento local corresponde al principio simple de colocar los datos tan cerca como sea posible de las aplicaciones que los utilizan. Se puede realizar el diseño de la distribución de los datos para maximizar el procesamiento local agregando el número de referencias locales y remotas que le corresponden a cada fragmentación candidata y la localización del fragmento, que de esta forma se seleccione la mejor solución de ellas. Distribución de la carga de trabajo. La distribución de la carga de trabajo sobre los sitios, es una característica importante de los sistemas de cómputo distribuidos. Esta distribución de la carga se realiza para tomar ventaja de las diferentes características (potenciales) o utilizaciones de las computadoras de cada sitio, y maximizar el grado de ejecución de paralelismo de las aplicaciones. Sin embargo, la distribución de la carga de trabajo podría afectar negativamente el procesamiento local deseado. Costo de almacenamiento y disponibilidad. La distribución de la base de datos refleja el costo y disponibilidad del almacenamiento en diferentes sitios. Para esto, es posible tener sitios especializados en la red para el almacenamiento de datos. Sin embargo el costo de almacenamiento de datos no es tan relevante si éste se compara con el del CPU, I/O y costos de transmisión de las aplicaciones. Enfoques al problema de diseño de bases de datos distribuidas Existen dos estrategias generales para abordar el problema de diseño de bases de datos distribuidas: El enfoque de arriba hacia abajo (top-down). Este enfoque es más apropiado para aplicaciones nuevas y para sistemas homogéneos. Consiste en partir desde el análisis de requerimientos para definir el diseño conceptual y las vistas de usuario. A partir de ellas se define un esquema conceptual global y los esquemas externos necesarios. Se prosigue con el diseño de la fragmentación de la base de datos, y de aquí se continúa con la localización de los fragmentos en los sitios, creando las imágenes físicas. Esta aproximación se completa ejecutando, en cada sitio, "el diseño físico" de los datos, que se localizan en éste. En la Figura 21 se presenta un diagrama con la estructura general del enfoque top-down. El diseño de abajo hacia arriba (bottom-up). Se utiliza particularmente a partir de bases de datos existentes, generando con esto bases de datos distribuidas. En forma resumida, el diseño bottom-up de una base de datos distribuida requiere de la selección de un modelo de bases de datos común para describir el esquema global de la base de datos. Esto se debe, a que es posible que se utilicen diferentes SMBD. Después se

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

hace la traducción de cada esquema local en el modelo de datos común y finalmente se hace la integración del esquema local en un esquema global común.

Figura 21. El enfoque top-down para el diseño de bases de datos distribuidas. El diseño de una base de datos distribuida, cualquiera sea el enfoque que se siga, debe responder satisfactoriamente las siguientes preguntas: ¿Por qué hacer una fragmentación de datos? ¿Cómo realizar la fragmentación? ¿Qué tanto se debe fragmentar? ¿Cómo probar la validez de una fragmentación? ¿Cómo realizar el asignamiento de fragmentos? ¿Cómo considerar los requerimientos de la información?

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Autoevaluación El diseño Top-Down, es mejor desarrollarlo cuando El sistema de base de datos a trabajar es nuevo, comienza de cero Ya existen bases de datos y hay que integrarlas en el sistema distribuido La programación a utilizar es orientada a objeto Se utiliza patrones de diseño

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

Lección 8. Fragmentación

Figura 22. El problema de fragmentación de relaciones. El problema de fragmentación se refiere al particionamiento de la información para distribuir cada parte a los diferentes sitios de la red, como se observa en la Figura 22. Inmediatamente aparece la siguiente pregunta: ¿cuál es la unidad razonable de distribución? Se puede considerar que una relación completa es lo adecuado ya que las vistas de usuario son subconjuntos de las relaciones. Sin embargo, el uso completo de relaciones no favorece las cuestiones de eficiencia sobre todo aquellas relacionadas con el procesamiento de consultas. La otra posibilidad es usar fragmentos de relaciones (sub-relaciones) lo cual favorece la ejecución concurrente de varias transacciones que accesan porciones diferentes de una relación. Sin embargo, el uso de sub-relaciones también presenta inconvenientes. Por ejemplo, las vistas de usuario que no se pueden definir sobre un solo fragmento necesitarán un procesamiento adicional a fin de localizar todos los fragmentos de una vista. Aunado a esto, el control semántico de datos es mucho más complejo ya que, por ejemplo, el manejo de llaves únicas requiere considerar todos los fragmentos en los que se distribuyen todos los registros de la relación. En resumen, el objetivo de la fragmentación es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones completas (ver Figura 23 ). Ejemplo 1. Considere una relación J del ejemplo visto en la introducción del presente capítulo. J: JNO JNOMBRE PRESUPUESTO LUGAR J1 Instrumentación 150000 Guajira

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

J2 Desarrollo de bases de datos 135000 Cartagena J3 CAD/CAM 250000 Medellín J4 Mantenimiento 310000 Cartagena J5 CAD/CAM 500000 Bogotá La relación J se puede fragmentar horizontalmente produciendo los siguientes fragmentos. J1: Proyectos con presupuesto menor que $200,000 JNO JNOMBRE PRESUPUESTO LUGAR J1 Instrumentación 150000 Guajira J2 Desarrollo de bases de datos 135000 Cartagena J2: Proyectos con presupuesto mayor que o igual a $200,000 JNO JNOMBRE PRESUPUESTO LUGAR J3 CAD/CAM 250000 Medellín J4 Mantenimiento 310000 Cartagena J5 CAD/CAM 500000 Bogotá Ejemplo 2. La relación J del ejemplo anterior se puede fragmentar verticalmente produciendo los siguientes fragmentos: J1: información acerca de presupuestos de proyectos JNO PRESUPUESTO J1 150000 J2 135000 J3 250000 J4 310000

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Escuela de Ciencias Básicas, Tecnología e Ingeniería Programa Ingeniería de sistemas Curso 301125 – Bases de datos avanzadas Guía de componente práctico

J5 1500000 J2: información acerca de los nombres y ubicaciones de proyectos JNO JNOMBRE LUGAR J1 Instrumentación Guajira J2 Desarrollo de bases de datos Cartagena J3 CAD/CAM Medellín J4 Mantenimiento Cartagena J5 CAD/CAM Bogotá

Figura 23. El grado de fragmentación. Correctitud de una fragmentación: Al realizar la fragmentación de una relación se deben satisfacer las siguientes condiciones para garantizar la correctitud de la misma: Condición de completitud. La descomposición de una relación R en los fragmentos R1, R2, ..., Rn es completa si y solamente si cada elemento de datos en R se encuentra en algún de los Ri. Condición de Reconstrucción. Si la relación R se descompone en los fragmentos R1, R2, ..., Rn, entonces debe existir algún operador relacional U , tal que, R=U1

i