GESTIÓN DE BASES DE DATOS CON MYSQL



Documentos relacionados
Manual De Instalación MySQl 5.1 MANUAL DE INSTALACIÓN Y CONFIGURACIÓN DE MYSQL

WINDOWS : TERMINAL SERVER

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

INSTALACIÓN DE MySQL SERVER EN WINDOWS

MANUAL APLICACIÓN. SOFTWARE GESTIÓN DE CLÍNICAS DENTALES

Toda base de datos relacional se basa en dos objetos

PROCESO DE INSTALACIÓN Y CONFIGURACIÓN DE APACHE, PHP Y MySQL

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Manual de Instalación del sistema administrativo PremiumSoft Extended 7

REQUISITOS DEL SISTEMA. Software Servidor. Cliente. Hardware Servidor. Cliente

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Redes de área local: Aplicaciones y servicios WINDOWS

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Operación Microsoft Access 97

Notas para la instalación de un lector de tarjetas inteligentes.

Técnicas de Programación

Activación de un Escritorio Remoto

Manual hosting acens

Oficina Online. Manual del administrador

UNIDAD DIDACTICA 3 USUARIOS Y GRUPOS EN REDES WINDOWS 2003 SERVER II

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

UNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES WINDOWS EN UN DOMINIO

Gestión Alquiler de Vehículos Manual de Instalación

Base de datos relacional

GVisualPDA Módulo de Almacén

NORMA 34.14(SEPA) 05/11/2013

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Ejecución del programa de instalación de Windows XP

INDICE. Página 2 de 23

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Configuracion Escritorio Remoto Windows 2003

Tutorial: Primeros Pasos con Subversion

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

UNIDAD DIDACTICA 6 PERFILES LOCALES Y MÓVILES DE USUARIO

Guía de instalación de la carpeta Datos de IslaWin

WINDOWS : COPIAS DE SEGURIDAD

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Person IP CRM Manual MOBILE

10. El entorno de publicación web (Publiweb)

EDITRAN/CL. Manual de Usuario e Instalación. Módulo de Cliente Departamental. Windows

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

INSTALACIÓN DE MEDPRO

Manual de NetBeans y XAMPP

Creación y administración de grupos de dominio

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

Internet Information Server

Ajustes del Curso en egela (Moodle 2.5)

Manual del Alumno de la plataforma de e-learning.

Mini-guía: Gestión Backup

Acronis License Server. Guía del usuario

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Accederemos al Panel de Control y a la opción de Cuentas de usuario

TPV Táctil. Configuración y Uso. Rev /01/09

Instalación del programa PSPP y obtención de una distribución de frecuencias.

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

Administrar El Usuario Mediante Windows NT

Operación de Microsoft Word

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

Operación Microsoft Windows

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

Capítulo 9. Archivos de sintaxis

INSTALACIÓN DE SQL SERVER 2008 Y SQL SERVER 2008 EXPRESS

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Internet aula abierta

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana.

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

30 de Mayo de

Sincronización de carpetas con el disco duro virtual en sistemas Windows

Microsoft Access proporciona dos métodos para crear una Base de datos.

Sitios remotos. Configurar un Sitio Remoto

Unidad Didáctica 12. La publicación

Instalación de Microsoft Windows Server 2008

GUÍA DE OUTLOOK. Febrero 2010

Instalación de la aplicación de COAS Visado Digital

Redes de área local: Aplicaciones y servicios WINDOWS

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Programa de Ayuda EMCS Instalación Versión SQL Server Versión Marzo 2010

Instalación del programa PSPP y obtención de una distribución de frecuencias.

1. Configuración del entorno de usuario

Formas de llevar a cabo un backup de una base de datos MySQL

CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS

UF0513 Gestión auxiliar de archivo en soporte convencional o informático

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

Manual de usuario de Windows Live Writer

DOCUCONTA Versión Septiembre 2010 MINISTERIO DE HACIENDA. Manual de instalación SECRETARÍA DE ESTADO DE PRESUPUESTOS Y GASTOS

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

Transcripción:

Autores: Reingeniería, Tecnología y Comunicaciones, S.L. Calle Agustín de Foxá, 25 28036 Madrid De la edición: Centro de Estudios Adams, Ediciones Valbuena, S.A. Doctor Esquerdo, 136, 7ª Planta 28007 Madrid www.adams.es ISBN: 978-84-9943-398-1 1

