Está en la página 1de 123

Sistemas Gestores de Base de Datos

Colegio Tcnico Salesiano


APLICACIONES INFORMTICAS
Sistemas Gestores de Bases de Datos

Ing. Wilson Cedillo P. MSc. Terceros de Bachillerato 2010-2011

I IN ND DI IC CE EG GE EN NE ER RA AL L
INDICE GENERAL .................................................................................................................................... 2 INDICE DE GRFICOS .............................................................................................................................. 5 UNIDAD 1 .............................................................................................................................................. 8 TEMA: SISTEMAS DE BASES DE DATOS ................................................................................................... 8 1. INTRODUCCIN TERICA........................................................................................................................ 8 1.1 Dato e Informacin ................................................................................................................. 8 1.2 Qu es una base de datos? ................................................................................................... 8 1.3 El sistema de gestin de la base de datos .............................................................................. 9 1.4 Objetivos de los sistemas de bases de datos .......................................................................... 9 PLANIFICACIN Y DISEO DE BASES DE DATOS .......................................................................................... 11 2.1 Introduccin Terica ............................................................................................................. 11 2.2 Ciclo de vida de las Aplicaciones de bases de datos ............................................................. 12 2.3 Diseo de bases de datos...................................................................................................... 13 DISEO CONCEPTUAL DE BASES DE DATOS UTILIZANDO EL MODELO E-R ........................................................ 15 3.1 Modelos de datos ................................................................................................................. 15 3.2 El modelo E-R ........................................................................................................................ 15 3.3 Generalizacin, especializacin y Agregacin ...................................................................... 19 3.4 Tcnica para el modelado entidad relacin .......................................................................... 21 3.5 Ejercicios Resueltos ............................................................................................................... 21 DISEO LGICO DE BASES DE DATOS UTILIZANDO EL MODELO RELACIONAL .................................................... 23 4.1 Introduccin Terica ............................................................................................................. 23 4.2 El Modelo Relacional ............................................................................................................ 23 4.3 Conversin del diagrama E-R a tablas .................................................................................. 26 NORMALIZACIN DESDE EL PUNTO DE VISTA DEL DISEO LGICO DE UNA BASE DE DATOS ................................. 36 5.1 Introduccin Terica ............................................................................................................. 36 5.2 Dependencia Funcional ......................................................................................................... 36 5.3 Qu es la Normalizacin? ................................................................................................... 38 5.4 Primera Forma Normal (1FN) ............................................................................................... 39 5.5 Segunda Forma Normal (2NF) .............................................................................................. 45 5.6 Tercera Forma Normal (3FN) ................................................................................................ 47

2.

3.

4.

5.

UNIDAD 2 ............................................................................................................................................ 51 TEMA: LENGUAJE DE CONSULTAS SQL ................................................................................................. 51 1. INTRODUCCIN TERICA...................................................................................................................... 51 1.1 Qu es el lenguaje de consultas SQL? ................................................................................. 51 1.2 Breve Historia ....................................................................................................................... 51 1.3 Componentes del SQL ........................................................................................................... 53 ESTRUCTURA BSICA ........................................................................................................................... 54 ALIAS ............................................................................................................................................... 55 TIPOS DE DATOS ................................................................................................................................. 56 PREDICADOS Y CONECTORES ................................................................................................................. 56 TUPLAS DUPLICADAS ........................................................................................................................... 58 OPERACIONES DE CONJUNTO. ............................................................................................................... 59

2. 3. 4. 5. 6. 7.

INDICES
7.1 Pertenencia a un conjunto .................................................................................................... 60 7.2 Comparacin de conjuntos ................................................................................................... 61 8. PRUEBAS PARA RELACIONES VACAS........................................................................................................ 61 9. ORDENACIN DE LA PRESENTACIN DE TUPLAS......................................................................................... 62 10. FUNCIONES DE AGREGACIN ............................................................................................................ 62 11. MODIFICACIN DE LA BASE DE DATOS ................................................................................................ 64 11.1 Eliminacin ........................................................................................................................... 64 11.2 Insercin ............................................................................................................................... 65 11.3 Actualizaciones ..................................................................................................................... 65 11.4 Valores nulos ........................................................................................................................ 66 12. DEFINICIN DE DATOS ..................................................................................................................... 66 12.1 Creacin ................................................................................................................................ 66 12.2 Eliminacin ........................................................................................................................... 66 12.3 Actualizacin......................................................................................................................... 67 13. EJERCICIOS PROPUESTOS ................................................................................................................. 67 UNIDAD 3 ............................................................................................................................................ 72 TEMA: ACCESS 2007 ............................................................................................................................. 72 1. 2. INTRODUCCIN .................................................................................................................................. 72 1.1 Estructura de ficheros de Access ........................................................................................... 72 ELEMENTOS BSICOS DE ACCESS 2007 ................................................................................................... 73 2.1 La pantalla inicial .................................................................................................................. 73 2.2 La interfaz ............................................................................................................................. 73 CREAR, CERRAR Y ABRIR UNA BASE DE DATOS ........................................................................................... 75 3.1 Crear una base de datos mediante una plantilla .................................................................. 75 3.2 Crear una base de datos en blanco ....................................................................................... 76 CREAR TABLAS ................................................................................................................................... 77 4.1 Agregar una tabla ................................................................................................................. 77 4.2 Insertar una tabla, empezando en la vista Hoja de datos .................................................... 77 4.3 Insertar una tabla, empezando en la vista Diseo ................................................................ 78 4.4 La clave principal o clave primaria ....................................................................................... 81 4.5 Importar datos de otro origen .............................................................................................. 82 PROPIEDADES DE LOS CAMPOS .............................................................................................................. 83 5.1 Introduccin .......................................................................................................................... 83 5.2 Tamao del campo ............................................................................................................... 84 5.3 Formato del campo ............................................................................................................... 85 5.4 Lugares decimales ................................................................................................................ 86 5.5 Mscara de entrada ............................................................................................................. 86 5.6 Ttulo ..................................................................................................................................... 87 5.7 Valor predeterminado .......................................................................................................... 87 5.8 Regla de validacin ............................................................................................................... 87 5.9 Texto de validacin ............................................................................................................... 88 5.10 Requerido.............................................................................................................................. 88 5.11 Permitir longitud cero ........................................................................................................... 88 5.12 Indexado ............................................................................................................................... 88 LAS RELACIONES ................................................................................................................................. 89 6.1 Tipos de relaciones de tabla ................................................................................................. 90 6.2 Descripcin de la integridad referencial ............................................................................... 92
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

3.

4.

5.

6.

INDICES
6.3 Crear una relacin. ............................................................................................................... 93 6.4 Aadir tablas a la ventana Relaciones. ................................................................................. 95 6.5 Quitar tablas de la ventana Relaciones. ............................................................................... 95 6.6 Modificar relaciones. ............................................................................................................ 96 6.7 Eliminar relaciones................................................................................................................ 96 6.8 Mostrar relaciones directas .................................................................................................. 97 7. LAS CONSULTAS ................................................................................................................................. 97 7.1 Tipos de consultas ................................................................................................................. 97 7.2 Crear una consulta ................................................................................................................ 99 7.3 Aadir campos .................................................................................................................... 101 7.4 Encabezados de columna.................................................................................................... 101 7.5 Ejecutar la consulta ............................................................................................................ 102 7.6 Modificar el diseo de una consulta ................................................................................... 102 7.7 Ordenar las filas .................................................................................................................. 102 7.8 Seleccionar filas .................................................................................................................. 103 7.9 Consultas con parmetros .................................................................................................. 105 7.10 Las consultas multitabla ..................................................................................................... 105 UNIDAD 4 .......................................................................................................................................... 109 TEMA: MYSQL .................................................................................................................................... 109 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. INTRODUCCIN ................................................................................................................................ 109 CARACTERSTICAS ............................................................................................................................. 109 HISTORIA ........................................................................................................................................ 109 ESQUEMA DE DENOMINACIONES ......................................................................................................... 110 CONFORMACIN DE LA INSTALACIN.................................................................................................... 111 COMANDOS BSICOS......................................................................................................................... 112 CREAR Y UTILIZAR UNA BASE DE DATOS ................................................................................................. 114 CREAR Y SELECCIONAR UNA BASE DE DATOS ........................................................................................... 115 CREACIN DE TABLAS ........................................................................................................................ 115 CARGANDO DATOS EN UNA TABLA ................................................................................................... 119

BIBLIOGRAFA .................................................................................................................................... 122

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

INDICES

I IN ND DI IC CE ED DE EG GR R F FI IC CO OS S
GRFICO 1 SISTEMA GESTOR DE BASES DE DATOS..................................................................................................... 9 GRFICO 2 REPRESENTACIN GRFICA DE UNA ENTIDAD.......................................................................................... 16 GRFICO 3 REPRESENTACIN GRFICA DE LOS ATRIBUTOS EN UNA ENTIDAD ............................................................... 16 GRFICO 4 RELACIN ENTRE DOS ENTIDADES ........................................................................................................ 17 GRFICO 5 RELACIN DE GRADO 3 O TERNARIA ..................................................................................................... 17 GRFICO 6 RELACIN 1 A 1............................................................................................................................... 18 GRFICO 7 RELACIN 1 A N .............................................................................................................................. 18 GRFICO 8 RELACIN N A N.............................................................................................................................. 18 GRFICO 9 EJEMPLOS DE GENERALIZACIN .......................................................................................................... 19 GRFICO 10 EJEMPLO DE AGREGACIN ............................................................................................................... 20 GRFICO 11 DIAGRAMA E-R DEL EJERCICIO 1 ....................................................................................................... 21 GRFICO 12 DIAGRAMA E-R DEL EJERCICIO 2 ....................................................................................................... 22 GRFICO 13 DIAGRAMA E-R DEL EJERCICIO 3 ....................................................................................................... 22 GRFICO 14 ENTIDAD ALUMNO ......................................................................................................................... 28 GRFICO 15 ESQUEMA E-R DE UNA FACTURA ....................................................................................................... 28 GRFICO 16 ESQUEMA E-R CON RELACIN UNO A UNO .......................................................................................... 30 GRFICO 17 ESQUEMA E-R CON RELACIN UNO A MUCHOS .................................................................................... 32 GRFICO 18 ESQUEMA E-R CON RELACIN MUCHOS A MUCHOS .............................................................................. 34 GRFICO 19 PANTALLA INICIAL DE ACCESS 2007 .................................................................................................. 73 GRFICO 20 CINTA DE OPCIONES ....................................................................................................................... 73 GRFICO 21 ENTORNO DE ACCESS 2007 ............................................................................................................. 75 GRFICO 22 OPCIN NUEVA BASE DE DATOS EN BLANCO ........................................................................................ 76 GRFICO 23 TABLA INICIAL DE LA BASE DE DATOS .................................................................................................. 76 GRFICO 24 GRUPO TABLAS DE LA FICHA CREAR ................................................................................................... 77 GRFICO 25 COMO CAMBIAR A LA VISTA DISEO .................................................................................................. 79 GRFICO 26 VISTA DISEO ............................................................................................................................... 79 GRFICO 27 CAMPOS DE LA TABLA PROFESORES ................................................................................................... 80 GRFICO 28 TIPOS DE DATOS DE LOS CAMPOS ...................................................................................................... 80 GRFICO 29 BOTN PARA AGREGAR LA CLAVE PRINCIPAL ........................................................................................ 81 GRFICO 30 ERROR DE CLAVE ............................................................................................................................ 82 GRFICO 31 GRUPO IMPORTAR DE LA FICHA DATOS EXTERNOS ............................................................................... 83 GRFICO 32 PROPIEDADES DE LOS CAMPOS.......................................................................................................... 84 GRFICO 33 FORMULARIO NOTAS ...................................................................................................................... 89 GRFICO 34 CAMPOS EN COMN ENTRE LAS TABLAS PROFESORES Y MATERIAS ........................................................... 90 GRFICO 35 BOTN RELACIONES DE LA PESTAA HERRAMIENTAS DE BASE DE DATOS. .................................................. 93 GRFICO 36 CUADRO DE DILOGO MOSTRAR TABLAS ............................................................................................ 93 GRFICO 37 TABLAS AGREGADAS A LA VENTANA RELACIONES .................................................................................. 94 GRFICO 38 CUADRO DE DILOGO MOSTRAR RELACIONES...................................................................................... 94 GRFICO 39 RELACIN UNA A VARIOS DE LA TABLA PROFESORES CON LA TABLA ALUMNOS ............................................ 95 GRFICO 40 BOTN MOSTRAR TABLA DE LA PESTAA DISEO ................................................................................. 95 GRFICO 41 MEN CONTEXTUAL DE UNA TABLA EN LA VENTANA RELACIONES ............................................................ 96 GRFICO 42 MEN CONTEXTUAL DE UNA RELACIN .............................................................................................. 96 GRFICO 43 CONSULTA SQL EN ACCESS.............................................................................................................. 99 GRFICO 44 BOTN DISEO DE CONSULTA DE LA PESTAA CREAR ............................................................................ 99 GRFICO 45 CUADRO DE DILOGO MOSTRAR TABLA PARA CONSULTAS ...................................................................... 99 GRFICO 46 VENTANA VISTA DISEO DE CONSULTAS .......................................................................................... 100 GRFICO 47 BOTN EJECUTAR CONSULTAS........................................................................................................ 102

INDICES
GRFICO 48 VARIAS CONDICIONES EN UNA CONSULTA.......................................................................................... 104 GRFICO 49 CONDICIONES EN DIFERENTES FILAS ................................................................................................. 104 GRFICO 50 CUADRO DE DILOGO PARA INTRODUCIR VALORES .............................................................................. 105 GRFICO 51 BOTN MOSTRAR TABLA .............................................................................................................. 105 GRFICO 52 COMBINAR TABLAS ....................................................................................................................... 106 GRFICO 53 PROMPT DE MYSQL .................................................................................................................... 112 GRFICO 54 INSTRUCCIN SELECT CON OPERACIONES MATEMTICAS BSICAS EN MYSQL ........................................ 113 GRFICO 55 SENTENCIAS CON MLTIPLES LNEAS ................................................................................................ 113 GRFICO 56 PARA CANCELAR UN COMANDO UTILICE /C ........................................................................................ 113 GRFICO 57 SENTENCIA SHOW DATABASES .................................................................................................. 114 GRFICO 58 SENTENCIA USE .......................................................................................................................... 115 GRFICO 59 SENTENCIA CREATE DATABASE ................................................................................................... 115 GRFICO 60 CAMBIO DE UNA BASE DE DATOS ..................................................................................................... 115 GRFICO 61 SENTENCIA SHOW TABLES.......................................................................................................... 116 GRFICO 62 SENTENCIA CREATE TABLE ......................................................................................................... 116 GRFICO 63 SENTENCIA DESCRIBE ................................................................................................................. 116 GRFICO 64 CREAR UNA TABLA CON UNA CLAVE PRIMARIA.................................................................................... 119 GRFICO 65 CREAR UNA TABLA CON UNA CLAVE PRIMARIA Y UNA CLAVE FORNEA..................................................... 119 GRFICO 66 USO DE CLAVES COMBINADAS EN LLAVES FORNEAS ........................................................................... 119 GRFICO 67 INGRESO DE DATOS UTILIZANDO EL BLOC DE NOTAS ............................................................................. 120 GRFICO 68 SENTENCIA LOAD DATA .............................................................................................................. 120 GRFICO 69 SENTENCIA INSERT INTO............................................................................................................ 121 GRFICO 70 SENTENCIA SELECT ..................................................................................................................... 121

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

UNIDAD 1
Sistemas de bases de datos

SGBD

UNIDAD 1 Sistemas de Bases de Datos

U UN NI ID DA AD D1 1
Tema: Sistemas de Bases de Datos 1. Introduccin Terica 1.1 Dato e Informacin
En esencia, un sistema de bases de datos no es ms que un sistema para archivar en computador; o sea, es un sistema computarizado cuyo propsito general es mantener informacin y hacer que est disponible cuando se solicite. Para tener claro sta definicin es necesario hacer la distincin entre dos trminos que parecieran ser sinnimos: dato e informacin: Dato: El dato es conjunto de caracteres con algn significado, pueden ser numricos, alfabticos, o alfanumricos. Informacin: Es un conjunto ordenado de datos los cuales son manejados segn la necesidad del usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a informacin, primero se debe guardar lgicamente en archivos.

1.2 Qu es una base de datos?


Una base de datos es un conjunto de datos almacenados entre los que existen relaciones lgicas y ha sido diseada para satisfacer los requerimientos de informacin de una empresa u organizacin. La base de datos es un gran almacn de datos que se define una sola vez y que se utiliza al mismo tiempo por muchos departamentos y usuarios. La base de datos no pertenece a un departamento, se comparte por toda la organizacin. Adems, la base de datos no slo contiene los datos de la organizacin, tambin almacena una descripcin de dichos datos. Esta descripcin es lo que se denomina metadatos, se almacena en el diccionario de datos o catlogo y es lo que permite que exista independencia de datos.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

UNIDAD 2 Lenguaje de Consultas SQL

1.3 El sistema de gestin de la base de datos


El sistema de gestin de la base de datos (DBMS1) es una aplicacin que permite a los usuarios (clientes) definir, crear y mantener la base de datos, y proporciona acceso controlado a la misma.

Grfico 1 Sistema gestor de bases de datos

En general, un DBMS proporciona los siguientes servicios:

Permite la definicin de la base de datos mediante el lenguaje de definicin de datos (DDL2). Este lenguaje permite especificar la estructura y el tipo de los datos, as como las restricciones sobre los datos. Todo esto se almacenar en la base de datos.

Permite la insercin, actualizacin, eliminacin y consulta de datos mediante el lenguaje de manejo de datos (DML3). Proporciona un acceso controlado a la base de datos.

1.4 Objetivos de los sistemas de bases de datos


Los objetivos principales de un sistema de base de datos es disminuir los siguientes aspectos: Redundancia e inconsistencia de datos: Si los archivos que mantienen almacenada la informacin son creados por diferentes tipos de programas

DBMS: De las siglas en ingls Data Bases Management System cuya traduccin al espaol es Sistemas manejadores de bases de datos. 2 DDL: De las siglas en ingls Data Definition Language cuya traduccin al espaol es Lenguaje de definicin de datos. 3 DML: De las siglas en ingls Data Manipulation Language cuya traduccin al espaol es Lenguaje de manipulacin de datos
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

UNIDAD 2 Lenguaje de Consultas SQL de aplicacin existe la posibilidad de que si no se controla detalladamente el almacenamiento, se pueda originar un duplicado de informacin, esto se conoce como redundancia de datos. Esto aumenta los costos de almacenamiento y acceso a los datos, adems de que puede originar la inconsistencia de los datos4, por ejemplo: que se actualiza la direccin de un alumno en un archivo y que en otros archivos permanezca la anterior. Dificultad para tener acceso a los datos: Un sistema de base de datos debe contemplar un entorno de datos que le facilite al usuario el manejo de los mismos. Por ejemplo supngase la siguiente situacin: en el colegio uno de los departamentos necesita averiguar los nombres de todos los alumnos que viven en la parroquia Totoracocha de la ciudad de Cuenca. El departamento pide al centro de cmputo que genere la lista correspondiente. Puesto que esta situacin no fue prevista en el diseo del sistema, no existe ninguna aplicacin de consulta que permita este tipo de solicitud, esto ocasiona una deficiencia del sistema. Aislamiento de los datos: Cuando los datos estn repartidos en varios archivos, y estos no pueden tener diferentes formatos, es difcil escribir nuevos programas de aplicacin para obtener los datos apropiados. Anomalas del acceso concurrente: Para mejorar el funcionamiento global del sistema y obtener un tiempo de respuesta ms rpido, muchos sistemas permiten que mltiples usuarios actualicen los datos simultneamente. En un entorno as la interaccin de actualizaciones concurrentes puede dar por resultado datos inconsistentes. Problemas de seguridad: La informacin de toda organizacin es importante, aunque unos datos lo son ms que otros, por tal motivo se debe considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna informacin, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autentificacin y proteccin de los datos. En un colegio por ejemplo, el personal de contabilidad slo necesita tener acceso a la parte de la base de datos que tiene informacin acerca de la parte econmica de la
4

Inconsistencia de datos: Es cuando diversas copias de un mismo dato no concuerdan entre s


Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

10

UNIDAD 2 Lenguaje de Consultas SQL institucin y no a otro tipo de informacin como por ejemplo a las notas de los estudiantes. Problemas de integridad: Los valores de datos almacenados en la base de datos deben satisfacer cierto tipo de restricciones de consistencia. Estas restricciones se hacen cumplir en el sistema aadiendo cdigos apropiados en los diversos programas de aplicacin. ACTIVIDAD GRUPAL Con un grupo de tres compaeros realice un foro para debatir la importancia de los sistemas de bases de datos. Entregue un documento con las conclusiones y opiniones que se han llegado al final de la actividad.

2. Planificacin y diseo de bases de datos 2.1 Introduccin Terica


Todo sistema de informacin debe ser previamente planificado para evitar futuros inconvenientes y dicha planificacin debe realizarse por fases, stas fases de la planificacin del sistema se conoce como el ciclo de vida de un sistema de informacin que se relaciona directamente con el desarrollo de aplicaciones de bases de datos. La razn para preocuparse por el diseo de las bases de datos es que es crucial para la consistencia, integridad y precisin de los datos. Si una base de datos est mal diseada, los usuarios tendrn dificultades a la hora de acceder a ciertos tipos de informacin y existe el riesgo aadido de que ciertas bsquedas puedan producir informacin errnea. Vindolo desde una perspectiva diferente, la base de datos es como una casa que queremos que nos construyan. Qu es lo primero que hay que hacer? Desde luego, lo que no vamos a hacer es buscar a un constructor que haga la casa sobre la marcha y lo haga como l quiera. Seguramente, buscaremos primero a un arquitecto que disee nuestra nueva casa y despus haremos que el constructor la edifique. El arquitecto expresar nuestras necesidades en una serie de planos, anotando todos los requisitos de los diversos sistemas (estructural, mecnico y elctrico). Despus, el

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

11

UNIDAD 2 Lenguaje de Consultas SQL constructor pondr los materiales necesarios, tal y como se indica en los planos y en las especificaciones. Volviendo a la perspectiva de las bases de datos, el diseo lgico corresponde con la fase de elaboracin de los planos arquitectnicos, y la implementacin fsica de la base de datos es la casa ya construida. El diseo lgico describe el tamao, la forma y los sistemas necesarios para la base de datos. Despus, se construye la implementacin fsica del diseo lgico de la base de datos mediante el DBMS. Se pueden hacer malos diseos, pero una base de datos bien diseada contendr informacin correcta, almacenar los datos ms eficientemente y ser ms fcil de gestionar y de mantener.

2.2 Ciclo de vida de las Aplicaciones de bases de datos


Una aplicacin de base de datos es un sistema de informacin, es decir, un conjunto de recursos que permiten recoger, gestionar, controlar y difundir la informacin de toda una empresa u organizacin. Un sistema de informacin est formado por los siguientes componentes:

La base de datos. El DBMS. Los programas de aplicacin. Los dispositivos fsicos (ordenadores, medios de almacenamiento, etc.). El personal que utiliza y que desarrolla el sistema.

La base de datos es un componente fundamental de un sistema de informacin, razn por la cual en este documento se van a estudiar cada una de las etapas del ciclo de vida de desarrollo del software desde la perspectiva del desarrollo de una aplicacin de bases de datos, siguiendo un enfoque orientado a datos. Bajo esa perspectiva las etapas del ciclo de vida de una aplicacin de bases de datos son las siguientes:

