BASES DE DATOS I Cu adernillo de procedimientos para el aprendizaje (Versión para fase inicial) C O N LA C OL AB O RA C IÓ N D E L uis Gabriel M ondrag ón Torres 1 BASES DE DATOS I Cuadernillo de procedimientos para el aprendizaje 2000. Secretaría de Educación Pública/ Dirección General del Bachillerato COSTO DE RECUPERACIÓN $ 12.00 2 ÍNDICE Presentación........................................................................................................................................................... 5 UNIDAD I. Introducción a las bases de datos............................................................................................ 1. Importancia, conceptos básicos y objetivos de las bases de datos........................................................ 2. Sistema de manejo de bases de datos........................................................................................................... 3. Usuarios de las bases de datos....................................................................................................................... 4. Relaciones entre datos..................................................................................................................................... 5. Tipos de modelos entre datos........................................................................................................................ ¿Qué he aprendido?................................................................................................................................................. Quiero saber más...................................................................................................................................................... 8 11 13 15 17 18 21 23 UNIDAD II. Bases de datos relacionales...................................................................................................... 1. Estructuras básicas de las bases de datos relacionales y normalización............................................. 2. Álgebra relacional............................................................................................................................................ 3. Vistas o subesquemas...................................................................................................................................... 4. Lenguaje relacional estándar SQL............................................................................................................... ¿Qué he aprendido?................................................................................................................................................. Quiero saber más...................................................................................................................................................... 24 26 29 32 32 34 36 UNIDAD III. Manipulación de bases de datos........................................................................................... 1. Creación de una base de datos....................................................................................................................... 2. Consultas a una base de datos....................................................................................................................... 3. Modificaciones a una base de datos.............................................................................................................. 4. Ordenación de la información....................................................................................................................... ¿Qué he aprendido?................................................................................................................................................. Quiero saber más..................................................................................................................................................... 37 38 40 41 42 45 46 UNIDAD IV. Características avanzadas de las bases de datos.............................................................. 1. Manejo de variables y funciones................................................................................................................... 2. Generador de reportes.................................................................................................................................... 3. Generador de pantallas................................................................................................................................... 4. Creación y manejo de bases de datos múltiples........................................................................................ ¿Qué he aprendido?................................................................................................................................................. Quiero saber más..................................................................................................................................................... 47 48 50 52 53 55 56 3 4 PRESENTACIÓN El uso de las bases de datos se ha ido incrementando con el tiempo, de tal forma BASES DE DATOS I que no dudaríamos en decir que actualmente desempeñan un papel muy importante en todas las instituciones educativas o privadas, así como en las empresas que ofrecen diferentes tipos de servicios. Lo anterior se debe a la necesidad de contar con información rápida y oportuna, generándose sistemas de información más eficientes, a partir de definir mejores modelos para representar la información. Así, la importancia de la información en la mayoría de las organizaciones ha conducido al desarrollo de una gran cantidad de conceptos y técnicas para la gestión eficiente de los datos, lo que implica tanto la definición de estructuras para almacenar la información como la búsqueda de mecanismos para su manipulación. Es así como surgen las bases de datos y en específico los sistemas gestores de bases de datos, cuyo objetivo es proporcionar un entorno donde sea posible recuperar, almacenar y manipular un conjunto de datos necesarios. Las bases de datos han evolucionado a tal grado que actualmente la demanda y oferta de usuarios y diseñadores ha crecido respectivamente. Cuando surgieron las bases de datos se requería de un especialista en técnicas de estructuración de datos para diseñar los sistemas, actualmente muchos técnicos y profesionistas cuentan con los elementos necesarios para realizar un buen sistema de bases de datos. Es importante que identifiques la importancia de cursar la asignatura de Bases de Datos I, ya que ésta te brindará los elementos teóricos-prácticos para generar y operar con las bases de datos relacionales y resolver problemas de complejidad creciente a través de sistemas sencillos. Conforme vayas avanzando en el estudio de esta asignatura, te darás cuenta que no es fácil desarrollar soluciones prácticas en el primer intento, sobre todo cuando diseñan bases de datos grandes, ya que para lograrlo necesitarás utilizar toda una metodología para diseñar bases de datos. La ejercitación en problemas de este tipo te permitirá conocer y profundizar en el estudio y manejo de Sistemas de Bases de Datos. Para que puedas realizar el estudio de esta asignatura es conveniente que entiendas la manera particular en la que se estructura esta guía. Las unidades están constituidas por las siguientes secciones: Qué voy aprender. En este apartado encontrarás los propósitos y los objetivos de cada una de las unidades didácticas. Es muy importante que tengas en mente lo que vas a lograr con el estudio de los temas del programa, tener claridad de la meta es fundamental para poder utilizar las herramientas de que disponemos para llegar a ella. Con la intención de presentarte un proceso real de trabajo, en la primera unidad se describe el planteamiento de una situación laboral, la cual llamaremos Situación de aprendizaje. Durante el desarrollo de toda la guía se harán referencias al Manual de Ejercicios y Prácticas, en donde se presentará la solución parcial de dicha situación, la parte faltante te corresponderá desarrollarla. También debes desarrollar las prácticas, ya que ellas te darán los elementos de modelaje en la solución de la situación de aprendizaje. 5 ¿Cómo aprendo? En esta sección encontrarás las actividades de aprendizaje que te irán llevando paso a paso a través de estrategias de solución, pero siéntete con la libertad de probar otros caminos después de que hayas dominado el que se te propone. En todos los temas te presentamos una tabla con tres columnas: en la primera de ellas, titulada actividades de aprendizaje se incluye una secuencia de acciones que debes realizar para acercarte con mayor facilidad al estudio de esta asignatura, haciéndose referencias al manual de ejercicios y prácticas para reforzar los contenidos revisados y resolver la situación de aprendizaje; en la segunda, recursos, se proporcionan algunas sugerencias para que encuentres fácilmente la información que requieres; finalmente, en la tercera columna, llamada productos, se anotan los resultados concretos que debes obtener al terminar la secuencia de actividades correspondiente a cada tema, tales productos deben servirte como un control de tu propio avance. Te servirá también para ir formando un glosario con los términos más usuales y sus definiciones; es decir, un diccionario personal que te ayudará en caso de dudas al utilizar alguna de las herramientas que estás estudiando. ¿Qué he aprendido? Al concluir el estudio de cada unidad, te convendrá detenerte a pensar acerca de tus logros y descubrir qué tan firme y precisa se está llevando a cabo tu formación en esta asignatura. Se te plantean una serie de reflexiones que te ayudarán a valorar tu esfuerzo. No es un examen sino una evaluación, se trata de que ejerzas tu capacidad de reflexión acerca de ti mismo y que, en caso necesario, revises aquellos puntos del programa de estudio que consideres que todavía no dominas por completo. Será el momento de revisar también tus actitudes con respecto a la manera en que estudias. Te sugerimos que elabores una tabla de logros para que lleves tu registro personal, seguramente al ir anotándolos, te darás cuenta con satisfacción que el esfuerzo ha valido la pena. Quiero saber más. En esta sección se proponen actividades adicionales para que, a tu elección, puedas extender tu horizonte de conocimiento. Es muy conveniente que asumas que no todo lo que necesitas saber se te proporcionará en un curso, por el contrario, deberás estar siempre alerta a enfrentar nuevos retos para que tu aprendizaje sea realmente el que necesitas para resolver tus propios problemas. Tu participación es muy importante para que el estudio de las Bases de Datos tenga sentido y utilidad real. Te darás cuenta que es satisfactorio descubrir que puedes ser cada vez más eficiente en el manejo de nuevos medios para enfrentar tus problemas y, en la mayoría de los casos, encontrar la mejor solución que esté a tu alcance. Ubicación de la asignatura La asignatura de Bases de Datos I, se ubica en el eje básico de la estructura de la Capacitación en Informática y corresponde al quinto semestre. La importancia de esta asignatura es que te permite aprender conceptos, principios generales y operaciones básicas de las bases de datos relacionales de un modo inmediato, mediante el conocimiento general de la teoría y la solución de problemas de complejidad creciente, para que puedas desarrollar bases de datos sencillas y así facilitar la continuidad de tus estudios sobre el tema. 6 La ubicación gráfica dentro de la Capacitación en Informática es la siguiente. EJE BÁSICO Sistemas de Información I Sistemas de Información I Lógica Computacional y Programación Bases de Datos I EJE DE APLICACIÓN Aplicaciones Gráficas con Programas Integrados EJE COMPLEMENTARIO Bases de Datos II Aplicaciones Específicas con Programas Integrados Introducción a las Redes Relación directa Relación indirecta Objetivo de la asignatura Aplicar los conceptos, principios generales y operaciones básicas de las bases de datos relacionales en modo inmediato, mediante el conocimiento general de la teoría y la solución de problemas de complejidad creciente, para desarrollar sistemas sencillos y facilitar la continuidad de estudios sobre el tema. 7 ¿QUÉ VOY A APRENDER? UNIDAD I INTRODUCCIÓN A LAS BASES DE DATOS Objetivo de la Unidad: Comprender el concepto, aplicación, uso, tipos y estructuras básicas de las bases de datos, mediante el análisis de sus objetivos, lenguajes de manipulación, tipos de usuario, relaciones entre datos y modelos, para identificar los problemas que es posible resolver mediante este tipo de herramientas. Las organizaciones han crecido mucho y por lo tanto han requerido sistematizar la información que ocupan para sus transacciones. Es por ello que desde los 70s se optó por cambiar los sistemas de archivos a bases de datos, para facilitar el acceso a la información, considerando que es importante en la organización y la gestión de recursos de información, dado que permite eficientar los tiempos de consulta para tomar desiciones en el momento adecuado. Es importante señalar que tendremos que seguir cierta metodología para diseñar bases de datos medianas o grandes, y generar así sistemas de procesamiento de transacciones, es decir, elaborar sistemas que utilizan grandes cantidades de información almacenadas en bases de datos, en las cuales se realizan muchas transacciones o modificaciones diariamente. Si nuestro objetivo es generar bases de datos chicas, entonces no será tan necesario utilizar toda una metodología para diseñarla. Por lo anterior, empezaremos por explicarte qué son las bases de datos, cómo se diseñan y los problemas más comunes que se presentan al realizar un mal diseño, para poder definir sistemas informáticos que permitan procesar información de una manera rápida y confiable. Abordaremos la descripción de las aplicaciones de software que permiten manipular de forma rápida y confiable la información contenida en una base de datos, ya que sin éste nuestra base de datos quedaría a un nivel descriptivo y con datos contenidos en papel. Estas aplicaciones de software se conocen como Sistemas Gestores de Bases de Datos (SGBD) o Sistemas Manejadores de Bases de Datos (DBMS, siglas en inglés de Data Base Manager System), y se caracterizan por tener una organización física y lógica, utilizar un lenguaje específico y tener interfaces con otros sistemas de comunicaciones. Asimismo, definiremos las relaciones entre datos, los principales modelos conceptuales para la representación de la estructura lógica de los datos, así como los usuarios de las bases de datos. En el desarrollo de la situación de aprendizaje, las actividades que se te proponen y aquellas que realices por cuenta propia, podrás identificar la forma de diseñar bases de datos relacionales, apoyándote en el álgebra relacional y el lenguaje SQL. 8 Los temas que forman el contenido de esta unidad se presentan a continuación: Unidad I. Introducción a las bases de datos Bases de datos Utilizando Gestores de bases de datos Utilizan Tienen una Organización Física Lógica Utilizan el Lenguajes Manejar datos Describir Consultas Programas Pueden tener Diseño de datos Problemas De Redundancia Inconsistencia Integridad Seguridad Tienen Usuarios Modelos conceptuales De tipo Como Finales Diseñadores o programas Operadores o capturitas Lista Árbol Reticular Relacional Debes notar que los conceptos más importantes están sombreados, préstales especial atención puesto que forman parte del conjunto de conceptos fundamentales en tus estudios de Informática. 9 A continuación te presentamos el eje rector de la guía, en el cual se te presenta un proceso real de trabajo muy similar a los que te podrás encontrar en el campo laboral. SITUACIÓN DE APRENDIZAJE El servicio de mensajería FQB actualmente cuenta con 50 sucursales distribuidas por todo el país, éstas se encargan de recibir o enviar paquetes a través de toda la República Mexicana, dichos paquetes pueden ser desde una carta hasta paquetes de 100 kg. El gerente regional ha detectado una serie de problemáticas con los envíos, ya que en algunas ocasiones se pierden las órdenes de envío o no se llenan correctamente y los paquetes no llegan a sus destinos; de igual manera, llegan paquetes cuyo destino no coincide con la sucursal, por lo cual se tienen que regresar a su origen para volverse a enviar, provocando molestias con los usuarios del servicio de mensajería FQB. La forma en que opera la paquetería es la siguiente: - El encargado de recibir los paquetes registra en una libreta de clientes los datos generales de éste y del destinatario, tales como: nombre, dirección y teléfono, asignándoles una clave única de identificación para tener sus datos a la mano por si surge algún problema en el envío o recepción del paquete. - Como segundo paso, el encargado registra en la libreta de salidas las características del o los paquetes, tales como: clave del artículo, descripción y costo. Asimismo, registra la clave única de identificación del cliente que envía el paquete. En caso de desconocer alguna característica del paquete se auxilia con una libre de artículos, en donde se encuentran dichos datos. - Lo siguiente que realiza es generar una factura de contratación del servicio con los siguientes datos: número de factura, fecha de facturación, datos generales del cliente remitente y destinatario, así como los datos generales de las sucursales de origen y destino, y por último, la descripción de los paquetes, costo por paquete y total del envío. Los datos generales de las sucursales son: Estado, dirección, teléfono y clave de identificación de la sucursal. - Cuando llega un paquete, el encargado registra los datos del mismo en la libreta de entradas, incluyendo tanto la clave única de identificación del cliente que envía como el que recibe, y en la libreta de clientes también registra los datos generales de ambos clientes, incluyendo las claves únicas de identificación asignadas. - Por último cataloga el paquete según el destino, para que en el momento oportuno se envíe. El gerente regional decide sistematizar el servicio de mensajería, de tal forma que se cuente con una base de datos relacional que almacene la información descrita, la cual se pueda manipular a través de pantallas de captura y consulta, y permita elaborar facturaciones mediante la generación de reportes, utilizando una aplicación de bases de datos. 10 ¿CÓMO APRENDO? 1. IMPORTANCIA, CONCEPTOS BÁSICOS Y OBJETIVOS DE LAS BASES DE DATOS Objetivo: Familiarizarse con los objetivos, aplicaciones, terminología y problemas fundamentales de las bases de datos y los sistemas para su manejo, mediante el estudio de su importancia, la problemática que abordan y sus características básicas. Es importante que identifiques la importancia de las bases de datos como medio de almacenamiento de información, así como las implicaciones que tiene realizar un mal diseño de la base de datos, ya que esto provoca ciertos problemas con la información que podrían causar grandes complicaciones en la información de una organización. Por lo anterior identificaremos a las bases de datos como el medio de almacenamiento de información, la forma de realizar un diseño confiable y, por ende, los principales problemas que implicaría realizar un mal diseño. En la actualidad las bases de datos son el elemento crucial en las áreas que utilizan sistemas computarizados, ya que permite mantener y operar información en forma organizada, segura, confiable y en grandes cantidades. Primero empezaremos por definir algunos conceptos indispensables para entender aspectos importantes de la asignatura. Una base de datos es un conjunto de datos organizados y relacionados entre sí, de forma lógica, que en su totalidad dan información sobre aspectos reales. Entenderemos como dato un hecho real conocido que podemos registrar, el cual por sí solo no da información. Definiremos información como un conjunto de datos que le dan significado a diversos aspectos del mundo real. Imaginemos que la Secretaría de Hacienda y Crédito Público al momento de hacer sus recaudaciones de impuestos de las personas físicas (personas que trabajan por honorarios o que prestan algún servicio), registraran los pagos en un conjunto de bases de datos iguales en cada entidad federativa y como nosotros tenemos la obligación de hacer nuestra declaración, pero nos encontramos en una entidad federativa diferente de donde tenemos nuestro domicilio y es el último día para entregarla, lo más sencillo sería ir a pagar en donde estamos; pero al regresar a casa y al cabo de un mes nos llega un requerimiento de incumplimiento de nuestro pago de impuestos. ¿Por qué se nos requiere, si pagamos puntualmente? La respuesta es que existe un problema de redundancia de información en las bases de datos, es decir, tenemos una serie de bases de datos de gran tamaño que almacenan la misma información, provocando una duplicación innecesaria de información y desperdicio de espacio por almacenamiento, esto provoca al mismo tiempo un problema de inconsistencia, ya que la base de datos de nuestra localidad no está actualizada con respecto de donde realizamos el pago y en caso de que si se encuentre actualizada, pudieron haber surgido irregularidades al momento de capturar la información, provocando un problema, que en este caso se trata de un requerimiento por parte de Hacienda. 11 La solución a este problema es que exista una sola base de datos, donde se registre toda la información actualizada de los pagos y a la cual puedan acceder las oficinas de Hacienda de cada entidad federativa. A su vez, esto provoca una serie de problemáticas de integridad y seguridad de información, ya que van a existir varios usuarios que utilicen la misma base de datos. La integridad se refiere a que se deben especificar restricciones en el tipo de dato que contiene la información a almacenar, es decir, si se va a registrar el pago de impuestos de un contribuyente, el dato impuesto deberá contener un valor numérico y el dato contribuyente un conjunto de letras, de tal forma que dichos datos no acepten otros valores diferentes a los especificados. Con respecto a la seguridad nos referimos a los usuarios que tienen autorización o privilegios para manipular la base de datos, de tal forma que algunos usuarios sólo tendrán autorización para introducir información específica como el pago del impuesto, pero no para modificar el R.F.C. del contribuyente, esto implica que algunos usuarios tendrán el privilegio de visualizar los datos, mientras que otros tendrán el privilegio de consultarlos y actualizarlos. La Secretaría de Hacienda y Crédito Público en la actualidad cuenta con una sola base de datos compartida entre todas las entidades federativas, tomando las precauciones necesarias para evitar los problemas de redundancia, inconsistencia, integridad y seguridad de su información. A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Recursos Productos Adoración de Miguel y Mario Resumen y definición de las Realiza un resumen sobre la importancia de las bases de datos, Piattini. Fundamentos y modelos bases de datos. así como su definición. de Bases de Datos. México, Alfaomega Grupo Editor, 1999, pp. 3-33. En un cuadro sinóptico marca las Adoración de Miguel y Mario principales problemáticas que se Piattini. Op. cit., pp. 6-7. presentan al realizar un mal diseño de una base de datos, tales como redundancia, inconsistencia, integridad y seguridad. Cuadro sinóptico sobre las principales problemáticas que se presentan al realizar un mal diseño de una base de datos. Investiga sobre la independencia de datos y funciones (operaciones). Adoración de Miguel y Mario Ficha de contenido sobre la independencia de datos y Piattini. Op. cit., pp. 21-22. funciones. Realiza los ejercicios 1 y 2. Manual de ejercicios y prácticas. Ejercicios 1 y 2 resueltos. A partir de revisar y analizar la situación de aprendizaje, identifica qué problemas de redundancia e inconsistencia pueden existir. Situación de aprendizaje. Ficha de contenido sobre las posibles problemáticas de redundancia e inconsistencia que puedan existir en la situación de aprendizaje. 12 2. SISTEMAS DE MANEJO DE BASES DE DATOS Objetivo: Reconocer los componentes fundamentales de los sistemas de manejo de bases de datos, a través del estudio de sus elementos físicos y lógicos, los diferentes lenguajes de que se compone un manejador de bases de datos y las posibles interfaces con otros sistemas de comunicaciones como la INTERNET. Los sistemas de base de datos se diseñan para almacenar grandes cantidades de información. La gestión de datos implica tanto la definición de estructuras para el almacenamiento de la información como la provisión de mecanismos para la manipulación de la misma. Los sistemas de base de datos deben proporcionar la seguridad de la información almacenada en ellos y evitar prosibles fallas o resultados erróneos como la caída del sistema del acceso de personas ajenas a éste. El propósito principal de un sistema de bases de datos es proporcionar un entorno que sea conveniente y eficiente, para las personas que lo usan en la recuperación y almacenamiento de la información. Así, los Sistemas de Manejo de Bases de Datos, también conocidos como Sistemas Gestores de Bases de Datos (SGBD), sirven para realizar una serie de operaciones con los datos almacenados en una base de datos. Se podría decir que la base de datos es el recurso que contiene la organización de la información y el SGBD es el medio para manipularla. En otras palabras un SGBD es un conjunto de programas o software de aplicación general, que permite crear y manipular una cantidad variable de bases de datos computarizada, a partir de utilizar un diccionario de datos o catálogo que es donde se definen los datos, la estructura de éstos y las restricciones de los datos que se almacenarán en la base de datos. Cabe aclarar que no siempre es necesario usar un SGBD de aplicación general para crear una Base de Datos computarizada (el cual requerirá siempre de un catálogo), también se podría crear a partir de escribir una serie de programas en un lenguaje de programación, como el Turbo Pascal, para manipular una base de datos específica creando así nuestro propio SGBD de aplicación específica (no requiere de catálogo). Los elementos de un SGBD se pueden presentar a través de la definición de tres niveles de abstracción que pueden ser observados y que son: el nivel físico, el nivel lógico o interno y nivel conceptual o externo, los cuales conforman la estructura y nos brindan los detalles de cómo se almacenan y mantienen los datos. Cuando ya se ha implementado una base de datos, es decir, se ha diseñado la base de datos, se ha seleccionado el SGBD y se ha llenado ésta de datos, el usuario lo que requerirá en este momento será usarla; las operaciones más comunes que se usan son: la consulta, modificación, actualización y el borrado de datos, para esto el SGBD ofrece un lenguaje de manipulación de datos (DML, siglas en inglés de data manipulation language). 13 NIVEL EXTERNO NIVEL CONCEPTUAL NIVEL LÓGICO O INTERNO VISTA EXTERNA1 ... VISTA EXTERNAn ESQUEMA CONCEPTUAL ESQUEMA INTERNO BASE DE DATOS ALMACENADA El nivel externo es la vista que tienen los usuarios del sistema, es decir, el usuario n sólo ve lo que requiere de la información de la base de datos, el resto está ocultó. El nivel conceptual presenta información referente a las entidades, datos, relaciones, operaciones y restricciones que tienen los usuarios en la base de datos. El nivel lógico o interno detalla la estructura física de almacenamiento de la base de datos, así como los direccionamientos de la información. Sin embargo, cuando estas bases de datos son usadas por personas que únicamente realizan transacciones simples y predefinidas por el sistema, se deben desarrollar interfaces amigables para ellos, para que puedan manipular la base de datos. Entenderemos por interface al medio que permite comunicar a dos dispositivos electrónicos entre sí (por ejemplo dos computadoras) o a un dispositivo electrónico con un usuario. A continuación te presentamos las interfaces más utilizadas por un SGBD: Interfaces basadas en menús. Mediante la presentación de un menú desplegable se le presentan al usuario una serie de opciones a elegir para realizar ciertas solicitudes o transacciones. Es un ambiente que evita al usuario memorizar toda una serie de instrucciones para realizar sus movimientos, ya que éste lo va llevando paso a paso. Interfaces gráficas. El usuario selecciona o realiza una serie de movimientos o transacciones, a través de seleccionar con un apuntador en un gráfico o imagen presentada en la pantalla lo que desea hacer. Sin embargo, existen otros tipos de interfaces a nivel de comunicación, como la INTERNET, en donde un usuario de cualquier parte del mundo puede compartir información con otros usuarios, sin importar las distancias. 14 A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Recursos Adoración de Miguel y Elabora un resumen sobre los Sistemas Gestores de Bases de Datos Mario Piattini. Op. cit., (SGBD), sus elementos físicos y pp. 28-31, 62,63. lógicos (nivel de abstracción) y su arquitectura según el modelo ANSI/ESPARC o de tres esquemas. Productos Resumen y arquitectura sobre los SGBD, según el modelo de ANSI/ESPARC o tres esquemas, comentando dicho modelo. Realiza una ficha de contenido sobre Adoración de Miguel y los lenguajes de los SGBD. Mario Piattini. Op. cit., pp. 43-51. Ficha de contenido sobre los lenguajes de los SGBD. 3. USUARIOS DE LAS BASES DE DATOS Objetivo: Identificar los principales tipos de usuarios de bases de datos, mediante el análisis de situaciones reales de trabajo o vida, para ubicar el papel del operador y desarrollador de bases de datos. Cuando se diseña una base de datos mediana o grande se debe tener en cuenta que están involucradas personas en el desarrollo, mantenimiento, diseño y uso de las bases de datos, cada una de estas personas tiene un rol determinante en el manejo de la base de datos. Cuando se genera una base de datos pequeña como la agenda, lo más común es que una sola persona la diseñe, construya y use. Entre los diferentes tipos de usuarios que pueden intervenir en el desarrollo de una base de datos se encuentran: Usuarios diseñadores y desarrolladores Son las personas encargadas de diseñar la base de datos y realizar las definiciones en el SGBD a nivel interno, para cubrir los requerimientos de los demás usuarios de la base de datos. Éstos se encargan de diseñar e implementar los módulos e interfaces del SGBD en forma de paquetes de software. Un SGBD es un sistema complejo de software que consta de diversos componentes o módulos, como los módulos para implementar el catálogo, los lenguajes de consulta, los procesadores de interfaz, el acceso a los datos y la seguridad. El SGBD debe poder comunicarse con otros programas del sistema, como el sistema operativo y los compiladores de diversos lenguajes de programación.1 1 Elmasri y Navarrete. Sistemas de Bases de Datos, conceptos fundamentales. 2a. edición, México, Eddison-Wesley Iberoamericana, 1997, p. 11. 15 Usuarios operadores y capturistas Son las personas encargadas de hacer el vaciado de información en la base de datos, así como de llevar a cabo el funcionamiento y mantenimiento del sistema de información. Usuarios finales Requieren tener acceso directo a la base de datos para realizar consultas, modificaciones y generar reportes, de hecho la base de datos existe para ellos. Dentro de este tipo de usuarios tenemos la siguiente clasificación: Esporádicos. Personas que utilizan la base de datos algunas veces para solicitar información con diferentes criterios. Smples o paramétricos. Forman el grueso de la población de los usuarios finales, realizan operaciones o transacciones de uso común, que se han probado exhaustivamente. En este grupo se encuentran las personas que utilizan a los sistemas bancarios, reservaciones de cualquier tipo, entre otras. Avanzados. Son las personas capacitadas para manipular al SGBD, las cuales tienen requerimientos complejos de información. Autónomos. Utilizan bases de datos personalizadas de fácil uso, cuyo ambiente es de tipo gráfico, es decir, mantiene un ambiente amigable. A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Recursos Desarrolla un cuadro sinóptico sobre Adoración de Miguel y Mario Piattini. Op. cit., los tipos de usuarios: finales, diseñadores, desarrolladores, pp. 35-38. operadores y capturistas. Productos Cuadro sinóptico acerca de los diferentes tipos de usuarios de una base de datos. A partir de revisar y analizar la situación de aprendizaje, identifica en que momentos intervendrán los diferentes tipos de usuarios para realizar el diseño de la base de datos. Ficha de contenido sobre los usuarios que intervendrán en el diseño de la base de datos. Situación de aprendizaje. 16 4. RELACIONES ENTRE DATOS Objetivo: Clasificar un conjunto de datos, mediante el análisis de las relaciones existentes entre ellos, para preparar la identificación del modelo conceptual. Un conjunto de datos puede describir un objeto del mundo real, al cual llamaremos ENTIDAD, dichos datos o atributos pueden servir para relacionar una entidad con otra al tener éstas datos en común, es decir, los valores que pueden tomar los datos son de características similares en las entidades, a éstos se les conoce como atributo clave (dato que permite la relación entre entidades). A continuación te presentamos un ejemplo de una entidad cualquiera con sus atributos y valores asignados. Atributos Valores Tipo = Tenis Color = Blanco Número = 21 1/2 Marca = Reebok Zapato Modelo = Clásico Entidad Supongamos que además de la entidad Zapato incorporamos otra entidad: Persona cuyos atributos son nombre, edad y sexo. Podríamos relacionar las dos entidades mediante la relación Tiene, quedando el siguiente esquema de ER: Tipo Nombre Edad PERSONA 1 TIENE N Número ZAPATO Modelo Sexo Color Marca Este tipo de relación se conoce como binaria o vínculo binario, ya que tenemos dos entidades conectadas a una misma relación, y los índices 1 y N (1:N) significan que a la entidad PERSONA se le pueden relacionar o vincular a N entidades ZAPATO. Igualmente, si tuviéramos tres entidades conectadas a una misma relación se entenderá que es una relación ternaria, y si los índices indican (1:1) significa que la relación entre entidades es de una a una, asimismo si los índices son (N:1) quiere decir que la relación entre entidades es de N a una. 17 A continuación se te presentan las actividades que debes realizar para cubrir con este tema. Actividades de aprendizaje Elabora un resumen sobre las relaciones entre datos, identificando elementos como: entidad, atributo, atributo clave, valor y relación o interrelación. Recursos Productos Adoración de Miguel y Mario Resumen sobre el modelado Piattini. Op. cit., pp. 103-109. de datos utilizando el modelo Entidad Relación o Entidad-Interrelación. Realiza el ejercicio 3. Manual de ejercicios y prácticas. Ejercicio 3 resuelto. 5. TIPOS DE MODELOS DE DATOS Objetivo: Identificar la estructura lógica subyacente en un conjunto de datos, a partir de modelos conceptuales de lista, árbol o red, para identificarlos como casos particulares del modelo relacional y preparar el diseño de una base de datos relacional. Para realizar el diseño conceptual de la base de datos, primero debemos saber que existen varios tipos de modelos de datos, los cuales son un conjunto de elementos que sirven para describir la estructura de una base de datos, entenderemos por conjunto de elementos a los tipos de datos, relaciones entre ellos y las posibles restricciones que se establecen para esos datos. Conforme se han ido implementado las bases de datos, se han creado varios modelos de datos, los cuales se clasifican en tres niveles dependiendo del conjunto de elementos que presentan en la estructura de datos. 1. Modelo de alto nivel o conceptual. Los usuarios no expertos en el área de informática podrían interpretar o leer este tipo de modelo, ya que el conjunto de elementos que presenta (entidades, atributos y relaciones) son muy significativos para cualquier persona. Entenderemos por entidad a la representación real de un objeto o cosa, por ejemplo: una persona, un documento, un perro, etc. Un atributo es una propiedad o característica importante que da una información más completa de una entidad; y una relación describe la interfaz o relación que existe entre dos o más entidades. 2. Modelo de bajo nivel o físicos. Este tipo de modelo va dirigido a los usuarios expertos en el área de informática, ya que es más abstracto, presenta la forma en como se almacena la base de datos en la computadora y las rutas de acceso de la misma. 3. Modelo de representación o de implementación. Es el punto intermedio entre los dos modelos anteriores, de tal forma que un usuario no experto podría interpretarlo, pero podría ver ciertos detalles de la forma en que se encuentran organizados los datos. En este último modelo se encuentran los SGBD comerciales. De este modelo se desprenden tres esquemas o modelos más: relacional, de red, jerárquico. 18 Modelo relacional. Tiene un mayor sustento teórico y es el más utilizado actualmente en el mundo de las aplicaciones de bases de datos, implicando un mayor desarrollo de SGBD de tipo relacional. Este modelo presenta a la base de datos como un conjunto de tablas (concepto que revisaremos a detalle en la unidad II) relacionadas entre sí. Modelo de red. Los datos de la base se presentan como registros y conjuntos, cada conjunto define una relación de uno a n registros. Los conjuntos pueden tener a un mismo registro como participante o propietario. Modelo jerárquicos o arborescentes. Presenta una estructura de tipo Padre Hijo. Un esquema de este tipo presenta a los registros ordenados de forma jerárquica, es decir, en forma de árbol Cuando se define el modelo de datos el diseñador de la base elabora un modelo conceptual de los datos a utilizar en ésta, de tal forma que sea independiente de cualquier SGBD. Para lograrlo se debe considerar que este modelo sea: 1. Expresivo, para distinguir los tipos datos, restricciones y relaciones. 2. Sencillo, ya que cualquier usuario debe entenderlo, independientemente de tener o no elementos de diseño de bases de datos. 3. Diagramático, para que de forma visual se pueda interpretar el esquema conceptual del diseño de la base de datos (utilizando como base al diagrama de Entidad Relación). 4. Formal, ya que el modelo del diseño conceptual no debe ser ambiguo, sino claro y confiable. Para el diseño conceptual nos apoyaremos solamente en el modelo relacional: el diagrama o modelo de Entidad-relación, el cual explicaremos a continuación. Modelo de Entidad Relación (ER). Es utilizado en diseño de bases de datos relacionales. Lo importante de este modelo es representar a los datos como entidades que se pueden relacionar con otras, cuya característica es que tienen atributos propios. Para empezar a entender el modelo definiremos a la ENTIDAD como un objeto del mundo real, independiente de los demás objetos existentes, cuya principal propiedad es que tienen características o ATRIBUTOS propios, donde cada atributo de cada entidad podrá almacenar un VALOR, pero si este valor hace único a la entidad, entonces a este atributo se le conoce como ATRIBUTO CLAVE. 19 La siguiente tabla presenta la notación básica para realizar diagramas de Entidad Relación. Símbolo Significado Entidad Vínculo o relación Atributo Atributo clave De tal forma que la entidad Zapato con sus atributos la podríamos representar en el siguiente diagrama: Tipo Color Número Marca Modelo ZAPATO A continuación se te presentan las actividades que debes realizar para cubrir con este tema. Actividades de aprendizaje Recursos Realiza un cuadro sinóptico sobre Adoración de Miguel y Mario los modelos de datos de alto nivel Piattini. Op. cit., pp. 92, 123o conceptual, de bajo nivel o físico 129, 297-312, 357-370. y de representación o de implementación y a partir de este último sus esquemas de datos más comerciales: relacional (modelo de Entidad-Relación), de red y Jerárquico. Realiza el ejercicio 4. Manual de ejercicios y prácticas. Con relación a la situación de Manual de ejercicios y prácticas. aprendizaje, desarrolla la práctica 1, donde realizarás el diagrama de entidad relación. 20 Productos Cuadro sinóptico sobre los modelos de datos y los esquemas de éstos más comerciales. Ejercicio 4 resuelto. Resolución de la Práctica 1. ¿QUÉ HE APRENDIDO? A continuación encontrarás la evaluación de la unidad, para que valores tus avances hasta el momento. I Lee con atención cada uno de los siguientes conceptos y coloca dentro del paréntesis la definición que le corresponda. Concepto ( ) Dato. Definición a) Conjunto de datos organizados y relacionados entre sí, de forma lógica. ( ) SGBD. b) Hecho real conocido que podemos registrar. ( ) Base de datos. c) Conjuntos de elementos relacionados que indican un aspecto del mundo real. ( ) Información. d) Conjunto de programas o software de aplicación general. ( ) Catálogo. e) Estructura donde se definen los datos, la estructura y las restricciones de éstos. II. Lee con atención cada una de las siguientes proposiciones y coloca dentro del paréntesis una V si es verdadera o una F si es falsa. ( ) Existen dos niveles para realizar un modelo de base de datos: el de alto nivel o conceptual y el de bajo nivel o físico. ( ) El modelo relacional es el que tiene un mayor sustento teórico, además de ser el más utilizado actualmente. ( ) Una entidad es la representación virtual de un objeto o cosa. ( ) Para seleccionar un SGBD no es necesario considerar el costo por la gestión de la base de datos. III. Identifica en el siguiente Diagrama de Entidad Relación lo que se señala y escribe qué significa en las líneas según su enumeración. 1 3 Dirección Niveles Nombre TIENE UN CASA 4 2 5 21 Edad DUEÑO Nacionalidad Color R.F.C. Edo Civil 1.-_______________________________ 2.-_______________________________ 3.-_______________________________ 4.-_______________________________ 5.-_______________________________ IV. Lee las siguientes preguntas y contéstalas correctamente. 1. 2. 3. 4. 5. ¿Qué es redundancia en una base de datos? ¿Qué es inconsistencia en una base de datos? ¿Qué es integridad en una base de datos? ¿Qué es seguridad en una base de datos? ¿Qué tipos de relaciones se pueden hacer entre datos? V. Selecciona la opción correcta para cada enunciado y coloca la letra correspondiente dentro del paréntesis. 1. ( a) b) c) d) e) ) En el modelo de ANSI/ESPARC se presenta información referente a las entidades datos, relaciones, operaciones y restricciones que tienen los usuarios en la base de datos. Nivel interno. Nivel conceptual. Nivel externo. Nivel lógico. Nivel físico. 2. ( ) Forman el grueso de la población de usuarios, los cuales realizan transacciones de uso común. a) b) c) d) e) Usuarios diseñadores. Usuarios capturistas. Usuarios desarrolladores. Usuarios finales. Usuarios operadores. 3. ( a) b) c) d) e) ) Los menús desplegables se consideran como... lenguajes de la base de datos. interfaces amigables del usuario. elementos del diseño de la base de datos. conjunto de esquemas que se utilizan en el modelo ER. arquitectura del diagrama de ANSI/ESPARC o de tres esquemas. 22 QUIERO SABER MÁS Explica en qué consiste el ciclo de vida de una base de datos. Investiga sobre otros modelos para representar los datos, por ejemplo el orientado a objetos. Investiga acerca del modelo de entidad - relación extendido. Identifica otros lenguajes lenguajes que utiliza el SGBD. 23 ¿QUÉ VOY A APRENDER? UNIDAD II BASES DE DATOS RELACIONALES Objetivo de la Unidad: Conocer las características de las bases de datos relacionales y la forma estándar de expresarlas, mediante el análisis de sus estructuras básicas, distintas vistas, así como la utilización de herramientas de álgebra relacional y lenguaje SQL, para poder comunicar un diseño conceptual. Hoy en día el modelo relacional se ha establecido como el principal modelo para las aplicaciones de procesamiento de datos, dejando atrás a los sistemas de bases de datos basados en el modelo de red o jeráquico, cuya principal diferencia es que mientras en el modelo de red y jerárquico los datos se representan mediante conjuntos de registros y las relaciones entre ellos mediante enlaces, en el modelo relacional los datos y las relaciones se representan a través de tablas. Las bases de datos relacionales se presentan como un conjunto de entidades, relaciones o vínculos y atributos, que hoy en día se utilizan en numerosas organizaciones. Es por ello que en esta unidad nos encargaremos de revisar a detalle las características de las bases de datos relacionales, la forma de realizar consultas utilizando el álgebra relacional y la forma de crearlas y manipularlas al utilizar un lenguaje estructurado de consultas. En este modelo de datos relacional utilizaremos estructuras básicas como lo son las tablas o relaciones, renglones o tuplas y columnas o atributos. También revisaremos las reglas de normalización. Realizarás ejercicios de álgebra relacional para empezar a introducirte en las posibles operaciones que se pueden realizar con una base de datos relacional. En la unidad anterior revisamos la arquitectura de un SGBD con el modelo de ANSI/ESPARC, en el cual se establece una serie de vistas en el nivel externo, es decir, partes de la información contenida en la base de datos que el usuario ve, según los privilegios o restricciones de acceso, y en esta unidad te explicaremos a detalle, precisamente esas vistas. Los SGBD como ya se ha mencionado sirven para manipular la información contenida en una base de datos. En la actualidad existe una gran variedad de SGBD de tipo relacional, por lo cual se ha creado un lenguaje único para expresar los elementos, relaciones, búsquedas y otras operaciones posibles con la base de datos, para manipularla. Este lenguaje, mejor conocido por sus siglas en inglés SQL (Structured Query Lenguage, en español: Lenguaje Estructurado de Consultas), es independiente de cualquier SGBD, por lo cual facilita a los usuarios diseñadores y desarrolladores de bases de datos su trabajo de diseño. 24 A continuación te presentamos los contenidos organizados de esta unidad. Unidad II. Bases de datos relacionales Bases de datos relacionales Maneja Base de datos relacional Se apoya en Tiene Álgebra relacional Utiliza un Vistas Lenguaje relacional estándar SQL Según los Privilegios de acceso No olvides que para resolver la situación de aprendizaje que se planteo en la unidad anterior, tendrás que incorporar nuevos aprendizajes que se te indicarán en las actividades de aprendizaje y que será resuelta parcialmente en las prácticas planteadas en toda la Guía. 25 ¿CÓMO APRENDO? 1. ESTRUCTURAS BÁSICAS DE LAS BASES DE DATOS RELACIONALES Y NORMALIZACIÓN Objetivo: Diseñar y normalizar una base de datos sencilla, a partir de la identificación de relaciones, la especificación de campos y la aplicación de las reglas de normalización, para contar con una especificación susceptible de desarrollarse. El modelo de datos relacional considera a la base de datos como un conjunto de relaciones, donde cada relación equivaldría a una tabla. Si visualizamos una relación o entidad como una tabla de valores, cada fila de la tabla representa una colección de valores de datos relacionados entre sí. Dichos valores se pueden interpretar como hechos que describen una entidad o un vínculo entre entidades del mundo real. El nombre de la tabla y los nombres de las columnas ayudan a interpretar el significado de los valores que están en cada fila de la tabla... En la terminología del modelo relacional, una fila o renglón se denomina tupla, una cabecera de columna un atributo y la tabla es una relación. El tipo de datos que describe los tipos de valores que pueden aparecer en cada columna se llama dominio.2 A continuación te presentamos una tabla o relación llamada Alumnos, con los siguientes atributos: nombre, matrícula, dirección y teléfono, con seis tuplas, filas o renglones. También identificaremos a las tuplas como registros, donde cada dominio de éstos se considera como la unidad mínima de almacenamiento en el modelo de datos relacional. Nombre de la relación ALUMNO Tuplas NOMBRE Juan Luis Pérez Pedro Gómez C. Rebeca Cruz Montes José López Canseco Margarita Godínez I. Luis Ramírez Ramos Atributos MATRÍCULA 8945678 8987654 8976541 8973635 8973526 8927262 DIRECCIÓN Av. de los Remedios No. 18 San Juan de los Lagos No. 8 Satélite No. 123 Av. Corregidora No. 12 Av. Tláhuac No. 89 Av. de los Niños Héroes No . 1 TELÉFONO (5) 674-89-00 (5) 844-78-66 (5) 625-19-89 (5) 876-09-12 (5) 738-28-19 No tiene En el ejemplo anterior se puede ver que una tabla o relación se ve como un conjunto de filas, tuplas o registros; debemos considerar que pueden existir atributos o columnas cuyos valores sean únicos en cada tupla de la relación, de tal forma que no podamos identificar dos tuplas con valores idénticos en la misma columna, a estas columnas las llamaremos claves candidatas. Identificaremos como clave primaria a una clave candidata, la cual seguirá conservando sus características en todo momento, es decir, los valores serán siempre únicos en cada tupla sin importar que se anexen más tuplas o registros. 2 Elmasri y Navathe. Op. cit., p. 140. 26 Si en la relación existen más de dos claves candidatas, el usuario asignará una como clave primaria y las demás como claves secundarias. Una clave externa o foránea es una clave candidata que hace referencia a otra relación mediante un atributo en común. Un atributo primo es cualquier clave candidata y un atributo no primo es cualquier atributo que no sea clave candidata. Es importante hacer notar que las siguientes palabras las utilizaremos como sinónimos: Entidad = Relación = Tabla Atributo = Campo = Columna (pueden ser utilizadas como claves) Fila = Tupla = Registro Como hemos definido, las claves primas son los valores de una columna los cuales no se repiten en ningún dominio; sin embargo, para cuidar la integridad de la relación, estos valores no pueden ser nulos, ya que si en algunas tuplas definimos los valores de dicha columna con un valor nulo, tendremos serios problemas para distinguir una tupla de otra, basándonos en este campo. Sin embargo, existen ciertas reglas para lograr un mejor diseño del modelo de datos relacional, tales como: 1. Significado de los campos. Al diseñar una relación procura que los campos sean por sí solos significativos, no mezcles atributos de dos o más entidades para realizar el modelo de datos relacional, ya que esto provocará que sea confuso. 2. Redundancia en las tuplas por valores similares en los campos. Si existe mucha repetición de dominios de un campo en una relación, esto provocará una saturación en el almacenamiento de la información. Si dividimos dicha relación en dos o más relaciones, la primera con los atributos de la entidad principal y la segunda con los datos que podría crear redundancia en las tuplas de un campo, esto ahorrará espacio y evitará problemas de inconsistencia. A continuación te presentamos un ejemplo donde existe redundancia e inconsistencia en una relación. Empleado Nombre Juan Pérez Pulido Pedro Acacio López Luis Manuel Pedrasa Homero Sánchez S. ... Institución Bachilleres Bachilleres Bachilleres Bachilleras Dirección Institución Av. de los Milagros S/N Av. de los Milagros S/N Av. de los Milagros S/N Av. de los Milagros S/N Área CFT CFT CFT CFT Subárea Técnica Pedagógica Pedagógica Técnica 2,000 Tuplas La redundancia se encuentra en los campos: Institución, dirección, área y subárea. 27 Si la persona que captura dicha información lo realiza incorrectamente, es decir, tiene errores de captura, podría causar problemas de inconsistencia, sobre todo en los campos Institución, dirección, área y subárea. A continuación te presentamos la forma en que se resolverían los problemas de redundancia e inconsistencia. Empleado Nombre Juan Pérez Pulido Pedro Acacio López Luis Manuel Pedrasa Homero Sánchez S. ... Institución Clave Institución 1115 Bachilleres 1116 Conalep Clave Institución 1115 1115 1115 1115 Clave Área 14A 14B 14A 14B 2,000 Tuplas Dirección Institución Av. de los Milagros S/N Calle Santiago No. 125 ... 15 Tuplas Clave 14A 14B 123J Áreas Área Subárea CFT Técnica CFT Pedagógica ASD Almacén 50 Tuplas Donde los campos subrayados presentan problemas de redundancia e inconsistencia. La relación principal Empleado, evita completamente la redundancia y en general la inconsistencia, ya que solamente se escriben una vez los datos de la Institución, así como los datos del área donde pertenece. Si desde la relación Empleado requerimos el nombre o la dirección de la Institución, solamente haremos referencia a estos datos mediante la clave primaria Institución ->Clave desde la clave externa empleado ->Clave Institución. Nota. La forma de hacer referencia a un campo de una relación será: Relación > Campo Normalización En el ejemplo anterior utilizamos un criterio de normalización: cuando nuestro modelo de datos relacional es insatisfactorio, debe dividirse en relaciones más pequeñas con algunos atributos del primero. En el proceso de la normalización, según la propuesta original de Codd (1972a), se somete un esquema de relación a una serie de pruebas para certificar si pertenece o no a una cierta forma normal. En un principio, Codd propuso tres formas normales, a las cuales llamó primera, segunda y tercera formas normales.3 A continuación te las explicamos. 3 Elmasri y Navathe. Op. cit., p. 413. 28 Primera forma de normalización: Establece que los dominios de una relación deben ser indivisibles; esto quiere decir que los valores que toman las tuplas de cualquier campo no pueden ser otras relaciones. Segunda forma de normalización: Establece que para vincular dos relaciones debe existir solamente una clave primaria en la relación que vincula y un clave foránea en la relación vinculada. Tercera forma de normalización: Primero debe cumplir con la segunda forma de normalización, y si eliminamos la clave primaria de la relación que vincula, no debe afectar las definiciones de los otros campos. A continuación se te presentan las actividades que debes realizar para cubrir con este tema. Actividades de aprendizaje Recursos Productos Realiza una consulta bibliográfica Adoración de Miguel y Mario Ficha de contenido con los conceptos solicitados. sobre los conceptos básicos que se Piattini. Op. cit., pp.129-135, utilizan para describir al diseño 265-273. de datos relacionales (estructuras básicas de las bases de datos relacionales). En un cuadro sinóptico señala las Adoración de Miguel y Mario Cuadro sinóptico sobre las reglas o formas de normalización. Piattini. Op. cit., pp. 273-287. formas de normalización. Realiza los ejercicios 5 y 6. Manual de ejercicios y prácticas. Ejercicios 5 y 6 resueltos. 2. ÁLGEBRA RELACIONAL Objetivo: Construir búsquedas en bases de datos relacionales, mediante el uso de operaciones básicas de álgebra relacional, para seleccionar registros específicos. El álgebra relacional sirve para manipular relaciones enteras y para que vayamos ubicando las posibles operaciones de selección y consulta en bases de datos relacionales, así como las operaciones de conjuntos. Podemos catalogar las operaciones del álgebra relacional en dos: Operaciones de conjuntos Unión Diferencia Intersección Producto cartesiano Operaciones con bases de datos relacionales Selección Proyección Reunión (esta operación no se verisará en la guía). 29 Operaciones de conjuntos Las operaciones de la teoría de conjuntos se aplican al modelo relacional, porque las tablas o relaciones se pueden ver como un conjunto de registros o tuplas y podemos tratar los registros de dos tablas como conjuntos. La única restricción que existe en las operaciones de unión, diferencia e intersección es que las relaciones contengan los mismos campos o atributos. A continuación se definen estas operaciones. Unión. Cuando tenemos una o más tablas, la operación de unión junta en el resultado todas las tuplas o registros existentes en dichas tablas, eliminando las tuplas repetidas. Su sintaxis es la siguiente: Tabla1 ∪ Tabla2 Diferencia. Cuando tenemos una o más tablas, la operación diferencia junta en el resultado todas las tuplas o registros que no se repiten en ninguna de las tablas, eliminando las tuplas repetidas. Su sintaxis es la siguiente: Tabla1Tabla2 Intersección. Cuando tenemos una o más tablas, la operación de intersección junta en el resultado todas las tuplas o registros que se encuentren repetidas en dichas tablas, eliminando las tuplas que son únicas Su sintaxis es la siguiente: Tabla1 ∩ Tabla2 Producto cartesiano. Crea registros con los campos combinados de las dos tablas, es decir, el resultado será una nueva tabla que contenga los campos o atributos de las dos tablas y los registros se llenarán de la siguiente manera: Desde Índice1 = Registro uno hasta el registro n de la tabla 1 Haz Desde Índice2 = Registro uno hasta registro n de la tabla 2 Haz Llena la tabla respuesta con Índice1 + Índice 2 Gráficamente lo veríamos de la siguiente manera: Tabla 1 Clave 1 1115 1116 Institución Bachilleres Conalep Dirección Institución Av. de los Milagros S/N Calle Santiago No. 125 Tabla 2 Clave 2 14A 14B 123J Área CFT CFT ASD Subárea Técnica Pedagógica Almacén Tabla Resultado (Tabla 1 PRODUCTO CARTESIANO Tabla 2) Clave 1 1115 1115 1115 1116 1116 1116 Institución Bachilleres Bachilleres Bachilleres Conalep Conalep Conalep Dirección Institución Av. de los Milagros S/N Av. de los Milagros S/N Av. de los Milagros S/N Calle Santiago No. 125 Calle Santiago No. 125 Calle Santiago No. 125 30 Clave 2 14A 14B 123J 14A 14B 123J Área CFT CFT ASD CFT CFT ASD Subárea Técnica Pedagógica Almacén Técnica Pedagógica Almacén Operaciones con base de datos relacionales Seleccionar: esta operación sirve para seleccionar ciertos registros o tuplas que cumplan con un criterio específico, si tomamos en consideración la tabla Resultado del ejemplo anterior, un criterio de selección podría ser: todas las tuplas de tabla Resultado cuya clave2 sea 123J. El resultado sería el siguiente: Clave 1 1115 1116 Institución Bachilleres Conalep Dirección Institución Av. de los Milagros S/N Calle Santiago No. 125 Clave 2 123J 123J Área ASD ASD Subárea Almacén Almacén La sintaxis que se ocupará será la siguiente: σ <Criterio de selección> (<Nombre de la Tabla o relación>), donde s significa selección. Proyectar: selecciona algunos atributos o campos de una relación y desecha las otras columnas, ya que lo único que permite visualizar son los campos seleccionados, proyectando así una sección de la relación. Si tomamos nuevamente la tabla Resultado, y seleccionamos las columnas Institución y Dirección Institución, el resultado sería el siguiente: Institución Bachilleres Bachilleres Bachilleres Conalep Conalep Conalep Dirección Institución Av. de los Milagros S/N Av. de los Milagros S/N Av. de los Milagros S/N Calle Santiago No. 125 Calle Santiago No. 125 Calle Santiago No. 125 La sintaxis que se ocupará será la siguiente: π <Lista de atributos> (<Nombre de la Tabla o relación>), donde p significa selección. A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Recursos Productos Realiza un cuadro sinóptico sobre Adoración de Miguel y Mario Cuadro sinóptico sobre el Piattini. Op. cit., pp. 167-182. álgebra relacional. el álgebra relacional, indicando las operaciones de conjuntos y las operaciones con bases de datos relacionales. Realiza los ejercicios 7 y 8. Manual de ejercicios y prácticas. 31 Ejercicios 7 y 8 resueltos. 3. VISTAS O SUBESQUEMAS Objetivo: Describir el uso y aplicación de las vistas en las bases de datos relacionales, mediante la enumeración de sus características en términos de privilegios de consulta y ordenamiento, para satisfacer las necesidades de los diferentes tipos de usuarios. Al elaborar una base de datos, es necesario tener claridad de qué es lo que se va a realizar y para quién, ya que si bien el desarrollador de ésta debe conocer perfectamente los componentes o niveles de la base, existen partes o componentes a los que los usuarios sólo pueden accesar por razones de seguridad, quedando así algunos datos ocultos al usuario. Así, las relaciones de datos que se hacen visibles a los usuarios se les denomina vistas. Por sí mismas las vistas constituyen un importante mecanismo de autorización discrecional. Por ejemplo, si el propietario A de una relación R desea que otra cuenta B pueda leer únicamente ciertos campos de R, A puede crear una vista V de R que incluya sólo esos atributos, y después otorgar a B el privilegio de SELECT para V. Lo mismo se aplica cuando se desea limitar a B a la lectura de sólo ciertas tuplas de R; se puede crear una vista V definiéndola por medio de una consulta que seleccione sólo las tuplas de R que A desea poner al alcance de B.4 Hablaremos más sobre vistas en el siguiente tema. A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Recursos Productos Realiza un resumen sobre el uso y Adoración de Miguel y Mario Resumen sobre vistas. aplicación de las vistas en las Piattini. Op. cit., pp. 136, bases de datos relacionales, 423-425. mediante el establecimiento de privilegios y la forma de ordenarlas por medio de índices. Realiza los ejercicios 9 y 10. Manual de ejercicios y prácticas. Ejercicios 9 y 10 resueltos. 4. LENGUAJE RELACIONAL ESTÁNDAR SQL Objetivo: Expresar elementos, relaciones, búsquedas y vistas sencillas, mediante el lenguaje estandarizado SQL, para contar con un instrumento de diseño independiente de cualquier manejador específico. Ante la necesidad de contar con un lenguaje de consultas cómodas para el usuario de bases de datos comerciales, surge el SQL, el cual se ha convertido en el lenguaje comercial de mayor influencia para realizar consultas en las bases de datos relacionales. 4 Elmasri y Navathe. Op. cit., p. 604. 32 En este tema definiremos los términos que se utilizarán en el lenguaje SQL: esquema SQL, al cual se le hace referencia mediante un nombre y se establece el nombre del usuario que es propietario de dicho esquema. Asimismo, definiremos otros elementos que se encuentran dentro del esquema, como son: las tablas, vistas, dominios y concesiones de autorización. A continuación te presentamos la forma en que se encuentran organizados los elementos del esquema. NOMBRE DEL ESQUEMA SQL Usuario propietario Usuarios x Relación 1 Vista 1 Relación 2 Vista 2 . . . . . . Relación n Vista n Usa al Ve si tiene Dominios Restricciones de acceso/ autorización A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Recursos Productos Adoración de Miguel y Mario Resumen sobre el lenguaje Realiza un resumen sobre el Piattini. Op. cit., pp. 215-260. SQL. lenguaje de relación estándar SQL, considerando sus elementos, las relaciones, búsquedas y vistas que se puedan expresar en dicho lenguaje. Manual de ejercicios y prácticas. Ejercicios 11 y 12 resueltos. Con relación a la situación de Manual de ejercicios y prácticas. aprendizaje, desarrolla la práctica 2, donde realizarás la transformación del diagrama de entidad relación al diseño de datos relacional. Resolución de la práctica 2. Realiza los ejercicios 11 y 12. 33 ¿QUÉ HE APRENDIDO? A continuación encontrarás la evaluación de la unidad, para que valores tus avances hasta el momento. I. Lee con atención cada uno de los siguientes conceptos y coloca dentro del paréntesis la definición que le corresponda. Concepto Definición ( ) Clave externa o foránea. a) Clave candidata que hace referencia a otra relación mediante un atributo en común. ( ) Clave primaria. b) Si en la relación existen más de dos claves candidatas, el usuario asignará una segunda. ( ) Clave candidata. c) Clave candidata, la cual seguirá conservando sus características en todo momento siendo esta la principal. ( ) Clave secundaria. d) Columnas cuyos valores sean únicos en cada tupla de la relación, de tal forma que no podamos identificar dos tuplas con valores idénticos en la misma columna. II. Lee con atención cada una de las siguientes proposiciones y coloca dentro del paréntesis una V si es verdadera o una F si es falsa. ( ) A una base de datos relacional se le considera un conjunto de relaciones. ( ) Cada atributo de la tabla representa una colección de valores de datos relacionados entre sí. ( ) Una fila se denomina tupla, una cabecera de columna un atributo y la tabla es una relación. ( ) Un atributo no primo es cualquier clave candidata y un atributo primo es cualquier atributo que no sea clave candidata. III. Lee las siguientes preguntas y contéstalas correctamente. 1. ¿En qué consiste la primera forma de normalización? 2. Explica la segunda forma de normalización. 3. ¿En qué consiste la tercera forma de normalización? 4. ¿Qué es seguridad en una base de datos? 34 IV. Selecciona la opción correcta para cada enunciado y coloca la letra correspondiente dentro del paréntesis. 1. ( ) Para realizar una consulta en SQL, uno de los pasos debe ser... a) seleccionar campos. b) plantear una pregunta. c) seleccionar las tuplas. d) plantear relaciones. e) establecer modelos. 2. ( ) Una vista se puede considerar como una tabla... a) base. b) relacional. c) virtual. d) entidad. e) secundaria. 35 QUIERO SABER MÁS Revisa otras formas de transformar modelos conceptuales a modelos lógicos de datos. Investiga sobre otros lenguajes de consulta a bases de datos relacional como lo es el SQL3. Estudia la operación Reunión del álgebra relacional. Analiza el cálculo relacional. Como comentábamos en la unidad I, las bases de datos están tomando una importancia única, ya que facilitan el acceso rápido y confiable a la información de una organización. Es necesario escoger un SGBD entre todos los comerciales que existen para crear aplicaciones de bases de datos, es sabido que actualmente el ritmo con que cambia el software es bastante acelerado provocando que posiblemente en algunos años el SGBD que seleccionamos sea obsoleto. Sin embargo, nuestra preocupación nos lleva a tratar de darte todos los elementos necesarios para que, cuando llegue el momento de cambiar o utilizar otro SGBD, seas capaz de entenderlo y aplicar las herramientas que contiene. 36 ¿QUÉ VOY A APRENDER? UNIDAD III MANIPULACIÓN DE BASES DE DATOS Objetivo de la Unidad: Diseñar y construir una base de datos sencilla, mediante su modificación, ordenación y realización de consultas, para desarrollar aplicaciones elementales. Las bases de datos han tomado gran importancia, ya que facilitan el acceso rápido y confiable a la información de una organización, asimismo se ha desarrollado un sinnúmero de SGBD comerciales de tipo relacional los cuales permiten la creación y manipulación de las bases de datos diseñadas bajo un modelo relacional, permitiendo seleccionar uno con base a las necesidades y posibilidades de la organización. El ritmo con que cambia el software es bastante acelerado provocando que posiblemente en algunos años el SGBD que seleccionamos no se encuentre en el mercado, sin embargo se seguirá utilizando el lenguaje de consultas SQL para definir y realizar operaciones con la información contenida en la base de datos. En general, todos los SGBD se basan en el lenguaje de consultas SQL, por lo cual trataremos de darte todos los elementos necesarios para que puedas manejar cualquier SGBD de tipo relacional. Empezaremos por realizar operaciones básicas con Visual Fox Pro 5.0 tales como la creación, uso y cierre de una base de datos, en un segundo momento realizaremos operaciones de consulta y modificación de la base de datos y de su estructura, finalizando con ordenaciones lógicas y físicas de la información contenida en la base de datos, funciones ya revisadas en álgebra relacional y el lenguaje estándar relacional SQL. A continuación te presentamos el esquema de los contenidos que se revisarán en esta unidad. Unidad III. Manipulación de bases de datos Bases de datos las genera Sistema gestor de bases de datos Operaciones Crear Consultar Ordenar Modificar Estructura Registros 37 Físicamente Lógicamente (Índices) ¿CÓMO APRENDO? 1. CREACIÓN DE UNA BASE DE DATOS Objetivo: Crear y manipular bases de datos elementales, mediante las instrucciones de creación de archivos, definición de campos e incorporación de registros, para familiarizarse con los comandos básicos del programa. Hemos creado modelos de base de datos a un nivel lógico, mediante el modelo de base de datos relacional, sin embargo, el diseño de la base de datos no se ha completado todavía, falta crear el diseño físico de la base de datos en un SGBD de tipo relacional, dado que nuestro modelo lleva ese enfoque. Hasta el momento hemos definido un modelo de datos relacional, sin embargo es necesario llegar a la construcción de un diseño físico para poder aplicarlo utilizando una computadora; esto se logra al crear una base de datos en un SGBD, que en nuestro caso será el Visual Fox Pro 5.0, el cual nos permitirá consolidar todo nuestro diseño de la base de datos. Es importante que no olvides que así como seleccionamos Visual Fox Pro 5.0 como nuestro SGBD, podrás utilizar cualquier otro para realizar aplicaciones prácticas, sin embargo éste debe ser de tipo relacional para que puedas aplicar lo que propone este curso. Primero tendremos que revisar qué estructuras de datos tiene definidas nuestro SGBD seleccionado, para poder ajustar el modelo lógico de la base de datos al modelo físico, por lo cual revisaremos a continuación los datos que maneja nuestro SGBD. TIPO DE DATO Carácter Monetario Numérico Flotante Fecha FechaHora Doble Entero Lógico Memo General Carácter (binario) Memo (binario) DESCRIPCIÓN Un conjunto de hasta 254 letras o caracteres. 20 dígitos, con signo de pesos y punto decimal. 20 dígitos, con signo y punto decimal. Para números muy cortos o muy largos de tipo exponencial. Son fechas con el formato mm/dd/aa. Información de calendario y hora en formato de 8 bytes. Más preciso que el punto flotante. Almacena valores enteros. Acepta el valor cierto/falso (True/False). Almacena información de cualquier tipo. Almacena objetos OLE (imágenes). Almacena información de tipo texto con base en una página de códigos. Almacena información de tipo memo con base en una página de códigos. Realizaremos el ejercicio con la primer tabla presentada en la unidad II, en donde aparecen los atributos de la relación alumnos. Alumno NOMBRE MATRÍCULA DIRECCIÓN TELÉFONO 38 Estableceremos un tipo de dato y tamaño para cada campo de la tabla alumno, según juzguemos conveniente, de tal forma que tendríamos la siguiente estructura de datos: Tabla: Alumnos. NOMBRE DEL CAMPO NOMBRE MATRÍCULA DIRECCIÓN TELÉFONO TIPO DE DATO CARÁCTER NUMÉRICO CARÁCTER CARÁCTER TAMAÑO 25 7 35 12 DECIMALES (SÍ ES NUMÉRICO) 0 Al terminar el diseño físico o creación de la base de datos (estructura de la base de datos), procederemos a capturar las tuplas o registros de la tabla, quedando la información capturada como se muestra en la siguiente tabla. ALUMNOS NOMBRE Juan Luis Pérez Pedro Gómez C. Rebeca Cruz Montes José López Canseco Margarita Godínez I. Luis Ramírez Ramos MATRÍCULA 8945678 8987654 8976541 8973635 8973526 8927262 DIRECCIÓN Av. de los Remedios No. 18 San Juan de los Lagos No. 8 Satélite No. 123 Av. Corregidora No. 12 Av. Tláhuac No. 89 Av. de los Niños Héroes No 1 TELÉFONO (5) 674-89-00 (5) 844-78-66 (5) 625-19-89 (5) 876-09-12 (5) 738-28-19 No tiene Cuando es la primera vez que creamos una estructura de base de datos de forma física, nuestro SGBD nos pregunta si queremos capturar los registros en ese momento o después. Si por alguna razón no aceptaste capturarlos en este momento, tendremos que poner en uso la tabla Alumnos. Nota. La extensión DBF significa Data Base File (Archivo de base de datos). A continuación se te presentan las actividades que debes realizar para cubrir con este tema. Actividades de aprendizaje Recursos Realiza una consulta bibliográfica Susan L. Reber y otros. Visual sobre la forma de crear una base Fox Pro 5.0. México, Prentice de datos, así como incorporar Hall, 1998, Capítulos 1 y 2. registros, abrirla y cerrarla. Productos Ficha de contenido sobre la creación de una base de datos, incorporación de registros, abrirla y cerrarla. Realiza los ejercicios propuestos en los Capítulos 1 y 2. Susan L. Reber y otros. Op. cit. Ejercicios resueltos. Realiza el ejercicio 13. Manual de ejercicios y prácticas. Ejercicio 13 resuelto. 39 2. CONSULTAS A UNA BASE DE DATOS Objetivo: Realizar consultas a una base de datos, aplicando expresiones de álgebra relacional, para construir filtros y criterios de búsqueda. Una vez capturada la información se podrán realizar consultas simples a la base de datos. A continuación te presentamos la estructura de una consulta: En el lenguaje estándar relacional SQL, ya hemos realizado consultas de la siguiente forma: 1. Seleccionar los campos que intervendrán en la consulta. 2. Seleccionar las tablas que contienen dichos campos. 3. Poner el criterio o condición de búsqueda. De tal forma que los comandos en SQL son los siguientes: SELECT <lista de campos> FROM <lista de tablas> WHERE <criterio de búsqueda> Cuando realizamos una consulta en un SGBD se realiza de una manera muy similar, la cual describimos a continuación: 1. Seleccionar las tablas que contienen dichos campos. 2. Seleccionar los campos que intervendrán en la consulta. 3. Poner el criterio o condición de búsqueda. La sintaxis o forma de realizar la consulta dependerá del SGBD, pero en general la forma simple de hacerla sería la siguiente serie de órdenes (éstas se pueden escribir directamente en la ventana de comandos): USES <base de datos> LIST <lista de campos> FOR <condición > Una consulta podría ser: qué alumnos no tienen teléfono de la base de datos Alumnos, la serie de órdenes sería la siguiente: USES Alumnos LIST Nombre FOR Teléfono =No tiene A continuación se te presentan las actividades que debes realizar para cubrir con este tema. 40 Actividades de aprendizaje Recursos En un cuadro sinóptico señala la Susan L. Reber y otros. forma de crear consultas en un Op. cit., Capítulos 5 y 7. SGBD, a través de establecer la estructura y comandos básicos de un Query. Productos Cuadro sinóptico sobre el Query. Realiza los ejercicios propuestos en los Capítulos 5 y 7. Ejercicios resueltos. Susan L. Reber y otros. Op. cit. 3. MODIFICACIONES A UNA BASE DE DATOS Objetivo: Modificar una base de datos tanto en su estructura como en su contenido, mediante el uso de las instrucciones para agregar o eliminar campos, cambiar los atributos de los campos o el contenido de los mismos. Si deseas modificar la estructura de la base de datos, únicamente tendrás que volver a accesar a estructura de la base de datos y realizar las modificaciones correspondientes, igualmente, si deseas modificar el contenido de los registros, lo único que tendrás que hacer es editar o desplegar los registros. Dentro del SGBD tendrás que seleccionar la base de datos y seleccionar la opción de modificar estructura. Para modificar los registros de la base de datos bastará con editarlos, existen varias formas de hacerlo, por ejemplo, la edición de registros o el despliegue de registros, la forma de hacerlo es abrir o poner en uso la base de datos y solicitar la edición o el despliegue con los comandos Edit o Browse respectivamente. En cualquier modo de despliegue o edición del SGBD, el usuario podrá modificar el contenido de los registros. Si visualizamos los registros desplegados en el modo Browse, veremos que éstos no están ordenados de ninguna forma, es decir, no hay una ordenación ascendente o descendente en ninguno de los campos. A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Elabora una ficha de contenido sobre la forma de modificar una estructura de bases de datos y la información contenida en la tabla (registros). Recursos Susan L. Reber y otros. Op. cit., Capítulo 3. Productos Ficha de contenido sobre modificaciones a la estructura de una base de datos y a los registros. Realiza los ejercicios propuestos en el Susan L. Reber y otros. Capítulo 3. Op. cit. Ejercicios resueltos. Con relación a la situación de aprendizaje, desarrolla la práctica 3, donde realizarás la creación, consulta y modificación de la base de datos. Resolución de la práctica 3. Manual de ejercicios y prácticas. 41 4. ORDENACIÓN DE LA INFORMACIÓN Objetivo: Ordenar lógica y físicamente los registros de una base de datos, mediante el uso de instrucciones, para construir índices y reordenar registros. A continuación te explicaremos qué son las ordenaciones y qué tipos de ordenaciones existen en las bases de datos. En bases de datos una ordenación significa que los registros se encuentren colocados en un orden ascendente o descendente de acuerdo con los valores alfabéticos o numéricos, dependiendo del tipo de dato del campo. Generalmente una tabla se ordena para facilitar las búsquedas de información en la base de datos, si la tabla base se encuentra desordenada, podremos ordenarla mediante la selección de un campo que nosotros consideremos significativo para dicha búsqueda. Podemos ordenar de dos formas, la primera se refiere a usar una ordenación física la cual se refiere a crear una copia de la tabla original, pero con los registros ordenados en relación al campo seleccionado o de ordenación, esto implica una duplicación de información y de espacio en el dispositivo de almacenamiento. La serie de órdenes para realizar la ordenación física será: USES <Base de datos original o base> SORT ON <Campo de ordenación> TO <Base de datos copia ordenada> (Con esto se ha creado otra base de datos ordenada, pero no se encuentra activa) Ejemplo: Para ordenar la tabla Alumno debemos seleccionarla y crear una nueva tabla con los registros ordenados. La ordenación que se solicita en este ejemplo es por matrícula del alumno. Tabla original o base ALUMNOS NOMBRE Juan Luis Pérez Pedro Gómez C. Rebeca Cruz Montes José López Canseco Margarita Godínez I. Luis Ramírez Ramos MATRÍCULA 8945678 8987654 8976541 8973635 8973526 8927262 DIRECCIÓN Av. de los Remedios No. 18 San Juan de los Lagos No. 8 Satélite No. 123 Av. Corregidora No. 12 Av. Tláhuac No. 89 Av. de los Niños Héroes No. 1 La serie de órdenes para crear la ordenación física será: USES ALUMNOS SORT ON <MATRÍCULA > TO <ALUMATRI> 42 TELÉFONO (5) 674-89-00 (5) 844-78-66 (5) 625-19-89 (5) 876-09-12 (5) 738-28-19 No tiene Si ponemos en uso la base de datos ALUMATRI con la orden USE ALUMATRI y pedimos visualizar la información con algún modo de despliegue, la tabla que veremos será la siguiente: ALUMNOS NOMBRE Luis Ramírez Ramos Juan Luis Pérez Margarita Godínez I. José López Canseco Rebeca Cruz Montes Pedro Gómez C. MATRÍCULA 8927262 8945678 8973526 8973635 8976541 8987654 DIRECCIÓN Av. de los Niños Héroes No 1 Av. de los Remedios No. 18 Av. Tláhuac No. 89 Av. Corregidora No. 12 Satélite N0. 123 San Juan de los Lagos No. 8 TELÉFONO No tiene (5) 674-89-00 (5) 738-28-19 (5) 876-09-12 (5) 625-19-89 (5) 844-78-66 Si observas la tabla podrás ver que se encuentra ordenada ascendentemente por la matrícula, lamentablemente esta forma de ordenación no es muy práctica cuando tratamos grandes cantidades de información, dado que el tiempo que requiere el SGBD para realizarla es demasiado, además de que podríamos saturar nuestro dispositivo de almacenamiento. La segunda forma de ordenación y la más recomendable en todos los aspectos, es la ordenación por medio de índices o lógica, actualmente los SGBD ya traen integrado en el diseño de la estructura de la base de datos la especificación de ordenación por índices, de tal forma que la nueva información que se registre en nuestra base de datos ocupará su lugar en la tabla de forma ordenada con base en nuestro índice. Esta forma de ordenación ocupa menos espacio de almacenamiento porque se trabaja sobre la misma base de datos original, haciendo referencia a un archivo índice (más pequeño que una copia de la misma base de datos) para desplegar la información de forma ordenada. A continuación te presentamos como interactúa el archivo índice con la base de datos, al ordenar de forma lógica y ascendentemente la tabla Alumnos, con el campo de ordenación matrícula. Consideraremos únicamente los campos nombre y matrícula e incluiremos un número de registro para referenciar. ARCHIVO ÍNDICE Orden 1 2 3 4 5 6 No. Reg. 6 1 5 4 3 2 ALUMNOS No. Reg. 1 2 3 4 5 6 NOMBRE Juan Luis Pérez Pedro Gómez C. Rebeca Cruz Montes José López Canseco Margarita Godínez I. Luis Ramírez Ramos MATRÍCULA 8945678 8987654 8976541 8973635 8973526 8927262 Si se solicitará el despliegue de información de los tres primeros registros ordenados, se haría referencia al archivo índice y de ahí se vería que son los registros 6,1 y 5. Este archivo índice se encuentra integrado en la base de datos original, cuando se definen en la estructura de base de datos en un SGBD relacional. 43 A continuación se presentan las actividades que deberás realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Realiza un resumen sobre los tipos de ordenación físico y por índices. Recursos Susan L. Reber y otros. Op. cit., Capítulo 4. Productos Resumen sobre tipos de ordenación. Realiza los ejercicios propuestos en el Capítulo 4. Susan L. Reber y otros. Op. cit. Ejercicios resueltos. Con relación a la situación de Manual de ejercicios y prácticas. aprendizaje, desarrolla la práctica 4, donde realizarás la ordenación física y lógica de la base de datos. 44 Resolución de la práctica 4. ¿QUÉ HE APRENDIDO? Contesta la siguiente evaluación, para que valores tus avances hasta el momento. I. Lee con atención cada uno de los siguientes tipos de datos y coloca dentro del paréntesis la descripción que le corresponda. Tipo de dato ( ) OLE. Descripción a) Un conjunto de letras o caracteres. ( ) Float. b) Valores numéricos reales o enteros. ( ) Binary. c) Acepta el valor cierto/falso (True/False). ( ) Logical. d) Son fechas con el formato dd/mm/aa. ( ) Date. ( ) Numeric. e) Para números muy cortos o muy largos de tipo exponencial. ( ) Character. f) Objetos que se pueden vincular o incrustar. g) Permite manipular imágenes. II. Lee con atención cada una de las siguientes proposiciones y coloca dentro del paréntesis una V si es verdadera o una F si es falsa. ( ) Las declaraciones, consultas y otras operaciones en el SGBD se tendrán que escribir en inglés. ( ) En el SGBD Visual Fox Pro 5.0 existe una venta para escribir comandos. ( ) Cuando es la primera vez que creamos una estructura de base de datos de forma física, nuestro SGBD nos pregunta si queremos capturar los registros en ese momento. ( ) Existen dos modos de despliegue de información en nuestro SGBD. III. Lee las siguientes preguntas y contéstalas correctamente. 1. 2. 3. 4. 5. ¿Qué es una consulta? ¿Qué es un SGBD? ¿Qué es una ordenación física? ¿Qué es una ordenación lógica o por medio de índices? Incorpora 5 registros más a la tabla Alumnos y realiza otra serie de consultas: a) ¿Cuántos alumnos se apellidan Godínez?, b) Despliega los nombres de los alumnos cuyas matrículas comienzan con 89 y no tienen teléfono, c) Despliega la matrícula de los alumnos cuya primera letra de su nombre o apellido sea C. 6. Ordena la tabla alumnos por dirección, matrícula y teléfono. 45 QUIERO SABER MÁS Revisa cuál es la forma de consultar información de varias tablas a la vez. Investiga cuáles son los comandos para realizar todas las operaciones que se realizaron en la ventana del Navegador. 46 ¿QUÉ VOY A APRENDER? UNIDAD IV CARACTERÍSTICAS AVANZADAS DE LAS BASES DE DATOS Objetivo de la Unidad: Instrumentar estructuras relacionales de mediana complejidad, mediante el manejo de variables, la generación de reportes, pantallas y bases de datos múltiples, para implementar aplicaciones más poderosas y agregar elementos que faciliten el manejo de la base a otros usuarios. En esta unidad te presentaremos la forma de implementar aplicaciones más poderosas, a partir de definir la utilización de variables y las funciones ya definidas en el Sistema Gestor de Bases de Datos, para obtener resultados de la base de datos. Describiremos la forma de crear reportes y pantallas (formatos), para presentar la información al usuario con una presentación amigable, de tal forma que las consultas y la operación de la base de datos sean fáciles de realizar. Por último, realizaremos una serie de operaciones con una base de datos relacional, al crear y manejar varias tablas interconectadas. A continuación te presentamos un esquema con los que contenidos de en esta unidad. Sistema Gestor de Base de Datos Maneja Variables Funciones Base de datos múltiples Generador de Reportes 47 Pantallas ¿CÓMO APRENDO? 1. MANEJO DE VARIABLES Y FUNCIONES Objetivo: Utilizar variables y las funciones interconstruidas en la base de datos, mediante la aplicación de las reglas de construcción y empleo correctas, para sintetizar o completar información de la base de datos. Algunas veces requerimos datos que se pueden calcular a partir de los datos almacenados en la base de datos, por lo cual para evitar la redundancia de la información se considera que no se requiere almacenarlos. Sin embargo, estos datos, aunque sean temporales para realizar consultas, deben almacenarse en lo que se conoce como variables, para poder manipularse. Entenderemos por variable a un espacio asignado en memoria para manipular un dato de cualquier tipo. En los Sistemas Gestores de Base de Datos a las variables se les conoce como campos calculados, es decir, es el campo virtual que opera con los campos de una tabla y permite consultar su resultado. Las consultas que se realizan con campos calculados ocupan las siguiente expresiones de cálculo: Operadores aritméticos + * / Función Suma Resta Multiplicación División Operadores de comparación < > <> = <= >= Operadores lógicos Y (and) O (Or) No (Not) Función Menor que Mayor que Diferente Igual Menor o igual Mayor o igual Función El resultado es cierto cuando se presentan dos preposiciones y éstas son verdaderas, en caso de que una preposición sea falsa, el resultado será falso. El resultado es cierto cuando una de las dos preposiciones presentadas es verdadera, en caso de que las dos sean falsas, el resultado será falso. Niega la proposición presentada. 48 Ejemplo: Supongamos que tenemos la siguiente tabla sobre nuestros clientes, los cuales compran n productos a un costo m. CLIENTES Nombre Juan Luis Guerra Pérez Pedro Torres Alcantar Maritza Galindo Escalante Luis Manuel Pelayo Montes Antonio Torres Heredia David Hernández Martínez José Luis Méndez López Teléfono 612-98-00 786-00-98 844-98-09 612-23-72 768-09-87 876-09-09 844-40-22 Cantidad de productos 3 7 6 12 1 5 20 Costo unitario/ producto $50.00 $47.00 $129.00 $18.50 $20.00 $1,203.00 $420.00 Si quisiéramos saber lo que gasto el cliente en todos los productos, necesitaríamos utilizar un campo calculado llamado totales, el cual se calcularía al multiplicar el campo cantidad de productos por el campo costo unitario/producto. De tal forma, tendríamos lo siguiente: Totales = Cantidad de productos * Costo unitario/producto. Totales $ 150.00 $ 329.00 $ 774.00 $ 222.00 $ 20.00 $ 6,015.00 $ 8,400.00 Cuando ocupamos funciones en una base de datos, lo hacemos generalmente para resumir información contenida en una tabla, las funciones a final de cuentas sirven para realizar consultas específicas sobre algún campo de la base de datos. Las funciones interconstruidas más comunes son las siguientes: Función Suma Promedio Mínimo Máximo Cuenta Para Descripción Calcula la suma de todos los valores de un campo numérico. Calcula la media aritmética sobre todos los valores de un campo numérico. Devuelve el valor más pequeño de un campo numérico. Devuelve el valor más grande de un campo numérico. Devuelve el número de registros que contiene una tabla. Condiciona las funciones anteriores bajo un criterio específico. 49 Si consideramos la tabla del ejemplo anterior Clientes, podemos realizar las siguientes consultas utilizando funciones: Consulta 1 Suma Cantidad de productos Resultado: 54 Consulta 2 Promedio Costo unitario/producto Resultado: $ 269.643 Consulta 3 Mínimo Cantidad de productos Resultado: 1 Consulta 4 Máximo Cantidad de productos Resultado: 20 Consulta 5 Cuenta Clientes Resultado: 7 Consulta 6 Cuenta Clientes para Cantidad productos >=7 Resultado: 3 Consulta 7 Suma Costo unitario/producto para Cantidad de Productos <6 Resultado: $ 1,273.00 A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje En una ficha de contenido desarrolla el tema de variables o campos calculados, así como las funciones. Recursos Susan L. Reber y otros. Op. cit.. Realiza los ejercicios propuestos para campos calculados en el Capítulo 8. Susan L. Reber y otros. Op. cit. Productos Ficha de contenido sobre variables y funciones. Ejercicios resueltos. 2. GENERADOR DE REPORTES Objetivo: Elaborar reportes de presentación de resultados en pantalla y por escrito, a partir de información seleccionada de una base de datos de una manera organizada y estética, para facilitar su consulta. A continuación estudiaremos el tema de REPORTES O INFORMES, a partir de definir la estructura general de estos, la forma de crearlos y modificarlos en un SGBD, así como la generación del reporte. Hasta el momento sólo hemos visualizado la información en pantalla, según las vistas que presenta el SGBD, sin embargo, un reporte permite presentar la información de una base de datos de forma organizada y estética en una hoja impresa, esta información es extraída o calculada a partir de los datos almacenados en la tabla. 50 Visto un reporte desde el Sistema Gestor de Base de Datos se considera como un archivo que contiene la definición de la estructura del reporte, la cual utiliza etiquetas o encabezados, información de los campos de la base de datos y algunos campos calculados o variables. Un reporte presenta la siguiente estructura: Cabecera de página Etiqueta Detalles Campo 1 Pie de página En la cabecera de página se encuentran los siguientes datos: • Encabezado del reporte: contiene información que irá al principio del reporte. • Encabezado de página: contiene información que aparecerá en todas las páginas del reporte. Pueden ser las etiquetas de los campos. • Encabezado de grupo: cuando el informe está dividido en grupos, aparecerán los datos del grupo. La sección de detalles contiene la información general del reporte, es aquí donde se despliegan los registros de una base de datos al poner el campo dentro de esta sección, para que se desplieguen sus registros partir de los criterios establecidos para el reporte. Dentro del pie de página se encuentran los siguientes datos: • Pie de grupo: contiene la información que va al final del grupo, puede ser un valor calculado. • Pie de página: contiene la información que se requiere que aparezca en todas las páginas, como lo es el número de página. • Pie de reporte: contiene la información que va al final de todo el reporte, como pueden ser las sumas totales y el nombre del responsable del reporte. La forma de crear, modificar y generar un reporte queda a disposición del SGBD. A nivel de SQL, las instrucciones que podríamos usar serían las siguientes: Para crear un reporte: CREATE REPORT <Nombre del reporte> Para modificar un reporte: MODIFY REPORT <Nombre del reporte> Para generar un reporte: REPORT FORM <Nombre del reporte> Es importante recalcar que para generar un reporte debemos considerar la orientación del papel de la impresora que se va a utilizar para imprimirlo. 51 A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Elabora un resumen sobre las ventajas de los reportes, su estructura, la forma de crearlos, modificarlos y generarlos. Recursos Susan L. Reber y otros. Op. cit., Capítulos 6 y 8. Productos Resumen sobre reportes. Realiza los ejercicios relacionados Susan L. Reber y otros. con reportes propuestos en los Op. cit. Capítulos 6 y 8. Ejercicios resueltos. Con relación a la situación de Manual de ejercicios y prácticas. aprendizaje, desarrolla la práctica 5, donde realizarás un reporte de la base de datos. Resolución de la práctica 5. 3. GENERADOR DE PANTALLAS Objetivo: Desplegar campos y registros seleccionados en pantalla, mediante el uso de las instrucciones o controles de creación de pantallas, para construir vistas sobre la base de datos que satisfaga necesidades específicas. Una PANTALLA o FORMULARIO es una herramienta visible en todos los SGBD para introducir o editar información de una o varias tablas de una base de datos relacional, en una secuencia personalizada por el usuario. Los formularios los diseña el usuario para interactuar con la base de datos contenida en el SGBD de una forma más amigable, además de que al usuario común le presenta únicamente la información que requiere, generando vistas de la información. En una pantalla el usuario puede incluir imágenes (al igual que en los reportes), encabezados de la pantalla, etiquetas de los campos a utilizar y los campos. Existen ciertos objetos o herramientas para navegar entre los registros, que pueden facilitar las ediciones o consultas de los usuarios, éstas varían según el tipo de SGBD. No olvides que para crear una pantalla se debe seleccionar la base de datos a visualizar. Cuando ya se tiene diseñada la pantalla, la podemos poner en uso para editar, capturar o consultar información. La forma de crear, modificar y poner en uso una pantalla queda a disposición del SGBD. A nivel de SQL, las instrucciones que podríamos usar serían las siguientes: Para crear una pantalla: CREATE SCREEN <Nombre de la pantalla> Para modificar una pantalla: MODIFY SCREEN <Nombre de la pantalla> Para generar una pantalla: SELECT SCREEN <Nombre de la pantalla> 52 A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Realiza un resumen sobre pantallas, su estructura, la forma de crearlas, modificarlas y generarlas. Recursos Susan L. Reber y otros. Op. cit., Capítulo 10 . Productos Resumen sobre pantallas. Realiza los ejercicios propuestos en el Capítulo 10. Susan L. Reber y otros. Op. cit., Capítulo 10 . Ejercicios resueltos. Con relación a la situación de Manual de ejercicios y prácticas. aprendizaje, desarrolla la práctica 6, donde realizarás una pantalla para manipular la base de datos. Resolución de la práctica 6. 4. CREACIÓN Y MANEJO DE BASES DE DATOS MÚLTIPLES Objetivo: Construir bases de datos múltiples, a partir de la vinculación de bases de datos sencillas, para reducir la redundancia y asegurar la consistencia de la información. Cuando nuestra base de datos es de tipo relacional, es decir, contiene más de dos tablas, éstas deben tener un campo en común, tal y como lo vimos en la unidad II. La idea de usar bases de datos relacionales es para evitar la redundancia y la inconsistencia de la información, cuyo diseño revisamos a detalle también en esta unidad. Ahora te explicaremos cómo conectar dos tablas a nivel físico en un SGBD. Ubiquemos el ejercicio de la unidad II, cuando hablábamos de los datos del empleado, recordarás que dividimos la tabla principal en varias para evitar los errores de redundancia e inconsistencia, quedando las siguientes tablas: Empleado Nombre Juan Pérez Pulido Pedro Acacio López Luis Manuel Pedrasa Homero Sánchez S. Áreas Clave 14A 14B 123J Clave Institución 1115 1115 1115 1115 Clave Área. 14A 14B 14A 14B Institución Clave Nombre 1115 Bachilleres 1116 Conalep Área CFT CFT ASD Subárea Técnica Pedagógica Almacén 53 Dirección Av. de los Milagros S/N Calle Santiago No. 125 Donde los campos señalados son claves primarias. La forma de realizar dichas conexiones en un nivel físico y en un SGBD será el siguiente: EMPLEADO NOMBRE CVEINSTITU CVEAREA INSTITUCIÓN CLAVE NOMBRE DIRECCIÓN ÁREAS CLAVE ÁREA SUBÁREA Podemos generar reportes o pantallas usando bases de datos relacionales, sólo hay que hacer referencia a la tabla de la que se está leyendo el campo y eso es todo. A continuación se presentan las actividades que debes realizar; en caso de cualquier duda o problema consulta a tu asesor. Actividades de aprendizaje Realiza un resumen sobre la forma de crear y manipular bases de datos múltiples a un nivel físico, en un SGBD (en específico Visual Fox Pro V 5.0). Recursos Susan L. Reber y otros. Op. cit., Capítulo 5 y 7. Con relación a la situación de Manual de ejercicios y prácticas. aprendizaje, desarrolla la práctica 7, donde realizarás un reporte y una pantalla para manipular la base de datos relacional. 54 Productos Resumen sobre bases de datos relacionales en un SGBD. Resolución de la práctica 7. ¿QUÉ HE APRENDIDO? A continuación te presentamos la evaluación de la unidad, para que valores tus avances hasta el momento. I Lee con atención cada uno de los siguientes conceptos y coloca dentro del paréntesis la definición que le corresponda. Concepto Definición ( ) Para a) Calcula la suma de todos los valores de un campo numérico. ( ) Promedio ( ) Cuenta b) Calcula la media aritmética sobre todos los valores de un campo numérico. c) Devuelve el valor más pequeño de un campo numérico. ( ) Máximo d) Devuelve el valor más grande de un campo numérico. ( ) Suma e) Devuelve el número de registros que contiene una tabla. ( ) Mínimo f) Condiciona las funciones anteriores bajo un criterio específico. II. Lee con atención cada una de las siguiente proposiciones y coloca dentro del paréntesis una V si es verdadera o una F si es falsa. ( ) Los campos que conectan dos tablas en las bases de datos relacionales deben ser del mismo tipo. ( ) Un reporte desde el Sistema Gestor de Base de Datos, se considera como un archivo que contiene la definición de la estructura del reporte. ( ) Los formularios los diseña el usuario para interactuar con el Sistema Gestor de Bases de Datos. ( ) Una base de datos de tipo relacional contiene una o más tablas. III. Lee las siguientes preguntas y contéstalas correctamente. 1. ¿Qué es un reporte? 2. ¿Qué es una pantalla? 3. Explica brevemente qué es una base de datos relacional. 4. Explica la estructura de una pantalla del SGBD Visual Fox Pro 5.0 5. Explica la lógica para relacionar dos tablas de una base de datos relacional. 55 QUIERO SABER MÁS Investiga sobre la forma de generar reportes y pantallas en otros SGBD, como son: Visual dBase 5.5 y Access 97 o 2000, entre otros. Realiza consultas con campos calculados en bases de datos relacionales. Elabora un cuadro comparativo de la forma de conectar dos o más tablas en diferentes SGBD. 56