ÍNDICE 1. SISTEMAS DE GESTIÓN DE BASES DE DATOS, METODOLOGÍA... 4 1.1 Definición... 4 1.2 Lenguajes de bases de datos... 5 1.3 Ventajas y desventajas de las bases de datos... 6 1.4 Entidades, claves primarias... 7 1.4.1 Entidades... 7 1.4.2 Claves primarias... 8 1.5 Relaciones muchos a uno y muchos a muchos... 8 1.6 Diagrama entidad-relación... 10 1.6.1 Notación diagrama E-R... 10 1.6.2 Notación diagrama E-R extendido... 11 1.6.3 Pasar del modelo relacional a tablas... 12 1.7 Restricciones, claves externas, cardinalidad... 14 2. INTRODUCCIÓN A MYSQL... 15 2.1 Características y versiones... 15 2.2 Instalación de los ficheros del programa... 16 2.3 Configuración del entorno... 19 2.4 Arrancar el servidor... 25 2.5 Conexión y desconexión al servidor... 26 3. BASES DE DATOS EN MYSQL... 27 3.1 Entrada de comandos en el monitor... 27 3.2 Visualizar bases de datos... 28 3.3 Utilizar una base de datos existente... 29 3.4 Crear, Borrar una base de datos... 30 3.4.1 Creación y borrado de una base de datos... 30 3.4.2 Usuarios y privilegios... 31 3.5 Mostrar tablas de una base de datos... 35 3.6 Tipos de datos... 36 3.6.1 Tipos numéricos... 36 3.6.2 Tipos de fecha y hora... 37 3.6.3 Tipos de cadenas de caracteres... 37 3.7 Creación de una tabla y operaciones con tablas... 38 3.7.1 Creación de una tabla... 38 3.7.2 Operaciones con tablas... 39 3.8 Tablas innodb... 41 4. INSERTAR DATOS A MYSQL... 42 4.1 Introducir datos en una tabla... 42 4.2 Claves principales y externas... 46 4.3 Índices... 52 4.4 Obtener registros... 53 4.4.1 Estructura básica SELECT... 53 4.4.2 Tipos de selecciones... 55 4.4.3 Ordenar y agrupar la salida... 61 4.4.4 Subconsultas y Vistas... 66 4.4.5 Uso de consultas para almacenar valores en archivos externos... 70 4.5 Modificar registros... 71 4.6 Borrar registros... 72 5. COMBINAR TABLAS... 73 5.1 Uniones... 73 5.2 Tipos de uniones... 75 2

GLOSARIO... 82 BIBLIOGRAFÍA... 84 LINKS... 84 3

1. SISTEMAS DE GESTIÓN DE BASES DE DATOS, METODOLOGÍA 1.1 Definición Qué es una base de datos? Originalmente las aplicaciones relacionadas con el manejo de datos se construían sobre un conjunto de ficheros, lo cual ocasionaba numerosos problemas: redundancia e inconsistencia en los datos, acceso ineficiente a los mismos, o problemas de aislamiento e integridad. Las bases de datos surgen con el objetivo de solucionar la mayor parte de los problemas originados por los métodos de almacenamiento de información anteriores. Una base de datos, también denominada BBDD, es una colección de datos interrelacionados y estructurados. Existen distintos tipos de BBDD, entre los que se encuentran las siguientes: jerárquicas, en red, relacionales, orientadas a objetos y objeto relacionales. A lo largo del curso nos centraremos en el estudio de las BBDD de tipo relacional, ya que son las más utilizadas en la actualidad para modelar problemas reales y administrar datos dinámicamente. Los principales objetivos de una BBDD son los siguientes: -Asegurar la atomicidad de las modificaciones: La BBDD no puede quedar en un estado inconsistente tras realizar algún cambio sobre ella. -Permitir el acceso simultáneo de varios usuarios para ganar velocidad de proceso, asegurando que no se producirá ningún tipo de conflicto. -La seguridad, restringiendo parcialmente, si es necesario, el acceso a los datos. -La abstracción de los datos. Qué es un sistema de gestión de bases de datos? Un sistema gestor de bases de datos, también denominado SGBD, es una aplicación capaz de manejar una base de datos de manera eficiente y cómoda. Es un conjunto de programas que permiten acceder y organizar los datos contenidos en una BBDD. Aplicaciones típicas de los gestores de bases de datos: -Bancos: gestión de cuentas, préstamos, -Líneas aéreas: reservas, horarios, cancelaciones, -Universidades: matrículas, expedientes, -Ventas: clientes, productos, inventario, -Recursos Humanos: fichas de empleados, salarios, 4

