INTRODUCCIÓN A LAS BASES DE DATOS Técnico en Sistemas INTRODUCCION Todas las empresas requieren almacenar información. Desde siempre lo han hecho. La información puede ser de todo tipo. Cada elemento informativo (nombre, dirección, sueldo, etc.) es lo que se conoce como dato (en inglés data). Las soluciones utilizadas por las empresas para almacenar los datos son diversas. Antes de la aparición de la informática se almacenaban en ficheros con cajones y carpetas y fichas. Tras la aparición de la informática estos datos se almacenan en archivos digitales dentro de las unidades de almacenamiento del ordenador (a veces en archivos binarios, o en hojas de cálculo). Además las empresas requieren utilizar aplicaciones informáticas para realizar tareas propias de la empresa a fin de mecanizar a las mismas. Estas aplicaciones requieren manejar los datos de la empresa. En los inicios de la era informática, cada programa almacenaba y utilizaba sus propios datos de forma un tanto caótica. La ventaja de este sistema (la única ventaja), es que los procesos eran independientes por lo que la modificación de uno no afectaba al resto. Lógicamente la solución a este problema es hacer que todas las aplicaciones utilicen los mismos datos. Esto provoca que los datos deban estar mucho más protegidos y controlados. Además los datos forman una estructura física y funcional que es lo que se conoce como base de datos. De esta forma una base de datos es una serie de datos relacionados que forman una estructura lógica, es decir una estructura reconocible desde un programa informático. Esa estructura no sólo contiene los datos en sí, sino la forma en la que se relacionan. Las bases de datos empiezan a aparecer en los años 60 y triunfan en los años setenta y ochenta. 1 Modulo Bases de Datos SISTEMAS DE INFORMACION Un sistema de información (SI) es un conjunto de elementos orientados al tratamiento y administración de datos e información, organizados y listos para su uso posterior, generados para cubrir una necesidad u objetivo. Dichos elementos formarán parte de alguna de las siguientes categorías: Personas Datos Actividades o técnicas de trabajo Recursos materiales en general (generalmente recursos informáticos y de comunicación, aunque no necesariamente). Todos estos elementos interactúan para procesar los datos (incluidos los procesos manuales y automáticos) y dan lugar a información más elaborada, que se distribuye de la manera más adecuada posible en una determinada organización, en función de sus objetivos. ¿Qué es un Dato?: Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos. ¿Qué es Información?: Es un conjunto ordenado de datos los cuales son manejados según la necesidad del usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a información, primero se debe guardar lógicamente en archivos. COMPONENTES DE UN SISTEMA DE INFORMACIÓN En el caso de una gestión electrónica de la información (lo que actualmente se considera un sistema de información electrónico), los componentes son: Datos. Se trata de la información relevante que almacena y gestiona el sistema de información. Ejemplos de datos son: Sánchez, 12764569F, Calle Mayo 5, Azul… Hardware. Equipamiento físico que se utiliza para gestionar los datos. cada uno de los dispositivos electrónicos que permiten el funcionamiento del sistema de información. Software. Aplicaciones informáticas que se encargan de la gestión de la base de datos y de Recursos humanos. Personal que maneja el sistema de información TIPOS DE SISTEMAS DE INFORMACION 2 Modulo Bases de Datos En la evolución de los sistemas de información ha habido dos puntos determinantes, que han formado los dos tipos fundamentales de sistemas de información. Sistemas de información orientados al proceso En estos sistemas de información se crean diversas aplicaciones (software) para gestionar diferentes aspectos del sistema. Cada aplicación realiza unas determinadas operaciones. Los datos de dichas aplicaciones se almacenan en archivos digitales dentro de las unidades de almacenamiento del ordenador (a veces en archivos binarios, o en hojas de cálculo, o incluso en archivos de texto). Cada programa almacena y utiliza sus propios datos de forma un tanto caótica. La ventaja de este sistema (la única ventaja), es que los procesos son independientes por lo que la modificación de uno no afectaba al resto. Pero tiene grandes inconvenientes: Datos redundantes. Ya que se repiten continuamente Datos inconsistentes. Ya que un proceso cambia sus datos y no el resto. Por lo que el mismo dato puede tener valores distintos según qué aplicación acceda a él. Coste de almacenamiento elevado. Al almacenarse varias veces el mismo dato, se requiere más espacio en los discos. Luego se agotarán antes. Difícil acceso a los datos. Cada vez que se requiera una consulta no prevista inicialmente, hay que modificar el código de las aplicaciones o incluso crear una nueva aplicación. Dependencia de los datos a nivel físico. Para poder saber cómo se almacenan los datos, es decir qué estructura se utiliza de los mismos, necesitamos ver el código de la aplicación; es decir el código y los datos no son independientes. Tiempos de procesamiento elevados. Al no poder optimizar el espacio de almacenamiento. Dificultad para el acceso simultáneo a los datos. Es casi imposible de conseguir ya que se utilizan archivos que no admiten esta posibilidad. Dos usuarios no pueden acceder a los datos de forma concurrente. Dificultad para administrar la seguridad del sistema. Ya que cada aplicación se crea independientemente; es por tanto muy difícil establecer criterios de seguridad uniformes. 3 Modulo Bases de Datos A estos sistemas se les llama sistemas de gestión de ficheros. Se consideran también así a los sistemas que utilizan programas ofimáticos (como Word o Excel por ejemplo) para gestionar sus datos (muchas pequeñas empresas utilizan esta forma de administrar sus datos). De hecho estos sistemas producen los mismos (si no más) problemas. Sistemas de información orientados a los datos. (Bases de datos) En este tipo de sistemas los datos se centralizan en una base de datos común a todas las aplicaciones. En esos sistemas los datos se almacenan en una única estructura lógica que es utilizable por las aplicaciones. A través de esa estructura se accede a los datos que son comunes a todas las aplicaciones. Cuando una aplicación modifica un dato, dicho dato la modificación será visible para el resto de aplicaciones. 4 Modulo Bases de Datos Ventajas Independencia de los datos y los programas y procesos. Esto permite modificar los datos sin modificar el código de las aplicaciones. Menor redundancia. No hace falta tanta repetición de datos. Sólo se indica la forma en la que se relacionan los datos. Integridad de los datos. Mayor dificultad de perder los datos o de realizar incoherencias con ellos. Mayor seguridad en los datos. Al permitir limitar el acceso a los usuarios. Cada tipo de usuario podrá acceder a unas cosas.. Datos más documentados. Gracias a los metadatos que permiten describir la información de la base de datos. Acceso a los datos más eficiente. La organización de los datos produce un resultado más óptimo en rendimiento. Menor espacio de almacenamiento. Gracias a una mejor estructuración de los datos. Acceso simultáneo a los datos. Es más fácil controlar el acceso de usuarios de forma concurrente. Desventajas Instalación costosa. El control y administración de bases de datos requiere de un software y hardware poderoso Requiere personal cualificado. Debido a la dificultad de manejo de este tipo de sistemas. Implantación larga y difícil. Debido a los puntos anteriores. La adaptación del personal es mucho más complicada y lleva bastante tiempo. Ausencia de estándares reales. Lo cual significa una excesiva dependencia hacia los sistemas comerciales del mercado. Aunque, hoy en día, una buena parte de esta tecnología está aceptada como estándar de hecho. Sistemas de Bases de Datos Un Sistema de Bases de Datos es un sistema basado en ordenadores, cuyo propósito general es registrar y mantener datos mediante un sistema gestor de BD. Permite a los usuarios y aplicaciones la consulta y manipulación de estos datos - almacenados en bases de datos - usando un lenguaje de consulta estructurado: SQL (Structured Query Language). 5 Modulo Bases de Datos Como se ha comentado anteriormente, cuando los datos de un sistema de información se almacenan en una única estructura, se llama base de datos. Se presentan a continuación algunas definiciones: ¿QUÉ ES UNA BASE DE DATOS? Si tuviéramos que dar una definición de lo que es una base de datos diríamos que es un conjunto de datos almacenados en formato digital para su posterior consulta. Ampliando la definición añadiríamos que la información puede consultarse según una serie de criterios distintos. Una colección de datos relacionados, y una descripción de estos datos, diseñados para cumplir con las necesidades de información de una organización. Una Base de Datos es un conjunto de información relacionada con un asunto, tema o actividad específica. Así, se pueden utilizar Bases de Datos para cosas tan sencillas como mantener un registro de nuestra colección de discos de música, hasta llevar toda la gestión de una gran empresa u organización. Archivo: Colección de registros almacenados siguiendo una estructura homogénea. Registros: Colección de campos de iguales o de diferentes tipos. También llamados filas, representan un ítem único de datos estructurados en una tabla. Para entendernos sería el equivalente a las fichas de un fichero. Cada registro está formado por uno o varios campos. En una base de datos existen multitud de registros. Cada cliente almacenado en la base es un registro. Campos: Es un espacio de almacenamiento para un dato en particular. Los datos se almacenan en los registros dentro de los campos. Si hemos dicho que la ficha equivale a los registros, los campos serían los conceptos que tienen las fichas. Por ejemplo en el registro de un cliente, los campos serían el nombre, apellidos, dirección, DNI,… 6 Modulo Bases de Datos Tabla: La tabla de la base de datos es dónde se almacenan los registros. Cada fila de la tabla corresponde a un registro. Una base de datos puede contener varias tablas. Por ejemplo una para los clientes, otra para los productos, otra para ventas,... El objetivo es que las aplicaciones puedan acceder a los datos sin necesidad de conocer exactamente cómo están almacenados los datos. Esto se consigue con un esquema conocido como esquema conceptual. Cualquier desarrollador que conozca ese esquema puede acceder a los datos desde cualquier aplicación. APLICACIONES TRADICIONALES Sistema de Reservaciones en Aerolíneas (Pasajeros, vuelos, itinerarios, sillas, precios tiquetes, disponibilidad) Sistemas Bancarios (Clientes, cuentas, préstamos, balances de cuentas, retiros, consignaciones) Registros corporativos (Ventas, cuentas, empleados, descuentos, ascensos, despidos) Componentes de un Sistema de base de datos Los elementos de un sistema de base de datos son los mismos que los de un sistema de información. Se comentan a continuación para concretar un poco más la información que ya poseíamos: Hardware. Máquinas en las que se almacenan las bases de datos. Incorporan unidades de almacenamiento masivo para este fin. 7 Modulo Bases de Datos Software. Es el sistema gestor de bases de datos. El encargado de administrar las bases de datos. Datos. Incluyen los datos que se necesitan almacenar y los metadatos que son datos que sirven para describir lo que se almacena en la base de datos. Usuarios. Personas que manipulan los datos del sistema. Hay tres categorías: o Usuarios finales. Aquellos que utilizan datos de la base de datos para su trabajo cotidiano que no tiene por qué tener que ver con la informática. Desarrolladores. Analistas y programadores encargados de generar aplicaciones para los usuarios finales. Administradores. También llamados DBA (Data Base Administrator), se encargan de gestionar las bases de datos. Estructura de una base de datos Las bases de datos están compuestas (como ya se han comentado), de datos y de metadatos. Los metadatos son datos (valga la redundancia) que sirven para especificar la estructura de la base de datos; por ejemplo qué tipo de datos se almacenan (si son texto o números o fechas ...), qué nombre se le da a cada dato (nombre, apellidos,...), cómo están agrupados, cómo se relacionan,.... De este modo se producen dos visiones de la base de datos: Estructura lógica o conceptual. Indica la composición y distribución teórica de la base de datos. La estructura lógica sirve para que las aplicaciones puedan utilizar los elementos de la base de datos sin saber realmente cómo se están almacenando. Estructura física. Es la estructura de los datos tan cual se almacenan en las unidades de disco. La correspondencia entre la estructura lógica y la física se almacena en la base de datos (en los metadatos). 8 Modulo Bases de Datos SISTEMA GESTOR DE BASES DE DATOS (SGBD) Un gestor de base de datos o sistema de gestión de base de datos (SGBD o DBMS) es un software que permite introducir, organizar y recuperar la información de las bases de datos; en definitiva, administrarlas. Existen distintos tipos de gestores de bases de datos: relacional, jerárquico, red, ... El modelo relacional es el utilizado por casi todos los gestores de bases de datos para PC ́s. El modelo relacional (SGBDR) es un software que almacena los datos en forma de tablas 9 Modulo Bases de Datos OBJETIVO DE LOS SISTEMAS GESTORES DE BASES DE DATOS Un sistema gestor de bases de datos o SGBD (aunque se suele utilizar más a menudo las siglas DBMS procedentes del inglés, Data Base Management System) es el software que permite a los usuarios procesar, describir, administrar y recuperar los datos almacenados en una base de datos. En estos Sistemas se proporciona un conjunto coordinado de programas, procedimientos y lenguajes que permiten a los distintos usuarios realizar sus tareas habituales con los datos, garantizando además la seguridad de los mismos. 10 Modulo Bases de Datos El éxito del SGBD reside en mantener la seguridad e integridad de los datos. Lógicamente tiene que proporcionar herramientas a los distintos usuarios. Entre las herramientas que proporciona están: Herramientas para la creación y especificación de los datos. Así como la estructura de la base de datos. Herramientas para administrar y crear la estructura física requerida en las unidades de almacenamiento. Herramientas para la manipulación de los datos de las bases de datos, para añadir, modificar, suprimir o consultar datos. Herramientas de recuperación en caso de desastre Herramientas para la creación de copias de seguridad Herramientas para la gestión de la comunicación de la base de datos Herramientas para la creación de aplicaciones que utilicen esquemas externos de los datos Herramientas de instalación de la base de datos Herramientas para la exportación e importación de datos DBMS 11 Modulo Bases de Datos CAPITULO 2 EL MODELO DE DATOS ¿Qué es un modelo? Es una representación de la realidad que contiene las características generales de algo que se va a realizar. En base de datos, esta representación la elaboramos de forma gráfica. Un modelo es una representación de la realidad que conserva sólo los detalles relevantes. Una representación abstracta de los datos de una organización y las relaciones entre ellos. Más aún, podemos decir que, en cierta medida, un modelo de datos describe una organización. El propósito de un modelo de datos es, por una parte, representar los datos y, por otra, ser comprensible. Es una colección de herramientas conceptuales para describir los datos, las relaciones que existen entre ellos, semántica asociada a los datos y restricciones de consistencia. Por ejemplo, consideremos una transacción bancaria tal como un depósito en una cuenta corriente. El departamento de contabilidad desea conservar ciertos detalles (número de cuenta, importe del depósito, fecha, número del cajero) e ignorar otros (las palabras que se han intercambiado durante la transacción, la longitud de la cola, la temperatura ambiental dentro del banco,…). La realidad involucra un sin número de detalles, pero el departamento de contabilidad considerará la mayoría de ellos irrelevantes para la transacción. De modo que un modelo, desde el punto de vista del departamento de contabilidad, deberá considerar sólo aquellos detalles que este considere relevantes. Por supuesto, algunos detalles considerados irrelevantes para un usuario o grupo de usuarios pueden ser relevantes para otros. Ejemplo: la longitud de la cola puede ser interesante para el director del banco en el sentido de contratar a más cajeros para atender al público. Por tanto, diferentes usuarios o grupos de usuarios pueden tener distintos modelos de la realidad. 12 Modulo Bases de Datos Una Base de Datos incorpora un modelo de la realidad. El SGBD gestiona la Base de Datos de modo que cada usuario pueda registrar, acceder y manipular los datos que constituyen su modelo de la realidad. Manipulando los datos los usuarios pueden obtener información necesaria que les sea útil en su vida. Por tanto, los modelos son herramientas poderosas para eliminar los detalles irrelevantes y comprender la realidad de los usuarios individuales. Para modelar debemos asociar/identificar elementos de la realidad con elementos del modelo. Si esta asociación se hace correctamente, entonces el modelo se puede usar para resolver el problema. De lo contrario, el modelo probablemente conducirá a una solución incompleta o incorrecta. Campañas PK Ejecutivas codi_campaña PK Nombre campaña Fecha_inicio Fecha_termino codi_ejecutiva Nombre Rut Dirección Teléfono Estado Carteras PK codi_cartera FK1 FK2 codi_campaña codi_ejecutiva Estado Clientes PK Nombre Direccion Ciudad Telefono Detalle_cartera 13 PK codi_detalle FK1 FK2 FK3 codi_cartera rut_cliente codi_promocion flag_compra Fecha_contacto Modulo Bases de Datos Rut_cliente Promociones PK codi_promocion Nombre_promocion Valor El modelo entidad relación (entidad –interrelación) El modelo Entidad-Relación es un modelo conceptual de datos orientado a entidades. Se basa en una técnica de representación gráfica que incorpora información relativa a los datos y las relaciones existentes entre ellos, para darnos una visión de mundo real, eliminando los detalles irrelevantes. CARACTERÍSTICAS DEL MODELO � Refleja tan solo la existencia de los datos, no lo que se hace con ellos. � Se incluyen todos los datos relevantes del sistema en estudio. � No está orientado a aplicaciones específicas. � Es independiente de los SGBD. � No tiene en cuenta restricciones de espacio, almacenamiento, ni tiempo de ejecución. � Está abierto a la evolución del sistema. � Es el modelo conceptual más utilizado. ELEMENTOS DEL MODELO Los elementos básicos del modelo E-R original son: � ENTIDAD � ATRIBUTO � DOMINIO � RELACION Entidad: Persona, suceso o concepto, de interés para la Organización, distinguible de los demás objetos. Cualquier tipo de objeto o concepto sobre el que se recoge información: cosa, persona, concepto abstracto o suceso. Por ejemplo: persona, producto, compañía, media de transporte, entre otros. 14 Modulo Bases de Datos Atributos: Cada una de las propiedades o características que tiene una entidad. Relación: Es la asociación existente entre dos o más entidades. 15 Modulo Bases de Datos MODELO RELACIONAL (BASES DE DATOS RELACIONALES) BASES RELACIONALES Las tablas de las bases de datos pueden relacionarse entre sí obteniendo información asociada. Este tipo de bases de datos se denominan bases de datos relacionales y son las más comunes. Una base de datos relacional es un conjunto de una o más tablas estructuradas en registros (líneas) y campos (columnas), que se vinculan entre sí por un campo en común, en ambos casos posee las mismas características como por ejemplo el nombre de campo, tipo y longitud; a este campo generalmente se le denomina ID, identificador o clave. A esta manera de construir bases de datos se le denomina modelo relacional. Estrictamente hablando el término se refiere a una colección específica de datos pero a menudo se le usa, en forma errónea como sinónimo del software usado para gestionar esa colección de datos. Ese software se conoce como SGBD (sistema gestor de base de datos) relacional o RDBMS (del inglés relational database management system). Las bases de datos relacionales pasan por un proceso al que se le conoce como normalización de una base de datos, el cual es entendido como el proceso necesario para que una base de datos sea utilizada de manera óptima. Entre las ventajas de este modelo están: 1. Garantiza herramientas para evitar la duplicidad de registros, a través de campos claves o llaves. 2. Garantiza la integridad referencial: Así al eliminar un registro elimina todos los registros relacionados dependientes. 3. Favorece la normalización por ser más comprensible y aplicable. Las bases de datos relacionales se basan en el uso de tablas (también se las llama relaciones). Las tablas se representan gráficamente como una estructura rectangular formada por filas y columnas. Cada columna almacena información sobre una propiedad 16 Modulo Bases de Datos determinada de la tabla (se le llama también atributo), nombre, dni, apellidos, edad,.... Cada fila posee una ocurrencia o ejemplar de la instancia o relación representada por la tabla (a las filas se las llama también tuplas). El modelo entidad-relación es un modelo conceptual que sirve para cualquier tipo de SGBD, en cambio, el modelo relacional es un modelo lógico que sólo sirve para SGBD relacionales (y no para jerárquicos, o Codasyl, por ejemplo). Todos los diseñadores y administradores de bases de datos relacionales usan esquemas conceptuales entidad-relación porque se adaptan muy bien a este modelo. Hay que tener en cuenta la diferencia de la palabra relación en ambos modelos. En el modelo relacional una relación es una tabla mientras que en el entidad/relación es la asociación que se produce entre dos entidades. RELACION (TABLAS) Según el modelo relacional el elemento fundamental es lo que se conoce como relación, aunque más habitualmente se le llama tabla. Se trata de una estructura formada por filas y columnas que almacena los datos referentes a una determinada entidad o relación del mundo real. Acerca de una tabla, además de su nombre, podemos distinguir lo siguiente: Atributo Representa una propiedad que posee esa tabla. Equivale al atributo del modelo E-R. Se corresponde con la idea de campo o columna. 17 Modulo Bases de Datos Tupla Cada una de las filas de la tabla. Se corresponde con la idea de registro. Representa por tanto cada elemento individual (ejemplar, ocurrencia) de esa tabla. Dominio Conjunto válido de valores representables por un atributo Un dominio contiene todos los posibles valores que puede tomar un determinado atributo. Dos atributos distintos pueden tener el mismo dominio. Un domino en realidad es un conjunto finito de valores del mismo tipo. Los dominios poseen un nombre para poder referirnos a él y así poder ser reutilizable en más de un atributo. Grado Número de columnas de la tabla (número de atributos). Cardinalidad Número de tuplas de una tabla (número de filas). CLAVES RESTRICCIÓN Una restricción es una condición de obligado cumplimiento por los datos de la base de datos. Las hay de varios tipos. • Aquellas que son definidas por el hecho de que la base de datos sea relacional: • No puede haber dos tuplas iguales • El orden de las tuplas no es significativo • El orden de los atributos no es significativo, no importa • Cada atributo sólo puede tomar un valor en el dominio en el que está inscrito • Aquellas que son incorporadas por los usuarios: • Clave primaria (primary key) 18 Modulo Bases de Datos Hace que los atributos marcados como clave primaria no puedan repetir valores. Además obliga a que esos atributos no puedan estar vacíos. Si la clave primaria la forman varios atributos, ninguno de ellos podrá estar vacío. • Unicidad (unique) Impide que los valores de los atributos marcados de esa forma, puedan repetirse. Esta restricción debe indicarse en todas las claves alternativas. • Obligatoriedad (not null) Prohíbe que el atributo marcado de esta forma no tenga ningún valor (es decir impide que pueda contener el valor nulo, null). • Integridad referencial (foreign key) Sirve para indicar una clave externa. Cuando una clave se marca con integridad referencial, no se podrán introducir valores que no estén incluidos en los campos relacionados con esa clave. Esto último causa problemas en las operaciones de borrado y modificación de registros, ya que si se ejecutan esas operaciones sobre la tabla principal quedarán filas en la tabla secundaria con la clave externa sin integridad. Esto se puede manipular agregando las siguientes cláusulas: RESTRICT: esta opción impide eliminar o modificar filas en la tabla referenciada si existen filas con el mismo valor de clave foránea. • CASCADE: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado de clave, implica borrar las filas con el mismo valor de clave foránea o modificar los valores de esas claves foráneas. • SET NULL: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado de clave, implica asignar el valor NULL a las claves foráneas con el mismo valor. • NO ACTION: las claves foráneas no se modifican, ni se eliminan filas en la tabla que las contiene. 19 Modulo Bases de Datos • SET DEFAULT: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado implica asignar el valor por defecto a las claves foráneas con el mismo valor. CAPITULO 4 NORMALIZACION 20 Modulo Bases de Datos