Download Bases de datos
Document related concepts
Transcript
Bases de datos Programa desarrollado Área de Ciencias Exactas, Ingenierías y Tecnológicas Cuatrimestre TRES Programa de la asignatura: Bases de datos Clave: 210910311 y 150910311 Febrero de 2011 Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 1 Bases de datos Programa desarrollado SECRETARÍA DE EDUCACIÓN PÚBLICA Alonso Lujambio Irazábal SUBSECRETARÍA DE EDUCACIÓN SUPERIOR Rodolfo Tuirán Gutiérrez PROGRAMA DE EDUCACIÓN SUPERIOR ABIERTA Y A DISTANCIA COORDINACIÓN GENERAL Manuel Quintero Quintero COORDINACIÓN ACADÉMICA Soila del Carmen López Cuevas DISEÑO INSTRUCCIONAL Eliangel Navarro Flores y Juan Oropeza Mota EVALUACIÓN Y ACREDITACIÓN DE PROGRAMAS EDUCATIVOS Brenda Mariana Cruz Reyes AGRADECEMOS LA COLABORACIÓN EN EL DESARROLLO DE ESTE MATERIAL A: Mtra. Claudia Gabriela Hernández Medina y Mtra. Verónica Martínez Pérez Secretaría de Educación Pública, 2011 Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 2 Bases de datos Programa desarrollado Tabla de contenidos I. INFORMACIÓN GENERAL DE LA ASIGNATURA ................................................................................................. 7 a. Ficha de identificación ............................................................................................................................................ 7 b. Descripción ............................................................................................................................................................... 7 c. Propósito ................................................................................................................................................................... 8 II. FUNDAMENTACIÓN TEÓRICA DE LA ASIGNATURA........................................................................................ 8 III. COMPETENCIAS A DESARROLLAR .................................................................................................................... 8 Competencia general ................................................................................................................................................. 8 Competencias específicas.......................................................................................................................................... 9 IV. TEMARIO .................................................................................................................................................................... 9 V. METODOLOGÍA DE TRABAJO ............................................................................................................................... 9 VI. EVALUACIÓN .......................................................................................................................................................... 10 VII. MATERIAL DE APOYO ......................................................................................................................................... 11 Bibliografía básica...................................................................................................................................................... 11 Bibliografía complementaria ..................................................................................................................................... 11 Páginas electrónicas ................................................................................................................................................. 11 Otros recursos ............................................................................................................................................................ 12 VIII. DESARROLLO DE CONTENIDOS POR UNIDADAD ..................................................................................... 13 UNIDAD 1. Introducción a las Bases de datos ......................................................................................................... 13 Propósito de la unidad .............................................................................................................................................. 13 Competencia específica............................................................................................................................................ 13 Presentación de la unidad ........................................................................................................................................ 14 Actividad 1. Presentación ......................................................................................................................................... 14 1.1. Conceptos generales ......................................................................................................................................... 15 1.1.1. Conceptos informáticos básicos ................................................................................................................... 17 Actividad 2. Conceptos básicos de la asignatura ................................................................................................. 23 Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 3 Bases de datos Programa desarrollado 1.1.2. Conceptos específicos de Bases de datos ................................................................................................. 24 Actividad 3. Generar el concepto propio de Base de datos ................................................................................ 27 1.2. Tipos de Bases de datos .................................................................................................................................. 27 1.2.1. Base de datos de árbol (jerárquica) ............................................................................................................. 29 1.2.2. Base de datos de red ..................................................................................................................................... 33 1.2.3. Base de datos relacional ............................................................................................................................... 35 Actividad 4. Tabla comparativa de los tipos de Bases de datos ........................................................................ 36 1.2.4. Sistema Gestor de Base de Datos (SGBD) ................................................................................................ 38 Actividad 5. Reporte de investigación. Aplicación de los Sistemas Gestores de Bases de Datos por medio de un análisis de características ............................................................................................................................. 39 1.2.5. Estructura de un Sistema Gestor de Base de Datos ................................................................................ 39 Evidencia de aprendizaje. Reporte. Integración general de elementos específicos de las Bases de datos ...................................................................................................................................................................................... 40 Consideraciones específicas de la unidad............................................................................................................. 40 Cierre de la unidad .................................................................................................................................................... 41 Fuentes de consulta .................................................................................................................................................. 41 UNIDAD 2. Análisis........................................................................................................................................................ 42 Propósito de la unidad .............................................................................................................................................. 42 Competencia específica............................................................................................................................................ 42 Presentación de la unidad ........................................................................................................................................ 43 2.1. Lineamientos metodológicos de recopilación de requerimientos ............................................................... 43 2.1.1. Análisis. Concepto .......................................................................................................................................... 44 2.1.2. Estructura de las entradas, procesos y salidas ......................................................................................... 45 Actividad 1. Elección de caso .................................................................................................................................. 46 2.1.3. Herramientas de estudios de factibilidad (operacional, financiero y económico) ................................. 46 Actividad 2. Elección y elaboración del instrumento de recopilación de información ..................................... 48 2.1.4. Reporte del estudio de factibilidad ............................................................................................................... 48 Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 4 Bases de datos Programa desarrollado 2.1.5. Requerimientos de hardware y software..................................................................................................... 48 Actividad 3. Reporte sobre el estudio de factibilidad ........................................................................................... 49 2.2. Técnicas de modelado de datos ...................................................................................................................... 50 2.2.1. Modelado de objetos ...................................................................................................................................... 50 2.2.2. Modelado entidad relación (E-R).................................................................................................................. 51 2.2.3. Normalización .................................................................................................................................................. 54 2.2.4. Modelado relacional ....................................................................................................................................... 56 Actividad 4. Modelados básicos .............................................................................................................................. 59 Evidencia de aprendizaje. Análisis y modelado .................................................................................................... 59 Consideraciones específicas de la unidad............................................................................................................. 60 Cierre de la unidad ................................................................................................................................................... 60 Fuentes de consulta .................................................................................................................................................. 61 UNIDAD 3. Diseño ......................................................................................................................................................... 62 Propósito de la unidad .............................................................................................................................................. 62 Competencia específica............................................................................................................................................ 62 Presentación de la unidad ........................................................................................................................................ 62 3.1. Diseño de prototipo de Bases de datos.......................................................................................................... 63 Actividad 1. Tablas lógicas ....................................................................................................................................... 64 3.1.1. Concepto de Structured Query Language (SQL) ...................................................................................... 64 3.1.2. Tipos de datos ................................................................................................................................................. 67 3.1.3. Generación de Diccionario de datos............................................................................................................ 69 Actividad 2. Diccionario de datos ............................................................................................................................ 70 Actividad 3. Entrega de tablas lógicas y diccionario de datos ............................................................................ 71 3.1.4. Instrucciones SQL: Data Definition Language (DDL) y Data Manipulation Language (DML) ............ 71 3.1.5. Álgebra relacional ........................................................................................................................................... 76 Actividad 4. Ejercicio: Funciones básicas de SQL y álgebra relacional ............................................................ 92 Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 5 Bases de datos Programa desarrollado Evidencia de aprendizaje. Desarrollo e integración de prototipo ....................................................................... 92 Consideraciones específicas de la unidad............................................................................................................. 93 Cierre de la unidad .................................................................................................................................................... 93 Examen final ............................................................................................................................................................... 93 Fuentes de consulta .................................................................................................................................................. 94 Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 6 Bases de datos Programa desarrollado I. INFORMACIÓN GENERAL DE LA ASIGNATURA a. Ficha de identificación Nombre de las Ingenierías: Nombre del curso o asignatura Clave de asignatura: Seriación: Telemática y Desarrollo de software Bases de datos 210910311 y 150910311 No aplica Cuatrimestre: Horas contempladas: Tercero 72 b. Descripción La asignatura de Bases de datos forma parte del tercer cuatrimestre de las Ingenierías en Telemática y Desarrollo de software, las cuales demandan el conocimiento estructural de una amplia gama de información, entre la cual se encuentran las técnicas de modelaje para realizar Bases de datos, que cumplan con las necesidades del sector productivo en el cual el ingeniero se desempeñe. En la asignatura de Bases de datos se toman en cuenta la orientación de la necesidad, el análisis por medio de elementos que permitan recabar la información necesaria, hasta llegar al diseño lógico, que no es más que el bosquejo final donde el estudiante demostrará la solución práctica de casos reales con técnicas de modelaje como son: modelado de objetos, modelado entidad relación, normalización y modelado relacional; así el estudiante crea el prototipo y selecciona el Sistema Gestor de Base de Datos más adecuado. Durante la asignatura, el estudiante se encontrará inmerso en diferentes escenarios, los cuales se le pueden presentar en un contexto laboral, por lo anterior deberá analizar minuciosamente las situaciones y ensayar los diferentes roles que le permitan atender las demandas del contexto como: líder, analista, diseñador o usuario final. La asignatura requiere que los estudiantes hagan uso de sus habilidades de análisis e interpretación de la necesidad en cuestión. Para cumplir con la competencia general de la asignatura, se debe desarrollar una serie de habilidades como: toma de decisión, análisis y selección del gestor de Base de datos a utilizar, dar propuestas de solución, considerando sus propios alcances y los requerimientos de hardware y recursos del usuario. La importancia de esta asignatura para las Ingenierías en Telemática y Desarrollo de software se centra en las técnicas de modelaje, así como en mostrarle al estudiante cómo se lleva a cabo la estructuración de una Base de datos, lo cual es fundamental para su adecuada formación integral. La asignatura se encuentra conformada por tres unidades: 1. Introducción a las Bases de datos 2. Análisis Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 7 Bases de datos Programa desarrollado 3. Diseño En la primera unidad se abarcan los conceptos generales informáticos y específicos de las Bases de datos, los tipos y su estructura. En la segunda unidad se muestran los temas combinando la teoría y la práctica, ya que aborda la estructura de los procesos, entradas y salidas, herramientas de estudios de factibilidad (operacional, financiero y económico), el desarrollo del Reporte del estudio de factibilidad, los requerimientos de hardware y software, así como la aplicación de las técnicas de modelados. Finalmente, la tercera unidad está enfocada en trabajar con las estructuras Structured Query Language (SQL) que son: Data Definition Language (DDL) y Data Manipulation Language (DML), los tipos de datos que se trabajan en las Bases de datos, diccionario de datos y álgebra relacional. c. Propósito El propósito fundamental del curso es aplicar los conocimientos adquiridos para generar un prototipo de Base de datos documental, que permita dar solución a los requerimientos del usuario. II. FUNDAMENTACIÓN TEÓRICA DE LA ASIGNATURA Los fundamentos que justifican la asignatura son de carácter teórico-práctico, dado que la estructura de las unidades está diseñada de una manera en la que la primera unidad abarca los conceptos generales informáticos y específicos de las Bases de datos, los tipos y su estructura, así como gestores, sus elementos y características, para que el estudiante los aplique conforme va avanzando en su temario. Por otra parte, la unidad dos muestra los temas combinando la teoría y la práctica, ya que aborda la estructura de los procesos, entradas y salidas, herramientas de estudios de factibilidad (operacional, financiero y económico), el desarrollo del Reporte del estudio de factibilidad, los requerimientos de hardware y software, así como la aplicación de las técnicas de modelados, incluyendo conceptos y ejemplificación práctica de los temas que se abordan. Finalmente, la unidad 3 está enfocada a cuestiones totalmente prácticas, dado que tiene la facultad de estructurar los modelos y finalizar con el prototipo esperado, tomando como base las estructuras Structured Query Language (SQL) que son: Data Definition Language (DDL) y Data Manipulation Language (DML), los tipos de datos que se trabajan en las Bases de datos, el diccionario de datos y el álgebra relacional. III. COMPETENCIAS A DESARROLLAR Competencia general Realizar prototipos de Bases de datos documentales, que sirvan de modelo para dar solución a problemas relacionados con la gestión de información, por medio de técnicas de modelaje que partan del análisis del problema y los requerimientos del usuario final. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 8 Bases de datos Programa desarrollado Competencias específicas Diferenciar los conceptos específicos de Bases de datos para comprender los tipos de éstas, así como sus Sistemas Gestores, por medio de las características que las describen. Analizar problemas de gestión de información para elegir la alternativa que responda a los requerimientos de acuerdo al resultado de los datos obtenidos por medio del estudio de factibilidad (financiero, operacional y económico). Elaborar modelados de Bases de datos documentales para representar la información que satisfaga las necesidades de gestión de información, mediante las técnicas de modelaje utilizadas para generar un prototipo. IV. TEMARIO UNIDAD 1. Introducción a las Bases de datos 1.1. Conceptos generales 1.1.1. Conceptos informáticos básicos 1.1.2. Conceptos específicos de Bases de datos 1.2. Tipos de Bases de datos 1.2.1. Base de datos de árbol (jerárquica) 1.2.2. Base de datos de red 1.2.3. Base de datos relacional 1.2.4. Sistema Gestor de Base de Datos (SGBD) 1.2.5. Estructura de un Sistema Gestor de Base de Datos UNIDAD 2. Análisis 2.1. Lineamientos metodológicos de recopilación de requerimientos 2.1.1. Análisis. Concepto 2.1.2. Estructura de las entradas, procesos y salidas 2.1.3. Herramientas de estudios de factibilidad (operacional, financiero y económico) 2.1.4. Reporte del estudio de factibilidad 2.1.5. Requerimientos de hardware y software 2.2. Técnicas de modelado de datos 2.2.1. Modelado de objetos 2.2.2. Modelado entidad relación (E-R) 2.2.3. Normalización 2.2.4. Modelado relacional UNIDAD 3. Diseño 3.1. Diseño de prototipo de Bases de datos 3.1.1. Concepto de Structured Query Language (SQL) 3.1.2. Tipos de datos 3.1.3. Generación de Diccionario de datos 3.1.4. Instrucciones SQL: Data Definition Language (DDL) y Data Manipulation Language (DML) 3.1.5. Álgebra relacional V. METODOLOGÍA DE TRABAJO Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 9 Bases de datos Programa desarrollado La asignatura de Bases de datos presenta nociones teóricas y prácticas que requieren y provocan un alto grado de abstracción, ya que se enfoca en abordar conceptos básicos y específicos, que serán de uso continuo y se aplicarán en las técnicas de modelaje para el desarrollo de prototipos, de forma documental. Por tal razón es importante contar con una unidad introductoria a conceptos generales y específicos de las Bases de datos, dado que en las unidades siguientes se manejan aspectos tanto teóricos como prácticos, con el objetivo de que el estudiante vaya aplicando sus conocimientos sobre las técnicas de modelaje en un caso práctico, por ello se plantea una metodología de Aprendizaje Basado en Casos (ABC). Desde el inicio de la primera unidad, el estudiante interactúa con las herramientas del aula virtual, como lo son foros, glosarios, bases de datos y wiki. Posteriormente, se llevan a cabo trabajos colaborativos, así como también se presentan actividades de investigación que complementen los contenidos, lo que permite ejercitar y presentar sus evidencias de aprendizaje de los temas vistos en cada unidad. VI. EVALUACIÓN En el marco del Programa de la ESAD, la evaluación se conceptualiza como un proceso participativo, sistemático y ordenado que inicia desde el momento en que el estudiante ingresa al aula virtual, por lo que se le considera desde un enfoque integral y continuo. Por lo anterior, para aprobar la asignatura de Bases de datos, se espera la participación responsable y activa del estudiante, así como una comunicación estrecha con su facilitador para que pueda evaluar objetivamente su desempeño. Para lo cual es necesaria la recolección de evidencias que permitan apreciar el proceso de aprendizaje de contenidos: declarativos, procedimentales y actitudinales. En este contexto la evaluación es parte del proceso de aprendizaje, en el que la retroalimentación permanente es fundamental para promover el aprendizaje significativo y reconocer el esfuerzo. Es requisito indispensable la entrega oportuna de cada una de las tareas, actividades y evidencias, así como la participación en foros, wikis, blogs y demás actividades programadas en cada una de las unidades, dentro del tiempo especificado y conforme a las indicaciones dadas. La calificación se asignará de acuerdo con la rúbrica establecida para cada actividad, por lo que es importante que el estudiante la revise antes de realizar la actividad correspondiente. A continuación se presenta el esquema general de evaluación. RECURSOS Y HERRAMIENTAS Actividades formativas (envíos a taller y tareas). Interacción en el aula y trabajo colaborativo (foros y bases de datos). E-Portafolio (evidencias de aprendizaje y autoreflexiones). Examen final. VALOR 30% 10% 50% 10% Cabe señalar que para aprobar la asignatura, se debe de obtener la calificación mínima indicada por ESAD. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 10 Bases de datos Programa desarrollado VII. MATERIAL DE APOYO Bibliografía básica Celma, M.; Casamayor, J.C.; Mota, L. (2003) Bases de datos relacionales. Madrid: Pearson-Prentice Hall. Conallen, Jim. (s. f.) Building Web Applications With UML. Segunda edición. EUA: Addison-Wesley. MasterMagazine (2005) Definición de ASCII. Recuperado el 21 de enero de 2011, de http://www.mastermagazine.info/termino/3926.php Pérez L, César. (2008) Oracle 10g: administración y análisis de bases de datos. Segunda edición. México: Alfaomega. Quiroz, Javier. (2003) ―El modelo relacional de bases de datos‖ en Boletín de Política Informática Núm. 6 (Versión electrónica). Recuperado el 26 de enero de 2011, de http://www.inegi.org.mx/inegi/contenidos/espanol/prensa/contenidos/articulos/tecnologia/relacional.p df Schmuller, Joseph. (s. f.) Aprendiendo UML en 24 horas. México: Prentice Hall. Silberschatz, Abraham. (2006). Fundamentos de Bases de Datos. España: McGraw-Hill. ―Definición de requerimiento de hardware‖ en Diccionario de informática. Recuperado el 2 de enero de 2011, de http://www.alegsa.com.ar/Dic/requerimiento%20de%20hardware.php Bibliografía complementaria Forouzan A, Behrouz. (2003) Introducción a la Ciencia de la Computación. Primera edición. México: Thomson Real Academia Española (2001) Diccionario de la lengua española. Vigésima segunda edición (Versión digital). Recuperado el 19 de enero de 2011, de http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=inform%E1tica Páginas electrónicas www.aulaclic.net Pone a disposición descargas de cursos gratuitos: cursos informáticos, metodología de algoritmos, entre otros. Asimismo, muestra artículos de temas de interés informático. www.aulafacil.com Pone a disposición manuales y tutoriales de temas varios: idiomas, informática y cultura general. www.bibliotheka.net Pone a disposición una lista de libros y artículos relacionados con la materia, así como materiales de conocimiento en general, todo ello de manera gratuita. www.gratisprogramas.net Pone a disposición una serie de programas gratuitos y de fácil acceso. www.infoamerica.org Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 11 Bases de datos Programa desarrollado Pone a disposición gran cantidad de artículos relacionados con la comunicación. www.mastermagazine.info Pone a disposición gran cantidad de artículos relacionados con términos empleados en la asignatura de Bases de datos. www.realraptalk.com Pone a disposición una serie de información general, de diferentes tipos, así como blogs y foros que sirven para intercambiar y obtener una visión más amplia sobre los conceptos relacionados con la asignatura. www.senavirtual.edu.com Pone a disposición cursos virtuales con certificación gratuita, en los que se abarcan temas relacionados con ofimática, diseño web, programación orientada a objetos, modelado de objetos y calidad en el desarrollo de software. www.taringa.com Pone a disposición la colaboración con una comunidad de nivel, donde se puede encontrar información sobre Bases de datos, así como la referida a cualquier otro tipo de información que se requiera. Otros recursos Excel Access Structured Query Language (SQL) en su modalidad sencilla Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 12 Bases de datos Programa desarrollado VIII. DESARROLLO DE CONTENIDOS POR UNIDADAD UNIDAD 1. Introducción a las Bases de datos Propósito de la unidad En la presente unidad analizarás el proceso para la elaboración del prototipo de base de datos documental, tomando en cuenta el concepto de bases de datos, los diversos tipos que existen de ellas, así como los diferentes Sistemas Gestores de Bases de Datos. Competencia específica Diferenciar los conceptos específicos de Bases de datos para comprender los tipos de éstas, así como sus Sistemas Gestores, por medio de las características que las describen. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 13 Bases de datos Programa desarrollado Presentación de la unidad Bienvenido(a) al curso de Bases de datos. En esta primera unidad se establecen los principios fundamentales de Bases de datos y gestores, con la finalidad de que exista una familiaridad con los diversos conocimientos que la asignatura requiere, como lo son términos informáticos básicos y específicos de bases de datos. Repasar y retroalimentar conceptos informáticos básicos servirá para recordar la importancia que tienen para ser aplicados a esta asignatura, se abordará desde el concepto de informática hasta los Sistemas Gestores de Bases de Datos (SGBD), pasando por lo que son las unidades de almacenamiento, los sistemas numéricos, así como los códigos, entre otros conceptos, lo que permitirá dar cumplimiento al propósito de la unidad. Actividad 1. Presentación Antes de entrar de lleno en el estudio de la asignatura se presenta un foro de discusión general, el cual ha sido creado para que se comente cualquier asunto relacionado con Bases de datos, de este modo los estudiantes se conocerán y podrán apoyarse entre ellos mismos para resolver dudas, inquietudes, externar comentarios, etcétera. Ingresa al aula virtual para realizar la actividad. Para comenzar tu participación, ingresa al foro: Presentación. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 14 Bases de datos Programa desarrollado 1.1. Conceptos generales En la actualidad la tecnología ha crecido a pasos agigantados, por tal razón hablar de información tiene que ver con el ajuste de esta misma en su totalidad, pero de manera electrónica, dejando a un lado el trabajo rudimentario, por eso el impacto y puntualidad de este tema es parte de la columna vertebral del conocimiento general de informática, lo que permitirá distinguir, identificar y aplicar los conceptos adquiridos en cualquiera que sea el escenario que el estudiante enfrente, tanto en su formación académica y laboral, como en el ámbito personal y social, aplicando las habilidades adquiridas sobre los tipos de bases de datos y gestores. Teniendo en cuenta estos antecedentes, y antes de continuar con la asignatura, es preciso comentar algunas cuestiones de suma importancia referidas a la información y a la informática, ya que éstas son la base del presente curso. La palabra INFORMÁTICA se integra por la contracción de los vocablos Información y Automática Habitualmente la palabra información está ligada a la ―adquisición de conocimientos‖; se dice haber recibido información cuando se conoce algo que se ignoraba. Relacionado con este término se encuentra el concepto de informática, la cual trata sobre la adquisición, representación, tratamiento y transmisión de la información, es decir, la informática es la ciencia que estudia el tratamiento racional de la información por medio de máquinas automáticas. La Real Academia Española define a la informática como: ―conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores‖.1 Con base en lo anterior, se puede señalar que los primeros ordenadores surgieron ante la necesidad de realizar grandes cálculos en aplicaciones militares, que escapaban a las posibilidades humanas. Actualmente, las ventajas que representan los ordenadores son: rapidez, fiabilidad, gran capacidad de almacenamiento y un precio asequible. Ante esto, la informática, o ciencia de los ordenadores, aparece como un intento de estructurar todos los avances tecnológicos y de programación que se producen vertiginosamente. Los primeros estudios de la información partieron de la aplicación la teoría de las probabilidades, iniciado por Claude Elwood Shannon, a mediados de los años cuarenta. Claude Elwood Shannon (1916-2001). Ingeniero electrotécnico y matemático estadounidense. Nació en Michigan y cursó estudios en la Universidad de Michigan. 1 Real Academia Española (2001) Diccionario de la lengua española.en Vigésima segunda edición (Versión digital). Recuperado En 1940 obtuvo su doctorado el Instituto de Tecnología de Massachusetts y en el 19 de enero de 2011, de http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=inform%E1tica 1941 ingresó en los laboratorios Bell, donde trabajó en el desarrollo de sistemas de encriptación digital. Siete años más tarde estableció las leyes fundamentales de la Educación Superiorde Abierta a Distancia • Ciencias Exactas, Ingeniería transmisión y compresión datosyen su trabajo A mathematical theory yofTecnología. 15 communication (en este artículo surge por vez primera el término ―bit‖, contracción de Bases de datos Programa desarrollado El estudio de la informática tiene básicamente dos ramas: una teórica, con la que adquiere un carácter científico y otro relacionado con el diseño y la experimentación de aplicación, con lo que adquiere su lugar como ingeniería. De acuerdo a Álvarez y Bravo (2000) los siguientes son algunos de los campos de aplicación más destacados de la informática. Algoritmos y estructuras de datos. Análisis y desarrollo de sistemas informáticos. Arquitectura de ordenadores. Inteligencia artificial. Informática educativa. Informática gráfica Informática industrial Lenguajes de programación Metodología de la programación Ingeniería del software Robótica Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 16 Bases de datos Programa desarrollado 1.1.1. Conceptos informáticos básicos Una vez habiendo abordado lo que es la informática y su importancia en la actualidad, debido a que se ha convertido en el sustento de todas las empresas y de todo lugar donde existe tecnología, desde un aparato doméstico hasta grandes servidores que permiten la comunicación estrecha con el mundo actual, en este apartado se revisarán conceptos relacionados con ella. De la informática emanan otros términos, como son: computadora, bit, byte, gigabyte, megabyte, terabyte, archivos, directorios, campos, registros, dispositivos, hardware, software, bases de datos, Internet, servidor, red, correo electrónico, wiki, foros, blogs, virus, antivirus, aplicación, lenguaje de programación, programa; entre muchos otros. A continuación trataremos algunos de ellos. El término computadora, desde el punto de vista de la actualidad, empapada de tecnología, se define como un dispositivo electrónico capaz de tratar gran cantidad de información, con tareas generales como: almacenar, organizar, gestionar, actualizar, entre otras. Los nombres que con mayor frecuencia se utilizan para referirse a este dispositivo son: computadora, terminal, servidor, terminal tonta, ordenador, nodo y PC. Ahora bien, la unidad mínima que soporta un computador es un bit, el cual es la representación en sistema binario de un 1 o un 0, que en términos de electrónica 1 simboliza presencia de alto voltaje y 0 baja presencia de voltaje. Mientras que un byte es la unidad mínima de almacenamiento del ordenador y representa 8 bits, que en conjunto conforman un carácter cualquiera de los 256 que conforman el código ASCII, que más adelante se mencionará a detalle. Es importante tener clara la diferencia entre bit y byte, ya que son términos esenciales en cuanto a informática se refiere. Las computadoras trabajan por medio de sistemas numéricos: binario, decimal, octal y hexadecimal. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 17 Bases de datos Programa desarrollado Sistema numérico binario Por su sencillez el sistema numérico se utiliza para manejo de datos es el sistema Binario, en él se emplea la notación posicional a partir de sólo dos dígitos (0,1). Su lógica parte de que el cero representa un espacio apagado, vacío ó con cero volts, mientras que el uno representa un espacio encendido, energizado o con +5 o +12 volts. Si se invierte esa relación se genera lo que se conoce como lógica negativa. Los espacio ocupados por los dígitos se llaman bit, de modo que 1010 contiene cuatro bits, 100 contiene 3, 10 contiene dos, y así en lo subsecuente con cualquier unidad que se quiera representar. El sistema Binario parte de la notación posicional, de modo que el valor de cada dígito depende directamente de la posición que tiene en la serie completa. En este caso la base numérica es dos Por lo que tenemos que existen dos dígitos (0 ó 1) en cada posición del número. Para obtener el número decimal de uno en binario, comenzando por el lado derecho del número en binario, se debe multiplicar cada cifra por dos elevado a la potencia consecutiva, iniciando por la potencia 0 (20). Una vez realizadas cada una de las multiplicaciones, se suman los resultados de ellas, lo que reflejará el número equivalente al sistema decimal. Por ejemplo, el número 11012 (en base 2) es: Sistema numérico decimal Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 18 Bases de datos Programa desarrollado El sistema numérico Decimal posee diez dígitos diferentes y es el que actualmente se utiliza más comúnmente. El sistema numérico decimal es un sistema de numeración posicional, por lo que el valor del dígito depende de su posición dentro del número, es decir: El número decimal A se debe multiplicar por 10n, en donde n es positivo o negativo de acuerdo a la posición de los dígitos respecto del punto. Los dígitos a la izquierda del punto toman el valor correspondiente a las potencias positivas de la base (10, en este sistema), en función de la posición que ocupan en el número, y representan al dígito de las unidades (100=1), decenas (10¹=10), centenas (10²=100), etcétera. Los dígitos a la derecha del punto representan al dígito de las décimas (10-1=0.1), centésimas (10-2=0.01), milésimas (10-3=0.001), etcétera. Los resultados de estás multiplicaciones serán mayores o iguales que uno si el dígito se localiza a la izquierda del punto decimal, en cambio, el valor será menor que uno si el dígito se localiza a la derecha del punto decimal. Por ejemplo, el número 5432.789 expresado en la notación posicional es: Con el fin de aclarar el procedimiento utilizado en el ejemplo anterior, es necesario revisar lo siguiente: Notación posicional del sistema decimal Ahora se revisarán dos maneras para convertir números decimales en binarios. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 19 Bases de datos Programa desarrollado 1. La primera forma es dividir los decimales entre dos, cuyo resultado entero se vuelve a dividir entre dos, y así continuamente, ordenando los restos del último al primero. Por ejemplo, 74 en decimal es 1001010 en binario, porque: 2. La segunda manera para convertir números decimales en binarios es realizar divisiones sucesivas entre dos y colocando un cero o un uno de lado derecho dependiendo si el número es par o impar. Si es impar, se le resta uno y se continúa con las divisiones hasta llegar a uno. Posteriormente, se coloca del lado derecho un 1 si es impar y un cero si es par. Finalmente se ordenan los dígitos de abajo hacia arriba, por ejemplo, 131 en decimal es 10000011 en binario, porque:Al realizar divisiones sucesivas entre dos y colocando un cero o un uno de lado derecho dependiendo si el número es par o impar. Si es impar, se le resta uno y se continúa con las divisiones hasta llegar a uno. Posteriormente, se coloca del lado derecho un 1 si es impar y un cero si es par. Finalmente se ordenan los dígitos de abajo hacia arriba, por ejemplo, 131 en decimal es 10000011 en binario, porque: Sistema numérico octal. Otro sistema numérico utilizado en informática es el sistema octal, que tiene la particularidad de utilizar una base (8) que es la potencia exacta de la numeración binaria, por lo que su converisión para utilizar ambos sistemas es más o menos simple. Se parte de 8 dígitos básicos (0,1,2,3,4,5,6,7) que poseen un valor homólogo al que tienen en el sistema decimal, además del uso de la notación posicional Por ejemplo el número 3452.32q (q representa los decimales de las operaciones octales) tenemos: Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 20 Bases de datos Programa desarrollado Recuerda que un exponente negativo indica cuántas veces dividir por ese número el uno; por ejemplo: 8-3 = 1÷8÷8÷8 = 0.001953125, o bien: 8-3 = 1 ÷ (8*8*8) = 1÷512 = 0.001953125. Los números octales pueden construirse a partir de números binarios, agrupando cada tres dígitos consecutivos de estos últimos (de derecha a izquierda) y obteniendo su valor decimal. Por ejemplo, el número 74 (en decimal) es 1001010 (en binario), si éste lo agrupamos como 1 001 010, obtenemos que 74 es 112 en octal porque: Es conveniente mencionar que la cantidad correspondiente en octal se concentra de izquierda a derecha. Sistema numérico hexadecimal Un sistema muy utilizado en la informática actual es el Sistema Hexadecimal, de igual manera es gracias a su facilidad de conversión al formato binario. En este caso se utiliza como base el 16, y al igual que los sistemas vistos con anterioridad cada dígito altera su valor dependiendo de su lugar en la cadena de dígitos por ejemplo, el número 1234 es igual a: Debido a que el sistema usual de numeración es de base decimal, contando con sólo diez dígitos, se utilizan las primeras seis letras del alfabeto latino para suplir los dígitos faltantes, por lo que el sistema numérico hexadecimal está conformado por los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F, donde A=10, B=11, C=12, D=13, E=14 y F=15. En la conversión de un número hexadecimal a binario se logra sustituyendo los correspondientes cuatro bits para cada dígito que componen la serie. Por ejemplo A B 0 C D h = 1010 1011 0000 1100 1101 b: Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 21 Bases de datos Programa desarrollado Una vez que se han abordado los sistemas numéricos con los que trabajan las computadoras, es necesario hablar de los códigos EBCDIC (Extended Binary Coded Decimal Interchange Code / Código Ampliado de Intercambio Decimal Codificado en Binario) y ASCII (American Standard Code for Information Interchange / Código Estadounidense Estándar para el Intercambio de Información), como los más importantes y conocidos para representar datos. El primero es un código para texto y comunicaciones basado en el sistema binario que se creó para comunicaciones y control de impresoras por IBM. Es un código de 8 bits y almacena un carácter alfanumérico o dos dígitos en un byte. Por otra parte, ASCII es un código que se basa en un conjunto de caracteres del alfabeto latino utilizado en el idioma inglés y otras lenguas del mundo occidental. Con el objetivo de controlar dispositivos digitales que manipulan texto o para representar textos en pantalla, la mayoría de los sistemas informáticos del día de hoy utilizan el código ASCII, el cual fue desarrollado como una evolución de los códigos telegráficos en 1963, por el entonces llamado ASA (American Standards Association / Asociación Estadounidense de Estándares), el cual pasó a llamarse ANSI (American National Standards Institute / Instituto Estadounidense de Estándares Nacionales) en 1969.2 Lenguajes de programación 2 MasterMagazine (2005) Definición de ASCII. Recuperado el 21 de enero de 2011, de http://www.mastermagazine.info/termino/3926.php Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 22 Bases de datos Programa desarrollado Los lenguajes de programación son sistemas de comunicación entre la instrucción del usuario y el sistema de cómputo. Estos se distinguen en tres niveles: Bajo Nivel: Es totalmente dependiente de la máquina, lo que significa que sólo funcionará en la máquina que fue desarrollado y no se puede migrar ya que está diseñado prácticamente a la medida del hardware, pero tiene como ventaja que aprovecha al máximo las características del mismo. Un ejemplo de este es el lenguaje máquina, que es el encargado de instruir a la computadora sus operaciones básicas de funcionamiento. También tiene la ventaja de ser significativamente rápido aunque es muy complejo su manejo, ya que se desarrollan códigos fuente enormes en los que encontrar un fallo es casi imposible. Alto Nivel: Se caracterizan por ser más cercanos al lenguaje natural que al de la máquina, además de que utilizan Estructuras Dinámicas de Datos, que son estructuras que pueden cambiar de tamaño durante la ejecución y por tanto pueden crear estructuras que se adaptan fácilmente a las necesidades reales de un programa. A diferencia de los de bajo nivel son completamente independientes a la arquitectura del ordenador, por lo que son completamente migrables. Por lo tanto el programador sólo requiere de un traductor capaz de entender el código fuente y las características particulares de la máquina. Medio Nivel: Estos son lenguajes de punto medio, como por ejemplo C. Estos pueden acceder a los registros del sistema y trabajar con direcciones de memoria, lo que es una capacidad del lenguaje de bajo nivel, y al mismo tiempo pueden realizar operaciones en alto nivel. Actividad 2. Conceptos básicos de la asignatura Esta actividad consiste en elaborar en colaboración con tus compañeros(as) un glosario, para ello, debes investigar en fuentes externas de información diferentes conceptos que te parezcan relevantes de acuerdo con los temas que se abordan en la asignatura, conforme vayas encontrando conceptos clave, podrás compartirlos en la wiki, misma que permanecerá abierta durante todo el curso para que puedas tenerlos presentes en el todo momento. 1. Busca conceptos sobre el contenido del curso mencionados por diferentes autores, compáralos y compleméntalos. 1. Ingresa a la Wiki: Conceptos básicos de la asignatura y realiza lo que se te indica. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 23 Bases de datos Programa desarrollado 1.1.2. Conceptos específicos de Bases de datos Haber revisado conceptos básicos de informática en el apartado anterior nos da las bases suficientes para entrar de lleno en los conceptos propios de las bases de datos, como son: dato, campo, registro, archivo, entre otros. La importancia de abordar este tipo de conceptos radica en la necesidad de unificar términos que se irán enlazando y utilizando conforme se avance en los temas, por lo que a continuación se definirán algunos de ellos. Se comenzará definiendo el término dato, el cual es cualquier carácter, sin embargo debe conformar información coherente y ordenada. Cuando tenemos un conjunto de datos es un campo, y cuando a este campo le es anexada más información u otros campos, se convierten en un registro, por lo que éste es definido como un conjunto de campos. De esta manera se van amarrando los conceptos hasta llegar al término de archivo, que es un conjunto de registros. Ahora bien, una base de datos se define como grandes cantidades de información almacenada en un espacio de memoria (de PC, servidor, laptop, etcétera), que es procesada para su posterior uso, según las necesidades de información de la empresa, institución, etc., dicha información ayudará a la toma de decisiones y ésta a su vez dará soluciones. Una de las principales ventajas de las bases de datos es que se puede manejar información compartida en red, que en cualquier parte del mundo se pueda consultar, siempre y cuando se cuente con los permisos de acceso, si en su caso así lo requiere. Las bases de datos pueden ser diseñadas de manera lógica o documental para diseñar prototipos, pero la realidad de las cosas es que se pueden diseñar en algunas aplicaciones, desde las más sencillas como Excel y Access, hasta otras más complejas, las cuales abordaremos más adelante en los contenidos. Componentes que conforman las bases de datos Para hablar sobre los componentes que conforman las bases de datos, es importante comenzar con el software; éste está constituido por un conjunto de programas que se conocen como Sistema de Gestión de Base de Datos (DBMS, por sus siglas en inglés: Database Management System). Este sistema maneja todas las solicitudes formuladas por los usuarios a la base de datos. Las bases de datos son utilizadas por usuarios en diferentes niveles, pero antes de abordar cada uno de ellos es preciso aclarar que un usuario es aquella persona que utiliza la base de datos dependiendo de sus necesidades. Existe el usuario quien la utilizará (usuario final), quien ejecuta las aplicaciones y el que administra la Base de datos, cada uno de ellos tiene un nivel de acceso a la Base de datos. El programador de aplicaciones es el encargado de crear programas de aplicación que utiliza la base de datos; el usuario final es quien accesa a la base de datos por medio de un lenguaje de consulta o de programas de aplicación, sin ser el especialista; mientras que el administrador de la Base de datos (DBA, por sus siglas en inglés: Data Base Administrator) es quien se encarga del control general del Sistema de Base de Datos. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 24 Bases de datos Programa desarrollado Todas las bases de datos tienen como punto de partida una tabla, que es la forma de organizar la información en filas y columnas para que su acceso sea más fácil y velóz. La filas de datos las conocemos como registros, mientras que las columas se llaman campos. Así mismo existe un campo clave, que asigna a cada registro un número irrepetible y, de ser necesario secuencial. Esta llave es muy importante puesto que es común que algunos registros repitan su información, y con ella se le otorga a cada registro una differencia que le otorga unicidad. Por su nombre en inglés es común verla referida con sus siglas PK (primary key). Un buen ejemplo de una base de datos es una lista de nombres y teléfonos de un grupo de personas: Aparte del campo clave, existe la clave externa, también conocida como llave foránea, la cual es uno o más campos de una tabla que hacen referencia al campo o campos de la clave principal de otra tabla. Una clave externa se encarga de indicar cómo están relacionadas las tablas. Es importante mencionar que los datos en los campos de clave externa y clave principal deben coincidir, aunque los nombres de los campos no sean los mismos. De la misma forma como se selecciona la llave primaria, se selecciona la llave o clave externa o foránea. Esta llave tiene la tarea específica de determinar en el momento de las relaciones entre las tablas dónde la llave primaria realiza la unión con el otro campo de otra tabla y automáticamente se vuelve una llave foránea. Elementos que conforman las bases de datos En esta parte es importante tomar en cuenta la diferencia que existe entre un componente y un elemento de la base de datos; cuando se habla de un elemento es cuando se utiliza ya un gestor, sin embargo, cuando se habla de componente, es meramente teórico. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 25 Bases de datos Programa desarrollado Conceptos específicos de Bases de datos Ventajas de las bases de datos Dentro de las ventajas primordiales que tienen las bases de datos se encuentran: Ahorro de tiempo, ya que los mismos datos se introducen una sola vez. Ahorro de espacio, porque la base de datos tiene dimensiones más reducidas. Disminución de errores determinados por la introducción de datos, ya que no se presenta redundancia de datos. Fiabilidad y disponibilidad; comúnmente la fiabilidad se define a grandes rasgos como la probabilidad de que un sistema esté en funciones en un momento determinado, y la disponibilidad es la probabilidad de que el sistema esté disponible continuamente durante un intervalo de tiempo, la posibilidad de compartir los datos al tiempo que se mantiene un cierto grado de control local. Mejor rendimiento cuando una base de datos grande es distribuida en múltiples sitios, ya que hay bases de datos más pequeñas en cada uno de éstos, y, en consecuencia, las consultas locales y las transacciones que tienen acceso a datos a un sólo sitio tienen un mejor rendimiento porque las bases de datos son más pequeñas, además, cada sitio tiene un mejor número de transacciones en ejecución, que si todas las transacciones se enviaran a una sola base de datos centralizada. Desventajas Como en cualquier sistema informático, el margen de error siempre se presenta, y las bases de datos no son la excepción, la principal desventaja que tienen se refiere al control y al manejo de los datos, porque éstos residen en muchos nodos diferentes y se pueden consultar por nodos diversos de la red; la probabilidad de violaciones de seguridad es creciente si no se tiene en cuenta la seguridad, que es un punto primordial para resguardar la información de manera fiable. Las fallas no predecibles, tanto de componentes de hardware como de software, son complejas, ya que tratando de evitar estas fallas la integridad de la información no tendrá problemas. La integridad se refiere a la consistencia, validez y exactitud de la información. Algunas otras desventajas son que los datos pueden estar replicados, así como también el control de concurrencia y los mecanismos de recuperación que son mucho más complejos que en un sistema Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 26 Bases de datos Programa desarrollado centralizado, y la distribución produce un aumento en la complejidad del diseño y en la implementación del sistema. Actividad 3. Generar el concepto propio de Base de datos Con el propósito de reflexionar sobre el tema central de la asignatura, debes construir un concepto propio de Bases de datos, tomando en cuenta los temas abordados con anterioridad, las lecturas externas (investigación) y los comentarios de tus compañeros, para participar en el foro aportando tu concepto. En vista de lo anterior, realiza lo que se te indica: 1 2 3 Investiga la definición de Base de datos de algún autor. Tomando en cuenta lo investigado, construye tu propio concepto de bases de datos. Ingresa al foro: Generar el concepto propio de Base de datos y realiza lo que se te pide. 1.2. Tipos de Bases de datos El procesamiento de datos ha impulsado al crecimiento de las computadoras, como ocurrió cuando éstas tuvieron muy fuerte auge en las computadoras comerciales, de hecho la automatización de las tareas de procesamiento de datos precede a las computadoras. Las tarjetas perforadas, inventadas por Hollerith, se usaron en los principios del siglo XX para registrar los datos del censo de los EE.UU, se utilizaron sistemas mecánicos para procesar las tarjetas y para tabular los resultados. Las tarjetas perforadas se usaron ampliamente como medio para introducir datos de las computadoras posteriormente. La evolución de los sistemas de bases de datos inició de la mano con la evolución de los soportes de almacenamiento de información. En un inicio alrededor de los años 50 se desarrollaron las cintas magnéticas, lo que fue dejando detrás a las tarjetas perforadas. Con el surgimiento de los discos fijos el manejo de datos cambió de manera radical, ya que éstos permitían el acceso directo a los datos, sin importar su ubicación u orden. Este cambio permitió el desarrollo de bases de datos en red y jerárquicas, con lo que las estructuras de datos, además de poder construir y manipular directamente estas estructuras. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 27 Bases de datos Programa desarrollado Después surgió el modelo no relacional y el de formas procedimentales de consulta, que tenía como ventaja la simplicidad de desarrollo y la posibilidad de ocultar los detalles de implementación al programador. A pesar de que este modelo llamó la atención de muchos programadores no se utilizaba en la práctica, porque su rendimiento no fue tan alto como las bases de datos de red y jerárquicas existentes. Esto cambio cuando IBM desarrolló el prototipo System R, con lo que se desarrolló el primer producto comercial de construcción de bases de datos relacionales: SQL/DS. Estos sistemas de bases de datos rápidamente sustituyeron las bases de datos jerárquicas y de red, que eran de bajo nivel, mientras que las relacionales las operaciones que eran de ese nivel se realizaban automáticamente, de modo que el programador no se tenía que concentrar tan arduamente en el nivel lógico. Estos modelos de bases de datos se han convertido en el modelo dominante, pero más importante que eso, han sido el punto de partida para apuntalar la investigación que generó el desarrollo de bases de datos paralelas y distribuidas así como los primeros proyectos de bases de datos orientadas a objetos. Mientras que en la década de los ochenta fueron las aplicaciones de transacciones, en las que se hacen actualizaciones constantemente, pero gracias al desarrollo del SQL se comenzaron a utilizar para la toma de decisiones, que se basan más en la consulta, lo que a su vez llevó a un importante crecimiento en las herramientas para analizar grandes cantidades de datos. El que quizá se convirtió en el acontecimiento clave para el desarrollo del uso de bases de datos fue el crecimiento del Worl Wide Web, lo que llevó su implementación a un público más extenso con el desarrollo de interfaces basadas en red. Lo anterior da cuenta de cómo han aparecido los diferentes tipos de bases de datos. Ahora bien, antes de continuar con el siguiente tema, es conveniente centrar nuestra atención en algunas de las características de los tipos de bases de datos más conocidos: El modelo jerárquico es un tipo de Sistema Gestor que organiza la información en forma de árbol genealógico, en el que un nodo puede tener a su vez varios nodos que deriven de él. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 28 Bases de datos Programa desarrollado El funcionamiento del modelo relacional, parte de lo que su nombre indica: relaciones. Estas pueden ser consideradas en forma lógica, y genera conjuntos de datos llamados registros. De forma clara se pueden explicar cómo una tabla compuesta por registros y campos. 1.2.1. Base de datos de árbol (jerárquica) Una Base de datos jerárquica se compone de un conjunto ordenado de árboles, dicho de manera más precisa, un conjunto ordenado formado por múltiples ocurrencias de un sólo tipo de árbol. Para comprender mejor esto, se analizan primero los tipos y después se tratarán las ocurrencias. Un tipo de árbol consiste en un sólo tipo de registro ―raíz‖, junto con un conjunto ordenado de cero o más tipos de subárbol dependientes (de nivel más bajo). Un tipo de subárbol a su vez consiste en un sólo tipo de registro de la raíz -tipo del subárbol- junto con un conjunto ordenado de cero a más tipos de subárboles dependientes de nivel más bajo, y así sucesivamente. Por tanto, el tipo de árbol completo es un arreglo jerárquico de tipo de registro, además los tipos de registro están formados por tipos de campo. Por ejemplo, consideremos la base de datos académica de la figura 1.4, la cual contiene información acerca del sistema educacional interno de una compañía industrial grande. La compañía en cuestión mantiene un departamento educacional, cuya función es impartir varios cursos de adiestramiento para los empleados de la compañía; cada curso se ofrece en diferentes lugares dentro de la organización, y la base de datos contiene detalles tanto de los ofrecimientos ya impartidos, como de los programados para impartirse en el futuro. La base de datos contiene la siguiente información: Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 29 Bases de datos Programa desarrollado Para cada curso: número de curso, título de curso, detalles de todos los cursos que sean requisitos inmediatos y detalles de todos los ofrecimientos. Para cada curso que sea requisito de un curso dado: número de curso de ese requisito. Para cada ofrecimiento de un curso dado: número de ofrecimiento, fecha, lugar, detalles de todos los profesores y detalles de todos los estudiantes. Para cada profesor de un ofrecimiento dado: número de empleado y nombre. Para cada estudiante de un ofrecimiento dado: número de empleado, nombre y calificación. El tipo de árbol para la base de datos académica tiene CURSO como su tipo de registro de raíz y posee dos tipos de subárbol, cuyas raíces son los tipos de REQ y OFRECIMIENTO, respectivamente (y adviértase que este conjunto de dos tipos de subárbol está ordenado; es decir, el tipo de subárbol REQ precede al tipo de subárbol OFRECIMIENTO, como se muestra en la figura). El tipo de subárbol con raíz en REQ es sólo raíz; en cambio, el tipo de subárbol con raíz en OFRECIMIENTO tiene a su vez dos tipos de subárbol de nivel más bajo, los dos de sólo raíz, cuyas raíces son los tipos de registro PROFESOR Y ESTUDIANTE, respectivamente. Una vez más, los tipos de subárbol están ordenados. Así pues, la base de datos contiene cinco tipos de registro: CURSO, REQ, OFRECIMIENTO, PROFESOR y ESTUDIANTE. CURSO como tipo de registro raíz, y los demás como tipos de registros dependientes. CURSO es el tipo de registro padre de los tipos de registro REQ y OFECIMIENTO, y éstos son tipos de registro hijos de tipo de registro CURSO. De manera similar, OFRECIMIENTO es el tipo de registro padre de PROFESOR y ESTUDIANTE, y éstos son tipos de registro hijos de OFRECIMIENTO. La conexión entre un tipo hijo dado y su tipo padre correspondiente, se llama tipo liga. Cierta información que en una base de datos relacional se representaría con claves ajenas, en una base de datos jerárquica se presenta mediante ligas padre-hijo. En la base de datos académica, por ejemplo, la conexión entre los ofrecimientos y los cursos está representada no por un campo NumCurso en el registro OFRECIMIENTO, sino por la liga CURSO-OFRECIMEINTO. Una vez tratada la cuestión de los tipos, a continuación se revisan las ocurrencias. La terminología raíz/padre/hijo, que se señaló anteriormente en los tipos, se refleja también en las ocurrencias. De esta manera, cada ocurrencia de árbol consiste en una sola ocurrencia de registro raíz, junto con un conjunto ordenado de cero o más ocurrencias de cada uno de los tipos de subárbol que dependen en forma inmediata del tipo de registro raíz. Cada una de esas ocurrencias de subárbol a su vez consiste también de una sola ocurrencia de registro -la raíz de la ocurrencia de subárbol- junto con un conjunto ordenado de cero o más ocurrencias de cada uno de los tipos de subárbol que dependen en forma inmediata de este tipo de registro raíz, y así sucesivamente. Dicho de otro modo, para cualquier ocurrencia de cualquier tipo de registro padre, existen n ocurrencias de cada uno de sus tipos de registro hijos (donde n es mayor o igual a cero). En la figura 1.5 se muestra un sólo árbol de la base de datos académica de la figura 1.4 en términos más precisos, desde luego, una sola ocurrencia de árbol. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 30 Bases de datos Programa desarrollado La explicación del árbol de la figura 1.5 es la siguiente; por definición, ese árbol contiene una sola ocurrencia de CURSO (la raíz del árbol). Ese CURSO tiene dos requisitos subordinados y tres ofrecimientos subordinados (en términos más precisos, esa ocurrencia de CURSO tiene un conjunto ordenado de dos ocurrencias de REQ subordinadas y un conjunto ordenado de tres ocurrencias de OFRECIMIENTO subordinadas). Se dice que CURSO es una ocurrencia padre, con dos hijos REQ y tres hijos OFRECIMIENTO, es decir, ocurrencias hijas. De manera similar, el primer ofrecimiento también es un padre con un hijo PROFESOR y varios hijos ESTUDIANTE (sólo se muestran tres). Los otros dos ofrecimientos no tienen hijos PROFESOR ni ESTUDIANTE en este momento, además, cada (ocurrencia) padre se considera como el padre en tantas ligas (es decir, ocurrencia de liga) como hijos tenga ese padre, es decir, el registro CURSO. Por ejemplo, es el padre en dos ocurrencias de la liga CURSO – REQ, y el padre en tres ocurrencias de la liga CURSO-OFRECIMIENTO. Por otro lado, cada (ocurrencia) hija es el hijo en una y sólo una (ocurrencia de) liga. Además de lo expuesto anteriormente, hay un vocablo que se aplica a las ocurrencias y no a los tipos: el término ―gemelo‖. Se dice que todas las ocurrencias de un tipo hijo dado que comparten la misma ocurrencia padre son gemelas. Así, por ejemplo, los tres ofrecimientos de la figura 1.5 son gemelos (aunque haya tres). Es preciso mencionar que los requisitos en esa figura no son gemelos de esos ofrecimientos, porque aunque tienen el mismo padre, son de un tipo diferente. A lo largo del subtema se ha hecho mención frecuentemente del concepto de ordenamiento, de hecho la noción de ordenamiento es fundamental en la estructura de datos jerárquica. Considerando algún tipo de subárbol T, cuyo registro raíz es R y cuyos tipos de subárbol son S1, S2…, Sn (en ese orden). Sea t una ocurrencia de T, cuya raíz es r (una ocurrencia de R) y cuyos subárboles son s1, s2,… sn (ocurrencias de Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 31 Bases de datos Programa desarrollado S1, S2,… Sn, respectivamente). Definimos entonces de manera recursiva la secuencia jerárquica de t como la secuencia que se obtiene tomando primero el registro r, seguido de todos los registros de s1 en secuencia jerárquica, después de todos los registros de s2 en secuencia jerárquica, seguidos de todos los registros de sn en secuencia jerárquica Esto se da en orden de arriba hacia abajo y de izquierda a derecha, llamado también ―ordenamiento de profundidad‖. Cada uno de los árboles en la base de datos se puede considerar como un subárbol de algún registro raíz ―del sistema‖ hipotético, en consecuencia toda la base de datos se puede considerar como un sólo árbol. Por tanto, la noción de secuencia jerárquica antes definida se aplica a toda la base de datos así como a cada subárbol individual, es decir, el concepto de secuencia jerárquica define un ordenamiento total para el registro de la base de datos, y debe considerarse a las bases de datos almacenadas (lógicamente) de acuerdo con ese ordenamiento. Manipulación de los datos en el modelo jerárquico Un lenguaje para manipulación de datos con estructura jerárquica se compone de un conjunto de operadores para procesar datos representados en forma de árboles. Como ejemplos de tales operadores podemos mencionar los siguientes: Un operador para localizar un árbol específico en la base de datos; por ejemplo, un operador para localizar el árbol del curso M23 (ver figura 2). Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 32 Bases de datos Programa desarrollado Un operador para pasar uno de estos árboles al siguiente; por ejemplo, un operador para pasar del árbol correspondiente al curso M23 al árbol siguiente en la secuencia jerárquica de base de datos. Operadores para pasar de un registro a otro dentro de estos árboles, desplazándose hacia arriba o hacia abajo por los diversos trayectos jerárquicos; por ejemplo, un operador para pasar de registro Curso correspondiente al curso M23 al primer registro de Ofrecimiento de ese curso. Otros ejemplos de operadores son: 1. Operadores para pasar de un registro a otro de acuerdo con la secuencia jerárquica de la base de datos; por ejemplo, un operador para pasar de un registro Profesor de un Ofrecimiento determinado a un registro de Estudiante correspondiente a ese Ofrecimiento o a otro Ofrecimiento Subsecuente. 2. Un operador para insertar un registro nuevo en una posición especificada dentro de uno de esos árboles; por ejemplo, un operador para inserta un nuevo Ofrecimiento en el árbol del curso M23. 3. Un operador para eliminar un registro especificado; por ejemplo, un operador para eliminar un cierto Ofrecimiento del árbol del curso M23. Como se ha visto en los ejemplos de la figura 1 y 2, tales operadores trabajan por lo regular a nivel de registros. Es verdad que ciertos sistemas manejan también operadores a nivel de conjuntos, pero tales operadores quedan fuera del alcance ―modelo jerárquico‖ en la acepción usual del término. 1.2.2. Base de datos de red Las bases de datos de red pueden considerarse como una forma extendida del modelo jerárquico definido en el subtema anterior. La distinción principal entre las dos es la siguiente: en una estructura jerárquica, un registro hijo tiene un sólo padre. Mientras que en una estructura de red, un registro hijo puede tener cualquier número de padres. Una base de datos de red se compone de dos conjuntos, un conjunto de registros y un conjunto de ligas, en términos más precisos, un conjunto de ocurrencias múltiples de cada uno de varios tipos de registros junto con un conjunto de ocurrencias múltiples de uno de varios tipos de ligas. Cada tipo de liga implica dos tipos de registro, un tipo de registro padre y un tipo de registro hijo. Cada ocurrencia de un tipo de liga dado consiste en una sola ocurrencia del tipo de registro padre, junto con un conjunto ordenado de múltiples ocurrencias del tipo de registro hijo. Dado un tipo específico de liga (L) con tipo de registro padre (P) y tipo de registro hijo (H): 1. Cada ocurrencia de P es el padre en una y sólo una ocurrencia de L; 2. Cada ocurrencia de H es hijo en cuanto más una ocurrencia de L; 3. Además, por supuesto, los tipos de registro están formados por tipos de campo. Nota: De ahora en adelante dejaremos a un lado los calificadores ―tipo‖ y ―ocurrencia‖, cuando no provoque confusión hacerlo. En la figura que se muestra debajo, puedes observar la forma como podría representarse la base de datos de proveedores y partes en forma de red. La Base de datos contiene tres tipos de registro: S, P y SP. Es Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 33 Bases de datos Programa desarrollado decir que S y P son idénticos a sus contrapartes relacionales; SP, en cambio, contiene sólo un cambio de cantidad (CANT). En vez de dos claves ajenas SP, se tienen dos tipos de ligas S-SP y P-SP. a) Cada ocurrencia de S-SP está formada por una sola ocurrencia de S, junto con una ocurrencia de SP por cada envío del proveedor representado por esa ocurrencia de S. b) Cada ocurrencia de P-SP está formada por una sola ocurrencia de P, junto con una ocurrencia de SP por cada envío de la parte representada por esa ocurrencia de P. La base de datos de proveedores y partes: versión de red (estructura de los datos) Manipulación de datos de red Un lenguaje de manipulación de datos de red consiste en un conjunto de operadores para procesar datos representados en forma de registros y ligas. Como ejemplos de tales operadores podemos mencionar los siguientes: Un operador para localizar un registro específico, dado un valor de un campo de ese registro; por ejemplo, un operador para localizar el registro S del proveedor S1. Un operador para pasar del padre a su primer hijo en alguna liga; por ejemplo, un operador para pasar del registro S del proveedor S1 al registro SP del proveedor S1 y la parte P1 (a través de la liga S-SP). Un operador para pasar de un hijo al siguiente en alguna liga; por ejemplo, un operador para pasar del registro SP del proveedor S1 y la parte P1 al registro SP del proveedor S1 y parte P2 (a través de la liga S-SP). Un operador para pasar de un hijo a su padre dentro de alguna liga; por ejemplo, un operador para pasar de registro SP del proveedor S1 y la parte P2 al registro P de la parte P2 (a través de la liga P-SP). Un operador para crear un registro nuevo; por ejemplo, un operador para crear un registro S para un nuevo proveedor. Un operador para destruir un registro ya existente; por ejemplo, un operador para destruir el registro S de un proveedor ya existente. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 34 Bases de datos Programa desarrollado Un operador para conectar un registro hijo ya existente dentro de una liga; por ejemplo, un operador para conectar un registro SP específico dentro de las ligas S-SP y P-SP. Un operador para desconectar un registro hijo ya existente de una liga; por ejemplo, un operador para desconectar un registro SP específico de las ligas S-SP y P-SP. Un operador para desconectar un registro hijo ya existente de una ocurrencia de un tipo de liga dado y reconectarlo dentro de otro; por ejemplo, un operador para desconectar un registro SP específico de la liga S-SP con padre S1 y reconectarlo dentro de la liga S-SP con padre S2. Es importante mencionar que, como lo sugiere el ejemplo, tales operadores trabajan por lo regular a nivel de registros, como en los modelos de lista invertida y jerárquico. 1.2.3. Base de datos relacional Las bases de datos relacionales, que en la actualidad son las más utilizadas, trabajan a través de tablas, que están conformadas de filas y columnas para la realización de sus búsquedas y otras operaciones. Estas tablas se encuentran relacionadas entre sí, de ahí el nombre de relacional. Las tablas están conformadas por campos, que son las características de las tablas; dominios, que son los valores posibles que puede contener un campo; y un conjunto de dominios relacionados entre sí, en términos de bases de datos se les conoce como tuplas. Cada tabla está compuesta de llaves primarias (PK, por sus siglas en inglés: Primary Key) y llaves foráneas (FK, por sus siglas en inglés: Foreign Key) que serán quienes hagan la relación entre diferentes tablas de información. Las llaves primarias son campos únicos que identifican a la información como única e irrepetible; que no permiten duplicidad de información. Mientras que las llaves foráneas, también llamadas llaves externas, son campos que hacen la relación entre las tablas existentes en la base de datos, estas llaves deben de existir primero en otras tablas como llaves primarias. Para tener una definición más clara, el autor Javier Quiroz comenta que la estructura del modelo relacional está fundamentada por la relación, es decir, una tabla bidimensional constituida por filas (tuplas) y columnas (atributos). Sus relaciones se presentan en las tablas que están formando parte de la base de datos. Todas y cada una de las instancias de la entidad encontrarán sitio en una tupla de la relación, mientras que los atributos de la relación representan las propiedades de la entidad en las columnas de la tabla. Por ejemplo, si en la base de datos se tienen que representar personas, podrá definirse una relación llamada Personas, cuyos atributos describen las características de las personas y cada tupla de la relación Personas representará una persona concreta, esto es, la relación. Otra definición dice que una base de datos relacional es un repositorio compartido de datos. Para hacer disponible los datos de una base de datos relacional a los usuarios, hay que considerar varios aspectos: 1. La forma en la cual el usuario solicita los datos. ¿Cuáles son los diferentes lenguajes de consulta que utilizan? SQL es el lenguaje de consulta más usado, así como QBE y Datalog, que ofrecen enfoques alternativos a la consulta de datos relacionales. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 35 Bases de datos Programa desarrollado 2. La integridad de los datos y la seguridad. Las bases de datos necesitan proteger los datos del daño provocado por los usuarios, ya sean intencionados o no. El componente de mantenimiento de la integridad de una base de datos asegura que las actualizaciones no violan las restricciones de integridad que hayan especificado sobre los datos. El componente de seguridad de una base de datos incluye la autenticación de usuarios y el control de acceso para restringir las posibles acciones de cada usuario. Los aspectos de integridad y seguridad se presentan independientemente del modelo de datos, pero se estudian en el contexto de modelo de datos relacional para ejemplificarlos. Las restricciones de integridad forman la base del diseño de base de datos relacionales. 3. El diseño de base de datos relacionales. El diseño del esquema relacional es el primer paso en la construcción de aplicaciones de base de datos. Este diseño de esquemas es de los principios que se pueden usar para distinguir los buenos diseños de bases de datos que se formalizan mediante varias formas normales que ofrecen diferentes compromisos entre la posibilidad de inconsistencias y la eficiencia de ciertas consultas. Estructura básica de las bases de datos relacionales Como ya se explicó estas consisten en relaciones, y cada una de ellas tiene un nombre único. Cada relación permite usar valores nulos, que indican que el valor puede ser inexistente o nulo. En estas bases cada fila representa la relación de un conjunto de valores. Cada tabla es un conjunto de dichas relaciones, por lo que existe correspondencia entre el concepto de tabla y de relación. Su estructura la ejemplificamos en la siguiente figura. Actividad 4. Tabla comparativa de los tipos de Bases de datos Ya visto el tema de los tipos de bases de datos, debes generar una tabla comparativa con los nombres de los tipos de bases de datos y las funciones, usos, ventajas y desventajas de cada uno de ellos, con el fin de Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 36 Bases de datos Programa desarrollado definir cuál es el mejor a utilizar en el caso propio y compartir tu información en la base de datos. En vista de ello, realiza lo siguiente: 1. 2. Con base en lo estudiado, realiza una tabla comparativa teniendo en cuenta las funciones, usos, ventajas y desventajas de los diferentes tipos de bases de datos. Guarda la actividad con el nombre BDD_U1_A4_XXYZ y comparte tu documento con el grupo y Facilitador(a) a través de la Base de datos. Ejemplo: Tipo de Base de datos Funciones Usos Ventajas Desventajas Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 37 Bases de datos Programa desarrollado 1.2.4. Sistema Gestor de Base de Datos (SGBD) Al tener los conceptos, características, ventajas y desventajas de los tipos de Bases de datos, es preciso mencionar lo que son los Sistemas Gestores de Bases de Datos (SGBD o DBMS, por sus siglas en inglés: Data Base Management System). Un Sistema Gestor de Base de Datos es un software específico dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Su objetivo principal es manejar de manera ordenada y clara un conjunto de datos que se convertirán en información importante para una organización. En otras palabras, un SGBD es un software que sirve para crear, programar, administrar y controlar la información de una base de datos, asegurando la integridad, seguridad y confiabilidad de la información. Existen dos tipos de Sistemas Gestores de Bases de Datos: libres y comerciales. Los más utilizados son los libres y los comerciales Sistemas Gestores de Bases de Datos libres: PostgreSQL. Es un sistema de gestión de base de datos relacional orientada a objetos, publicado bajo la licencia BSD (Berkeley Software Distribution / Distribución de Software Berkeley), que no es más que una licencia de software otorgada para este tipo de sistemas. Es una licencia de software libre, como la GPL (General Public License / Licencia Pública General) pero ésta es más cercana al dominio público. En el caso de BSD, permite el uso del código fuente en software no libre, a diferencia de GLP. MySQL. Es un sistema multiusuario y de código abierto. El uso de MySQL es muy popular en aplicaciones web, y es componente de las plataformas LAMP, MAMP, WAMP, entre otras, y suele combinarse con el popular lenguaje PHP. como sus principales características podemos decir que: está escrito en C y C++; utiliza multi-threaded mediante threads de kernel; pueden usarse fácilmente múltiples CPUs si están disponibles; emplea el lenguaje SQL para consultas a la base de datos; está disponible como freeware bajo licencia GPL; proporciona sistemas de almacenamiento, transaccionales y no transaccionales; trabaja en las plataforma AIX, BSDi, freeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OS/2 Warp, QNX, SGI IRIX, SunOS, SCO OpenServer, Solaris, SCO UnixWare, Tru64 y Microsoft Windows (95, 98, ME, NT, 2000, XP y Vista); utiliza tablas en disco B-tree muy rápidas con compresión de índice y es relativamente sencillo añadir otro sistema de almacenamiento, esto es útil si se desea añadir una interfaz SQL para una Base de datos propia. Oracle. Es una herrmienta imporante y con muchas capcidades del tipo cliente/servidor para gestión de base de datos, aunque de precio muy alto. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 38 Bases de datos Programa desarrollado Actividad 5. Reporte de investigación. Aplicación de los Sistemas Gestores de Bases de Datos por medio de un análisis de características Para identificar las aplicaciones de los Sistemas Gestores de Bases de Datos, debesanalizar las características de ellos, tomando en cuenta sus ventajas y desventajas, y posteriormente enviarlo a la sección de tareas. En vista de lo anterior, realiza lo que se te indica a continuación: 1. En un documento de Word, explica con tus propias palaras qué es un Sistema Gestor de Base de Datos. Investiga las características de los sistemas gestores libres y comerciales. Realiza una comparación de ambos gestores, tomando en cuenta sus ventajas y desventajas. Con base en la comparación, escribe las conclusiones sobre la aplicación que tiene uno y otro Sistema Gestor de Base de Datos. Guarda tu actividad con el nombre BDD_U1_A5_XXYZ. Envía la actividad a tu facilitador(a) mediante la sección de Tareas. 2. 3. 4. 5. 6. 1.2.5. Estructura de un Sistema Gestor de Base de Datos En apartados anteriores se abordó lo que eran los Sistemas Gestores de Bases de Datos, también conocidos como Sistemas de Gestión de Bases de Datos, por lo que en esta sección se abarcará la estructura y el funcionamiento de un SGBD. Ahora bien, la estructura de un SGBD está conformada por: Procesador de consultas: Es su elemento principal de un SGBD, transforma las consultas en instrucciones en lenguaje de bajo nivel, que se envían al gestor. Gestor: Es la interfaz entre los datos de bajo nivel almacenados en la base de datos, acepta consultas y examina los esquemas externo y conceptual, posteriormente determina qué registros se requieren para satisfacer la petición. Gestor de ficheros: Se encarga de manejar y controlar los ficheros en almacenamiento en la base de datos. Lenguaje de Manipulación de Datos (MDL): trabaja con el procesador de consultas para el código apropiado. La estructura de un SGBD está conformada por: Lenguaje de Definición de Datos (LDD o DDL, por sus siglas en inglés Data Definition Language): Convierte las sentencias en un conjunto de tablas que contienen datos almacenados en el diccionario de datos. Diccionario de datos: Almacena la información de la base de datos. Gestor del diccionario: Controla los accesos y la información del Diccionario de datos. Control de autorización: Se encarga de revisar las credenciales de los usuarios para accesar a determinada información. Optimizador de consultas: Establece la estrategia para el procesamiento de las transacciones. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 39 Bases de datos Programa desarrollado Gestor de transacciones: Es la parte encargada de realizar las transacciones. Planificador: Organiza las transacciones que llegan a la base de datos para su realización. Gestor de recuperación: Cuida la integridad de la base de datos en caso del algún fallo. Gestor de buffers: Es el enlace entre la memoria principal y la memoria de almacenamiento. Evidencia de aprendizaje. Reporte. Integración general de elementos específicos de las Bases de datos Como parte de la evaluación de esta unidad, tienes que llevar a cabo una actividad cuyo propósito es comenzar el proceso para construir el prototipo de una base de datos documental, que se debe presentar completo al terminar la asignatura, mediante la elaboración de tablas. En vista de lo anterior, realiza lo que se te indica: 1. En un documento de Excel, escribe tu propio concepto de base de datos dentro de la Hoja 1, misma que deberás llamar: ―DEFIICION_BD‖. Dentro del mismo libro, en una nueva hoja llamada BASES_ALUMNOS, crea una tabla llamada ALUMNOS que contenga los siguientes campos: Id_Nombre, Nombre, Apellido, Edad, Sexo y Teléfono, con cinco registros. 2. Asígnale a la tabla cada elemento que la debe componer. Por medio de flechas, marca o señala dónde se ubicó el nombre de la tabla, los campos, los registros y la clave principal. Describe qué tipo de base de datos es, sus características y funciones. 3. En otra hoja, llamada Ejemplo_BD, Menciona un ejemplo de este tipo de base de datos en la vida cotidiana. 4. Guarda la evidencia con el nombre BDD_U1_EA_XXYZ y envía tu archivo al (a la) Facilitador(a) a través del Portafolio de evidencias. Al terminar el proceso anterior, ingresa al foro Preguntas de Autorreflexión y lee los cuestionamientos que formuló tu Facilitador(a), posteriormente, sal del foro, ingresa a la sección Autorreflexiones y, dentro de ésta, envía tu autorreflexión con el nombre BDD_U1_ATR_XXYZ. Consideraciones específicas de la unidad Haber leído e investigado sobre los conceptos vistos en esta unidad, permitió elaborar un concepto propio de base de datos, cuya finalidad fue involucrar al estudiante en las lecturas relacionadas con la materia del curso en cuestión, y que con esto se pudiera identificar qué es una base de datos, así como reconocer las diferencias de los diversos tipos que existen. Así mismo, se identificaron los diferentes Sistemas Gestores de Bases de Datos y sus características para saber las aplicaciones de cada uno de ellos. Finalmente, se comenzó con el proceso para construir el prototipo de una Base de datos documental. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 40 Bases de datos Programa desarrollado Se sugiere la retroalimentación y enriquecimiento tomando en cuenta la información que se encuentra en los materiales de apoyo, de igual forma, se recuerda que las actividades correspondientes a esta unidad inicial son la base sobre la cual se sustenta el resto de las unidades de la asignatura. Cierre de la unidad Has concluido la primera unidad del curso. A lo largo de ésta se recordaron conceptos básicos informáticos, posteriormente te involucraste en la terminología específica de las bases de datos, cuyo propósito fue dar un panorama para identificar una base de datos en tu entorno social, personal y laboral, y poder elaborar tu propio concepto, reconocer los tipos de bases de datos y distinguir sus particularidades. De la misma manera, se identificaron los Sistemas Gestores de Bases de Datos y sus características. Es aconsejable que revises nuevamente la unidad en caso de que los temas que se acaban de mencionar no te sean familiares o no los recuerdes, de no ser este tu caso, ya estás preparado(a) para seguir con la unidad dos, en donde continuarás con la construcción del prototipo de una base de datos documental, al elegir un caso de estudio, llevar a cabo un análisis y un estudio de factibilidad, identificar los requerimientos del usuario, administrar tiempos, así como revisar modelados de abstracción de información. Todo ello con el fin de obtener el prototipo final al terminar la tercera y última unidad del curso de Bases de datos. Fuentes de consulta Álvarez, S., & Bravo, S. (2000). Informática Automática. Recuperado el 2 de Mayo de 2011, de Universidad de Salamanca: http://ocw.usal.es/ensenanzas-tecnicas/aplicaciones-informaticas-parahumanidades/contenidos/Temas/Tema1-Fundamentos_de_Informatica_-_2ppt.pdf Celma, M., Casamayor, J.C. & Mota, L. (2003). Bases de datos relacionales. Madrid: PearsonPrentice Hall. Pérez L, C. (2008). Oracle 10g: administración y análisis de bases de datos. Segunda edición. México: Alfaomega. Quiroz, J. (2003). ―El modelo relacional de bases de datos‖ en Boletín de Política Informática Núm. 6 (Versión electrónica). Recuperado el 26 de enero de 2011, de http://www.inegi.org.mx/inegi/contenidos/espanol/prensa/contenidos/articulos/tecnologia/relacional.p df Real Academia Española (2001). Diccionario de la lengua española. Vigésima segunda edición (Versión digital). Recuperado el 19 de enero de 2011, de http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=inform%E1tica Silberschatz, A. (2006). Fundamentos de Bases de Datos. España: McGraw-Hill. MasterMagazine (2005). Definición de ASCII. Recuperado el 21 de enero de 2011, de http://www.mastermagazine.info/termino/3926.php Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 41 Bases de datos Programa desarrollado UNIDAD 2. Análisis Propósito de la unidad Continuarás con el proceso para la elaboración del prototipo de Base de datos documental al elegir un caso de estudio3, llevar a cabo un análisis y un estudio de factibilidad, identificar los requerimientos del usuario, administrar tiempos, así como revisar las técnicas de modelado, que son: modelado de objetos, modelado entidad relación, normalización y modelado relacional; lo que permitirá documentar el prototipo. Competencia específica Analizar problemas de gestión de información para elegir la alternativa que responda a los requerimientos, de acuerdo al resultado de los datos obtenidos por medio del estudio de factibilidad (financiero, operacional y económico). 3 Puede ser elegido por el estudiante, o bien, asignado por el facilitador. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 42 Bases de datos Programa desarrollado Presentación de la unidad Esta segunda unidad del curso te permitirá profundizar en los conceptos adquiridos en la unidad anterior con mayor detalle y practicidad, ya que abordarás lo relacionado con el análisis para la creación del prototipo, haciendo uso de la terminología básica de la asignatura. Antes de entrar de lleno a la elaboración del análisis como parte del proceso para la creación del prototipo, es necesario que conozcas algunas cuestiones que preceden a todas las demás actividades del análisis, como los lineamientos metodológicos de recopilación de información, el estudio de sistemas y el análisis, lo que te permitirá tener una idea más clara sobre lo que se pretende que logres en esta unidad. A lo largo de toda la unidad revisarás los conceptos acerca de qué es la estructura de las entradas, los procesos y las salidas, las herramientas de recopilación de información, el estudio de factibilidad operacional, financiero y económico, así como la forma de realizar un reporte de este estudio. También, harás un análisis sobre los requerimientos de hardware y software, para finalmente abarcar las técnicas de modelado de datos, donde se hablará de: modelado de objetos, modelo entidad relación, normalización y modelo relacional, siendo este último uno de los más utilizados en la actualidad empresarial. Todo lo que verás a través de la unidad deberás aplicarlo en un caso de estudio, con el fin de seleccionar el Sistema Gestor de Base de Datos más adecuado de acuerdo a sus características y contribuir así en la solución del caso. 2.1. Lineamientos metodológicos de recopilación de requerimientos En este apartado se revisa de manera general el procedimiento para realizar un adecuado análisis, partiendo desde la forma en la cual se logra recopilar la información necesaria, con el fin de profundizar en los siguientes subtemas. Ahora bien, antes de realizar un protocolo de base de datos se debe anticipar todo un flujo de información y motivos, que hacen que se requiera un cambio de operación de cualquier empresa, esta acumulación de información se denomina ―estudio de sistemas‖, y es la que precede a todas las demás actividades del análisis. Las bases de datos hacen mucho más que resolver problemas, con frecuencia se solicita ayuda para planificar la expresión de la organización, es entonces cuando se valoran de manera cuidadosa las necesidades futuras de la empresa y los cambios que deben considerarse para satisfacer esas necesidades. El tiempo, costo y beneficio son factores determinantes para desarrollar una opinión. Al final, la administración es quien decide cuál opinión aceptar. Una vez tomada la decisión se hace un plan para implantar la recomendación, el plan incluye saber con claridad cuáles son los requerimientos del usuario y, en este caso, se puede hacer por medio de un análisis que permita identificar las entradas, los procesos y las salidas, llevando al especialista a elegir la herramienta de recopilación de información que mejor se adapte al caso en cuestión, algunos ejemplos son las encuestas, entrevistas y cuestionarios. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 43 Bases de datos Programa desarrollado Una vez aportados los criterios a utilizar, se continúa con el estudio de factibilidad, recomendado para dar un reporte informativo y detallado sobre los requerimientos del usuario. Cabe mencionar que es de suma importancia el reconocimiento de los requerimientos de hardware y software, los cuales permiten saber qué base de datos hacer y qué tipo de gestor utilizar, ya que cada uno de éstos tiene sus propias características. De esta manera, la documentación que se va elaborando lleva al desarrollo de las técnicas de modelado, las cuales se abordan en el último apartado de la unidad. 2.1.1. Análisis. Concepto ¿Qué es el análisis? Es una fase del diseño de sistemas, que podemos definir como un conjunto de procedimientos que examinan hechos, principios y reglas clasificadas de manera ordenada y lógica; muestra resultados de solución a los requerimientos de información. Este proceso de análisis contiene varias herramientas a utilizar, según sea el caso a resolver, entre las que se encuentra el estudio de factibilidad (operacional, financiera y económica). El estudio de factibilidad es una de las primeras etapas del desarrollo del prototipo, deberá incluir los alcances, objetivos y restricciones del requerimiento del sistema. Ahora bien, ¿qué se debe de tomar en cuenta en el análisis? De primera instancia se deben detectar los hechos relevantes relacionados con la actividad de la empresa, la función es reunir información y determinar los requerimientos, para así pasar al análisis y el diseño, con la responsabilidad de que sean personas que saben programar, ya que sus conocimientos les permiten formular especificaciones mejores y más completas para las nuevas aplicaciones. También es importante determinar a los usuarios finales; estos se agrupan en cuatro categorías: 1. Usuarios primarios. Son los que interactúan con el sistema (base de datos). Ellos alimentan la base con datos de entrada, y reciben salidas por medio de una terminal. 2. Usuarios indirectos. Son aquéllos que se benefician de los resultados o reportes generados por estos sistemas, pero que no interactúan de manera directa con el hardware o software. Para este tipo de usuarios se deben incorporar consideraciones adicionales, tanto para la interacción, como para proteger de cualquier riesgo a la organización que proporciona el servicio. 3. Usuarios gerentes. Son los que tienen la responsabilidad administrativa en los sistemas de aplicación, este tipo de usuario es el que debe participar en los esfuerzos de desarrollo de la base de datos. 4. Usuarios directivos. Son aquellos que tienen mayor responsabilidad en los sistemas de información. Los cuatro tipos de usuarios son importantes, ya que cada uno posee información esencial sobre las funciones de la organización y hacia dónde se dirige esta. Teniendo en cuenta los factores antes mencionados, a continuación se definirán los siguientes elementos que conforman los lineamientos metodológicos. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 44 Bases de datos Programa desarrollado 2.1.2. Estructura de las entradas, procesos y salidas Para realizar la estructura de las entradas, procesos y salidas, se debe tener toda la información significativa de la empresa, la cual se procesará para obtener los diferentes resultados establecidos en el requerimiento de usuario. También se deben tener en cuenta aquellas operaciones matemáticas y contables requeridas para el proceso de la información y generación de salidas. En esta parte es necesario realizar una tabla, en la cual se lleve a cabo un listado de aquellas salidas de información, y verificar si existe algún cálculo a realizar, es importante agregar la(s) fórmula(s) a aplicar. Dentro de la estructura, las entradas se definen como variables constantes, que son la base que permitirá ejecutar las operaciones básicas de las bases de datos, las cuales son: altas, bajas y cambios; en casos más específicos, actualizaciones y modificaciones, convirtiéndose en la estructura de procesos. Al hablar de las entradas de información en las especificaciones de la preparación del ingreso de información para su procesamiento, es elemental resaltar la importancia que tiene su correcta realización, porque de ella depende que los resultados de la información requeridos sean eficientes para los diferentes usuarios, y así tomar decisiones correctas que beneficien a la empresa. El buen diseño de entradas de información permitirá que el(los) usuario(s) encargado(s) de alimentar la base de datos aporte(n) de manera consistente e íntegra la información. Los procesos son el juego que hacen las entradas para poder obtener las salidas correspondientes, dependiendo de los requerimientos. Las salidas de información se refieren al diseño de la presentación de información ya procesada, requerida por el usuario, o los diferentes usuarios, del sistema; estas pueden ser reportes, mensajes, gráficos y estadísticos. Las salidas deben ser diseñadas lo más claramente posible y con gran precisión, para la toma de decisiones. Las salidas de información no solo son en pantalla, también se deben considerar en impresiones, audio y video. En la siguiente figura se muestra un ejemplo de la estructura general de las entradas, procesos y salidas. Elección de caso Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 45 Bases de datos Programa desarrollado Ya teniendo los conceptos básicos y específicos de las bases de datos, así como sus características, ventajas y desventajas, se puede llevar a cabo la elección de un caso, por lo que a continuación se destacan algunas puntualidades que se deben tener en cuenta. Para iniciar con esta elección es preciso saber qué es un caso y como estructurarlo. Pues bien, el caso es una técnica que nos permite visualizar problemas del pasado y presente, permitiendo estudiar la problemática y generar posibles soluciones, es decir, la realización de un prototipo de base de datos. Para la construcción del caso es necesario considerar antecedentes, contexto, consecuencias y solución. Con el fin de realizar una buena estructura para la edificación del caso, el diseñador debe realizar las siguientes preguntas: ¿Qué es lo que sucede? ¿Cuál es el asunto o problema? ¿Quiénes están involucrados? ¿A qué situaciones se enfrentan? ¿Cuáles son los conflictos, intereses y posibilidades en juego? Es importante que al realizar las especificaciones del caso esto se haga de manera coherente, detallando las cosas más sobresalientes, pero sin salirse de contexto. Al tomar en cuenta estos elementos se podrán generar preguntas clave o cruciales para su análisis o estudio. Con base en las consideraciones anteriores, en la siguiente actividad se deberá elegir un caso de estudio. Actividad 1. Elección de caso Una vez identificada la estructura de las entradas, procesos y salidas que conforman inicialmente a cualquier sistema, elegirás un caso para trabajar a lo largo de la unidad. Para ello, realiza la siguiente actividad: 1. Intégrate con tu equipo de trabajo, tu Facilitador(a) se encargará de organizar equipos de tres personas. 2. Ponte de acuerdo con tu equipo para que ingresen a la Wiki, preferentemente al mismo tiempo, y a través de ella, determinen cuáles son los conceptos específicos de mayor trascendencia para esta asignatura. 3. Busquen la definición de dichos conceptos en fuentes especializadas en la materia e incorpórenla, junto con las referencias dentro de la sección designada para su equipo 4. Cada uno de los integrantes del equipo, deberá agregar por lo menos uno de los posibles casos reales en los que los conceptos pueden ser aplicados y elijan el caso más destacado, tomando en cuenta los conceptos relacionados con la elección del caso y los elementos que lo integran. 5. Revisen el trabajo realizado por el resto de los equipos. 2.1.3. Herramientas de estudios de factibilidad (operacional, financiero y económico) Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 46 Bases de datos Programa desarrollado Este apartado tratará sobre la importancia de contar con herramientas que permitan facilitar la recolección de la información, ya que no solamente es necesario conocer el caso para saber las especificaciones de los requerimientos de los usuarios, sino buscar técnicas y herramientas con las que se acceda a la información, y nos permitan recolectarla, y, con ella, determinar qué papel se jugará en este proceso, es decir, identificar los requerimientos operacionales, financieros y económicos, así como de hardware y software; por tal razón, en este tema vamos tomar como base el estudio de factibilidad. El estudio de factibilidad está integrado por tres aspectos: operacional, financiero y económico. Tiene por objetivo verificar si un sistema de automatización de información es operacional, ya que para la implementación de un nuevo sistema de información es importante tener en cuenta que se requerirá de una inversión, y en este sentido el estudio de factibilidad permitirá saber, desde el punto de vista técnico y operacional, si es factible o no realizar dicha inversión, dependiendo de la rentabilidad que tenga para la empresa. El estudio deberá contemplar el costo de investigación o análisis, costo de software, costo de hardware, pago a personal calificado, etc., si no hay factibilidad económica el proyecto no existirá. Para recopilar la información requerida para este estudio, se cuenta con el apoyo de los cuestionarios, entrevistas y encuestas: Los cuestionarios son utilizados con mayor frecuencia, dado que son menos costosos, estos fueron diseñados para realizar cuantificación de información y ahorrar tiempo, ya que permiten a las personas llenar o contestar las preguntas de manera escrita, sin la ayuda ni la intervención directa del investigador. La entrevista es la realización de preguntas de forma directa, de persona a persona (entrevistadorentrevistado), en la cual se obtiene la información a analizar para el requerimiento del caso de manera más específica. La encuesta es una herramienta que recopila información más enfocada a estudios de mercado y de opinión pública, la cual es cuantificada. Para obtener los requerimientos operacionales, financieros y económicos, observemos las siguientes preguntas, como ejemplo de algunas que pueden generarse: Hábleme de la empresa. 1. ¿Cómo describiría a la empresa? 2. ¿Qué hace diferente a esta empresa de otras del mismo giro? 3. Describa el logro de la empresa del cual esté más orgulloso. 4. ¿La empresa cuenta con bases de datos? 5. ¿Cuentan con el poder adquisitivo para el desarrollo de otra base de datos? 6. ¿Cuentan con hardware y software para la operacionalidad? 7. ¿Cuentan con hardware y software para el desarrollo? 8. ¿Considera que tener una nueva base de datos incrementará los ingresos de la compañía? Este tipo de preguntas pueden llevarse a cabo en la entrevista, en el cuestionario y en la encuesta, la elección depende de los diseñadores de la base de datos, por tal razón, se sugiere investigar y realizar algunos ejemplos de estas herramientas para el caso en cuestión. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 47 Bases de datos Programa desarrollado Actividad 2. Elección y elaboración del instrumento de recopilación de información Con base en los temas desarrollados en el subtema anterior, debes definir en equipo el instrumento de recolección de información (cuestionario, entrevista o encuesta) que utilizarás para el caso elegido en la actividad 1, esto con el fin de elaborarlo tomando en cuenta sus propias características. De la información que se obtenga se desprenderá el reporte del estudio que arrojará las necesidades de hardware, software, costo, beneficio y operación. 1. Discute con tu equipo las características de los instrumentos de recopilación de información y elijan aquel que se adecúe más al caso elegido en la actividad anterior. 2. En un documento de Word, escribe de manera individual una breve explicación sobre el instrumento seleccionado y los motivos por los cuales se eligió ese y no otro. 3. Agrega al documento las preguntas que conforman el instrumento. 4. Sube tu actividad a la sección de tareas y espera la retroalimentación de tu Facilitador(a). 2.1.4. Reporte del estudio de factibilidad En este subtema se muestran los pasos a realizar una vez que se ha elaborado el instrumento de recopilación de información. Ahora bien, ya que se tiene el instrumento es necesaria su aplicación, porque la información que de él se obtenga, junto con su análisis, servirá para obtener los resultados de los requerimientos operacionales, financieros y económicos, que en el reporte de estudio de factibilidad se muestran punto por punto. Estos resultados son los más valioso de la investigación, porque determinan si el sistema de información requerido es factible en lo operacional, financiero y económico. Para aclarar lo anterior observemos el siguiente ejemplo: 2.1.5. Requerimientos de hardware y software Para recabar la información con respecto a los requerimientos de hardware y software, es necesario tener dos panoramas: el del usuario de la base de datos y el del programador. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 48 Bases de datos Programa desarrollado En cuanto a los requerimientos de usuario, es importante cuestionar acerca de qué tipo de computadora tiene, así como las características del hardware y software, de manera que el programador tenga la visión de qué tipo de base de datos desarrollará, y qué manejador, dependiendo de sus características. Para toda implementación de sistemas de información es importante definir los requerimientos de software y hardware, por lo que estos se abordarán a continuación. Se entiende como requerimiento de hardware a los equipos de cómputo, servidores, impresoras, etc., considerando las diferentes características establecidas para la implementación del sistema. Mientras que el requerimiento de software se refiere a los programas necesarios para el funcionamiento del sistema de información, como lo son el Sistema Manejador de Base de Datos (SMBD), anti-virus, sistema operativo, etcétera. Ahora bien, para definir los requerimientos de software y hardware es preciso realizar un estudio, el cual se lleva a cabo a través de tablas comparativas de las diferentes alternativas de solución, las cuales contienen los costos, características, ventajas y desventajas del software y hardware, así como los servicios de soporte ofrecidos por parte de los proveedores al realizar la compra de estos productos. Para saber más: Consultar la página electrónica: http://www.alegsa.com.ar/Dic/requerimiento%20de%20hardware.php Actividad 3. Reporte sobre el estudio de factibilidad Como preámbulo a esta actividad, es necesario que cada equipo aplique el instrumento realizado en la Actividad 2. Una vez aplicado el instrumento de recolección de información, deben realizar un análisis de la información conseguida para obtener los requerimientos del usuario en lo operacional, financiero y económico, así como en lo referente al hardware y software, y elaborar un reporte de estudio de factibilidad. Para ello, realicen (en equipo) lo siguiente: 1. En una presentación PowerPoint o en un documento de Word, diseñen un reporte de estudio de factibilidad del caso seleccionado. Para ello, construyan una tabla que contenga los resultados del estudio de factibilidad operacional, financiera y económica, así como sus necesidades en cuanto a hardware y software se refiere. 2. En otra diapositiva, o página, agreguen un cronograma en el que se enlisten las actividades por realizar, asignando los tiempos que se requieren para el desarrollo de cada una de ellas. 3. Guarden su archivo con la siguiente nomenclatura: BDD_U2_A3_XXYZ_E#. Sustituyan las letras XXYZ de la manera habitual (por persona) y el símbolo # por el número del equipo. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 49 Bases de datos Programa desarrollado Compartan su archivo mediante la Base de datos para que los (las) compañeros(as) y el (la) Facilitador(a) puedan consultarlo y externar su punto de vista sobre su trabajo (todos los integrantes del equipo deben enviar el mismo archivo) 2.2. Técnicas de modelado de datos Las técnicas de modelado de datos son las diferentes herramientas que se tienen para la abstracción conceptual de la información de manera gráfica, ayudan a la valoración y visualización de las especificaciones necesarias de información para la solución del caso; tienen un procedimiento lógico a seguir, que es utilizado en la ciencia del modelado. La parte fundamental del análisis es integrar un modelado de sistemas que represente la información necesaria y requerida por el usuario, abstrayendo las cuestiones más importantes y significativas, que se utilizará para la generación de los diferentes modelos, y que permite visualizar el flujo de información. El modelado de datos corresponde a una serie de preguntas específicas importantes para cualquier aplicación de procesamiento de datos: ¿Cuáles son los objetos de datos primarios que van a procesar el sistema? ¿Cuál es la comprensión de cada objeto de datos? ¿Qué atributo describe el objeto? ¿Dónde residen actualmente los objetos? ¿Cuál es la relación entre los objetos y los procesos que lo transforman? Para responder estas preguntas, los métodos de modelado de datos hacen uso del diagrama de entidad relación (DER). El DER, descrito con detalle posteriormente, permite que un ingeniero del software identifique objetos de datos y sus relaciones mediante una notación gráfica. En el contexto del análisis estructurado, el DER define todos los datos que se introducen, se almacenan, se transforman y se producen dentro de una aplicación. A continuación profundizaremos en las principales técnicas de modelado de datos. 2.2.1. Modelado de objetos La técnica de modelado de objetos propone una forma abstracta de pensamiento acerca de problemas a resolver, empleando conceptos del mundo real, y no conceptos técnicos informáticos. Estos modelados son utilizados en los niveles conceptuales y de visión, se caracterizan por proporcionar restricciones de datos explícitamente, se fundan en pensar acerca de problemas a resolver. La esencia del desarrollo orientado a objetos es la identificación de conceptos de objetos del dominio de aplicación; esta aplicación se ha centrado, por lo general, en lenguajes de programación, es una premisa básica para la detección de errores. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 50 Bases de datos Programa desarrollado Dentro del modelado de objetos tenemos varios conceptos básicos que es necesario conocer para entender el tema, por lo que en esta parte se comenzará por definir el término objeto, hasta llegar al concepto de instancia. Objeto (instancia de clase) es algo real, abstracto, acerca del cual se almacenan datos y métodos; por otra parte, cuando se dice orientado a objetos, significa que el software se organiza como una colección de objetos que contiene estructuras de datos y comportamiento. Otro término relevante es el de identidad, los datos están cuantificados en entidades discretas y distinguibles denominadas objetos, y cada uno de estos posee su propia identidad inherente, en otras palabras, los objetos son diferentes, aunque los valores de todos sus atributos, tales como nombre y tamaño, sean idénticos. En este contexto también se tiene el concepto herencia, que se trata de un mecanismo que permite definir nuevas clases a partir de otras ya definidas, y que la clase padre tiene atributos que heredará a las clases hijas. Este término nos lleva al de clase, que es la unidad básica que encapsula toda la información de un objeto, a través de esta se puede modelar el entorno en un estudio (casas, cuentas, muebles, etc.). Atributos son los valores asociados a los objetos de una clase, del cual se describen. Mientras que clasificación es la categorización de objetos con la misma estructura de datos (atributos) y comportamiento (operaciones). Finalmente, instancia es un objeto en el cual están contenidos todos los elementos que conforman un objeto. Para concluir con este tipo de modelado se puede agregar que este provee un uniforme para modelar el sistema desde la captura de requerimientos en la etapa inicial del análisis, hasta su implementación, a través de todo el ciclo de desarrollo de sistemas. Para el modelado de objetos es necesario tomar en cuenta el análisis del negocio, que es el reconocimiento de los elementos claves de este, y la generación de la abstracción de entidades apropiadas u objetos-entidad. Para entender la aplicación de estos términos en la conformación del propósito de este curso, es importante recordar que el análisis es una fase de la creación de sistemas informáticos en el que se identifican los objetos, clases, atributos y entidades a utilizar, esto permitirá realizar el diseño lógico, que es la integración de todas las clases requeridas para la aplicación. 2.2.2. Modelado entidad relación (E-R) El modelado entidad relación por lo general es reconocido sólo por sus siglas (E-R), es un modelado conceptual de datos, considerado de alto nivel, que es utilizado como base en el diseño de bases de datos relacionales; simboliza información real a través de una representación gráfica, que es el dibujo que se hace empleando la terminología de entidades, que podemos definir como cualquier tipo de objeto sobre el cual se desea obtener información, también se le define como sustantivo. Por ejemplo: coches, casas, excursiones, empleados, clientes, empresas, oficios, diseños de productos, conciertos, etcétera. Las entidades se representan gráficamente mediante rectángulos y su nombre aparece en el interior. Un nombre de entidad puede aparecer solo una vez en el esquema conceptual. Existen dos tipos de entidades: Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 51 Bases de datos Programa desarrollado fuertes y débiles. Una entidad débil es una entidad cuya existencia depende de la existencia de otra, y que por lo general carece de atributos. Mientras que una entidad fuerte es aquélla de la cual surgen las entidades débiles. Las entidades se clasifican en: Tangibles (Ejemplo: persona, vehículo, material) Intangibles (Ejemplo: proyecto, materia) Eventuales (Ejemplo: compra, venta) Rol (Ejemplo: cliente, vendedor) Localización (Ejemplo: sucursal, estado, bodega) Toda entidad está conformada de atributos, los cuales son las características que definen e identifican a las entidades (Ejemplo: tenemos a la entidad alumno que tendrá atributos como: nombre, sexo, fecha de nacimiento, CURP, RFC, etc.). Los atributos también son conocidos como características. A continuación se muestra la simbología a utilizar para el desarrollo de los modelados entidad relación (ER). Modelado entidad relación (E-R) Las entidades se encontrarán ligadas entre sí, y se utilizará el término relación, también conocido como verbo, para designar a la conexión que exista entre dos o más entidades. Las relaciones son representadas gráficamente con un rombo, dentro de él se describe la relación que existe entre las entidades. Existen básicamente tres tipos de relaciones. Relaciones 1-1. Las entidades que intervienen en la relación se asocian una a una (Ejemplo: la entidad ALUMNO y la entidad CARRERA. La relación que existe es que el alumno pertenece a una carrera). Relaciones 1-n. Una ocurrencia de una entidad está asociada con muchas (n) de otra (Ejemplo: la entidad ALUMNO y la entidad MATERIAS, entre ellos la relación es que los alumnos cursan muchas materias). Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 52 Bases de datos Programa desarrollado Relaciones n-n. Cada ocurrencia, en cualquiera de las dos entidades de la relación, puede estar asociada con muchas (n) de la otra y viceversa (Ejemplo: la entidad ALUMNO y la entidad PROFESOR, entre ellos la relación es que un alumno tiene muchos profesores y viceversa); a la existencia de relaciones se llama cardinalidad, que describe la dimensión cuantitativa. Se visualiza esta cardinalidad con una entidad de manera jerárquica, como el esquema padre e hijo visto en la base de datos jerárquica. Al realizar el modelado E-R es importante considerar que se debe generar un campo identificador, que tendrá como función evitar la duplicidad de información (Ejemplo: en la entidad ALUMNO, el campo identificador será su matrícula). Con el campo identificador se podrán identificar entidades con el mismo nombre. Por lo expuesto anteriormente, se puede concluir que una entidad es un sustantivo, los atributos son adjetivos y las relaciones son verbos. En la siguiente figura se muestra un ejemplo sencillo de un modelado entidad relación (E-R). Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 53 Bases de datos Programa desarrollado 2.2.3. Normalización La teoría de la normalización tiene como fundamento el concepto de formas normales. Se dice que una relación está en una determinada forma normal si satisface un cierto conjunto de restricciones, por ejemplo, una relación está en primera forma normal (abreviada 1NF) solo si satisface la restricción de que sus dominios simples subyacentes contengan solo valores atómicos. Universo de la normalización en forma gráfica. Se ha definido un gran número de formas normales (ver figura 2.8), sin embargo, Codd definió la primera, segunda y tercera (1NF, 2NF, 3NF); la idea que perseguía Codd con su propuesta era la de mostrar las ventajas de las relaciones en 3FN respecto a las relaciones en forma normal inferior: mínima redundancia y Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 54 Bases de datos Programa desarrollado mínimas anomalías al actualizar la base de datos. Debido a que aún persistían los problemas en las relaciones en 3FN, Codd introdujo en 1974 una definición más restrictiva de la tercera formal normal, que se denominó forma normal de Boyce-Codd (FNBC). Fagin (1977) introduce la cuarta forma normal (4FN), y posteriormente, en 1979, la quinta (5FN), basadas en otro tipo de dependencias distintas de las funcionales: las dependencias multivaluadas y las dependencias de proyección-combinación, respectivamente. Cuando un esquema de relación está en una forma normal, implícitamente también está en las formas normales inferiores a esta, es decir, un esquema de relación en FNBC, está en 3FN, 2FN y 1FN; lo contrario no es cierto, un esquema de relación en 2FN no puede estar en 3FN. Ya que se presentaron algunas generalidades, a continuación se formalizará la definición de las tres primeras formas normales y la de Boyce y Codd, que son las que apoyan en las dependencias funcionales. La primera forma normal (1FN) es una restricción inherente al modelo relacional, por lo que su cumplimiento es obligatorio y afecta al número de valores que pueden tomar los atributos de una relación. Recordemos que para que una tabla pueda ser considerada una relación no debe admitir grupos repetitivos, esto es, que debe estar en primera forma normal; por ejemplo, si un estudiante solicita más de una beca, se tienen grupos repetitivos, y para pasar a 1FN habrá que repetir el resto de atributos de la tupla para cada uno de los valores del grupo repetitivo. La segunda forma normal (2FN) está basada en el concepto de dependencia plena y en las interrelaciones existentes entre los atributos principales (que se encuentran en alguna de las claves) y no principales (que no se encuentran en ninguna clave) de una relación. De esta forma, cualquier relación binaria se encuentra siempre en 2FN; así como también la relación en la que todas las claves son simples, es decir, que contienen un sólo atributo; asimismo, cualquier relación en la que todos sus atributos son PRINCIPALES, es decir, que forman parte de alguna clave. La segunda forma normal no se cumple cuando algún atributo no principal depende funcionalmente de algún subconjunto de la clave. Siempre es posible transformar un esquema de relación que no esté en 2FN, en esquemas de relación en 2FN, sin que se produzca pérdida de información ni de dependencias. Así pues, ―sea el esquema de relación ESTUDIANTE_BECA (AT, DEP) donde: Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 55 Bases de datos Programa desarrollado Que refleja las becas que solicitan los estudiantes, la fecha en que lo han hecho y la titulación del estudiante. La clave de la relación ESTUDIANTE_BECA es cod_estudiante, cod_beca. Se puede observar que el atributo título no es un hecho (una información) acerca de la totalidad de la clave, si no acerca de parte de ella (en este caso del atributo cod_estudiante). Esta relación no está en 2FN‖ (Ibánez, 2007: 43) La tercera forma normal (3FN) está basada en el concepto de dependencia transitiva. Considerando la definición tenemos que, toda relación binaria se encuentra en 3FN, del mismo modo, toda relación cuyos atributos son todos principales, o bien cuando hay un único atributo no principal. La tercera forma normal no se cumple cuando hay atributos no principales que dependen funcionalmente de otros atributos no principales. No obstante, se puede transformar un esquema de relación que no está en 3FN, en esquemas de relación en 3FN, sin que se originen pérdidas de información ni de dependencias funcionales. 2.2.4. Modelado relacional El modelado relacional se divide en tres partes, que se ocupan de la estructura, la integridad y la manipulación de los datos, respectivamente. Cada una de las partes tiene sus propios términos especiales, estos conceptos son: relación, tupla, cardinalidad, atributo, grado, clave primaria y dominio. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 56 Bases de datos Programa desarrollado Relación de proveedores S. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 57 Bases de datos Programa desarrollado A continuación se explica de manera general cada uno de los términos: Una relación corresponde a lo que hasta ahora hemos llamado tabla. Una tupla corresponde a una fila de esta tabla y un atributo a una columna. El número de tuplas se denomina cardinalidad, mientras que el número de atributo se llama grado. La clave primaria es un identificador único para la tabla, es decir, una columna o combinación de columnas con la siguiente propiedad: nunca existen dos filas de la tabla con el mismo valor en esa columna o combinación de columnas. Por último, un dominio es una colección de valores de los cuales uno o más atributos (columnas) obtienen sus valores reales. Por ejemplo, el dominio marcado con S# en la figura 2.9, es el conjunto de todos los números de proveedores legales; y el conjunto de valores que aparecen en el atributo S#, de la relación S, en cualquier momento es algún subconjunto de ese conjunto. De manera similar, el conjunto de valores que aparecen en el atributo S#, de la relación SP, en cualquier momento dado es también un subconjunto de ese conjunto. Esta terminología se resume en la figura 2.10; sobre esta se harán dos aclaraciones: Aclaraciones sobre la terminología de las partes del modelo relacional: Aclaración 1: 1. Debe entenderse que las ―equivalencias‖ mostradas son solo aproximadas, porque los términos formales del modelo relacional, situados a la izquierda, tienen definiciones precisas, pero los ―equivalentes‖ informales de la derecha solo poseen definiciones aproximadas, aunque prácticas. Así, por ejemplo, una relación y una tabla no son en realidad la misma cosa, aunque en la práctica muchas veces es conveniente hacer como si lo fueran. Aclaración 2: 2. La noción ―dominio‖, nos sirve para ilustrar una cosa muy importante: no todos los sistemas relacionales se ajustan a todos los aspectos del modelo relacional; DB2, por ejemplo, no maneja en absoluto los dominios, de hecho tampoco lo hace INGRES ni la mayor parte de los sistemas actuales. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 58 Bases de datos Programa desarrollado Definición formal de dominio . El punto de partida para nuestro tratamiento formal de la estructura de datos tradicional es la menor unidad semántica de información, la cual suponemos es el valor de un acto individual (como el número de un proveedor individual o el peso de una parte individual o el nombre de una ciudad individual o la cantidad de un envío individual). Llamaremos a estos valores escalares (aunque este término no se utilice mucho en la literatura relacional). Estructura de las bases de datos relacionales Una base de datos relacional consiste en un conjunto de tablas, a cada una de ellas se les asigna un nombre exclusivo; cada fila de la tabla representa una relación entre un conjunto de valores. Dado que cada tabla es un conjunto de dichas relaciones, hay una fuerte correspondencia entre el concepto de tabla y el concepto matemático de relación, del que toma su nombre el modelo de datos relacional. En las bases de datos relacionales se utilizan varias relaciones diferentes para ilustrar los conceptos subyacentes al modelo de datos relacional, estas relaciones representan parte de una entidad bancaria. Actividad 4. Modelados básicos Con el fin de abstraer información significativa para el prototipo, y construir los diagramas de los modelados: entidad relación, normalización y relacional, trabajarán nuevamente en equipo para organizar la información del caso de estudio seleccionado. 1. En un documento de Word, de acuerdo con el caso en cuestión, y tomando en cuenta los ejemplos vistos a lo largo de la unidad, esquematicen el modelado entidad relación. Coloquen el título ―Diagrama entidad relación‖. 2. En la siguiente cuartilla del documento representen la normalización del caso. Coloquen el título ―Normalización‖. 3. Finalmente, en una tercera cuartilla, esquematicen el modelado relacional, titulándolo ―Modelo relacional‖. 4. Guarden de manear individual la actividad y envíenla a la sección de tareas. Evidencia de aprendizaje. Análisis y modelado Como parte de la evaluación de esta unidad, tienes que llevar a cabo una actividad individual cuyo propósito es documentar el caso de estudio elegido, empleando lo revisado durante el desarrollo de la unidad: tabla de la estructura de entradas, procesos y salidas; reporte de factibilidad; requerimientos de hardware y software, así como los modelados, para continuar con el seguimiento del caso. 1. En un documento de Word, realiza lo siguiente, ocupa una cuartilla para cada punto: Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 59 Bases de datos Programa desarrollado Agrega la descripción del caso, la necesidad a cubrir y la base de datos a utilizar. Elabora una tabla que desglose las entradas, procesos y salidas. Menciona el tipo de herramienta de recopilación de información que utilizarás, y anota cinco de las preguntas que contendrá. Esquematiza en una tabla comparativa el reporte de estudio de factibilidad. Menciona los requerimientos de hardware y software. Elabora el modelo (diagrama) entidad relación en dos tablas creadas a partir del caso particular. Elabora el modelo (diagrama) relacional con base en las dos tablas creadas anteriormente. 2. Guarda la evidencia con el nombre BDD_U2_EA_XXYZ. 3. Envía el archivo a tu Facilitador(a) para recibir retroalimentación, considera sus observaciones y, en caso de que sea necesario, modifica tu evidencia para volverla a enviar. Al terminar el proceso anterior, ingresa al foro Preguntas de Autorreflexión y lee los cuestionamientos que formuló tu Facilitador(a), posteriormente, sal del foro, ingresa a la sección Autorreflexiones y, dentro de ésta, envía tu autorreflexión con el nombre BDD_U2_ATR_XXYZ. Consideraciones específicas de la unidad A lo largo de esta unidad se logra involucrar al estudiante de manera más práctica en los contenidos propios de la asignatura, tomando en cuenta los conceptos abordados en la primera unidad del curso; sin embargo, se sugiere la retroalimentación y enriquecimiento basado en la información que se encuentra en los materiales de apoyo, de igual forma, es conveniente recordar que las actividades correspondientes a esta segunda unidad son fundamentales para continuar con la tercera, y última, unidad de la asignatura. Es importante que el estudiante sea autodidacta, creativo y sobre todo tenga una amplia visión, ya que deberá jugar diferentes roles: usuario y diseñador, lo que le ayudará a obtener un mayor entendimiento del caso y requerimiento, permitiéndole la obtención de información clave para el diseño de la base de datos. Cierre de la unidad Aquí concluye la segunda unidad de la asignatura de Bases de datos. A manera de síntesis, se revisaron los lineamientos metodológicos de recopilación de requerimientos, se definió lo que es un análisis y la estructura de las entradas, procesos y salidas; asimismo se eligió un caso de estudio, se seleccionó y elaboró el instrumento para la recopilación de información y se abarcó lo que es un estudio de factibilidad. Finalmente, se abordaron cuatro técnicas de modelado de datos, con lo cual, en la siguiente unidad, se le dará continuidad al caso de estudio elegido. Si los temas que se acaban de señalar son familiares, ya estás listo(a) para seguir con la unidad posterior, en donde se continuará con la generación del prototipo de base de datos documental. En caso de que no Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 60 Bases de datos Programa desarrollado tengas suficientemente claro alguno de los temas que se abordaron a lo largo de la unidad, realiza un repaso con el fin de reforzar el aprendizaje. Fuentes de consulta Celma, M.; Casamayor, J.C.; Mota, L. (2003) Bases de datos relacionales. Madrid: Pearson-Prentice Hall. Diseño de bases de datos (2010) Introducción a la Informática. Recuperado el 29 de abril de 2011 de: http://users.dsic.upv.es/asignaturas/fade/inf/es/tema6.pdf Hernández, M. (s/f) Introducción al desarrollo de sistemas de información. Recuperado el 29 de abril de 2011, de: http://www.eduardoleyton.com/apuntes/Introduccion_SIA.pdf Ibáñez, A. (2007) Tesis de grado ―Modelo de optimización para el diseño de bases de datos relacionales‖. La Paz, Bolivia: Universidad Mayor De San Andrés, Facultad De Ciencias Puras Y Naturales Carrera De Informática. Kroenke, D. (2003) Procesamiento de Bases de Datos. Fundamentos, diseño e implementación. México: Pearson Educación. Pérez L, César. (2008) Oracle 10g: administración y análisis de bases de datos. Segunda edición. México: Alfaomega. Quiroz, Javier. (2003) ―El modelo relacional de bases de datos‖ en Boletín de Política Informática Núm. 6 (Versión electrónica). Recuperado el 26 de enero de 2011, de http://www.inegi.org.mx/inegi/contenidos/espanol/prensa/contenidos/articulos/tecnologia/relacional.p df Real Academia Española (2001) Diccionario de la lengua española. Vigésima segunda edición (Versión digital). Recuperado el 19 de enero de 2011, de http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=inform%E1tica Silberschatz, Abraham. (2006). Fundamentos de Bases de Datos. España: McGraw-Hill. ―Definición de requerimiento de hardware‖ en Diccionario de informática. Recuperado el 2 de enero de 2011, de http://www.alegsa.com.ar/Dic/requerimiento%20de%20hardware.php Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 61 Bases de datos Programa desarrollado UNIDAD 3. Diseño Propósito de la unidad En esta unidad se documentarán las técnicas para poder construir el prototipo de la base de datos, teniendo como base el concepto general de Structured Query Language (SQL), los tipos de datos, el diccionario de datos, las instrucciones SQL: Data Definition Language (DDL) y Data la Manipulation Language (DML), y el álgebra relacional. Competencia específica Elaborar modelados de Bases de datos documentales para representar la información que satisfaga las necesidades de gestión de información, mediante las técnicas de modelaje utilizadas para generar un prototipo. Presentación de la unidad ¡Felicidades! Estás a punto de terminar el curso, recuerda que las personas de éxito son aquellas que, con base en la perseverancia y constancia llegan a cumplir sus metas y objetivos, así como tú has logrado llegar aquí. En esta unidad conocerás temas que te ayudarán a obtener una mayor comprensión en materia de las bases de datos: el concepto de Structured Query Language (SQL), los diferentes tipos de datos que utilizan las base de datos, qué es un diccionario de datos y cómo se genera; así mismo, se revisarán las instrucciones SQL, Data Definition Language (DDL) y Data Manipulation Language (DML), para finalizar con el tema de álgebra relacional. Se espera que con estos tópicos logres tener un panorama de los temas que conforman la tercera, y última, unidad de la asignatura de Base de datos. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 62 Bases de datos Programa desarrollado 3.1. Diseño de prototipo de Bases de datos Para iniciar, es esencial explicar a qué nos referimos con diseño de prototipo de base de Datos. Como se explicó anteriormente, se tiene contemplado que mediante los subtemas que se verán en esta unidad, y lo realizado en las unidades anteriores, realices el prototipo del diseño de la base de datos, entendiendo como prototipo a la primera versión de un nuevo tipo de producto, en el que se han incorporado solo algunas características del sistema final, o no se han realizado completamente, lo que permitirá al diseñador evaluar los requerimientos del usuario, verificar su estructura y flujo de información. Los prototipos son una visión previa o preliminar del sistema que se implementará a futuro. Los prototipos de un sistema de información se utilizan para la recopilación rápida de los requerimientos de los diferentes usuarios para satisfacer sus necesidades de información, este prototipo es importante ya que está dentro del ciclo de vida del desarrollo de sistemas de bases de datos, que es una fase determinante para el perfeccionamiento e implementación del sistema. Hay tres tipos de información que se busca al realizar un prototipo: Las innovaciones son parte de la información que se busca al realizar los prototipos, son capacidades nuevas, comúnmente conocidas como el plus, o capacidades nuevas del sistema no contempladas antes de la interacción del prototipo. Las sugerencias del usuario son la observación y las entrevistas que se le realizan al usuario, la reacción que tiene cuando se le presenta el prototipo y cuando interactúa con él. El usuario retroalimenta y sugiere (presentación de información, resultados correctos, faltantes de información, etc.) nuevas ideas para el mejoramiento del sistema. Es importante mencionar que esto permitirá al analista afinar y realizar cambios al prototipo. El plan de revisión permite al diseñador identificar las prioridades de construcción y redirigir los planes sin realizar gastos. Existen cuatro tipos de prototipos: Prototipo parchado. Es un sistema de información operable con características de información necesarias para la visualización del flujo de información, pero es ineficiente. Prototipo no operacional. Es un modelado a escala no funcional de un sistema de información, se utiliza cuando la codificación requerida por las aplicaciones es muy extensa para la realización de un prototipo, Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 63 Bases de datos Programa desarrollado pero aun así se pude obtener una idea clara del sistema por medio de la elaboración de prototipos solamente de entradas y salidas de información. Prototipo de una serie. Es utilizado cuando se tienen planeadas muchas instalaciones del mismo sistema de información. Prototipo de características seleccionadas. Es la construcción del prototipo operacional que incluye solo algunas características que tendrá el sistema final; este prototipo permite que el sistema se vaya construyendo de forma modular, de tal manera que al ser evaluados de forma independiente y sean satisfactorios, se incorporen en el sistema final. Es importante la utilización de prototipos porque permiten comunicar, discutir y definir ideas entre los diferentes diseñadores y los usuarios responsables de cada información, apoyan el trabajo evaluando productos, clasificando los requerimientos de los usuarios y definiendo alternativas. *Nota: Es importante destacar que el prototipo que se pretende realizar en esta materia no incluirá la parte de la programación de interface, ya que la materia solo se enfoca en la parte documental y ciertas instrucciones SQL (que veremos a continuación) para la creación de la base de datos; se recomienda utilizar un software libre para la generación de la base. Actividad 1. Tablas lógicas Durante esta actividad, deberás elaborar un documento con tu equipo (el equipo será el mismo con el que trabajaste para la elección de caso en las unidades previas), en el que se organice la información para construir las ideas y aplicar los cambios que requiera el caso que eligieron en las unidades anteriores. Instrucciones: 1. En Excel, planteen las tablas lógicas del caso de estudio. 2. Identifiquen los campos de las tablas lógicas, así como su clave principal, e ingrésenle 10 registros. 3. Guarden el archivo con el nombre BDD_U3_A1_XXYZ. 4. Envíen, de manera individual, el archivo al Facilitador(a) para recibir retroalimentación. 3.1.1. Concepto de Structured Query Language (SQL) El SQL se puede traducir como Lenguaje Estructurado de Consultas (Structured Query Language). SQL es un lenguaje de consultas estructurado y de programación de bases de datos relacionales utilizado para accesar, consultar, actualizar y gestionar información, que permite realizar diversos tipos de operaciones; es utilizado casi siempre con el álgebra relacional, que permite explotar de manera más eficiente la información y tiene la capacidad de aplicar cálculos matemáticos. SQL es considerado un lenguaje de alta generación (4GL), y estándar, pero en algunos Sistemas Gestores de Bases de Datos tendrán pequeñas variaciones en su estructura. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 64 Bases de datos Programa desarrollado Hay que destacar que los sistemas de bases de datos comerciales necesitan un lenguaje de consulta cómodo para el usuario, y el lenguaje de mayor influencia es SQL, que usa una combinación de álgebra relacional y construcciones de cálculo relacional. Aunque el lenguaje SQL se considere un lenguaje de consultas de Bases de datos, contiene muchas otras capacidades como las siguientes: Incluye características para definir la estructura de los datos Para la modificación de ellos en la base de datos y para la especificación de restricciones de seguridad. Actualmente numerosos productos son compatibles con el lenguaje SQL. SQL es el lenguaje abierto y más comercial en el mercado, se debe remarcar la importancia de cada uno de sus componentes de manera general, los cuales se abordan a continuación. Componentes de SQL. El lenguaje SQL está conformado básicamente por los siguientes componentes: Lenguaje de definición de datos (LDD). Proporciona órdenes para la definición de vistas y de esquemas de relación, borrado de relaciones, creación de índices, modificación de índices y de esquemas de relación. También incluye órdenes para la especificación de las restricciones de integridad que deben satisfacer los datos almacenados en la Base de datos, y las actualizaciones que violen las restricciones de integridad las rechaza. Además, incluye órdenes para especificar derechos de acceso para las relaciones y vistas. Lenguaje de manipulación de datos (LMD). Incluye un lenguaje de consultas, basado tanto en álgebra relacional como en cálculo relacional de tuplas (tablas), y órdenes para insertar, borrar y modificar tuplas de las bases de datos. Control de transacciones. Órdenes para la especificación del comienzo y final de transacciones. SQL tiene la facultad de poder trabajar con diferentes lenguajes de programación de propósito general, dado que puede ser incorporado o dinámico. SQL incorporado trabaja con código fuente estructurado por el programador, mientras que el dinámico no requiere de estructuras de código fuente, dado que tiene la facultad de trabajar con asistentes que no lo requieren. Algunos ejemplos de lenguajes de programación de propósito general son C, C++, Java. PL/I, Cobol, entre otros. Al momento de programar SQL se requiere tener claridad sobre el significado de las estructuras que utiliza para las expresiones básicas, las cuales son: SELECT, FROM y WHERE. Estas estructuras se comparan con la aplicación que tienen en el álgebra relacional, tema que se aborda más adelante. SELECT. Se usa para listar los atributos deseados del resultado de una consulta. Corresponde a la operación proyección de álgebra relacional. FROM. Lista las relaciones que deben ser analizadas en la evaluación de la expresión. Corresponde a la operación producto cartesiano de álgebra relacional. WHERE. Es un predicado que engloba los atributos de las relaciones que aparecen en la expresión FROM. Corresponde al predicado selección de álgebra relacional. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 65 Bases de datos Programa desarrollado Es importante mencionar que el término SELECT tiene un significado diferente en SQL y en álgebra relacional, que se verá a profundidad más adelante. ¿Para qué sirve SQL? SQL permite la realización de consultas y actualizaciones sobre datos almacenados en tablas relacionales, como ya se ha mencionado antes. Este es el principal uso que harán los programadores y usuarios del lenguaje, pero también hay otras tareas que se pueden realizar mediante las sentencias SQL, aunque pertenecen más a la responsabilidad de lo que suelen llamarse administrador de bases de datos; las tareas son las siguientes: Antes de poder usar una tabla para almacenar o consultar datos en ella, hay que describirla al SGBD, dándole su nombre y características, esto se hace definiéndola. Hay otros muchos objetos que maneja un SGBD con sentencias SQL, tales como espacios para ficheros físicos, índices, claves principales, campos, entre otros. Normalmente, la definición de tablas y vistas son responsabilidad del administrador de bases de datos, pero puede haber casos en que se permita a algunos usuarios definir tablas para datos de uso privado. En este caso, el usuario emplea las correspondientes sentencias de SQL. Gestión de las autorizaciones de acceso. El usuario final no podrá consultar o actualizar datos de una tabla si previamente no ha sido autorizado para ello. Tampoco podrá hacerlo un programa si la persona que ha solicitado su ejecución no ha sido previamente autorizada. Estas autorizaciones se conceden o deniegan mediante sentencias SQL. Normalmente, las autorizaciones las concede el administrador de bases de datos, pero puede haber casos en que lo haga un usuario con respecto a sus datos privados, si se le permite tenerlos. Existen otras tareas propias del administrador de bases de datos, en las que el SQL puede ayudar, sin embargo se necesitan otras herramientas adicionales. Así, por ejemplo, la prevención y corrección de problemas de rendimiento y la toma de copias de seguridad de los datos para el caso de fallos por catástrofes o averías. Para concluir con este tema, tenemos que SQL permite: Definir y destruir objetos de las bases de datos. Conceder y denegar autorizaciones para usar estos objetos. Consultar y actualizar datos. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 66 Bases de datos Programa desarrollado 3.1.2. Tipos de datos Un tipo de dato es un conjunto de valores y operaciones primitivas aplicables a las tablas que conforman las bases de datos. En los lenguajes de programación se proporcionan tipos de datos ya definidos agrupados en clases distintas. Los tipos de datos también son vistos como una limitación impuesta en la interpretación de datos en un sistema de tipificación (lenguaje de programación que clasifica valores y expresiones en tipos), describiendo la representación, interpretación y estructura de los valores u objetos en la memoria del ordenador. La declaración de un tipo de dato requiere la especificación de un nombre y la definición (descripción) del mismo. Ejemplo: podemos decir en la entidad VENDEDOR que su campo identificador tiene el ID_VENDEDOR, y este campo tiene un tipo de dato que será definido por las reglas del usuario, pudiendo ser de dos tipos: numérico y entero o alfanumérico, este tipo de dato deberá indicar de forma específica la cantidad de caracteres requerida. Es importante definir los tipos de datos para diseñar las tablas o entidades, dado que de aquí se definirá el dominio para el uso de las relaciones en la base de datos. Los tipos de datos con restricciones y valores por defecto se pueden combinar en la definición de dominios. Una definición de dominio es un tipo de dato especializado que puede estar definido dentro de un esquema y utilizado en la definición de columnas. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 67 Bases de datos Programa desarrollado Por ejemplo, se desea definir un dominio de identificadores para usar en la definición de columnas como ID_VENDEDOR e ID_EDIFICIO. Estas definiciones son complejas, ya que se involucra un tipo de dato, un valor por defecto y una restricción no nula. Puesto que se usará esta una y otra vez en el esquema de la base de datos, se requiere simplificar el trabajo. Por tanto se crea un dominio de la siguiente forma: CREATE DOMAIN IDENTIFICACOR NUMERIC (4) DEFAULT 0 CHECK (VALUE IS NOT NULL) Se dice que un dominio llamado IDENTIFICADOR tiene las siguientes propiedades: Su tipo de dato es numérico de cuatro dígitos. Su valor por defecto es cero y nunca puede ser nulo. Una columna que define este dominio como su tipo de dato tendrá otras propiedades. SQL requiere lo que se denomina una restricción CHECK, para esto se pueden definir columnas en el esquema que tenga identificador como su tipo de dato. En el modelo relacional, un dominio es un conjunto del cual toma sus valores una columna de una relación. En este sentido, los tipos de datos predefinidos son dominios. Sin embargo, SQL define los dominios de forma ligeramente diferente, proporciona tipos de datos predefinidos y permite dominios definidos por el usuario. Los tipos de datos en SQL se clasifican en: Numéricos exactos Aproximados Cadenas de caracteres Cadenas de bits Fechas y horas Intervalos Tipos de datos numéricos exactos: • Integer (enteros) • SmALLinteger (enteros cortos) • Numeric (p,e) (numéricos) • Decimal (p,e) (decimales) En los últimos dos tipos de datos (numérico y decimal) se indica una precisión (p) y una escala (e). La precisión indica el total de números o dígitos en el número y la escala indica cuántos de estos están a la derecha del punto decimal. Tipo de datos aproximados: Aproximados • Real (real) Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 68 Bases de datos Programa desarrollado • Doubleprecision (doble precisión) • Float (flotante) Estos tipos de datos se usan normalmente para cálculos científicos y de ingeniería. Tipos de datos cadenas de caracteres: • Character (n) (carácter) • Charactervarying (n) (carácter variable) Los campos de Character siempre almacenan ―n‖ caracteres, aun cuando tengan que rellenar con blancos a la derecha para completar la longitud ―n‖. Los campos Charactervarying solo almacenan el número real de caracteres que se introdujeron (hasta un máximo de n). La diferencia entre ellos es que el primero está definido, y en el caso del segundo la palabra varyinglo define, es variante constantemente. Tipos de datos de fechas y horas: • Date (fecha) • Time (hora) • Timestamp (Sello de tiempo) • Time con tiempo zona • Timestamp con tiempo zona Date (fecha) se da en el orden: año, mes y día, con cuatro dígitos para el año. Time se da en horas (0 a 23), minutos, segundos y décimas de segundo. Timestamp es la fecha más la hora (date plus time). Tipos de datos de intervalos: • Year– month (año-mes) • Date_time (dia-hora) El intervalo es la diferencia entre dos fechas (año-mes) o entre dos horas (día-hora). Por ejemplo, entre diciembre de 1994 y enero de 1996, el intervalo es un año y un mes 3.1.3. Generación de Diccionario de datos El propósito de un diccionario de datos es que contenga las características lógicas de los datos que se van a utilizar en un sistema (bases de datos), incluyendo nombre, descripción, alias, contenido y organización. Los diccionarios de datos son desarrollados durante el análisis de flujo de datos, y ayudan a los analistas que participan en la determinación de los requerimientos del sistema, evitando así malas interpretaciones o ambigüedades, su contenido también se emplea durante el diseño del proyecto. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 69 Bases de datos Programa desarrollado En un diccionario de datos se encuentra la lista de los elementos que forman parte del flujo de datos de todo el sistema. Los elementos más importantes son flujos de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos. Desde el punto de vista estadístico, este diccionario debe tener la variable, el tipo de variable, su definición y su delimitación espacial. Ejemplo: Las ventajas de diseñar un diccionario de datos son: Aclara dudas con respecto a Permite la las localización características de de los campos información y, en su caso, de manera realizar altas, más rápida. bajas y cambios. Permite visualizar las tablas relacionadas entre si y los campos que las relacionan. Actividad 2. Diccionario de datos El propósito de esta actividad es definir un diccionario de datos para aplicarlo a una base de datos, con la finalidad de tenerlo como referencia. Instrucciones: En una hoja de cálculo esquematiza una tabla con las filas y columnas correspondientes a un diccionario de datos. Por cada tabla debes crear un diccionario de datos, ya que los campos deben ser diferentes. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 70 Bases de datos Programa desarrollado Guarda el trabajo con el nombre BDD_U3_A2_XXYZ. Envía el archivo al facilitador(a) para recibir retroalimentación. Actividad 3. Entrega de tablas lógicas y diccionario de datos El propósito de esta actividad es analizar los errores más comunes del diseño de las tablas lógicas, así como en el diccionario de datos para generar otros. Instrucciones: 1. Tomando en cuenta las observaciones hechas por tu facilitador(a) en la Actividad 1. Tablas lógicas, analiza los errores más comunes del diseño de las tablas lógicas y reelabora en un documento de texto las tablas lógicas y el diccionario de datos del caso de estudio que has venido trabajando. 2. Guarda la actividad con el nombre BDD_U3_A3_XXYZ. 3. Envía el archivo a tu facilitador(a) para recibir retroalimentación. 3.1.4. Instrucciones SQL: Data Definition Language (DDL) y Data Manipulation Language (DML) Las peticiones sobre los datos se expresan mediante sentencias, que deben escribirse de acuerdo con las siglas sintácticas y semánticas de SQL. Para esto es necesario conocer las instrucciones primordiales de SQL: DDL (Data Definition Language) y DML (Data Manipulation Language). Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 71 Bases de datos Programa desarrollado DDL La instrucción DDL (Data Definition Language) está conformada por los siguientes comandos. Comando Descripción CREATE Utilizado para crear nuevas tablas, campos, vistas e índices. DROP Empleado para eliminar tablas e índices. ALTER Utilizado para modificar las tablas, agregando campos o cambiando la definición de los campos. Instrucciones DDL A continuación se describe la sintaxis de cada uno de los comandos: Sintaxis de CREATE CREATE TABLE ―nombre_tabla‖ (―columna 1‖ ―tipo_de_datos_para_columna_1‖, ―columna 2‖ ―tipo_de_datos_para_columna_2‖,….) Sintaxis de DROP DROP DATABASE { dataBase_name | dataBase_snapshot_name } [ ,…n ] [;] Sintaxis de ALTER ALTER TABLE ―nombre_tabla‖ [modificar especificación] DML DML (Data Manipulation Language) está conformado por comandos que permiten al usuario seleccionar, añadir, modificar y borrar información contenida en el repositorio (Base de datos), es decir, cuenta con los comandos: SELECT, INSERT, UPDATE Y DELETE. Comando Descripción SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. INSERT Utilizado para cargar lotes de datos en la Base de datos en una única operación. UPDATE Utilizado para modificar los valores de los campos y registros especificados. DELETE Utilizado para eliminar registros de una tabla de una Base de datos. Instrucciones DML A continuación se describe la sintaxis de cada uno de los comandos: Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 72 Bases de datos Programa desarrollado Sintaxis de SELECT SELECT ―nombre de columna‖ FROM ―nombre_tabla‖ Sintaxis de INSERT INSERT INTO ―nombre_tabla‖ (―columna 1‖, ―columna 2‖, …) valor S (―valor 1‖, ―valor 2‖, …) Sintaxis de UPDATE UPDATE ―nombre_tabla‖ SET ―columna 1‖ = [nuevo valor] WHERE {condición} Sintaxis de DELETE DELETE FROM ―nombre_tabla‖ WHERE {condición} Existen otros comandos básicos, que se vuelven condiciones de modificación utilizadas para definir los datos que se desea seleccionar o manipular. Cláusula Descripción FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros. WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar. GROUP BY Utilizada para separar los registros seleccionados en grupos específicos. HAVING Utilizada para expresar la condición que debe satisfacer cada grupo. ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico. Comandos básicos Así como se muestra la descripción de cada comando (de condición), en la tabla 3.10, a continuación se describe la sintaxis de cada uno de ellos. Sintaxis de FROM FROM "nombre_tabla" WHERE {condición} Sintaxis de WHERE SELECT "nombre_columna" FROM "nombre_tabla" WHERE "condición" Sintaxis de GROUP BY SELECT "nombre_columna 1", SUM ("nombre_columna 2") FROM "nombre_tabla" GROUP BY "nombre_columna 1" Sintaxis de HAVING Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 73 Bases de datos Programa desarrollado SELECT "nombre_columna 1", SUM ("nombre_columna 2") FROM "nombre_tabla" GROUP BY "nombre_columna 1" HAVING (condición de función aritmética) Sintaxis de ORDER BY SELECT "nombre_columna" FROM "nombre_tabla" [ WHERE "condición"] ORDER BY "nombre_columna" [ASC, DESC] Aparte de los comandos antes mencionados, SQL maneja operadores lógicos y de comparación, los cuales también tienen sus propias sintaxis. En el caso de los operadores lógicos. Operador Uso AND es "y" Evalúa dos condiciones y devuelve un valor de verdad solo si ambas son ciertas. OR es "o" Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. NOT es negación Operadores lógicos Devuelve el valor contrario de la expresión. A continuación se muestran las sintaxis de cada uno de los operadores lógicos. Sintaxis de AND SELECT "nombre_columna" FROM "nombre_tabla" WHERE "condición simple" { [AND] "condición simple"}+ Sintaxis de OR SELECT "nombre_columna" FROM "nombre_tabla" WHERE "condición simple" { [OR] "condición simple"}+ Sintaxis de NOT [ NOT ] boolean_expresión Veamos la simbología así como el uso de los operadores de comparación: Operador Uso (simbología) < Menor que > Mayor que <> Distinto de <= Menor o igual que >= Mayor o igual que = Igual que BETWEEN Utilizado para especificar un intervalo de valores. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 74 Bases de datos Programa desarrollado LIKE Utilizado en la comparación de un modelo. IN Operadores de comparación Utilizado para especificar registros de una base de datos. A continuación se muestran las sintaxis de cada uno de los operadores de comparación. Sintaxis de BETWEEN campo [Not] Between valor1 AND valor2 Sintaxis de LIKE expresión Like modelo Sintaxis de IN expresión [Not] In (valor1, valor2, . . .) Es importante mencionar las funciones de los operadores agregados que se usan dentro de un comando SELECT en grupos de registros para devolver un único valor ya registrado. Función Descripción AVG Utilizada para calcular el promedio de los valores de un campo determinado. COUNT Utilizada para devolver el número de registros de la selección. SUM Utilizada para devolver la suma de todos los valores de un campo determinado. MAX Utilizada para devolver el valor más alto de un campo especificado. MIN Funciones Utilizada para devolver el valor más bajo de un campo especificado. Cada una de estas funciones se utiliza cuando el manejador de Base de datos es SQL y tienen las siguientes sintaxis. Sintaxis de AVG AVG ( [ ALL | DISTINCT ] expresión ) Sintaxis de COUNT SELECT COUNT ("nombre_columna") FROM "nombre_tabla" Sintaxis de SUM SUM ( [ ALL | DISTINCT ] expresión ) Sintaxis de MAX MAX ( [ ALL | DISTINCT ] expresión) Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 75 Bases de datos Programa desarrollado Sintaxis de MIN MIN ( [ ALL | DISTINCT ] expresión) 3.1.5. Álgebra relacional Para hablar de este tema, es importante conocer y tener bien definidos los términos básicos de las estructuras SQL mencionados y presentados en las figuras del subtema anterior, así como su funcionamiento. Ahora bien, este tema servirá para generar las operaciones más básicas en las bases de datos relacionales, y está constituido de manera práctica para su mejor comprensión. El álgebra relacional es definida como un conjunto de operadores de alto nivel que trabajan sobre relaciones. Esto significa que estas operaciones usan una o dos relaciones existentes para crear una nueva relación. Esta nueva relación puede entonces usarse como entrada para una nueva operación. Este poderoso concepto – la creación de una nueva relación a partir de las relaciones existentes— hace posible una variedad infinita de manipulaciones sobre los datos. Eso también hace considerablemente más fácil la solución de las consultas, debido a que se puede experimentar con soluciones parciales hasta encontrar una proposición con la que se trabajará. CLIENTE ID_CLIENTE 100 101 105 110 VENDEDOR ID_VENDEDOR 10 14 23 37 NOMB_CLIENTE DIRECCION PAÍS José López Maritza Julián Gómez Box 241, Sonora B 918, Aguas Calientes Santiago Japón Austria USA Chile SALDO INICIAL 45.551 75.314 49.333 27.400 SALDO ACTUAL 52.113 77.200 57.811 35.414 NOMB_VENDEDOR Blanca Soto Mónica Márquez Francisco Moreno Elena Hernández ID_JEFE 27 44 35 12 OFICINA Aguas Calientes Sonora Nayarit %_COMISIÓN 10 11 9 13 Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 76 Bases de datos Programa desarrollado 39 27 44 35 12 PRODUCTO ID_PRODUCTO 1035 2241 2249 2518 VENTA FECHA 28/02 12/02 15/02 19/02 02/02 05/02 22/02 14/02 01/02 04/02 FABRICANTE ID_FABRICANTE 210 253 317 Gabriela Acuña Teresa Cardoso Alberto Sánchez Berenice Medina Claudia Ortega 44 27 27 27 B.C. Sonora Aguas Calientes Sonora Nayarit B.C. 10 15 12 11 10 DESC_PRODUCTO abrigo lámpara de mesa lámpara de mesa escultura ID_FABRICANTE 210 317 317 253 COSTO 1,25 2,25 3,55 0,60 PRECIO 2,00 3,25 4,80 1,20 ID_CLIENTE 100 101 101 100 101 105 110 105 101 101 ID_VENDEDOR 10 23 23 39 23 10 37 10 23 23 ID_PROD 2241 2518 1035 2518 1035 2241 2518 2249 2249 2241 CANTIDAD 200 300 150 200 200 100 150 50 75 250 NOMB_FABRICANTE Nike Hugo boss Llama Llamps DIRECCION AuklAND Lagos Lima PAÍS Estados Unidos Nigeria Perú Ejemplo de datos en una base de datos. El álgebra relacional consta de nueve operaciones: unión, intersección, diferencia, producto, selección, proyección, reunión, división y asignación. Las cuatro primeras operaciones se toman de la teoría de conjuntos de Matemáticas, y son considerablemente parecidas a las operaciones encontradas allí. Esto es razonable, debido a que las relaciones son en sí mismas conjuntos, de esta manera se le pueden aplicar las operaciones de conjunto. Las cuatro siguientes son operaciones nuevas, que se aplican específicamente al modelo de datos relacional. Mientras que la última operación (asignación) es la operación estándar de los lenguajes de computación, de dar un valor a un nombre. En este caso, la asignación se usa para dar un nombre a una nueva relación que se crea de relaciones existentes. Se usará el signo ―:=‖ (es el nombre asignado a) para indicar la asignación de nombres a relaciones. A continuación se abordan cada una de las nueve operaciones del álgebra relacional. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 77 Bases de datos Programa desarrollado 1. Unión La operación de unión (∪) permite combinar los datos de dos relaciones. Por ejemplo, en la figura 3.15, suponga que la relación VENDEDOR no existe en la base de datos. En cambio, se tienen las dos relaciones de la figura 3.16. Estas dos relaciones representan todos los vendedores que están subordinados a otros vendedores (VENDEDOR_SUBORDINADO) y todos los vendedores que son jefes de otros vendedores (VENDEDOR_JEFE). Obviamente, existe redundancia de datos, esto sucede a través de la ejecución de una serie de órdenes de álgebra relacional antes de utilizar el operador unión. Si se desea obtener una relación que contenga todos los vendedores, se debe realizar la unión de VENDEDOR_SUBORDINADO y VENDEDOR_JEFE. VENDEDOR:= VENDEDOR_SUBORDINADO ∪ VENDEDOR_JEFE VENDEDOR es el nombre asignado a la relación resultante y consiste en las filas que están en VENDEDOR_SUBORDINADO o VENDEDOR_JEFE, o ambas. Es importante observar que una fila que existe en ambas relaciones aparece solo una vez en la relación unión. Esto sigue la definición de una relación como un conjunto, debido a que un elemento dado se encuentra solo una vez en conjunto. VENDEDOR_SUBORDINADO ID_VENDEDOR 10 14 23 37 39 44 35 12 NOMB_VENDEDOR Blanca Soto Mónica Márquez Francisco Moreno Elena Hernández Gabriela Acuña Alberto Sánchez Berenice Medina Claudia Ortega VENDEDOR_JEFE ID_VENDEDOR 1035 2241 2249 2518 NOMB_VENDEDOR Teresa Cardoso Alberto Sánchez Berenice Medina Claudia Ortega ID_JEFE 27 44 35 12 44 27 27 27 OFICINA Aguas Calientes Sonora Nayarit B.C. Sonora Sonora Nayarit B.C. %_COMISIÓN 10 11 9 13 10 12 11 10 OFICINA Aguas 27 Calientes 27 Sonora 27 Nayarit B.C. Representación relacional alternativa de vendedor. %_COMISION 15 12 11 10 ID_JEFE VENDEDOR Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 78 Bases de datos Programa desarrollado ID_VENDEDOR 10 14 23 37 39 27 44 35 12 NOMB_VENDEDOR ID_JEFE OFICINA Blanca Soto 27 Aguas Calientes Mónica Márquez 44 Sonora Francisco Moreno 35 Nayarit Elena Hernández 12 B.C. Gabriela Acuña 44 Sonora Teresa Cardoso 27 Aguas Calientes Alberto Sánchez 27 Sonora Berenice Medina 27 Nayarit Claudia Ortega B.C. Unión de vendedor subordinado y vendedor jefe. %_COMISION 10 11 9 13 10 15 12 11 10 Se debe señalar un requisito especial de la operación de unión que la hace ligeramente diferente de la unión de conjuntos de Matemáticas. En Matemáticas, dos conjuntos cualesquiera pueden ser combinados a través de la operación unión. Pero en el álgebra relacional, antes de aplicar la unión a las dos relaciones, estas deben tener exactamente las mismas columnas, tanto en número de columnas como en el dominio de las mismas. Si este es el caso, se dice que las dos relaciones son unión compatible. Obviamente, VENDEDOR_SUBORDINADO y VENDEDOR_JEFE son unión compatible. Se requiere la compatibilidad de la unión para que el resultado sea una relación. Si se toma la unión de CLIENTE y PRODUCTO (ver figura 3.14) se obtendrá un conjunto y una relación. Las filas en el conjunto resultante no tendrían columnas comunes, de este modo ellas no se agruparían en una tabla relacional. La compatibilidad de la unión es claramente esencial para la operación de unión. Por la misma razón, es esencial para las operaciones de intersección y diferencia. CLIENTE ID_CLIENTE 100 101 105 110 VENDEDOR ID_VENDEDOR NOMB_CLIENTE DIRECCION PAÍS José López Maritza Julián Gómez Box 241, Sonora B 918, Aguas Calientes Santiago Japón Austria USA Chile SALDO INICIAL 45.551 75.314 49.333 27.400 SALDO ACTUAL 52.113 77.200 57.811 35.414 NOMB_VENDEDOR ID_JEFE OFICINA %_COMISIÓN Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 79 Bases de datos Programa desarrollado 10 14 23 37 39 27 44 35 12 PRODUCTO ID_PRODUCTO 1035 2241 2249 2518 VENTA FECHA 28/02 12/02 15/02 19/02 02/02 05/02 22/02 14/02 01/02 04/02 FABRICANTE ID_FABRICANTE 210 253 317 Blanca Soto Mónica Márquez Francisco Moreno Elena Hernández Gabriela Acuña Teresa Cardoso Alberto Sánchez Berenice Medina Claudia Ortega 27 44 35 12 44 27 27 27 Aguas Calientes Sonora Nayarit B.C. Sonora Aguas Calientes Sonora Nayarit B.C. 10 11 9 13 10 15 12 11 10 DESC_PRODUCTO abrigo lámpara de mesa lámpara de mesa escultura ID_FABRICANTE 210 317 317 253 COSTO 1,25 2,25 3,55 0,60 PRECIO 2,00 3,25 4,80 1,20 ID_CLIENTE 100 101 101 100 101 105 110 105 101 101 ID_VENDEDOR 10 23 23 39 23 10 37 10 23 23 ID_PROD 2241 2518 1035 2518 1035 2241 2518 2249 2249 2241 CANTIDAD 200 300 150 200 200 100 150 50 75 250 NOMB_FABRICANTE Nike Hugo boss Llama Llamps DIRECCION AuklAND Lagos Lima PAÍS Estados Unidos Nigeria Perú Ejemplo de datos en una base de datos. 2. Intersección La operación de intersección (∩) permite identificar los campos que son comunes en dos relaciones. Por ejemplo, si se requiere identificar a los vendedores que son subordinados de algún jefe, y que son jefes, se toma la intersección de VENDEDOR_SUBORDINADO y VENDEDOR_JEFE, llamando al resultado VENDEDOR_SUBORDINADO_JEFE: VENDEDOR_SUBORDINADO_JEFE := VENDEDOR_SUBORDINADO ∩ VENDEDOR_JEFE Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 80 Bases de datos Programa desarrollado Esto produce la siguiente relación: VENDEDOR_SUBORDINADO_JEFE ID_VENDEDOR NOMB_VENDEDOR ID_JEFE OFICINA %_COMISIÓN 44 35 12 27 27 27 Sonora Nayarit B.C. 12 11 10 Alberto Sánchez Berenice Medina Claudia Ortega El resultado de una operación de intersección es la relación que consiste en todas las filas que están en ambas relaciones. Esto significa que si C es la intersección de A y B: C:= A ∩ B Entonces C consta de aquellas filas que están en A y B. Al igual que antes, A y B deben ser unión compatible. 3. Diferencia La operación de diferencia (-) permite identificar filas que están en una relación y no en otra. Suponga que es de interés identificar los jefes que no son subordinados de otros jefes, entonces se toma la diferencia entre VENDEDOR_JEFE y VENDEDOR_SUBORDINADO, en ese orden. VENDEDOR_JEFE_JEFE := VENDEDOR_JEFE - VENDEDOR_SUBORDINADO VENDEDOR_JEFE_JEFE ID_VENDEDOR NOMB_VENDEDOR ID_JEFE 27 Teresa Cardoso 15 OFICINA Aguas Calientes %COMISIÓN 11 La diferencia entre dos relaciones se define como la relación consistente en todas las filas que están en la primera relación, y no están en la segunda relación. Así, si: C:= A – B Entonces una fila está en C si y solo si está en A y no está en B. Observe que A – B no es lo mismo que B – A. Si se invierte el orden de las relaciones usadas en el ejemplo anterior se obtendría: VENDEDOR_SUBORDINADO - VENDEDOR_JEFE La relación resultante consistiría de todos aquellos vendedores que no son jefes de nadie, lo cual es justamente lo opuesto de los vendedores que no son dirigidos por nadie. Así es que el orden de las relaciones en una operación de diferencia es muy importante. Una vez más es importante recordar que ambas relaciones deben ser unión compatible. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 81 Bases de datos Programa desarrollado La operación de diferencia puede también ser llamada operación de sustracción. Esta operación particular es muy valiosa en la solución de algunos problemas difíciles, que de otro modo no se solucionarían. 4. Producto La operación producto (*) es valiosa como un bloque para la construcción de una reunión (JOIN), que es probablemente la operación más importante en el álgebra relacional. La operación producto es idéntica a la operación en Matemáticas que crea el producto cartesiano de dos conjuntos. Ahora se explicará qué significa esto, ilustrándolo con la operación de producto en un ejemplo abstracto muy simple. a) La relación A y B A X Y 10 11 22 25 B W Z 33 37 42 54 98 100 (b) El producto de A y B C ( := A * B ) X Y W Z 10 10 10 11 11 11 22 22 22 25 25 25 33 37 42 33 37 42 54 98 100 54 98 100 Figura. Ejemplo de la operación producto. C:= A * B Observe que el producto se crea: Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 82 Bases de datos Programa desarrollado 1. Concatenando los atributos de las dos relaciones. 2. Uniendo cada fila en A, con cada una de las filas en B. Esto significa que los atributos de C son todos los atributos de A y B juntos. Debido a que A y B tienen dos atributos cada uno, C tiene cuatro atributos. Las filas de C se crean ensartando filas de A y B juntas. Cada fila de A se corresponde tres veces con B, y entonces aparece en tres diferentes filas en A, por el número de filas en B. Otro ejemplo usando la base de datos de la figura 3.14 se da si tomamos el producto de PRODUCTO y VENTA. P_V:= PRODUCTO * VENTA P_V tendría 10 columnas y 40 filas, por lo que habría un problema en este caso, debido a que una columna en PRODUCTO y una columna en VENTA (ID_PRODUCTO) tienen el mismo nombre. Esto se resuelve modificando el nombre de la columna en cada caso, añadiendo el nombre de la relación original. Así, en P_V se tienen columnas llamadas PRODUCTO.ID_PRODUCTO y VENTA.ID_PRODUCTO. Esto parece ser una aplicación no natural para la operación producto, lo que significa que no está claro qué tipo de consulta se responde tomando el producto de dos relaciones. No obstante el producto se usa como la operación de construcción de un bloque para la reunión (JOIN), también usado en el lenguaje de consulta SQL. 5. Selección La operación de selección (=) se usa para crear una relación a partir de otra relación, seleccionando solo aquellas filas que satisfacen una condición específica. Por ejemplo: Instrucción: dar toda la información de los vendedores en la oficina de Sonora. Esto se soluciona seleccionando las filas de la relación VENDEDOR de la figura 3.14, sujetas a la condición de que una fila se selecciona solo si el atributo OFICINA es igual a ―Sonora‖. Esto se hace en el álgebra relacional como sigue: VEND_SONORA:= SELECT (VENDEDOR: OFICINA = ―Sonora‖) Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 83 Bases de datos Programa desarrollado El nombre ―VEND_SONORA‖ se ha definido para identificar la relación. La palabra clave ―SELECT‖ se usa para indicar que está realizando una operación de selección. A continuación de ―SELECT‖ se pone entre paréntesis el nombre de la relación de la cual son seleccionadas las filas, seguido por dos puntos (:); seguido por una condición de selección. Esas filas que satisfacen la condición de selección serán seleccionadas y puesta en relación resultante. El resultado de esta operación de selección es la siguiente: VEND_SONORA ID_VENDEDOR NOMB_VENDEDOR ID_JEFE OFICINA % COMISIÓN 14 39 44 Sonora Sonora Sonora 11 10 12 Mónica Márquez Gabriela Acuña Alberto Sánchez 44 44 27 Las condiciones de selección son esencialmente las mismas condiciones usadas en las instrucciones IF (si) en los lenguajes tradicionales de programación. Sin embargo, los nombres de las columnas usados en la condición de la selección dada deben encontrarse en la relación nombrada en la operación de selección. Algunos ejemplos de condiciones de selección que podrían usarse con la relación VENDEDOR son: ID_VENDEDOR=23 NOMB_VENDEDOR=Berenice Medina ID_JEFE>=20 not OFICINA = ―B.C.‖ % COMISION < 11 Pueden usarse operadores de comparación tales como < y >. Hay cinco operadores de comparación mencionados en el subtema anterior. Para cada uno de estos hay un operador correspondiente que usa el operador booleano ―NOT‖. También se pueden usar los conectores booleanos ―AND‖ y ―OR‖. El operador NOT se puede usar para negar una condición entera. Ejemplos Instrucción: ¿Qué vendedor tiene ID 23? Solución: SELECT (VENDEDOR: ID_VENDEDOR=23) Resultado: ID_VENDEDOR NOMB_VENDEDOR ID_JEFE OFICINA %COMISIÓN 23 NAYARIT 9 FRANCISCO MORENO 35 Instrucción: ¿Quiénes son los vendedores con un jefe con un ID mayor o igual que 20? Solución: SELECT (VENDEDOR: ID_JEFE > = 20 ) Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 84 Bases de datos Programa desarrollado Resultado: ID_VENDEDOR NOMB_VENDEDOR ID_JEFE OFICINA %COMISIÓN 10 Blanca Soto 27 Aguas Calientes 10 14 Mónica Márquez 44 Sonora 11 23 Francisco Moreno 35 Nayarit 39 Gabriela Acuña 44 Sonora 9 10 Instrucción: dar toda la información sobre los vendedores excepto aquellos de la oficina de Buenos Aires. Solución: SELECT: (VENDEDOR:OFICINA=‖B.C.‖ Resultado: ID_VENDEDOR NOMB_VENDEDOR ID_JEFE OFICINA %COMISIÓN 10 14 23 39 27 44 35 Aguas Calientes Sonora Nayarit Sonora Aguas Calientes Sonora Nayarit 10 11 9 10 15 12 11 Blanca Soto Mónica Márquez Francisco Moreno Gabriela Acuña Teresa Cardoso Alberto Sánchez Berenice Medina 27 44 35 44 0 27 27 Instrucción: ¿Qué vendedores tienen una comisión menor a 11%? Solución: SELECT (VENDEDOR: %COMISION<11) Resultado: ID_VENDEDOR NOMB_VENDEDOR ID_JEFE OFICINA %COMISIÓN 10 23 39 Aguas Calientes Nayarit Sonora 10 9 10 Blanca Soto Francisco Moreno Gabriela Acuña 27 35 44 Instrucción: ¿Quiénes son los vendedores de la oficina de Sonora que tienen una comisión >11%? Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 85 Bases de datos Programa desarrollado Solución: SELECT (VENDEDOR: OFICINA =‖Sonora‖ AND %_ COMISION>11) Resultado: ID_VENDEDOR NOMB_VENDEDOR ID_JEFE OFICINA %COMISIÓN 14 44 44 27 Sonora Sonora 11 12 Mónica Márquez Alberto Sanchez Instrucción: ¿Quiénes son los vendedores cuyo jefe tiene identificador 27 o una comisión mayor que 10? Solución: SELECT (VENDEDOR: ID_JEFE =27 AND %_ COMISION>10) Resultado: ID_VENDEDOR NOMB_VENDEDOR ID_JEFE OFICINA %COMISIÓN 10 14 37 27 44 35 12 Aguas Calientes Sonora B.C. Aguas Calientes Sonora Nayarit B.C. 10 11 13 15 12 11 10 Blanca Soto Mónica Márquez Elena Hernández Teresa Cardoso Alberto Sánchez Berenice Medina Buster Sánchez 27 44 12 27 27 27 6. Proyección Para ilustrar la operación de selección preguntaban ―Quiénes…‖, lo cual siguiere que los usuarios querían solo los nombres de los vendedores que satisfacían la condición de la consulta. Sin embargo, la respuesta a cada consulta incluía filas enteras de datos tomadas de la relación VENDEDOR, debido a que la operación de selección siempre selecciona filas enteras. Está claro que se necesita alguna manera de eliminar las columnas no deseadas. Si la operación de selección puede pensarse como la eliminación de las filas no deseadas, la operación de proyectar se piensa como la eliminación de las columnas no deseadas. La relación que resulta de una operación de proyectar se llama una proyección de la relación original. A diferencia de otras operaciones del álgebra relacional, la operación de proyectar no requiere de una palabra clave especial o símbolo. Más bien, para crear una proyección —una relación consistente solo de ciertas columnas identificadas de otra relación— se enlista simplemente la relación original seguida de las columnas que se quieren conservar encerradas entre corchetes. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 86 Bases de datos Programa desarrollado Por ejemplo, si se desea identificar a los vendedores de la oficina de Sonora, se proyectaría la columna nombre de la relación VENDEDOR-SONORA que visualizamos en los ejemplos anteriores. VENDEDOR_SONORA [ NOMB_VENDEDOR] Esto resulta de la siguiente relación: NOMB_VENDEDOR Mónica Márquez Gabriela Acuña Alberto Sánchez Se podrían haber escogido más de una columna, si se quiere el ID, el nombre y el jefe de esos vendedores se introduce: VENDEDOR_SONORA (ID_VENDEDOR, NOMB_VENDEDOR, ID_JEFE) Resultante: ID_VENDEDOR NOMB_VENDEDOR ID_JEFE 14 Mónica Márquez 44 39 Gabriela Acuña 44 44 Alberto Sánchez 27 Es de interés conocer todos los diferentes % de comisión pagados a los vendedores. Se puede obtener esto proyectando simplemente la columna %_COMISION de la relación VENDEDOR: VENDEDOR [%COMISION] Resultante: %COMISIÓN 10 11 9 13 15 12 Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 87 Bases de datos Programa desarrollado En cada tasa de comisión aparece solo una vez, aún cuando distintos vendedores tienen la misma tasa de comisión. Ya que una relación es un conjunto, una tasa dada aparece solo una vez. Esto es una característica importante de la operación de proyectar. Automáticamente elimina filas duplicadas de la operación resultante. Esto acurre cuando la relación resultante consiste de más de una columna. Si cualesquiera dos filas enteras de una relación son idénticas columna por columna, la fila aparece solo una vez en la relación. Esta operación presenta una oportunidad conveniente para mostrar el anidamiento de operaciones en el álgebra relacional. Por anidamiento se entiende la ejecución de más de una operación sin asignar explícitamente un nombre a las relaciones intermedias resultantes. Por ejemplo, añadamos una operación de proyectar a una de las consultas usadas para ilustrar las operaciones de selección: Instrucción: ¿quiénes son los vendedores que tienen una comisión < que 11%? Solución: SELECT (VENDEDOR: %COMISION<11) [NOMB_VENDEDOR] Resultado: NOM_VENDEDOR Blanca Soto Francisco Moreno Gabriela Acuña Claudia Ortega Este ejemplo muestra la operación de selección que se realiza primero seguida por la proyección sobre la columna NOMB_VENDEDOR resultante. Esto es permitido para anidar operaciones del álgebra relacional, como se necesite, usando paréntesis donde se necesite mostrar el orden de las operaciones. 7. Reunión Conocida como JOIN, sirve para conectar datos a través de relaciones, es la función más importante en cualquier lenguaje de base de datos. Se conocen varias versiones que son las siguientes: la reunión natural (natural join) la reunión theta (theta join) y la reunión externa (outer join) de las cuales la más importante es la reunión natural (ver figura 3.14 de la relación VENTAS). Esta relación almacena al cliente, al vendedor y al producto involucrado en una transacción de venta particular, incluyendo los IDs de estos tres elementos de datos. La información permite hacer conexiones lógicas entre las relaciones CLIENTE, VENDEDOR y PRODUCTO. Pensemos en un ejemplo: se deja conocer los nombres de los clientes que han hecho compras al vendedor 10, lo primero es seleccionar aquellas ventas aplicadas solo al vendedor 10, y se ponen entonces en una relación que se llama VENTA_10. VENTA_10 Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 88 Bases de datos Programa desarrollado FECHA ID_CLIENTE ID_VENDEDOR ID-PRODUCTO CANTIDAD 28/02 05/02 14/02 100 105 105 10 10 10 200 100 50 2241 2241 2249 Se obtiene la información deseada reuniendo las relaciones VENTAS_10 y CLIENTE. Esta operación procede como sigue: 1. Se crea el producto de VENTA_10 y CLIENTES. Se obtiene una relación con 11 columnas (5 de VENTA_10 y 6 de ID_CLIENTE) y 12 filas (3 en VENTA_10 * 4 en CLIENTE). 2. Todas las filas de esta relación producto se eliminan, excepto aquellas en las cuales el ID_CLIENTE de VENTA_10 es igual al ID_CLIENTE de CLIENTE. En el resultado se debe observar que hay dos columnas ID_CLIENTE en la relación y que en cada fila los valores en estas dos columnas son idénticos. 3. Dado que las dos columnas ID_CLIENTE contienen idéntica información, una de ellas puede eliminarse. Esto resulta en la reunión natural de VENTA_10 y CLIENTE. FECHA ID_CLIENTE ID_VENDEDOR ID_PRODUCTO CANTIDAD 28/02 05/02 14/02 100 105 105 10 10 10 ID_CLIENTE NOMB_CLIENTE DIRECCIÓN 100 105 105 José Julián Julián 2241 2241 2241 200 100 50 PAÍS SALDO INICIAL SALDO ACTUAL 45.551 49.333 49.333 52.113 57.811 57.811 Box 241, Sonora Mérida B 918, Aguas Culiacán Calientes Culiacán B 918 Aguas Calientes Figura. Resultado de la reunión natural. Se ha obtenido mucha información de solo los nombres de los clientes. Si se quiere solo el nombre, se tendrá que proyectar la columna NOMB_CLIENTE de la relación. 8. División Para trabajar con la división ejemplifiquemos la siguiente consulta. Instrucción: liste los vendedores que han vendido todos los productos. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 89 Bases de datos Programa desarrollado La base de datos contiene cuatro productos diferentes con ID: 1035, 2241, 2249 y 2218. Un vendedor satisface la consulta si él o ella han vendido cada uno de estos productos al menos una vez. Es decir, para cada uno de estos productos debe haber al menos una fila en VENTA y que contenga el ID-VENDEDOR de este vendedor. Una consulta como esta puede solucionarse usando la operación división (divide) del álgebra relacional. ¿Cómo resolver esta consulta? Se seguirá un procedimiento cercano al que se usaría intuitivamente, y se mostrará cómo la operación de división corresponde con este procedimiento. El primer paso será entonces obtener una relación consistente del atributo clave para todos los productos en la base de datos. Se hace esto proyectando PRODUCTO en ID_PROD. PI:= PRODUCTO[ID_PROD] PI es una relación que contiene todos los valores de ID_PROD y se obtendrá una relación que contenga todas las instancias donde su vendedor y un producto están juntos en una única venta. Esto se hace proyectando la relación VENTA en ID_PROD e ID_VENDEDOR: PI_VI := VENTA[ID_PROD, ID_VENDEDOR] La instancia PI_VI consiste en un ID_PROD y un ID_VENDEDOR y significa que el producto representado por ID_PROD fue vendido por el vendedor representado por ID_VENDEDOR. Entonces PI_VI: consiste en todas las combinaciones producto/vendedor, donde el vendedor ha vendido el producto. Resultante: PI ID_PROD 1035 2241 2249 2518 ID_VENDEDOR ID_PROD 10 2241 23 2518 23 1035 39 2518 37 2518 10 2249 23 2249 23 2241 Ahora solo se necesita determinar si cada vendedor presentado en PI_VI se asocia con cada ID del producto en PI, esto se hace automáticamente con la operación de división. A:= PI_VI/PI Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 90 Bases de datos Programa desarrollado Resultado: A ID: VENDEDOR 23 En la operación de división se asume que A, B y C son relaciones, y se desea dividir B por C, dando A como resultado. 1. Las columnas de C deben ser un subconjunto de las columnas de B. Las columnas de A son todas y solo aquellas de B que no son columnas de C, esto corresponde al ejemplo anterior. Las columnas de PI/VI son ID_PROD e ID_VENDEDOR, mientras que la columna de PI es ID_PROD y la columna de A es ID_VENDEDOR. 2. Una fila se encuentra en A solo si está asociada con B con la fila de C. Esto también se corresponde al ejemplo citado, debido a que una fila de A (ID_VENDEDOR=23) está asociada en PI_VI con todas las filas de PI y es además el único ID_VENDEDOR asociado. 3. Esta operación es la opuesta a la operación producto. Es fácil verificar que si una relación es el producto de dos relaciones B y C, entonces se puede obtener B, dividiendo el producto de C: (B*C)/C=B entonces vemos la analogía con la aritmética común del porqué se ha llamado operación de división. Codd la incluyó en el álgebra relacional para proporcionar la capacidad necesaria para el cuantificador universal del cálculo relacional. De manera práctica, la operación de división se proporcionó para que se pudieran relacionar consultas que involucraran ―cada‖ o ―todo‖ como parte de la condición. 9. Asignación Asignación es la operación estándar de los lenguajes de computación, que consiste en dar un valor a un nombre. En este caso la asignación se usa para dar un nombre a una nueva relación que se crea de relaciones existentes. Se usa el signo ―:=‖ (es el nombre asignado a) para indicar la asignación de nombres a relaciones. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 91 Bases de datos Programa desarrollado Para sintetizar los temas abordados a lo largo de la presente unidad, te sugerimos revisar los materiales de apoyo. Actividad 4. Ejercicio: Funciones básicas de SQL y álgebra relacional El propósito de esta actividad es que comiences a aplicar las funciones básicas de SQL, y las operaciones elementales del álgebra relacional, para saber en qué casos se utiliza cada una de ellas. Instrucciones: 1. En un documento de texto, enlista las instrucciones DDL y su aplicación, así como un ejemplo de cada una de ellas. 2. En la segunda cuartilla del documento, menciona para qué sirven los comandos DML de SQL y muestra el uso de cada una de ellas. 3. Selecciona dos de las operaciones básicas del álgebra relacional y aplícalas en la base de datos. 4. Guarda la actividad con el nombre BDD_U3_A4_XXYZ y envíala a tu facilitador(a) para recibir retroalimentación. Evidencia de aprendizaje. Desarrollo e integración de prototipo El propósito de esta actividad es que organices las actividades elaboradas a lo largo del curso para que las presentes como evidencia final de aprendizaje, además debes incluir el prototipo de bases de datos que confeccionaste en el curso. 1. En un documento de Word, anota el nombre de la base de datos del caso de estudio que elaboraste a lo largo de la asignatura y el índice de los elementos que conformarán la presente evidencia. 2. Integra en el documento las actividades realizadas a lo largo del curso, de acuerdo con el índice anterior, donde cada una tenga los siguientes datos: nombre de la actividad, objetivo y conclusiones. 3. Redacta una presentación que enlace el contenido con su aplicación en el prototipo, incluyendo su importancia. 4. Agrega los elementos del prototipo: a) Concepto de base de datos. b) Elección del caso de estudio. c) Tipo de Base de datos utilizado. d) Esquema de entradas, procesos y salidas. e) Instrumento de recopilación de información (cuestionario, entrevista o encuesta), según el caso. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 92 Bases de datos Programa desarrollado f) Reporte de estudio de factibilidad. g) Requerimientos de hardware y software. h) Modelo entidad relación i) Tablas lógicas. j) Diccionario de datos. k) Aplicación de cinco operaciones de álgebra relacional como mínimo al caso de estudio. l) Conclusiones. 5. Guarda la evidencia con el nombre BDD_U3_EA_XXYZ. 6. Enviar el archivo a tu facilitador(a) para recibir retroalimentación. Al terminar el proceso anterior, ingresa al foro Preguntas de Autorreflexión y lee los cuestionamientos que formuló tu Facilitador(a), posteriormente, sal del foro, ingresa a la sección Autorreflexiones y, dentro de ésta, envía tu autorreflexión con el nombre BDD_U3_ATR_XXYZ. Consideraciones específicas de la unidad Es importante ser autodidacta, creativo y sobre todo tener una amplia visión para jugar con las diferentes instrucciones SQL, así como para la aplicación del álgebra relacional, ya que esto aportará un mayor conocimiento teórico y práctico para el desarrollo de las habilidades en la construcción de bases de datos. Cierre de la unidad Has concluido la tercera, y última, unidad de la asignatura de Bases de datos. A lo largo del curso se abordaron los temas básicos de informática, ligando las ideas, poco a poco, hasta llegar a los conceptos generales de las bases de datos, que fueron el punto clave para conocer los tipos de bases de datos y gestores, dando una explicación de sus funciones y usos. Finalmente, en la unidad tres, se revisaron los modelos de bases de datos y su aplicación de manera práctica, utilizando SQL y sus instrucciones DDL y DML, pasando a la aplicación de ejercicios con álgebra relacional. Es recomendable que revises nuevamente la unidad en caso de que los temas que se mencionan no te sean familiares o no los recuerdes, de no ser este el caso, ahora realiza el examen final para concluir satisfactoriamente con la unidad. ¡Felicidades! Examen final Como parte de la evaluación de la asignatura, se pide llevar a cabo un examen final cuyo propósito es reforzar los conocimientos adquiridos a lo largo del curso. Ingresar al aula virtual para realizar la actividad. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 93 Bases de datos Programa desarrollado Fuentes de consulta • Celma, M.; Casamayor, J.C.; Mota, L. (2003) Base de datos relacionales. Madrid: Pearson-Prentice HALL. • MasterMagazine (2005) Definición de ASCII. Recuperado el 21 de enero de 2011, de http://www.mastermagazine.info/termino/3926.php • Pérez L, César. (2008) Oracle 10g: administración y análisis de Base de datos. Segunda edición. México: Alfaomega. • Quiroz, Javier. (2003) ―El modelo relacional de Base de datos‖ en Boletín de Política Informática Núm. 6 (Versión electrónica). Recuperado el 26 de enero de 2011, de: http://www.inegi.org.mx/inegi/contenidos/espanol/prensa/contenidos/articulos/tecnologia/relacional.pdf • Real Academia Española (2001) Diccionario de la lengua española. Vigésima segunda edición (Versión digital). Recuperado el 19 de enero de 2011, de http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=inform%E1tica • Silberschatz, Abraham. (2006). Fundamentos de Base de Datos. España: McGraw-Hill. Educación Superior Abierta y a Distancia • Ciencias Exactas, Ingeniería y Tecnología. 94