1.2 Lenguajes de bases de datos GESTIÓN DE BASES DE DATOS CON MYSQL Los SGBD deben ofrecer lenguajes e interfaces apropiadas para cada tipo de usuario: administradores de la base de datos, diseñadores, programadores de aplicaciones y usuarios finales. Lenguaje de definición de datos Una vez finalizado el diseño de una base de datos y escogido un SGBD para su implementación, el siguiente paso consiste en especificar el esquema conceptual y el esquema interno de la base de datos, y la correspondencia entre ambos. En muchos SGBD el administrador de la BBDD y los diseñadores utilizan el mismo lenguaje para definir ambos esquemas, es el lenguaje de definición de datos (LDD). El SGBD posee un compilador de LDD cuya función consiste en procesar las sentencias del lenguaje. Cuando en un SGBD hay una clara separación entre los niveles conceptual e interno, el LDD sólo sirve para especificar el esquema conceptual. Para especificar el esquema interno se utiliza un lenguaje de definición de almacenamiento (LDA). Las correspondencias entre ambos esquemas se pueden especificar en cualquiera de los dos lenguajes. Lenguaje de manejo de datos Tras ser creados los esquemas de la BBDD, los usuarios necesitan un lenguaje que les permita manipular los datos de la misma: realizar consultas, inserciones, eliminaciones y modificaciones. Este lenguaje es el que se denomina lenguaje de manejo de datos (LMD). Hay dos tipos de LMD, los procedurales y los no procedurales. Con un LMD procedural el usuario (generalmente será un programador) especifica qué datos se necesitan y cómo hay que obtenerlos. Las bases de datos jerárquicas y de red utilizan LMD procedurales. Un LMD no procedural se puede utilizar de manera independiente para especificar operaciones complejas sobre la base de datos de forma concisa. Este tipo de LMD permite especificar los datos a obtener en una consulta o los datos que se deben actualizar, mediante una única y sencilla sentencia. Las bases de datos relacionales, que serán las que utilizaremos a lo largo del curso, utilizan LMD no procedurales, como SQL (Structured Query Language) o QBE (Query-By-Example). Los lenguajes no procedurales son más fáciles de aprender y de usar que los procedurales, y el usuario debe realizar menos trabajo, siendo el SGBD el que hace la mayor parte. 5

1.3 Ventajas y desventajas de las bases de datos Como podemos ver a continuación, la utilización de los SGBD ha conseguido solucionar la mayor parte de los inconvenientes de los métodos de almacenamiento utilizados con anterioridad, en lo que a la estructuración de datos se refiere. Las desventajas que supone su utilización son mínimas frente a todas las ventajas que aportan. Ventajas de las BBDD -Almacenamiento centralizado de datos frente a la forma de almacenamiento que tenía el conjunto de ficheros. -Abstracción de datos, consiguiendo la independencia entre el programa y los mismos. - Supresión de información redundante. -Restricción de acceso a determinados datos, mediante la utilización de privilegios. -Acceso simultáneo a la información contenida en la BBDD. -Refuerzo de las restricciones de integridad. -Posibilidad de la realización de backup sobre la información almacenada. -Reducen el tiempo de desarrollo. -Incrementan la flexibilidad. -Ofrecen la posibilidad de tener la información siempre actualizada. Desventajas de las BBDD -Su instalación y mantenimiento requiere personal especializado, tiempo y conocimientos técnicos. -En entornos con altas demandas computacionales, el coste computacional introducido por la base de datos puede ser significativo. 6