Planificacin del proyecto.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

12

UNIDAD 2 Lenguaje de Consultas SQL

Definicin del sistema. Recoleccin y anlisis de los requisitos. Diseo de la base de datos. Seleccin del DBMS. Diseo de la aplicacin. Prototipado. Implementacin. Conversin y carga de datos. Prueba. Mantenimiento.

Estas etapas no son estrictamente secuenciales. De hecho hay que repetir algunas de las etapas varias veces, haciendo lo que se conocen como ciclos de realimentacin. Por ejemplo, los problemas que se encuentran en la etapa del diseo de la base de datos pueden requerir una recoleccin de requisitos adicional y su posterior anlisis. Debido a la naturaleza de la materia nuestro estudio se centrar solamente en una de las fases del ciclo de vida: el diseo de base de datos. ACTIVIDAD Investigue cada una de las etapas del ciclo de vida del desarrollo del software. Se evaluar: Portada, ndice de contenidos, ndice de grficos (si es que los hay), calidad de la teora investigada, ejemplos, conclusiones, recomendaciones y bibliografa. Recuerde que una buena investigacin implica una buena sustentacin de la misma.

2.3 Diseo de bases de datos


Como se pudo ver en la Planificacin y diseo de la bases de datos, el diseo de una base de datos se descompone en: diseo conceptual, diseo lgico y diseo fsico.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

13

UNIDAD 2 Lenguaje de Consultas SQL Diseo conceptual: En esta etapa se debe construir un esquema de la informacin que se usa en la empresa, independientemente de cualquier consideracin fsica. A este esquema se le denomina esquema conceptual. Al construir el esquema, los diseadores5 descubren la semntica (significado) de los datos de la empresa. El objetivo es comprender:

La perspectiva que cada usuario tiene de los datos. La naturaleza de los datos, independientemente de su representacin fsica. El uso de los datos a travs de las reas de aplicacin.

El esquema ms popular para el diseo conceptual es el modelo E-R6. Diseo lgico: El diseo lgico es el proceso de construir un esquema de la informacin que utiliza la empresa, basndose en un modelo de base de datos especfico, independiente del DBMS concreto que se vaya a utilizar y de cualquier otra consideracin fsica. En esta etapa, se transforma el esquema conceptual en un esquema lgico que utilizar las estructuras de datos del modelo de base de datos en el que se basa el DBMS que se vaya a utilizar, como puede ser el modelo relacional, el modelo de red, el modelo jerrquico o el modelo orientado a objetos. La normalizacin es una tcnica que se utiliza para comprobar la validez de los esquemas lgicos basados en el modelo relacional, ya que asegura que las relaciones (tablas) obtenidas no tienen datos redundantes. Diseo fsico: El diseo fsico es el proceso de producir la descripcin de la implementacin de la base de datos en memoria secundaria: estructuras de almacenamiento y mtodos de acceso que garanticen un acceso eficiente a los datos.

Los diseadores de la base de datos realizan el diseo lgico de la base de datos, debiendo identificar los datos, las relaciones entre datos y las restricciones sobre los datos y sus relaciones. El diseador de la base de datos debe tener un profundo conocimiento de los datos de la empresa y tambin debe conocer sus reglas de negocio. Las reglas de negocio describen las caractersticas principales de los datos tal y como las ve la empresa. 6 Un diagrama o modelo entidad-relacin (a veces denominado por su siglas en ingls E-R "Entity relationship"). Se ver ms adelante en detalle.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

14

UNIDAD 2 Lenguaje de Consultas SQL Para llevar a cabo esta etapa, se debe haber decidido cul es el DBMS que se va a utilizar, ya que el esquema fsico se adapta a l. Entre el diseo fsico y el diseo lgico hay una realimentacin, ya que algunas de las decisiones que se tomen durante el diseo fsico para mejorar las prestaciones, pueden afectar a la estructura del esquema lgico. fsicamente el esquema lgico obtenido en la fase anterior. En general, el propsito del diseo fsico es describir cmo se va a implementar

3. Diseo conceptual de bases de datos utilizando el Modelo E-R


Como ya se dijo anteriormente el diseo de bases de datos es el proceso por el que se determina la organizacin de una base de datos, incluidos su estructura, contenido y las aplicaciones que se han de desarrollar.

3.1 Modelos de datos


Un modelo de datos es una serie de conceptos que puede utilizarse para describir un conjunto de datos y las operaciones para manipularlos. Hay dos tipos de modelos de datos: los modelos conceptuales y los modelos lgicos. En el diseo de bases de datos se usan primero los modelos conceptuales para lograr una descripcin de alto nivel de la realidad, y luego se transforma el esquema conceptual en un esquema lgico.

3.2 El modelo E-R


El modelo E-R est formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones grficas y lingsticas. Originalmente, el modelo E-R slo inclua los conceptos de entidad, relacin y atributo. Ms tarde, se aadieron otros conceptos, como los atributos compuestos y las jerarquas de generalizacin, en lo que se ha denominado modelo entidad-relacin extendido. Entidad y atributos Entidades: Es todo lo que existe y es capaz de ser descrito (sustantivo), se distingue de otros objetos de acuerdo a sus caractersticas llamadas

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

15

UNIDAD 2 Lenguaje de Consultas SQL atributos. Por ejemplo puede ser una entidad el sustantivo persona pues el mismo se diferencia de cualquier otra persona, incluso siendo gemelos. O puede ser una entidad el sustantivo casa pues aunque sea exactamente igual a otra, an se diferenciar en su direccin. ALUMNO Grfico 2 representacin grfica de una entidad Las entidades se representan grficamente mediante rectngulos y su nombre aparece en la parte interna. Un nombre de entidad slo puede aparecer una vez en el esquema conceptual. Una entidad puede ser un objeto con existencia fsica como: una persona, un animal, una casa, etc. (entidad concreta), o un objeto con existencia conceptual como: un puesto de trabajo, una asignatura de clases, un nombre, etc. (entidad abstracta). Hay dos tipos de entidades: fuertes y dbiles. Una entidad dbil es una entidad cuya existencia depende de la existencia de otra entidad. Una entidad fuerte es una entidad que existe pos s sola y no depende de la existencia de otras. Atributos: es una caracterstica (adjetivo) de una entidad o relacin. Una entidad est descrita y se representa por sus caractersticas o atributos. Por ejemplo, la entidad Alumno puede llevar consigo las caractersticas: Cdigo, Nombres, Direccin, Telfono, etc. Telfono Cdigo ALUMNO
Grfico 3 Representacin grfica de los atributos en una Entidad

Direccin Nombres

De entre los atributos habr uno o un conjunto de ellos que no se repite; a este atributo o conjunto de atributos se le llama clave de la entidad, (para la entidad alumno una clave seria CDIGO). En el esquema se los distingue por que el atributo clave se encuentra subrayado.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

16

UNIDAD 2 Lenguaje de Consultas SQL Relacin (Interrelacin) Es una correspondencia o asociacin entre dos o ms entidades (verbo). Cada relacin tiene dos extremos y se representas grficamente con rombos, dentro de ellas se coloca el nombre de la relacin. Telfono Cdigo Direccin Nombres Nivel Paralelo

ALUMNO

PERTENECE

CURSO

Grfico 4 Relacin entre dos entidades

La cantidad de entidades en una relacin determina el grado de la relacin, por ejemplo la relacin ALUMNO-CURSO es de grado 2 (binarias), ya que intervienen la entidad ALUMNO y la entidad CURSO, la relacin PADRES, puede ser de grado 3, ya que involucra las entidades PADRE, MADRE e HIJO. MADRE

PADRES

HIJO

PADRE
Grfico 5 Relacin de grado 3 o ternaria

Cardinalidad La cardinalidad nos especifica los tipos de relaciones que existen entre las entidades en el modelo E-R para establecer con esto las validaciones necesarias para conseguir que los datos de la instancia7 correspondan con la realidad. a) Relacin uno a uno (1:1): A cada ocurrencia de una entidad le corresponde como mximo una ocurrencia de la otra entidad relacionada.

Instancia: Valor nico en un momento dado de una base de datos


Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

17

UNIDAD 2 Lenguaje de Consultas SQL Una entidad del tipo A solo se puede relacionar con una entidad del tipo B, y viceversa. Por ejemplo: La entidad HOMBRE con la entidad MUJER y entre ellos la relacin MATRIMONIO, es una relacin 1 a 1, ya que asocia a un HOMBRE con una nica MUJER por lo tanto ningn HOMBRE tiene ms de una MUJER en MATRIMONIO, y ninguna MUJER tiene ms de una HOMBRE en MATRIMONIO. El extremo de la flecha indica el uno de la relacin.
MATRIMONIO

HOMBRE

MUJER

Grfico 6 Relacin 1 a 1

b) Relacin uno a muchos (1:N): Significa que una entidad del tipo A puede relacionarse con cualquier cantidad de entidades del tipo B, y una entidad del tipo B solo puede estar relacionada con una entidad del tipo A. Por ejemplo: La entidad CURSO y la entidad ALUMNO y entre ellos la relacin ESTUDIAR EN. En un CURSO pueden ESTUDIAR muchos ALUMNOS, pero un ALUMNO puede ESTUDIAR EN un solo CURSO. ALUMNO
ESTUDIAR EN

CURSO

Grfico 7 Relacin 1 a N

c) Relacin muchos a muchos (N:N): Establece que cualquier cantidad de entidades del tipo A pueden estar relacionados con cualquier cantidad de entidades del tipo B. Por ejemplo: La entidad ALUMNO y la entidad ASIGNATURA y entre ellos la relacin APRENDER. Un ALUMNO puede APRENDER varias asignaturas y una ASIGNATURA puede ser APRENDIDA por varios ALUMNOS. ALUMNO
ESTUDIAR EN

ASIGNATURA

Grfico 8 Relacin N a N

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

18

UNIDAD 2 Lenguaje de Consultas SQL

3.3 Generalizacin, especializacin y Agregacin


a) Generalizacin La generalizacin consiste en identificar atributos comunes a ciertas entidades, para lo cual podemos crear: una entidad de nivel superior que las contenga, y otras entidades de nivel inferior con los atributos particulares. Ejemplo:

Atributos semejantes (Generalizados)

Direccin Nombre PERSONA Telfono


Entidad global generada

IS A

IS A: Se lee ES UN

Salario EMPLEADO

Calificacin ESTUDIANTE

IS A Atributos individuales

Atributos individuales

ADMINISTRATIVO Departamento

PROFESOR

Cargo

Materia

Horas de clase

Grfico 9 Ejemplos de Generalizacin

Se puede observar que las entidades EMPLEADO y ESTUDIANTE heredan8 de la entidad PERSONA los atributos Nombre, Direccin y Telfono. De la misma manera la entidad EMPLEADO tiene un atributo particular llamado

La herencia es un tipo de relacin entre una entidad "padre" y una entidad "hijo". La entidad "hijo" hereda todos los atributos y relaciones de la entidad "padre". Por tanto, no necesitan ser representadas dos veces en el diagrama.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

19

UNIDAD 2 Lenguaje de Consultas SQL salario que hereda a las entidades ADMINISTRATIVO y PROFESOR, las cuales tienen tambin sus propios atributos individuales. Como podemos observar la Generalizacin trata de eliminar la redundancia (repeticin) de atributos, al englobar los atributos semejantes. La entidad(es) de bajo nivel heredan todos los atributos correspondientes. b) Especializacin Si identificamos un subconjunto de entidades dentro de un conjunto de entidades que tienen algunos atributos particulares, entonces estos subgrupos se convierten en conjuntos de entidades de nivel inferior que tienen atributos o participan en relaciones que no son aplicables al conjunto de entidades de nivel superior. c) Agregacin La agregacin surge cuando ms de una entidad se asocian de tal forma que se las puede ver como a una nueva entidad. Esta nueva entidad, fruto de esa ntima unin, se puede relacionar con otras entidades. Se representa enmarcando la relacin en un rectngulo. Horas
TRABAJA

Id

Nombre EMPLEADO

Nmero

PROYECTO

USA

MAQUINARIA Id
Grfico 10 Ejemplo de Agregacin

Para ejemplificar una agregacin consideraremos un ejemplo que consiste en una empresa en la cual existen trabajando muchos empleados que trabajan en diferentes proyectos, pero dependiendo del trabajo que realiza en pueden llegar a utilizar un equipo o maquinaria; en este problema intervienen 3 entidades: Empleado, Proyecto y Maquinaria, el diagrama E-R correspondiente sera el que se visualiza en la figura 9.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

20

UNIDAD 2 Lenguaje de Consultas SQL Como el modelo E-R no permite la unin entre dos o ms relaciones, la relacin TRABAJA es englobada como si fuera una entidad ms de la relacin USA, grficamente se dibuja un rectngulo para englobarlas. Slo as podemos decir que la entidad TRABAJA se relaciona con la entidad MAQUINARIA a travs de la relacin USA. Para indicarnos que un trabajo usa un determinado equipo o maquinaria segn el tipo de trabajo que se trate.

3.4 Tcnica para el modelado entidad relacin


El modelado entidad-relacin es una tcnica para el modelado de datos utilizando diagramas entidad relacin. No es la nica tcnica pero s la ms utilizada. Brevemente consiste en los siguientes pasos: 1. Se parte de una descripcin textual del problema o sistema de informacin a automatizar (los requisitos). 2. Se hace una lista de los sustantivos y verbos que aparecen. 3. Los sustantivos son posibles entidades o atributos. 4. Los verbos son posibles relaciones. 5. Analizando las frases se determina la cardinalidad de las relaciones y otros detalles. 6. Se elabora el diagrama (o diagramas) entidad-relacin. 7. Se completa el modelo con listas de atributos y una descripcin de otras restricciones que no se pueden reflejar en el diagrama.

3.5 Ejercicios Resueltos


Ejercicio 1: Realizar un diagrama E-R del siguiente enunciado: Una editorial publica varios libros. Un libro es publicado por una sola editorial. EDITORIAL
PUBLICA

LIBRO

Grfico 11 Diagrama E-R del Ejercicio 1

Ejercicio 2: Una editorial publica varios libros. Un libro es publicado por una sola editorial. Un lector puede tomar prestados varios libros.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

21

UNIDAD 2 Lenguaje de Consultas SQL EDITORIAL


PUBLICA

LIBRO LECTOR
TIENE

Grfico 12 Diagrama E-R del Ejercicio 2

Ejercicio 3 Se pretende crear una base de datos para almacenar informacin sobre los proyectos que realizan en un curso. Los datos a tener en cuenta son:

Cada proyecto tiene asociado un identificador numrico y un nombre.


Adems se guardar qu estudiante es el director de dicho proyecto.

Tambin

se quiere guardar informacin sobre los informes que en

cada aporte se hacen de cada proyecto. Para ello se guardar la fecha del informe y se detallar cules han sido las tareas realizadas en el aporte, quin las realiz y el tiempo que dedic a cada una de ellas. Las tareas dentro de los proyectos suelen ser casi siempre las mismas, aunque las realicen distintas personas y le dediquen tiempos distintos. Adems un mismo estudiante puede realizar distintas tareas en el mismo aporte y una tarea puede ser desarrollada por ms de un empleado.

De los estudiantes se guardar el cdigo y su nombre.


Fecha Tiempo Descripcin

IdInforme

IdTarea

GUARDA

INFORME

REGISTRA

TAREA
Cdigo

Nombre

IdProyecto Nombre

PROYECTO

DIRIGE

ESTUDIANTE

Grfico 13 Diagrama E-R del Ejercicio 3

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

22

UNIDAD 2 Lenguaje de Consultas SQL

4. Diseo lgico de bases de datos utilizando el Modelo Relacional 4.1 Introduccin Terica
El objetivo del diseo lgico es convertir los esquemas conceptuales locales en un esquema lgico global que se ajuste al modelo de DBMS sobre el que se vaya a implementar el sistema. Los modelos de bases de datos ms extendidos desde la perspectiva del diseo lgico son el modelo relacional, el modelo de red y el modelo jerrquico. El modelo orientado a objetos es tambin muy popular, pero no existe un modelo estndar orientado a objetos. En este punto nos concentraremos en desarrollar un buen modelo "lgico" que se conoce como "esquema de la base de datos" a partir del cual se podr realizar el modelado fsico en el DBMS, es importante mencionar que es un paso necesario, no se puede partir de un modelo conceptual para realizar un fsico.

4.2 El Modelo Relacional


El objetivo del modelo relacional es crear un "esquema", lo cual como se explicar ms adelante consiste de un conjunto de "tablas" que representan "relaciones", relaciones entre los datos. La ventaja del modelo relacional es que los datos se almacenan, al menos conceptualmente, de un modo en que los usuarios entienden con mayor facilidad. Los datos se almacenan como tablas y las relaciones entre las filas y las tablas son visibles en los datos. Este enfoque permite a los usuarios obtener informacin de la base de datos sin asistencia de sistemas profesionales de administracin de informacin. Las caractersticas ms importantes de los modelos relacionales son:

Es importante saber que las entradas en la tabla tienen un solo valor


(son atmicos); no se admiten valores mltiples, por lo tanto la interseccin de un rengln con una columna tiene un solo valor, nunca un conjunto de valores.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

23

UNIDAD 2 Lenguaje de Consultas SQL

Todas

las entradas de cualquier columna son de un solo tipo. Por

ejemplo, una columna puede contener nombres de clientes, y en otra puede tener fechas de nacimiento. Cada columna posee un nombre nico, el orden de las comunas no es de importancia para la tabla, las columnas de una tabla se conocen como atributos. Cada atributo tiene un dominio, que es una descripcin fsica y lgica de valores permitidos.

No existen 2 filas en la tabla que sean idnticas. La informacin en las bases de datos son representados como datos
explcitos, no existen apuntadores o ligas entre las tablas. En el enfoque relacional es sustancialmente distinto de otros enfoques en trminos de sus estructuras lgicas y del modo de las operaciones de entrada/salida. En el enfoque relacional, los datos se organizan en tablas llamadas relaciones, cada una de las cuales se implanta como un archivo. En terminologa relacional una fila en una relacin representa un registro o una entidad; Cada columna en una relacin representa un campo o un atributo. As, una relacin se compone de una coleccin de registros cuyos propietarios estn descritos por cierto nmero de atributos predeterminados implantados como campos. Las tablas del diagrama relacional, pueden ser construidas partiendo de convertir el diagrama e-r a tablas y posteriormente aplicar operaciones de normalizacin hasta conseguir el esquema ptimo. Esta es muy conveniente en varios aspectos:

El partir de un diagrama visual es muy til para apreciar los detalles, de ah que se llame modelo conceptual. El crear las tablas inciales es mucho ms simple a travs de las reglas de conversin. Se podra pensar que es lo mismo porque finalmente hay que "normalizar" las tablas de todas formas, pero la ventaja de partir del modelo e-r es que la "normalizacin" es mnima por lo general.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

24

UNIDAD 2 Lenguaje de Consultas SQL

Lo anterior tiene otra ventaja, an cuando se normalice de manera deficiente, se garantiza un esquema aceptable.

Conceptos bsicos Tablas: El modelo relacional proporciona una manera simple de representar los datos: una tabla bidimensional llamada relacin.
ALUMNOS CODIGO 1234 5678 NOMBRES David Bustamante Toms Alarcn DIRECCIN Av. 24 de Mayo Gran Colombia

La relacin Alumnos tiene la intencin de manejar la informacin de las instancias en la entidad Alumnos, cada rengln corresponde a una entidad Alumno y cada columna corresponde a uno de los atributos de la entidad. Sin embargo las relaciones pueden representar ms que entidades, como se explicar ms adelante. El grado de esta tabla es el nmero de campos que posee, en nuestro caso la tabla ALUMNOS es de grado 3. Campos o atributos: Los atributos son las columnas de una relacin y describen caractersticas particulares de ella. Relacin, Esquema o Tabla: Es el nombre que se le da a una relacin y el conjunto de atributos en ella. Alumnos (Cdigo, Nombres, Direccin) Tuplas o registros: Cada uno de los renglones en una relacin conteniendo valores para cada uno de los atributos. (1234, David Bustamante, Av. 24 de Mayo) Dominios: Se debe considerar que cada campo (columna) debe ser atmico, es decir, que no sea divisible, no se puede pensar en un atributo como un "registro" o "estructura" de datos. Claves: Como en una tabla, las tuplas pueden estar en cualquier orden, no podemos referenciar una tupla concreta a mediante su posicin entre las

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

25

UNIDAD 2 Lenguaje de Consultas SQL dems, y necesitamos alguna forma de seleccionar una tupla concreta. La forma de hacerlo es mediante una clave. Una clave es un atributo o conjunto de atributos cuyo valor es nico y diferente para cada tupla. Clave primaria: De entre todas las claves candidatas, el administrador, cuando define la tabla, debe decidir cul de ellas va a ser la clave principal o clave primaria. Una clave primaria es aquella columna (pueden ser tambin dos columnas o ms) que identifica nicamente a esa fila. La clave primaria es un identificador que va a ser nico para cada fila. Se acostumbra poner la clave primaria como la primera columna de la tabla pero esto no tiene que ser necesario, si no es ms una conveniencia. Muchas veces la clave primaria es autonumrica. Clave Candidata: En una tabla puede que tengamos ms de una clave, en tal caso se puede escoger una para ser la clave primaria, las dems claves son las claves candidatas, adems es la posible clave primaria. P.ej., en nuestro caso de la tabla Alumnos, la clave puede ser tanto el atributo Cdigo, como el atributo Nombre Claves Alternativas: Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que tambin puede identificar de forma nica a una fila dentro de una tabla. Ejemplo: Si en una tabla Alumnos definimos Cdigo como clave primaria, el nmero de cdula de ese alumno podra ser una clave alternativa. Clave Fornea: Una clave fornea es aquella columna que existiendo como dependiente en una tabla, es a su vez clave primaria en otra tabla. Clave Compuesta: Una clave compuesta es una clave que est compuesta por ms de una columna o campo.

4.3 Conversin del diagrama E-R a tablas


En el tema anterior estudiamos un modelo conceptual de datos que nos permita describir la informacin que se desea almacenar en una base de datos cualquiera: el modelo Entidad-Relacin.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

26

UNIDAD 2 Lenguaje de Consultas SQL La ventaja de este modelo es que es independiente del modelo lgico sobre el que se vaya a implantar finalmente dicha base de datos. Por otro lado, cuando dicho modelo lgico es el modelo relacional, resulta bastante sencillo pasar del diagrama E-R al esquema relacional mediante unas cuantas reglas sencillas y fciles de aplicar. Antes de comenzar es necesario resaltar las diferencias existentes entre estos dos modelos. De una parte, el modelo E-R trabaja a nivel conceptual, estableciendo cules son las entidades fuertes y dbiles que intervienen en nuestra base de datos, y las relaciones existentes entre ellas; sin embargo, no hace referencia alguna a la forma en que estos objetos se almacenan en ninguna base de datos, entre otras cosas por se trata slo de un modelo conceptual. Por contra, el modelo relacional lo que trata es de representar la informacin en la forma en que se va a almacenar en la memoria del ordenador (o al menos en la forma en que el usuario la ve). Para ello se vale casi nicamente del concepto de tabla. Por tanto, lo que se pretende con este apartado es pasar de describir conceptualmente el mundo mediante entidades y relaciones, a describirlo lgicamente mediante tablas. Una vez preparados los atributos de las entidades y relaciones, la conversin del diagrama E-R al modelo relacional pasa por dos etapas: una en la que se convierten las entidades, y otra en la que se convierten las relaciones. No obstante, las tablas que se van obteniendo no adoptan su forma definitiva hasta que se ha acabado el proceso. Conversin de entidades a tablas. Una entidad A con atributos a1...aN se convierte en una tabla de nombre A, y nombres de columna o atributos a1...aN. Si la clave de la entidad A est formada por los atributos ai...ai+k, la clave de la tabla correspondiente estar formada por dichos atributos.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

