DIRECCIÓN DE EDUCACIÓN ABIERTA Y A DISTANCIA Y VIRTUALIDAD LICENCIATURA EN EDUCACIÓN BÁSICA CON ÉNFASIS EN TECNOLOGÍA E INFORMÁTICA BASES DE DATOS TABLA DE CONTENIDO CORPORACIÓN UNIVERSITARIA DEL CARIBE DIRECCIÓN DE EDUCACIÓN ABIERTA Y A DISTANCIA Y VIRTUALIDAD Rectora Piedad Martínez Carriazo Vicerrectora Académica Lidia Flórez de Albis Compilador I. Introducción III. Instrucciones de Manejo II. Justificación IV. Referentes Teóricos 1 Introducción a las Bases de Datos 1.1Datos. 1.2 Tipos de Datos. 1.3 Conceptos básicos de Bases de Datos, DBMS, Esquema de datos, Indepen dencia lógica y física de datos. 1.4 Historia de los sistemas de bases de datos. 1.5 Aplicaciones de los sistemas de bases de datos. 1.6 Bases de datos en el contexto de la Educación. 1.7 Tipos de Almacenamiento de Bases de Datos. 1.8 Ventajas de un sistema gestor de base de datos. 1.9 Tipo de base de datos según su uso. 1.10 Modelos de los datos. 2 Modelo Entidad-Relación 2.1 Conceptos Básicos del modelo entidad – relación E-R 2.2 Restricciones de integridad en el modelo E–R. 2.3 Claves. 2.4 Diagrama Entidad-Relación 2.5 Característica del modelo E-R extendido. 2.6 Diseño de un esquema de bases de datos E-R María García Medina Asesor Pedagógico Jorge Velasco Lara Equipo de Edición Andrés Bertel González Alberto García Stave Jairo Martínez Banda 3 4 Modelo Relacional 3.1 Estructura de las bases de datos relacionales. 3.2 Esquema de la bases de datos relacional. 3.3 Claves. 3.4 Lenguaje de consulta. 3.5 Transformación del modelo E-R al modelo relacional. Lenguaje de Consulta Estructurado (SQL) 4.1 Introducción al Lenguaje Estructurado de Consulta (SQL). 4.2 Estructura básica (clausulas select, from, where). 4.3 Modificación de la base de datos (In serción, Borrado, Actualización). 4.4 Gestor de base de datos MySql Work bench 2013 © Corporación Universitaria del Caribe - CECAR Información del Compilador La compiladora del módulo es María Angélica García Medina, Ingeniera de Sistemas, Especialista en Docencia con amplios conocimientos en el manejo de Bases de Datos a nivel organizacional. En la Ingeniería de Sistema se ha desempeñado como integrador de soluciones en las áreas de ingeniería de software, ingeniería de planeación informática e ingeniería de redes. También se ha desempeñado como docente en la División de Educación Abierta y a Distancia de CECAR. Dirección de Educación Abierta y a Distancia y Virtualidad I. Introducción Los datos son la parte medular de cualquier sistema de información. El almacenamiento, manipulación y recuperación de información en forma eficiente, es vital y estratégico para cualquier organización. Las bases de datos juegan un rol muy importante en casi todas las áreas donde las computadoras son usadas, incluyendo negocios, ingeniería, medicina, leyes, educación, etc. La importancia e impacto de las bases de datos es incuestionable a medida que las organizaciones ya sean gubernamentales, instituciones educativas, universidades, entidades comerciales, entre otras, crean y mantienen bases de datos en la cuales estén contenidas todo tipo de información, desde documentos, tablas estadísticas, datos financieros, objetos multimediales y datos de diferente naturaleza. Por tal motivo, las tecnologías en base de datos, incluyendo métodos de arquitectura y acceso, se están desarrollando rápidamente para mantenerse al día con esta demanda de mecanismos de administración de la información. El objetivo principal de este módulo es brindar a los estudiantes un acercamiento a los aspectos importantes manejado en las bases de datos, como son los conceptos básicos, las técnicas utilizadas para la creación y utilización de las bases de datos, para que así adquiera la capacidad de construir algo tangible que pueda aplicar como profesional. El módulo está organizado en cuatro unidades, distribuidas de la siguiente forma: Unidad I: Introducción a las bases de datos, en la cual se exponen los conceptos básicos manejados en las bases de datos, se incluye un poco de historia sobre los sistemas de base de datos, donde se aplican, los tipos de almacenamiento de base de datos, los tipos según su uso, las ventajas de los SGBD y las bases de datos en el contexto de la educación. Unidad II: Modelo Entidad – Relación, es una de las partes principales a tratar dentro del módulo ya que en ella se efectúa el análisis de cómo se diseña una base de datos, los temas a tratar abarcan los conceptos básicos de entidades, relaciones, atributos; las correspondencia de cardinalidades, restricciones de participaciones, claves, diagramas del modelo entidad – relación y diseño del esquema del modelo Entidad – Relación. Unidad III: Modelo Relacional, el cual es un marco formal de los modelos de datos, en este capítulo se trata la estructura de las bases de datos relacionales, esquema de la bases de datos relacional, uso de las claves, lenguaje de consulta y transformación del modelo E-R al modelo relacional. Corporación Universitaria del Caribe - CECAR I. Introducción Unidad IV: Esta última unidad, es dedicada al manejo del lenguaje SQL, en el cual se presentan las características generales del SQL, su estructura básica, utilización de las clausulas select, from y where y modificación de la base de datos utilizando las expresiones Insert, Delete, Update. Al finalizar la última unidad, está la sección de anexos en la cual se encuentra los manuales de usuarios de las herramientas utilizadas para la diagramación del modelo entidad – relación y el modelo relacional, direcciones electrónicas correspondientes para que el estudiante pueda descargar estas herramientas freeware, también se dispone de una serie de link para profundizar los temas tratados en el módulo. Dirección de Educación Abierta y a Distancia y Virtualidad II. Justificación El desarrollo de la tecnología aplicada a la información, especialmente ligada a las comunicaciones, ha logrado un alto y rápido desarrollo se puede encontrar un nivel de implementación elevado en todos los ámbitos de la vida actual, tanto laboral como doméstica. En los sectores en los que más se desenvuelve el ser humano siempre están presentes para mejorar su desarrollo y/o productividad: industria, comercio, educación, finanzas, investigación, etc. Es por ello que el uso correcto de las tecnologías resulta ser un factor determinante para alcanzar altos niveles de eficiencia y competitividad en el ámbito de la empresa o incluso en el personal. El acercamiento de los futuros Licenciados en Educación Básica con Énfasis en Tecnología e Informática a los aspectos más importantes que se encierra en un Sistema de Base de Datos, les darán las herramientas, competencias y habilidades necesarias para que le ayuden a construir algo tangible desde la construcción de bases de datos vista como aquel sistema de información que organiza y que forma parte de un programa de ordenador que pueda seleccionar rápidamente los fragmentos de datos que necesite un usuario cualquiera, una base de datos es un sistema de archivos electrónico que se pueda aplicar a su vida profesional. Esto se podrá alcanzar a través de la fundamentación teórico – práctica de las bases de datos, modelos de datos y el manejo del lenguaje de consulta estructural, lo cual le ayudará a desarrollar pequeñas bases de datos que serán de utilidad en su quehacer pedagógico, contribuyendo al desarrollo de competencias del saber hacer; además, con el ejercicio de ésta, la consolidación de habilidades de saber analizar y saber comunicar, acciones que contribuirán a promover el desarrollo del pensamiento reflexivo, como expresión de la autonomía profesional, con lo cual se establece su pertinencia con los propósitos de formación del programa. Las competencias que promueve la asignatura son: METACOGNITIVA Conoce y utiliza herramientas informáticas para el diseño e implantación de una base de datos en el ámbito escolar. RELACIONAL Aplica los conocimientos obtenidos a situaciones laborales concretas utilizando los procedimientos adecuados, para solucionar problemas de manera autónoma y transferir las situaciones adquiridas a situaciones novedosas. Corporación Universitaria del Caribe - CECAR II. Justificación TECNOLÓGICA Utiliza los principios básicos de los sistemas de base de datos, para utilizarlos en el contexto educativo. ARGUMENTATIVA Argumenta y justifica el porqué de los modelos a utilizar en la solución de problemas prácticos específicos de las diferentes áreas de actividad de su profesión utilizando lenguaje y simbología apropiados para las representaciones que requiera. Dirección de Educación Abierta y a Distancia y Virtualidad III. Instrucciones de Manejo Para el desarrollo exitoso de este módulo es importante el ritmo y secuenciación del trabajo autodirigido, de tal forma que puedas trabajarlo en casa y posteriormente socializarlo en clases con tu profesor, pero para ello debes tener disponibilidad de tiempo, alto grado de responsabilidad e iniciativa con cada una de las actividades programadas. También cabe destacar, que la información consignada en el módulo puede ser ampliada para que usted enriquezca los conceptos que se desarrollan a lo largo del módulo, por lo tanto se le recomienda que consulten las citas referenciadas en la bibliografía. »Considere el módulo como una herramienta que le permitirá fortalecer sus conocimientos sobre las Bases de Datos. »Lea y estudie cada uno de los temas con anticipación a la sesión con el tutor, para que llegue con inquietudes y se genere la discusión a partir de estas. »La constitución de grupos de estudio, que se han denominado CIPAS, es altamente recomendable, dado que no todos asimilan de la misma manera, por tal razón es conveniente concretar con otros compañeros algunos puntos clave de las lecturas y análisis de la información del módulo. Además es importante analizar cada uno de los puntos de vistas de los integrantes del CIPA, el cual nos ayudará a afianzar y enriquecer nuestra propia comprensión sobre los temas desarrollados en el módulo. Complete sus actividades propuestas en cada una de las unidades apoyándose en los referentes bibliográficos que encuentras al final de la unidad IV y también en sitios web relacionados con los temas tratados en cada unidad. »En el desarrollo de las unidades del módulo se ejemplificará la base de datos del observador del estudiante, este ejemplo de base de datos se retomará en un módulo de semestres próximos. »» Utilice la bibliografía recomendada para realizar las diferentes actividades y afianzar los conceptos estudiados en el módulo. Corporación Universitaria del Caribe - CECAR IV. Referentes Teóricos Las conceptualizaciones del módulo están fundamentadas en los aportes teóricos que se han compilado por la autora en la fundamentación del diseño de base de datos, como lo son: C. J. Date, en su libro introducción a los sistemas de bases de datos, 7ª ED., se ha tenido encuenta el modelo y la sintaxis y la semántica de SQL. Adoración de Miguel y Mario Piattini, en su libro Fundamentos de Base de datos, 2ª Edición, en los cuales exponen la historia de las bases de datos, los conceptos básicos de base de datos, el modelo entidad – relación y el modelo relacional, que son el objeto de estudio del presente modulo. Silberschatz, Korth y Sudarshan (2007), con temas más actuales sobre los fundamentos de bases de datos, y la ejemplificación de los modelos Entidad – relación, relacional y el lenguaje estructurado de consulta. González (2011), en su libro Gestión de base de datos, en el cual destaca los aspectos más importantes que encierran los sistemas gestores de base de datos relacionales. Dirección de Educación Abierta y a Distancia y Virtualidad Estructura del Módulo Corporación Universitaria del Caribe - CECAR Unidad 1 Introducción a las Bases de Datos Introducción a las Bases de Datos PRESENTACIÓN En esta primera unidad se presenta la introducción a las bases de datos, en la cual se realiza la conceptualización sobre los tipos de datos que se utilizan en la creación de una base de datos, al mismo tiempo se dan a conocer los conceptos básicos de Bases de Datos, la DBMS, los esquema de datos, Independencia lógica y física de datos; se hace una breve introducción sobre la historia de los sistemas de bases de datos, aplicaciones de los sistemas de bases de datos, se dan a conocer cuáles son las bases de datos en el contexto de la educación, cuales son los tipos de almacenamiento de Bases de Datos, Ventajas de un sistema gestor de base de datos; los tipos de base de datos según su uso, y conceptualización de los modelos de los datos, y su clasificación. La finalidad de esta primera unidad es que el estudiante aprenda qué son las bases datos y cada uno de los elementos que hacen parte de ésta y al mismo tiempo comprenda la importancia que tiene ella en cualquier ámbito donde sean utilizadas. PROBLEMA ¿Cómo puedo fundamentar mi conocimiento teórico acerca de las bases de datos? Corporación Universitaria del Caribe - CECAR Bases de Datos COMPETENCIAS ESPECÍFICAS » Interpreta y maneja las diferentes conceptualizaciones utilizadas en las bases de datos y como se relacionan entre ellas. Identifica las diferentes evoluciones que han tenido las bases de datos a lo largo de los años. »» Argumenta sobre la importancia de las bases de datos en la educación. »» Identifica los diferentes tipos de almacenamientos de un sistema de base de datos. » Identifica y explica los diferentes modelos de datos. 13 Dirección de Educación Abierta y a Distancia y Virtualidad Introducción a las Bases de Datos DINÁMICA PARA CONSTRUIR CONOCIMIENTO ACTIVIDAD PREVIA: Trabajo independiente »Antes de comenzar la lectura de esta primera unidad responda de manera escrita los siguientes interrogantes: ¿Qué son datos? ¿Cuáles tipos de datos conoce? ¿Qué es una base de datos? ¿Qué es un SMBD? »» Liste al menos cuatro términos que usted conozca relacionados con el tema de base de datos y explíquelos. ¿Qué es un modelo? ¿Qué bases de datos educativas conoce? 14 »Lea detenidamente la unidad I. »Una vez leída la unidad, confronte sus saberes previos con lo aprendido en la unidad. »Analice detenidamente los temas tratados en la unidad y elabore un síntesis general sobre ésta. ACTIVIDAD EN GRUPO »Reunidos en sus grupos confronte sus saberes previos con los de sus compañeros. »Socializar en el grupo los diferentes temas tratados en la Unidad I. »Desarrollar la actividad propuesta al final de la unidad. Corporación Universitaria del Caribe - CECAR Dirección de Educación Abierta y a Distancia y Virtualidad Introducción a las Bases de Datos 1.1 ¿QUÉ SON DATOS? S egún diccionario de la real academia, los datos son la Información dispuesta de manera adecuada para su tratamiento por un ordenador. A nivel de la terminología de base datos, un dato es una representación simbólica (numérica, alfabética, algorítmica, entre otros) de un atributo o característica de una entidad. Estos se pueden representar bien mediante variables o mediante constates. 1.2 TIPOS DE DATOS. Los tipos de datos se utilizan generalmente para declarar variables y son necesarios para que el intérprete o compilador conozca de antemano que tipo de información va a contener una variable. Existen cinco tipos de datos atómicos, los cuales son: carácter, entero, coma flotante, coma flotante doble precisión y sin valor (char, int, float, double y void, respectivamente). El tamaño y el rango de estos tipos de datos varían con cada tipo de procesador. 16 En cuanto a los tipos de datos empleados en el lenguaje estructurado de consultas SQL, se clasifican en 13 tipos de datos primarios y de varios sinónimos válidos reconocidos por dichos tipos de datos. Los tipos de datos primarios son: Tipo de Datos Longitud Descripción BINARY 1 byte Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. BIT 1 byte Valores Si/No ó True/False BYTE 1 byte Un valor entero entre 0 y 255. COUNTER 4 bytes Un número incrementado automáticamente (de tipo Long) CURRENCY 8 bytes Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807. DATETIME 8 bytes Un valor de fecha u hora entre los años 100 y 9999. SINGLE 4 bytes Un valor en punto flotante de precisión simple con un rango de - 3.402823*1038 a -1.401298*10-45 para valores negativos, 1.401298*10- 45 a 3.402823*1038 para valores positivos, y 0. Corporación Universitaria del Caribe - CECAR Bases de Datos Tipo de Datos Longitud Descripción DOUBLE 8 bytes Un valor en punto flotante de doble precisión con un rango de - 1.79769313486232*10308 a -4.94065645841247*10324 para valores negativos, 4.94065645841247*10-324 a 1.79769313486232*10308 para valores positivos, y 0. SHORT 2 bytes Un entero corto entre -32,768 y 32,767. LONG 4 bytes Un entero largo entre -2,147,483,648 y 2,147,483,647. LONGTEXT 1 byte por carácter De cero a un máximo de 1.2 gigabytes. LONGBINARY Según se necesite De cero 1 gigabyte. Utilizado para objetos OLE. TEXT 1 byte por carácter De cero a 255 caracteres. La siguiente tabla recoge los sinónimos de los tipos de datos definidos: Tipo de Dato Sinónimos BINARY VARBINARY BIT BOOLEAN LOGICAL LOGICAL1 YESNO BYTE INTEGER1 COUNTER AUTOINCREMENT CURRENCY MONEY DATETIME DATE TIME TIMESTAMP SINGLE FLOAT4 IEEESINGLE REAL Dirección de Educación Abierta y a Distancia y Virtualidad 17 Introducción a las Bases de Datos 18 DOUBLE FLOAT FLOAT8 IEEEDOUBLE NUMBER NUMERIC SHORT INTEGER2 SMALLINT LONG INT INTEGER INTEGER4 LONGBINARY GENERAL OLEOBJECT LONGTEXT LONGCHAR MEMO NOTE TEXT ALPHANUMERIC CHAR - CHARACTER STRING - VARCHAR VARIANT (No Admitido) VALUE 1.3. CONCEPTOS BÁSICOS 1.3.1. ¿Qué es una base de datos? Las bases de datos han evolucionado contantemente y es difícil dar una definición, esto se debe al amplio ámbito de aplicaciones y los avances en la tecnología. Una definición adecuada puede ser : “Colección o depósito de datos, donde los datos están lógicamente relacionados entre sí, tienen una definición y descripción comunes y están estructurados de una forma particular. Una base de datos es también un modelo del mundo real y, como tal, debe poder servir para toda una gama de usos y aplicaciones”. Citada en González (2011). Otra definición es la dada por Date (2001), el cual enuncia que una base de datos es una colección de datos relacionados que representa un cierto modelo o abstracción del mundo real, y a su vez esta es diseñada, construida y llenada con datos para un propósito específico. Al mismo tiempo las bases de datos tienen propiedades específicas las cuales son: Corporación Universitaria del Caribe - CECAR Bases de Datos »Representa algún aspecto del mundo real, del cual provienen los datos. »Es un conjunto de datos lógicamente coherente, con significado implícito. »Toda base de datos se diseña, crea y se carga con datos con un objetivo determinado y está dirigida a un grupo de usuarios interesados en el contenido de la base de datos. 1.3.2 ¿Qué es el DBMS? El DBMS (Data Base Management Sywstem) o SGBS (Sistema Gestor de Bases de datos), consiste en una colección de datos interrelacionados y un conjunto de programas para acceder a dichos datos. El objetivo del DBMS es crear un ambiente en que sea posible almacenar y recuperar información en forma eficiente y conveniente. La gestión de los datos implica tanto la definición de estructuras para almacenar la información como la provisión de los mecanismos para la manipulación de la información, al mismo tiempo deben proporcionar la fiabilidad de esta a pesar de las caídas del sistema o los intentos de acceso sin autorización. Ahora bien, si los datos van a ser compartidos entre varios usuarios, el sistema debe evitar los resultados anómalos. Podemos apreciar cómo es el funcionamiento de un DBMS en la figura 1. 19 figura 1. Dirección de Educación Abierta y a Distancia y Virtualidad Introducción a las Bases de Datos Los componentes que hacen parte de un DBMS son: »DDL, Data Definition Language: define los elementos de los datos en la Base de datos. Permite crear tablas, modificarlas y eliminarlas. »DML, Data Manipulation Languaje: manipula los datos para aplicaciones. Permite dar de alta filas, modificar contenido de columnas y borrar filas y columnas. »DCL, Data Control Language: lenguaje de control de datos. Permite administrar la seguridad de quien puede leer, escribir o borrar datos en una tabla; quién puede crear o eliminar tablas, etc. 1.3.3 Esquema de datos1 El esquema de una base de datos (en inglés, Database Schema) describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla. 20 El esquema es generalmente almacenado en un Diccionario de Datos. Aunque generalmente el esquema es definido en un lenguaje de Base de datos, el término se usa a menudo para referirse a una representación gráfica de la estructura de base de datos. 1 Recuperado de: http://es.wikipedia.org/wiki/Esquema_de_una_base_de_datos Corporación Universitaria del Caribe - CECAR Bases de Datos 1.3.4 Independencia de los datos las nóminas, como por ejemplo el aumen- Es la libertad que puede existir para modificar algunos de los esquemas sin que exista la necesidad de reescribir los programas de aplicación. Existen básicamente dos tipos de independencia: to de salario. Consistía en leer una cinta o »Independencia física: Se presenta cuando es posible la modificación del esquema físico sin afectar a los esquemas restantes. Actúa en los contenidos de la base de datos. »Independencia lógica. Ocurre cuando se modifica el esquema conceptual sin afectar al resto de los esquemas. Básicamente se modifica el esquema conceptual cuando cambia las características de los datos a almacenar. Actúa sobre la estructura de la base de datos. más y pasar los datos a otra, y también se podían pasar desde las tarjetas perforadas. Simulando un sistema de Backup. Finales de la década de 1960 y la década de 1970. El uso de los discos en ese momento fue un adelanto muy efectivo, ya que por medio de este soporte se podía consultar la información directamente, esto ayudo a ahorrar tiempo. No era necesario saber exactamente donde estaban los datos en los discos, ya que en milisegundos era recuperable la información. Los discos dieron inicio a las Bases 1.4 HISTORIA DE LOS SISTEMAS DE BASES DE DATOS. de Datos, de red y jerárquicas, pues los El nacimiento de las bases de datos se impulsa por el crecimiento de las computadoras, de hecho la automatización de las tareas de procesamiento de daros precede a los computadores, es así que la Máquina perforadora Herman Hollerit (1860-1929), fue utilizada para hacer el censo de Estados Unidos en 1880 y se tardaron 7 años para obtener resultados. tajas de los discos era posible guardar es- programadores con su habilidad de manipulación de estructuras junto con las ventructuras de datos como listas y árboles. En 1970, cuando E.F. Codd de IBM introdujo la idea de un modelo relacional de Bases de datos en un documento titulado “A Relational Model of data for Large Shared Banks”. La historia de las bases de datos se genera a partir de la evolución que han tenido estos, la cual se detalla a continuación: Década de 1950 y principios de la década de 1960. Se da origen a las cintas magnéticas. Por medio de este mecanismo se empezó a automatizar la información de Década de 1980. Bases del Modelo E-R »Abstraer la representación de datos. »Minimizar la redundancia de datos, dividiéndolos en distintos grupos no duplicados. »Incrementar la consistencia de datos, por ejemplo si se cambia el nombre de un cliente, este cambiara en todos los reportes. Dirección de Educación Abierta y a Distancia y Virtualidad 21 Introducción a las Bases de Datos Posteriormente un lenguaje llamado SQL (Lenguaje estructurado de consultas) también desarrollado por IBM, fue creado para generar reportes y actualizar datos en este nuevo modelo relacional. El Sistema R de IBM nació de este trabajo, pero fue ignorado por IBM, y poco después Oracle saco su versión comercial de BD basada en la teoría relacional de Codd, y el Berkely Ingres. Década de 1990. El lenguaje SQL se diseñó fundamentalmente para las aplicaciones de ayuda a la toma de decisiones, que son intensivas en consultas, mientras que el objetivo principal de las bases de datos en la década de 1980 de las aplicaciones de procesamiento de transac- 22 ciones, que son intensivas en actualizaciones. En esta época las herramientas para analizar grandes cantidades de datos experimentaron un gran crecimiento de uso. Finales de la década de 1990. El acontecimiento principal fue el crecimiento de la WWW. Al mismo tiempo las bases de datos se implementaron mucho más extensivamente. Los sistemas de bases de datos tienen soporte para tasa de transacciones muy altas. Se generan sistemas de base de datos con interfaz web. 1.5 APLICACIONES DE LOS SISTEMAS DE BASES DE DATOS. Las bases de datos son ampliamente usadas. Las aplicaciones más representativas de bases de datos según Silberschatz, Korth, Sudarshan (2002) son: »Banca: para información de clientes, cuentas y préstamos, y transacciones bancarias. »Líneas Aéreas: para reservas e información de planificación. Estas fueron las primeras en utilizar las bases de datos de forma distribuida geográficamente. »Universidades: para información de los estudiantes, matriculas de las asignaturas y cursos. »Transacciones de tarjetas de crédito: para compras con tarjetas de crédito y generación mensual de extractos. »Telecomunicaciones: para guardar registros de las llamadas realizadas, generación mensual de facturas, manteniendo el saldo de las tarjetas telefónicas de prepago y para almacenar información sobre las redes de comunicaciones. »Finanzas: para almacenar información sobre grandes empresas, ventas y compras de documentos formales financieros, como bolsas y bonos. »Ventas: para información de clientes, productos y compras. »Producción: para la gestión de la cadena de producción y para el seguimiento de la producción de elementos en las factorías, inventarios de elementos de almacenes y pedidos de elementos. »Recursos humanos: para información sobre los empleados, salarios, impuestos y beneficios, y para la generación de las nóminas Por tanto, podemos afirmar que los sistemas de bases de datos forman una parte importante en casi todas las empresas actuales. Corporación Universitaria del Caribe - CECAR Bases de Datos 1.6 BASES DE DATOS EN EL CONTEXTO DE LA EDUCACIÓN. En el Campo de la Educación podemos utilizar diversas Bases de Datos para buscar información. En este apartado hemos reseñado tan sólo aquellas que son accesibles desde Internet y las presentamos clasificadas en dos grupos: las que proporcionan información directa sobre Sistemas Educativos y las que nos proporcionan información menos específica aunque valiosa para los docentes e investigadores en este campo. RENATA ProQuest Eurybase International Association of Universities Observatorio de la Educación Iberoamericana OCDE - Education Database PISA-OCDE Ploteus Sistemas Educativos SITEAL UNESCO Base de Datos Mundial sobre desigualdades en Educación (WIDE) RENATA es la red de tecnología avanzada que conecta, comunica y propicia la colaboración entre las instituciones académicas y científicas de Colombia con las redes académicas internacionales y los centros de investigación más desarrollados del mundo. http://www.renata.edu.co/ Compañía editorial con sede en Ann Arbor, Michigan, que publica en formatos electrónicos y microfilm y suministra servicios de información para universidades, escuelas, empresas públicas, corporaciones y bibliotecas públicas en todo el mundo, fundamentalmente bases de datos bibliográficas. http://www.proquest. com.br/es-XL/ Información sobre Sistemas Educativos Europeos habitualmente en el idioma del país y en inglés. http://eacea.ec.europa.eu/education/eurydice/eurypedia_ en.php Contiene descripciones en formato RTF de los Sistemas de Educación Superior de 174 países. http://www.iau-aiu.net/ El Observatorio debe entenderse como un productor de sentidos y como un generador de rutas posibles que a su vez incorpora múltiples y diversas miradas que hoy existen en la Región y que constituyen el pensamiento educativo Iberoamericano. http://www.oei.es/observatorio.htm Esta Base de Datos de la OCDE proporciona información comparable internacionalmente sobre aspectos claves de los Sistemas Educativos. http://www. oecd.org/ Las Bases de Datos pisa de la OCDE proporcionan información y tablas sobre los distintos apartados del programa. http://pisa2000.acer.edu.au/index.php Es el portal que le informa de las oportunidades de aprendizaje en todo el espacio europeo, le ayudará a conocer la oferta de educación y formación en toda Europa. http://ec.europa.eu/ploteus/home_es.htm Base de datos creada por el CREADE (Centro de Recursos para la Atención a la Diversidad Cultural en Educación) del Ministerio de Educación y Ciencia. http://www.oei.es/quipu/ La base de datos del SITEAL se propone: brindar información comparable entre los países de América Latina sobre la relación entre educación y sociedad que posibilite el análisis de tendencias y el monitoreo de la situación y evolución de las brechas sociales. Es necesario registrarse para su uso. http://www.siteal. iipe-oei.org/ Indicadores Educativos. Global Monitoring Report. http://gmr.uis.unesco.org/selectIndicators.aspx Permite la comparación de distintos tipos de desigualdades -por nivel de ingresos, por género y por lugar de residencia- entre países y en el interior de éstos, y proporcionará además indicadores esenciales relativos a la enseñanza. http:// www.education-inequalities.org/ Dirección de Educación Abierta y a Distancia y Virtualidad 23 Introducción a las Bases de Datos 1.7 TIPOS DE ALMACENAMIENTO DE UNA BASES DE DATOS. res técnicas muchas veces pueden determinarse viendo la estructura de la base de datos, entre otras características. La mayoría de las bases de datos se almacenan en las llamadas memorias secundarias, especialmente discos duros, aunque, en principio, pueden emplearse también discos ópticos, memorias flash, etc2. Los encargados de elegir estas técnicas son los diseñadores y administradores de bases de datos, y dependen también de las capacidades del SGBD. La idea es que los encargados de la base de datos encuenLas razones por las cuales las bases de datos tren las técnicas idóneas, o sea, aquellas se almacenan en memorias secundarias son: que permitan la mayor velocidad posible de acceso a los datos. 24 »En general, las bases de datos son demasiado grandes para entrar en la memoria primaria. »La memoria secundaria suele ser más barata que la memoria primaria. »La memoria secundaria es más útil para el almacenamiento de datos permanente, puesto que la memoria primaria es volátil. »En cuanto al respaldo de las bases de datos, suelen emplearse tantos discos duros, discos ópticos. Técnicas de almacenamiento y recuperación de bases de datos: Las técnicas empleadas para almacenar bases de datos son sumamente importantes para la velocidad de acceso y recuperación de datos. Las técnicas dependen del tipo de almacenamiento, el uso que se le da o se le dará a la base de datos, la estructura de la misma, el SGBD empleado, etc. El almacenamiento en archivos de las bases de datos, Las bases de datos se almacenan en ficheros o archivos. Existen diferentes formas de organizaciones primarias de archivos que determinan la forma en que los registros de un archivo se colocan físicamente en el disco y, por lo tanto, cómo se accede a éstos. Las distintas formas de organizaciones primarias de archivos son: »Archivos de montículos (o no ordenados): esta técnica coloca los registros en el disco sin un orden específico, añadiendo nuevos registros al final del archivo. »Archivos ordenados (o secuenciales): mantiene el orden de los registros con respecto a algún valor de algún campo (clave de ordenación). »Archivos de direccionamiento calculado: utilizan una función de direccionamiento calculado aplicada a un campo específico para determinar la colocación de los registros en disco. »Árboles B: se vale de la estructura de árbol para las colocaciones de registros. Esta dependencia no significa necesariamente que haya que cambiar la estructura de la base de datos si se cambian las técnicas empleadas. Las técnicas de almacenamiento son independientes de la base de datos, pero, de todas maneras, las mejo- Existe una segunda forma de acceder a los datos llamada organización secundaria o 2 Recuperado de: http://www.alegsa.com.ar/Dic/ estructura de acceso auxiliar. Estas permialmacenamiento%20de%20bases%20de%20datos.php Corporación Universitaria del Caribe - CECAR Bases de Datos ten que los accesos a los registros de un archivo basado en campos alternativos, sean más eficientes que los que han sido utilizados para la organización primaria de archivos. 1.8 VENTAJAS DE UN GESTOR DE BASE DE DATOS. Dentro de las ventajas que ofrece el SGBD encontramos: »Datos compartidos actualizados: los datos están disponibles para todos los usuarios y cuando alguno actualiza, los cambios se ven reflejados inmediatamente. »Flexibilidad: para nuevas necesidades, los cambios de estructura no afectan los datos. »Rápida creación de nuevas aplicaciones: una vez creada la BD y funcionando, crear una nueva aplicación necesita menos tiempo. »Independencia de los datos: ocultan detalles de implementación. 1.9 TIPO DE BASE DE DATOS SEGÚN SU USO. “Las bases de datos están en continua evolución tecnológica y lo que antes requería tecnología separada de las propias bases de datos, ahora se integra dentro de las presentaciones normales de las bases de datos relacionales de mayor auge en el mercado” González (2011). A continuación algunos tipos de base de datos según su uso: »Base de datos documentales: Se encarga de almacenar documentos de diversas naturalezas (predominantemente textos, pero también planos, hojas de cálculos, fotografías, documentos digitalizados mediante escáner, etc.). »Base de datos geográficas o sistemas de información geográfica (SIG): almacena datos vectoriales sobre puntos geográficos, superficies regulares o irregulares, volúmenes, etc., asociados a valores estadísticos empleando sistemas de coordenadas geográficas o UTM (propias de los sistemas de posicionamiento global o GPS). Este tipo de base de datos ofrecen información sobre territorios, tales como estadísticas, demográficas, meteorológica, ventas de productos o cálculos sobre terrenos, tales como solapamiento de superficies, distancias entre puntos, cálculo de rutas, etc. »Base de datos OOP (orientada a objetos): nuevas bases de datos relacionales para establecer mecanismos de almacenamiento de objetos de longitudes indeterminadas que sean capaces de encapsular métodos en su interior. »Minería de datos: son bases de datos pensadas para obtener estadísticas y tendencias de negocios. La finalidad de estas bases de datos es la detección de tendencias para agrupar tipos de clientes y utilizar de forma retroalimentada esta información para mejorar el negocio. »Base de datos transaccionales (OLTP): son bases de datos orientadas a bloques de transacciones masivas, para clientes tales como entidades bancarias, instituciones bursátiles o mayoristas de ventas. Se caracterizan por su alto rendimiento, alta disponibilidad y preparación contra contingencias catastróficas. Dirección de Educación Abierta y a Distancia y Virtualidad 25 Introducción a las Bases de Datos 1.10 MODELOS DE LOS DATOS. 1.10.2 Clasificación de los modelos de datos. 1.10.1 Definición de un modelo de 1.10.2.1 Modelo Entidad–Relación (E-R) datos. Está basado en una percepción del mundo real que consta de una colección de objetos básicos llamados entidades y relaciones entre estos objetos, implementándose Date (2001) como “Un modelo de datos en forma gráfica a través del Diagrama Enes una definición lógica, independiente tidad Relación. y abstracta de los objetos, operadores y demás que en conjunto constituyen la máquina abstracta con la que interac- 1.10.2.2 Modelo Relacional túan los usuarios. Los objetos nos permiten modelar la estructura de los datos. Se basa en el concepto matemático de reLos operadores nos permiten modelar lación. En este modelo, la información se su comportamiento”. representa en forma de “tablas” o relaciones, donde cada fila de la tabla se interpreta como una relación ordenada de valores (un También se puede definir como: conjunto de valores relacionados entre sí). En la estructura de la base de datos se encuentra el modelo de datos, el cual es definido por: 26 “Una colección de herramientas concep- 1.10.2.3 Modelo de datos orientado a tuales para describir los datos, las relaciones, la semántica y las restricciones de consistencia”, Silberschatz, Korth, Sudarshan (2002). “Arquitectura organizativa que impone un esquema de acceso a los datos” González (2011). Los diferentes modelos de datos que se han propuestos se clasifican en modelo entidad-relación, modelo relacional que son los que se estudiaran en el presente modulo, aparte de estos encontramos los modelos lógicos basados en objetos, modelos lógicos basados en registros y modelos físicos. objetos Este modelo se puede observar como una extensión del modelo E-R con las nociones de encapsulación, métodos (funciones) e identidades de objeto. 1.10.2.4 Modelo jerárquico Fue el primer modelo realmente operativo de base de datos, este modelo se sigue empleando en sistemas main frame, principalmente en sistemas IBM. En este modelo se tiene una entidad o tabla como punto de partida de todos los datos, a partir de esta, se ramifican el camino para acceder al resto de los datos que precisamos. Corporación Universitaria del Caribe - CECAR Bases de Datos 1.10.2.5 Modelo en red Conocido como modelo CODASYL (Conference on Dat System Language), conformada por una colección o set de registros, los cuales están conectados entre sí por medio de enlaces en una red. El registro es similar al de una entidad como las empleadas en el modelo relacional. ACTIVIDAD 1.Realice una síntesis de los temas estudiados en esta primera unidad. 2.Consulte los diferentes manejadores de base de datos que existen en el mercado y realice un mapa conceptual. 3.Realice un cuadro comparativo entre los modelos de datos. 4. Consulte sobre las bases de datos documentales y las bases de datos relacionales modernas y luego responda la siguiente pregunta: ¿Podemos integrar una base de datos documental dentro de una base de datos relacional moderna? Justifique su respuesta. 5.¿Qué tipo de usuarios interaccionan con una base de datos? Dirección de Educación Abierta y a Distancia y Virtualidad 27 Introducción a las Bases de Datos AUTOEVALUACIÓN 1. Es una representación simbólica de un atributo o característica de una entidad. a) Base de datos b) Datos c) Tipo de datos 2. Se utilizan generalmente para declarar variables y son necesarios para que e interprete o compilador conozca de antemano que tipo de información va a contener una variable. a) Base de datos b) Datos c) Tipo de datos 28 3. Las bases de datos se pueden definir como: a) Colección o depósito de datos, donde los datos están lógicamente relacionados entre sí, tienen una definición y descripción comunes y están estructurados de una forma particular. Una base de datos es también un modelo del mundo real y, como tal, debe poder servir para toda una gama de usos y aplicaciones b) Colección de datos relacionados que representa un cierto modelo o abstracción del mundo real, y a su vez esta es diseñada, construida y llenada con datos para un propósito específico. c) A y B, son correctas 4. Consiste en una colección de datos interrelacionados y un conjunto de programas para acceder a dichos datos. a) DBMS b) DDL c) DCL 5. Describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos a) Independencia Física b) Independencia Lógica c) Esquema de datos 6. Es la libertad que puede existir para modificar algunos de los esquemas sin que exista la necesidad de reescribir los programas de aplicación. a) Esquema de datos b) Independencia lógica c) Independencia física 7. Se presenta cuando es posible la modificación del esquema físico sin afectar a los esquemas restantes. Actúa en los contenidos de la base de datos. a) Independencia lógica b) Esquema de datos c) Independencia física Corporación Universitaria del Caribe - CECAR Bases de Datos 8. Ocurre cuando se modifica el esquema conceptual sin afectar al resto de los esquemas. Básicamente se modifica el esquema conceptual cuando cambia las características de los datos a almacenar. Actúa sobre la estructura de la base de datos. a) Esquema de base de datos b) Independencia lógica c) Independencia física 9. Las técnicas de almacenamiento de datos han evolucionado a lo largo de los años, en la década de 1980, esta evolución se basó en: a) El uso de los discos en ese momento fue un adelanto muy efectivo, ya que por medio de este soporte se podía consultar la información directamente, esto ayudo a ahorrar tiempo. b) Abstraer la representación de datos. Minimizar la redundancia de datos, dividiéndolos en distintos grupos no duplicados. c) Diseña SQL que es fundamentalmente para las aplicaciones de ayuda a la toma de decisiones, que son intensivas en consultas. 10. Se puede definir el modelo de datos como: a) Una colección de herramientas conceptuales para describir los datos, las relaciones, la semántica y las restricciones de consistencia. b) Una colección de datos interrelacionados y un conjunto de programas para acceder a dichos datos. c) Una Colección o depósito de datos, donde los datos están lógicamente relacionados entre sí, tienen una definición y descripción comunes y están estructurados de una forma particular. Una base de datos es también un modelo del mundo real y, como tal, debe poder servir para toda una gama de usos y aplicaciones. Dirección de Educación Abierta y a Distancia y Virtualidad 29 Introducción a las Bases de Datos 30 Corporación Universitaria del Caribe - CECAR Unidad 2 Modelo Entidad - Relación M-E-R Modelo Entidad Relación PRESENTACIÓN En la presente unidad abarcaremos la metodología del diseño de las base de datos, el cual está conformado por tres etapas las cuales son: diseño conceptual, diseño lógico y diseño físico. El diseño conceptual es el proceso por el cual se construye un modelo de la información que se utiliza en una empresa u organización, independientemente del SMBD que se vaya a implementar el sistema y de los equipos informáticos o cualquier otra consideración física. El modelo conceptual permite describir la realidad mediante representaciones lingüística y gráficas, al mismo tiempo este modelo tiene propiedades de expresividad, simplicidad, minimalidad y formalidad. El modelo conceptual más utilizado es el modelo Entidad – Relación que maneja los siguientes conceptos: entidades, relaciones, atributos; además se estudiara las restricciones en el modelo E-R, claves, diagramación del modelo E-R, características del modelo E-R extendido (Especialización, generalización y agregación) y por ultimo diseño de un esquema de base de datos E-R en el cual se tendrá en cuenta la metodología del diseño conceptual E-R. 32 Para la diagramación de cada uno de los ejemplos y actividades propuestas se utilizará las herramientas open source DIA, de la cual se da una explicación en el anexo I ubicado al finalizar la última unidad del módulo. PROBLEMA ¿Qué acciones debo realizar para el diseño y la estructura de una base de datos, teniendo encuenta el modelo entidad – relación? Corporación Universitaria del Caribe - CECAR Bases de Datos COMPETENCIAS ESPECÍFICAS » Explica la importancia de una metodología y un modelo para el diseño de base de datos. » Clasifica los diferentes modelos de datos manejados en las bases de datos. » Identifica los elementos utilizados en un modelo entidad – relación y hace buen uso de ellos. » Ilustra el concepto de cardinalidad y lo pone en práctica e indica la importancia de la cardinalidad en el modelo entidad – relación. » Interpreta y diseña un esquema del modelo entidad – relación siguiendo la metodología de diseño conceptual para diseñar de una base de datos. 33 Dirección de Educación Abierta y a Distancia y Virtualidad Modelo Entidad Relación DINÁMICA PARA CONSTRUIR CONOCIMIENTO ACTIVIDAD PREVIA: Trabajo independiente »Antes de comenzar la lectura de esta segunda unidad responda de manera escrita lo que usted entiende por: Modelo de datos. ¿Qué es una entidad, atributo y relación? ¿Qué es cardinalidad? ¿Qué es una clave? ¿Qué entiendes por modelo entidad – relación? 34 »Lea detenidamente la unidad II. »Una vez leída la unidad, confronte sus saberes previos con lo aprendido en la unidad. »Analice detenidamente los temas tratados en la unidad y elabore un análisis general sobre esta. ACTIVIDAD EN GRUPO »Reunidos en sus grupos confronte sus saberes previos con los de sus compañeros. »Socializar en el grupo los diferentes temas tratados en la Unidad II. »Desarrollar las actividades propuestas en cada apartado. Corporación Universitaria del Caribe - CECAR Bases de Datos METODOLOGÍA DE DISEÑO DE samiento y optimización de consultas, control de concurrencia, gestión de transaccioBASE DE DATOS P ara introducirnos a esta temática miremos los planteamientos dados por Batini, Ceri & Navathe (1994), “El diseño de base de datos es el proceso por el que se determina la organización de una base de datos, incluidos su estructura, contenido y las aplicaciones que se han de desarrollar” […] “el diseño de base de datos desempeña un papel central en el empleo de los recursos de información en la mayoría de las organizaciones” […] “las ultima décadas se han caracterizado por un fuerte crecimiento en el número e importancia de las aplicaciones de base de datos. Las bases de datos son componentes esenciales de los sistemas de información, usadas rutinariamente en todos los computadores […]. El diseño de base de datos se ha convertido en una actividad popular, desarrollada no solo por profesionales sino también por no especialistas”. nes y recuperación, etc.” “Según ha avanzado la tecnología de base de datos, así se han desarrollado las metodologías y técnicas de diseño. Se han alcanzado un consenso, por ejemplo, sobre la descomposición del proceso de diseño en fases, sobre los principales objetivos de cada fase y sobre las técnicas para conseguir estos objetivos”. […] “Desafortunadamente, las metodologías de diseño de base de datos no son muy populares; la mayoría de las organizaciones y de los diseñadores individuales confía muy poco en las metodologías para llevar a cabo el diseño y esto se considera, con frecuencia, una de las principales causas de fracaso en el desarrollo de los sistemas de información. Debido a la falta de enfoques estructurados para el diseño de base de datos, a menudo se subestiman […] ”A finales de la década de los 60’s, cuan- el tiempo o los recursos necesarios para do las bases de datos entraron por primera aun proyecto de base de datos, las bases vez en el mercado del software, los dise- de datos son inadecuadas o ineficientes en ñadores de bases de datos actuaban como relación a las demandas de la aplicación, artesanos, con herramientas muy primiti- la documentación es limitada y el mantenivas: diagramas de bloques y estructuras de miento es difícil”. registros eran los formatos comunes para la especificaciones y el diseño de base de […] “Muchos de estos problemas se deben datos se confundía frecuentemente con la a la falta de una claridad que permita enimplantación de las bases de datos. Esta tender la naturaleza exacta de los datos, situación ahora ha cambiado, los métodos a un nivel conceptual y abstracto. En muy modelos de diseño de base de datos han chos casos, los datos se describen desde evolucionado paralelamente con el progre- el comienzo del proyecto en términos de so de la tecnología en los sistemas de base las estructuras finales de almacenamiento; de datos, que ofrecen poderosos lenguajes no se da peso a un entendimiento de las de consultas, herramientas para el desa- propiedades estructurales de los datos que rrollo de aplicaciones e interfaces amables sea independiente de los detalles de la reacon los usuarios. La tecnología de base de lización.” datos cuenta ya con un marco teórico, que incluye la teoría relacional de datos, proce- […] “El diseño de una base de datos es un Dirección de Educación Abierta y a Distancia y Virtualidad 35 Modelo Entidad Relación proceso complejo que abarca decisiones a muy distintos niveles. La complejidad se controla mejor si se descompone el problema en subproblemas y se resuelve cada uno de estos subproblemas independientemente, utilizando técnicas específicas. Así, el diseño de una base de datos se descompone en diseño conceptual, diseño lógico y diseño lógico”. A continuación se describe cada uno de los diseños: 36 Diseño conceptual parte de las especificaciones de requisitos de usuarios y su resultados es el esquema conceptual de la base de datos. Un modelo conceptual es una descripción de alto nivel de la estructura de la base de datos, independientemente del SMBD que se vaya a utilizar para manipularla. Este modelo es un lenguaje que se utiliza para describir esquemas conceptuales; tiene por objetivo, describir el contenido de información de la base de datos y no las estructuras de almacenamiento que se necesitarán para manejar esta información. miento y los métodos utilizados para tener un acceso eficiente a los datos. Por ellos el diseño físico depende del SMBD concreto y del esquema físico se expresa mediante su lenguaje de definición de datos. MODELO DE DATOS Para describir la estructura de una base de datos es necesario definir el concepto de modelo de datos, el cual es: “una colección de herramientas conceptuales para describir datos, relaciones entre ellos, semántica asociada a los datos y restricciones de consistencia” (Korth & Silberschatz, p. 6). Tomando lo dicho por Castaño & Piattini (2000) “Los modelos de datos soportados por los SGBD no suelen ofrecer, dado su bajo nivel de abstracción, los mecanismos suficientes para captar la semántica del mundo real, por lo que surgen modelos conceptuales, más ricos semánticamente, que facilitan la labor del diseñador ayudándole en su comunicación con el usuario”. Estos modelos conceptuales se utilizan para representar la realidad a un alto nivel de abstracción, al mismo tiempo se pueden construir una descripción de la realidad fácil de entender. Diseño lógico parte del esquema conceptual y da como resultado un esquema lógico, el cual es una descripción de las bases de datos en términos de las estructuras de datos que puede procesar un tipo de SMBD. Este modelo es un lenguaje usado para especificar esquemas lógicos (modelo En el diseño de base de datos se usan prirelacional, modelo de red). El diseño lógico mero los modelos conceptuales para lograr depende del tipo de SMBD que se vaya a una descripción de alto nivel de la realidad. utilizar, no depende del producto en concreto. Diseño físico parte del esquema lógico y da como resultado un esquema físico, es cual es una descripción de la implementación de una base de datos en memoria secundaria: las estructuras de almacena- MODELO ENTIDAD-RELACIÓN (E-R) Está basado en una percepción del mundo real consistente en objetos básicos llamados entidades y de relaciones entre objetos. Se desarrolló para facilitar el diseño de Corporación Universitaria del Caribe - CECAR Bases de Datos base de datos permitiendo la especificación de un esquema de la empresa que representa la estructura lógica completa de una base de datos. Los modelos de datos soportados por los SGBD debido a su bajo nivel de abstracción, no suelen ofrecer mecanismos para captar el mundo real, por lo que surgen los modelos conceptuales, entre los cuales encontramos el modelo entidad - relación. El modelo entidad-relación (E-R) propuesto por Peter Chen en 1970 presenta el modelo como una vista unificada de datos. Este modelo se centra en la estructura lógica y abstracta de los datos, como representación del mundo real, independiente de las características físicas. Originalmente el modelo E-R solo incluían los conceptos de entidad, relación y atributos, más tarde, se añadieron otros conceptos, como los atributos compuestos y las jerarquías de generalización, en lo que se ha denominado modelo entidad – relación extendido. 2.1 CONCEPTOS BÁSICOS DEL MODELO ENTIDAD-RELACIÓN (E-R) Hay tres nociones básicas que emplea el modelo de datos E-R: conjunto de entidades, conjunto de relaciones y atributos. 2.1.1 Entidades Una Entidad es cualquier tipo de objeto o concepto sobre el que se recoge información: cosa, persona, concepto abstracto o suceso. Una entidad tiene un conjunto de propiedades y valores para algún conjunto de propiedades pueden identificar una entidad de formas unívoca. Por ejemplo, el código 1.102.345.678 que representa a un estudiante de una institución educativa. Análogamente, el código 6B que representa el grado al que pertenece un estudiante es una entidad que identifica a que grado pertenece ese estudiante. Una entidad puede ser concreta, como una persona o un libro o puede ser abstracta, como un préstamo, unas vacaciones, o una anotación. Las entidades se representan gráficamente mediante rectángulos y su nombre aparece en el interior (ver figura 2.1). Un nombre de entidad sólo puede aparecer una vez en el esquema conceptual. Figura 2.1 Dirección de Educación Abierta y a Distancia y Virtualidad 37 Modelo Entidad Relación Existen dos clases de entidades: Fuerte o regular: Las ocurrencias de un tipo de entidad regular tienen existencia propia. Se representa con un rectángulo como se ha visto anteriormente. Es aquella que puede ser identificada unívocamente sin participar en la relación. Débil: Es una entidad cuya existencia depende de la existencia de otra entidad. Si elimina una ocurrencia del tipo de entidad regular, desaparecen también con ella todas las ocurrencias de la entidad débil dependiente de la misma. Un tipo de entidad débil se representa con dos rectángulos concéntricos con su nombre en el interior (ver figura 2.2) Por ejemplo si se borra un estudiante, con el desaparece las anotaciones registradas, ya que la existencia de una anotación de un estudiante pierde sentido si este estudiante no está en la base de datos. Figura 2.2 2.1.2 Relaciones 38 Es una correspondencia o asociación entre dos o más entidades. Cada relación tiene un nombre que describe su función. Por ejemplo, se puede definir una relación que asocie a un estudiante María con la anotación A-1. Esta relación especifica que María tiene una anotación con código A-1. La forma de representar las relaciones es mediante un rombo en el cual se escribe el nombre de la relación. En la figura 2.3 se observa la relación entre ESTUDIANTE y ANOTACIÓN. Figura 2.3 Figura 2.3 Las relaciones se caracterizan por tener un nombre, con el cual identificamos de forma única el tipo de relación y mediante el cual la referenciamos; y grado, que es el número de entidades que participan en el tipo de relaciones. Puede ser de grado 2 (binaria) cuando se asocian dos tipos de entidades, de grado 3 (ternarias) cuando se asocian tres tipos de entidades o en general de grado n. La relación mostrada en la figura 2.3 es de grado 2. Corporación Universitaria del Caribe - CECAR Bases de Datos 2.1.3 Atributos. Describen las propiedades que posee cada miembro de un conjunto de entidades. Gráficamente los atributos se representan mediante el texto descriptivo dentro de las entidades o relaciones a las que pertenecen. Así el tipo de entidad ESTUDIANTE tiene como atributos el IDEstudiante, Nombre, FechadeNacimiento, LugarNacimiento, Genero GradoEscolar, Jornada, DirectordeGrupo, etc.; y los atributos de la entidad ANOTACIÓN IdAnotacion, IdEstudiante, Fecha, Observacion, etc. Cada atributo tiene un conjunto de valores asociados denominados dominio, el cual se define como los valores posibles que puede tomar un atributo. Puede haber varios atributos definidos sobre un mismo dominio. Los atributos pueden ser simples o compuestos. Los atributos simples solo tiene un componente, que no se puede dividir en partes pequeñas que tengan un significado propio y un atributo compuesto son aquellos con varios componentes, cada uno con un significado por sí mismo. Y gráficamente se representan por medio de una elipse. 39 Figura 2.4 Recuerde que: las líneas son las que unen los atributos con las entidades y las entidades con las relaciones. ACTIVIDAD 1 Identifica las posibles entidades de una base de datos de una biblioteca escolar, luego mira la relaciones que existen entre cada una de las entidades que identificaste y por ultimo escribe los atributos de esas entidades. Dirección de Educación Abierta y a Distancia y Virtualidad Modelo Entidad Relación 2.2 RESTRICCIONES DE INTEGRIDAD EN EL MODELO E–R De acuerdo a Silberschatz, Korth & Sudarshan (2002), un esquema de desarrollo E-R puede definir ciertas restricciones a las que los contenidos de la base de datos se deben adaptar. A continuación se describirán las correspondencias de cardinalidades y las restricciones de participación. 2.2.1 Correspondencia de cardinalidades Las correspondencias de cardinalidades también denominada razón de cardinalidades, expresa el número de entidades a las que otra entidad puede estar asociada. 40 Figura 2.4 »Uno a Varios (1 a N): Una entidad en A se asocia con cualquier número de entidades en B (ninguna o varios). Una entidad en B, sin embargo, se puede asociar con cualquier número de entidades (ninguna o varias) en A. Figura 2.5 La cardinalidad con la que una entidad participa en una relación específica es el número mínimo y el número máximo de correspondencia en las que puede tomar parte cada ocurrencia de dicha entidad. La participación de una entidad en una relación es obligatoria (total) si la existencia de cada una de sus ocurrencias requiere la existencia de al menos una ocurrencia de la otra entidad participante, si no, la participación es opcional (parcial). A continuación se toman la correspondencia de cardinalidad de las relaciones binarias dadas por Korth & Silberschatz (2002), los cuales enuncia que para un conjunto de entidades binarias R entre los conjuntos de entidades A y B, la correspondencia de cardinalidades debe ser una de las siguientes: Figura 2.5 »Varios a uno (N a 1): Una entidad en A se asocia con a lo sumo una entidad en B. Una entidad en B, sin embargo, se puede asociar con cualquier número de entidades (ninguna o varias) en A. Figura 2.6 »Uno a uno (1:1): Una entidad en A se asocia con a lo sumo una entidad de B, y una entidad de B se asocia con a lo sumo una entidad en A. Figura 2.4 Corporación Universitaria del Caribe - CECAR Bases de Datos uno a varios, pero caso contrario es que una o varias anotaciones solo puede pertenecer a un estudiante entonces el conjunto de relaciones anotación a estudiante es de varios a uno. ACTIVIDAD 2 Figura 2.6 Con el ejercicio realizado en la actividad 1, identifique las cardinalidades entre cada una de las entidades que usted identifico para la base de datos de una biblioteca escolar. »Varios a Varios (N a N): Una entidad en A se asocia con cualquier número 2.2.2 Restricción de participación de entidades (ninguna o varias) en B, y una entidad en B se asocia con cualquier número de entidades (ninguna o Las restricciones pueden limitar los tipos de varias) en A. Figura 2.7 estructuras que es imposible representar mediante un cierto modelo de datos, o bien permiten restringir los valores que pueden tomar ciertos atributos o imponen limitaciones al tipo de correspondencia u otras características de las relaciones. Según lo propuesto por Silberschatz, Korth & Sudarshan (2000), la participación de un conjunto de entidades E en un conjunto de relaciones R se dice que es total si cada entidad en E participa al menos en una relación en R. Si solo algunas entidades en E participan en relaciones en R, la particiFigura 2.7 pación del conjunto de entidades E en la Cabe añadir que la correspondencia de relación R se llama parcial. cardinalidades apropiadas para un conjunto de relaciones particular depende obviamente de la situación del mundo real que 2.3 CLAVES se esté modelando. Es importante especificar como se distinguen las entidades y las relaciones. ConPara ejemplarizar lo anterior, miremos la ceptualmente, las entidades y las relaciosiguiente situación. En el observador del nes individuales son distintas; peor desde estudiante un estudiante puede tener mu- la perspectiva de las bases de datos, la dichas anotaciones, entonces el conjunto de ferencia entre ellas se expresa en términos relaciones de estudiante a anotación es de de los atributos. Dirección de Educación Abierta y a Distancia y Virtualidad 41 Modelo Entidad Relación Por tal motivo como lo expresan: “Silberschatz, Korth & Sudarshan (2000), los valores de los atributos de una entidad deben ser tales que permitan identificar unívocamente a la entidad, esto quiere decir que, no se permite que ningún par de entidades tengan exactamente los mismos valores de sus atributos”. Por lo que el concepto de clave nos permite hacer estas distinciones. Una clave, permite identificar un conjunto de atributos suficientes para distinguir las entidades entre sí. Las claves también ayudan a identificar a las relaciones y así distinguir las relaciones entre sí. Existen varios tipos de claves en las cuales encontramos: 42 »Superclave: es un conjunto de uno o más atributos que, formados colectivamente, permiten identificar de forma única una entidad. »Claves Candidatas: Son todos aquellos atributos que son únicos y por ende pueden cumplir la función de identificar un registro unívocamente. Por ejemplo, en la entidad Estudiante, tenemos un atributo denominado IdEstudiante el cual es único para cada estudiante. Este término es aplicado a casi todas las claves naturales. »Claves primarias: se llama así al campo o los campos que son finalmente designados para individualizar el registro. Pueden ser “naturales” o “artificiales” »Clave Natural: Se refiere a atributos ya existentes en la entidad a modelar, que son adecuados para identificar unívocamente a un registro, como lo números de identificación, los códigos. Se dividen en Simples (compuesta por un único atributo) o Compuestas (conformadas por varios campos, como por ejemplo, tipo de documento y numero de documento). »Clave Artificial: Es un campo que contiene un valor que no se desprende de los atributos reales de la entidad a modelar, sino que ha sido creado específicamente con el objetivo de individualizar un registro. Por lo general, suele ser una secuencia de números únicos y consecutivos. En la mayoría de los casos se considera la solución más adecuada para generar la clave primaria de una tabla, en especial ante la ausencia de claves candidatas. »Claves foranes: Son críticas para mantener la integridad de las relaciones entre entidades. Una clave foránea o clave ajena (o Foreign Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla referenciada. Corporación Universitaria del Caribe - CECAR Bases de Datos ACTIVIDAD 3 Defina cada una de las claves que identifican cada una de las entidades de la base de datos de una biblioteca escolar. 2.4 DIAGRAMA ENTIDAD-RELACIÓN (E-R) Los diagramas E-R constituyen la representación gráfica de las entidades y relaciones necesarias para construir el modelo de datos asociado a la situación del mundo real que se quiere representar en la base de datos a diseñar. Tomando lo dicho por Gonzales (2011), los diagramas E-R sirven para detectar incongruencias en el modelo. Esto sirve para iluminar puestos oscuros; si hemos comprendido o no el modelo correctamente o si quizás dicho modelo tiene algún posible fallo o cuestión organizativa que haya podido pasar desapercibida. Un análisis del modelo E-R, nos indica también en qué orden debe llenarse los datos en las tablas. Una cardinalidad 1 a N nos indica que primero debemos llenar la tabla con la cardinalidad 1 y después la tabla con la cardinalidad N para respetar la coherencia de los datos. Se debe tener encuenta que el análisis y diseño del modelo E-R es mejor trabajarlo en papel y realizar un bosquejo de entidades, relaciones y atributos y como estos interactúan entre sí, también si es posible debatir el modelo entre varios compañeros para compartir las ideas y tener una mejor visión de cómo es el modelado que se esté diseñando. La diagramación del modelo E-R es simple y clara, recuerde que los principales componentes de un diagrama E-R son: »Rectángulos, que representa las entidades. »Elipses, que representan atributos. »Rombos, que representan relaciones. »Líneas, que unen atributos a entidades y entidades a relaciones. »Elipses Dobles, que representan atributos multivalorados. »Elipses discontinuas, que representan atributos derivados. »Líneas dobles, que indican participación total de una entidad en un conjunto de relaciones. »Rectángulos Dobles, que representa conjuntos de entidades débiles. Dirección de Educación Abierta y a Distancia y Virtualidad 43 Modelo Entidad Relación Consideremos el diagrama E-R de la figura 2,8 que se muestra a continuación: Figura 2,8 Consta de dos entidades Estudiante y Docente_DirGrupo, relacionadas a través de una relación binaria tiene; los atributos de la entidad Estudiante son: IdEstudinate, NombreApellido, Grado… y los atributos de la entidad Docente_DirGrupo son: IdDocente, NombreApellido, GardoAcargo…, cabe anotar que los atributos subrayados son las clave primara de cada entidad respectivamente. 44 Ahora, para ilustrar la cardinalidad, tomemos como ejemplo lo siguiente: un estudiante tiene un solo docente director de grupo. Tenemos una entidad llamada Estudiante y una entidad Docente_DirGrupo. Cada estudiante tiene un único docente director de grupo. La relación gráficamente representada es: Figura 2,9 La raya vertical que se cruza con la relación junto al rectángulo de Docente_DirGrupo simboliza la cardinalidad. Quiere decir 1. En el otro lado, en la entidad Estudiante, la cardinalidad es “muchos” o N. Por tanto, tenemos un esquema de 1 a N; cada docente director de grupo tiene al menos un estudiante a cargo; y en el sentido contrario indica que no hay un estudiante que no tenga un director de grupo. Ahora veamos el siguiente ejemplo, varios escritores se juntan para escribir un libro, Juan ha escrito dos libros por separado y Pedro ha escrito tres. Juan y Pedro deciden unirse para escribir un solo libro entre los dos. La relación se representa de la siguiente forma: Corporación Universitaria del Caribe - CECAR Bases de Datos Figura 2,10 En este caso tenemos una relación de M a N (muchos a muchos), un escritor pudo haber escrito uno o más libros y un libro puede estar escrito por uno o más escritores. En este caso es una relación débil, no directa. Puede haber relaciones de cardinalidad cero. Este caso lo podemos observar en el siguiente ejemplo, una empresa vende palos de golf y decide abrir mercado en Francia y obtiene una lista de empresarios y directivos de compañías petroleras. Esta empresa fabricante de palos de golf pretende añadir a sus clientes actuales (clientes que ya han comparado productos) un grupo de posibles clientes potenciales que aún no han comprado nada, por tanto, aún o han enviado pedidos. Entonces estos son clientes potenciales. Se representa de la siguiente forma: 45 Figura 2,11 Esta relación indica que un cliente puede tener cero, uno o más pedidos. En la figura 2,12 muestra cómo se pueden representar atributos compuestos en el modelo E-R., podemos observar como el atributo Nombre, con atributos componentes PrimerNombre, SegundoNombre, PrimerApellido, SegundoApellido, reemplazan el atributo simple NombreApellido (este puede ser observado en la Figura 2,8) de la entidad Estudiante. También se puede observar el atributo compuesto dirección, cuyos atributos componentes son Municipio, Barrio, Calle, que reemplaza el atributo dirección. En la misma figura se muestra un atributo multivalorado, Teléfono, graficado por una elipse doble y un atributo derivado Edad que es representado por una elipse discontinua. Dirección de Educación Abierta y a Distancia y Virtualidad Modelo Entidad Relación Figura 2,12 2.5 CARACTERÍSTICA DEL MODELO E-R EXTENDIDO 46 Aunque los conceptos básicos de E-R pueden modelar la mayoría de las características de las bases de datos, algunos aspectos de una base de datos pueden ser más adecuadamente expresados mediante ciertas extensiones del modelo E-R básico. En este apartado se discuten las características E-R extendidas de especialización, generalización, conjuntos de entidades de nivel más alto y más bajo, herencia de atributos y agregación. 2.5.1 Especialización Un conjunto de entidades puede incluir subgrupos de entidades que se diferencian de alguna forma de las otras entidades del conjunto. Por ejemplo, un subconjunto de entidades en un conjunto de entidades puede tener atributos que no son compartidos por todas las entidades del conjunto de entidades. El modelo E-R proporciona una forma de representación de estos grupos de entidades distintos. Considérese el conjunto de entidades Familiar con atributos nombre, dirección, teléfono. Un acudiente puede clasificarse además como: padre y acudiente. Cada uno de los tipos de la entidad Familiar se describe mediante un conjunto de atributos que incluyen los atributos de la entidad Familiar más otros posibles atributos adicionales. Por ejemplo, la entidad Padre se puede describir mediante el atributo IdPadre, mientras que la entidad Acudiente se puede describirse mediante el atributo IdAcudiente. El proceso de designación de subgrupos dentro de una entidad se denomina especialización. La especialización de Familiar permite distinguir si el familiar es el padre del estudiante o el acudiente, entendiendo que el acudiente es distinto al núcleo familiar primario (madre y padre). Se puede aplicar repetidamente la especialización para refinar el esquema de diseño. Ver Figura 2,13. Corporación Universitaria del Caribe - CECAR Bases de Datos Figura 2,13 Se debe tener en cuenta que las entidades se pueden especializar por más de una característica distintiva. Por ejemplo, la característica distintiva entre una entidad empleado es el trabajo que realiza el empleado. Otra especialización coexistente podría estar basada en si la persona es un trabajador temporal o fijo, resultado en los conjuntos de entidades empleado-temporal y empleado-fijo. Cuando se forma más de una especialización de un conjunto de entidades, una entidad en particular puede pertenecer a varias especializaciones. Por ejemplo, una empleada dada puede ser una empleada temporal y secretaria. En términos de un diagrama E-R, la especialización se representa mediante un componente triangular etiquetado ES. La etiqueta ES representa, por ejemplo, que un cliente «es» una persona. La relación ES se puede llamar también relación superclase-subclase. Los conjuntos de entidades de nivel más alto y más bajo se representan como conjuntos de entidades regulares, es decir, como rectángulos que contienen el nombre del conjunto de entidades. ACTIVIDAD 4 1. Diagrame el ejemplo del párrafo anterior. 2. De la base de datos biblioteca escolar determine una entidad y describa que especialización tiene, luego grafíquela. Dirección de Educación Abierta y a Distancia y Virtualidad 47 Modelo Entidad Relación 2.5.2 Generalización En un tipo de entidades E es una generalización de un tipo de entidades R cuando los atributos de E están incluidos en los atributos de R. En la figura 2,14, podemos observar que: »El tipo de entidad Familiar con atributos IdFamiliar, Dirección y Teléfono, es una generalización de la entidad Padre, que tiene como atributo IdPadre. »El tipo de entidad Familiar con atributos IdFamiliar, Dirección y Teléfono, es una generalización de la entidad Acudiente, que tiene como atributo IdAcudiente. »La entidad Acudiente puede ser una generalización de los tipos de entidades Tíos, Abuelos, ICBF. 48 Figura 2,14 Se debe tener en cuenta que, la idea de generalización esta próxima a la de herencia en la programación orientada a objetos. ACTIVIDAD 5 1. Consulte que es la programación orientada a objetos y realice un cuadro sinóptico. 2. Defina si dentro de las entidades de la base de datos de la biblioteca escolar se puede representar una generalización, si es así, grafíquela. Corporación Universitaria del Caribe - CECAR Bases de Datos 2.5.3 Agregación El modelo E-R no permite establecer relaciones entre relaciones. La agregación consiste en considerar un conjunto de componentes (tipos de entidades o tipos de relaciones) como si fueran un único tipo de entidades. Su representación gráfica es un rectángulo donde se incluyen todos los componentes de la agregación. Una limitación del modelo E-R es que no resulta posible expresar relaciones entre relaciones. Para ilustrar la necesidad de tales construcciones tomemos como ejemplo el siguiente enunciado, Queremos gestionar partidos de un deporte. Cada partido tiene lugar entre dos equipos (el que juega en casa y el que juega fuera) y tiene un resultado. A cada partido le corresponde también un árbitro. Nos interesa determinar: »Qué equipos han jugado entre sí y con qué resultado. »Quien ha arbitrado cada partido. La representación gráfica del enunciado es el siguiente: 49 Figura 2,15 Si es necesario incluir las empresas que publicitan sus productos en un partido, sería necesario introducir un tipo de entidad Empresas y un tipo de relación Anuncia. Anuncia debería relacionar Empresas con Partidos, pero no existe esta entidad. La posibilidad, es crear una nueva entidad ternaria entre Equipos y Empresas, pero esto daría lugar a redundancia en los atributos de Partido. Esto se soluciona realizando una agregación denominada Partidos, que se tratara como un tipo de entidad y que puede relacionarse con Empresas. Ver Figura 2,16. Dirección de Educación Abierta y a Distancia y Virtualidad Modelo Entidad Relación Figura 2,16 50 ACTIVIDAD 6 1. Consulte sobre herencia de atributos y las restricciones sobre las generalizaciones. 2. Considere la relación ternaria trabaja-en con las e entidades Empleado, Sucursal y Trabajo, se desea registrar los directores para las tareas realizadas por un empleado de una sucursal; es decir, se desean registrar directores por combinaciones (Empleado, Sucursal, Trabajo), asumiendo que existe una entidad Director. Represente gráficamente esta situación utilizando la agregación. 2.5.4 Notaciones alternativas del modelo E-R En la figura 2,17 se resume el conjunto de símbolos que usan para el diseño de los diagramas del modelo E-R. Cabe añadir que no hay un estándar universal para la diagramación del modelo E-R, en la figura 2,17, se muestra los símbolos utilizados en el modelo E-R. Corporación Universitaria del Caribe - CECAR Bases de Datos 51 Figura 2,17 Tomada del libro Fundamentos de base de datos, cuarta edición. Para las restricciones de cardinalidad se pueden indicar de varias formas, ver figura 2,18. Las etiquetas * y 1 en los arcos que salen de las relaciones se usan a menudo para detonar relaciones varios a varios, uno a uno y varios a uno. En otra notación alternativa de la figura los conjuntos de relaciones se representan por líneas entre conjuntos de entidades sin rombos; solo se pueden modelar de formas relaciones binarias. Las restricciones de cardinalidad en esta notación se muestran por la notación “pata de gallo”, como se puede observar en la figura. Dirección de Educación Abierta y a Distancia y Virtualidad Modelo Entidad Relación Figura 2,18 Tomada del libro Fundamentos de base de datos, cuarta edición. 2.6 DISEÑO DE UN ESQUEMA DE BASES DE DATOS E-R 52 El modelo de datos E-R proporciona un alto grado de flexibilidad en el diseño de un esquema de base de datos para modelar una situación dada del mundo real. Entre las decisiones que toma un diseñador de base de datos están las expuestas por Silberschatz, Korth & Sudarshan (2002): »Si se usa un atributo o un conjunto de entidades para representa un objeto. »Si un concepto del mundo real se expresa más exactamente mediante un conjunto de entidades o mediante un conjunto de relaciones. »Si se usa una relación ternaria o un par de relaciones binaras. »Si se usa un conjunto de entidades fuertes o débiles; un conjunto de entidades fuertes y sus conjuntos de entidades débiles dependientes se pueden considerar como un «objeto» en la base de datos, debido a que la existencia de las entidades débiles depende de la entidad fuerte. »Si el uso de la generalización es apropiado; la generalización, o una jerarquía de relaciones ES, contribuye a la modularidad por permitir que los atributos comunes de conjuntos de entidades similares se representen en un único lugar en un diagrama E-R. »Si el uso de la agregación es apropiado, la agregación agrupa una parte de un diagrama E-R en un único conjunto de entidades, permitiendo tratar el conjunto de entidades de la agregación como una unidad única sin importar los detalles de su estructura interna. »Tenga en cuenta que para modelar una base de datos se necesita conocer y entender lo que se está modelando para tomar las decisiones anteriormente planteadas. Corporación Universitaria del Caribe - CECAR Bases de Datos 2.6.1 Metodología de diseño estas especificaciones se buscan los nombres o las características que se mencionan (por ejemplo: código del estudiante, nomEl primer paso en el diseño de una base bre del estudiante, grado, identificación del de datos es la producción del esquema docente, dirección del docente, código de conceptual. Normalmente, se construyen la anotación, fecha de la anotación). Tamvarios esquemas conceptuales, cada uno bién se buscan objetos importantes como para representar las distintas visiones que personas, lugares o conceptos de interés, los usuarios tienen de la información. Cada excluyendo aquellos nombres que sólo son una de estas visiones suelen corresponder propiedades de otros objetos. Por ejemplo, a las diferentes áreas funcionales de la emse pueden agrupar el código del estudiante presa como, por ejemplo, producción, vencon nombre del estudiante en una entidad tas, recursos humanos, etc. denominada Estudiante, y agrupar la identificación del docente con nombre del docenEstas visiones de la información, denomi- te en una entidad llamada Docente y códinadas vistas, se pueden identificar de va- go de anotación con fecha de anotación en rias formas. Una opción consiste en exami- la entidad Anotación. nar los diagramas de flujo de datos, que se pueden haber producido previamente, para Otra forma de identificar las entidades es identificar cada una de las áreas funcionabuscar aquellos objetos que existen por sí les. La otra opción consiste en entrevistar a mismos. Por ejemplo, Estudiante es una los usuarios, examinar los procedimientos, entidad porque los estudiantes existen, selos informes y los formularios, y también pamos o no sus nombres, direcciones y teobservar el funcionamiento de la empresa. léfonos. A los esquemas conceptuales correspondientes a cada vista de usuario se les denomina esquemas conceptuales locales. Cada uno de estos esquemas se compone de entidades, relaciones, atributos, dominios de atributos e identificadores. El esquema conceptual también tendrá una documentación, que se irá produciendo durante su desarrollo. Las tareas a realizar en el diseño conceptual son las siguientes: Identificar de entidades, Identificar de relaciones, Identificar los atributos y asociarlos 2.6.2.1 Identificar las entidades En primer lugar hay que definir los principales objetos que interesan al usuario. Estos objetos serán las entidades. Una forma de identificar las entidades es examinar las especificaciones de requisitos de usuario. En A veces, es difícil identificar las entidades por la forma en que aparecen en las especificaciones de requisitos. A veces se habla utilizando ejemplos o analogías. En lugar de hablar de Estu- diantes o Docente en general, se hablan de personas concretas, o bien, hablan de los puestos que ocupan esas personas. No siempre es obvio saber si un objeto es una entidad, una relación o un atributo. Por ejemplo ¿cómo se podría clasificar matrimonio? Pues de cualquiera de las tres formas. El análisis es subjetivo, por lo que distintos diseñadores pueden hacer distintas interpretaciones, aunque todas igualmente válidas. Todo depende de la opinión y la experiencia de cada uno. Usted como diseñador de una base de datos debe tener una visión selectiva y clasificar las cosas que observan dentro del contexto en el Dirección de Educación Abierta y a Distancia y Virtualidad 53 Modelo Entidad Relación que se encuentra. A partir de unas especificaciones de usuario es posible que no se pueda deducir un conjunto único de entidades, pero después de varias iteraciones del proceso de análisis, se llegará a obtener un conjunto de entidades que sean adecuadas para el sistema que se ha de modelar. 54 Una vez identificadas todas las relaciones, hay que determinar la cardinalidad mínima y máxima con la que participa cada entidad en cada una de ellas. De este modo, el esquema representa de un modo más explícito la semántica de las relaciones. La cardinalidad es un tipo de restricción que se utiliza para comprobar y mantener la calidad de los datos. Estas restricciones son aserciones sobre las entidades que se pueden aplicar cuando se actualiza la base de datos para determinar si las actualizaciones violan o no las reglas establecidas sobre la semántica de los datos. Conforme se van identificando las entidades, se les dan nombres que tengan un significado. Los nombres de las entidades y sus descripciones se anotan en el diccionario de datos. Cuando sea posible, se debe anotar también el número aproximado de ocurrencias de cada entidad. Si una entidad se conoce por varios nombres, éstos se deben anotar en el diccionario de datos Conforme se van identificando las relaciocomo alias o sinónimos. nes, se les van asignando nombres que tengan significado para el usuario. En el 2.6.2.2 Identificar relaciones diccionario de datos se anotan los nombres de las relaciones, su descripción y las carUna vez definidas las entidades, se de- dinalidades con las que participan las entiben definir las relaciones existentes entre dades en ellas. ellas. Del mismo modo que para identificar las entidades se buscaban nombres en las especificaciones de requisitos, para iden- 2.6.2.3 Identificar los atributos y tificar las relaciones se suelen buscar las asociarlos a las entidades expresiones verbales (por ejemplo: Estudiante tiene docente director de grupo, do- Al igual que con las entidades, se buscan cente realiza anotaciones, estudiante tiene nombres en las especificaciones de reanotaciones). Si las especificaciones de re- quisitos. Son atributos los nombres que quisitos reflejan estas relaciones es porque identifican propiedades, cualidades, identison importantes para el modelo que se esté ficadores o características de entidades o desarrollando y, por lo tanto, se deben re- relaciones, lo más sencillo es preguntarse, para cada entidad y cada relación, ¿qué inflejar en el esquema conceptual. formación se quiere saber de...?. Es muy importante repasar las especificaciones para comprobar que todas las relaciones, explícitas o implícitas, se han Al identificar los atributos, hay que tener encontrado. Si se tienen pocas entidades, en cuenta si son simples o compuestos. se puede comprobar por parejas si hay al- Por ejemplo, el atributo dirección puede guna relación entre ellas. De todos modos, ser simple, teniendo la dirección completa las relaciones que no se identifican ahora como un solo valor: `La Selva calle 7, Sinse suelen encontrar cuando se valida el celejo’; o puede ser un atributo compuesto, esquema con las transacciones que debe formado por la calle (`Nariño’), el número soportar. (`7’) y ciudad (`Sincelejo’). El escoger entre Corporación Universitaria del Caribe - CECAR Bases de Datos atributo simple o compuesto depende de los requisitos del modelo que se esté construyendo. Si el usuario no necesita acceder a cada uno de los componentes de la dirección por separado, se puede representar como un atributo simple. Pero si el usuario quiere acceder a los componentes de forma individual, entonces se debe representar como un atributo compuesto. También se deben identificar los atributos derivados o calculados, que son aquellos cuyo valor se puede calcular a partir de los valores de otros atributos. Por ejemplo, la fecha de nacimiento, el número de estudiantes de un grado. Si se hace, se debe indicar claramente que el atributo es derivado y a partir de qué atributos se obtiene su valor. Cuando se están identificando los atributos, se puede descubrir alguna entidad que no se ha identificado previamente, por lo que hay que volver al principio introduciendo esta entidad y viendo si se relaciona con otras entidades. Es muy útil elaborar una lista de atributos e ir eliminándolos de la lista conforme se vayan asociando a una entidad o relación. De este modo, uno se puede asegurar de que cada atributo se asocia a una sola entidad o relación, y que cuando la lista se ha acabado, se han asociado todos los atributos. Hay que tener mucho cuidado cuando parece que un mismo atributo se debe asociar a varias entidades. Esto puede ser por una de las siguientes causas: »Se han identificado varias entidades, cuando, de hecho, pueden representarse como una sola entidad. En este caso, se puede escoger entre introducir una jerarquía de generalización, o dejar las entidades que representan cada uno de estas. »Se ha identificado una relación entre entidades. En este caso, se debe asociar el atributo a una sola de las entidades y hay que asegurarse de que la relación ya se había identificado previamente. Si no es así, se debe actualizar la documentación para recoger la nueva relación. Conforme se van identificando los atributos, se les asignan nombres que tengan significado para el usuario. De cada atributo se debe anotar la siguiente información: »Nombre y descripción del atributo. »Alias o sinónimos por los que se conoce al atributo. »Tipo de dato y longitud. »Valores por defecto del atributo (si se especifican). »Si el atributo siempre va a tener un valor (si admite o no nulos). »Si el atributo es compuesto y, en su caso, qué atributos simples lo forman. »Si el atributo es derivado y, en su caso, cómo se calcula su valor. »Si el atributo es multievaluado. 2.6.2.4 Determinar los dominios de los atributos El dominio de un atributo es el conjunto de valores que puede tomar el atributo. Un esquema conceptual está completo si incluye los dominios de cada atributo: los valores permitidos para cada atributo, su tamaño y su formato. También se puede incluir información adicional sobre los dominios como, por ejemplo, las operaciones que se pueden realizar sobre cada atributo, qué atri- Dirección de Educación Abierta y a Distancia y Virtualidad 55 Modelo Entidad Relación butos pueden compararse entre sí o qué atributos pueden combinarse con otros. Aunque sería muy interesante que el sistema final respetara todas estas indicaciones sobre los dominios, esto es todavía una línea abierta de investigación. 2.6.2.5 Determinar los identificadores Cada entidad tiene al menos un identificador. En este paso, se trata de encontrar todos los identificadores de cada una de las entidades. Los identificadores pueden ser simples o compuestos. De cada entidad se escogerá uno de los identificadores como clave primaria en la fase del diseño lógico. 56 2.6.2.7 Dibujar el diagrama Entidad – Relación (E-R) Una vez identificados todos los conceptos, se puede dibujar el diagrama entidad-relación correspondiente a una de las vistas de los usuarios. Se obtiene así un esquema conceptual local. 2.7 EJEMPLO DE LA UTILIZACIÓN DE LA METODOLOGÍA DE DISEÑO DEL MODELO E- R A continuación se desarrollará un ejemplo donde se seguirán los pasos de la metodología para el diseño de una base de datos en el contexto de la educación. La situación problemática es la siguiente: Cuando se determinan los identificadores Se desea diseñar una base de datos del es fácil darse cuenta de si una entidad es observador del estudiante para un institufuerte o débil. Si una entidad tiene al menos ción educativa, el observador del estudianun identificador, es fuerte (otras denomina- te consta de la identificación personal del ciones son padre, propietaria o dominan- estudiante, datos familiares o del acudiente). Si una entidad no tiene atributos que le te, información académica y vocacional del sirvan de identificador, es débil (otras de- estudiante, seguridad social del estudiante, nominaciones son hijo, dependiente o su- situación de vulnerabilidad y registro de obbordinada). Todos los identificadores de las servaciones realizadas por el docente dientidades se deben anotar en el diccionario rector de grupo. de datos 2.6.2.6 Determinar las jerarquías de generalización 1. Identificar de entidades En el enunciado del problema se observa En este paso hay que observar las entida- los principales objetos de interés de los des que se han identificado hasta el mo- cuales se generan las siguientes entidades: mento. Hay que ver si es necesario reflejar »Estudiante las diferencias entre distintas ocurrencias »Acudiente (persona diferente a los pade una entidad, con lo que surgirán nuevas dres de familia, es decir tíos, abuelos, subentidades de esta entidad genérica; o hogar del ICBF) bien, si hay entidades que tienen caracte»Familiar (Datos familiares) rísticas en común y que realmente son su»InformaciónAcadémica (Información bentidades de una nueva entidad genérica. académica) Corporación Universitaria del Caribe - CECAR Bases de Datos »SeguridadSocial (Seguridad Social) »Anotaciones (Observaciones realizadas por el docente director de grupo al estudiante) »DocenteDirectorGrupo (Docente director de grupo) 2. Identificar de relaciones Aquí identificamos las relaciones existentes entre las entidades previamente identificadas, las relaciones para la situación planteada son: »Estudiante-Familiar: relación entre el estudiante y los datos familiares. »Estudiante-Acudiente: relación entre el estudiante y el acudiente. »Estudiante-InfoAcademica: relación entre el estudiante y su información académica. »Estudiante-SegSocial: relación entre el estudiante y la seguridad social a la que pertenece. »Estudiante-Docente: relación entre el estudiante y su docente director de grupo. »EstudianteAnotacion: relación entre el estudiante y sus anotaciones. »DocenteAnotacion: relación entre el docente y la anotación que realiza. 3. Identificar los atributos y asociarlos a las entidades Entidad Atributos Estudiante Identificación, Nombre y apellidos, fecha de nacimiento, dirección, teléfono, e-mail, género, peso, talla, RH, grado y grupo, jornada, Situación vulnerabilidad (si el estudiante es víctima del conflicto armado, es desvinculado de grupos armados, hijo o hija de adultos desmovilizados, si es desplazado o proviene de un hogar de protección del ICBF), numero de hermanos, Numero de personas con las que convive, estrato social, discapacidad. Familiar Identificación, Nombre y apellidos, dirección, teléfono, e-mail, profesión, nivel académico Acudiente Identificación, Nombre y apellidos, dirección, teléfono, e-mail, profesión, nivel académico, rasgo familiar (tío, abuelo, hogar de protección ICBF) InformaciónAcadémica Código del estudiante, Nombre del colegio de procedencia, Grados realizados, Jornada, tipo de institución educativa (privada o pública), motivo del retiro, grados repetidos, Fecha de retiro, Aptitud Vocacional SeguridadSocial Identificación de la seguridad social, Nombre de la entidad aseguradora, tipo de seguridad (EPS, IPS, ARS, SISBEN). Anotación Código del docente, Código del estudiante, fecha de la anotación, Observación realizada, seguimiento, acción tomada, compromisos. DocenteDirectorGrupo Identificación, Nombre y apellidos, dirección, teléfono, e-mail, profesión, Grado a cargo, Dirección de Educación Abierta y a Distancia y Virtualidad 57 Modelo Entidad Relación 4. Determinar los dominios de los atributos Los dominios corresponden al conjunto de valores que pueden tomar cada atributo. Entidad Atributos Dominio Estudiante Identificación Nombre y apellidos Fecha de nacimiento Dirección Teléfono E-mail Genero Peso Talla RH Grado y grupo Jornada Aptitud Vocacional Situación vulnerabilidad Numero de hermanos Número de personas con las que convive Estrato social Discapacidad Números enteros positivos Caracteres Formato de fecha corta Caracteres Caracteres Caracteres Caracteres Números enteros positivos Números enteros positivos Caracteres Caracteres Caracteres Caracteres Caracteres Caracteres Caracteres Caracteres Caracteres Familiar Identificación Nombre y apellidos Dirección Teléfono E-mail Profesión Nivel académico Números enteros positivos Caracteres Caracteres Caracteres Caracteres Caracteres Caracteres Acudiente Identificación Nombre y apellidos Dirección Teléfono E-mail Profesión Nivel académico Rasgo familiar Números enteros positivos Caracteres Caracteres Caracteres Caracteres Caracteres Caracteres Caracteres InformaciónAcadémica Código del estudiante Nombre del colegio de procedencia Grados cursados Tipo de institución educativa Motivo del retiro Fecha de retiro Números enteros positivos Caracteres Caracteres Caracteres Caracteres Formato de fecha corta SeguridadSocial Nombre de la entidad aseguradora Tipo de Seguridad Social Caracteres Caracteres 58 Corporación Universitaria del Caribe - CECAR Bases de Datos Anotación Código del docente Código del estudiante Fecha de la anotación Observación realizada Seguimiento Acción tomada Compromisos IdAnotacion Números enteros positivos Números enteros positivos Formato de fecha corta Caracteres Caracteres Caracteres Caracteres Caracteres DocenteDirectorGrupo Identificación Nombre y apellidos Dirección Teléfono E-mail Profesión Grado a cargo Números enteros positivos Caracteres Caracteres Caracteres Caracteres Caracteres Caracteres 5. Determinar los identificadores Los identificadores deben identificar de manera única un objeto dentro del conjunto perteneciente a la entidad o a la relación. Entidad Identificador Estudiante IdEstudainte DatosFamiliares IdDatosFlia Acudiente IdAcudiente InformaciónAcadémica IdEstudiante SeguridadSocial IdSeguridadSocial Anotación IdAnotacion DocenteDirectorGrupo IdDocente 6. Determinar las jerarquías de generalización La jerarquía de generalización se encuentra en la entidad DatosFamiliares, donde este familiar puede ser el padre de familia o acudiente. Al mismo tiempo se puede generalizar padre de familia para determinar si es el padre o la madre. 7. Dibujar el diagrama Entidad – Relación (E-R). Para realizar el diagrama E-R del ejemplo observador del alumno, nos ayudaremos con la aplicación Dia, la cual es una aplicación informática de propósito general para la creación de diagramas, desarrollada como parte del proyecto GNOME. Está concebido de forma modular, con diferentes paquetes de formas para diferentes necesidades. Dirección de Educación Abierta y a Distancia y Virtualidad 59 Modelo Entidad Relación Dia está diseñado como un sustituto de la aplicación comercial Visio de Microsoft. Se puede utilizar para dibujar diferentes tipos de diagramas. Actualmente se incluyen diagramas entidad-relación, diagramas UML, diagramas de flujo, diagramas de redes, diagramas de circuitos eléctricos, etc. Nuevas formas pueden ser fácilmente agregadas, dibujándolas con un subconjunto de SVG e incluyéndolas en un archivo XML. En el anexo A, encuentras manual de usuario de la aplicación y link de descarga. En la figura 2,19 se muestra la representación gráfica del modelo conceptual del observador del estudiante, expresado en términos de los conceptos E-R. El diagrama incluye las entidades, atributos, relaciones. 60 Figura 2,19 Corporación Universitaria del Caribe - CECAR Bases de Datos AUTOEVALUACIÓN 1.Explique las diferencias entre los términos clave primaria, clave candidata y superclave. 2.¿Cuál de estas relaciones es de cardinalidad 1 a N? a. b. c. 3.¿Cuál de estas relaciones es de cardinalidad N a N? 61 a. b. c. 4.Tenemos una entidad llamada periféricos y otra entidad llamada tipos. Dentro de los periféricos tenemos impresora, escáner, disco duro y modem. Dentro de los tipos tenemos entrada y salida. Dibuja el diagrama E-R que permita vincular periféricos con tipos. 5.Utiliza la metodología de diseño conceptual del modelo E-R y diseña una base de datos de la biblioteca escolar. 6.Construir un diagrama E-R para la oficina de registros de una universidad. La oficina mantiene datos sobre cada clase, incluyendo el profesor, la matrícula y la hora y lugar de las clases. Para cada clase-estudiante se registra una calificación. 7.Un restaurante posee una serie de mesas en las que se sientan clientes y que a su vez son atendidas por camareros. Los camareros van tomando nota de los distintos platos que piden los clientes que son preparados por los cocineros. modelar el sistema de información para que se puedan emitir facturas de la forma más detallada posible. Considerar que habrán clientes de los cuales conozcamos sus preferencias (es decir que tendrán un IdCliente, y otros que quieran permanecer anónimos en el restaurante. Dirección de Educación Abierta y a Distancia y Virtualidad Modelo Entidad Relación 8.Una oficina de registro de una universidad mantiene datos acerca de las siguientes entidades: (a) asignaturas, incluyendo el número, título, programa, y prerrequisitos; (b) ofertas de asignaturas, incluyendo número de asignatura, año, semestre, número de sección, profesor(es), horarios y aulas; (c) estudiantes, incluyendo IdEstudiante, nombre y programa; y (d) profesores, incluyendo número de identificación, nombre, departamento y título. Además, la matrícula de los estudiantes en asignaturas y las notas concedidas a estudiantes en cada asignatura en la que están matriculados se deben modelar adecuadamente. Constrúyase un diagrama E-R para la oficina de registro. Documéntense todas las decisiones que se hagan acerca de restricciones de correspondencia. 62 Corporación Universitaria del Caribe - CECAR Unidad 3 Modelo Relacional Modelo Relacional PRESENTACIÓN En esta unidad se presenta el modelo relacional, que es el modelo lógico en el que se basan la mayoría de los SMBD comerciales en uso hoy día. Se estudiarán los fundamentos del modelo relacional, que proporciona una forma muy simple y potente de representar datos. Se empieza exponiendo una breve historia del modelo relacional, para luego pasar a la estructura básica, el esquema de base de datos, claves, diagramas de esquema y lenguaje de consulta. La finalidad de esta tercera unidad es que el estudiante aprenda a interpretar el modelo relacional a partir de sus estructuras de datos y reglas de integridad y al mismo tiempo el estudiante aprenda a convertir una representación de base de datos de un diagrama E-R a un formato de tablas que es la base para la derivación de un diseño de base de datos relacional. 64 En esta unidad se empleara la herramienta MySql Workbench, la cual ayudará en la construcción del modelo relacional, en el anexo 2 del presente módulo encontrará el manual de instalación y link de descarga para obtener la herramienta. PROBLEMA ¿Cómo puedo usar los fundamentos del modelo relacional para la construcción de una base de datos, utilizando la herramienta MySql Workbench? Corporación Universitaria del Caribe - CECAR Bases de Datos COMPETENCIAS ESPECÍFICAS » Interpreta un modelo relacional a partir de su estructura de datos y reglas de integridad. » Describe las características del modelo relacional. » Interpreta cada una de las reglas de integridad manejadas en el modelo relacional. » Ilustra el modelo E-R en el modelo relacional utilizando la herramienta MySql Workbench. 65 Dirección de Educación Abierta y a Distancia y Virtualidad Modelo Relacional DINÁMICA PARA CONSTRUIR CONOCIMIENTO ACTIVIDAD PREVIA: Trabajo independiente »Antes de comenzar la lectura de esta tercera unidad responda de manera escrita lo que usted entiende por: ¿Qué entiendes por modelo relacional? ¿Qué es una tupla? ¿Qué es una clave? ¿Qué es una superclave? ¿Qué es un atributo, dominio y relación? 66 »Lea detenidamente la unidad III. »Una vez leída la unidad, confronte sus saberes previos con lo aprendido en la unidad. »Analice detenidamente los temas tratados en la unidad y elabore un análisis general sobre esta. »Lea detenidamente el manual de usuario de la herramienta MySql Workbench que encuentras en la sección de anexos. ACTIVIDAD EN GRUPO »Reunidos en sus grupos confronte sus saberes previos con los de sus compañeros. »Socializar en el grupo los diferentes temas tratados en la Unidad III. »Desarrollar las actividades propuestas al final de la unidad. Corporación Universitaria del Caribe - CECAR Bases de Datos MODELO RELACIONAL T omando lo expresado por Korth & Silberschatz (2000), desde la perspectiva histórica, el modelo de datos relacional es relativamente nuevo. Los primeros sistemas de base de datos estaban basados en el modelo de red o en el modelo de datos jerárquicos. Estos dos modelos están más íntimamente ligados a la implementación física de la base de datos que el modelo relacional. datos, como tercer paso de la habitual metodología de diseño de base de datos. En el modelo relacional se basa en el concepto matemático de relación. En este modelo, la información se representa en forma de “tablas” o relaciones, donde cada fila de la tabla se interpreta como una relación ordenada de valores. La primera persona en introducir el término de la teorías de las relaciones fue Cood a finales de los setentas, el cual propuso “la vista relacional de los datos… parece ser superior al modelo En los años siguientes a la introducción del en grafos o red… proporciona un medio de modelo relacional se ha desarrollado una describir datos con su estructura natural teoría para la base de datos relacionales. únicamente, es decir sin superponer ninEsta teoría ayuda al diseño de base de da- guna estructura adicional con el propósito tos relacional y al procedimiento eficiente de su representación en la máquina”. Cood de solicitudes de información a la base de también expresa “se propone un modelo de datos por parte del usuario. datos relacional de datos como una base para proteger a los usuarios de sistemas de datos formateados de los cambios que El modelo relacional constituye una alterna- potencialmente pueden alterar la representiva para la organización y representación tación de los datos, causados por el crecide la información que se pretende almace- miento del banco de datos y por los camnar en una base de datos. Se trata de un bios en caminos de acceso”. modelo teórico matemático que, además de proporcionarnos los elementos básicos de modelado (las relaciones), incluye un Para conseguir lo propuesto Cood introduconjunto de operadores (definidos en forma ce el concepto de relación (tabla) como esde un álgebra relacional) para su manipula- tructura básica del modelo. Todos los datos ción, sin ambigüedad posible. de una base de datos se representan en forma de relaciones cuyo contenido varía en el tiempo. Una relación, en terminología El carácter formal del modelo relacional relacional, es un conjunto de filas (tuplas) hace relativamente sencilla su representa- con unas determinadas características. ción y gestión por medio de herramientas informáticas. No es casual, pues, que haya sido elegido como referencia para la cons- El modelo relacional representa la seguntrucción de la gran mayoría de los Sistemas da generación de los SMBD, en el, todos de Gestión de Bases de Datos comerciales los datos están estructurados a nivel lógico disponibles en el mercado; ni tampoco que como tablas formadas por filas y columnas, sea también habitualmente seleccionado aunque a nivel físico pueden tener una escomo modelo de referencia para la elabo- tructura distinta. Un punto fuerte del moderación del esquema lógico de una base de lo relacional es la sencillez de su estructura Dirección de Educación Abierta y a Distancia y Virtualidad 67 Modelo Relacional lógica. Pero detrás de esa simple estructura hay un fundamento teórico importante del que carecen los SMBD de la primera generación, lo que constituye otro punto a su favor. En los últimos años, se han propuesto algunas extensiones al modelo relacional para capturar mejor el significado de los datos, para disponer de los conceptos de la orientación a objetos y para disponer de capacidad deductiva. El modelo relacional, como todo modelo de datos, tiene que ver con tres aspectos de los datos: Estructura de datos, integridad de datos, manejo de datos. 68 3.1 ESTRUCTURA DE LAS BASES DE DATOS RELACIONALES Dominio: es un conjunto de valores atómicos. Por atómico queremos decir que cada valor del dominio es indivisible en lo que se refiere al modelo relacional. Un método común de especificación de los dominios consiste en especificar un tipo de datos al cual pertenecen los valores que constituyen el dominio. Es muy especificar un nombre para el dominio que ayude a interpretar sus valores. Estos son algunos ejemplos de dominio. »NumeroSeguridadSocial: es el conjunto de números del seguro social válidos formados por nueve dígitos. »NombreApellido: es el conjunto de nombres y apellidos de personas. »Teléfonos: Es el conjunto de números telefónicos de siete dígitos cálidos dentro de un área específica. »FechaNacimiento: conjunto de fechas de nacimientos de personas. Las anteriores son definiciones lógicas de dominio. También debe especificar un tipo de dato o formato para cada dominio, por ejemplo, el domino FechaNacimiento, se puede declarar como una cadena de caracteres de la forma DD-MM-AAAA donde DD Si visualizamos una relación como una ta- es el día, MM es el mes en forma numérica bla de valores, cada fila de la tabla repre- y AAAA es el año o bien declararse como senta una colección de datos relacionados fecha corta, en el caso del dominio Teléfoentre sí. Dichos valores se pueden interpre- nos, se considera como cadena de caractetar como hechos que describen una enti- res de la forma (XX)XXXXXXX donde (XX) dad o un vínculo ente entidades del mundo es el indicativo de la ciudad y XXXXXXX real. El nombre de tabla y los nombres de es el número telefónico, o bien de la forma las columnas ayudan a interpretar el signi- (OPER)NUM, donde OPER es el operador ficado de los valores que están en cada fila del servicio de telefonía celular y NUM es el de la tabla. número del teléfono celular. En el caso del En la terminología del modelo relacional, dominio NombreApellido, el tipo de datos una fila se denomina tupla, una cabecera es cadenas de caracteres. de columna es un atributo y la tabla es una relación. El tipo de datos describe los tipos de valores que pueden aparecer en cada Todo dominio sebe tener un nombre, por el cual nos podemos referir a él, y un tipo de columna se llama dominio. El modelo relacional representa la base de datos como una colección de relaciones. En términos informales, cada relación semeja una tabla o, hasta cierto, punto, un archivo simple. Corporación Universitaria del Caribe - CECAR Bases de Datos datos y un formato. También puede incluirse información adicional para interpretar los valores de un dominio; por ejemplo, un dominio numérico como Peso, deberá especificar las unidades de medición (libra o kilogramos). Atributo: se dice que un atributo A es el papel que juega un determinado dominio D en una relación; se dice que D es el dominio de A y se denota como dom(A), así el atributo grado de la tabla ESTUDIANTE, nos indica que dicho dominio tiene el papel de grado del estudiante referido en la tabla en mención. Es importante señalar que es usual dar el mismo nombre al atributo y al dominio subyacente. En el caso de que sean varios los atributos de una misma tabla definidos sobre el mismo dominio, habrá que darles nombres distintos, ya que en una tabla no puede haber dos atributos con el mismo nombre. Relación: se compone de un nombre de relación y una lista de atributos. Cada atributo es el nombre de un papel desempeñado por algún dominio. El grado de una relación es el número de atributos de su esquema de relación. Por ejemplo, en el siguiente esquema de relación, tenemos una relación de grado 13, que describe un estudiante: ESTUDIANTE (IdEstudiante, NombreApellido, FechaNac, Direccion, Teléfono, E-mail, Celular, Edad, Peso, Talla, Grado, Grupo, Jornada) En este esquema de relación, ESTUDIANTE es el nombre de la relación, la cual tiene 13 atributos, se puede especificar los siguientes dominios de algunos de los atributos de la relación ESTUDIANTE = dom (NombreApellido) = NombreApellido, dom (FechaNac) = FechaNac; dom (Direccion) = Teléfono. Una relación es el conjunto de n-tuplas, cada una de estas es una lista ordenada de n valores, donde cada valor es un elemento o bien un valor nulo especial. En la figura 4 se muestra un ejemplo de una relación ESTUDIANTE, cada tupla de la relación representa una entidad particular. Se presenta la relación en forma de tabla, en la que cada tupla aparece como fila y cada atributo corresponde a una cabecera de columna que indica un papel o interpretación de los valores de esa columna. Los valores nulos, son aquellos que representan atributos cuyos valores se desconocen o no existen. Dirección de Educación Abierta y a Distancia y Virtualidad 69 Modelo Relacional Figura 3,0 Tener en cuenta que, es posible que varios atributos tengan el mismo dominio. Los atributos indican diferentes papeles. 3.1.1 Características de las relaciones Hay ciertas características a tener en cuenta en las relaciones de una tabla. A continuación se muestran algunas de ellas. 70 Orden de las tuplas en una relación: los elementos no están ordenados, por tanto, las tuplas de una relación no tienen un orden específico. El ordenamiento de las tuplas no forma parte de la definición de una relación, porque la relación interna representa los hechos a nivel lógico o abstracto. Orden de los valores dentro de una tupla: una n-tupla es una lista de n-valores, así que el orden de los valores de una tupla es importante. No obstante, en un nivel lógico, el orden de los atributos y de sus valores en realidad no es importante en tanto se mantenga la correspondencia entre atributos y valores. Valores en las tuplas: cada valor en una tupla es un valor atómico; esto es, no es divisible en componentes en lo que respecta al modelo relacional. Representación de una relación: el esquema de una relación se puede representar como una aclaración o como un tipo de afirmación, por ejemplo, el esquema de relación ESTUDIANTE de la figura 4, se observa que esta entidad tiene atributos, IdEstudiante, IdDocente, NombreApellido, FechaNac, Dirección, Teléfono, E-mail, Celular, Edad, Peso, Talla, Grado, Grupo y Jornada, así, cada tupla de la relación se puede representar como un hecho particular de una declaración. Por ejemplo, la segunda tupla de la entidad ESTUDIANTE, mostrada en figura 4, establece un hecho de que existe un Estudiante, que tiene por nombre Eder José Abad Puentes, con número de identificación 110048423, con fecha de nacimiento 02/11/2007 y así sucesivamente. Corporación Universitaria del Caribe - CECAR Bases de Datos 3.2 Esquema de la bases de datos relacional Para representar el esquema de una base de datos relacional se debe dar el nombre de sus relaciones, los atributos de estas, los dominios sobre los que se definen estos atributos, las claves primarias. El esquema de la base de datos del observador del estudiante es el siguiente: 71 En el esquema anterior, los nombres de las relaciones aparecen seguidos de los nombres de los atributos. Las claves primarias son los atributos subrayados. 3.3 Claves Los conceptos de superclave, de clave candidata y de clave primaria, son aplicables en el modelo relacional. Si el esquema de la base de datos relacional se basa en las tablas derivadas de un esquema E-R es posible determinar la clave primaria del esquena de una relación a partir de las claves primarias de los conjuntos de entidades o de relaciones de los que se deriva el esquema: Conjunto de entidades fuertes: la calve primaria del conjunto de entidades se convierte en la clave primaria de la relación. Conjunto de entidades débiles: la tabla y las relaciones correspondientes a un conjunto Dirección de Educación Abierta y a Distancia y Virtualidad Modelo Relacional de entidades débiles incluyen: los atributos del conjunto de entidades débiles y la clave primaria del conjunto de entidades fuertes del que depende el conjunto de entidades débiles. Conjunto de relaciones: la unión de las claves primarias de los conjuntos de entidades relacionadas de los conjuntos de entidades relacionadas se transforma en una superclave de la relación. Si la relación es de varios a varios, esta superclave es también la clave primaria. En el modelo relacional es necesario disponer de un modo de especificar la manera en que las tuplas de una relación dada se distinguen entre sí, lo cual se expresa en términos de sus atributos. En otras palabras debe haber un atributo que identifique de manera única esa entidad. En el modelo relacional se tiene una superclave, la cual es un conjunto de uno o varios atributos que, considerados conjuntamente, permiten identificar de manera única a una tupla de la relación; se usa también una clave primaria o clave candidata es el atributo que el diseñador de la base de datos como medio principal para identificar una tupla de una relación, esta clave debe escogerse de manera que los valores de sus atributos no se modifiquen nunca, o muy rara vez. 72 Cabe añadir que, en el esquema del modelo relacional se pueden incluir entre sus atributos la clave primaria de otro esquema de la relación, este atributo se denomina clave externa, por ejemplo, el atributo IdEstudiante del esquema InformacionAcademica, es una clave externa que pertenece al esquema Estudiante. El esquema de la base de datos, junto a las dependencias de clave primaria y externa, se muestra en la figura 3,1 la cual muestra el diagrama del esquema del ejemplo que venimos tratado a lo largo del presente modulo que es el Observador del Estudiante. Corporación Universitaria del Caribe - CECAR Bases de Datos 3.4 Lenguaje de consulta Es un lenguaje en el que los usuarios solicitan información de la base de datos. Estos lenguajes suelen ser de un nivel superior que el de los lenguajes de programación habituales. Los lenguajes de consultas pueden clasificarse como procedimentales o no procedimentales. »Lenguajes de consultas procedimentales: el usuario indica al sistema que lleve a cabo una serie de operaciones en la base de datos para calcular el resultado deseado. »Lenguajes no procedimentales: el usuario describe la información deseada sin dar un procedimientos concreto para obtener esa información Los sistemas comerciales de base de datos relacional ofrecen lenguajes de consulta que incluyen elementos de los enfoques procedimentales y no procedimentales. En la siguiente unidad se estudiara el lenguaje de consultas SQL. 3.5 Transformación del modelo E-R al modelo relacional A continuación se presentan los pasos a tener en cuenta para convertir el modelo E-R al esquema de base de datos relacional correspondiente. »Paso 1: por cada tipo normal de entidades E del esquema E-R, se crea una relación Dirección de Educación Abierta y a Distancia y Virtualidad 73 Modelo Relacional R que contenga los atributos simples de E. Se elige uno de los atributos clave de E como clave primaria de R. Para el ejemplo del Observador del estudiante se crean las relaciones: ESTUDIANTE, FAMILIAR, INFORMACIONACADEMICA, SEGURIDADSOCIAL, DOCDIRGRUPO, ANOTACION Y DETALLE. »Paso 2: Se determinan los atributos de cada entidad y se integran al modelo relacional, al mismo tiempo se escoge la clave primaria para cada uno de las relaciones. Este paso quedaría así en nuestro ejemplo: 74 Claves: IdEstudiante, NombreEntidadSS »» Paso 3: Se establece la integridad de entidades, en la cual se estable que ningún valor puede de la clave primaria puede ser nulo, al mismo tiempo se verifica la restricción de integridad referencial en la que se especifica entre dos relaciones y sirve para mantener la consistencia entre tuplas de las relaciones. Es importante señalar que el usuario de la base de datos relacionar debe tener presentes siempre los atributos de Corporación Universitaria del Caribe - CECAR Bases de Datos clave externa para utilizarlos correctamente cuando combine tuplas relacionadas de dos o más relaciones, como se observa en la figura 3,2. Figura 3,2 A continuación, se muestra un resumen de las correspondencias entre los elementos y restricciones del modelo E-R y el modelo relacional. MODELO E-R MODELO RELACIONAL Tipo de entidades Relación “Entidad” Tipo de vínculos 1:1 o 1:N Calve externa (o relación “vinculo”) Tipo de vínculos M:N Relación “vinculo” y dos claves externas Tipo de vínculos n-arios Relación “vinculo” y n claves externas Atributos simples Atributos Atributo compuestos Conjunto de atributos componentes simples Atributo multivalorado Relación y clave externa Conjunto de valores Domino Atributo clave Clave primaria (o secundaria) Dirección de Educación Abierta y a Distancia y Virtualidad 75 Modelo Relacional ACTIVIDAD 1.Describa las diferencias de los significados de relación y esquema de relación. 2.Explique los motivos del por qué se pueden introducir valores nulos en las base de datos relacional. 3.Explique la correspondencia ente los elementos del modelo E-R y el modelo relacional. 4.Defina los siguientes términos: atributo (simples, compuestos, multivaluados), n-tupla, esquema de relación, grado de relación, clave (primaria, externa, superclave). 5.Transformar el modelo E-R de la base de datos Biblioteca escolar al modelo relacional. (utiliza la herramienta MySql Workbench). 76 Corporación Universitaria del Caribe - CECAR Bases de Datos AUTOEVALUACIÓN 1. Diseñe una base de datos relacional para la oficina de registro de una universidad. La oficina conserva datos sobre cada curso, incluyendo el profesor, el número de estudiantes matriculados y la hora y el lugar de las clases. Por cada pareja estudiante-curso se guarda una calificación. 2. Convierta el siguiente modelo E-R al modelo relacional. 77 3. Diseñe un modelo relacional para una base de datos para una pequeña empresa debe contener información acerca de clientes, artículos y pedidos. Hasta el momento se registran los siguientes datos en documentos varios: • Para cada cliente: Número de cliente (único), Direcciones de envío (varias por cliente), Saldo, Límite de crédito (depende del cliente, pero en ningún caso debe superar los 3.000.000 de pesos), Descuento. • Para cada artículo: Número de artículo (único), Fábricas que lo distribuyen, Existencias de ese artículo en cada fábrica, Descripción del artículo. • Para cada pedido: Cada pedido tiene una cabecera y el cuerpo del pedido. La cabecera está formada por el número de cliente, dirección de envío y fecha del pedido. El cuerpo del pedido son varias líneas, en cada línea se especifican el número del artículo pedido y la cantidad. Además, se ha determinado que se debe almacenar la información de las fábricas. Sin embargo, dado el uso de distribuidores, se usará: Número de la fábrica (único) y Teléfono de contacto. Y se desean ver cuántos artículos (en total) provee la fábrica. También por información estratégica, se podría incluir información de fábricas alternativas respecto de las que ya fabrican artículos para esta empresa. Nota: Una dirección se entenderá como Nº, Calle, Comuna y Ciudad. Una fecha incluye hora. Dirección de Educación Abierta y a Distancia y Virtualidad Modelo Relacional 78 Corporación Universitaria del Caribe - CECAR Unidad 4 Lenguaje Estructurado de Consulta Lenguaje Estructurado de Consulta PRESENTACIÓN En la unidad III, se estudia cómo modelar los datos creando un modelo E-R y luego el modelo relacional, y así diseñar una base de datos. La técnica utilizada para obtener un buen modelo de datos se denomina análisis de datos. Sin embargo, los sistemas de bases de datos necesitan un lenguaje de consulta que sea cómodo para el usuario. Por lo que en la presente unidad se estudiará el lenguaje estructurado de consulta SQL, el cual es un lenguaje estándar para trabajar con base de datos relacionales y es soportado prácticamente por todos los productos del mercado. Usando SQL es posible definir la estructura de los datos, modificar los datos de la base de datos y especificar las restricciones de seguridad. 80 Como apoyo a esta unidad y al estudio del lenguaje estructurado de consulta se utilizara el gestor de base de datos MySql Workbench. El manual de usuario y link de descargas se encuentra en los anexos del presente modulo. PROBLEMA ¿Qué debo conocer del Lenguaje Estructurado de Consulta – SQL, para desarrollar una base de datos a través de la aplicación MySql Workbench? Corporación Universitaria del Caribe - CECAR Bases de Datos COMPETENCIAS ESPECÍFICAS »» Identifica el lenguaje estructurado de consulta – SQL, para trabajar con base de datos relacionales. »» Manipula una base de datos por medio de las operaciones SQL utilizando el gestor de base de datos MySql Workbench. 81 Dirección de Educación Abierta y a Distancia y Virtualidad Lenguaje Estructurado de Consulta DINÁMICA PARA CONSTRUIR CONOCIMIENTO ACTIVIDAD PREVIA: Trabajo independiente »Antes de comenzar la lectura de esta primera unidad responda de manera escrita lo que usted entiende por: Lenguaje estructurado de consulta. ¿Qué es una cláusula? ¿Qué entiendes por modificar una base de datos? ¿Qué es inserción? ¿Qué es actualizar? Lea detenidamente la unidad IV. 82 »» Una vez leída la unidad, confronte sus saberes previos con lo aprendido en la unidad. »» Analice detenidamente los temas tratados en la unidad y elabore un análisis general sobre esta. »» Lea detenidamente el manual de usuario de la aplicación MySql Workbench e instale el programa, ya que en este se realizaran las actividades propuestas de esta unidad. ACTIVIDAD EN GRUPO »» Reunidos en sus grupos confronten sus saberes previos con los de sus compañeros. »» Socializar en el grupo los diferentes temas tratados en la Unidad IV. »» Desarrollar las actividades propuestas en la unidad. Corporación Universitaria del Caribe - CECAR Bases de Datos 4.1 INTRODUCCIÓN AL LENGUAJE ESTRUCTURADO DE CONSULTA (SQL) E s un lenguaje surgido de un proyecto de investigación de IBM para el acceso a bases de datos relacionales. Actualmente se ha convertido en un estándar de lenguaje de bases de datos, y la mayoría de los sistemas de bases de datos lo soportan, desde sistemas para ordenadores personales, hasta grandes ordenadores. Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que puede variar de un sistema a otro, pero con cambios que no suponen ninguna complicación para alguien que conozca un SQL concreto, como el que vamos a estudiar en esta unidad, MySql Workbench. Como su nombre indica, el SQL nos permite realizar consultas a la base de datos. Pero el nombre se queda corto ya que SQL además realiza funciones de definición, control y gestión de la base de datos. El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales y permite así gran variedad de operaciones. Es un lenguaje declarativo de “alto nivel” o “de no procedimiento” que, gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros —y no a registros individuales— permite una alta productividad en codificación y la orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros. El lenguaje tiene varios componentes: Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la definición de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación. Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes de consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas. Integridad: El LDD de SQL incluye comandos para especificar las restricciones de integridad que deben cumplir los datos almacenados en la base de datos. Definición de vistas: El LDD incluye comandos para definir las vistas. Control de transacciones: SQL tiene comandos para especificar el comienzo y el final de una transacción. SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones de SQL en lenguajes de programación como: C++, C, Java, Cobol, Pascal y Fortran. Autorización: El LDD incluye comandos para especificar los derechos de acceso a las relaciones y a las vistas. Los ejemplos de esta unidad se basaran en el observador del estudiante que se ha venido trabajando en cada una de las unidades. A continuación se muestra el esquema Dirección de Educación Abierta y a Distancia y Virtualidad 83 Lenguaje Estructurado de Consulta relacional, con los atributos y las calves primarias subrayadas. ESTUDIANTE (IdEstudiante, IdDocente, NombreApellido, FechaNac, Direccion, Telefono, E-mail, Celular, Edad, Peso, Talla, Grado, Grupo, Jornada, IdFamiliar) FAMILIAR (IdFamiliar, NombreApellido, FechaNac, Direccion, Telefono, E-mail, Celular, NivelAcadémico, RasgoFamiliar) INFOACADEMICA (CodEstudiante, NomColProce, GradosCursados, TipoInstuEdu, MotivoRetiro, FechaRetiro) SEGURIDADSOCIAL (NomEntAseguradora, TipoSegSocial, IdEstudiante) ANOTACION (IdAnotacion, CodEstudiante, CodDocente, FechaAnotación, ObserRealizada, AcciónTomada, Seguimiento, Compromisos) DOCENTEDIRGRUPO (IdDocente, NombreApellidos, Dirección, Teléfono, E-mail, Profesión, GradoAcargo) DETALLE (IdEstudiante, IdDocente, AñoLectivo) 4.1.1 Componentes del SQL 84 El lenguaje está compuesto por comandos, clausulas, operadores y funciones agregadas. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Existen dos tipos de comandos SQL: los DLL que permiten crear y definir nuevas bases de datos, campos e índices y los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Comandos DLL Comando Descripción CREATE Utilizado para crear nuevas tablas, campos 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. Comandos DML Comando Descripción SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. INSERT Utilizado para insertar o adicionar 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. Clausulas: son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular. Corporación Universitaria del Caribe - CECAR Bases de Datos Clausula 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 un grupo especifico 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 especifico. OPERADORES LÓGICOS Operador Uso AND Es el “Y” lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. OR Es el “O” lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. NOT Negación lógica. Devuelve el valor contrario de la expresión. OPERADORES DE COMPARACIÓN Operador Uso < Menor que > Mayor que <> Distinto de <= Menor igual que >= Mayor igual que = Igual que BETWEEN Utilizado para especificar un intervalo de valores. LIKE Utilizado en la comparación de un modelo IN Utilizado para especificar registros de una base de datos FUNCIONES DE AGREGADO: se usan dentro de una clausula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros. 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 Utilizada para devolver el valor más bajo de un campo especificado Dirección de Educación Abierta y a Distancia y Virtualidad 85 Lenguaje Estructurado de Consulta 4.2 ESTRUCTURA BÁSICA Una base de datos relacional consiste en un conjunto de relaciones, a cada una de las cuales se les asigna un nombre único. SQL permite el uso de valores nulos para indicar que el valor o bien es desconocido, o no existe. La estructura básica de una expresión SQL consiste en tres clausulas: select, from y where. Las consultas habituales de SQL tienen la forma: select A1, A2, …, An from r1, r2, …, rm where P Donde cada A1 representa un atributo, r1 una relación (las tablas) y P el predicado, el cual es la expresión a validar. 4.2.1 Cláusula select 86 El resultado de las consultas es una relación. Considere la consulta simple basada en el ejemplo el Observador del estudiante: obtener el nombre de todos los estudiantes de la relación Estudiante. La consulta queda de la siguiente forma: select NombreApellido from ESTUDIANTE Recuerde que: debe tener presente que los nombres de los atributos y de las tablas, deben estar escritos con la misma gramática utilizada al momento de diagramarlas. Al momento de generar la consulta se mostraran todos los nombres de los estudiantes pertenecientes a la tabla estudiantes. Corporación Universitaria del Caribe - CECAR Bases de Datos Figura 4.0 Miremos el siguiente ejemplo, obtener los nombre de las instituciones de donde proceden los estudiantes, la consulta se realiza de la siguiente forma: select NomColeProce from INFOACADEMICA Figura 4.1 Dirección de Educación Abierta y a Distancia y Virtualidad 87 Lenguaje Estructurado de Consulta En esta consulta se pueden generar datos duplicados ya que varios estudiantes pueden proceder de la misma institución educativa, si deseamos que no halla duplicados utilizamos la palabra distinct después del select, es decir: Select distinct NomColeProce from INFOACADEMICA 88 Figura 4.2 Si queremos consultar todos los datos de una tabla utilizamos el símbolo asterisco “*”, como se expresa a continuación: Select * from DocenteDirGrupo Corporación Universitaria del Caribe - CECAR Bases de Datos Figura 4.3 4.2.2 Cláusula from En esta cláusula se indican la tabla o tablas a las que vamos a tener acceso. Las tablas deben existir, si se enuncia una tabla en esta cláusula que no esté especificada generara un error en la consulta. La forma de utilizar esta cláusula ya se ha descrito en los ejemplos anteriores. 4.2.3 Cláusula WHERE Se utiliza para seleccionar aquellos registros que cumplen una o más condiciones. Observemos el siguiente ejemplo: “obtener todos los estudiantes que pertenezcan al grado 6A”, la consulta se escribe de la siguiente forma: select GradoGrupo from ESTUDIANTE where GradoGrupo = ‘6A’ Dirección de Educación Abierta y a Distancia y Virtualidad 89 Lenguaje Estructurado de Consulta Figura 4.4 90 Ahora observemos el siguiente ejemplo en el cual se utilizan los operadores lógicos y operadores de comparación: “obtener todos los estudiantes que pertenezcan al grado 6ª y tengan más de 12 años de edad” select GradoGrupo from ESTUDIANTE where GradoGrupo = ‘6A’ and Edad > 12 Figura 4.4 Corporación Universitaria del Caribe - CECAR Bases de Datos Si deseamos conocer más de un atributo de la consulta que se esté realizando solo lo incluimos en la cláusula select, tomando el ejemplo anterior la consulta quedaría de la siguiente forma: select GradoGrupo, Edad from ESTUDIANTE where GradoGrupo = ‘6A’ and Edad > 12 91 Figura 4.5 ACTIVIDAD Considerando el ejemplo del observador del estudiante realice las siguientes consultas y escriba las clausulas SQL: 1. Muestra los nombres de los docentes directores de grupo. 2. Muestra los Nombres de los padres de familia de un estudiante en particular. 3. Realiza la consulta de los estudiantes que tienen como seguridad social el SISBEN. 4. Cuáles son los nombres y grado de los estudiantes que tiene una edad entre 13 y 17 años. 5. Cuantos estudiantes hay registrados en la institución educativa. 6. Ordenar la consulta del punto 1. 7. Consulte los estudiantes que tienen como familiar a los abuelos. 8. Mostrar todas las observaciones realizadas. 9. Mostrar las observaciones realizadas a un estudiante en particular. 10.Mostrar a los docentes directores de grupos que tengan como profesión ’licenciado en matemáticas’ Dirección de Educación Abierta y a Distancia y Virtualidad Lenguaje Estructurado de Consulta 4.3 MODIFICACIÓN DE LA BASE DE DATOS En el apartado anterior se estudió como realizar consultas, ahora se estudiara cómo añadir, eliminar y modificar información utilizando SQL, este tipo de consultas son llamadas de acción, porque no devuelven ningún registro. 4.3.1 Borrado Crea una consulta de elimina registros de una o más de las tablas listadas en las clausula from que satisfagan la cláusula where. Las solicitudes de borrado se expresan casi igual que las consultas. Solo se pueden borrar tuplas completas y no se puede borrar solo valores de atributos concretos. La sintaxis utilizada es la siguiente: delete from r where P; 92 Donde P representa el criterio y r la relación. Se puede utilizar delete para eliminar registros de una única tabla o desde carios lados de una relación uno a muchos. Si se desea borrar tuplas de varias relaciones hay que utilizar una orden delete por cada relación. Una vez que se ha eliminado los registros no se puede deshacer la operación. Se recomienda realizar una copia de seguridad de la base de datos en caso de que se elimine un registro equivocadamente. A continuación se muestran unos ejemplos utilizando la consulta delete: Borra todas las tuplas de la relación DETALLE delete from DETALLE Borra todas las tuplas con E-mail de la tabla ESTUDIANTE delete from ESTUDIANTE where E-mail <> NULL; Borrar todas las profesiones que sean iguales a Administración de la tabla DOCENTEDIRGRUPO. delete from DocenteDirGrupo where Profesion = ‘Adminsitracion’ 4.3.2 Inserción Por medio de esta consulta se agrega un registro en una tabla. Se le conoce como una consulta de datos añadidos. Esta consulta puede ser de dos tipos: insertar un único registro o insertar en una tabla los registros contenidos en otra tabla. Corporación Universitaria del Caribe - CECAR Bases de Datos Para insertar los registros en una relación, se especifica la tupla que se desea insertar, se debe tener encuenta que los valores de los atributos de las tuplas que se inserten deben pertenecer al dominio de los atributos y deben estar en el mismo orden en que fueron registrados en las tablas. La sintaxis es la siguiente: insert into tabla values (valaor1, valor2, valorN…) Realicemos una instrucción insert sencilla, supóngase que se desea insertar la información académica de un nuevo estudiante, la identificación del estudiante es 11002247858, colegio de procedencia Institución Educativa San Juan Bautista, ultimo grado realizado séptimo (7) de secundaria, jornada matinal, colegio público, el retiro se debió a traslado de los padres, no repitió ningún grado y se retiró en el año 2012. La consulta queda de la siguiente forma: insert into INFOACDEMICA values (11002247858, ‘Institución Educativa San Juan Bautista’, ‘Séptimo’, ‘Matinal’, ‘Publico’, ‘Traslado de los padres’, ‘No repitió ningún grado’, ‘2012’); En caso dado que no se recuerde el orden de los atributos SQL permite que los atributos se especifiquen en la cláusula insert tomando el ejemplo anterior la instrucción quedaría: insert into INFOACDEMICA(IdEstudiante, NomColeProcedencia, GradosRealizados, Jornada, TipoColegio, MotivoRetiro, GradosRepetidos, AñoRetiro) values (11002247858, ‘Institución Educativa San Juan Bautista’, ‘Séptimo’, ‘Matinal’, ‘Publico’, ‘Traslado de los padres’, ‘No repitió ningún grado’, ‘2012’); Es posible dar valores a algunos de los atributos del esquema para las tablas insertadas, a los atributos restantes se les asigna un valor nulo, que se denota por null, por ejemplo: insert into INFOACDEMICA values (11002247858, ‘Institución Educativa San Juan Bautista’, ‘Séptimo’, ‘Matinal’, null, ‘Traslado de los padres’, ‘No repitió ningún grado’, ‘2012’); Dirección de Educación Abierta y a Distancia y Virtualidad 93 Lenguaje Estructurado de Consulta 4.3.3 Actualización En determinadas situaciones se ve la necesidad de modificar un valor dentro de una tupla sin cambiar tos los valores de estas, para ello se debe utilizar la instrucción update. La sintaxis es: update tabla set campo1=valor1, campo2=valor2,… where criterio; Veamos los siguientes ejemplos: Actualizar el año lectivo de la tabla DETALLE update DETALLE set añolectivo = 2013 Actualizar el grado a cargo del docente director de grupo Leyla Ruiz 94 Update DOCENTEDIRGRUPO Set GrupoAcargo = ‘6A’ Where NombreApellido = ‘Leyla Ruiz’ Actualizar todos los registros de la taba SEGURIDADSOCIAL update SEGURIDADSOCIAL set NomSeguridadSS = ‘FAMISALUD’ Update es muy útil cuando se desea cambiar un gran número de registros o cuando estos se encuentran en múltiples tablas. Otro dato a tener encuenta es que la instrucción no genera ningún resultado, para saber que registros se van a cambiar, hay que examinar primero, el resultado de una consulta de selección que utilice el mismo criterio y después, ejecutar la consulta de actualización. Si en una consulta de actualización suprimimos la cláusula where todos los registros se la tabla señalada serán actualizados. Corporación Universitaria del Caribe - CECAR Bases de Datos ACTIVIDAD Considerando el ejemplo del observador del estudiante realice las siguientes consultas y escriba las clausulas SQL: 1. Modificar la base de datos de forma que el docente director de grupo Santos quede a cargo con el grupo 7B. 2. Modificar los RH de los estudiantes. 3. Modificar las anotaciones realizadas por el docente Rodríguez. 4. Insertar los datos de un familiar. 5. Borrar las tuplas de la relación Seguridad Social. 4.5 GESTOR DE BASE DE DATOS MYSQL WORKBENCH 4.5.1 ¿Qué es MySQL Workbench? MySQL Workbench es una aplicación para el diseño y documentación de bases de datos (sucesora de la aplicación DBDesigner4) pensada para ser usada con el sistema de gestión de bases de datos MySQL (recién adquirido por Sun Microsystems). Existen dos versiones del producto, una es open source y la otra es una versión comercial. Evidentemente, la versión comercial proporciona algunas funcionalidades que pueden resultar de interés en algún ámbito, aunque la versión open source es más que suficiente para la realización de la práctica. 4.5.2 ¿Cómo conseguir la aplicación? Existen versiones para Windows, Linux y Mac. Hay que tener en cuenta que para los dos últimos sistemas las versiones son Betas. Los links de descarga son los siguientes: Windows y Linux: http://dev.mysql.com/downloads/workbench/5.1.html y Mac: http://dev.mysql.com/workbench/?p=182 4.5.3 ¿Para qué la usaremos? Lo que se pretende con el uso de la aplicación es facilitar la realización de la segunda práctica de la asignatura y, por este motivo, este mini-tutorial solo se centra en las características necesarias para la realización de la misma. La herramienta podría usarse para realizar un diagrama EE-R, y esa es su principal fun- Dirección de Educación Abierta y a Distancia y Virtualidad 95 Lenguaje Estructurado de Consulta ción: primero diseñar el diagrama EE-R, implementándolo sobre la herramienta y a partir de él obtener el diagrama del esquema relacional y también las sentencias de creación de tablas, vistas e índices de manera automática. Como tiene varias limitaciones para representar un diagrama E-R completo (no contempla el modelado de categorías, jerarquías, retículas...), y el diagrama EE-R completo ya se ha realizado en la primera práctica, se utilizará para representar el diagrama del esquema relacional que acompaña a la segunda práctica, o sea, las tablas y sus columnas, incluyendo las claves primarias, las claves foráneas y a quienes referencian, y todo ello mediante una interface gráfica que permitirá además generar las sentencias DDL de creación de tablas e índices, que, con algunas modificaciones, podrán adaptarse a lo solicitado en la práctica. Debemos tener presente en todo momento que vamos a añadir tablas y sus propiedades, y obtener un diagrama del esquema relacional, y para ello usamos una herramienta que realmente está orientada a crear diagramas EER limitados, o sea, forzamos un poco las cosas, pero la herramienta lo permite. Para ello debemos prescindir de los conceptos del modelado conceptual y centrarnos en los del modelo relacional, aunque en la herramienta trabajemos sobre el panel ‘EER Diagrams’. Así en el modelo relacional la vinculación entre dos tablas suele ser 1 a N y en algún caso 1 a 1, pero nunca N a N. 4.5.4 ¿Cómo crear un diagrama del esquema relacional? 96 Una vez abierta la aplicación, veremos algo similar a esto: Figura 1 Para crear el diagrama del esquema relacional necesario en la práctica, debemos hacer doble clic sobre el icono ‘Add Diagram’, como si lo que creásemos fuera un nuevo diagrama ER. Esto nos conducirá al siguiente interfaz: Corporación Universitaria del Caribe - CECAR Bases de Datos Figura 2 4.5.5 ¿Cómo crear una tabla (una relación en el modelo relacional)? 1.- Clic sobre el icono Insertar Tabla. 2.- Clic en la posición del lienzo en la que queremos ver la tabla. Obtenemos lo siguiente: Figura 3 3.- Haciendo doble clic sobre la tabla se desplegará un menú en la parte inferior del interfaz. Figura 4 En la pestaña ‘Table’, en el campo ‘Name’ se indicará el nombre de la tabla. Los campos ‘Collation’ y ‘Engine’ son relativos a MySQL y pueden obviarse. Dirección de Educación Abierta y a Distancia y Virtualidad 97 Lenguaje Estructurado de Consulta 4.5.6 ¿Cómo crear los atributos de una relación? Partiendo de la Figura 4, desplegamos la pestaña Columns Column Name: nombre del atributo. Figura 5 Datatype: tipo de dato del atributo. Como la aplicación está pensada para MySQL y la práctica se realizará sobre Oracle, puede que existan tipos de datos válidos para Oracle que no lo son para el otro gestor. En este caso se elegirá un tipo de dato similar y se cambiará a mano en el script con las sentencias. Se recomienda ser lo más coherente posible al realizar esta tarea, es decir, para cada tipo de dato no disponible en MySQL, elegir siempre el mismo tipo de dato de sustitución. 98 NN: añade la restricción NOT NULL para ese atributo. AI: Auto Incremento. No se debe marcar ya no es una característica de Oracle. Default: valor por defecto para el atributo. ColumnDetails.Flags: se utiliza para añadir la restricción de clave primaria (PRIMARY KEY). Para añadir una nueva columna solo es necesario hacer doble click en la fila que va a continuación de la última añadida (señalada con un punto rojo en la imagen). 4.5.7 ¿Cómo indicar que uno o varios atributos son clave primaria? 1.- Hacer doble click sobre la tabla en cuestión. 2.- Abrir la pestaña ‘Columns’. 3.- Seleccionar la columna que se desea utilizar como clave primaria. 4.- Marcar la opción PRIMARY KEY. NOTA: la aplicación no permite darle un nombre a la restricción de clave primaria. Esto debe hacerse manualmente sobre los scripts generados (si así se desea). 4.5.8 ¿Cómo se pueden declarar las vinculaciones de clave foránea? A continuación se muestra el menú para crear los tipos de relación (1:1, 1:N y N:M) en un ER. En la práctica se usarán solo los 1:N y 1:N, pues son las vinculaciones que hay entre tablas en el modelo relacional: Corporación Universitaria del Caribe - CECAR Bases de Datos Figura 6 El calificativo ‘identificadora’ indica si los atributos que forman parte de la clave foránea (lado N de la relación) deben formar parte también de la clave primaria de dicha entidad, lo que ocurre si una tabla proviene de un tipo de entidad débil o en el caso de atributos de tablas que provienen de tipos de relación N:M. Existen, al menos, dos formas diferentes de crear relaciones entre tablas: a través del menú de tabla o usando el menú antes propuesto. a) A través del menú de tabla (recomendado): 1.- Doble clic sobre la entidad del lado N de la relación. 2.- Crear los atributos que van a hacer la función de clave foránea (si no están definidos ya). 3.- Comprobar que existen los atributos en la tabla referenciada por la clave foránea. Si no existen deben crearse antes de continuar. 4.- En el menú de tabla , desplegar la pestaña ‘Foreing Keys’. Obtendremos lo siguiente: Figura 7 Foreing Key Name: nombre de la restricción de clave foránea. Referenced Table: tabla referenciada por la clave foránea. Column: columna o columnas que van a formar parte de la clave foránea. Referenced Column: columna o columnas que van a ser referenciadas por la clave foránea. Foreing Key Options: útil para definir las acciones referenciales. Dirección de Educación Abierta y a Distancia y Virtualidad 99 Lenguaje Estructurado de Consulta On Update: acciones referenciales para la actualización. On Delete: acciones referenciales para el borrado. b) Usando el menú: 1. Las tablas deben estar creadas. 2. Se elige en el menú de la izquierda el tipo de relación que se desea. 3.Los retoques que se deseen hacer sobre la clave foránea se hacen siguiendo el apartado 4.- del punto a). 4.5.9 ¿Cómo se gestionan los índices? Para crear un índice haremos doble clic sobre la tabla que contiene los atributos y, una vez en el menú de tabla, desplegaremos la pestaña ‘Indexes’. 100 Index Name: nombre del índice. Figura 8 Type: en el menú desplegable elegiremos ‘INDEX’. Column: marcamos las columnas que formaran parte del índice. Order: índice ascendente o descendente. Index Options. Storage Type: podemos elegir entre BTREE, RTREE, HASH o ninguno de los anteriores. NOTA: la aplicación crea índices automáticamente tanto para las claves primarias como para las foráneas. Corporación Universitaria del Caribe - CECAR Bases de Datos 101 Dirección de Educación Abierta y a Distancia y Virtualidad Lenguaje Estructurado de Consulta ACTIVIDAD Utilice MySQl Workbench y realice el diagrama EER de la siguiente base de datos de un seguro. Persona (IdConductor, nombre, dirección) Coche (Matricula, año, modelo) Accidente (Numero-informe, fecha, lugar) Es-dueño (IdConductor, matricula) Participó (IdConductor, coche, numero-informe, importe-daños) Las claves primarias se han subrayado, ahora formule las siguientes consultas SQL. a. Determine el número total de personas cuyos coches se hayan visto involucrados en un accidente en 2010. b. Añadir un nuevo accidente a la base de datos; supóngase cualquier valor para los atributos necesarios. c. Borrar el Mazda de “Martin Gómez” 102 Corporación Universitaria del Caribe - CECAR Bases de Datos AUTOEVALUACIÓN 1. Considere la base de datos Biblioteca Escolar que ha venido desarrollando a lo largo del módulo, y formule las siguientes consultas SQL: »» Cuántos libros que se han prestado en un determinado mes de cualquier año. »» Cuántas veces se ha prestado cada libro. »» Muestre los pedidos que se han realizado de un libro en particular. »» Muestre los libros que han solicitado cada uno de los estudiantes. »» Indique qué libros se han sacado mensualmente. »» Inserta en la tabla LIBROS los siguientes datos: M102, Matemática 2000, Norma »» Inserta en la tabla EDITORIAL los siguientes datos: Norma, librerianorma.com, 01800707707 »» Modificar los datos del lector 1102987345 de tabla LECTOR. »» Modificar los datos de los pedidos realizados en el año 2013 »» Eliminar la tupla LECTOR con IdLector 1102987345 »» Eliminar la tupla LIBROS con IdLibro M102 »» Eliminar la tupla LIBROS con Titulo igual a ciencias naturales. 2. Considera el siguiente esquema Entidad-Relación, agregue los atributos correspondientes a cada entidad y luego conviértelo al modelo relacional, utiliza la aplicación MySql Workbench y realiza consultas utilizando select, from, where, insert, delete y update. (Recuerde la caridnalidad de cada una de las relaciones) Dirección de Educación Abierta y a Distancia y Virtualidad 103 Referencias »» Gonzalez, A. (2011). Gestión de Base de Datos. España: Editorial Ra-Ma. »» Silberschatz, A. Korth, H. Sudarshan, S. (2002). Fundamentos de Bases de Datos. España: Editorial McGraw-Hill / interamericana de España, S. A. U. »» Kroenke, D. (2003). Procesamiento de Bases de datos, Fundamentos, diseño e Implementación. México: Pearson Educación. E-book. Recuperado de: http://books.google.com.co/books?id=7ORUWItwcNEC&lpg=PP1&dq=base%20de%20datos&pg=PR4#v=onepage&q=base%20de%20datos&f=false »» Date, C.J. (2001). Fundamentos de Sistemas de Bases de Datos. México: Pearson Educación. E-book. Recuperado de: http://books.google.com.co/books?id=Vhum351T-K8C&lpg=PP1&pg=PP1#v=onepage&q&f=false »» Claudio (2006). Tipos de datos que hay en SQL. Desarrolloweb. Recuperado de: http://www.desarrolloweb.com/articulos/2336.php »» Guzmán. Que es un DBMS. Slideshare. Recuperado de http://www.slideshare.net/mat3matik/qu-es-un-dbms-5805313 »» Baixauli, V., Grau, N., Sánchez, A. (2012). Historia de las bases de datos. Slideshare. Recuperado de: http://www.slideshare.net/da4equipo3/historia-de-las-bases-de-datos »» Storti, G., Ríos, G., Campodónico, G. (2007). Base de datos: Modelo Entidad – Relación. Recuperado de: http://www.belgrano.esc.edu.ar/matestudio/carpeta_de_access_introduccion.pdf Corporación Universitaria del Caribe - CECAR Bibliografía a Consultar »» Nevado, M. Introducción a las Bases de Datos Relacionales. Madrid, España: Visión Libros. E-book. Recuperado de: http://books.google.com.co/books?id=0lUpB1lNUdIC&pg=PA6&lpg=PP1&dq=base+de+datos »» Modelo relacional. Recuperado de: http://www.google.com.co/url?sa=t&rct=j&q=&esrc=s&source=web&cd=11&ved=0CGIQFjAK&url=http%3A%2F%2Fwww.fdi.ucm. es%2Fprofesor%2Flgarmend%2FFBD%2FTema%25202.2%2520Modelo%2520relacional%2520v16.pdf&ei=aVG3UeLxLYv29gTZjICgBA&usg=AFQjCNHYSYIp7Kyq486ohmyCE6cLp2cEEQ&bvm=bv.47534661,d.eWU »» Pablo. Base de Datos. Recuperado de: http://www.monografias.com/trabajos5/basede/ basede.shtml »» Villar, M. & Fernadez, C. (2006). Base de datos Access: Aplicaciones fundamentales y manejo básico de una base. Recuperado de: http://books.google.com.co/books?id=dtRU5PjszaoC&printsec=frontcover&dq=base+de+datos&hl=es-419&sa=X&ei=LW7HUaGCFNKs4AOGmICYBw&ved=0CC8Q6AEwATgK »» Piattini, M. (2000). Líneas de evolución de las bases de datos. NOMATICA. Recuperado de: http://www.youtube.com/watch?v=4k1n20lRET8 »» Thibaud, C. (2006). Recursos Informáticos, MySql 5. Barcelona, España: Ediciones ENI. E-book. Recuperado de: http://books.google.com.co/books?id=wY0bHPmW-NUC&pg=PA11&dq=base+de+datos+con+Mysql&hl=es-419&sa=X&ei=UN-0UcfKOJW64APwp4DwDw&ved=0CDEQ6AEwAQ#v=onepage&q=base%20de%20 datos%20con%20Mysql&f=false »» Gutmann, J. (2011). Introducción a las bases de datos relacionales (II). Pixels & Code, volumen 2, 11-15. Recuperado de: http://pixelscode.com/mayo-2011/#/10/zoomed »» Malca, E. (2012). Clase 3. Modelo de Datos. Slideshare. Recuperado de: http://www. slideshare.net/eddiemalca/clase-3-modelo-de-datos »» Videotutorial Software Dia. Recuperado de: http://www.youtube.com/watch?v=-9cp6jfyW1I Dirección de Educación Abierta y a Distancia y Virtualidad DIRECCIÓN DE EDUCACIÓN ABIERTA Y A DISTANCIA Y VIRTUALIDAD LICENCIATURA EN EDUCACIÓN BÁSICA CON ÉNFASIS EN TECNOLOGÍA E INFORMÁTICA BASES DE DATOS Carretera Troncal de Occidente - Vía Corozal - Sincelejo (Sucre) Teléfonos: 2804017 - 2804018 - 2804032, Ext. 126, 122 y 123 Mercadeo: 2806665 Celular: (314) 524 88 16 E- Mail: [email protected]