1.4 Entidades, claves primarias Como ya se ha mencionado con anterioridad, a lo largo de este curso estudiaremos y trabajaremos con bases de datos de tipo relacional, que permiten establecer interconexiones (relaciones) entre los datos que están guardados en tablas, y trabajar con ellos conjuntamente. Convertir un diagrama Entidad-Relación a tablas es el primer paso para obtener una base de datos relacional, pero antes de profundizar en la explicación de este tipo de diagrama, estudiaremos algunos conceptos necesarios para su correcta comprensión. 1.4.1 Entidades Una entidad es un objeto que existe y es distinguible de otros objetos. Cada entidad está representada por un conjunto de propiedades o atributos, y los valores para algún conjunto de propiedades la identifican de forma unívoca. Podemos distinguir dos tipos de entidades: -Entidad concreta: producto, proveedor, cliente, préstamo Representa elementos que son tangibles. -Entidad abstracta: día festivo, concepto, tipo de producto Representa elementos no tangibles. Un conjunto de entidades del mismo tipo comparten las mismas propiedades, y no son necesariamente disjuntos. Por ejemplo, si tenemos un conjunto de entidades cliente y un conjunto de entidades empleado, una entidad persona puede ser una entidad cliente, una entidad empleado, ambas cosas, o ninguna. Los atributos describen propiedades de una entidad y están caracterizados por su dominio, es decir, por el conjunto de valores permitidos para ese atributo. Por ejemplo, en el caso del dominio del atributo precio de la entidad producto, este sería el conjunto de todos los enteros positivos. Cada atributo de una relación tiene un nombre, y en general se debe evitar que su valor sea nulo, ya que crea problemas a la hora de realizar operaciones lógicas. Existen varios tipos de atributos: - Simples y compuestos: Un atributo compuesto se puede dividir en subpartes. Por ejemplo, el atributo nombre, de la entidad cliente (nombre-cliente) podría dividirse en nombre, apellido1, apellido2, que son atributos simples. - Single-valued (monovalorados) y multi-valued (multivalorados): Un atributo multivalorado tiene un conjunto de valores. Por ejemplo, el atributo número-teléfono es un atributo que puede tener varios valores. - Atributos derivados: Su valor se deriva de otros atributos o entidades relacionadas. Por ejemplo, el atributo edad puede derivarse del atributo fecha-nacimiento. 7

1.4.2 Claves primarias Cada tabla puede tener uno o más campos cuyos valores identifican de forma única cada registro de dicha tabla, es decir, no pueden existir dos o más registros diferentes cuyos valores en dichos campos sean idénticos. Este conjunto de campos se denomina clave. Podemos distinguir varios tipos de claves: -Superclave: uno o más atributos que permiten identificar de forma única a una entidad en el conjunto de entidades. Por ejemplo, la combinación de nombre-cliente e id-cliente es una superclave del conjunto de entidades de cliente. -Clave candidata: superclaves mínimas. Por ejemplo, en el caso de la entidad cliente, idcliente es una clave candidata de la misma. -Clave primaria: es la clave candidata elegida para identificar de forma unívoca a una entidad en el conjunto de entidades. No puede tener valor nulo (NULL), no se puede repetir y es preferible que sus valores no suelan cambiar. -Clave extranjera o foránea: la estudiaremos más adelante. 1.5 Relaciones muchos a uno y muchos a muchos Una relación es una asociación entre varias entidades. Normalmente las relaciones son binarias (entre dos entidades), aunque en ocasiones podemos encontrar relaciones ternarias o n-arias (n > 2). Las relaciones pueden tener también atributos, al igual que los tenían las entidades. Pueden existir distintos tipos de relaciones entre entidades, en este apartado estudiaremos las de tipo uno a uno, muchos a uno, muchos a muchos. Relaciones uno a uno (1-1) Una entidad en A está asociada a lo sumo con una entidad en B, y una entidad en B está asociada a lo sumo con una entidad en A. Conjunto de entidades A Conjunto de entidades B 8

Relaciones muchos a uno ( -1) Una entidad en A puede estar asociada a lo sumo con una entidad en B, una entidad en B está asociada con un número cualquiera de entidades en A. Conjunto de entidades A Conjunto de entidades B Relaciones muchos a muchos ( - ) Una entidad en A puede estar asociada con un número cualquiera de entidades en B, una entidad en B puede estar asociada con un número cualquiera de entidades en A. Conjunto de entidades A Conjunto de entidades B 9