27

UNIDAD 2 Lenguaje de Consultas SQL En definitiva, podemos decir que existe una correspondencia directa entre el concepto de entidad del diagrama E-R (una vez eliminados los atributos mltiples y los compuestos), y el concepto de tabla relacional. P.ej., siguiendo con el caso anterior, la entidad ALUMNO se convertira en la tabla adjunta, en la que no hay ningn dato insertado. Telfono Cdigo ALUMNO
Grfico 14 Entidad Alumno ALUMNO CODIGO NOMBRES DIRECCIN TELFONO

Direccin Nombres

Si la entidad es dbil, ser necesario incluir tambin los atributos correspondientes a su entidad fuerte, indispensables para poder establecer una clave identificativa en la tabla as formada. Conversin de relaciones binarias a tablas Supongamos el ejemplo de un diagrama que nos permite representar las facturas propias de cualquier negocio. Dado que el nmero de lneas de detalle de una factura es indeterminado, es necesario crear una relacin dbil que relacione cada factura con los detalles que en ella se facturan, tal y como se ve en el diagrama del la figura.

Fecha

Cliente

CdigoArtculo

Cantidad

Nmero

IVA

NmeroLnea

PrecioUnitario

FACTURA

TIENE

LNEAS DETALLE

Grfico 15 Esquema E-R de una factura

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

28

UNIDAD 2 Lenguaje de Consultas SQL


FACTURA NMERO FECHA CLIENTE IVA

LNEAS DE DETALLE
NMERO_ FACTURA NMERO LNEA CANTIDAD CDIGO ARTCULO PRECIO UNITARIO

Cuando convertimos las entidades FACTURAS y LNEAS DE DETALLE en sus tablas correspondientes, obtenemos las de la figura, en la que se observa quela tabla de LNEAS DE DETALLE hereda los atributos que forman la clave de FACTURAS. Con este mtodo est claro cules son las instancias de LNEAS DE DETALLE que se relacionan con cada Factura concreta, ya que partiendo del Nmero de la Factura buscamos todas las tuplas de LNEAS DE DETALLE en las que coincida su atributo Nmero de Factura. Por otro lado, averiguar a qu Factura pertenece una Lnea de Detalle es trivial, todo caso que se conoce la clave de dicha Factura a travs de Nmero de Factura. De esta forma, la relacin dbil Detalle queda representada en el modelo relacional por la inclusin de la clave de la relacin fuerte en la tabla de la dbil. Conversin de relaciones uno a uno La conversin de una relacin uno a uno, no da lugar a una tabla nueva, sino que modifica una de las dos tablas correspondientes a las entidades que relaciona. Una relacin R del tipo uno a uno con atributos r1...rN que relaciona entidades A y B de claves ai...ai+k y bj...bj+m, modifica la tabla de la entidad A, aadindole como atributos los de la clave de B, y los suyos propios, esto es bj...bj+m y r1...rN. Por ejemplo, supongamos el diagrama E-R de la figura que representa a una entidad CLIENTES y a una entidad CASILLEROS DE ROPA, en un sistema en el que queremos representar parte de un gimnasio, de manera que un cliente alquila un casillero para guardar su ropa, y un CASILLEROS DE ROPA slo puede pertenecer como mucho a un CLIENTE. Esta situacin

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

29

UNIDAD 2 Lenguaje de Consultas SQL se representa mediante la relacin ALQUILA, que en tal caso es del tipo uno a uno.
Nombre Apellido Direccin

Cdula

Nmero

Situacin

CLIENTE

ALQUILA

CASILLERO ROPA

FechaAlquiler

Duracin

Grfico 16 Esquema E-R con relacin uno a uno

Tras convertir las entidades CLIENTES y CASILLEROS DE ROPA en tablas, se obtienen las de la figura adjunta.
CLIENTE CDULA NOMBRE APELLIDO DIRECCIN

CASILLERO DE ROPA NMERO SITUACIN

Si ahora aplicamos la regla dada anteriormente, nos damos cuenta de su ambigedad, en el sentido de que hace referencia a una entidad A y otra B. En nuestro caso, da lo mismo cual consideremos como entidad A (si a CLIENTES o CASILLEROS DE ROPA), ya que el proceso a seguir es idntico escojamos la que escojamos. Supongamos que la entidad A es CLIENTES, en tal caso para convertir la relacin ALQUILA con atributos Fecha alquiler y Duracin, ampliaremos la tabla de Clientes con la clave de CASILLEROS DE ROPA, o sea Nmero, y los atributos de la relacin CASILLEROS DE ROPA, dando lugar a la tabla siguiente.
CLIENTE CDULA NOMBRE APELLIDO DIRECCIN NMERO FECHA DURACIN ALQUILER

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

30

UNIDAD 2 Lenguaje de Consultas SQL Como resultado de esta conversin, hemos transformado una tabla aadindole atributos que permiten seguir la relacin existente entre un CLIENTE y un CASILLERO DE ROPA. Podemos saber directamente qu CASILLEROS DE ROPA tiene asignado un CLIENTE sin ms que consultar su clave, en este caso el atributo Nmero, que, por el hecho de ser clave, identifica de forma nica una tupla en la tabla de CASILLEROS DE ROPA. Asimismo, acompaamos la adicin de esta clave con la adicin de los atributos propios de la relacin, con lo que podemos saber qu CASILLERO DE ROPA ha alquilado cada CLIENTE, en qu Fecha alquiler y por cunta Duracin. Por otro lado, para saber a partir de un Nmero de CASILLERO DE ROPA, qu CLIENTE la ha alquilado, basta con inspeccionar todas las tuplas de Clientes en busca de uno cuyo atributo Nmero coincida con el que estamos buscando. Por tanto, lo que en el diagrama E-R no era ms que un dibujo que relacionaba instancias de una entidad, lo hemos convertido en tablas y atributos insertados en ellas que nos permiten seguir el hilo de las instancias relacionadas. Esta operacin, en la que la clave de una tabla emigra a otra, da lugar a lo que se llama clave fornea, que no es ms que el conjunto de atributos que conforman la clave migrada. Conversin de relaciones uno a muchos. Cuando la relacin que se desea convertir es del tipo uno a muchos, la solucin es muy parecida a la del punto anterior, y consiste en migrar una de las claves a la tabla correspondiente a la otra entidad. Una relacin R del tipo uno a muchos con atributos r1...rN que relaciona entidades A y B de claves ai...ai+k y bj...bj+m de manera que una instancia de A se puede relacionar con muchas de B, modifica la tabla de la entidad B, aadindole como atributos los de la clave de A, y los suyos propios, esto es ai...ai+k y r1...rN.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

31

UNIDAD 2 Lenguaje de Consultas SQL Tpico ejemplo de esta situacin es el diagrama E-R que representa la relacin entre una lista de vuelos comerciales y las compaas areas que los realizan. Esto puede verse en la figura adjunta.
FechaDeSalida Situacin

Nacionalidad

LugarDeSalida Direccin

Nombre

Descriptor

Destino

COMPAAS

REALIZA

VUELOS

Grfico 17 Esquema E-R con relacin uno a muchos

Tras haber convertido las entidades en tablas se obtienen las de la figura siguiente.
COMPAIAS NOMBRE DIRECCIN NACIONALIDAD

VUELOS DESCRIPTOR LUGAR DE SALIDA FECHA DE SALIDA SITUACIN DESTINO

En esta situacin, para convertir la relacin REALIZAR al modelo relacional, observamos que una COMPAA se relaciona con muchos VUELOS, por lo que siguiendo la regla anterior, COMPAA hace las veces de entidad A, y VUELOS hace las veces de entidad B. Por tanto, para convertir la relacin, basta con incluir la clave de COMPAAS en la tabla de VUELOS, dando lugar al siguiente esquema.
COMPAIAS NOMBRE DIRECCIN NACIONALIDAD

VUELOS DESCRIPTOR LUGAR DE SALIDA FECHA DE SALIDA SITUACIN DESTINO NOMBRE

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

32

UNIDAD 2 Lenguaje de Consultas SQL En este caso, la relacin REALIZAR carece de atributos propios por lo que no se aaden ms atributos a la tabla de VUELOS. En este punto es interesante hacer notar que en el diagrama E-R existe la posibilidad de tener entidades distintas con atributos distintos pero con el mismo nombre; p.ej., puede ser comn tener la entidad CLIENTES con un atributo CDULA, y a la vez tener la entidad EMPLEADOS con un atributo tambin llamado CDULA. Esto es posible porque cuando se hace referencia a CDULA, es necesario tambin indicar la entidad a que nos referimos: CLIENTES o EMPLEADOS. Sin embargo, en el momento de efectuar la conversin del diagrama a las tablas relacionales, vemos que en ciertas situaciones es necesario migrar las claves de unas entidades a otras, lo cual puede dar conflictos de nombres. Por ejemplo, qu ocurrira si el atributo que forma la clave de VUELOS (destinado a guardar el cdigo del vuelo: IB-713, AV-098, etc.), en lugar de llamarse Descriptor se llamase Nombre? Est claro que cuando se migrase la clave de la COMPAA a la tabla de VUELOS habra un problema, pues tendramos dos atributos con el mismo nombre. Pues bien, tanto si se produce esa situacin como si no, cuando se migra la clave de una tabla a otra, nada nos impide renombrar los atributos en su nueva ubicacin. Por ejemplo, en el caso anterior, la tabla VUELOS podra haber quedado como se ve en la figura: el atributo Nombre ha pasado a llamarse Nombre de Compaa.

COMPAIAS NOMBRE DIRECCIN NACIONALIDAD

VUELOS DESCRIPTOR LUGAR DE SALIDA FECHA DE SALIDA SITUACIN DESTINO NOMBRE DE COMPAA

Lo que s est claro, en cualquier caso, es que el atributo Nombre de Compaa sigue siendo clave fornea, aunque tenga distinto nombre.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

33

UNIDAD 2 Lenguaje de Consultas SQL Conversin de relaciones muchos a muchos. Este es el caso ms general de conversin de relaciones, pudiendo incluso aplicarse en las relaciones uno a uno y uno a muchos. El nico motivo por el que no se da esta regla como nica regla general es la eficiencia, ya que como veremos implica la creacin de tablas nuevas y la duplicacin de informacin en gran cantidad. Una relacin R del tipo muchos a muchos con atributos r1...rN que relaciona entidades A y B de claves ai...ai+k y bj...bj+m respectivamente, se convierte en una tabla llamada R y compuesta por los atributos de las claves de A y B, as como por los atributos propios de la relacin R, esto es ai...ai+k, bj...bj+m, y r1...rN. Los atributos ai...ai+k, bj...bj+m forman la clave de la nueva tabla. En el caso de las relaciones muchos a muchos no podemos ampliar ninguna de las tablas asociadas porque necesitaramos un nmero indeterminado de claves forneas. Por tanto, la solucin pasa por crear una nueva tabla con el nico objetivo de contener los pares de instancias que se relacionan; evidentemente, en lugar de repetir toda la informacin de cada instancia, se almacena tan slo la informacin identificativa: la clave. Para ilustrar esto, supongamos que queremos representar la informacin relativa a los ALUMNOS del colegio y los CLUBES en que se halan matriculados. El diagrama E-R que representa puede verse en la figura.

Nombre

Apellido AoNacimiento

Cdula

Cdigo
MATRICULA

Nombre

ALUMNO
ConvocatoriasAgotadas

CLUB
VecesMatriculado

Grfico 18 Esquema E-R con relacin muchos a muchos

Dado que la relacin MATRCULAS es muchos a muchos, segn la regla anterior, la conversin implica crear una nueva tabla con el mismo nombre, o sea MATRCULAS, y con los atributos Veces Matriculado y Convocatorias
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

34

UNIDAD 2 Lenguaje de Consultas SQL Agotadas, as como las claves de ALUMNOS y ASIGNATURAS, o sea, Cdula y Cdigo, que podemos renombrar como Cdula del Alumno y Cdigo de Club, quedando las tablas de la figura siguiente.
ALUMNOS CDULA NOMBRE APELLIDO AO DE NACIMIENTO

CLUB CDIGO NOMBRE

MATRCULA CLUB CDULA ALUMNO CDIGO DE CLUB VECES MATRICULADO CONVOCATORIAS AGOTADAS

Con este esquema de tablas, para saber en qu CLUBES se ha matriculado un alumno concreto, basta con buscar todas las veces que parezca su cdula en la tabla MATRCULAS; cada tupla en la que aparezca contendr adems la clave de una de los clubes en la que est matriculado. Para saber el nombre de cada club utilizaremos el Cdigo de club como clave para buscar el nombre en la tabla CLUBES. Es interesante hacer notar la necesidad de los atributos asociados a la relacin, tal y como explicbamos en el captulo de diagramas E-R. ACTIVIDAD Investigue cmo se hace la Transformacin de relaciones no binarias a tablas. Se evaluar: Portada, ndice de contenidos, ndice de grficos (si es que los hay), calidad de la teora investigada, ejemplos, conclusiones, recomendaciones y bibliografa. Recuerde que una buena investigacin implica una buena sustentacin de la misma.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

35

UNIDAD 2 Lenguaje de Consultas SQL

5. Normalizacin desde el punto de vista del diseo lgico de una base de datos 5.1 Introduccin Terica
Una vez creadas las tablas en el modelo relacional hay que verificarlas y revisar si an se puede reducir u optimizar de alguna manera. Los problemas tales como la redundancia que ocurren cuando se abarrotan demasiados datos en una sola relacin son llamados anomalas. Los principales tipos son: 1. Redundancia: la informacin se repite innecesariamente en muchas tuplas. En la relacin siguiente: ALUMNO, CURSO, PARALELO, ESPECIALIDAD. 2. Anomalas de actualizacin: cuando al cambiar la informacin en una tupla se descuida el actualizarla en otra. Si en la relacin encontramos que la EDAD de David Bustamante es 15 podramos cambiarlo nicamente para la primer tupla y olvidar actualizar las dems. 3. Anomalas de eliminacin: si un conjunto de valores llegan a estar vacos y se llega a perder informacin relacionada como un efecto de la eliminacin. Si eliminamos la materia CCNN 2, perdemos tambin la tupla del alumno Polo Garca.
ALUMNOS ALUMNO David Bustamante David Bustamante David Bustamante Polo Garca Ral Bolaos Ral Bolaos CURSO Dcimo Dcimo Dcimo Octavo Noveno Noveno PARALELO F F F A B B EDAD 14 14 14 12 13 14 ESPECIALIDAD Bsica Bsica Bsica Bsica Bsica Bsica MATERIA Matemticas III Computacin III Ingls III CCNN I Ingls II CCSS II

5.2 Dependencia Funcional


En el diseo de esquemas de bases de datos el concepto de dependencia funcional (functional dependency) es vital para eliminar "redundancia",

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

36

UNIDAD 2 Lenguaje de Consultas SQL otros factores sera el manejo de dependencias multivaluadas y las restricciones de integridad referencial. Como vimos anteriormente, las relaciones pueden usarse como modelos del mundo real, estos hechos del mundo real implican que no todo conjunto de tuplas conforman una instancia vlida del esquema de relacin, an cuando los valores de las tuplas hayan sido tomados de los dominios correctos. Por ejemplo, si tenemos el esquema: Alumnos= {Cdigo, Nombre, Edad, Curso} La siguiente instancia no es vlida:
ALUMNOS CDIGO 1234 5678 9101 1121 5678 NOMBRE David Bustamante Toms Alarcn Humberto Lpez Miguel Farfn Mario Osorio EDAD CURSO 314 15 12 16 15 Dcimo Primero de Bachillerato Tercero de Bachillerato Tercero de Bachillerato Segundo de Bachillerato

Podemos distinguir dos tipos de restricciones9 sobre las relaciones: Restricciones que dependen de la semntica del dominio. Estas restricciones surgen de comprender el significado de las componentes de las tuplas. En el ejemplo anterior, David Bustamante no puede tener 314 aos y Humberto Lpez no puede estar en Tercero de Bachillerato cuando slo tiene 12 aos de edad. Conocer estas restricciones no ayudan a lograr un buen diseo de la base de datos, pero es necesario considerarlas para que el DBMS chequee los errores que posiblemente ocurrirn en el momento de cargar los datos. Restricciones que dependen de la igualdad o desigualdad de valores. Estas restricciones no dependen de qu valor tiene una tupla en una componente dada, sino que se basan en que dos tuplas coinciden en ciertas componentes. En el ejemplo anterior, no puede suceder que Pedro y Mario Osorio tengan el mismo valor en el campo CDIGO, ms all de cul
9

Restricciones: Es una condicin que obliga el cumplimiento de ciertas condiciones en la bases de datos.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

37

UNIDAD 2 Lenguaje de Consultas SQL sea ese valor. Estas restricciones se conocen con el nombre de

dependencias. Existen distintos algunos tipos de dependencias: funcionales, multivaluadas, de inclusin y de producto (join). Cada tipo de dependencia es un caso particular de la que le sigue. Si deseamos disponer de mtodos algortmicos eficientes para el diseo de una base de datos relacional debemos primero estudiar y resolver problemas relacionados con la manipulacin de dependencias entre los datos. Por alcance de ste curso analizaremos solamente las dependencias funcionales. Entonces qu es la Dependencia funcional? Una dependencia funcional es una conexin entre uno o ms atributos. Por ejemplo si conocemos el valor de FechaDeNacimiento podemos conocer el valor de Edad. Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera: FechaDeNacimiento Edad Aqu a FechaDeNacimiento se le conoce como un determinante. Se puede leer de dos formas FechaDeNacimiento determina a Edad o Edad es funcionalmente dependiente de FechaDeNacimiento. Las dependencias funcionales representan restricciones de la realidad. Por consiguiente, la nica manera de determinar las dependencias funcionales que se cumplen en una tabla R es analizando cuidadosamente las restricciones de la realidad que estamos representando. Las dependencias funcionales son afirmaciones del mundo real que nos dicen qu instancias son vlidas para un esquema R.

5.3 Qu es la Normalizacin?
Se puede entender la normalizacin como una serie de reglas que sirven para ayudar a desarrollar tablas que minimicen los problemas de lgica. Cada regla est basada en la que le antecede.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

38

UNIDAD 2 Lenguaje de Consultas SQL Una de las ventajas de la normalizacin de base de datos es el consumo de espacio. Una base de datos normalizada ocupa menos espacio en disco que una no normalizada. Hay menos repeticin de datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco. El proceso de normalizacin tiene un nombre y una serie de reglas para cada fase. Esto puede parecer un poco confuso al principio, pero poco a poco se va entendiendo el proceso, as como las razones para hacerlo de esta manera. Grados de normalizacin Existen bsicamente tres niveles de normalizacin: Primera Forma Normal (1NF), Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada una de estas formas tiene sus propias reglas. Cuando una base de datos se conforma a un nivel, se considera normalizada a esa forma de normalizacin. No siempre es una buena idea tener una base de datos conformada en el nivel ms alto de normalizacin, puede llevar a un nivel de complejidad que pudiera ser evitado si estuviera en un nivel ms bajo de normalizacin.

5.4 Primera Forma Normal (1FN)


Una tabla est en Primera Forma Normal slo si 1. Todos los atributos son atmicos. Un atributo es atmico si los elementos del dominio son indivisibles, mnimos. 2. La tabla contiene una clave primaria 3. La tabla no contiene atributos nulos 4. Si no posee ciclos repetitivos Una columna no puede tener mltiples valores. Los datos son atmicos. (Si a cada valor de X le pertenece un valor de Y, entonces a cada valor de Y le pertenece un valor de X).... La primera forma normal (1NF o forma mnima) es una forma normal usada en normalizacin de bases de datos. Una tabla de base de datos relacional que se adhiere a la 1NF es una que satisface cierto conjunto mnimo de criterios. Estos criterios se refieren bsicamente a asegurarse que la tabla
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

39

UNIDAD 2 Lenguaje de Consultas SQL es una representacin fiel de una relacin y est libre de "grupos repetitivos". Sin embargo, el concepto de "grupo repetitivo", es entendido de diversas maneras por diferentes tericos. Como una consecuencia, no hay un acuerdo universal en cuanto a qu caractersticas descalificaran a una tabla de estar en 1NF. Muy notablemente, la 1NF, tal y como es definida por algunos autores10 excluye "atributos relacin-valor", es decir, tablas dentro de tablas11. Por otro lado, segn lo definido por otros autores, la 1NF s los permite12. Las tablas 1NF como representaciones de relaciones Segn la definicin de Date de la 1NF, una tabla est en 1NF si y solo si es "isomorfa a alguna relacin", lo que significa, especficamente, que satisface las siguientes cinco condiciones: 1. No hay orden de arriba-a-abajo en las filas. 2. No hay orden de izquierda-a-derecha en las columnas. 3. No hay filas duplicadas. 4. Cada interseccin de fila-y-columna contiene exactamente un valor del dominio aplicable (y nada ms). 5. Todas las columnas son regulares, es decir, las filas no tienen componentes como IDs de fila, IDs de objeto, o timestamps13 ocultos. La violacin de cualquiera de estas condiciones significara que la tabla no es estrictamente relacional, y por lo tanto no est en 1NF. Algunos ejemplos de tablas (o de vistas14) que no satisface esta definicin de 1NF son:

10 11

Algunos de esos autores son: Ramez Elmasri y Shamkant B. Navathe) Siguiendo el precedente establecido por Edgar.F. Codd, cientfico informtico ingls (1923-2003) uno de los padres de las bases de datos relacionales 12 Segn como le define como la define Chris Date, Christopher Date, (nacido en 1941) es autor, investigador y consultor independiente, especializado en la tecnologa de bases de datos relacionales. Es el investigador principal del modelo relacional de bases de datos de Edgar F. Codd. Trabaj en IBM. 13 Timestams: Es una secuencia de caracteres que denotan la hora y fecha (o alguna de ellas) en la cual ocurri determinado evento. 14 Vistas: Es el resultado de una consulta en de una o varias tablas utilizando un lenguaje propio de base de datos llamado SQL, tambin se lo puede considerar una tabla virtual.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

40

UNIDAD 2 Lenguaje de Consultas SQL

Una tabla que carece de una clave primaria. Esta tabla podra acomodar filas duplicadas, en violacin de la condicin 3. Una vista cuya definicin exige que los resultados sean retornados en un orden particular, de modo que el orden de la fila sea un aspecto intrnseco y significativo de la vista. Esto viola la condicin 1. Las tuplas en relaciones verdaderas no estn ordenadas una con respecto de la otra.

Una tabla con por lo menos un atributo que pueda ser nulo. Un atributo que pueda ser nulo estara en violacin de la condicin 4, que requiere a cada campo contener exactamente un valor de su dominio de columna. Sin embargo, debe ser observado que este aspecto de la condicin 4 es controvertido. Muchos autores consideran que una tabla est en 1FN si ninguna clave candidata puede contener valores nulos, pero se aceptan stos para atributos (campos) que no sean clave, segn el modelo original de Codd sobre el modelo relacional, el cual hizo disposicin explcita para los nulos.

