INTRODUCCIÓN A LAS BASES DE DATOS Desde que el ser humano ha tenido la necesidad de manejar o consultar información las bases de datos han sido útiles, analicemos un tiempo atrás, las escuelas anteriormente no contaban con computadoras en el área de control escolar, sin embargo el personal que laboraba ahí podía realizar su trabajo sin mayor problema utilizando los archivos de cada alumno, aunque era más tardado localizar a un alumno, generar certificados, hacer constancias, entre otros; finalmente el uso de las bases de datos (archivos) permitían realizar los procesos solicitados. El uso de sistemas de bases de datos automatizadas, se desarrolló a partir de la necesidad de almacenar grandes cantidades de datos, para su posterior consulta, producidas por las nuevas industrias que generaban gran cantidad de información. A continuación se definen algunos conceptos básicos: Base de datos es un conjunto de datos almacenados y organizados bajo una estructura definida. Base de datos relacional los datos se organizan en tablas. Cada tabla tiene una o más columnas y filas. Tablas almacenan información sobre un tema como pueden ser los alumnos de una escuela, o las calificaciones de cada uno de ellos; las tablas se relacionan de forma que a partir de los datos de la tabla de alumnos podamos obtener información sobre las calificaciones de éstos. Campos guardan una parte de la información sobre cada elemento que queramos guardar. Registro se refiere a cada fila de la tabla. Decimos que hay redundancia de datos cuando la misma información es almacenada varias veces en la misma base de datos. Por ejemplo, en una BD podríamos tener almacenados datos de los empleados: apellido, nombre, domicilio, departamento, salario, etc., y también datos de inscripciones para cursos de capacitación. Supóngase que para llevar a cabo la administración de los cursos es preciso conocer el departamento de cada empleado inscrito. Es evidente que no hace falta reingresar esta información a la BD como dato de inscripción,
dado que siempre podrá obtenerse mediante una consulta a los datos del empleado. Esto siempre se debe evitar, la redundancia dificulta la tarea de modificar los datos, y es el motivo más frecuente de inconsistencia de datos. Inconsistencia es un estado en el que dos o más datos repetidos en una BD contienen diferentes valores. Generalmente el problema surge al modificar información redundante y si sólo la cambiamos en alguno de los lugares en que se guardan. Por lo tanto no puede haber inconsistencia si no existe antes redundancia de los datos. Del ejemplo anterior, si se almacenara nuevamente el dato del departamento del empleado, correríamos el riesgo de que ante un cambio de departamento del empleado, se actualizara solamente esta situación en los datos del empleado y no en los de las inscripciones. Además requiere un mayor espacio de almacenamiento, que influye un mayor costo tiempo de acceso a los datos, esto provoca un problema de inconsistencia. Con este problema las consultas que hagamos más tarde podrán dar como resultado respuestas inconsistentes (es decir, diferentes). Puede darse el caso de que dos aplicaciones diferentes proporcionen resultados distintos para el mismo dato. La integridad se refiere a que se deben especificar restricciones en el tipo de dato que contiene la información a almacenar. Con respecto a la seguridad se entiende como la autorización o privilegios que tiene cada uno de los usuarios para manipular la base de datos. Sistema manejador de Base de Datos Los sistemas de manejo de Bases de Datos, también conocidos como Sistemas Gestores de Bases de Datos (SGDB), sirven para realizar una serie de operaciones con los datos almacenados en una base de datos, tales como creación, modificación, eliminación y consultas, permitiendo así, manipular la base de datos.
Un SGDB se puede definir como: "El Conjunto de programas, procedimientos, lenguajes, etc. que suministra, tanto a los usuarios no informáticos como a los analistas, programadores o al administrador, los medios necesarios para describir, recuperar y manipular los datos almacenados en la base, manteniendo su integridad, confidencialidad y seguridad". En otras palabras un SGDB es el software que va a manipular, controlar, almacenar, entre otras operaciones a los datos contenidos en una base de datos. Arquitectura de los sistemas de bases de datos En 1975, el comité ANSI-SPARC (American National Standard Institute - Standards Planning and Requirements Committee) propuso una arquitectura de tres niveles para los SGBD cuyo objetivo principal era el de separar los programas de aplicación de la BD física. En esta arquitectura el esquema de una BD se define en tres niveles de abstracción distintos: Ilustración 1: Arquitectura de los sistemas de bases de datos - Nivel interno o físico: el más cercano al almacenamiento físico. Representa la estructura física de la BD mediante un esquema interno. Este esquema se especifica con un modelo físico y describe los detalles de cómo se almacenan físicamente los datos: los archivos que 14 contienen la información, su organización, los métodos de acceso a los registros, los tipos de registros, la longitud, los campos que los componen.
- Nivel externo o de visión: es el más cercano a los usuarios, es decir, es donde se describen varios esquemas externos o vistas de usuarios. Cada esquema representa la parte de la BD que interesa a un grupo de usuarios en este nivel se representa la visión individual de un usuario o de un grupo de usuarios. - Nivel conceptual: se refiere a la estructura de toda la BD para un grupo de usuarios mediante un esquema conceptual. Este esquema describe las entidades, atributos, relaciones, operaciones de los usuarios y restricciones, ocultando los detalles de las estructuras físicas de almacenamiento. Representa la información contenida en la BD. Usuarios de la base de datos Usuario Final: es la persona que utiliza los datos almacenados en la BD, esta persona ve datos convertidos en información. Desarrollador de Aplicaciones: es la persona que desarrolla los sistemas que interactúan con la BD. Administrador de la base de datos (DBA): es la persona que asegura integridad, consistencia, redundancia y seguridad de la BD, también se encarga de realizar el mantenimiento diario o periódico de los datos. 14
I. Dada la estructura de la BD mostrada a continuación, utilice el procesador de palabras para responder las preguntas que se plantean. Clave del producto Distribuidor del producto Teléfono del distribuidor Dirección de distribuidor Precio del producto AB01 Berol 56765432 Ote 245 No. 192, El 56 Rosario, Miguel Hidalgo AC02 Crayola 98432198 Fresno No. 234, Lomas de Sotelo, Tlalpan 98 AB02 Berol 56765432 Ote 245 No. 192, El 125 Rosario, Miguel Hidalgo AG18 Vinci 23134560 Av. Del taller No. 28, 65 Jardín Balbuena, Venustiano Carranza BA00 Zebra 65879038 Madero No. 98, Centro, 232 Miguel Hidalgo AC06 Crayola 98432198 Fresno No. 234, Lomas de Sotelo, Tlalpan 239 AB09 Berol 56765432 Ote 245 No. 192, El 176 Rosario, Miguel Hidalgo Figura 1 a) Cuántos registros contiene el archivo de la figura 1 y cuantos campos hay? b) Qué problema encontraría si deseara generar una lista por delegación? c) Qué redundancia de datos detectó en la BD y explique cómo estás podrían conducir a anomalías? d) Cuál debiera ser el diseño para eliminar la redundancia? II. A partir del análisis de la siguiente base de datos, responda lo que se le solicite. Nombre Escuela Ubicación de la escuela Carrera Institución Roberto Osorio ESIME Av. Santa Ana # Ing. en IPN Rosas CULHUACAN 1000. computación Janeth Rodríguez ESIME Av. Santa Ana # Ing. en IPN Cerqueda CULHUACAN 1000. computación Iván Flores Vázquez ESIME Av. Santa Ana # Ing. en IPN CULHUACAN 1000. computación Arlet Ortiz Cisneros AZCAPOTCALCO Refinería #105 Lic. en Derecho UAM Humberto Juárez AZCAPOTCALCO Refinería #105 Lic. en Derecho UAM Sandoval Roberto Osorio ESIME Av. Santa Ana # Ing. en IPN Rosas CULHUACAN 1000. computación 1, 000 registros
a) Cuál es el problema que se presenta en la base de datos anterior? b) En qué campos se presenta la redundancia de datos? c) En qué momento se pudiera presentar la inconsistencia de datos? d) De qué forma se resolvería los problemas de redundancia e inconsistencia? Modelo de Entidad Relación (MER) El modelo entidad relación (MER) proporciona una herramienta para representar información del mundo real a nivel conceptual. Creado en 1976 por Peter Chen, permite describir las entidades involucradas en una base de datos, así como las relaciones y restricciones de ellas. Un conjunto de datos describe a un objeto de la vida cotidiana, el cual recibe por nombre ENTIDAD, dichos datos llamados ATRIBUTOS pueden ser útil para relacionar una entidad con otra cuando tienen atributos en común, a través de un atributo clave que tiene como característica ser un valor único de cada entidad. Por ejemplo Entidad Atributos Valores
Entidades Una entidad es un elemento con existencia independiente de otros elementos. Física: un automóvil, una casa, una persona, un empleado. Conceptual: un trabajo, un curso, un préstamo. Atributos Toda entidad tiene propiedades particulares, denominadas atributos. Ejemplo: Empleado = (nombre, sexo, dirección, salario, fechanac) Cuenta = (numcuenta, balance) Automóvil = (marca, modelo, color, placas) Relaciones Una relación (relationship) es una asociación entre entidades. Estas relaciones entre entidades se dan cuando cada atributo clave aparece sólo una vez en cada una de las entidades. En la siguiente tabla se presenta la simbología que se utilizan en los diagramas del Modelo de Entidad - Relación. Concepto Símbolo Entidad Entidad Atributo Atributo Atributo Clave Relación 1:1
Por ejemplo el siguiente diagrama representa la entidad Automóvil y sus tributos Modelo Color Marca AUTOMÓVIL Placa Nombres apropiados para los elementos del MER En los diagramas MER se recomienda elegir nombres que comuniquen el contenido del objeto. Para las entidades y los vínculos se utiliza el nombre en singular y con mayúscula, mientras que el nombre de los atributos comienza con mayúscula únicamente. En la práctica general, cuando se tiene una descripción narrativa de los requerimientos de la base de datos, los sustantivos que aparezcan en la narración tienden a originar los nombres de las entidades, los verbos indican los nombres de los tipos de vínculos o relaciones los nombres de los atributos generalmente surgen de los sustantivos adicionales que describen a los sustantivos de las entidades. Tipos de Relaciones Relación uno a uno (1:1): Las entidades que intervienen en la relación se asocian una a una. Por ejemplo. La entidad Automóvil, la entidad Tarjeta de circulación y entre ellos la relación Registro, es decir, a un automóvil sólo le pertenece una sola tarjeta de circulación. Relación uno a varios (1:N): Es el tipo de relación más común. En este tipo de relación, un atributo de la Entidad A puede tener muchos atributos coincidentes en la Entidad B, pero un atributo de la Entidad B sólo tiene un atributo coincidente en la Entidad A. Por ejemplo. La entidad Proveedor, la entidad Producto y entre ellos la relación Suministra, es decir, un proveedor puede suministrar más de un producto pero cada producto tiene un único proveedor. Relación varios a varios (M:N): En una relación varios a varios, un registro de la Entidad A puede tener muchos registros coincidentes en la Entidad B, y viceversa. Este tipo de relación sólo es posible si se define una tercera Entidad (denominada Entidad de unión) cuyo atributo clave consta de dos atributos: el atributo. Por ejemplo, la entidad Pedidos y la entidad Productos tienen una relación de varios a varios que se define mediante la creación de dos relaciones de uno a varios con la entidad Detalles de pedidos, es decir, un pedido puede incluir muchos productos, y cada producto puede aparecer en muchos pedidos.
18 Número Placa Fecha de alta TARJETA 1 1 Pertenece AUTO Modelo Color Propietario Nombre Placa Edad PERSONA 1 Tiene M A UTO Color RFC Modelo
Modelo de datos relacional Este modelo considera a la base de datos como un conjunto de relaciones, donde cada relación equivale a una tabla. Si se visualiza una relación o entidad como una tabla de valores, cada fila de la tabla una representa una colección de valores de datos relacionados entre sí. En la terminología del modelo relacional, una fila o renglón se le denomina tupla, una cabecera de columna un atributo y la tabla es un relación. A continuación se presenta una tabla o relación llamada PROFESOR Nombre de la r elación Atributos PROFESOR Matrícula Nombre Dirección Teléfono 2000308 Ignacio Romero Av. De las flores No. 35 55-78-65-23 2010893 Roberto Flores Av. San Lorenzo No. 122 23-87-43-12 2000754 Bertha Villa Sur 113 B No. 2425 45-13-87-56 Tuplas 2010927 Fabián Serrano Cafetales No. 875 98-65-34-00 2011762 Marcela Luna Miramontes No. 524 58-64-53-40 11