1.6 Diagrama entidad-relación Formalmente, los diagramas entidad-relación, también denominados diagramas E-R, son un lenguaje gráfico para describir conceptos. Informalmente, son simples dibujos o gráficos que describen la información que trata un sistema de información y el software que lo automatiza. El modelado entidad-relación es una técnica para el modelado de datos utilizando diagramas entidad relación. No es la única técnica pero sí la más utilizada. Consiste, básicamente, en los siguientes pasos: -Se parte de una descripción contextual del problema o sistema de información a automatizar (requisitos). -Se hace una lista de los sustantivos y verbos que aparecen. -Los sustantivos son posibles entidades o atributos. -Los verbos son posibles relaciones. -Analizando las frases se determina la cardinalidad de las relaciones y otros detalles. -Se elabora el diagrama entidad-relación. -Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama. 1.6.1 Notación diagrama E-R El diagrama anterior corresponde a un posible diagrama E-R que representa, por ejemplo, parte de la información que un banco tiene almacenada sobre sus clientes. Como podemos ver dicho diagrama consta de los siguientes elementos: -Rectángulos: Representan las entidades. -Rombos: Representan las relaciones entre entidades -Líneas: Son los enlaces entre entidad y atributos, y entre entidad y relación. -Elipses: Representan los atributos. Si el texto de la elipse está subrayado el atributo es la clave primaria. 10

Como ya hemos visto en apartados anteriores los atributos pueden ser de varios tipos, por lo tanto, tendremos también diferentes tipos de elipses en función de la clasificación del atributo: Si la elipse es doble representa atributos multivalorados. Si la elipse está punteada representa atributos derivados. Si la elipse es como la que se puede observar en el diagrama anterior, puede representar atributos simples o compuestos. 1.6.2 Notación diagrama E-R extendido Los diagramas E-R no cumplen su propósito con eficacia, debido a que tienen limitaciones semánticas. Por ese motivo se suelen utilizar los diagramas E-R extendidos que incorporan algunos elementos más al lenguaje: Entidades fuertes y débiles: Una entidad que no tiene clave primaria es una entidad débil. Las entidades débiles no están bien definidas sino es con relación a otra entidad, y dicha relación tiene que ser muchos (lado de la entidad débil) a uno. Existen uno o varios atributos discriminantes (o clave parcial), que diferencian todas las entidades débiles relacionadas con la misma entidad (fuerte). La clave primaria de una entidad débil se forma uniendo la clave primaria de la entidad fuerte(asociada con la entidad débil) y los atributos discriminantes. Una entidad débil se representa como un rectángulo con líneas dobles, la relación a la que está asociada como un rombo con líneas dobles, y la línea que las une también es doble. El discriminador se marca con un línea punteada. Si nos fijamos en el ejemplo de diagrama E-R extendido que se incluye en este apartado, podemos observar que la entidad débil es pago, la fuerte préstamo, el discriminador es número-pago, y la clave primaria sería (número_préstamo, número_pago). Cardinalidad de las relaciones: Aunque veremos qué es la cardinalidad en detalle en el apartado siguiente, de momento mencionaremos que es un concepto ligado al tipo de las relaciones. En el diagrama E-R extendido, el tipo de cardinalidad se representa mediante una etiqueta en el exterior de la relación (1:1, 1:N y N:M), aunque la notación depende del lenguaje utilizado. Otra 11

forma de representar la cardinalidad es situando un símbolo cerca de la línea que conecta una entidad con una relación: 0, si cada instancia de la entidad no está obligada a participar en la relación. 1, si toda instancia de la entidad está obligada a participar en la relación, y además, solamente participa una vez. N, M, o *, si cada instancia de la entidad no está obligada a participar en la relación y puede hacerlo cualquier número de veces. También es posible indicar el tipo de relación utilizando un tipo de línea u otra al unir la entidad con la relación: Relación muchos a muchos Relación muchos a uno Relación uno a uno -Atributos en relaciones: Como ya hemos explicado anteriormente, las relaciones también pueden tener atributos asociados. Se representan igual que los atributos de las entidades. Por ejemplo, supongamos que es necesario hacer constar la fecha de emisión de una factura a un cliente, y que es posible emitir duplicados de la factura(con distinta fecha). En tal caso, el atributo Fecha de emisión debería colocarse en la relación se emite. -Herencia: La herencia es un intento de adaptación de estos diagramas al paradigma orientado a objetos. Es un tipo de relación entre una entidad padre y una entidad hijo, donde la entidad hijo hereda todos los atributos y relaciones de la entidad padre, y por tanto no necesitan ser representadas dos veces en el diagrama E-R. La relación de herencia se representa mediante un triángulo interconectado por líneas a las entidades. La entidad conectada al vértice superior del triángulo es la entidad padre, y las conectadas a la base son las entidades hijo. -Agregación: Es una abstracción a través de la cual las relaciones se tratan como entidades de un nivel más alto. Se representa englobando la relación abstraída y las entidades que participan en ella en un rectángulo. 1.6.3 Pasar del modelo relacional a tablas Una base de datos que se ajusta al modelo relacional puede representarse como un conjunto de tablas. Normalmente cada entidad da lugar a una tabla, y cada tabla tiene un conjunto de columnas que suelen corresponderse con los atributos. El conjunto de valores que componen una fila de la tabla, se denomina tupla. A continuación mostramos el esquema de una tabla compuesta por los elementos citados anteriormente: 12