Grupos repetidos La cuarta condicin de Date, que expresa "lo que la mayora de la gente piensa como la caracterstica que define la 1NF", concierne a grupos repetidos. El siguiente ejemplo ilustra cmo un diseo de base de datos puede incorporar la repeticin de grupos, en violacin de la 1NF. Ejemplo 1: Dominios y valores Suponga que un diseador principiante desea guardar los nombres y los nmeros telefnicos de los alumnos. Procede a definir una tabla de ALUMNO como la que sigue:
CODIGO 1234 5678 9101 NOMBRE David Toms Humberto APELLIDO Bustamante Alarcn Lpez DIRECCIN Av. 24 de Mayo Gran Colombia Luis Cordero TELFONO 2832098 2813145 4096473

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

41

UNIDAD 2 Lenguaje de Consultas SQL En este punto, el diseador se da cuenta de un requisito: debe guardar mltiples nmeros telefnicos para algunos alumnos. Razona que la manera ms simple de hacer esto es permitir que el campo "Telfono" contenga ms de un valor en cualquier registro dado:
CODIGO 1234 5678 9101 NOMBRE David Toms Humberto APELLIDO Bustamante Alarcn Lpez DIRECCIN Av. 24 de Mayo Gran Colombia Luis Cordero TELFONO 2832098 2813145 2831276 4096473

Asumiendo, sin embargo, que la columna "Telfono" est definida en algn tipo de dominio de nmero telefnico (por ejemplo, el dominio de cadenas de 12 caracteres de longitud), la representacin de arriba no est en 1NF. La 1NF (y, para esa materia) prohbe a un campo contener ms de un valor de su dominio de columna. Ejemplo 2: Grupos repetidos a travs de columnas El diseador puede evitar esta restriccin definiendo mltiples columnas del nmero telefnico:
CODIGO NOMBRE APELLIDO 1234 5678 9101 David Toms Bustamante Alarcn DIRECCIN Av. 24 de Mayo Gran Colombia Luis Cordero TELFONO 1 TELFONO 2 TELFONO 3 2832098 2813145 4096473 2831276

Humberto Lpez

Sin embargo, esta representacin hace uso de columnas que permiten valores nulos, y por lo tanto no se conforman con la definicin de la 1NF de Date. Incluso si se contempla la posibilidad de columnas con valores nulos, el diseo no est en armona con el espritu de 1NF. Telfono 1, Telfono 2, y Telfono 3, comparten exactamente el mismo dominio y exactamente el mismo significado; el dividir del nmero de telfono en tres encabezados es artificial y causa problemas lgicos. Estos problemas incluyen:

Dificultad

en hacer consultas a la tabla. Es difcil contestar preguntas

tales como "Qu alumnos tienen el telfono X?" y "Qu pares de alumnos comparten un nmero de telfono?".

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

42

UNIDAD 2 Lenguaje de Consultas SQL

La

imposibilidad de hacer cumplir la unicidad los enlaces Cliente-a-

Telfono por medio del RDBMS. Al alumno 9101 se le puede dar equivocadamente un valor para el Telfono 2 que es exactamente igual que el valor de su Telfono 1.

La

restriccin de los nmeros de telfono por alumno a tres. Si viene

un alumno con cuatro nmeros de telfono, estamos obligados a guardar solamente tres y dejar el cuarto sin guardar. Esto significa que el diseo de la base de datos est imponiendo restricciones al proceso de la institucin, en vez de (como idealmente debe ser el caso) al revs. Ejemplo 3: Repeticin de grupos dentro de columnas El diseador puede, alternativamente, conservar una sola columna de nmero de telfono, pero alterando su dominio, haciendo una cadena de suficiente longitud para acomodar mltiples nmeros telefnicos:
CODIGO 1234 5678 9101 NOMBRE David Toms Humberto APELLIDO Bustamante Alarcn Lpez DIRECCIN Av. 24 de Mayo Gran Colombia Luis Cordero TELFONO 1 2832098 2813145, 2831276 4096473

ste es defendiblemente el peor diseo de todos, y otra vez no mantiene el espritu de la 1NF. El encabezado "Telfono" llega a ser semnticamente difuso, ya que ahora puede representar, o un nmero de telfono, o una lista de nmeros de telfono, o de hecho cualquier cosa. Una consulta como "Qu pares de clientes comparten un nmero telefnico?" es virtualmente imposible de formular, dada la necesidad de proveerse de listas de nmeros telefnicos as como nmeros telefnicos individuales. Con este diseo en la RDBMS, son tambin imposibles de definir significativas restricciones en nmeros telefnicos. Un diseo conforme con 1NF Un diseo que est inequvocamente en 1NF hace uso de dos tablas: una tabla de cliente y una tabla de telfono del alumno.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

43

UNIDAD 2 Lenguaje de Consultas SQL


ALUMNO CODIGO 1234 5678 9101 NOMBRE David Toms Humberto APELLIDO Bustamante Alarcn Lpez DIRECCIN Av. 24 de Mayo Gran Colombia Luis Cordero

TELFONOS DE ALUMNOS CODIGO TELFONO 1234 5678 5678 9101 2832098 2813145 2831276 4096473

En este diseo no ocurren grupos repetidos de nmeros telefnicos. En lugar de eso, cada enlace Alumno-a-Telfono aparece en su propio registro. Atomicidad Algunas definiciones de 1NF, ms notablemente la de E.F. Codd, hacen referencia al concepto de atomicidad. Codd indica que "se requiere que los valores sean atmicos con respecto al DBMS en los dominios en los que cada relacin es definida". Codd define un valor atmico como uno que "no puede ser descompuesto en pedazos ms pequeos por el DBMS (excepto ciertas funciones especiales)". Hugh Darwen15 y Chris Date han sugerido que el concepto de Codd de un "valor atmico" es ambiguo, y que esta ambigedad ha conducido a una extensa confusin sobre cmo debe ser entendida la 1NF. En particular, la nocin de un "valor que no puede ser descompuesto" es problemtica, pues parecera implicar que pocos, si algn, tipos de datos son atmicos:

15

Hugh Darwen: Ex empleado de la IBM, estuvo involucrado en la historia de los modelos relacionales desde su inicio, fue arquitecto principal de Bussiness System 12, un sistema de gestin de datos que estaba fielmente basado al modelo relacional.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

44

UNIDAD 2 Lenguaje de Consultas SQL

Una

cadena de caracteres parecera no ser atmica, ya que el

RDBMS16 tpicamente proporciona operadores para descomponerla en subcadenas.

Una

fecha parecera no ser atmica, ya que el RDBMS proporciona

tpicamente operadores para descomponerla los componentes de da, mes, y ao.

Un

nmero de punto fijo parecera no ser atmico, ya que el RDBMS tpicamente operadores para descomponerlo en

proporciona

componentes de nmeros enteros y fraccionarios. Date sugiere que "la nocin de atomicidad no tiene ningn significado absoluto": un valor puede ser considerado atmico para algunos propsitos, pero puede ser considerado un ensamblaje de elementos ms bsicos para otros propsitos. Si esta posicin es aceptada, la 1NF no puede ser definida con referencia a la atomicidad. Las columnas de cualquier tipo de datos concebible (desde tipos de cadenas y tipos numricos hasta tipos de arreglos y tipos de tabla) son entonces aceptables en una tabla 1NF aunque quizs no siempre deseable.

5.5 Segunda Forma Normal (2NF)


Una relacin est en 2FN si est en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. La segunda forma normal (2NF) es una forma normal usada en

normalizacin de bases de datos. La 2NF fue definida originalmente por E.F. Codd en 1971. Una tabla que est en la primera forma normal (1NF) debe satisfacer criterios adicionales para calificar para la segunda forma normal. Especficamente: una tabla 1NF est en 2NF si y solo si, dada cualquier clave candidata y cualquier atributo que no sea un constituyente de la clave candidato, el atributo no clave depende de toda la clave candidata en vez de solo una parte de ella.

16

RDBMS: Siglas en ingls de Relational Database Management System que traducido al espaol significa Sistema administrador de bases de datos relacionales (SGBD), Las siglas de la materia
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

45

UNIDAD 2 Lenguaje de Consultas SQL En trminos levemente ms formales: una tabla 1NF est en 2NF si y solo si ninguno de sus atributos no principales (que no son clave) son funcionalmente dependientes en una parte (subconjunto apropiado) de una clave candidata. Observe que cuando una tabla 1NF no tiene ninguna clave candidata compuesta (claves candidata consistiendo en ms de un atributo), la tabla est automticamente en 2NF. Ejemplo Considere una tabla describiendo los clubes a los que asisten los alumnos:
Clubes de los alumnos ALUMNO CLUB David Bustamante Ftbol David Bustamante Ajedrez David Bustamante Msica Toms Alarcn Bsquet Humberto Lpez Ajedrez Humberto Lpez Judo Miguel Farfn Msica CURSO Dcimo Dcimo Dcimo Primero de Bachillerato Tercero de Bachillerato Tercero de Bachillerato Segundo de Bachillerato

La nica clave candidata de la tabla es {ALUMNO, CLUB}. El atributo restante, CURSO, es dependiente en solo parte de la clave candidata, llamada ALUMNO. Por lo tanto la tabla no est en 2NF. Observe la redundancia de la manera en que son CURSO: nos dicen tres veces que David Bustamante est en Dcimo y dos veces que Humberto Lpez est en Tercero de Bachillerato. Esta redundancia hace a la tabla vulnerable a anomalas de actualizacin: por ejemplo, es posible actualizar el CURSO de David Bustamante en sus registros "Ftbol" y "Ajedrez" y no actualizar su registro "Msica". Los datos resultantes implicaran respuestas contradictorias a la pregunta "Cul es el lugar CURSO actual de David Bustamante?". Una alternativa 2NF a este diseo representara la misma informacin en dos tablas:
ALUMNOS ALUMNO David Bustamante Toms Alarcn Miguel Farfn CURSO Dcimo Primero de Bachillerato Segundo de Bachillerato

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

46

UNIDAD 2 Lenguaje de Consultas SQL


CLUBES ALUMNO David Bustamante David Bustamante David Bustamante Toms Alarcn Humberto Lpez Humberto Lpez Miguel Farfn CLUB Ftbol Ajedrez Msica Bsquet Ajedrez Judo Msica

Las anomalas de actualizacin no pueden ocurrir en estas tablas, las cuales estn en 2NF. Sin embargo, no todas las tablas 2NF estn libres de anomalas de actualizacin. Un ejemplo de una tabla 2NF que sufre de anomalas de actualizacin es:
Campeones Intercolegiales DEPORTE Ftbol Bsquet Vley Ftbol Bsquet AO 2008 2008 2009 2009 2009 COLEGIO Benigno Malo Tcnico Salesiano La Salle Tcnico Salesiano Benigno Malo DIRECCIN COLEGIO Av. Solano 2-58 Av. Don Bosco 2-47 Av. Solano 2-277 Av. Don Bosco 2-47 Av. Solano 2-58

Aunque el COLEGIO y la DIRECCIN DEL COLEGIO del campen estn determinadas por una clave completa {DEPORTE, AO} y no son partes de ella, particularmente las combinaciones COLEGIO/DIRECCIN DEL COLEGIO del campen son mostradas redundantemente en mltiples registros. Este problema es tratado por la tercera forma normal (3NF).

5.6 Tercera Forma Normal (3FN)


La tabla se encuentra en 3FN si es 2FN y cada atributo que no forma parte de ninguna clave, depende directamente y no transitivamente, de la clave primaria. La tercera forma normal (3NF) es una forma normal usada en la normalizacin de bases de datos. La 3NF fue definida originalmente por E.F. Codd en 1971. La definicin de Codd indica que una tabla est en 3NF si y solo si las dos condiciones siguientes se mantienen:

La tabla est en la segunda forma normal (2NF) Ningn atributo no-primario de la tabla es dependiente

transitivamente en una clave candidata


Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

47

UNIDAD 2 Lenguaje de Consultas SQL Un atributo no-primario es un atributo que no pertenece a ninguna clave candidato. Una dependencia transitiva es una dependencia funcional X Z en la cual Z no es inmediatamente dependiente de X, pero s de un tercer conjunto de atributos Y, que a su vez depende de X. Es decir, X Z por virtud de X Y y Y Z. Una formulacin alternativa de la definicin de Codd, dada por Carlo Zaniolo17 en 1982, es sta: Una tabla est en 3NF si y solo si, para cada una de sus dependencias funcionales X A, por lo menos una de las condiciones siguientes se mantiene:

X contiene A, X es una superclave, A es un atributo primario (es decir, A est contenido dentro de una clave candidato)

La definicin de Zaniolo tiene la ventaja de dar un claro sentido de la diferencia entre la 3NF y la ms rigurosa forma normal de Boyce-Codd (BCNF). La BCNF simplemente elimina la tercera alternativa ("A es un atributo primario"). Ejemplo: Una tabla 2NF que falla en satisfacer los requisitos de la 3NF es:
Campeones Intercolegiales DEPORTE Ftbol Bsquet Vley Ftbol Bsquet AO 2008 2008 2009 2009 2009 COLEGIO Benigno Malo Tcnico Salesiano La Salle Tcnico Salesiano Benigno Malo DIRECCIN COLEGIO Av. Solano 2-58 Av. Don Bosco 2-47 Av. Solano 2-277 Av. Don Bosco 2-47 Av. Solano 2-58

La violacin de la 3NF ocurre porque el atributo no primario DIRECCIN COLEGIO es dependiente transitivamente de {DEPORTE, AO} va el atributo no primario COLEGIO. El hecho de que la DIRECCIN DEL COLEGIO del campen es funcionalmente dependiente en el COLEGIO hace la tabla vulnerable a inconsistencias lgicas, pues no hay nada que impida al mismo

17

Carlo Zaniolo: Naci en Vicenza, Italia. Es un estudioso de los sistemas de bases de datos relacionales con uso para internet.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

48

UNIDAD 2 Lenguaje de Consultas SQL COLEGIO ser mostrado con diferentes DIRECCIN DE COLEGIO en diversos registros. Para expresar los mismos hechos sin violar la 3NF, es necesario dividir la tabla en dos:
Campeones Intercolegiales DEPORTE Ftbol Bsquet Vley Ftbol Bsquet AO 2008 2008 2009 2009 2009 COLEGIO Benigno Malo Tcnico Salesiano La Salle Tcnico Salesiano Benigno Malo

Colegios COLEGIO Benigno Malo Tcnico Salesiano La Salle DIRECCIN COLEGIO Av. Solano 2-58 Av. Don Bosco 2-47 Av. Solano 2-277

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

49

UNIDAD 2
Lenguaje de Consultas SQL

SGBD
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

50

UNIDAD 2 Lenguaje de Consultas SQL

U UN NI ID DA AD D2 2
Tema: Lenguaje de consultas SQL 1. Introduccin Terica 1.1 Qu es el lenguaje de consultas SQL?
El lenguaje de consulta estructurado (SQL18) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalizacin hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI19) no nos servir para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI ser interpretable por cualquier motor de datos.

1.2 Breve Historia


La historia de SQL empieza en 1974 con la definicin, por parte de Donald Chamberlin20 y de otras personas que trabajaban en los laboratorios de investigacin de IBM21, de un lenguaje para la especificacin de las caractersticas de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implement en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisin del lenguaje (SEQUEL/2), que a partir de ese momento cambi de nombre por motivos legales, convirtindose en SQL. El prototipo (System R), basado en este lenguaje, se adopt y utiliz internamente en IBM y lo
18

SQL: De las siglas en ingles Structure Query Language que traducido al espaol significa Lenguaje estructurado de consultas 19 ANSI: De las siglas en ingls American National Standards Institute que traducido al espaol significa Instituto Nacional de Normalizacin Estadounidense es una organizacin que administra y coordina la normalizacin en los Estados Unidos. 20 Donald Chamberlin: Cientfico americano nacido en 1944, es uno de los principales creadores del SQL original junto a Raymond Boyce. 21 IBM: De las siglas en ingls International Business Machines es una empresa multinacional que fabrica y comercializa herramientas, programas y servicios relacionados a la informtica, tiene su sede en New York y est constituido desde el 15 de junio de 1911, pero lleva operando desde 1888.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

51

