




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Una introducción básica al modelo relacional de bases de datos en mysql. Se explica la estructura de datos, el álgebra relacional y se presentan ejemplos prácticos de creación y manipulación de tablas en mysql. Además, se incluyen consejos sobre el uso de variables locales y la creación de bases de datos.
Tipo: Apuntes
1 / 460
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































Software libre
U
Bases de datos
FUOC • 71Z799014MO 2 Bases de datos
Coordinador Coordinador Autor Ingeniero de Informática por la UAB. Magíster en Técnicas Avanzadas de Automatización de Procesos por la UAB. Doctor en Informática por la UAB. Profesor de los Estudios de Informática y Multimedia de la UOC.
Coordinador general de Softcatalà y desarrollador del procesador de textos libre Abiword. Miembro fundador de Softcatalà y de la red telemática RedBBS. En calidad de consultor, ha trabajado en empresas como Menta, Telépolis, Vodafone, Lotus, eresMas, Amena y Terra España.
Profesional informático en varias empresas. Ha sido profesor universitario en la Facultad de Informática de Barcelona de la Universidad Politécnica de Cataluña. Actualmente está adscrito a la Escuela Universitaria Politécnica de Vilanova i la Geltrú.
Autor Autora Autor Licenciado en Informática (1995), maestro en Sistemas (1998), doctorante en Ingeniería y Tecnología (2003), está estudiando el doctorado en la UOC. Profesor universitario desde marzo de
Doctora en Informática por la Universidad Politécnica de Cataluña. Profesora titular del Departamento de Lenguajes y Sistemas Informáticos de la Universidad Politécnica de Cataluña, asignada a la Facultad de Informática de Barcelona.
Ingeniero en Informática por la Universidad Ramon Llull. Socio fundador y jefe de proyectos de Cometa Technologies, empresa dedicada a dar soluciones en tecnologías de la información, basadas en el uso de estándares y herramientas de código abierto. Profesor del Máster en Seguridad en Tecnologías de la Información en Enginyeria y Arquitectura La Salle y consultor del Master Internacional en Software Libre de la UOC.
Autora Autor Licenciada en Informática por la Universidad Politécnica de Cataluña. Profesora de la asignatura Introducción a las bases de datos en la Facultad de Informática de Barcelona, y de la asignatura Sistemas orientados a bases de datos en la Facultad de Matemáticas y Estadística. También ha sido profesora de las asignaturas Diseño de sistemas y Gestión de sistemas informáticos en la Escuela Universitaria Politécnica de Vilanova i la Geltrú.
Ingeniero en Comunicaciones y Electrónica por la Universidad de Guadalajara (México) y Maestro en Sistemas de Información. Ha participado en diversas publicaciones e impartido cursos especializados. Miembro Fundador del Marichi del SUTUdeG y del Grupo Linux de Occidente A. C. (www.glo.org.mx). Organizador del Festival GNU/Linux y Software Libre (http://www.festivaldesoftwarelibre.org).
Primera edición: mayo 2005 © Fundació per a la Universitat Oberta de Catalunya Av. Tibidabo, 39-43, 08035 Barcelona Material realizado por Eureca Media, SL © Autores: Rafael Camps Paré, Luis Alberto Casillas Santillán, Dolors Costal Costa, Marc Gibert Ginestà, Carme Martín Escofet, Oscar Pérez Mora Depósito legal: B-15.562- ISBN: 84-9788-269-
Se garantiza permiso para copiar, distribuir y modificar este documento según los términos de laVersion 1.2 o cualquiera posterior publicada por la Free Software Foundation , sin secciones invariantes ni textos de cubierta delantera GNU Free Documentation License , o trasera. Se dispone de una copia de la licencia en el apartado “GNU Free Documentation License” de este documento.
FUOC • 71Z799014MO 5 Bases de datos
Las bases de datos son el método preferido para el almacenamiento estructu- rado de datos. Desde las grandes aplicaciones multiusuario, hasta los teléfonos móviles y las agendas electrónicas utilizan tecnología de bases de datos para ase- gurar la integridad de los datos y facilitar la labor tanto de usuarios como de los programadores que las desarrollaron.
Desde la realización del primer modelo de datos, pasando por la administra- ción del sistema gestor, hasta llegar al desarrollo de la aplicación, los conceptos y la tecnología asociados son muchos y muy heterogéneos. Sin embargo, es im- prescindible conocer los aspectos clave de cada uno de estos temas para tener éxito en cualquier proyecto que implique trabajar con bases de datos.
En este curso trataremos de dar una visión completa de los conceptos relacio- nados con los sistemas gestores de bases de datos. En los primeros capítulos ve- remos los aspectos involucrados en los motores de estos almacenes de datos, su evolución histórica y los distintos tipos de organización y abs-tracción que han ido surgiendo desde su conceptualización hasta nuestros días.
A continuación profundizaremos en el modelo llamado relacional (el más usa- do en nuestros días), proporcionando los métodos y herramientas que nos per- mitan representar necesidades de almacenamiento y consulta de datos en este modelo. En el siguiente capítulo estudiaremos a fondo el lenguaje de consultas estructurado SQL, imprescindible para trabajar con bases de datos relacionales, ya sea directamente o a través de cualquier lenguaje de programación.
El diseño de bases de datos tiene también un capítulo dedicado a aprender a modelar y representar gráficamente una base de datos, a detectar los posibles problemas de diseño antes de que éstos afecten a la aplicación, y a construir ba- ses de datos óptimas para los distintos casos de relaciones entre entidades que formarán nuestra base de datos.
Una vez sentadas estas bases, estaremos en disposición de examinar detenida- mente dos de los sistemas gestores de bases de datos de software libre más usa- dos y populares actualmente. Así pues, aprenderemos el uso, administración y particularidades de MySQL y PostgreSQL mediante ejemplos y casos prácticos. También veremos las herramientas de consulta y administración gráficas para estos dos sistemas gestores de bases de datos, que nos permitirán mejorar nues- tra productividad en el trabajo diario con ellos.
A continuación, veremos los métodos de acceso a estos sistemas gestores de bases de datos desde algunos lenguajes de programación. En cada caso, comentaremos
FUOC • 71Z799014MO 7 Bases de datos
Los objetivos que el estudiante deberá alcanzar al finalizar el curso Bases de datos son los siguientes:
FUOC • 71Z799014MO 8 Bases de datos
Módulo didáctico 1 Introducción a las bases de datos Rafael Camps Paré
Módulo didáctico 2 El modelo relacional y el álgebra relacional Dolors Costal Costa
Módulo didáctico 3 El lenguaje SQL Carme Martín Escofet
Módulo didáctico 4 Introducción al diseño de bases de datos Dolors Costal Costa
Módulo didáctico 5 Bases de datos en MySQL Luis Alberto Casillas Santillán; Marc Gibert Ginestà; Oscar Pérez Mora
Rafael Camps Paré
FUOC • 71Z799014MO 7 Introducción a las bases de datos
Las aplicaciones informáticas de los años sesenta acostumbraban a darse total- mente por lotes ( batch ) y estaban pensadas para una tarea muy específica rela- cionada con muy pocas entidades tipo.
Cada aplicación (una o varias cadenas de programas) utilizaba ficheros de mo- vimientos para actualizar (creando una copia nueva) y/o para consultar uno o dos ficheros maestros o, excepcionalmente, más de dos. Cada programa trata- ba como máximo un fichero maestro, que solía estar sobre cinta magnética y, en consecuencia, se trabajaba con acceso secuencial. Cada vez que se le quería añadir una aplicación que requería el uso de algunos de los datos que ya exis- tían y de otros nuevos, se diseñaba un fichero nuevo con todos los datos ne- cesarios (algo que provocaba redundancia) para evitar que los programas tuviesen que leer muchos ficheros.
A medida que se fueron introduciendo las líneas de comunicación, los termi- nales y los discos, se fueron escribiendo programas que permitían a varios usuarios consultar los mismos ficheros on-line y de forma simultánea. Más ade- lante fue surgiendo la necesidad de hacer las actualizaciones también on-line.
A medida que se integraban las aplicaciones, se tuvieron que interrelacionar sus ficheros y fue necesario eliminar la redundancia. El nuevo conjunto de fi- cheros se debía diseñar de modo que estuviesen interrelacionados; al mismo tiempo, las informaciones redundantes (como por ejemplo, el nombre y la di- rección de los clientes o el nombre y el precio de los productos), que figuraban en los ficheros de más de una de las aplicaciones, debían estar ahora en un solo lugar.
El acceso on-line y la utilización eficiente de las interrelaciones exigían estruc- turas físicas que diesen un acceso rápido, como por ejemplo los índices, las multilistas, las técnicas de hashing , etc.
Estos conjuntos de ficheros interrelacionados , con estructuras complejas y compartidos por varios procesos de forma simultánea (unos on-line y otros por lotes), recibieron al principio el nombre de Data Banks , y después, a inicios de los años setenta, el de Data Bases. Aquí los denominamos bases de datos (BD).
El software de gestión de ficheros era demasiado elemental para dar satisfac- ción a todas estas necesidades. Por ejemplo, el tratamiento de las interrelaciones no estaba previsto, no era posible que varios usuarios actualizaran datos simul- táneamente, etc. La utilización de estos conjuntos de ficheros por parte de los programas de aplicación era excesivamente compleja, de modo que, especial- mente durante la segunda mitad de los años setenta, fue saliendo al mercado
Aplicaciones informáticas de los años sesenta La emisión de facturas, el control de pedidos pendientes de servir, el mantenimiento del fichero de productos o la nómina del personal eran algunas de las aplicaciones informáticas habituales en los años sesenta.
Integración de aplicaciones Por ejemplo, se integra la aplicación de facturas, la de pedidos pendientes y la gestión del fichero de productos.
FUOC • 71Z799014MO 9 Introducción a las bases de datos
Para entender mejor qué son los SGBD, haremos un repaso de su evolución desde los años sesenta hasta nuestros días.
2.1. Los años sesenta y setenta: sistemas centralizados
Los primeros SGBD –en los años sesenta todavía no se les denominaba así– estaban orientados a facilitar la utilización de grandes conjuntos de datos en los que las interrelaciones eran complejas. El arquetipo de aplicación era el Bill of materials o Parts explosion , típica en las industrias del automóvil, en la cons- trucción de naves espaciales y en campos similares. Estos sistemas trabajaban exclusivamente por lotes ( batch ).
Al aparecer los terminales de teclado, conectados al ordenador central mediante una línea telefónica, se empiezan a construir grandes aplicaciones on-line tran- saccionales (OLTP). Los SGBD estaban íntimamente ligados al software de co- municaciones y de gestión de transacciones.
Aunque para escribir los programas de aplicación se utilizaban lenguajes de alto nivel como Cobol o PL/I, se disponía también de instrucciones y de subru- tinas especializadas para tratar las BD que requerían que el programador cono- ciese muchos detalles del diseño físico, y que hacían que la programación fuese muy compleja.
Puesto que los programas estaban relacionados con el nivel físico, se debían modificar continuamente cuando se hacían cambios en el diseño y la organi- zación de la BD. La preocupación básica era maximizar el rendimiento: el tiempo de respuesta y las transacciones por segundo.
2.2. Los años ochenta: SGBD relacionales
Los ordenadores minis , en primer lugar, y después los ordenadores micros , extendieron la informática a prácticamente todas las empresas e instituciones.
Los SGBD de los años sesenta y setenta (IMS de IBM, IDS de Bull, DMS de Univac, etc.) eran sistemas totalmente centralizados , como corres- ponde a los sistemas operativos de aquellos años, y al hardware para el que estaban hechos: un gran ordenador para toda la empresa y una red de terminales sin inteligencia ni memoria.
El Data Base / Data Comunications IBM denominaba Data Base/ Data Comunications (DB/DC) el software de comunicaciones y de gestión de transacciones y de datos. Las aplicaciones típicas eran la reserva/compra de billetes a las compañías aéreas y de ferrocarriles y, un poco más tarde, las cuentas de clientes en el mundo bancario.
FUOC • 71Z799014MO 10 Introducción a las bases de datos
Esto exigía que el desarrollo de aplicaciones fuese más sencillo. Los SGBD de los años setenta eran demasiado complejos e inflexibles, y sólo los podía uti- lizar un personal muy cualificado.
Todos estos factores hacen que se extienda el uso de los SGBD. La estandariza- ción, en el año 1986, del lenguaje SQL produjo una auténtica explosión de los SGBD relacionales.
Los ordenadores personales Durante los años ochenta aparecen y se extienden muy rápidamente los ordenadores perso- nales. También surge software para estos equipos monousuario (por ejemplo, dBase y sus de- rivados, Access), con los cuales es muy fácil crear y utilizar conjuntos de datos, y que se denominan personal data bases. Notad que el hecho de denominar SGBD estos primeros sis- temas para PC es un poco forzado, ya que no aceptaban estructuras complejas ni interrela- ciones, ni podían ser utilizados en una red que sirviese simultáneamente a muchos usuarios de diferentes tipos. Sin embargo, algunos, con el tiempo, se han ido convirtiendo en autén- ticos SGBD.
2.3. Los años noventa: distribución, C/S y 4GL
Al acabar la década de los ochenta, los SGBD relacionales ya se utilizaban prác- ticamente en todas las empresas. A pesar de todo, hasta la mitad de los noven- ta, cuando se ha necesitado un rendimiento elevado se han seguido utilizando los SGBD prerrelacionales.
A finales de los ochenta y principios de los noventa, las empresas se han en- contrado con el hecho de que sus departamentos han ido comprando orde- nadores departamentales y personales, y han ido haciendo aplicaciones con BD. El resultado ha sido que en el seno de la empresa hay numerosas BD y varios SGBD de diferentes tipos o proveedores. Este fenómeno de multiplica- ción de las BD y de los SGBD se ha visto incrementado por la fiebre de las fusiones de empresas.
Esta distribución ideal se consigue cuando las diferentes BD son soportadas por una misma marca de SGBD, es decir, cuando hay homogeneidad. Sin em-
La aparición de los SGBD relacionales* supone un avance importante para facilitar la programación de aplicaciones con BD y para conseguir que los programas sean independientes de los aspectos físicos de la BD.
La necesidad de tener una visión global de la empresa y de interrelacio- nar diferentes aplicaciones que utilizan BD diferentes, junto con la fa- cilidad que dan las redes para la intercomunicación entre ordenadores, ha conducido a los SGBD actuales, que permiten que un programa pue- da trabajar con diferentes BD como si se tratase de una sola. Es lo que se conoce como base de datos distribuida.
*** Oracle aparece en el año 1980.**