Dependiendo del tipo de entidades, atributos y relaciones de los componentes de nuestro diagrama E-R, hemos de tener en cuenta las siguientes consideraciones: -Relaciones uno a uno: Para los conjuntos de relaciones 1-1 la clave primaria de una de las entidades que se relacionan, debe formar parte de la tabla formada por la otra relación. Por lo tanto, se añade dicha clave primaria como un atributo extra a una de las tablas obtenidas a partir de las entidades relacionadas. -Relaciones muchos a uno: Los conjuntos de relaciones -1 se representan añadiendo la clave primaria del lado de 1 como un campo a la tabla del lado. -Relaciones muchos a muchos: Un conjunto de relaciones - da lugar a las tablas correspondientes a cada una de las entidades, igual que en el resto de casos, y además genera una tabla más, que contiene las claves primarias de las entidades que relaciona. -Atributos compuestos y multivalorados: Los atributos compuestos deben descomponerse en partes atómicas antes de transformar el diagrama E-R en tablas. En cuanto a los atributos multivalorados, se representan como una tabla nueva que contiene una columna correspondiente a la clave primaria de la entidad original. -Entidades débiles: Una entidad débil da lugar a una tabla que incluye una columna con la clave primaria de la entidad fuerte. A continuación, mostramos un ejemplo sencillo de un posible esquema de una base de datos de un banco, obtenido a partir de un diagrama E-R. En el caso del diagrama E-R se ha utilizado la nomenclatura explicada y detallada en los apartados anteriores (en este caso concreto las relaciones se indican mediante el tipo de las flechas). Se puede observar que existen relaciones muchos a muchos y relaciones muchos a uno, y también se puede ver como cada entidad tiene su clave primaria correspondiente (recuerde que el atributo con el nombre subrayado representa la clave primaria). 13

El esquema de tablas obtenido a partir del diagrama E-R anterior, representa las claves primarias de cada entidad subrayando su nombre o marcándolo con una caja gris. Los nombres que tienen este símbolo a su derecha, representan las claves extranjeras o foráneas. 1.7 Restricciones, claves externas, cardinalidad Restricciones Se trata de unas condiciones de obligado cumplimiento por los datos de la base de datos. Aunque la mayor parte de ellas ya se han ido citando a lo largo de todo el capítulo, a continuación las clasificaremos en dos tipos y enumeraremos las más importantes. - Inherentes: Son aquellas que no son determinadas por los usuarios, sino que son definidas por el hecho de que la base de datos sea relacional. Por ejemplo: - No puede haber dos tuplas iguales. - El orden de las tuplas no importa. - El orden de los atributos no importa. - Cada atributo solo puede tomar un valor en el dominio en el que está inscrito. -Semánticas: El modelo relacional permite a los usuarios incorporar restricciones personales a los datos. Las principales son: - Clave primaria: hace que los atributos marcados como clave primaria no puedan repetir valores. - Unicidad: impide que los valores de los atributos marcados de esa forma, puedan repetirse. - Obligatoriedad: Prohíbe que el atributo marcado de esta forma no tenga ningún valor. - Integridad referencial: Prohíbe colocar valores en una clave externa que no estén reflejados en la tabla donde ese atributo es clave primaria. - Regla de validación: Condición que debe cumplir un dato concreto para que sea actualizado. Claves externas La clave externa, también conocida como clave extranjera o clave foránea, es una referencia a una clave en otra tabla. Las claves foráneas no necesitan ser claves únicas en la tabla donde estén, pero sí donde están referenciadas. 14