UNIDAD 2 Lenguaje de Consultas SQL adoptaron algunos de sus clientes elegidos. Gracias al xito de este sistema, que no estaba todava comercializado, tambin otras compaas empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenz a entregar sus productos relacionales y en 1983 empez a vender DB2. En el curso de los aos ochenta, numerosas compaas (por ejemplo Oracle y Sysbase, slo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estndar industrial de hecho por lo que respecta a las bases de datos relacionales. En 1986, el ANSI adopt SQL (sustancialmente adopt el dialecto SQL de IBM) como estndar para los lenguajes relacionales y en 1987 se transform en estndar ISO22. Esta versin del estndar va con el nombre de SQL/86. En los aos siguientes, ste ha sufrido diversas revisiones que han conducido primero a la versin SQL/89 y, posteriormente, a la actual SQL/92. El hecho de tener un estndar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en l. Desde el punto de vista prctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos slo el corazn del lenguaje SQL (el as llamado Entry level o al mximo el Intermediate level), extendindolo de manera individual segn la propia visin que cada cual tenga del mundo de las bases de datos. Actualmente, est en marcha un proceso de revisin del lenguaje por parte de los comits ANSI e ISO, que debera terminar en la definicin de lo que en este momento se conoce como SQL 2008. Las caractersticas principales de esta nueva encarnacin de SQL deberan ser el uso de la clusula ORDER BY fuera de las definiciones de los cursores, incluye los disparadores del tipo INSTEAD OF. Aade la sentencia TRUNCATE.

22

ISO: Es la Organizacin Internacional para la estandarizacin, nacida en 1947, es el organismo encargado de promover el desarrollo de normas internacionales de fabricacin, comercio y comunicacin para todas las ramas industriales a excepcin de la elctrica y la electrnica.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

52

UNIDAD 2 Lenguaje de Consultas SQL

1.3 Componentes del SQL


SQL es un lenguaje estandarizado de base de datos, el cual nos permite realizar tablas y obtener datos de ella de manera muy sencilla. Para exponer ms claramente los conceptos se realizaran ejemplo sobre relaciones que se crearan aqu para entender mejor como funciona SQL. Cuando aqu nos refiramos a relacin estamos hablando ms concretamente a la tabla de datos en s, y sus atributos sern los campos de la tabla. Como ejemplo la siguiente relacin (tabla) la llamaremos ALUMNO y sus atributos (campos) son nombre, apellido y cdula.
ALUMNO ALUMNO 1 2 3 4 5 6 7 8 9 10 NOMBRE Martin Pablo Roberto Esteban Rubn Sandro Medardo Sal Bruno Juan APELLIDO Martnez Martnez Snchez Guerrn Alemn Brito Abril Mogrovejo Mndez Serrano CDIGO 5988 5699 6401 8064 8975 3669 6224 9656 8765 8845

SQL es un lenguaje que consta de varias partes

Lenguaje de definicin de datos (DDL-Data Definition Language): Es el encargado de la definicin de bases de datos, tablas, vistas e ndices entre otros. Son comandos propios de ste lenguaje: CREATE TABLE, CREATE INDEX, CREATE VIEW, CREATE SYNONYM.

Lenguaje

de

manipulacin

de

datos

interactivos

(DML-Data

Manipulation Language), cuya misin es la manipulacin de datos. A travs de l podemos seleccionar, insertar, eliminar y actualizar datos. Es la parte que ms frecuentemente utilizaremos ya que con ellas se construyen las consultas. Son comandos propios de ste lenguaje: SELECT, UPDATE, INSERT, INSERT INTO, DELETE FROM.

Lenguaje

de

Control

de

datos

(DDL-Data

Control

Language):

encargado de la seguridad de la base de datos, en todo lo referente


Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

53

UNIDAD 2 Lenguaje de Consultas SQL al control de accesos y privilegios entre los usuarios. Son comandos propios de ste lenguaje: GRANT, REVOKE.

2. Estructura bsica
La estructura bsica de una expresin para consulta SQL consta de tres clusulas:
SELECT FROM WHERE

La clusula SELECT se usa para listar los atributos que se desean en el resultado de una consulta. La clusula FROM lista las relaciones que se van a examinar en la evaluacin de la expresin La clusula WHERE consta de un predicado23 que implica atributos de las relaciones que aparecen en la clusula FROM. Una consulta bsica en SQL tiene la forma:
SELECT A1, A2... An FROM r1, r2... rn WHERE P

Donde: Ai = atributo (Campo de la tabla) ri = relacin (Tabla ) P = predicado (condicin) Ejemplo: Seleccionar todos los nombres de los alumnos que tengan el apellido MARTNEZ de la tabla ALUMNOS.
SELECT nombre FROM alumno WHERE apellido = Martnez

El resultado es:

23

Predicado: Es la condicin que debe cumplir la clusula WHERE.


Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

54

UNIDAD 2 Lenguaje de Consultas SQL


NOMBRE Martin Pablo

El resultado de una consulta es por supuesto otra relacin. Si se omite la clusula WHERE, el predicado P es verdadero. La lista A1, A2,..., An puede sustituirse por un asterisco (*) para seleccionar todos los atributos de todas las relaciones que aparecen en la clusula FROM, aunque no es conveniente elegir esta ltima opcin salvo que sea necesario pues desperdiciamos mucho tiempo en obtenerlo

3. Alias
Es posible renombrar los atributos y las relaciones, a veces por

conveniencia y otras veces por ser necesario, para esto usamos la clausula AS como en el siguiente ejemplo.
SELECT P.nombre AS [PRIMER NOMBRE] FROM alumno P WHERE apellido = Martnez
PRIMER NOMBRE Martin Pablo

En este ejemplo cabe destacar un par de cosas. Cuando nos referimos a un atributo como es el caso de nombre, podemos referirnos a este usando la relacin (o el alias en este ejemplo) a la que pertenece el atributo seguido de un punto seguido del atributo <P.nombre>, a veces esta notacin ser necesaria para eliminar ambigedades. Los corchetes los usamos cuando usamos espacios en blancos o el caratr (-) en el nombre de atributo o alias. Usar alias en los atributos nos permite cambiar el nombre de los atributos de la respuesta a la consulta. Cuando asociamos un alias con una relacin decimos que creamos una variable de tupla. Estas variables de tuplas se definen en la clusula FROM despus del nombre de la relacin. En las consultas que contienen subconsultas, se aplica una regla de mbito a las variables de tupla. En una subconsulta est permitido usar solo
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

55

UNIDAD 2 Lenguaje de Consultas SQL variables de tupla definidas en la misma subconsulta o en cualquier consulta que tenga la subconsulta.

4. Tipos de datos
SQL admite una variada gama de tipos de datos para el tratamiento de la informacin contenida en las tablas, los tipos de datos pueden ser numricos (con o sin decimales), alfanumricos, de fecha o booleanos(si o no).Segn el gestor de base de datos que estemos utilizando los tipos de datos varan, pero se reducen bsicamente a los expuestos inmediatamente, aunque en la actualidad casi todos los gestores de bases de datos soportan un nuevo tipo, el BLOB (Binary Large Object), que es un tipo de datos especial destinado a almacenar archivos, imgenes ... Dependiendo de cada gestor de bases de datos el nombre que se da a cada uno de estos tipos puede variar. Bsicamente tenemos los siguientes tipos de datos.
NUMRICOS
Integer Numeric(n.m) Decimal(n,m) Float

ALFANUMRICOS
char(n) varchar(n,m) -

FECHA
Date DateTime -

LGICO
Bit -

BLOB
Image Text -

5. Predicados y conectores
Los conectores lgicos en SQL son:

AND OR NOT

La lgica de estos conectores es igual que en cualquier lenguaje de programacin y sirven para unir predicados. Las operaciones aritmticas en SQL son:

+ (Suma) - (Resta) * (Multiplicacin) / (Divisin)


Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

56

UNIDAD 2 Lenguaje de Consultas SQL Tambin incluye el operador de comparacin BETWEEN, que se utiliza para valores comprendidos. Ejemplo: Encontrar todos los nombres y cdigos de los alumnos cuyos cdigos sean mayor que 6 mil y menor a 9 mil. Una solucin sera utilizando el conector lgico AND
SELECT nombre, cdigo FROM alumno WHERE (cdigo > 6000) AND (cdigo<9000)

Otra solucin sera utilizando el operador BETWEEN


SELECT nombre, cdigo FROM alumno WHERE cdigo BETWEEN 6000 AND 9000

El resultado sera:
NOMBRE Roberto Esteban Rubn Medardo Bruno Juan CDIGO 6401 8064 8975 6224 8765 8845

Anlogamente podemos usar el operador de comparacin NOT BETWEEN. SQL tambin incluye un operador de seleccin para comparaciones de cadena de caracteres. Los modelos se describen usando los caracteres especiales o tambin conocidos como caracteres comodn: El carcter (%) es igual a cualquier subcadena El operador (_) es igual a cualquier caracter Estos modelos se expresan usando el operador de comparacin LIKE. Un error muy frecuente es tratar de utilizar los modelos mediante el operador de igualdad (=) lo cual es un error de sintaxis. Ejemplo: encontrar los nombres que comiencen con la letra p o el nombre tenga exactamente 6 caracteres de la relacin alumno.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

57

UNIDAD 2 Lenguaje de Consultas SQL


SELECT nombre FROM alumno WHERE (nombre LIKE "P%") OR (nombre LIKE "_ _ _ _ _ _")

El resultado sera:
NOMBRE Martin Pablo Sandro

Anlogamente podemos buscar desigualdades usando el operador de comparacin NOT LIKE.

6. Tuplas duplicadas
Los lenguajes de consulta formales se basan en la nocin matemtica de relacin como un conjunto. Por ello nunca aparecen tuplas duplicadas en las relaciones. En la prctica la eliminacin de duplicados lleva bastante tiempo. Por lo tanto SQL permite duplicados en las relaciones. As pues en las consultas se listaran todas las tuplas inclusive las repetidas. En aquellos casos en los que queremos forzar la eliminacin de duplicados insertamos la palabra clave Ejemplo: Listar todos los apellidos no repetidos de la relacin persona
SELECT DISTINCT apellido FROM alumno

El resultado sera:
APELLIDO Martnez Snchez Guerrn Alemn Brito Abril Mogrovejo Mndez Serrano

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

58

UNIDAD 2 Lenguaje de Consultas SQL Si observamos la tabla original de la relacin alumno veremos que el apellido Martnez apareca dos veces, pero debido al uso de DISTINCT en la consulta la relacin respuesta solo lista un solo Martnez.

7. Operaciones de conjunto.
SQL incluye las operaciones de conjuntos UNION, INTERSECT, MINUS, que operan sobre relaciones y corresponden a las operaciones del lgebra unin, interseccin y resta de conjuntos respectivamente. Para realizar esta operacin de conjuntos debemos tener sumo cuidado que las relaciones tengan las mismas estructuras. Incorporemos ahora una nueva relacin, llamada jugadores que representa las personas que juegan al ftbol, sus atributos sern DNI, puesto y nmero_camiseta. Supongamos que esta nueva tabla est conformada de la siguiente manera:
JUGADOR JUGADORES 1 2 3 4 CDIGO 5988 5699 9656 9872 PUESTO DELANTERO MEDIO ARQUERO DEFENSA NMERO_CAMISETA 9 5 1 3

Ejemplo: Obtener todos los nombres de la relacin persona cuyos apellidos sean Martnez o Serrano.
SELECT nombre FROM alumno WHERE apellido = "Martnez" UNION SELECT nombre FROM alumno WHERE apellido = "Serrano"

El resultado sera:
NOMBRE Martin Pablo Juan

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

59

UNIDAD 2 Lenguaje de Consultas SQL Ejemplo: Obtener todos los cdigos de los que juegan al ftbol y, adems, estn en la lista de la relacin persona:
SELECT cdigo FROM alumno INTERSECT SELECT cdigo FROM jugador

Y el resultado sera:
CDIGO 5988 5699 8845

Por omisin, la operacin de unin elimina las tuplas duplicadas. Para retener duplicados se debe escribir UNION ALL en lugar de UNION.

7.1 Pertenencia a un conjunto


El conector IN prueba si se es miembro de un conjunto, donde el conjunto es una coleccin de valores producidos en lo general por una clusula SELECT. Anlogamente el conector NOT IN prueba la no pertenencia al conjunto Ejemplo: Encontrar los nombres de los estudiantes que juegan al ftbol y, adems, se encuentran en la relacin alumno
SELECT nombre, apellido FROM alumno WHERE cdigo IN (SELECT cdigo FROM jugadores)

El resultado sera:
NOMBRE Martin Pablo Juan APELLIDO Martnez Martnez Serrano

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

60

UNIDAD 2 Lenguaje de Consultas SQL Es posible probar la pertenencia de una relacin arbitraria SQL usa la notacin de elementos <v1, v2,..., vn> para representar una tupla de elementos de n que contiene los valores v1, v2,...,vn.

7.2 Comparacin de conjuntos


En conjuntos la frase << mayor que algn >> se representa en SQL por (>SOME), tambin podra entenderse esto como << mayor que el menor de >>, su sintaxis es igual que la del conector IN. SQL tambin permite las comparaciones (>SOME), (=SOME) (>=SOME), (<=SOME) y (<>SOME). Tambin existe la construccin (>ALL), que corresponde a la frase << mayor que todos >>. Al igual que el operador SOME, puede escribirse (>ALL), (=ALL), (>=ALL), (<=ALL) y (<>ALL). En ocasiones podramos querer comparar conjuntos para determinar si un conjunto contiene los miembros de algn otro conjunto. Tales comparaciones se hacen usando las construcciones CONTAINS y NOT CONTAINS.

8. Pruebas para relaciones vacas


La construccin EXISTS devuelve el valor TRUE si la subconsulta del argumento no est vaca, y la construccin NOT EXISTS devuelve TRUE si la consulta es vaca. Ejemplo: encontrar todos los nombres y apellidos de la relacin persona si es que en la relacin jugadores existe un jugador con el nmero de cdigo 8055.
SELECT nombre, apellido FROM alumno WHERE EXISTS (SELECT cdigo FROM jugadores WHERE cdigo = 8055)

Como el cdigo= 8055 no existe en la relacin jugadores, la condicin es FALSE y por lo tanto la respuesta es vaca.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

61

UNIDAD 2 Lenguaje de Consultas SQL

9. Ordenacin de la presentacin de tuplas


SQL ofrece al usuario cierto control sobre el orden en el que se va a presentar las tuplas en una relacin. La clusula ORDER BY hace que las tupla en el resultado d una consulta en un orden especfico. Por omisin SQL lista los elementos en orden ascendente. Para especificar el tipo de ordenacin, podemos especificar DESC para orden descendente o ASC para orden ascendente. Tambin es posible ordenar los resultados por ms de una atributo Ejemplo: encontrar todos los nombres y apellido de la relacin alumno y ordenar los resultados por apellido y nombre en forma descendente
SELECT apellido, nombre FROM alumno ORDER BY apellido DESC, nombre DESC

El resultado sera:
APELLIDO NOMBRE Serrano Snchez Mogrovejo Mndez Martnez Martnez Guerrn Brito Alemn Abril Juan Roberto Sal Bruno Pablo Martin Esteban Sandro Rubn Medardo

10.

Funciones de agregacin

SQL ofrece la posibilidad de calcular funciones en grupos de tuplas usando la clusula GROUP BY, tambin incluye funciones para calcular

Promedios AVG Mnimo MIN Mximo MAX Total SUM

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

62

UNIDAD 2 Lenguaje de Consultas SQL

Contar COUNT

Para los prximos ejemplos incorporamos una nueva relacin llamada PROFESIONALES que representara los jugadores profesionales de ftbol, sus atributos sern cdula, aos_profesional, club, valor_actual. Y los valores son los siguientes:
PROFESIONALES PROFESIONAL 1 2 3 4 5 CDULA AOS_ PROFESIONAL 5 2 3 CLUB LIGA DE QUITO LIGA DE QUITO DEPORTIVO CUENCA DEPORTIVO CUENCA DEPORTIVO CUENCA VALOR_ ACTUAL 100000 250000 1200000 650000 450000

0261259885 0225485699 0327126045 0426958644 0229120791

4 1

SELECT club, SUM(valor_actual) AS VALOR_TOTAL, COUNT(club) AS NRO_JUGADORES FROM profesionales GROUP BY club

El resultado sera:
CLUB LIGA DE QUITO DEPORTIVO CUENCA VALOR_TOTAL NRO_JUGADORES 2 3

250000,00 2300000,00

Ejemplo: Determinar por cada club cual es el valor_actual del jugador ms caro de la relacin PROFESIONALES
SELECT club, MAX(valor_actual) AS JUG_MAS_CARO FROM profesionales GROUP BY club El resultado sera:
CLUB LIGA DE QUITO DEPORTIVO CUENCA JUGADOR_MAS_CARO

250000 1200000,00

Hay ocasiones en la que los duplicados deben eliminarse antes de calcular una agregacin. Cuando queremos eliminar los duplicados del clculo usamos la palabra clave DISTINCT antepuesto al atributo de agregacin que queremos calcular, como por ejemplo COUNT (DISTINCT club).

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

63

UNIDAD 2 Lenguaje de Consultas SQL Hay ocasiones en las que es til declara condiciones que se aplican a los grupos ms que a las tuplas. Para esto usamos la clusula HAVING de SQL. Ejemplo: Determinar por cada club cual es el valor_actual del jugador ms caro, pero con la condicin de que este sea mayor a 10000 de la relacin PROFESIONALES.
SELECT club, MAX(valor_actual) AS JUG_MAS_CARO FROM profesionales GROUP BY club HAVING MAX(valor_actual) > 10000

CLUB DEPORTIVO CUENCA

JUGADOR_MAS_CARO

1200000,00

Si en la misma consulta aparece una clusula WHERE y una clusula HAVING, primero se aplica el predicado de la clusula WHERE, las tupla que satisfacen el predicado WHERE son colocadas en grupos por la clusula GROUP BY. Despus se aplica la clusula HAVING a cada grupo.

11.

Modificacin de la base de datos

11.1 Eliminacin
Una solicitud de eliminacin se expresa casi de igual forma que una consulta. Podemos suprimir solamente tuplas completas, no podemos suprimir valores solo de atributos.
DELETE FROM r WHERE P

Donde P presenta un predicado y r representa una relacin. Las tuplas t en r para las cuales P(t) es verdadero, son eliminadas de r. Si omitimos la clusula WHERE se eliminan todas las tuplas de la relacin r (un buen sistema debera buscar confirmacin del usuario antes de ejecutar una accin tan devastadora) Ejemplo: Eliminar todas las tuplas de la relacin alumno en donde apellido sea igual a Brito

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

64

UNIDAD 2 Lenguaje de Consultas SQL


DELETE FROM alumno WHERE apellido = "Brito"
DELETED 1 NOMBRE Sandro APELLIDO Brito CDIGO 3669

11.2 Insercin
Para insertar datos en una relacin, especificamos una tupla que se va a insertar o escribimos una consulta cuyo resultado es un conjunto de tuplas que se van a insertar. La insercin de tuplas la realizamos mediante las sentencias:
INSERT INTO r1 VALUES (v1, v2,..., v)

Ejemplo: Insertar una tupla con los mismos valores de la tupla eliminada en el ejemplo anterior en la relacin alumno.
INSERT INTO alumno VALUES ("Sandro","Brito",3669)

11.3 Actualizaciones
En ciertas ocasiones podemos desear cambiar los valores de una tupla sin cambiar todos los valores en dicha tupla. Para este propsito usamos la sentencia:
UPDATE r1 SET A1 = V1, A2 = V2,...,An = Vn WHERE P

Donde r1 es la relacin Ai el atributo a modificar Vi el valor que se le asignara a Ai y P es el predicado. Ejemplo: En la relacin jugador actualizar la posicin de los jugadores que posean la camiseta nmero 5 y asignarles la camiseta nmero 7.
UPDATE jugador SET nmero_camiseta = 7 WHERE nmero_camiseta = 5

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

65

UNIDAD 2 Lenguaje de Consultas SQL

11.4 Valores nulos


Es posible que para las tuplas insertadas se den valores nicamente a algunos atributos del esquema. El resto de los atributos son asignados a valores nulos representados por NULL. Para esto colocamos la palabra reservada NULL como valor del atributo. Ejemplo: Insertar en la relacin jugadores un jugador con cdula = 0122335631, puesto = defensor, y al cual aun no le han asignado un nmero_camiseta.
INSERT INTO jugador VALUES(0122335631,"Defensor", NULL)

12.

Definicin de datos

12.1 Creacin
Una relacin en SQL se define usando la orden CREATE TABLE r(A1 D1, A2 D3,...,An Dn) Donde r es el nombre de la relacin, cada Ai es el nombre de un atributo del esquema de la relacin r y Di es el tipo de dato de Ai. Una relacin recin creada est vaca. La orden INSERT puede usarse para cargar la relacin Ejemplo: crear la relacin lesionado con los atributos nombre, apellido ambos de tipo char y tiempo_inhabilit de tipo entero
CREATE TABLE lesionado ( nombre CHAR(20), apellido CHAR(20), tiempo_inhabilt INTEGER )

12.2 Eliminacin
Para eliminar una relacin usamos la orden DROP TABLE r, esta orden elimina toda la informacin sobre la relacin sacada de la base de datos, esta orden es ms fuerte que DELET FROM r ya que esta ultima elimina todas las tuplas pero no destruye la relacin, mientras que la primera s. Ejemplo: eliminar la relacin alumno
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

66

UNIDAD 2 Lenguaje de Consultas SQL


DROP TABLE alumno

12.3 Actualizacin
La orden ALTER TABLE se usa para aadir atributos a una relacin existente. A todas las tuplas en la relacin se les asigna NULL como valor de atributo. La sintaxis de ALTER TABLE es la siguiente:
ALTER TABLE r1 ADD A1 D1

Ejemplo: agregar los atributos de tipo char nombre y apellido a la relacin jugadores
ALTER TABLE jugador ADD nombre CHAR(20) ALTER TABLE jugador ADD apellido CHAR(20)

13.

Ejercicios Propuestos

Los ejercicios de sta tarea se refieren a una sola base de datos, que se compone de tres tablas: la tabla S, que representa a los proveedores; la tabla P, que representa a las partes, y la tabla SP, que representa los envos de partes hechos por los proveedores. La clave primaria de la tabla proveedor es S#, la clave primaria de la tabla partes es P#. Adems, supondremos que no pueden existir al mismo tiempo dos envos del mismo proveedor y de la misma parte, de modo que cada envo tiene una combinacin nica de nmero de proveedor/nmero de parte (es decir es la clave primaria combinada de la tabla SP).

S S# S1 S2 S3 S4 S5 SNOMBRE Salazar Jaimes Bernal Corona Aldana SITUACION 20 10 30 20 30 CIUDAD Londres Pars Pars Londres Atenas

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

67

UNIDAD 2 Lenguaje de Consultas SQL

P P# P1 P2 P3 P4 P5 P6 PNOMBRE Tuerca Perno Birlo Birlo Leva Engrane COLOR Rojo Verde Azul Rojo Azul Rojo PESO 12 17 17 14 12 19 CIUDAD Londres Pars Roma Londres Pars Londres

SP S# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4 P# P1 P2 P3 P4 P5 P6 P1 P2 P3 P2 P4 P5 CANT 300 200 400 200 100 100 300 400 200 200 300 400

Estos ejercicios sern realizados inicialmente en el aula y luego terminado en las casas:
1. Obtener el nmero y la situacin de todos los proveedores de Paris. 2. Obtener los nmeros de parte de todas las partes suministradas. 3. Obtener los nmeros de parte de todas las partes suministradas (sin 4. Obtener, para todas las partes, el nmero de parte y su peso en 5. Obtener los datos completos de todos los proveedores. 6. Obtener los nmeros de proveedores radicados en

valores repetidos).

gramos (los pesos de parte se dan el libras en la tabla P) situacin sea mayor que 20.

Paris cuya

7. Obtener los nmeros de proveedor y situacin de los proveedores

radicados en Paris, en orden descendente por situacin.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

68

UNIDAD 2 Lenguaje de Consultas SQL


8. Organizar el resultado de la pregunta 4 en orden ascendente por

nmero de parte dentro de un orden ascendente por peso en gramos. 9. Obtener todas las combinaciones de informacin de proveedores y partes tales que el proveedor y la parte en cuestin estn situados en la misma ciudad (es decir, estn cosituados; valga utilizar un trmino antiesttico pero cmodo) 10.Obtener todas las combinaciones de informacin de proveedor y parte donde la ciudad del proveedor siga a la ciudad de la parte en el orden alfabtico. 11.Obtener todas las combinaciones de informacin de proveedor y parte donde el proveedor y la parte en cuestin estn cosituadas, pero omitiendo a los proveedores cuya situacin sea 20. 12.Obtener todas las combinaciones de nmero de proveedor/nmero de parte tales que el proveedor y la parte estn cosituados. 13.Obtener todas las parejas de nombres de ciudad (sin parejas repetidas) tales que un proveedor situado en la primera ciudad suministre una parte almacenada en la segunda ciudad. Por ejemplo, el proveedor S1 suministra la parte P1; el proveedor S1 est situado en Londres, y la parte P1 se almacena en Londres; por tanto, (Londres, Londres) es una pareja de ciudades que debera aparecer en el resultado. 14.Obtener todas las parejas de nmeros de proveedor tales que los dos proveedores estn cosituados. 15.Obtener el nmero total de proveedores. 16.Obtener el nmero total de proveedores que suministran partes en la actualidad. 17.Obtener el nmero de envos de la parte P2. 18.Obtener la cantidad total suministrada de la parte P2. 19.Obtener para cada parte suministrada, el nmero de parte y la cantidad total enviada de esa parte. 20.Obtener los nmeros de todas las partes suministradas por ms de un proveedor. 21.Obtener todas las partes cuyos nombres comiencen con la letra B. 22.Obtener los nombres de los proveedores que suministran la parte P2. 23.Obtener los nombres de los proveedores que suministre por lo menos una parte roja. 24.Obtener los nmeros de los proveedores situados en la misma ciudad que el proveedor S1. 25.Obtener los nmeros de los proveedores cuya situacin sea menor que el valor mximo actual de situacin en la tabla S. 26.Obtener los nombres de proveedores que no suministren la parte P2. 27.Obtener los nombres de proveedores que suministren todas las partes. 28.Obtener los nmeros de los proveedores que suministran por lo menos todas las partes suministradas por el proveedor S2. 29.Obtener los nmeros de las partes que pesen mas de 16 libras, o sean suministradas por el proveedor S2 (o las dos cosas) 30.Cambiar a color amarillo el color de la parte P2, aumente su peso en 5 e indicar que su ciudad es desconocida (NULL).
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

69

UNIDAD 2 Lenguaje de Consultas SQL


31.Duplicar la situacin de todos los proveedores situados en Londres. 32.Cambiar el nmero de proveedor S2 a S9. 33.Eliminar el proveedor S5. 34.Eliminar todos los envos cuya cantidad sea mayor que 300. 35.Eliminar todos los embarques. 36.Eliminar todos los envos de los proveedores situados en Londres. 37.Aadir la parte P7 (ciudad: Atenas, peso:24, nombre y color

desconocido por ahora) a la tabla P. 38.Aadir la parte P8( nombre: cadena, color: rosa, peso:14, ciudad: Niza) a la tabla P. 39.Insertar un nuevo envio con nmero de proveedor S20, nmero de parte P20 y cantidad 100. 40.Para cada parte suministrada, obtener el nmero de parte y la cantidad total suministrada, y guardar el resultado en una nueva tabla de la base de datos (puede llamarle TEMP). 41.Para todas las parte rojas y azules tales que la cantidad total suministrada sea mayor o igual a 350 (excluyendo del total todos los envos cuyas cantidades sean menores o iguales a 200), obtener el nmero de parte, el peso en gramos, el color, y la cantidad mxima suministrada de esa parte; y clasificar el resultado en orden descendente por nmero de parte dentro de un orden ascendente segn esa cantidad mxima.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

70

UNIDAD 3
Access 2007

SGBD
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

71

UNIDAD 3 Microsoft Access 2007

U UN NI ID DA AD D3 3
Tema: Access 2007 1. Introduccin
Microsoft Access es un programa para la gestin de informacin. Permite disear las estructuras para almacenar la informacin y nos proporciona los medios para su introduccin y explotacin. La versin de Access que se va a presentar en sta unidad es la versin 2007 para Windows, en espaol. Microsoft Access 2007 es un sistema gestor de bases de datos relacionales (SGBDR). Microsoft Office Access 2007 incluye un conjunto de eficaces herramientas que permiten compartir informacin, realizar su seguimiento y elaborar informes en un entorno administrable. Con las nuevas funciones de diseo interactivo, la biblioteca de plantillas de seguimiento y la capacidad de trabajar con numerosos orgenes de datos, incluido Microsoft SQL Server, Office Access 2007 permite crear aplicaciones interesantes y funcionales sin que sean necesarios profundos conocimientos de bases de datos. Es posible crear y adaptar las aplicaciones y los informes a las necesidades profesionales cambiantes y, gracias a una nueva y mejorada integracin con Microsoft Windows SharePoint Services 3.0, Office Access 2007 le ayuda a compartir, administrar, auditar y realizar copias de seguridad de la informacin.

1.1 Estructura de ficheros de Access


Como se explica ms adelante en este documento, una base de datos consta de distintos objetos: tablas, ndices, consultas, relaciones, informes, formularios, etc. Todos los objetos de una base de datos se almacenan fsicamente en un slo fichero. Por ello en Access, se identifica una base de datos con el fichero en el que se almacena. Este fichero tiene la terminacin .accdb.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

72

UNIDAD 3 Microsoft Access 2007

2. Elementos bsicos de Access 2007 2.1 La pantalla inicial

Grfico 19 Pantalla Inicial de Access 2007

Cuando inicie Office Access 2007, la primera pantalla que aparece es la pgina de Introduccin a Microsoft Office Access, a menos que inicie Access haciendo doble clic en un archivo de base de datos especfico de Access, en cuyo caso se abre esa base de datos. La pgina Introduccin a Microsoft Office Access es el punto de partida a partir del cual se puede crear una nueva base de datos, abrir una base de datos existente o ver contenido destacado de Microsoft Office Online.

2.2 La interfaz
La nueva interfaz de usuario de Office Access 2007 incluye varios elementos que definen cmo se interacta con el producto. Estos nuevos elementos se eligieron para ayudar al usuario a controlar Access y encontrar ms rpidamente los comandos necesarios.

Grfico 20 Cinta de Opciones


Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

73

UNIDAD 3 Microsoft Access 2007 El elemento ms significativo de la nueva interfaz de usuario se denomina cinta de opciones, que es la cinta a la largo de la parte superior de la ventana del programa que contiene grupos de comandos. La cinta de opciones proporciona una ubicacin nica para los comandos y reemplaza fundamentalmente los mens y barras de herramientas. La cinta de opciones consta de fichas que combinan los comandos de manera significativa. En Office Access 2007, las principales fichas de la cinta de opciones son: Inicio, Crear, Datos externos y Herramientas de base de datos. Cada ficha contiene grupos de comandos relacionados y estos grupos incluyen algunos de los dems elementos de la nueva interfaz de usuario, como la galera, que es un nuevo tipo de control que presenta visualmente las opciones. Los principales elementos de la nueva interfaz de usuario de Office Access 2007 son: 1. Introduccin a Microsoft Office Access: La pgina que se muestra cuando se inicia Access desde el botn Inicio o un acceso directo de escritorio. 2. Cinta de opciones: Es el rea situada en la parte superior de la ventana del programa donde se pueden elegir los comandos. 3. Ficha de comandos: Comandos combinados de manera significativa. 4. Ficha de comandos contextual: Es una ficha de comandos que aparece segn el contexto, es decir, segn el objeto con el que se trabaje o la tarea que se est llevando a cabo. 5. Galera: Es un control que muestra visualmente una opcin de modo que se ven los resultados que se van a obtener. 6. Barra de herramientas de acceso rpido: Es una sola barra de herramientas estndar que aparece en la cinta de opciones y permite obtener acceso con un solo clic a los comandos ms usados, como Guardar y Deshacer. 7. Panel de exploracin: Es el rea situada a la izquierda de la ventana donde se muestran los objetos de la base de datos. El panel

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

74

UNIDAD 3 Microsoft Access 2007 de exploracin reemplaza la ventana Base de datos de las versiones anteriores de Access. 8. Documentos fichas. 9. Barra de estado: Es la barra situada en la parte inferior de la ventana del programa en la que se muestra la informacin de estado y que incluye botones que permiten cambiar la vista. 10. Minibarra de herramientas: Es un elemento que aparece de manera transparente encima del texto seleccionado para que se pueda aplicar fcilmente formato al texto. con fichas: Los formularios, tablas, consultas, informes, pginas y macros se muestran como documentos con

Grfico 21 Entorno de Access 2007

3. Crear, cerrar y abrir una base de datos 3.1 Crear una base de datos mediante una plantilla
Access incluye una gran variedad de plantillas que se pueden usar para acelerar el proceso de creacin de bases de datos. Una plantilla es una base de datos lista para usar que contiene todas las tablas, consultas24, formularios e informes necesarios para llevar a cabo una tarea especfica.
24

Consulta: pregunta sobre los datos almacenados en las tablas o solicitud para llevar a cabo una accin en los datos. Una consulta puede unir datos de varias tablas para servir como origen de datos de un formulario, informe o pgina de acceso a dato
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

75

UNIDAD 3 Microsoft Access 2007 Por ejemplo, hay plantillas que se pueden usar para realizar un seguimiento de problemas, administrar contactos o gastos. Algunas plantillas contienen varios registros de ejemplo que ayudan a mostrar su uso. Las plantillas de base de datos pueden usarse tal cual o pueden personalizarse de modo que se ajusten a las necesidades especficas del usuario.

3.2 Crear una base de datos en blanco


1. Inicie Access. En la pgina Introduccin a Microsoft Office Access, haga clic en Base de datos en blanco.

Grfico 22 Opcin Nueva base de datos en blanco

En el panel Base de datos en blanco, escriba un nombre de archivo [registro de notas] en el cuadro Nombre de archivo. Para cambiar la ubicacin del archivo, haga clic en Examinar ubicacin y, a continuacin, haga clic en Aceptar. 2. Haga clic en Crear. Access crea la base de datos con extensin ACCDB y, a continuacin, abre una tabla vaca (denominada Tabla1), para que puedas empezar a rellenar sus datos. ,

situado junto al cuadro Nombre de archivo, busque la nueva

Grfico 23 Tabla inicial de la base de datos

Como recordars una tabla es el elemento principal de cualquier base de datos ya que todos los dems objetos se crean a partir de stas. Si observas esta ventana, a la izquierda aparece el Panel de Exploracin, desde donde podremos seleccionar todos los objetos que sean creados dentro de la base de datos.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

76

UNIDAD 3 Microsoft Access 2007 En principio slo encontraremos el de Tabla1 pues es el que Access crear por defecto. Puedes ocultarlo haciendo clic en el botn Ocultar mostrar y de qu forma. .

Desplegando la cabecera del panel puedes seleccionar qu objetos

4. Crear tablas 4.1 Agregar una tabla


Puede agregar una nueva tabla a una base de datos existente mediante las herramientas del grupo Tablas en la ficha Crear.

Grfico 24 Grupo Tablas de la ficha Crear

Haga clic en Tabla para crear una tabla en blanco en la vista Hoja de datos. Puede usar la vista Hoja de datos para comenzar a escribir datos inmediatamente y para que Access cree la estructura de tabla, o bien, puede usar la Vista Diseo para crear primero la estructura de tabla y, a continuacin, cambiar a la vista Hoja de datos para escribir los datos. Independientemente de la vista en la que comience a trabajar, siempre puede cambiar a la otra vista mediante los botones Ver en la barra de estado de la ventana Access.

4.2 Insertar una tabla, empezando en la vista Hoja de datos


En la vista Hoja de datos, puede escribir los datos inmediatamente y dejar que Access cree la estructura de tabla en segundo plano. Los nombres de los campos se asignan por nmeros (Campo1, Campo2, etc.) y Access define el tipo de datos basndose en el tipo de los datos que se escriben. 1. En la ficha Crear, en el grupo Tablas, haga clic en Tabla. 2. Access crea la tabla y coloca el cursor en la primera celda vaca de la columna Agregar nuevo campo. 3. En la ficha Hoja de datos, en el grupo Campos y columnas, haga clic en Nuevo campo. 4. Access muestra el panel Plantillas de campos, que contiene una lista de los tipos de campos ms comunes. Si arrastra uno de estos
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

77

UNIDAD 3 Microsoft Access 2007 campos hasta la hoja de datos, Access agregar un campo con ese nombre y establecer sus propiedades en un valor apropiado para ese tipo de campo. Las propiedades se pueden cambiar ms adelante. Debe arrastrar el campo hasta el rea de la hoja de datos que contiene datos. Aparece una barra de insercin vertical, que muestra dnde se va a ubicar el campo. 5. Para agregar datos, comience a escribir en la primera celda vaca, o bien, pegue datos de otro origen tal y como se describe ms adelante.

Para cambiar el nombre de una columna (o campo), haga doble clic en su encabezado y escriba el nuevo nombre. Se recomienda asignar a cada campo un nombre significativo de modo que sepa lo que contiene cuando lo vea en el panel Lista de campos.

Para

mover

una

columna,

seleccinela

haciendo

clic

en

su

encabezado y, a continuacin, arrstrela hasta la ubicacin que desee. Tambin puede seleccionar varias columnas contiguas y arrastrarlas juntas hasta una nueva ubicacin.

4.3 Insertar una tabla, empezando en la vista Diseo


En la vista Diseo, cree primero la estructura de la nueva tabla. A continuacin, cambie a la vista Hoja de datos para escribir los datos, o bien, introduzca los datos con algn otro mtodo, como una operacin de pegar o anexar datos. En la ficha Crear, en el grupo Tablas, haga clic en Diseo de tabla. Este mtodo consiste en definir la estructura de la tabla, es decir, definir las distintas columnas que esta tendr y otras consideraciones como claves, etc... Otra forma rpida de llegar a la vista Diseo es seleccionando la vista desde la pestaa Hoja de datos, o haciendo clic en el botn de Vista de Diseo en la barra de estado:

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

78

UNIDAD 3 Microsoft Access 2007

Grfico 25 Como cambiar a la Vista Diseo

Aparecer la vista de Diseo de la tabla:

Grfico 26 Vista Diseo

En la pestaa tenemos el nombre de la tabla (como todava no hemos asignado un nombre a la tabla, Access le ha asignado un nombre por defecto Tabla1). A continuacin tenemos la rejilla donde definiremos las columnas que componen la tabla, se utiliza una lnea para cada columna, as en la primera lnea (fila) de la rejilla definiremos la primera columna de la tabla y as sucesivamente. En la parte inferior tenemos a la izquierda dos pestaas (General y Bsqueda) para definir propiedades del campo es decir caractersticas adicionales de la columna que estamos definiendo.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

79

UNIDAD 3 Microsoft Access 2007 Y a la derecha tenemos un recuadro con un texto que nos da algn tipo de ayuda sobre lo que tenemos que hacer, por ejemplo en este momento el cursor se encuentra en la primera fila de la rejilla en la columna Nombre del campo y en el recuadro inferior derecho Access nos indica que el nombre de un campo puede tener hasta 64 caracteres. Vamos rellenando la rejilla definiendo cada una de las columnas que compondr la tabla:

Grfico 27 Campos de la tabla Profesores

En la primera fila escribir el nombre del primer campo, al pulsar la tecla ENTER pasamos al tipo de datos, por defecto nos pone Texto como tipo de dato. Si queremos cambiar de tipo de datos, hacer clic sobre la flecha de la lista desplegable de la derecha y elegir otro tipo.

Grfico 28 Tipos de datos de los campos

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

80

UNIDAD 3 Microsoft Access 2007 Observa cmo una vez tengamos algn tipo de dato en la segunda columna, la parte inferior de la ventana, la correspondiente a Propiedades del campo se activa para poder indicar ms caractersticas del campo. A continuacin pulsar la tecla ENTER para ir a la tercera columna de la rejilla. Esta tercera columna no es obligatorio utilizarla ya que nicamente sirve para introducir un comentario, normalmente una descripcin del campo de forma que la persona que tenga que introducir datos en la tabla sepa qu debe escribir ya que este cometario aparecer en la barra de estado de la hoja de datos. Repetir el proceso hasta completar la definicin de todos los campos (columnas) de la tabla.

4.4 La clave principal o clave primaria


Antes de guardar la tabla tendremos que asignar una clave principal. Recuerda que la clave principal proporciona un valor nico para cada fila de la tabla y nos sirve de identificador de registros de forma que con esta clave podamos saber sin ningn tipo de equivocacin el registro al cual identifica. No podemos definir ms de una clave principal, pero podemos tener una clave principal compuesta por ms de un campo. Para asignar una clave principal a un campo, seguir los siguientes pasos: Hacer clic sobre el nombre del campo que ser clave principal. Hacer clic sobre el botn Clave principal en el marco Herramientas de la pestaa Diseo.

Grfico 29 Botn para agregar la clave principal

A la izquierda del nombre del campo aparecer una llave indicndonos que dicho campo es la clave principal de la tabla. Si queremos definir una clave principal compuesta (basada en varios campos), seleccionar los campos pulsando simultneamente la tecla CTRL y el campo a seleccionar y una vez seleccionados todos los campos hacer clic en el botn Clave principal. Importante: Recordar que un campo o combinacin de campos que forman la clave principal de una tabla no puede contener valores nulos y no
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

81

UNIDAD 3 Microsoft Access 2007 pueden haber dos filas en la tabla con el mismo valor en el campo/s clave principal. Cuando intentemos insertar una nueva fila con valores que infrinjan estas dos reglas, el sistema no nos deja crear la nueva fila y nos devuelve un error de este tipo:

Grfico 30 Error de clave

Tras agregar todos los campos, guarde la tabla: Puede comenzar a escribir datos en la tabla en cualquier momento. Para ello, cambie a la vista Hoja de datos, haga clic en la primera celda vaca y comience a escribir. Asimismo, puede pegar datos de otro origen tal y como se describe en la siguiente seccin. Si, tras escribir algunos datos, desea agregar uno o varios campos a la tabla, comience a escribir en la columna Agregar nuevo campo en la vista Hoja de datos, o bien, agregue los nuevos campos mediante los comandos del grupo Campos y columnas en la ficha Hoja de datos.

4.5 Importar datos de otro origen


Puede que haya recopilado datos en otro programa y desee importarlos a Access. O bien, puede que trabaje con personas que almacenan sus datos en otros programas y desee usar esos datos en Access. En ambos casos, Access permite importar con facilidad datos de otros programas. Se pueden importar datos desde una hoja de Excel, una tabla de otra base de datos de Access, una lista de SharePoint o diversos otros orgenes. El proceso vara ligeramente en funcin del origen, pero las siguientes instrucciones le sirven de punto de partida: 1. En la ficha Datos Externos, en el grupo Importar, haga clic en el comando correspondiente al tipo de archivo que va a importar.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

82

UNIDAD 3 Microsoft Access 2007

Grfico 31 Grupo Importar de la Ficha Datos Externos

En nuestro caso vamos a importar datos de una hoja de clculo de Excel haga clic en Excel. Si no aparece el tipo de programa correcto, haga clic en Ms. 2. En el cuadro de dilogo Obtener datos externos, haga clic en Examinar para ir al archivo de datos de origen [alumnos tcnico.xlsx], o bien, escriba la ruta de acceso completa al archivo de datos de origen en el cuadro Nombre de archivo. 3. Haga clic en la opcin deseada bajo Especifique cmo y dnde desea almacenar los datos en la base de datos actual. Puede crear una nueva tabla usando los datos importados, anexando los datos a una tabla existente o creando una tabla vinculada que mantenga un vnculo al origen de datos. 4. Haga clic en Aceptar. Access inicia el Asistente para importacin. Siga las instrucciones del Asistente para importacin. El procedimiento exacto depende de la opcin de importacin o vinculacin que haya elegido. En la ltima pgina del asistente, haga clic en Finalizar. Access preguntar si desea guardar los detalles de la operacin de importacin que acaba de finalizar.

5. Propiedades de los campos 5.1 Introduccin


Cada campo de una tabla dispone de una serie de caractersticas que proporcionan un control adicional sobre la forma de funcionar del campo. Las propiedades aparecen en la parte inferior izquierda de la vista Diseo de tabla cuando tenemos un campo seleccionado.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

83

UNIDAD 3 Microsoft Access 2007

Grfico 32 Propiedades de los campos

Las propiedades se agrupan en dos pestaas, la pestaa General donde indicamos las caractersticas generales del campo y la pestaa Bsqueda en la que podemos definir una lista de valores vlidos para el campo. Las propiedades de la pestaa General pueden cambiar para un tipo de dato u otro mientras que las propiedades de la pestaa Bsqueda cambian segn el tipo de control asociado al campo. Hay que tener en cuenta que si se modifican las propiedades de un campo despus de haber introducido datos en l se pueden perder estos datos introducidos. A continuacin explicaremos las propiedades de que disponemos segn los diferentes tipos de datos.

5.2 Tamao del campo

Para los campos Texto, esta propiedad determina el nmero mximo de caracteres que se pueden introducir en el campo. Siendo por defecto de 50 caracteres y valor mximo de 255.

Para los campos Numrico, las opciones son: Byte (equivalente a un carcter) para almacenar valores enteros entre 0 y 255. Entero para valores enteros comprendidos entre -32.768 y 32.767. Entero largo para valores enteros comprendidos entre 2.147.483.648 y 2.147.483.647. Simple para la introduccin de valores comprendidos entre 3,402823E38 y -1,401298E-45 para valores negativos, y entre 1,401298E-45 y 3,402823E38 para valores positivos.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

84

UNIDAD 3 Microsoft Access 2007 Doble para valores comprendidos entre -1,79769313486231E308 y 4,94065645841247E-324 positivos. Id. de rplica se utiliza para claves autonumricas en bases rplicas. Decimal para almacenar valores comprendidos entre -10^38-1 y 10^38-1 (si estamos en una base de datos .adp) y nmeros entre 10^28-1 y 10^28-1 (si estamos en una base de datos .accdb) Los campos Autonumrico son Entero largo. A los dems tipos de datos no se les puede especificar tamao. para valores negativos, y entre 1,79769313486231E308 y 4,94065645841247E-324 para valores

5.3 Formato del campo


Esta propiedad se utiliza para personalizar la forma de presentar los datos en pantalla o en un informe. Se puede establecer para todos los tipos de datos excepto el Objeto OLE y Autonumrico.

Para los campos Numrico y Moneda, las opciones son: Nmero general: presenta los nmeros tal como fueron introducidos. Moneda: presenta los valores introducidos con el separador de millares y el smbolo monetario asignado en Windows como puede ser . Euro: utiliza el formato de moneda, con el smbolo del euro. Fijo: presenta los valores sin separador de millares. Estndar: presenta los valores con separador de millares. Porcentaje: multiplica el valor por 100 y aade el signo de porcentaje (%). Cientfico: presenta el nmero con notacin cientfica.

Los campos Fecha/Hora tienen los siguientes formatos: Fecha general: si el valor es slo una fecha, no se muestra ninguna hora; si el valor es slo una hora, no se muestra ninguna fecha. Este valor es una combinacin de los valores de Fecha corta y Hora larga. Ejemplos: 3/4/93, 05:34:00 PM y 3/4/93 05:34:00 PM.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

85

UNIDAD 3 Microsoft Access 2007 Fecha larga: se visualiza la fecha con el da de la semana y el mes completo. Ejemplo: Lunes 21 de agosto de 2000. Fecha mediana: presenta el mes con los tres primeros caracteres. Ejemplo: 21-Ago-2000. Fecha corta: se presenta la fecha con dos dgitos para el da, mes y ao. Ejemplo: 01/08/00. El formato Fecha corta asume que las fechas comprendidas entre el 1/1/00 y el 31/12/29 son fechas comprendidas entre los aos 2000 y el 2029 y las fechas comprendidas entre el 1/1/30 y el 31/12/99 pertenecen al intervalo de aos entre 1930 y 1999. Hora larga: presenta la hora con el formato normal. Ejemplo: 17:35:20. Hora mediana: presenta la hora con formato PM o AM. Ejemplo: 5:35 PM. Hora corta presenta la hora sin los segundos. Ejemplo: 17:35.

Los campos S/No disponen de los formatos predefinidos S/No, Verdadero/Falso y Activado/Desactivado. S, Verdadero y Activado son equivalentes entre s, al igual que lo son No, Falso y Desactivado.

Los campos Texto y Memo no disponen de formatos predefinidos, para los campos Texto se tendran que crear formatos personalizados.

5.4 Lugares decimales


Esta propiedad nos permite indicar el nmero de decimales que queremos asignar a un tipo de dato Nmero o Moneda.

5.5 Mscara de entrada


Se utiliza la mscara de entrada para facilitar la entrada de datos y para controlar los valores que los usuarios pueden introducir. Por ejemplo, puedes crear una mscara de entrada para un campo Nmero de telfono que muestre exactamente cmo debe introducirse un nmero nuevo: (___) ___-____. Access dispone de un Asistente para mscaras de entradas que nos facilita el establecer esta propiedad, y al cual accederemos al hacer clic sobre el

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

86

UNIDAD 3 Microsoft Access 2007 botn que aparece a la derecha de la propiedad a modificar una vez activada dicha propiedad.

5.6 Ttulo
Se utiliza esta propiedad para indicar cmo queremos que se visualice la cabecera del campo. Por ejemplo, si un campo se llama Fnac e indicamos Fecha de nacimiento como valor en la propiedad Ttulo, en la cabecera del campo Fnac veremos Fecha de nacimiento.

5.7 Valor predeterminado


El valor predeterminado es el valor que se almacenar automticamente en el campo si no introducimos ningn valor. Se suele emplear cuando se sabe que un determinado campo va a tener la mayora de las veces el mismo valor, se utiliza esta propiedad para indicar o especificar cul va a ser ese valor y as que se introduzca automticamente en el campo a la hora de introducir los datos de la tabla. Por ejemplo si tenemos la tabla Alumnos con el campo Provincia y la mayora de clientes son de la provincia del Azuay, se puede introducir ese valor en la propiedad Valor predeterminado del campo Provincia y as a la hora de introducir los diferentes clientes, automticamente aparecer el valor Azuay y no lo tendremos que teclear. Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumrico.

5.8 Regla de validacin


Esta propiedad nos permite controlar la entrada de datos segn el criterio que se especifique. Hay que escribir el criterio que debe cumplir el valor introducido en el campo para que sea introducido correctamente. Por ejemplo si queremos que un valor introducido est comprendido entre 100 y 2000, se puede especificar en esta propiedad >=100 Y <=2000. Para formar la condicin puedes utilizar el generador de expresiones. Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumrico.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

87

UNIDAD 3 Microsoft Access 2007 Para ayudarnos a escribir la regla de validacin tenemos el generador de expresiones que se abre al hacer clic sobre el botn generar que aparece a la derecha de la propiedad cuando hacemos clic en ella.

5.9 Texto de validacin


En esta propiedad escribiremos el texto que queremos nos aparezca en pantalla si introducimos en un campo un valor que no cumple la regla de validacin especificada en la propiedad anterior. Debe ser un mensaje para que la persona que se equivoque a la hora de introducir los datos, sepa el porqu de su error y pueda solucionarlo. Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumrico.

5.10 Requerido
Si queremos que un campo se rellene obligatoriamente tendremos que asignar a esta propiedad el valor S, en caso contrario el valor ser el de No. Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumrico.

5.11 Permitir longitud cero


Los campos Memo y Texto cuentan con esta propiedad para controlar que no se puedan introducir valores de cadena que no contengan caracteres o estn vacos.

5.12 Indexado
Se utiliza esta propiedad para establecer un ndice de un solo campo. Los ndices hacen que las consultas basadas en los campos indexados sean ms rpidas, y tambin aceleran las operaciones de ordenacin y agrupacin. Por ejemplo, si buscas alumnos basndose en un campo llamado Apellidos, puedes crear un ndice sobre este campo para hacer ms rpida la bsqueda. Esta propiedad dispone de tres valores: No: Sin ndice. S (con duplicados): Cuando se asigna un ndice al campo y adems admite valores duplicados (dos filas con el mismo valor en el campo). S (sin duplicados): Cuando se asigna un ndice pero sin admitir valores duplicados.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

88

UNIDAD 3 Microsoft Access 2007

6. Las relaciones Uno de los objetivos de un buen diseo de base de datos es eliminar la redundancia de los datos (datos duplicados). Para lograr dicho objetivo, conviene desglosar los datos en muchas tablas basadas en temas para que cada hecho est representado slo una vez. A continuacin, se debe proporcionar a Microsoft Office Access 2007 los medios para recopilar de nuevo la informacin desglosada (esto se realiza colocando campos comunes en tablas que estn relacionadas). Sin embargo, para realizar este paso correctamente, primero deber comprender las relaciones existentes entre las tablas y, a continuacin, especificar dichas relaciones en la base de datos de Office Access 2007. Tras crear una tabla para cada tema en la base de datos, es preciso proporcionar a Office Access 2007 los medios para recopilar de nuevo esa informacin cuando sea necesario. Para ello, se colocan campos comunes en las tablas que estn relacionadas y se definen las relaciones entre las tablas. De ese modo, se pueden crear consultas, formularios e informes que muestren a la vez la informacin de varias tablas. Por ejemplo, el formulario que se muestra a continuacin incluye informacin recopilada de varias tablas:

Grfico 33 Formulario Notas

1. La informacin de este formulario procede de la tabla Alumnos. 2. ...la tabla Profesores.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

89

UNIDAD 3 Microsoft Access 2007 3. ...la tabla Materias 4. ...y la tabla Notas.

Siguiendo en el ejemplo anterior, los campos de las tablas deben coordinarse de modo que muestren informacin acerca del mismo estudiante. Esta coordinacin se lleva a cabo mediante las relaciones de tablas. Una relacin de tabla hace coincidir los datos de los campos clave (a menudo un campo con el mismo nombre en ambas tablas). En la mayora de los casos, estos campos coincidentes son la clave principal de una tabla, que proporciona un identificador nico para cada registro, y una clave externa de la otra tabla.

Grfico 34 Campos en comn entre las tablas Profesores y materias

Por ejemplo, los profesores pueden asociarse a las materias de los que son responsables mediante la creacin de una relacin de tabla entre los campos Identificacin de profesor en las tablas Profesor y Materias.
1. Id. de empleado aparece en ambas tablas; como clave principal ... 2. ... y como clave externa.

6.1 Tipos de relaciones de tabla


Existen tres tipos de relaciones de tabla. Una relacin uno a varios Considere una base de datos de seguimiento de pedidos que incluya una tabla Clientes y una tabla Pedidos. Un cliente puede realizar cualquier nmero de pedidos. Por lo tanto, para cualquier cliente representado en la tabla Clientes puede haber representados muchos pedidos en la tabla

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

90

UNIDAD 3 Microsoft Access 2007 Pedidos. Por consiguiente, la relacin entre la tabla Clientes y la tabla Pedidos es una relacin de uno a varios. Para representar una relacin de uno a varios en el diseo de la base de datos, tome la clave principal del lado "uno" de la relacin y agrguela como un campo o campos adicionales a la tabla en el lado "varios" de la relacin. Una relacin de varios a varios Considere la relacin entre una tabla Productos y una tabla Pedidos. Un solo pedido puede incluir varios productos. Por otro lado, un nico producto puede aparecer en muchos pedidos. Por tanto, para cada registro de la tabla Pedidos puede haber varios registros en la tabla Productos. Adems, para cada registro de la tabla Productos puede haber varios registros en la tabla Pedidos. Este tipo de relacin se denomina relacin de varios a varios porque para un producto puede haber varios pedidos, y para un pedido puede haber varios productos. Tenga en cuenta que para detectar las relaciones de varios a varios existentes entre las tablas, es importante que considere ambas partes de la relacin. Para representar una relacin de varios a varios, debe crear una tercera tabla, a menudo denominada tabla de unin, que divide la relacin de varios a varios en dos relaciones uno a varios. Debe insertar la clave principal de cada una de las dos tablas en la tercera. Como resultado, la tercera tabla registra cada ocurrencia, o instancia, de la relacin. Por ejemplo, la tabla Pedidos y la tabla Productos tienen una relacin varios a varios que se define mediante la creacin de dos relaciones uno a varios con la tabla Detalles de pedidos. Un pedido puede incluir muchos productos, y cada producto puede aparecer en muchos pedidos. Una relacin uno a uno En una relacin uno a uno, cada registro de la primera tabla slo puede tener un registro coincidente en la segunda tabla y viceversa. Este tipo de relacin no es comn porque, muy a menudo, la informacin relacionada de este modo se almacena en la misma tabla. Puede utilizar la relacin uno a uno para dividir una tabla con muchos campos, para aislar parte de una tabla por razones de seguridad o para almacenar informacin que slo se

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

91

UNIDAD 3 Microsoft Access 2007 aplica a un subconjunto de la tabla principal. Cuando identifique esta relacin, ambas tablas deben compartir un campo comn.

6.2 Descripcin de la integridad referencial


Al disear una base de datos, se divide la informacin en muchas tablas basadas en temas para minimizar la redundancia de los datos. A continuacin, se proporciona a Office Access 2007 los medios para recopilar de nuevo la informacin, colocando campos comunes en tablas relacionadas. Por ejemplo, para representar una relacin de uno a varios se toma la clave principal de la tabla "uno" y se agrega como un campo adicional a la tabla "varios". Para recopilar de nuevo los datos, Access toma el valor de la tabla "varios" y busca el valor correspondiente en la tabla "uno". De este modo los valores de la tabla "varios" hacen referencia a los valores correspondientes de la tabla "uno". Suponga que tiene una relacin de uno a varios entre las tablas Profesores y Materias y desea eliminar un profesor. Si el destinatario que desea quitar tiene materias en la tabla Materias, dichas materias quedarn "hurfanos" si elimina el registro Profesor. Las materias todava contendrn un cdigo de profesor, pero el cdigo ya no ser vlido, porque el registro al que hace referencia ya no existe. El propsito de la integridad referencial es evitar los registros hurfanos y mantener las referencias sincronizadas para que esta situacin hipottica no ocurra nunca. La integridad referencial se aplica habilitndola para una relacin de tabla. Una vez habilitada, Access rechazar todas las operaciones que infrinjan la integridad referencial de esa relacin de tabla. Esto significa que Access rechaza las actualizaciones que cambian el destino de una referencia, as como las eliminaciones que quitan el destino de una referencia. Sin embargo, es posible que tenga la necesidad perfectamente vlida de cambiar la clave principal de un profesor que tiene materias en la tabla Materias. Para tales casos, lo que realmente necesita es que Access actualice automticamente todas las filas afectadas como parte de una nica operacin. De ese modo, Access se asegura de que la actualizacin es completa y la base de datos no tiene un estado inconsistente con algunas

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

92

UNIDAD 3 Microsoft Access 2007 filas actualizadas y otras no. Por ello, Access incluye la opcin Eliminar en cascada los registros relacionados. Cuando se aplica la integridad referencial, se selecciona la opcin Actualizar en cascada los campos relacionados y, a continuacin, se actualiza una clave principal, Access actualiza automticamente todos los campos que hacen referencia a la clave principal. Tambin es posible que tenga la necesidad vlida de eliminar una fila y todos los registros relacionados; por ejemplo, un registro Profesor y todas las materias relacionadas de ese profesor. Por ello, Access incluye la opcin Eliminar en cascada los registros relacionados. Si aplica la integridad referencial y selecciona la opcin Actualizar en cascada los campos relacionados y, a continuacin, elimina un registro en la parte de la clave principal de la relacin, Access eliminar automticamente todos los campos que hagan referencia a la clave principal.

6.3 Crear una relacin.


Para crear relaciones en Access 2007 primero deberemos acceder a la ventana Relaciones deberemos hacer clic en el botn Relaciones que se encuentra en la pestaa Herramientas de base de datos.

Grfico 35 Botn Relaciones de la pestaa Herramientas de base de datos.

Aparecer el cuadro de dilogo Mostrar tabla de la derecha esperando indicarle las tablas que formarn parte de la relacin a crear.

Grfico 36 Cuadro de dilogo Mostrar Tablas

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

93

UNIDAD 3 Microsoft Access 2007 Seleccionar una de las tablas que pertenecen a la relacin haciendo clic sobre ella, aparecer dicha tabla remarcada. Hacer clic sobre el botn Agregar. Repetir los dos pasos anteriores hasta aadir todas las tablas de las relaciones a crear. Hacer clic sobre el botn Cerrar. Ahora aparecer la ventana Relaciones con las tablas aadidas en el paso anterior.

Grfico 37 Tablas agregadas a la ventana Relaciones

Para crear la relacin: Ir sobre el campo de relacin de la tabla principal (en nuestro caso CdigoProfesor de la tabla Profesores). Pulsar el botn izquierdo del ratn y mantenindolo pulsado arrastrar hasta el campo numero de la tabla secundaria (CdigoProfesor de la tabla Materias). Soltar el botn del ratn y aparecer el cuadro de dilogo Modificar relaciones siguiente:

Grfico 38 Cuadro de dilogo Mostrar Relaciones

En la parte superior deben estar los nombres de las dos tablas relacionadas (Profesores y Materias) y debajo de stos el nombre de los campos de relacin (cdigo y numero).
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

94

UNIDAD 3 Microsoft Access 2007 Observa en la parte inferior el Tipo de relacin que se asignar dependiendo de las caractersticas de los campos de relacin (en nuestro caso uno a varios). Activar el recuadro Exigir integridad referencial haciendo clic sobre ste. Si se desea, se puede activar las casillas Actualizar en cascada los campos relacionados y Eliminar en cascada los registros relacionados. Para terminar, hacer clic sobre el botn Crear y se crear la relacin y sta aparecer en la ventana Relaciones.

Grfico 39 Relacin una a varios de la tabla Profesores con la tabla Alumnos

6.4 Aadir tablas a la ventana Relaciones.


Si ya hemos creado una relacin y queremos crear otra pero no se dispone de la tabla en la ventana Relaciones debemos aadir la tabla a la ventana: Primero nos situamos en la ventana Relaciones haciendo clic en el botn Relaciones en la pestaa Herramientas de base de datos. Para aadir la tabla hacer clic sobre el botn Mostrar tabla en la pestaa Diseo.

Grfico 40 Botn Mostrar tabla de la pestaa Diseo

Aparecer el cuadro de dilogo Mostrar tablas estudiado en el apartado anterior. Aadir las tablas necesarias y cerrar el cuadro de dilogo.

6.5 Quitar tablas de la ventana Relaciones.


Si queremos eliminar una tabla de la ventana Relaciones: Primero nos situamos en la ventana Relaciones haciendo clic en el botn Relaciones en la pestaa Herramientas de base de datos.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

95

UNIDAD 3 Microsoft Access 2007 Despus podemos elegir entre: Hacer clic con el botn derecho sobre la tabla y elegir la opcin Ocultar tabla del men contextual que aparecer.

Grfico 41 Men Contextual de una tabla en la ventana Relaciones

Hacer clic sobre la tabla para seleccionarla y hacer clic en el botn Ocultar tabla en la pestaa Diseo, ver Grfico 40.

6.6 Modificar relaciones.


Posicionarse en la ventana Relaciones y elegir entre estas dos formas: Hacer clic con el botn derecho sobre la relacin a modificar y elegir la opcin Modificar relacin... del men contextual que aparecer,

Grfico 42 Men Contextual de una relacin

O bien, hacer clic sobre la relacin a modificar y hacer clic en el botn Modificar relaciones que encontrars en la pestaa Diseo de la banda de opciones. Se abrir el cuadro de dilogo Modificar relaciones estudiado anteriormente, realizar los cambios deseados y hacer clic sobre el botn Aceptar.

6.7 Eliminar relaciones.


Si lo que queremos es borrar la relacin podemos: Hacer clic con el botn derecho sobre la relacin a borrar y elegir la opcin Eliminar del men contextual del Grfico 41, o bien, hacer clic con el botn izquierdo sobre la relacin, la relacin quedar seleccionada, y a continuacin pulsar la tecla DEL o SUPR. La relacin queda eliminada de la ventana y de la base de datos.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

96

UNIDAD 3 Microsoft Access 2007

6.8 Mostrar relaciones directas


Esta opcin nos permite visualizar en la ventana Relaciones todas las relaciones basadas en una tabla determinada para ello: Posicionarse en la ventana Relaciones y elegir entre: Hacer clic con el botn derecho sobre la tabla y elegir la opcin Mostrar directas del men contextual que aparecer (ver grfico 41), o hacer clic sobre la tabla para seleccionarla y hacer clic en el botn Mostrar relaciones directas en la pestaa Diseo (Ver grfico 40). Aparecern todas las relaciones asociadas a la tabla y todas las tablas que intervienen en estas relaciones.

7. Las consultas
Una consulta de seleccin se puede usar para crear subconjuntos de datos que sirvan para responder a preguntas especficas. Tambin se puede usar para suministrar datos a otros objetos de base de datos. Una vez creada una consulta de seleccin, se puede usar siempre que sea necesario. En este tema, se explica cmo crear consultas de seleccin sencillas que busquen datos en una tabla nica. Tambin se explica cmo mejorar la consulta definiendo criterios para los registros y agregando valores calculados. En esta unidad veremos cmo crear consultas y manejarlas para la edicin de registros de tablas creadas con Access 2007.

7.1 Tipos de consultas


Las consultas son los objetos de una base de datos que permiten recuperar datos de una tabla, modificarlos e incluso almacenar el resultado en otra tabla. Existen varios tipos de consultas: Consultas de seleccin. Son las consultas que extraen o nos muestran datos. Muestran aquellos datos de una tabla que cumplen los criterios especificados. Una vez obtenido el resultado podremos consultar los datos para modificarlos (esto se podr hacer o no segn la consulta). Una consulta de seleccin genera una tabla lgica (se llama lgica porque no est fsicamente en el disco duro sino en la memoria del ordenador y cada vez que se abre se vuelve a calcular).

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

97

UNIDAD 3 Microsoft Access 2007 Consultas de accin. Son consultas que realizan cambios a los registros. Existen varios tipos de consultas de accin, de eliminacin, de actualizacin, de datos anexados y de creacin de tablas. Consultas especficas de SQL. Son consultas que no se pueden definir desde la cuadrcula QBE de Access sino que se tienen que definir directamente en SQL. Recuerde que las consultas tienen la siguiente sintaxis:

Parte

Descripcin Uno de los siguientes predicados: ALL, DISTINCT, DISTINCTROW o TOP. Utilice el predicado para restringir el nmero de registros devueltos. Si no se especifica ninguno, el predeterminado es ALL.

predicado

Especifica que se han seleccionado todos los campos de la tabla o tablas especificadas.

tabla

Nombre de la tabla que contiene los campos de los cuales se seleccionan los registros.

campo1, campo2

Nombres de los campos que contienen los datos que desea recuperar. Si incluye ms de un campo, se recuperan en el orden en que se han enumerado.

alias1, alias2

Nombres que se utilizan como encabezados de columna en tabla en vez de los nombres de columna originales.

expresindet abla basededatos externa

Nombre de la tabla o tablas que contienen los datos que se desean recuperar. Nombre de la base de datos que contiene las tablas de expresin de tabla si stas no estn en la base de datos actual.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

98

UNIDAD 3 Microsoft Access 2007

Por ejemplo para visualizar cdigo y nombres de los estudiantes del Tercero de bachillerato, paralelo E1, de la tabla Alumnos. La consulta sera:

Grfico 43 Consulta SQL en Access

Puedes comprobar si tus ejercicios de SQL practicados en clases, estn mostrando los datos pedidos.

7.2 Crear una consulta


Para crear una consulta, seguir los siguientes pasos: Abrir la base de datos donde se encuentra la consulta a crear. Hacer clic en el botn Diseo de Consulta en la pestaa Crear:

Grfico 44 Botn diseo de consulta de la pestaa Crear

Al entrar en la Vista Diseo de consulta nos pide primero las tablas de las que la consulta sacar los datos con un cuadro de dilogo parecido al siguiente:

Grfico 45 Cuadro de dilogo Mostrar tabla para consultas

Seleccionar la tabla de la que queremos sacar datos y hacer clic sobre el botn Agregar. Si queremos sacar datos de varias tablas agregar de la

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

99

UNIDAD 3 Microsoft Access 2007 misma forma las dems tablas. Finalmente hacer clic sobre el botn Cerrar y aparecer la ventana Vista Diseo de consultas.

Grfico 46 Ventana Vista Diseo de Consultas

Si observas la pantalla, en la parte superior tenemos la zona de tablas donde aparecen las tablas aadidas con sus correspondientes campos, y en la parte inferior denominada cuadrcula QBE definimos la consulta. Cada columna de la cuadrcula QBE corresponde a un campo. Cada fila tiene un propsito que detallamos brevemente a continuacin, ms adelante iremos profundizando en la explicacin: Campo: ah ponemos el campo a utilizar que en la mayora de los casos ser el campo a visualizar, puede ser el nombre de un campo de la tabla y tambin puede ser un campo calculado. Tabla: nombre de la tabla de la que sacamos el campo. Nos ser til cuando definamos consultas basadas en varias tablas. Orden: sirve para ordenar las filas del resultado. Mostrar: si la casilla de verificacin aparece desactivada la columna no aparecer en el resultado, se suele desactivar cuando queremos utilizar el campo para definir la consulta pero no queremos que aparezca en el resultado. Por ejemplo si queremos que la consulta nos saque todos los alumnos de Valencia, necesitamos el campo Poblacin para seleccionar los alumnos pero no queremos que aparezca la poblacin en el resultado ya que todos son de la misma poblacin. Criterios: sirve para especificar un criterio de bsqueda. Un criterio de bsqueda es una condicin que deben cumplir los registros que aparecern
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

100

UNIDAD 3 Microsoft Access 2007 en el resultado de la consulta. Por lo tanto est formado por una condicin o varias condiciones unidas por los operadores Y (AND) y O (OR). O: esta fila y las siguientes se utilizan para combinar condiciones.

7.3 Aadir campos


Para aadir campos a la cuadrcula podemos Hacer doble clic sobre el nombre del campo que aparece en la zona de tablas, este se colocar en la primera columna libre de la cuadrcula. Hacer clic sobre el nombre del campo que aparece en la zona de tablas y sin soltar el botn del ratn arrastrar el campo sobre la cuadrcula, soltar el botn cuando estemos sobre la columna delante de la cual queremos dejar el campo que estamos aadiendo. Hacer clic sobre la fila Campo: de una columna vaca de la rejilla, aparecer a la derecha la flecha para desplegar la lista de todos los campos de todas las tablas que aparecen en la zona de tablas. Si tenemos muchos campos y varias tablas podemos reducir la lista seleccionando primero una tabla en la fila Tabla, as en la lista desplegable slo aparecern campos de la tabla seleccionada. Tambin podemos teclear directamente el nombre del campo en la fila Campo: de una columna vaca de la cuadrcula. Si queremos que todos los campos de la tabla aparezcan en el resultado de la consulta podemos utilizar el asterisco * (sinnimo de 'todos los campos').

7.4 Encabezados de columna


Podemos cambiar el encabezado de las columnas del resultado de la consulta. Normalmente aparece en el encabezado de la columna el nombre de la columna, si queremos cambiar ese encabezado lo indicamos en la fila Campo: escribindolo delante del nombre del campo y seguido de dos puntos ( : ). Se suele utilizar sobre todo para los campos calculados. En la consulta que aparece ms arriba tienes el ejemplo de la segunda columna, esta tendr en el encabezado Mes_Factura y en la columna se visualizar el mes de la fecha de la factura (tenemos un campo calculado que utiliza la funcin mes( ), funcin que obtiene el mes de una fecha).

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

101

UNIDAD 3 Microsoft Access 2007

7.5 Ejecutar la consulta


Podemos ejecutar una consulta desde la ventana Diseo de consulta o bien desde el Panel de Exploracin. Desde el Panel de Exploracin, haciendo doble clic sobre su nombre. Desde la vista diseo de la consulta, haciendo clic sobre el botn Ejecutar de la pestaa Diseo:

Grfico 47 Botn Ejecutar Consultas

Cuando estamos visualizando el resultado de una consulta, lo que vemos realmente es la parte de la tabla que cumple los criterios especificados, por lo tanto si modificamos algn dato de los que aparecen en la consulta estaremos modificando el dato en la tabla (excepto algunas consultas que no permiten esas modificaciones).

7.6 Modificar el diseo de una consulta


Si lo que queremos es modificar el diseo de una consulta, situarse en el Panel de Exploracin y hacer clic derecho sobre el nombre de la consulta. En el men contextual seleccionar Vista Diseo .

7.7 Ordenar las filas


Para ordenar las filas del resultado de la consulta, hacer clic sobre la fila Orden: del campo por el cual queremos ordenar las filas, hacer clic sobre la flecha que aparecer para desplegar la lista y elegir el tipo de ordenacin. Puede ser Ascendente en este caso se ordenarn de menor a mayor si el campo es numrico, por orden alfabtico si el campo es de tipo texto, de anterior a posterior si el campo es de tipo fecha/hora, etc..., o bien puede ser Descendente en orden inverso. Podemos ordenar tambin por varios campos para ello rellenar la fila Orden: de todas las columnas por las que queremos ordenar. En este caso se ordenan las filas por la primera columna de ordenacin, para un mismo valor de la primera columna, se ordenan por la segunda columna, y as sucesivamente.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

102

UNIDAD 3 Microsoft Access 2007 El orden de las columnas de ordenacin es el que aparece en la cuadrcula, es decir si queremos ordenar por ejemplo por provincia y dentro de la misma provincia por localidad tenemos que tener en la cuadrcula primero la columna provincia y despus la columna localidad. El tipo de ordenacin es independiente por lo que se puede utilizar una ordenacin distinta para cada columna. Por ejemplo ascendente por la primera columna y dentro de la primera columna, descendente por la segunda columna.

7.8 Seleccionar filas


Para seleccionar filas tenemos que indicar un criterio de bsqueda, un criterio de bsqueda es una condicin que debern cumplir todas las filas que aparezcan en el resultado de la consulta. Normalmente la condicin estar basada en un campo de la tabla por ejemplo para seleccionar los alumnos de Azuay la condicin sera poblacin = "Azuay". Para escribir esta condicin en la cuadrcula tenemos que tener en una de las columnas de la cuadrcula el campo poblacion y en esa columna ponemos en la fila Criterios: el resto de la condicin o sea ="Azuay". Cuando la condicin es una igualdad no es necesario poner el signo =, podemos poner directamente el valor Valencia en la fila Criterios: ya que si no ponemos operador asume por defecto el =. Tampoco es necesario poner las comillas, las aadir l por defecto. Siempre que se encuentra un texto lo encierra entre comillas. Si en la fila Criterios: queremos poner un nombre de campo en vez de un valor (para comparar dos campos entre s) tenemos que encerrar el nombre del campo entre corchetes [ ]. Por ejemplo queremos poner la condicin precio = coste en la que precio y coste son dos campos, tenemos que poner en la fila criterios: [coste], si no ponemos los corchetes aadir las comillas y entender Precio = "coste", precio igual al valor Coste no al contenido del campo Coste. Para indicar varias condiciones se emplean los operadores Y y O. En un criterio de bsqueda en el que las condiciones estn unidas por el operador Y, para que el registro aparezca se deben cumplir todas las

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

103

UNIDAD 3 Microsoft Access 2007 condiciones. Por ejemplo precio > 100 y precio < 1200, aparecen los registros cuyo precio est comprendido entre 101 y 1199. En un criterio de bsqueda en el que las condiciones estn unidas por el operador O, el registro aparecer en el resultado de la consulta si cumple al menos una de las condiciones.

Grfico 48 Varias condiciones en una consulta

Todas las condiciones establecidas en la misma fila de la cuadrcula quedan unidas por el operador Y. En el ejemplo siguiente seran alumnos de Azuay cuya fecha de nacimiento est comprendida entre el 1/1/60 y el 31/12/69. Del mismo modo pasa con cada una de las filas o: Si queremos que las condiciones queden unidas por el operador O tenemos que colocarlas en filas distintas (utilizando las filas O: y siguientes). Por ejemplo, si en la cuadrcula QBE tenemos especificado los siguientes criterios:

Grfico 49 Condiciones en diferentes filas

Visualizaremos de la tabla Alumnado los campos Apellidos, Nombre, Poblacin y Fecha nacimiento, los alumnos aparecern ordenados por Apellidos pero nicamente aparecern aquellos que sean de Valencia y hayan nacido entre el 1/1/60 y el 31/12/69, o bien aquellos de Alicante sea cual sea su fecha de nacimiento. Access no diferencia entre maysculas y minsculas a la hora de realizar la bsqueda de registros.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

104

UNIDAD 3 Microsoft Access 2007

7.9 Consultas con parmetros


A menudo, en una consulta necesitamos utilizar un valor que no es conocido en ese momento sino que queremos que lo introduzca el usuario cuando se ejecute la consulta. Por ejemplo, queremos hacer una consulta para obtener los alumnos de una determinada Poblacin, la poblacin la introducir el usuario cuando Access se lo pida. En este caso necesitamos utilizar en nuestra consulta un parmetro. Un parmetro funciona de forma parecida a un campo de tabla, pero el valor que almacena lo introduce el usuario cuando se ejecuta la consulta. En una consulta cuando utilizamos un nombre de campo que no est en el origen de datos, Access considera este campo como un parmetro y cuando se ejecuta la consulta nos pide Introducir el valor del parmetro mediante un cuadro de dilogo como este:

Grfico 50 Cuadro de dilogo para introducir valores

7.10 Las consultas multitabla


Una consulta multitabla es una consulta que obtiene datos de varias tablas por lo que deber contener en la zona de tablas de la ventana Diseo las distintas tablas de donde obtiene esos datos. Para aadir una tabla a la zona de tablas (una vez en la ventana Diseo de consulta) haremos clic en el botn Mostrar tabla de la pestaa Diseo:

Grfico 51 Botn Mostrar Tabla

Si las tablas no estn relacionadas o no tienen campos con el mismo nombre, la consulta obtiene la concatenacin de todas las filas de la primera tabla con todas las filas de la segunda tabla, si tenemos una tercera tabla concatenar cada una de las filas obtenidas en el primer paso con cada una
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

105

UNIDAD 3 Microsoft Access 2007 de las filas de la tercera tabla, y as sucesivamente. Vemos que no interesa basar la consulta en muchas tablas ya que el resultado de la concatenacin puede alcanzar dimensiones gigantescas. Adems, normalmente la mayora de las concatenaciones obtenidas no nos sirven y entonces tenemos que aadir algn criterio de bsqueda para seleccionar las filas que al final nos interesan. Por ejemplo me puede interesar datos de la tabla Alumnado y de la tabla Cursos porque quiero sacar una lista con los datos de cada alumno y nombre del curso al que pertenece, en este caso no me interesa unir el alumno con cada uno de los cursos sino unirlo al curso que tiene asignado; en este caso tenemos que combinar las dos tablas.

Grfico 52 Combinar tablas

Combinamos dos tablas por un campo (o varios) de unin de la misma forma que relacionamos tablas en la ventana Relaciones arrastrando el campo de unin de una de las tablas sobre el campo de unin de la otra tabla. De hecho si aadimos a la zona de tablas relacionadas, estas aparecern automticamente combinadas en la zona de tablas de la ventana Diseo de Consulta. Tambin se combinan automticamente tablas que tengan un campo con el mismo nombre en las dos tablas aunque no exista una relacin definidad entre ellas. Cuando dos tablas estn combinadas en una consulta, para cada fila de una de las tablas Access busca directamente en la otra tabla las filas que tienen el mismo valor en el campo de unin, con lo cual se emparejan slo las filas que luego aparecen en el resultado y la consulta es ms eficiente.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

106

UNIDAD 3 Microsoft Access 2007 Cuando las tablas estn combinadas aparecen en la ventana diseo de la consulta como podemos apreciar en el grfico 51.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

107

UNIDAD 4
MySQL

SGBD
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

108

UNIDAD 4 MySQL

U UN NI ID DA AD D4 4
Tema: MySQL 1. Introduccin
El software MySQL proporciona un servidor de base de datos SQL (Structured Query Language) muy rpido, multi-threaded, multiusuario y robusto. El servidor MySQL est diseado para entornos de produccin crticos, con alta carga de trabajo as como para integrarse en software para ser distribuido. Adems el software MySQL tiene una doble licencia: los usuarios pueden elegir entre usar el software MySQL como un producto Open Source bajo los trminos de la licencia GNU General Public License o pueden adquirir una licencia comercial estndar de MySQL.

2. Caractersticas
MySQL es un sistema de gestin de bases de datos. MySQL es un sistema de gestin de bases de datos relacionales. MySQL software es Open Source. El servidor de base de datos MySQL es muy rpido, fiable y fcil de usar. MySQL Server trabaja en entornos cliente/servidor o incrustados Una gran cantidad de software de contribuciones est disponible para MySQL.

3. Historia
Se empez a utilizar con la intencin de usar mSQL (el nombre original) para conectar a nuestras tablas utilizando nuestras propias rutinas rpidas de bajo nivel (ISAM). Sin embargo y tras algunas pruebas, llegamos a la conclusin que mSQL no era lo suficientemente rpido o flexible para nuestras necesidades. Esto provoc la creacin de una nueva interfaz SQL para nuestra base de datos pero casi con la misma interfaz API que mSQL. Esta API fue diseada para permitir cdigo de terceras partes que fue escrito para poder usarse con mSQL para ser fcilmente portado para el uso con MySQL. La derivacin del nombre MySQL no est clara. Nuestro directorio base y un gran nmero de nuestras bibliotecas y herramientas han tenido el prefijo "my" por ms de 10 aos. Sin embargo, la hija del co-fundador Monty
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

109

UNIDAD 4 MySQL Widenius tambin se llama My. Cul de los dos di su nombre a MySQL todava es un misterio, incluso para nosotros. El nombre del delfn de MySQL (nuestro logo) es "Sakila", que fue elegido por los fundadores de MySQL AB de una gran lista de nombres sugerida por los usuarios en el concurso "Name the Dolphin" (ponle nombre al delfn). El nombre ganador fue enviado por Ambrose Twebaze, un desarrollador de software Open Source de Swaziland, frica. Segn Ambrose, el nombre femenino de Sakila tiene sus races en SiSwate, el idioma local de Swaziland. Sakila tambin es el nombre de una ciudad en Arusha, Tanzania.

4. Esquema de denominaciones
El esquema de denominaciones de MySQL emplea para las entregas nombres consistentes en tres nmeros y un sufijo; por ejemplo, mysql5.0.9-beta. Los nmeros dentro del nombre de la entrega se interpretan como sigue: El primer nmero (5) es la versin principal y describe el formato de fichero. Todas las entregas de la versin 5 comparten el mismo formato para sus ficheros. El segundo nmero (0) es el nivel de entrega. En conjunto, la versin principal y el nivel de entrega constituyen el nmero de la serie. El tercer nmero (9) es el nmero de versin dentro de la serie. Se incrementa para cada nueva entrega. Usualmente es deseable poseer la ltima versin dentro de la serie que se est usando. Para los cambios menores, el que se incrementa es el ltimo nmero en la denominacin de la versin. Cuando se adicionan caractersticas de importancia o aparecen incompatibilidades menores con versiones precedentes, se incrementa el segundo nmero. Cuando cambia el formato de los ficheros, se incrementa el primer nmero. Las denominaciones de las entregas tambin incluyen un sufijo para indicar el grado de estabilidad. Una entrega progresa a travs de un conjunto de sufijos a medida que mejora su estabilidad. Los posibles sufijos son: alpha indica que la entrega contiene caractersticas nuevas que no han sido plenamente probadas. Asimismo, en la seccin "Novedades" deberan estar documentados los errores conocidos, aunque usualmente no los hay.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

110

UNIDAD 4 MySQL Por lo general, en cada entrega alpha se implementan nuevos comandos y extensiones, y es la etapa donde puede producirse la mayor cantidad de cambios en el cdigo. Sin embargo, debido a las pruebas realizadas, no deberan existir errores conocidos. beta significa que la entrega est destinada a poseer sus caractersticas completas y que se prob todo el cdigo nuevo. No se agregan caractersticas de importancia, y no deberan existir errores crticos. Una versin cambia de alpha a beta cuando no se han descubierto errores fatales durante al menos un mes, y no hay planes de agregar caractersticas que pudieran comprometer la fiabilidad del cdigo existente. Todas las APIs, las estructuras visibles externamente y las columnas para comandos SQL no se modificarn en las futuras entregas, sean beta, candidatas, o de produccin. rc es una entrega candidata; o sea, una beta que ha estado funcionando un intervalo de tiempo y parece hacerlo bien. Solamente podran ser necesarias correcciones menores. (Una entrega candidata es formalmente conocida como una entrega gamma.) Si no hay un sufijo, significa que la versin se ha estado utilizando por un tiempo en diferentes sitios sin que se informaran errores crticos reproducibles, ms all de los especficos de una plataforma. Esto es lo que se llama una entrega de produccin (estable) o General Availability (GA).

5. Conformacin de la instalacin
Esta seccin describe la conformacin por defecto de los directorios creados por el instalador binario y por las distribuciones de cdigo fuente provistas por MySQL AB. En MySQL 5.0 para Windows, el directorio de instalacin por defecto es C:\Program Files\MySQL\MySQL Server 5.0. El directorio de instalacin contiene los siguientes subdirectorios:
DIRECTORIO Bin data docs examples CONTENIDO Programas cliente y el servidor mysqld Ficheros de registro (logs), bases de datos Documentacin Programas y scripts de ejemplo

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

111

UNIDAD 4 MySQL
include lib scripts share Ficheros de inclusin Bibliotecas Scripts de utilidades. Ficheros con mensajes de err

6. Comandos bsicos
Un comando normalmente consiste en una sentencia SQL seguida de punto y coma. (Hay excepciones donde el punto y coma puede omitirse. QUIT, mencionado anteriormente, es una de ellas. Luego conocer otras.) Cuando ingresa un comando, MySQL lo enva al servidor para ser ejecutado e imprime los resultados. A continuacin muestra de nuevo el prompt mysql> para informarle que est listo para otro comando.

Grfico 53 Prompt de MySQL

Mysql imprime los resultados de la consulta en forma tabulada (filas y columnas). La primera fila contiene etiquetas para las columnas. Las filas siguientes son los resultados de la consulta. Generalmente, el nombre de cada columna es el nombre del campo que trae desde la base de datos. Si est trayendo el valor de una expresin, en lugar del contenido de un campo o columna de una tabla (como en el ejemplo anterior), mysql etiqueta la columna usando el texto de la expresin. Mysql informa cuntas filas fueron devueltas y cunto tiempo le tom ejecutarse a la consulta, lo cual da una idea aproximada del rendimiento del servidor. Estos valores son imprecisos porque representan tiempo de reloj corriente (no tiempo de CPU), y adems porque estn afectados por factores como la carga del servidor o la latencia de red. (Para simplificar los ejemplos de este captulo, a partir de ahora no se mostrar la lnea rows in set.) Aqu tiene otra consulta que demuestra que mysql puede usarse como calculadora:
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

112

UNIDAD 4 MySQL

Grfico 54 Instruccin SELECT con operaciones matemticas bsicas en MySQL

No es necesario que un comando sea ingresado en una sola lnea, de ese modo, comandos extensos que requieren varias lneas no son un problema. mysql determina cuando una sentencia ha llegado a l final observando si termina en un punto y coma, no si se lleg al final de la lnea fsica. (En otras palabras, mysql acepta un formato libre para las entradas: recolecta lneas pero no las ejecuta hasta que encuentra el punto y coma.) Aqu tiene una sentencia de mltiples lneas:

Grfico 55 Sentencias con mltiples lneas

Observe en este ejemplo que el prompt cambia de mysql> a -> despus que se ha ingresado la primera lnea de una consulta de mltiples lneas. Esta es la forma en que mysql advierte que no se ha completado la sentencia y an espera por el resto. El prompt es un aliado, puesto que suministra informacin valiosa. Si se emplea, siempre se sabr lo que mysql est esperando. Si durante el ingreso de un comando decide que no quiere ejecutarlo, canclelo tipeando \c:

Grfico 56 Para cancelar un comando utilice /c

La siguiente tabla muestra cada uno de los indicadores que podr ver y sintetiza lo que dicen acerca del estado en que se encuentra mysql:
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

113

UNIDAD 4 MySQL
PROMPT mysql> -> '> SIGNIFICADO Listo para un nuevo comando. Esperando la siguiente lnea en un comando de mltiples lneas. Esperando la siguiente lnea, se encuentra abierta una cadena que comienza con apostrofo ('''). "> Esperando la siguiente lnea, se encuentra abierta una cadena que comienza con comillas dobles ('"'). `> Esperando la siguiente lnea, se encuentra abierta una cadena que comienza con tilde ('`'). /*> Esperando la siguiente lnea, se encuentra abierto un comentario que comienza con /*.

El prompt /*> fue introducido en la serie 5.0 a partir de MySQL 5.0.6.

7. Crear y utilizar una base de datos


Una vez que se sabe la forma de ingresar comandos, es el momento de acceder a una base de datos. Mediante la sentencia SHOW se encuentran las bases de datos que existen actualmente en el servidor:

Grfico 57 Sentencia SHOW DATABASES

Probablemente la lista obtenida sea distinta en su ordenador, pero es casi seguro que tendr las bases de datos mysql y test. La base de datos mysql es necesaria porque es la que describe los privilegios de acceso de los usuarios. La base de datos test se provee para que los usuarios hagan pruebas. Si la base de datos test existe, intente acceder a ella:

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

114

UNIDAD 4 MySQL

Grfico 58 Sentencia USE

Advierta que, al igual que QUIT, USE no necesita que ponga un punto y coma al final (aunque puede hacerlo si lo desea). La sentencia USE tiene otra particularidad: debe escribirse en una sola lnea.

8. Crear y seleccionar una base de datos


Si el administrador crea su base de datos en el mismo momento que le otorga privilegios, puede comenzar a utilizarla, de lo contrario necesitar crearla:

Grfico 59 sentencia CREATE DATABASE

En ambientes Unix, los nombres de las bases de datos son case sensitive (al contrario que las palabras clave), de modo que siempre debe referirse a su base de datos como colegio, y no Colegio, COLEGIO, o una variante similar. Esto tambin se aplica a los nombres de tablas. Esta restriccin no existe en Windows, aunque puede utilizar el mismo esquema de maysculas cuando se refiera a bases de datos y tablas en una consulta dada. Al crear una base de datos, sta no se selecciona para su uso, debe hacerlo explcitamente. Para convertir a colegio en la base de datos actual, use este comando:

Grfico 60 Cambio de una base de datos

Las bases de datos slo necesitan ser creadas una sola vez, pero deben ser seleccionadas cada vez que se inicia una sesin de mysql. Puede hacerse a travs del comando USE como se muestra en el ejemplo.

9. Creacin de tablas
La creacin de la base de datos ha sido una tarea sencilla, pero hasta ahora permanece vaca, como le muestra SHOW TABLES:
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

115

UNIDAD 4 MySQL

Grfico 61 Sentencia SHOW TABLES

La parte difcil es decidir cmo debera ser la estructura de su base de datos: qu tablas necesitar, y qu columnas habr en cada tabla. Esto se soluciona con un buen anlisis y diseo de su base de datos, para lo cual debe realizar el anlisis de requisitos, el diagrama entidad relacin, la normalizacin y finalmente los diccionarios de datos. Querr una tabla para contener un registro por cada estudiante. Esta tabla puede llamarse alumnos, y debera contener, como mnimo, los nombres de cada alumno. Dado que el nombre no es muy relevante por s mismo, tendra que tener ms informacin. Por ejemplo: el cdigo, la direccin, el curso, el paralelo y la fecha de nacimiento; tenga en cuenta que la clave primaria de sta tabla ser el campo CodigoAlumno.

Grfico 62 Sentencia CREATE TABLE

Si se desea visualizar la estructura de una tabla creada se puede utilizar la sentencia DESCRIBE:

Grfico 63 Sentencia DESCRIBE

Para crear una tabla la sintaxis sera:

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

116

UNIDAD 4 MySQL
CREATE TABLE [IF NOT EXISTS] nombre de la tabla ( Nombre_Campo_1 Tipo de dato del campo 1, Nombre_Campo_2 Tipo de dato del campo 2, .. [PRIMARY KEY (Nombre campo clave)], [ FOREIGN KEY (Nombre campo clave forneo) REFERENCES Nombre de la tabla padre (Nombre campo clave) [ON DELETE [RESTRICT | CASCADE | SET NULL | NO ACTION]] [ON UPDATE [RESTRICT | CASCADE | SET NULL | NO ACTION]] ] ) [Opciones de la tabla]

Para definir un campo la sintaxis completa es:


Nombre del campo Tipo de dato del campo [NOT NULL|NULL] [DEFAULT valor predeterminado] comentarios] [AUTO_INCREMENT] [PRIMARY KEY] [COMMENT

Los tipos de los campos pueden ser los siguientes:

Entre

las

principales

opciones

de

la

tabla

tenemos

el

tipo

de

almacenamiento {ENGINE|TYPE}. Un tipo es InnoDB, que dota a MySQL de un motor de almacenamiento transaccional con capacidades de commit(confirmacin), rollback (cancelacin) y recuperacin de fallas. Estas caractersticas incrementan el rendimiento y la capacidad de gestionar mltiples usuarios simultneos. InnoDB tambin soporta restricciones FOREIGN KEY. InnoDB se dise para obtener el mximo rendimiento al procesar grandes volmenes de datos.
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

117

UNIDAD 4 MySQL InnoDB rechaza cualquier operacin INSERT o UPDATE que intente crear un valor de clave fornea en una tabla hija sin un valor de clave candidata coincidente en la tabla padre. La accin que InnoDB lleva a cabo para cualquier operacin UPDATE o DELETE que intente actualizar o borrar un valor de clave candidata en la tabla padre que tenga filas coincidentes en la tabla hija depende de la accion referencial especificada utilizando las subclusulas ON UPDATE y ON DETETE en la clusula FOREIGN KEY. Cuando el usuario intenta borrar o actualizar una fila de una tabla padre, InnoDB soporta cinco acciones respecto a la accin a tomar: CASCADE: Borra o actualiza el registro en la tabla padre y automticamente borra o actualiza los registros coincidentes en la tabla hija. Tanto ON DELETE CASCADE como ON UPDATE CASCADE estn disponibles en MySQL 5.0. Entre dos tablas, no se deberan definir varias clusulas ON UPDATE CASCADE que acten en la misma columna en la tabla padre o hija. SET NULL: Borra o actualiza el registro en la tabla padre y establece en NULL la o las columnas de clave fornea en la tabla hija. Esto solamente es vlido si las columnas de clave fornea no han sido definidas como NOT NULL. MySQL 5.0 soporta tanto ON DELETE SET NULL como ON UPDATE SET NULL. NO ACTION: Significa ninguna accin en el sentido de que un intento de borrar o actualizar un valor de clave primaria no ser permitido si en la tabla referenciada hay una valor de clave fornea relacionado. En MySQL 5.0, InnoDB rechaza la operacin de eliminacin o actualizacin en la tabla padre. RESTRICT: Rechaza la operacin de eliminacin o actualizacin en la tabla padre. NO ACTION y RESTRICT son similares en tanto omiten la clusula ON DELETE u ON UPDATE. (Algunos sistemas de bases de datos tienen verificaciones diferidas o retrasadas, una de las cuales es NO ACTION. En MySQL, las restricciones de claves forneas se verifican inmediatamente, por eso, NO ACTION y RESTRICT son equivalentes.) Un ejemplo sencillo que relaciona tablas materias y profesores a travs de una clave fornea de una sola columna:

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

118

UNIDAD 4 MySQL

Grfico 64 Crear una tabla con una clave primaria

Grfico 65 Crear una tabla con una clave primaria y una clave fornea

Aqu, un ejemplo ms complejo, en el cual una tabla notas tiene claves forneas hacia otras dos tablas. Una de las claves forneas hace referencia a un ndice de la tabla materias. La otra hace referencia a un ndice de la tabla alumnos:

Grfico 66 Uso de claves combinadas en llaves forneas

10.

Cargando datos en una tabla

Despus de haber creado la tabla, ahora podemos incorporar algunos datos en ella, para lo cual haremos uso de las sentencias INSERT y LOAD DATA. Supongamos que los registros de nuestros estudiantes pueden ser descritos por los datos mostrados en la siguiente tabla.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

119

UNIDAD 4 MySQL
CDIGO NOMBRES DIRECCIN CURSO PARALELO FECHA DE

NACIMIENTO

1 2 3

Pedro Pedraza Marlon Martinez Ludovico Lujano

Las Alcabalas Los Alamos Luis Cordero

Octavo Decimo Noveno

A B C

1996-01-01 1998-01-02 1996-04-04

Debemos observar que MySQL espera recibir fechas en el formato YYYYMM-DD, que puede ser diferente a lo que nosotros estamos acostumbrados. Ya que estamos iniciando con una tabla vaca, la manera ms fcil de poblarla es crear un archivo de texto que contenga un registro por lnea para cada uno de nuestros estudiantes para que posteriormente carguemos el contenido del archivo en la tabla nicamente con una sentencia. Por tanto, debemos de crear un archivo de texto "DatosEstudiantes.txt" que contenga un registro por lnea con valores separados por tabuladores, cuidando que el orden de las columnas sea el mismo que utilizamos en la sentencia CREATE TABLE. Para valores que no conozcamos podemos usar valores nulos (NULL). Para representar estos valores en nuestro archivo debemos usar \N.

Grfico 67 Ingreso de datos utilizando el bloc de notas

Para cargar el contenido del archivo en la tabla mascotas, usaremos el siguiente comando:

Grfico 68 Sentencia LOAD DATA

La sentencia LOAD DATA nos permite especificar cul es el separador de columnas, y el separador de registros, por default el tabulador es el

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

120

UNIDAD 4 MySQL separador de columnas (campos), y el salto de lnea es el separador de registros, que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo "DatosEstudiantes.txt". Si lo que deseamos es aadir un registro a la vez, entonces debemos hacer uso de la sentencia INSERT. En la manera ms simple, debemos proporcionar un valor para cada columna en el orden en el cual fueron listados en la sentencia CREATE TABLE. Supongamos que se matricula un nuevo estudiante de nombre David Dvalos en el Noveno G, su direccin es Totoracocha y su fecha de nacimiento es desconocida. Podemos usar la sentencia INSERT para agregar su registro en nuestra base de datos.

Grfico 69 Sentencia INSERT INTO

Podemos comprobar realizando consultas SELECT.

Grfico 70 Sentencia SELECT

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

121

Bibliografa

B BI IB BL LI IO OG GR RA AF F A A
Referencias bibliogrficas [1] C. Batini, S. Ceri, S.B. Navathe (1994) Diseo Conceptual de Bases de Datos. Un enfoque de entidades-interrelaciones Addison-Wesley / Daz de Santos [2] T. Connolly, C. Begg, A. Strachan (2000) Database Systems. A Practical Approach to Design, Implementation and Management Addison-Wesley Segunda Edicin en 1998. [3] C.J. Date (2001) Introduccin a los Sistemas de Bases de Datos Volumen I, Sptima Edicin Addison-Wesley Iberoamericana Sexta Edicin en 2001. [4] R. Elmasri, S.B. Navathe (2002) Sistemas de Bases de Datos. Conceptos fundamentales Segunda Edicin Addison-Wesley Iberoamericana. Tercera Edicin en 1999 (en ingls, por Addison-Wesley) [5] M.J. Folk, B. Zoellick (1992) File Structures. Segunda Edicin AddisonWesley [6] G.W. Hansen, J.V. Hansen (1999) Diseo y Administracin de Bases de Datos Segunda Edicin Prentice Hall [7] M.J. Hernndez (1997) Database Design for Mere Mortals AddisonWesley Developers Press [8] Elmasri y Navathe (2002) Fundamentos de Sistemas de Bases de Datos, 3 edicin, 2002 (Captulo 7). [9] Garcia-Molina, Ullman y Widom: Database systems: the complete book. Prentice-Hall (Captulo 3). [10] A. de Miguel, P. Martnez, E. Castro, J.M. Cavero, D. Cuadra, A. Iglesias y C. Nieto(1999) Diseo de Bases de Datos: Problemas Resueltos. Captulo 1. Referencias URL www.maestrosdelweb.com www.tripod.lycos.com www.mysql-hispano.org www.programacion.com
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

122

Bibliografa www.desarrolloweb.com www.quegrande.org www.sql.org www.aulaclic.com www.msdn2.microsoft.com.es www.unsl.edu.er www.fciencias.unam.mx www.fdi.ucm.edu.mx www.uazuay.edu.ec www.cepeu.edu.py www.wikypedia.com Otras Referencias Archivo Base de datos.pdf proporcionado por el Ing. Freddy vila del rea de Informtica del CTS.

Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas

123

También podría gustarte