Un ejemplo de clave externa lo podemos encontrar cuando transformamos una relación del tipo muchos a uno de diagrama a tabla. Recordemos que en este tipo de relaciones la clave primaria del lado de 1 se añade como campo a la tabla del lado. Este campo añadido, actuaría como clave externa o foránea en la tabla del lado. Cardinalidad El concepto de cardinalidad o cardinalidad de asignación, hace referencia al número de entidades con las que puede asociarse otra entidad mediante una relación. Como ya hemos visto con anterioridad, este número viene dado por el tipo de relación que mantienen dos entidades (uno a uno, muchos a uno o muchos a muchos). 2. INTRODUCCIÓN A MYSQL 2.1 Características y versiones MySQL es un sistema de gestión de bases de datos, capaz de manejar los mismos de manera eficiente y cómoda. En la actualidad se ha convertido en uno de los SGBD más popular, debido entre otros factores a una de sus características principales: el software MySQL es Open Source. Open Source significa que se trata de un sistema de libre distribución y de código abierto. Se puede descargar el software MySQL desde internet y usarlo sin pagar nada, y además si se desea, es posible estudiar el código fuente y modificarlo para adaptarlo a las necesidades de cada uno. Además de lo señalado anteriormente, MySQL posee también las siguientes características: - Es un sistema de gestión de bases de datos relacionales. - El servidor de base de datos MySQL es muy rápido, fiable y fácil de usar. Gracias a la colaboración de muchos usuarios, se ha ido mejorando, optimizándose en velocidad. Por este motivo es una de las BBDD más utilizadas en Internet. - Existe una gran cantidad de software, aplicaciones y lenguajes que soportan este servidor de BBDD. Versión Descripción Estándar Max Pro Classic Incluye el motor estándar y la posibilidad de usar bases de datos InnoDB. Para usuarios que quieran MySQL con herramientas de prueba para realizar opciones avanzadas de BBDD. Versión comercial del MySQL estándar. Igual que la estándar pero no dispone de soporte para InnoDB Versiones de MySQL El software MySQL tiene dos tipos de licencias: GNU General Public License, llamada GPL, que permite usar el software como un producto Open Source, y la licencia comercial estándar de MySQL AB, que permite cobrar las instalaciones MySQL e incluir la base de datos en ordenadores. 15

Todas las versiones mencionadas en la tabla anterior, salvo la Pro, están sujetas a licencia GPL, lo que nos permite distribuir copias de los archivos de MySQL, siempre y cuando el código fuente de esos archivos no haya sido modificado y no se cobren las copias a un tercer usuario. 2.2 Instalación de los ficheros del programa MySQL se puede instalar en la mayoría de los sistemas operativos, sin embargo, en este apartado nos centraremos en la explicación paso a paso de la instalación del gestor de bases de datos en Windows, ya que es una de las plataformas más comunes entre los usuarios. Para realizar la instalación según se indica en este manual, partimos de un sistema base Windows XP con soporte para protocolo TCP/IP, una herramienta capaz de leer ficheros.zip, que nos permita descomprimir el fichero de distribución, y suficiente espacio en disco para descomprimir, instalar y crear las bases de datos de acuerdo a los requisitos del usuario. El primer paso para comenzar la instalación es descargarse el paquete de instalación de MySQL Community Server desde la página oficial (http://dev.mysql.com/downloads/). Es posible elegir entre tres paquetes de instalación diferentes: -Essentials: Contiene los ficheros mínimamente necesarios para instalar MySQL en Windows, incluyendo el asistente de configuración. -Completo: Contiene todos los archivos necesarios para una instalación completa bajo Windows, incluyendo el asistente de configuración y componentes opcionales, como el servidor incrustado y el conjunto de pruebas de rendimiento. -Noinstall: Contiene todos los ficheros contenidos en el paquete completo, a excepción del asistente de configuración. Este tipo de paquete debe ser instalado y configurado manualmente. El proceso especificado en este manual se basa en la instalación del paquete completo mysql-5.1.47- win32.msi en el sistema. Supondremos que la instalación se llevará a cabo con el asistente de configuración, ya que es el método más utilizado. Una vez descargado el paquete deseado por el usuario, hay que arrancar el asistente de instalación de MySQL, para ello haremos doble click sobre el fichero.msi o.exe que hayamos bajado. En el caso de que el paquete a descargar esté contenido en un fichero ZIP, se deberá descomprimir previamente a arrancar el instalador. Es posible que al intentar arrancar el asistente, aparezca el siguiente cuadro de diálogo: 16

Si aparece la ventana anterior, pulsamos sobre el botón Ejecutar y ya se abrirá el cuadro de diálogo del asistente de instalación: Pulsamos en el botón Next. A continuación escogeremos un tipo de instalación (en este manual trabajamos con la instalación completa), y pulsaremos de nuevo sobre Next. Para seleccionar el tipo de instalación, hemos de tener en cuenta las características de cada una de las opciones: -La típica (typical) instala el cliente de línea de comandos mysql, las utilidades de línea de comandos, y algunas herramientas útiles para la administración del servidor. -La completa (complete) instala todos los componentes incluidos en el paquete. -La personalizada (custom) otorga un control completo sobre los paquetes que se desea instalar, lo cual puede provocar conflictos entre ficheros si no tenemos ciertos conocimientos sobre los componentes que queremos instalar. A continuación, aparecerá la ventana de diálogo de confirmación, donde se muestran el tipo y el directorio de instalación. Si todos los datos son correctos pulsamos sobre Install, en caso contrario podemos retroceder pulsando sobre Back: 17

Se abrirá una ventana con información sobre los productos de MySQL, en la que solo tenemos que pulsar en el botón Next hasta que desaparezca: Por último, aparecerá una pantalla indicando que la instalación de MySQL ha finalizado de forma satisfactoria. Antes de pulsar sobre el botón Finish de dicho cuadro de diálogo, marcaremos la opción Configure the MySQL Server now, para abrir el asistente de configuración (el manejo de dicho asistente se explicará en el siguiente apartado del manual). La opción de registrar MySQL puede realizarse ahora o más adelante. 18

En Windows, el directorio de datos y la tabla de permisos no necesitan ser creados, ya que MySQL incluye la tabla de permisos con un conjunto de cuentas ya inicializadas en la base de datos mysql, dentro del directorio de datos. Sin embargo, si no se instala MySQL utilizando el asistente de instalación, se deberían establecer contraseñas para proteger las cuentas. 2.3 Configuración del entorno El asistente de configuración MySQL automatiza el proceso de configurar el servidor bajo Windows. En el caso de nuestra instalación, como hemos indicado en el apartado anterior del manual, el asistente de configuración se ejecutará a continuación del asistente de instalación. Pero si no fuera así podríamos iniciarlo haciendo click en la entrada Inicio -> Programas -> MySQL -> MySQL Server 5.1 > MySQL Server Instance Config Wizard. Pulsamos en el botón Next. A continuación, escogeremos un tipo de configuración (en este manual trabajamos con la configuración detallada) y pulsaremos sobre el botón Next de nuevo. Es recomendable seleccionar siempre la configuración detallada (Detailed Configuration), ya que la configuración estándar (Standard Configuration) establece opciones que pueden ser incompatibles con sistemas donde existen instalaciones previas de MySQL. 19

Posteriormente, aparecerá la ventana de diálogo del tipo de servidor, en la que seleccionaremos la opción Developer Machine, ya que es la que utiliza menos recursos del sistema, y pulsaremos sobre Next. Antes de seleccionar el tipo de servidor es necesario conocer las características de cada una de las opciones: -Developer Machine (Ordenador de desarrollo): Esta opción se aplica a ordenadores de escritorio donde MySQL está orientado a un uso personal solamente. Configura al servidor MySQL para que consuma una cantidad mínima de recursos del sistema. -Server Machine (Servidor): Esta opción se aplica a servidores donde MySQL se ejecuta junto con otras aplicaciones de servidor como son FTP o correo electrónico. Consume una cantidad moderada de recursos del sistema. -Dedicated MySQL Server Machine (Servidor MySQL dedicado): Se aplica a ordenadores donde solamente se ejecuta el servidor MySQL. Utiliza todos los recursos disponibles en el sistema. Posteriormente se abrirá el cuadro de diálogo Base de datos. En él seleccionaremos la opción de base de datos polifuncional (Multifunctional Database) y pulsaremos Next. 20