P. 1
sgbd

sgbd

|Views: 2.831|Likes:
Publicado porwishoman

More info:

Published by: wishoman on Feb 03, 2011
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/23/2013

pdf

text

original

Sections

  • Sistemas de Bases de Datos
  • Tema: Sistemas de Bases de Datos
  • 1.1 Dato e Información
  • 1.2 ¿Qué es una base de datos?
  • 1.3 El sistema de gestión de la base de datos
  • Gráfico 1 Sistema gestor de bases de datos
  • 1.4 Objetivos de los sistemas de bases de datos
  • 2. Planificación y diseño de bases de datos
  • 2.1 Introducción Teórica
  • 2.2 Ciclo de vida de las Aplicaciones de bases de datos
  • 2.3 Diseño de bases de datos
  • 3. Diseño conceptual de bases de datos utilizando el Modelo
  • 3.1 Modelos de datos
  • 3.2 El modelo E-R
  • Gráfico 2 representación gráfica de una entidad
  • Gráfico 3 Representación gráfica de los atributos en una Entidad
  • Gráfico 4 Relación entre dos entidades
  • Gráfico 5 Relación de grado 3 o ternaria
  • 3.3 Generalización, especialización y Agregación
  • Gráfico 9 Ejemplos de Generalización
  • Gráfico 10 Ejemplo de Agregación
  • 3.4 Técnica para el modelado entidad relación
  • 3.5 Ejercicios Resueltos
  • Gráfico 11 Diagrama E-R del Ejercicio 1
  • Gráfico 12 Diagrama E-R del Ejercicio 2
  • Gráfico 13 Diagrama E-R del Ejercicio 3
  • 4. Diseño lógico de bases de datos utilizando el Modelo Relacional
  • 4.1 Introducción Teórica
  • 4.2 El Modelo Relacional
  • 4.3 Conversión del diagrama E-R a tablas
  • Gráfico 14 Entidad Alumno
  • Gráfico 15 Esquema E-R de una factura
  • Gráfico 16 Esquema E-R con relación uno a uno
  • Gráfico 17 Esquema E-R con relación uno a muchos
  • Gráfico 18 Esquema E-R con relación muchos a muchos
  • 5. Normalización desde el punto de vista del diseño lógico de una base de datos
  • 5.1 Introducción Teórica
  • 5.2 Dependencia Funcional
  • 5.3 ¿Qué es la Normalización?
  • 5.4 Primera Forma Normal (1FN)
  • 5.5 Segunda Forma Normal (2NF)
  • 5.6 Tercera Forma Normal (3FN)
  • Tema: Lenguaje de consultas SQL
  • 1.1 ¿Qué es el lenguaje de consultas SQL?
  • 1.2 Breve Historia
  • 1.3 Componentes del SQL
  • 2. Estructura básica
  • 3. Alias
  • 4. Tipos de datos
  • 5. Predicados y conectores
  • 6. Tuplas duplicadas
  • 7. Operaciones de conjunto
  • 7.1 Pertenencia a un conjunto
  • 7.2 Comparación de conjuntos
  • 8. Pruebas para relaciones vacías
  • 9. Ordenación de la presentación de tuplas
  • 10. Funciones de agregación
  • 11. Modificación de la base de datos
  • 11.1 Eliminación
  • 11.2 Inserción
  • 11.3 Actualizaciones
  • 11.4 Valores nulos
  • 12. Definición de datos
  • 12.1 Creación
  • 12.2 Eliminación
  • 12.3 Actualización
  • 13. Ejercicios Propuestos
  • Tema: Access 2007
  • 1. Introducción
  • 1.1 Estructura de ficheros de Access
  • Gráfico 19 Pantalla Inicial de Access 2007
  • 2.2 La interfaz
  • Gráfico 21 Entorno de Access 2007
  • Gráfico 22 Opción Nueva base de datos en blanco
  • Gráfico 23 Tabla inicial de la base de datos
  • Gráfico 24 Grupo Tablas de la ficha Crear
  • 4.2 Insertar una tabla, empezando en la vista Hoja de datos
  • 4.3 Insertar una tabla, empezando en la vista Diseño
  • Gráfico 25 Como cambiar a la Vista Diseño
  • Gráfico 27 Campos de la tabla Profesores
  • Gráfico 28 Tipos de datos de los campos
  • 4.4 La clave principal o clave primaria
  • Gráfico 29 Botón para agregar la clave principal
  • Gráfico 30 Error de clave
  • 4.5 Importar datos de otro origen
  • Gráfico 31 Grupo Importar de la Ficha Datos Externos
  • Gráfico 32 Propiedades de los campos
  • 5.2 Tamaño del campo
  • 5.3 Formato del campo
  • 5.4 Lugares decimales
  • 5.5 Máscara de entrada
  • 5.6 Título
  • 5.7 Valor predeterminado
  • 5.8 Regla de validación
  • 5.9 Texto de validación
  • 5.10 Requerido
  • 5.11 Permitir longitud cero
  • 5.12 Indexado
  • 6. Las relaciones
  • Gráfico 33 Formulario Notas
  • Gráfico 34 Campos en común entre las tablas Profesores y materias
  • 6.2 Descripción de la integridad referencial
  • 6.3 Crear una relación
  • Gráfico 35 Botón Relaciones de la pestaña Herramientas de base de datos
  • Gráfico 36 Cuadro de diálogo Mostrar Tablas
  • Gráfico 37 Tablas agregadas a la ventana Relaciones
  • Gráfico 38 Cuadro de diálogo Mostrar Relaciones
  • Gráfico 39 Relación una a varios de la tabla Profesores con la tabla Alumnos
  • 6.4 Añadir tablas a la ventana Relaciones
  • Gráfico 40 Botón Mostrar tabla de la pestaña Diseño
  • 6.5 Quitar tablas de la ventana Relaciones
  • Gráfico 41 Menú Contextual de una tabla en la ventana Relaciones
  • 6.6 Modificar relaciones
  • Gráfico 42 Menú Contextual de una relación
  • 6.7 Eliminar relaciones
  • 6.8 Mostrar relaciones directas
  • 7. Las consultas
  • 7.1 Tipos de consultas
  • Gráfico 43 Consulta SQL en Access
  • 7.2 Crear una consulta
  • Gráfico 44 Botón diseño de consulta de la pestaña Crear
  • Gráfico 45 Cuadro de diálogo Mostrar tabla para consultas
  • Gráfico 46 Ventana Vista Diseño de Consultas
  • 7.4 Encabezados de columna
  • 7.5 Ejecutar la consulta
  • Gráfico 47 Botón Ejecutar Consultas
  • 7.6 Modificar el diseño de una consulta
  • 7.7 Ordenar las filas
  • 7.8 Seleccionar filas
  • Gráfico 48 Varias condiciones en una consulta
  • Gráfico 49 Condiciones en diferentes filas
  • 7.9 Consultas con parámetros
  • Gráfico 50 Cuadro de diálogo para introducir valores
  • 7.10 Las consultas multitabla
  • Gráfico 51 Botón Mostrar Tabla
  • Gráfico 52 Combinar tablas
  • Tema: MySQL
  • 2. Características
  • 3. Historia
  • 4. Esquema de denominaciones
  • 5. Conformación de la instalación
  • 6. Comandos básicos
  • Gráfico 53 Prompt de MySQL
  • Gráfico 55 Sentencias con múltiples líneas
  • Gráfico 56 Para cancelar un comando utilice /c
  • 7. Crear y utilizar una base de datos
  • Gráfico 57 Sentencia SHOW DATABASES
  • Gráfico 58 Sentencia USE
  • 8. Crear y seleccionar una base de datos
  • Gráfico 59 sentencia CREATE DATABASE
  • Gráfico 60 Cambio de una base de datos
  • 9. Creación de tablas
  • Gráfico 61 Sentencia SHOW TABLES
  • Gráfico 62 Sentencia CREATE TABLE
  • Gráfico 63 Sentencia DESCRIBE
  • Gráfico 64 Crear una tabla con una clave primaria
  • Gráfico 65 Crear una tabla con una clave primaria y una clave foránea
  • Gráfico 66 Uso de claves combinadas en llaves foráneas
  • 10. Cargando datos en una tabla
  • Gráfico 67 Ingreso de datos utilizando el bloc de notas
  • Gráfico 68 Sentencia LOAD DATA
  • Gráfico 69 Sentencia INSERT INTO
  • Gráfico 70 Sentencia SELECT

Sistemas Gestores de Base de Datos

Colegio Técnico Salesiano
APLICACIONES INFORMÁTICAS
Sistemas Gestores de Bases de Datos

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

INDICE GENERAL INDICE GENERAL
INDICE GENERAL .................................................................................................................................... 2 INDICE DE GRÁFICOS .............................................................................................................................. 5 UNIDAD 1 .............................................................................................................................................. 8 TEMA: SISTEMAS DE BASES DE DATOS ................................................................................................... 8 1. INTRODUCCIÓN TEÓRICA........................................................................................................................ 8 1.1 Dato e Información ................................................................................................................. 8 1.2 ¿Qué es una base de datos? ................................................................................................... 8 1.3 El sistema de gestión de la base de datos .............................................................................. 9 1.4 Objetivos de los sistemas de bases de datos .......................................................................... 9 PLANIFICACIÓN Y DISEÑO DE BASES DE DATOS .......................................................................................... 11 2.1 Introducción Teórica ............................................................................................................. 11 2.2 Ciclo de vida de las Aplicaciones de bases de datos ............................................................. 12 2.3 Diseño de bases de datos...................................................................................................... 13 DISEÑO 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 Generalización, especialización y Agregación ...................................................................... 19 3.4 Técnica para el modelado entidad relación .......................................................................... 21 3.5 Ejercicios Resueltos ............................................................................................................... 21 DISEÑO LÓGICO DE BASES DE DATOS UTILIZANDO EL MODELO RELACIONAL .................................................... 23 4.1 Introducción Teórica ............................................................................................................. 23 4.2 El Modelo Relacional ............................................................................................................ 23 4.3 Conversión del diagrama E-R a tablas .................................................................................. 26 NORMALIZACIÓN DESDE EL PUNTO DE VISTA DEL DISEÑO LÓGICO DE UNA BASE DE DATOS ................................. 36 5.1 Introducción Teórica ............................................................................................................. 36 5.2 Dependencia Funcional ......................................................................................................... 36 5.3 ¿Qué es la Normalización? ................................................................................................... 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. INTRODUCCIÓN TEÓRICA...................................................................................................................... 51 1.1 ¿Qué es el lenguaje de consultas SQL? ................................................................................. 51 1.2 Breve Historia ....................................................................................................................... 51 1.3 Componentes del SQL ........................................................................................................... 53 ESTRUCTURA BÁSICA ........................................................................................................................... 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 Comparación de conjuntos ................................................................................................... 61 8. PRUEBAS PARA RELACIONES VACÍAS........................................................................................................ 61 9. ORDENACIÓN DE LA PRESENTACIÓN DE TUPLAS......................................................................................... 62 10. FUNCIONES DE AGREGACIÓN ............................................................................................................ 62 11. MODIFICACIÓN DE LA BASE DE DATOS ................................................................................................ 64 11.1 Eliminación ........................................................................................................................... 64 11.2 Inserción ............................................................................................................................... 65 11.3 Actualizaciones ..................................................................................................................... 65 11.4 Valores nulos ........................................................................................................................ 66 12. DEFINICIÓN DE DATOS ..................................................................................................................... 66 12.1 Creación ................................................................................................................................ 66 12.2 Eliminación ........................................................................................................................... 66 12.3 Actualización......................................................................................................................... 67 13. EJERCICIOS PROPUESTOS ................................................................................................................. 67 UNIDAD 3 ............................................................................................................................................ 72 TEMA: ACCESS 2007 ............................................................................................................................. 72 1. 2. INTRODUCCIÓN .................................................................................................................................. 72 1.1 Estructura de ficheros de Access ........................................................................................... 72 ELEMENTOS BÁSICOS 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 Diseño ................................................................ 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 Introducción .......................................................................................................................... 83 5.2 Tamaño del campo ............................................................................................................... 84 5.3 Formato del campo ............................................................................................................... 85 5.4 Lugares decimales ................................................................................................................ 86 5.5 Máscara de entrada ............................................................................................................. 86 5.6 Título ..................................................................................................................................... 87 5.7 Valor predeterminado .......................................................................................................... 87 5.8 Regla de validación ............................................................................................................... 87 5.9 Texto de validación ............................................................................................................... 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 Descripción de la integridad referencial ............................................................................... 92
Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

3.

4.

5.

6.

3

.............................................................. 3............................................................................................................................................................................................................................................................... 6.. 114 CREAR Y SELECCIONAR UNA BASE DE DATOS .................................................... 102 7.............4 Añadir tablas a la ventana Relaciones.......................5 Quitar tablas de la ventana Relaciones....................................................... 115 CARGANDO DATOS EN UNA TABLA ................................8 Seleccionar filas ..................... 101 7.............3 Añadir campos ................................................................................................................. 95 6............................................. 105 UNIDAD 4 ........................................................................5 Ejecutar la consulta .................... 4..................... 2......................................... 93 6.............. 105 7........ 95 6............................. 119 BIBLIOGRAFÍA ............................................................................................................................... 109 1.... 8..........................................................................7 Ordenar las filas ......................................................................................................................... 101 7.................................................................................................. 102 7.............................. ..................... 10........................................................................................ 97 7............................................. 97 7......................................................... . 112 CREAR Y UTILIZAR UNA BASE DE DATOS .....6 Modificar el diseño de una consulta ...................... 96 6.............................................................................................................................................................................................................................................................2 Crear una consulta ........................................ 109 CARACTERÍSTICAS .........................................4 Encabezados de columna.................... 97 7............................................................... 5...........................6 Modificar relaciones....................................... 99 7.............INDICES 6......... 115 CREACIÓN DE TABLAS ........................................................................................................................................... LAS CONSULTAS .1 Tipos de consultas ..............................................10 Las consultas multitabla ............................................................................................................................................................................................................................... 7...............................................................3 Crear una relación................. 102 7........................................................... 122 Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 4 ................ 109 TEMA: MYSQL ................................... ........................................................................................................................................................................................ 103 7...................................................................................... 109 ESQUEMA DE DENOMINACIONES ....................... 109 HISTORIA ........ ............................................................................................................ 110 CONFORMACIÓN DE LA INSTALACIÓN........................................ 9........................................... 111 COMANDOS BÁSICOS...........................................7 Eliminar relaciones...............................................9 Consultas con parámetros ........................................... INTRODUCCIÓN ... 96 6.....8 Mostrar relaciones directas ............

....................................................................................................................................................................................................................................................................... 19 GRÁFICO 10 EJEMPLO DE AGREGACIÓN ....................................................... 17 GRÁFICO 5 RELACIÓN DE GRADO 3 O TERNARIA ...... 18 GRÁFICO 9 EJEMPLOS DE GENERALIZACIÓN .............. 20 GRÁFICO 11 DIAGRAMA E-R DEL EJERCICIO 1 ........................................................................................ 18 GRÁFICO 8 RELACIÓN N A N................................................. 93 GRÁFICO 36 CUADRO DE DIÁLOGO MOSTRAR TABLAS ........................................................................................................................................................................................ 81 GRÁFICO 30 ERROR DE CLAVE ................................................................................................... 28 GRÁFICO 16 ESQUEMA E-R CON RELACIÓN UNO A UNO ........................... 79 GRÁFICO 27 CAMPOS DE LA TABLA PROFESORES ........................................................................................................ 95 GRÁFICO 40 BOTÓN MOSTRAR TABLA DE LA PESTAÑA DISEÑO ....................... 75 GRÁFICO 22 OPCIÓN NUEVA BASE DE DATOS EN BLANCO ................. 94 GRÁFICO 39 RELACIÓN UNA A VARIOS DE LA TABLA PROFESORES CON LA TABLA ALUMNOS .............................................................................. 18 GRÁFICO 7 RELACIÓN 1 A N .................................................................................................................................................................................................................................... 76 GRÁFICO 24 GRUPO TABLAS DE LA FICHA CREAR .............................. 99 GRÁFICO 44 BOTÓN DISEÑO DE CONSULTA DE LA PESTAÑA CREAR ........................................ 84 GRÁFICO 33 FORMULARIO NOTAS ............ ............................. 80 GRÁFICO 28 TIPOS DE DATOS DE LOS CAMPOS ............................................. 90 GRÁFICO 35 BOTÓN RELACIONES DE LA PESTAÑA HERRAMIENTAS DE BASE DE DATOS...................................................................................................................................................... 82 GRÁFICO 31 GRUPO IMPORTAR DE LA FICHA DATOS EXTERNOS ..................................................................................................................................................................................... 100 GRÁFICO 47 BOTÓN EJECUTAR CONSULTAS.................................... 79 GRÁFICO 26 VISTA DISEÑO ................................. 16 GRÁFICO 4 RELACIÓN ENTRE DOS ENTIDADES .................................................................................................................................................................................................................................................................. 22 GRÁFICO 13 DIAGRAMA E-R DEL EJERCICIO 3 ....................................................................................................................................................................................... 99 GRÁFICO 46 VENTANA VISTA DISEÑO DE CONSULTAS ............................................................................................................................... 102 ............................ 16 GRÁFICO 3 REPRESENTACIÓN GRÁFICA DE LOS ATRIBUTOS EN UNA ENTIDAD ....................................................................................................................................................................... 28 GRÁFICO 15 ESQUEMA E-R DE UNA FACTURA ................................................................................................................ 32 GRÁFICO 18 ESQUEMA E-R CON RELACIÓN MUCHOS A MUCHOS .INDICES INDICE DE GRÁFICOS INDICE DE GRÁFICOS GRÁFICO 1 SISTEMA GESTOR DE BASES DE DATOS.................................................................................................................................................................................................................................... 93 GRÁFICO 37 TABLAS AGREGADAS A LA VENTANA RELACIONES ........................................................................... 94 GRÁFICO 38 CUADRO DE DIÁLOGO MOSTRAR RELACIONES............................................................................................................................................................................................................................................................................................................................................................................................................... 34 GRÁFICO 19 PANTALLA INICIAL DE ACCESS 2007 ................................................ 73 GRÁFICO 20 CINTA DE OPCIONES ................................................................................................................................................................... 96 GRÁFICO 43 CONSULTA SQL EN ACCESS.............................. 83 GRÁFICO 32 PROPIEDADES DE LOS CAMPOS... 96 GRÁFICO 42 MENÚ CONTEXTUAL DE UNA RELACIÓN .................................. 17 GRÁFICO 6 RELACIÓN 1 A 1............................................. 99 GRÁFICO 45 CUADRO DE DIÁLOGO MOSTRAR TABLA PARA CONSULTAS ........................................................................ 77 GRÁFICO 25 COMO CAMBIAR A LA VISTA DISEÑO ........................................................................................................................................................ 95 GRÁFICO 41 MENÚ CONTEXTUAL DE UNA TABLA EN LA VENTANA RELACIONES ........................................... 30 GRÁFICO 17 ESQUEMA E-R CON RELACIÓN UNO A MUCHOS ................ 80 GRÁFICO 29 BOTÓN PARA AGREGAR LA CLAVE PRINCIPAL .............................................. 76 GRÁFICO 23 TABLA INICIAL DE LA BASE DE DATOS ...... 73 GRÁFICO 21 ENTORNO DE ACCESS 2007 ................................................................................................................ 21 GRÁFICO 12 DIAGRAMA E-R DEL EJERCICIO 2 ....................................................................................................................................................................................................................................................................... 22 GRÁFICO 14 ENTIDAD ALUMNO ......................................... 9 GRÁFICO 2 REPRESENTACIÓN GRÁFICA DE UNA ENTIDAD.......................................... 89 GRÁFICO 34 CAMPOS EN COMÚN ENTRE LAS TABLAS PROFESORES Y MATERIAS .......

......................................... 105 GRÁFICO 51 BOTÓN MOSTRAR TABLA ................................................................................................................................................ 112 GRÁFICO 54 INSTRUCCIÓN SELECT CON OPERACIONES MATEMÁTICAS BÁSICAS EN MYSQL ....................................................................... 114 GRÁFICO 58 SENTENCIA USE .......................................................... 113 GRÁFICO 56 PARA CANCELAR UN COMANDO UTILICE /C .......................................................................................................................................................................................................................... 104 GRÁFICO 50 CUADRO DE DIÁLOGO PARA INTRODUCIR VALORES ......................... 115 GRÁFICO 61 SENTENCIA SHOW TABLES....................................................................................................... 104 GRÁFICO 49 CONDICIONES EN DIFERENTES FILAS ....................................................................................................................................................................................................... 115 GRÁFICO 59 SENTENCIA CREATE DATABASE ............................ 113 GRÁFICO 55 SENTENCIAS CON MÚLTIPLES LÍNEAS ........................................................................... 119 GRÁFICO 65 CREAR UNA TABLA CON UNA CLAVE PRIMARIA Y UNA CLAVE FORÁNEA............................................... 115 GRÁFICO 60 CAMBIO DE UNA BASE DE DATOS ......................................................... 106 GRÁFICO 53 PROMPT DE MYSQL ..................................................................................................................................................................................................................................................................................................................................... 120 GRÁFICO 68 SENTENCIA LOAD DATA ................................................................................................................................................ 116 GRÁFICO 63 SENTENCIA DESCRIBE .............................. 116 GRÁFICO 62 SENTENCIA CREATE TABLE ........................................................................................INDICES GRÁFICO 48 VARIAS CONDICIONES EN UNA CONSULTA......... 105 GRÁFICO 52 COMBINAR TABLAS .. 121 Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 6 ............................ 120 GRÁFICO 69 SENTENCIA INSERT INTO......................... 116 GRÁFICO 64 CREAR UNA TABLA CON UNA CLAVE PRIMARIA................................................. 121 GRÁFICO 70 SENTENCIA SELECT ........................ 119 GRÁFICO 67 INGRESO DE DATOS UTILIZANDO EL BLOC DE NOTAS ................................................................... 119 GRÁFICO 66 USO DE CLAVES COMBINADAS EN LLAVES FORÁNEAS ........................................................................................................................................................................................................................................................... 113 GRÁFICO 57 SENTENCIA SHOW DATABASES ...............................................................................................

UNIDAD 1 Sistemas de bases de datos SGBD .

se almacena en el diccionario de datos o catálogo y es lo que permite que exista independencia de datos. alfabéticos. la base de datos no sólo contiene los datos de la organización. La base de datos no pertenece a un departamento.  Información: Es un conjunto ordenado de datos los cuales son manejados según la necesidad del usuario. Introducción Teórica 1. 1.UNIDAD 1 Sistemas de Bases de Datos UNIDAD 1 UNIDAD 1 Tema: Sistemas de Bases de Datos 1.1 Dato e Información En esencia. o alfanuméricos. primero se debe guardar lógicamente en archivos. Esta descripción es lo que se denomina metadatos. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 8 . se comparte por toda la organización. Para tener claro ésta definición es necesario hacer la distinción entre dos términos que parecieran ser sinónimos: dato e información:  Dato: El dato es conjunto de caracteres con algún significado. un sistema de bases de datos no es más que un sistema para archivar en computador. o sea. para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a información. pueden ser numéricos. Además. también almacena una descripción de dichos datos. La base de datos es un gran almacén de datos que se define una sola vez y que se utiliza al mismo tiempo por muchos departamentos y usuarios. es un sistema computarizado cuyo propósito general es mantener información y hacer que esté disponible cuando se solicite.2 ¿Qué es una base de datos? Una base de datos es un conjunto de datos almacenados entre los que existen relaciones lógicas y ha sido diseñada para satisfacer los requerimientos de información de una empresa u organización.

Gráfico 1 Sistema gestor de bases de datos En general.3 El sistema de gestión de la base de datos El sistema de gestión de la base de datos (DBMS1) es una aplicación que permite a los usuarios (clientes) definir. 3 DML: De las siglas en inglés Data Manipulation Language cuya traducción al español es Lenguaje de manipulación de datos Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 9 . y proporciona acceso controlado a la misma. crear y mantener la base de datos. eliminación y consulta de datos mediante el lenguaje de manejo de datos (DML3).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 información son creados por diferentes tipos de programas 1 DBMS: De las siglas en inglés Data Bases Management System cuya traducción al español es Sistemas manejadores de bases de datos. así como las restricciones sobre los datos. Proporciona un acceso controlado a la base de datos. 1. un DBMS proporciona los siguientes servicios:  Permite la definición de la base de datos mediante el lenguaje de definición de datos (DDL2). Este lenguaje permite especificar la estructura y el tipo de los datos. 2 DDL: De las siglas en inglés Data Definition Language cuya traducción al español es Lenguaje de definición de datos. actualización. Todo esto se almacenará en la base de datos.   Permite la inserción.UNIDAD 2 Lenguaje de Consultas SQL 1.

es difícil escribir nuevos programas de aplicación para obtener los datos apropiados. Problemas de seguridad: La información de toda organización es importante. por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autentificación y protección de los datos. por tal motivo se debe considerar el control de acceso a los mismos. el personal de contabilidad sólo necesita tener acceso a la parte de la base de datos que tiene información acerca de la parte económica de la 4 Inconsistencia de datos: Es cuando diversas copias de un mismo dato no concuerdan entre sí Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 10 . muchos sistemas permiten que múltiples usuarios actualicen los datos simultáneamente. esto se conoce como redundancia de datos.UNIDAD 2 Lenguaje de Consultas SQL de aplicación existe la posibilidad de que si no se controla detalladamente el almacenamiento. Puesto que esta situación no fue prevista en el diseño del sistema. Esto aumenta los costos de almacenamiento y acceso a los datos. por ejemplo: que se actualiza la dirección de un alumno en un archivo y que en otros archivos permanezca la anterior. y estos no pueden tener diferentes formatos. no existe ninguna aplicación de consulta que permita este tipo de solicitud. Por ejemplo supóngase la siguiente situación: 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. Aislamiento de los datos: Cuando los datos están repartidos en varios archivos. El departamento pide al centro de cómputo que genere la lista correspondiente. aunque unos datos lo son más que otros. además de que puede originar la inconsistencia de los datos4. 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. Anomalías del acceso concurrente: Para mejorar el funcionamiento global del sistema y obtener un tiempo de respuesta más rápido. no todos los usuarios pueden visualizar alguna información. En un entorno así la interacción de actualizaciones concurrentes puede dar por resultado datos inconsistentes. esto ocasiona una deficiencia del sistema. se pueda originar un duplicado de información. En un colegio por ejemplo.

Después. los usuarios tendrán dificultades a la hora de acceder a ciertos tipos de información y existe el riesgo añadido de que ciertas búsquedas puedan producir información errónea. Estas restricciones se hacen cumplir en el sistema añadiendo códigos apropiados en los diversos programas de aplicación. la base de datos es como una casa que queremos que nos construyan. ACTIVIDAD GRUPAL Con un grupo de tres compañeros realice un foro para debatir la importancia de los sistemas de bases de datos. Si una base de datos está mal diseñada. Seguramente. El arquitecto expresará nuestras necesidades en una serie de planos. buscaremos primero a un arquitecto que diseñe nuestra nueva casa y después haremos que el constructor la edifique. 2. Entregue un documento con las conclusiones y opiniones que se han llegado al final de la actividad. el Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 11 . Viéndolo desde una perspectiva diferente. éstas fases de la planificación del sistema se conoce como el ciclo de vida de un sistema de información que se relaciona directamente con el desarrollo de aplicaciones de bases de datos. La razón para preocuparse por el diseño de las bases de datos es que es crucial para la consistencia.1 Introducción Teórica Todo sistema de información debe ser previamente planificado para evitar futuros inconvenientes y dicha planificación debe realizarse por fases. lo que no vamos a hacer es buscar a un constructor que haga la casa sobre la marcha y lo haga como él quiera.UNIDAD 2 Lenguaje de Consultas SQL institución y no a otro tipo de información 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. integridad y precisión de los datos. anotando todos los requisitos de los diversos sistemas (estructural. ¿Qué es lo primero que hay que hacer? Desde luego. mecánico y eléctrico). Planificación y diseño de bases de datos 2.

UNIDAD 2 Lenguaje de Consultas SQL constructor pondrá los materiales necesarios. 2. El personal que utiliza y que desarrolla el sistema. Se pueden hacer malos diseños. almacenará los datos más eficientemente y será más fácil de gestionar y de mantener. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 12 . controlar y difundir la información de toda una empresa u organización. medios de almacenamiento. el diseño lógico corresponde con la fase de elaboración de los planos arquitectónicos. la forma y los sistemas necesarios para la base de datos. Volviendo a la perspectiva de las bases de datos. un conjunto de recursos que permiten recoger. etc. y la implementación física de la base de datos es la casa ya construida. Después. El diseño lógico describe el tamaño.). Los programas de aplicación.2 Ciclo de vida de las Aplicaciones de bases de datos Una aplicación de base de datos es un sistema de información. razón 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 aplicación de bases de datos. Bajo esa perspectiva las etapas del ciclo de vida de una aplicación de bases de datos son las siguientes:  Planificación del proyecto. El DBMS. gestionar. se construye la implementación física del diseño lógico de la base de datos mediante el DBMS. pero una base de datos bien diseñada contendrá información correcta. Un sistema de información está formado por los siguientes componentes:      La base de datos. tal y como se indica en los planos y en las especificaciones. La base de datos es un componente fundamental de un sistema de información. siguiendo un enfoque orientado a datos. es decir. Los dispositivos físicos (ordenadores.

recomendaciones y bibliografía. índice de gráficos (si es que los hay). los problemas que se encuentran en la etapa del diseño de la base de datos pueden requerir una recolección de requisitos adicional y su posterior análisis. Conversión y carga de datos. Recuerde que una buena investigación implica una buena sustentación de la misma. el diseño de una base de datos se descompone en: diseño conceptual. índice de contenidos. De hecho hay que repetir algunas de las etapas varias veces. haciendo lo que se conocen como ciclos de realimentación. conclusiones. Diseño de la aplicación. Mantenimiento. Se evaluará: Portada. 2. Implementación.UNIDAD 2 Lenguaje de Consultas SQL           Definición del sistema. Prueba. Por ejemplo. calidad de la teoría investigada. Diseño de la base de datos. Estas etapas no son estrictamente secuenciales. ACTIVIDAD Investigue cada una de las etapas del ciclo de vida del desarrollo del software.3 Diseño de bases de datos Como se pudo ver en la Planificación y diseño de la bases de datos. Recolección y análisis de los requisitos. ejemplos. Prototipado. Debido a la naturaleza de la materia nuestro estudio se centrará solamente en una de las fases del ciclo de vida: el diseño de base de datos. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 13 . diseño lógico y diseño físico. Selección del DBMS.

El diseñador de la base de datos debe tener un profundo conocimiento de los datos de la empresa y también debe conocer sus reglas de negocio. se transforma el esquema conceptual en un esquema lógico que utilizará las estructuras de datos del modelo de base de datos en el que se basa el DBMS que se vaya a utilizar. Diseño físico: El diseño físico es el proceso de producir la descripción de la implementación de la base de datos en memoria secundaria: estructuras de almacenamiento y métodos de acceso que garanticen un acceso eficiente a los datos. el modelo jerárquico o el modelo orientado a objetos. La naturaleza de los datos. basándose en un modelo de base de datos específico. debiendo identificar los datos. El uso de los datos a través de las áreas de aplicación. el modelo de red. A este esquema se le denomina esquema conceptual. ya que asegura que las relaciones (tablas) obtenidas no tienen datos redundantes. La normalización es una técnica que se utiliza para comprobar la validez de los esquemas lógicos basados en el modelo relacional. Las reglas de negocio describen las características principales de los datos tal y como las ve la empresa. las relaciones entre datos y las restricciones sobre los datos y sus relaciones. independientemente de cualquier consideración física. los diseñadores5 descubren la semántica (significado) de los datos de la empresa. Al construir el esquema. independiente del DBMS concreto que se vaya a utilizar y de cualquier otra consideración física. como puede ser el modelo relacional. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 14 . independientemente de su representación física. El esquema más popular para el diseño conceptual es el modelo E-R6. El objetivo es comprender:    La perspectiva que cada usuario tiene de los datos. En esta etapa. 5 Los diseñadores de la base de datos realizan el diseño lógico de la base de datos.UNIDAD 2 Lenguaje de Consultas SQL Diseño conceptual: En esta etapa se debe construir un esquema de la información que se usa en la empresa. 6 Un diagrama o modelo entidad-relación (a veces denominado por su siglas en inglés E-R "Entity relationship"). Diseño lógico: El diseño lógico es el proceso de construir un esquema de la información que utiliza la empresa. Se verá más adelante en detalle.

Más tarde. incluidos su estructura. se distingue de otros objetos de acuerdo a sus características llamadas Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 15 . físicamente el esquema lógico obtenido en la fase anterior. pueden afectar a la estructura del esquema lógico. Hay dos tipos de modelos de datos: los modelos conceptuales y los modelos lógicos. y luego se transforma el esquema conceptual en un esquema lógico. 3.UNIDAD 2 Lenguaje de Consultas SQL Para llevar a cabo esta etapa. se añadieron otros conceptos. relación y atributo. Entidad y atributos Entidades: Es todo lo que existe y es capaz de ser descrito (sustantivo). ya que el esquema físico se adapta a él. ya que algunas de las decisiones que se tomen durante el diseño físico para mejorar las prestaciones. contenido y las aplicaciones que se han de desarrollar. 3. Diseño conceptual de bases de datos utilizando el Modelo E-R Como ya se dijo anteriormente el diseño de bases de datos es el proceso por el que se determina la organización de una base de datos. en lo que se ha denominado modelo entidad-relación extendido. En general. se debe haber decidido cuál es el DBMS que se va a utilizar. el modelo E-R sólo incluía los conceptos de entidad.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. Entre el diseño físico y el diseño lógico hay una realimentación. En el diseño de bases de datos se usan primero los modelos conceptuales para lograr una descripción de alto nivel de la realidad. como los atributos compuestos y las jerarquías de generalización. el propósito del diseño físico es describir cómo se va a implementar 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 gráficas y lingüísticas. Originalmente.

incluso siendo gemelos. O puede ser una entidad el sustantivo casa pues aunque sea exactamente igual a otra. (para la entidad alumno una clave seria CÓDIGO). Una entidad puede ser un objeto con existencia física como: una persona. (entidad abstracta). ALUMNO Gráfico 2 representación gráfica de una entidad Las entidades se representan gráficamente mediante rectángulos y su nombre aparece en la parte interna. Por ejemplo puede ser una entidad el sustantivo persona pues el mismo se diferencia de cualquier otra persona. Dirección.UNIDAD 2 Lenguaje de Consultas SQL atributos. Un nombre de entidad sólo puede aparecer una vez en el esquema conceptual. o un objeto con existencia conceptual como: un puesto de trabajo. Hay dos tipos de entidades: fuertes y débiles. Nombres. etc. Teléfono. etc. Teléfono Código ALUMNO Gráfico 3 Representación gráfica de los atributos en una Entidad Dirección Nombres De entre los atributos habrá uno o un conjunto de ellos que no se repite. aún se diferenciará en su dirección. (entidad concreta). una asignatura de clases. un nombre. una casa. Una entidad está descrita y se representa por sus características o atributos. etc. un animal. En el esquema se los distingue por que el atributo clave se encuentra subrayado. Atributos: es una característica (adjetivo) de una entidad o relación. la entidad Alumno puede llevar consigo las características: Código. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 16 . Por ejemplo. a este atributo o conjunto de atributos se le llama clave de la entidad. Una entidad fuerte es una entidad que existe pos sí sola y no depende de la existencia de otras. Una entidad débil es una entidad cuya existencia depende de la existencia de otra entidad.

MADRE e HIJO. la relación PADRES. 7 Instancia: Valor único en un momento dado de una base de datos Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 17 . ya que involucra las entidades PADRE. MADRE PADRES HIJO PADRE Gráfico 5 Relación 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) Relación uno a uno (1:1): A cada ocurrencia de una entidad le corresponde como máximo una ocurrencia de la otra entidad relacionada. Cada relación tiene dos extremos y se representas gráficamente con rombos. dentro de ellas se coloca el nombre de la relación. puede ser de grado 3. Teléfono Código Dirección Nombres Nivel Paralelo ALUMNO PERTENECE CURSO Gráfico 4 Relación entre dos entidades La cantidad de entidades en una relación determina el grado de la relación. por ejemplo la relación ALUMNO-CURSO es de grado 2 (binarias). ya que intervienen la entidad ALUMNO y la entidad CURSO.UNIDAD 2 Lenguaje de Consultas SQL Relación (Interrelación) Es una correspondencia o asociación entre dos o más entidades (verbo).

y viceversa. Por ejemplo: La entidad HOMBRE con la entidad MUJER y entre ellos la relación MATRIMONIO. En un CURSO pueden ESTUDIAR muchos ALUMNOS. ALUMNO ESTUDIAR EN ASIGNATURA Gráfico 8 Relación N a N Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 18 . ALUMNO ESTUDIAR EN CURSO Gráfico 7 Relación 1 a N c) Relación 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. Un ALUMNO puede APRENDER varias asignaturas y una ASIGNATURA puede ser APRENDIDA por varios ALUMNOS. y una entidad del tipo B solo puede estar relacionada con una entidad del tipo A. ya que asocia a un HOMBRE con una única MUJER por lo tanto ningún HOMBRE tiene más de una MUJER en MATRIMONIO. Por ejemplo: La entidad CURSO y la entidad ALUMNO y entre ellos la relación ESTUDIAR EN. MATRIMONIO HOMBRE MUJER Gráfico 6 Relación 1 a 1 b) Relación uno a muchos (1:N): Significa que una entidad del tipo A puede relacionarse con cualquier cantidad de entidades del tipo B. y ninguna MUJER tiene más de una HOMBRE en MATRIMONIO. pero un ALUMNO puede ESTUDIAR EN un solo CURSO.UNIDAD 2 Lenguaje de Consultas SQL Una entidad del tipo A solo se puede relacionar con una entidad del tipo B. El extremo de la flecha indica el uno de la relación. es una relación 1 a 1. Por ejemplo: La entidad ALUMNO y la entidad ASIGNATURA y entre ellos la relación APRENDER.

Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 19 . especialización y Agregación a) Generalización La generalización consiste en identificar atributos comunes a ciertas entidades. no necesitan ser representadas dos veces en el diagrama. Por tanto. De la misma manera la entidad EMPLEADO tiene un atributo particular llamado 8 La herencia es un tipo de relación entre una entidad "padre" y una entidad "hijo".3 Generalización. Dirección y Teléfono.UNIDAD 2 Lenguaje de Consultas SQL 3. para lo cual podemos crear: una entidad de nivel superior que las contenga. La entidad "hijo" hereda todos los atributos y relaciones de la entidad "padre". y otras entidades de nivel inferior con los atributos particulares. Ejemplo: Atributos semejantes (Generalizados) Dirección Nombre PERSONA Teléfono Entidad global generada IS A IS A: Se lee ES UN Salario EMPLEADO Calificación ESTUDIANTE IS A Atributos individuales Atributos individuales ADMINISTRATIVO Departamento PROFESOR Cargo Materia Horas de clase Gráfico 9 Ejemplos de Generalización Se puede observar que las entidades EMPLEADO y ESTUDIANTE heredan8 de la entidad PERSONA los atributos Nombre.

fruto de esa íntima unión.UNIDAD 2 Lenguaje de Consultas SQL salario que hereda a las entidades ADMINISTRATIVO y PROFESOR. se puede relacionar con otras entidades. c) Agregación La agregación surge cuando más de una entidad se asocian de tal forma que se las puede ver como a una nueva entidad. 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. Se representa enmarcando la relación en un rectángulo. pero dependiendo del trabajo que realiza en pueden llegar a utilizar un equipo o maquinaria. el diagrama E-R correspondiente sería el que se visualiza en la figura 9. Horas TRABAJA Id Nombre EMPLEADO Número PROYECTO USA MAQUINARIA Id Gráfico 10 Ejemplo de Agregación Para ejemplificar una agregación consideraremos un ejemplo que consiste en una empresa en la cual existen trabajando muchos empleados que trabajan en diferentes proyectos. Proyecto y Maquinaria. las cuales tienen también sus propios atributos individuales. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 20 . b) Especialización Si identificamos un subconjunto de entidades dentro de un conjunto de entidades que tienen algunos atributos particulares. Como podemos observar la Generalización trata de eliminar la redundancia (repetición) de atributos. La entidad(es) de bajo nivel heredan todos los atributos correspondientes. en este problema intervienen 3 entidades: Empleado. al englobar los atributos semejantes. Esta nueva entidad.

Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama. la relación TRABAJA es englobada como si fuera una entidad más de la relación USA. EDITORIAL PUBLICA LIBRO Gráfico 11 Diagrama E-R del Ejercicio 1 Ejercicio 2: Una editorial publica varios libros. 3. Se hace una lista de los sustantivos y verbos que aparecen. Un libro es publicado por una sola editorial. Se elabora el diagrama (o diagramas) entidad-relación. 5. 2. 3. Un lector puede tomar prestados varios libros. gráficamente se dibuja un rectángulo para englobarlas.5 Ejercicios Resueltos Ejercicio 1: Realizar un diagrama E-R del siguiente enunciado: Una editorial publica varios libros. 4. Un libro es publicado por una sola editorial.UNIDAD 2 Lenguaje de Consultas SQL Como el modelo E-R no permite la unión entre dos o más relaciones. 7. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 21 .4 Técnica para el modelado entidad relación El modelado entidad-relación es una técnica para el modelado de datos utilizando diagramas entidad relación. Para indicarnos que un trabajo usa un determinado equipo o maquinaria según el tipo de trabajo que se trate. Los sustantivos son posibles entidades o atributos. Brevemente consiste en los siguientes pasos: 1. Se parte de una descripción textual del problema o sistema de información a automatizar (los requisitos). 6. Analizando las frases se determina la cardinalidad de las relaciones y otros detalles. Los verbos son posibles relaciones. Sólo así podemos decir que la entidad TRABAJA se relaciona con la entidad MAQUINARIA a través de la relación USA. No es la única técnica pero sí la más utilizada. 3.

Además se guardará qué estudiante es el director de dicho proyecto.UNIDAD 2 Lenguaje de Consultas SQL EDITORIAL PUBLICA LIBRO LECTOR TIENE Gráfico 12 Diagrama E-R del Ejercicio 2 Ejercicio 3 Se pretende crear una base de datos para almacenar información sobre los proyectos que realizan en un curso. Las tareas dentro de los proyectos suelen ser casi siempre las mismas. Para ello se guardará la fecha del informe y se detallará cuáles han sido las tareas realizadas en el aporte. quién las realizó y el tiempo que dedicó a cada una de ellas. Los datos a tener en cuenta son:  Cada proyecto tiene asociado un identificador numérico y un nombre. Además un mismo estudiante puede realizar distintas tareas en el mismo aporte y una tarea puede ser desarrollada por más de un empleado. Fecha Tiempo Descripción IdInforme IdTarea GUARDA INFORME REGISTRA TAREA Código Nombre IdProyecto Nombre PROYECTO DIRIGE ESTUDIANTE Gráfico 13 Diagrama E-R del Ejercicio 3 Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 22 .  También se quiere guardar información sobre los informes que en cada aporte se hacen de cada proyecto. aunque las realicen distintas personas y le dediquen tiempos distintos.  De los estudiantes se guardará el código y su nombre.

nunca un conjunto de valores. no se puede partir de un modelo conceptual para realizar un físico. 4. Los datos se almacenan como tablas y las relaciones entre las filas y las tablas son visibles en los datos. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 23 . relaciones entre los datos. pero no existe un modelo estándar orientado a objetos. el modelo de red y el modelo jerárquico. Los modelos de bases de datos más extendidos desde la perspectiva del diseño lógico son el modelo relacional. por lo tanto la intersección de un renglón con una columna tiene un solo valor. La ventaja del modelo relacional es que los datos se almacenan. es importante mencionar que es un paso necesario.1 Introducción Teórica El objetivo del diseño lógico es convertir los esquemas conceptuales locales en un esquema lógico global que se ajuste al modelo de DBMS sobre el que se vaya a implementar el sistema. Diseño lógico de bases de datos utilizando el Modelo Relacional 4. de un modo en que los usuarios entienden con mayor facilidad. al menos conceptualmente.UNIDAD 2 Lenguaje de Consultas SQL 4. El modelo orientado a objetos es también muy popular.2 El Modelo Relacional El objetivo del modelo relacional es crear un "esquema". Las características más importantes de los modelos relacionales son:  Es importante saber que las entradas en la tabla tienen un solo valor (son atómicos). no se admiten valores múltiples. Este enfoque permite a los usuarios obtener información de la base de datos sin asistencia de sistemas profesionales de administración de información. En este punto nos concentraremos en desarrollar un buen modelo "lógico" que se conoce como "esquema de la base de datos" a partir del cual se podrá realizar el modelado físico en el DBMS. lo cual como se explicará más adelante consiste de un conjunto de "tablas" que representan "relaciones".

de ahí que se llame modelo conceptual. cada una de las cuales se implanta como un archivo.UNIDAD 2 Lenguaje de Consultas SQL  Todas las entradas de cualquier columna son de un solo tipo. una columna puede contener nombres de clientes. Cada atributo tiene un dominio. Esta es muy conveniente en varios aspectos:    El partir de un diagrama visual es muy útil para apreciar los detalles. el orden de las comunas no es de importancia para la tabla. los datos se organizan en tablas llamadas relaciones. En terminología relacional una fila en una relación representa un registro o una entidad. Así. En el enfoque relacional. pero la ventaja de partir del modelo e-r es que la "normalización" es mínima por lo general. que es una descripción física y lógica de valores permitidos. no existen apuntadores o ligas entre las tablas. y en otra puede tener fechas de nacimiento. Las tablas del diagrama relacional.  No existen 2 filas en la tabla que sean idénticas. las columnas de una tabla se conocen como atributos. Cada columna posee un nombre único. El crear las tablas iníciales es mucho más simple a través de las reglas de conversión. pueden ser construidas partiendo de convertir el diagrama e-r a tablas y posteriormente aplicar operaciones de normalización hasta conseguir el esquema óptimo. En el enfoque relacional es sustancialmente distinto de otros enfoques en términos de sus estructuras lógicas y del modo de las operaciones de entrada/salida.  La información en las bases de datos son representados como datos explícitos. una relación se compone de una colección de registros cuyos propietarios están descritos por cierto número de atributos predeterminados implantados como campos. Por ejemplo. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 24 . Se podría pensar que es lo mismo porque finalmente hay que "normalizar" las tablas de todas formas. Cada columna en una relación representa un campo o un atributo.

ALUMNOS CODIGO 1234 5678 NOMBRES David Bustamante Tomás Alarcón DIRECCIÓN Av. (1234.UNIDAD 2 Lenguaje de Consultas SQL  Lo anterior tiene otra ventaja. David Bustamante. 24 de Mayo Gran Colombia La relación Alumnos tiene la intención de manejar la información de las instancias en la entidad Alumnos. Alumnos (Código. no podemos referenciar una tupla concreta a mediante su posición entre las Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 25 . Relación. en nuestro caso la tabla ALUMNOS es de grado 3. que no sea divisible. cada renglón corresponde a una entidad Alumno y cada columna corresponde a uno de los atributos de la entidad. Esquema o Tabla: Es el nombre que se le da a una relación y el conjunto de atributos en ella. Conceptos básicos Tablas: El modelo relacional proporciona una manera simple de representar los datos: una tabla bidimensional llamada relación. las tuplas pueden estar en cualquier orden. aún cuando se normalice de manera deficiente. Nombres. Dirección) Tuplas o registros: Cada uno de los renglones en una relación conteniendo valores para cada uno de los atributos. El grado de esta tabla es el número de campos que posee. como se explicará más adelante. Claves: Como en una tabla. se garantiza un esquema aceptable. Campos o atributos: Los atributos son las columnas de una relación y describen características particulares de ella. es decir. Sin embargo las relaciones pueden representar más que entidades. Av. 24 de Mayo) Dominios: Se debe considerar que cada campo (columna) debe ser atómico. no se puede pensar en un atributo como un "registro" o "estructura" de datos.

Una clave primaria es aquella columna (pueden ser también dos columnas o más) que identifica únicamente a esa fila. si no es más una conveniencia.3 Conversión del diagrama E-R a tablas En el tema anterior estudiamos un modelo conceptual de datos que nos permitía describir la información que se desea almacenar en una base de datos cualquiera: el modelo Entidad-Relación. la clave puede ser tanto el atributo Código. 4. pero que también puede identificar de forma única a una fila dentro de una tabla. Clave Compuesta: Una clave compuesta es una clave que está compuesta por más de una columna o campo. 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. Clave primaria: De entre todas las claves candidatas. Clave Foránea: Una clave foránea es aquella columna que existiendo como dependiente en una tabla. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 26 . cuando define la tabla. Clave Candidata: En una tabla puede que tengamos más de una clave. P. es a su vez clave primaria en otra tabla. Ejemplo: Si en una tabla Alumnos definimos Código como clave primaria. Una clave es un atributo o conjunto de atributos cuyo valor es único y diferente para cada tupla. y necesitamos alguna forma de seleccionar una tupla concreta.. Muchas veces la clave primaria es autonumérica. las demás claves son las claves candidatas. en tal caso se puede escoger una para ser la clave primaria.ej. debe decidir cuál de ellas va a ser la clave principal o clave primaria. el número de cédula de ese alumno podría ser una clave alternativa. en nuestro caso de la tabla Alumnos. La forma de hacerlo es mediante una clave. el administrador.UNIDAD 2 Lenguaje de Consultas SQL demás. como el atributo Nombre Claves Alternativas: Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria. además es la posible clave primaria.

lo que se pretende con este apartado es pasar de describir conceptualmente el mundo mediante entidades y relaciones. sin embargo. la conversión del diagrama E-R al modelo relacional pasa por dos etapas: una en la que se convierten las entidades. estableciendo cuáles son las entidades fuertes y débiles que intervienen en nuestra base de datos.ai+k.. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 27 . el modelo relacional lo que trata es de representar la información 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). la clave de la tabla correspondiente estará formada por dichos atributos». no hace referencia alguna a la forma en que estos «objetos» se almacenan en ninguna base de datos. Para ello se vale casi únicamente del concepto de tabla. Antes de comenzar es necesario resaltar las diferencias existentes entre estos dos modelos. y las relaciones existentes entre ellas.. y nombres de columna o atributos a1. Una vez preparados los atributos de las entidades y relaciones. De una parte... a describirlo lógicamente mediante tablas. «Una entidad A con atributos a1.aN. y otra en la que se convierten las relaciones. No obstante. entre otras cosas por se trata sólo de un modelo conceptual. el modelo E-R trabaja a nivel conceptual.aN se convierte en una tabla de nombre A.. Por tanto. Por contra. las tablas que se van obteniendo no adoptan su forma definitiva hasta que se ha acabado el proceso. cuando dicho modelo lógico es el modelo relacional. Por otro lado.UNIDAD 2 Lenguaje de Consultas SQL La ventaja de este modelo es que es independiente del modelo lógico sobre el que se vaya a implantar finalmente dicha base de datos. resulta bastante sencillo pasar del diagrama E-R al esquema relacional mediante unas cuantas reglas sencillas y fáciles de aplicar. Si la clave de la entidad A está formada por los atributos ai. Conversión de entidades a tablas..

. y el concepto de tabla relacional. siguiendo con el caso anterior. P. tal y como se ve en el diagrama del la figura.UNIDAD 2 Lenguaje de Consultas SQL En definitiva. será necesario incluir también los atributos correspondientes a su entidad fuerte. la entidad ALUMNO se convertiría en la tabla adjunta. Dado que el número de líneas de detalle de una factura es indeterminado. Fecha Cliente CódigoArtículo Cantidad Número IVA NúmeroLínea PrecioUnitario FACTURA TIENE LÍNEAS DETALLE Gráfico 15 Esquema E-R de una factura Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 28 . Conversión de relaciones binarias a tablas Supongamos el ejemplo de un diagrama que nos permite representar las facturas propias de cualquier negocio. podemos decir que existe una correspondencia directa entre el concepto de entidad del diagrama E-R (una vez eliminados los atributos múltiples y los compuestos). Teléfono Código ALUMNO Gráfico 14 Entidad Alumno ALUMNO CODIGO NOMBRES DIRECCIÓN TELÉFONO Dirección Nombres Si la entidad es débil. es necesario crear una relación débil que relacione cada factura con los detalles que en ella se facturan.ej. en la que no hay ningún dato insertado. indispensables para poder establecer una clave identificativa en la tabla así formada.

en un sistema en el que queremos representar parte de un gimnasio. sino que modifica una de las dos tablas correspondientes a las entidades que relaciona. en la que se observa quela tabla de LÍNEAS DE DETALLE hereda los atributos que forman la clave de FACTURAS.ai+k y bj. «Una relación R del tipo uno a uno con atributos r1. no da lugar a una tabla nueva. modifica la tabla de la entidad A.. de manera que un cliente alquila un casillero para guardar su ropa.. Con este método está claro cuáles son las instancias de LÍNEAS DE DETALLE que se relacionan con cada Factura concreta..UNIDAD 2 Lenguaje de Consultas SQL FACTURA NÚMERO FECHA CLIENTE IVA LÍNEAS DE DETALLE NÚMERO_ FACTURA NÚMERO LÍNEA CANTIDAD CÓDIGO ARTÍCULO PRECIO UNITARIO Cuando convertimos las entidades FACTURAS y LÍNEAS DE DETALLE en sus tablas correspondientes.. todo caso que se conoce la clave de dicha Factura a través de Número de Factura..rN».bj+m y r1.. la relación débil Detalle queda representada en el modelo relacional por la inclusión de la clave de la relación fuerte en la tabla de la débil. Por ejemplo. De esta forma. supongamos el diagrama E-R de la figura que representa a una entidad CLIENTES y a una entidad CASILLEROS DE ROPA. averiguar a qué Factura pertenece una Línea de Detalle es trivial. Por otro lado.bj+m...rN que relaciona entidades A y B de claves ai. y los suyos propios. obtenemos las de la figura.. y un CASILLEROS DE ROPA sólo puede pertenecer como mucho a un CLIENTE. ya que partiendo del Número de la Factura buscamos todas las tuplas de LÍNEAS DE DETALLE en las que coincida su atributo Número de Factura. esto es bj. Conversión de relaciones uno a uno La conversión de una relación uno a uno.. añadiéndole como atributos los de la clave de B. Esta situación Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 29 .

y los atributos de la relación CASILLEROS DE ROPA. Nombre Apellido Dirección Cédula Número Situación CLIENTE ALQUILA CASILLERO ROPA FechaAlquiler Duración Gráfico 16 Esquema E-R con relación uno a uno Tras convertir las entidades CLIENTES y CASILLEROS DE ROPA en tablas. En nuestro caso.UNIDAD 2 Lenguaje de Consultas SQL se representa mediante la relación ALQUILA. CLIENTE CÉDULA NOMBRE APELLIDO DIRECCIÓN CASILLERO DE ROPA NÚMERO SITUACIÓN Si ahora aplicamos la regla dada anteriormente. se obtienen las de la figura adjunta. que en tal caso es del tipo uno a uno. Supongamos que la entidad A es CLIENTES. en el sentido de que hace referencia a una entidad A y otra B. ampliaremos la tabla de Clientes con la clave de CASILLEROS DE ROPA. ya que el proceso a seguir es idéntico escojamos la que escojamos. CLIENTE CÉDULA NOMBRE APELLIDO DIRECCIÓN NÚMERO FECHA DURACIÓN ALQUILER Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 30 . en tal caso para convertir la relación ALQUILA con atributos Fecha alquiler y Duración. o sea Número. dando lugar a la tabla siguiente. nos damos cuenta de su ambigüedad. da lo mismo cual consideremos como entidad A (si a CLIENTES o CASILLEROS DE ROPA).

...UNIDAD 2 Lenguaje de Consultas SQL Como resultado de esta conversión. acompañamos la adición de esta clave con la adición de los atributos propios de la relación. da lugar a lo que se llama clave foránea. en este caso el atributo Número. Por otro lado. en qué Fecha alquiler y por cuánta Duración. lo hemos convertido en tablas y atributos insertados en ellas que nos permiten «seguir el hilo» de las instancias relacionadas. qué CLIENTE la ha alquilado. y consiste en migrar una de las claves a la tabla correspondiente a la otra entidad. lo que en el diagrama E-R no era más que un dibujo que relacionaba instancias de una entidad. Por tanto. esto es ai. Conversión de relaciones uno a muchos. «Una relación R del tipo uno a muchos con atributos r1.. hemos transformado una tabla añadiéndole atributos que permiten seguir la relación existente entre un CLIENTE y un CASILLERO DE ROPA. con lo que podemos saber qué CASILLERO DE ROPA ha alquilado cada CLIENTE.. en la que la clave de una tabla «emigra» a otra. la solución es muy parecida a la del punto anterior. añadiéndole como atributos los de la clave de A.. Asimismo.rN».ai+k y r1. que. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 31 . que no es más que el conjunto de atributos que conforman la clave migrada. Podemos saber directamente qué CASILLEROS DE ROPA tiene asignado un CLIENTE sin más que consultar su clave.bj+m de manera que una instancia de A se puede relacionar con muchas de B. basta con inspeccionar todas las tuplas de Clientes en busca de uno cuyo atributo Número coincida con el que estamos buscando.. y los suyos propios.. Esta operación. identifica de forma única una tupla en la tabla de CASILLEROS DE ROPA.ai+k y bj. por el hecho de ser clave. para saber a partir de un Número de CASILLERO DE ROPA. Cuando la relación que se desea convertir es del tipo uno a muchos... modifica la tabla de la entidad B.rN que relaciona entidades A y B de claves ai.

y VUELOS hace las veces de entidad B. dando lugar al siguiente esquema. COMPAÑIAS NOMBRE DIRECCIÓN NACIONALIDAD VUELOS DESCRIPTOR LUGAR DE SALIDA FECHA DE SALIDA SITUACIÓN DESTINO NOMBRE Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 32 . observamos que una COMPAÑÍA se relaciona con muchos VUELOS. Por tanto. Esto puede verse en la figura adjunta. para convertir la relación. COMPAÑIAS NOMBRE DIRECCIÓN NACIONALIDAD VUELOS DESCRIPTOR LUGAR DE SALIDA FECHA DE SALIDA SITUACIÓN DESTINO En esta situación.UNIDAD 2 Lenguaje de Consultas SQL Típico ejemplo de esta situación es el diagrama E-R que representa la relación entre una lista de vuelos comerciales y las compañías aéreas que los realizan. por lo que siguiendo la regla anterior. para convertir la relación REALIZAR al modelo relacional. basta con incluir la clave de COMPAÑÍAS en la tabla de VUELOS. COMPAÑÍA hace las veces de entidad A. FechaDeSalida Situación Nacionalidad LugarDeSalida Dirección Nombre Descriptor Destino COMPAÑÍAS REALIZA VUELOS Gráfico 17 Esquema E-R con relación uno a muchos Tras haber convertido las entidades en tablas se obtienen las de la figura siguiente.

Esto es posible porque cuando se hace referencia a CÉDULA. pues tendríamos dos atributos con el mismo nombre. la tabla VUELOS podría haber quedado como se ve en la figura: el atributo Nombre ha pasado a llamarse Nombre de Compañía.UNIDAD 2 Lenguaje de Consultas SQL En este caso. en el caso anterior. la relación REALIZAR carece de atributos propios por lo que no se añaden más atributos a la tabla de VUELOS. y a la vez tener la entidad EMPLEADOS con un atributo también llamado CÉDULA. cuando se migra la clave de una tabla a otra. Sin embargo. tanto si se produce esa situación como si no.. AV-098. etc. es que el atributo Nombre de Compañía sigue siendo clave foránea. vemos que en ciertas situaciones es necesario migrar las claves de unas entidades a otras. p. Pues bien. nada nos impide renombrar los atributos en su nueva ubicación. en lugar de llamarse Descriptor se llamase Nombre? Está claro que cuando se migrase la clave de la COMPAÑÍA a la tabla de VUELOS habría un problema. ¿qué ocurriría si el atributo que forma la clave de VUELOS (destinado a guardar el código del vuelo: IB-713. Por ejemplo. en cualquier caso. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 33 . aunque tenga distinto nombre. 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. puede ser común tener la entidad CLIENTES con un atributo CÉDULA. COMPAÑIAS NOMBRE DIRECCIÓN NACIONALIDAD VUELOS DESCRIPTOR LUGAR DE SALIDA FECHA DE SALIDA SITUACIÓN DESTINO NOMBRE DE COMPAÑÍA Lo que sí está claro. es necesario también indicar la entidad a que nos referimos: CLIENTES o EMPLEADOS.ej.). en el momento de efectuar la conversión del diagrama a las tablas relacionales. lo cual puede dar conflictos de nombres. Por ejemplo.

rN.ai+k y bj..ai+k. y r1.. Por tanto.UNIDAD 2 Lenguaje de Consultas SQL Conversión de relaciones muchos a muchos. y con los atributos Veces Matriculado y Convocatorias Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 34 . la solución pasa por crear una nueva tabla con el único objetivo de contener los pares de instancias que se relacionan. Este es el caso más general de conversión de relaciones.... esto es ai. evidentemente.. se convierte en una tabla llamada R y compuesta por los atributos de las claves de A y B. En el caso de las relaciones muchos a muchos no podemos ampliar ninguna de las tablas asociadas porque necesitaríamos un número indeterminado de claves foráneas. se almacena tan sólo la información identificativa: la clave. ya que como veremos implica la creación de tablas nuevas y la duplicación de información en gran cantidad. El único motivo por el que no se da esta regla como única regla general es la eficiencia.. así como por los atributos propios de la relación R. la conversión implica crear una nueva tabla con el mismo nombre. Los atributos ai.ai+k.. bj. o sea MATRÍCULAS. pudiendo incluso aplicarse en las relaciones uno a uno y uno a muchos.. según la regla anterior.. Para ilustrar esto. bj. El diagrama E-R que representa puede verse en la figura. «Una relación R del tipo muchos a muchos con atributos r1. en lugar de repetir toda la información de cada instancia.bj+m forman la clave de la nueva tabla»...rN que relaciona entidades A y B de claves ai. Nombre Apellido AñoNacimiento Cédula Código MATRICULA Nombre ALUMNO ConvocatoriasAgotadas CLUB VecesMatriculado Gráfico 18 Esquema E-R con relación muchos a muchos Dado que la relación MATRÍCULAS es muchos a muchos.. supongamos que queremos representar la información relativa a los ALUMNOS del colegio y los CLUBES en que se halan matriculados...bj+m.bj+m respectivamente..

ALUMNOS CÉDULA NOMBRE APELLIDO AÑO DE NACIMIENTO CLUB CÓDIGO NOMBRE MATRÍCULA CLUB CÉDULA ALUMNO CÓDIGO DE CLUB VECES MATRICULADO CONVOCATORIAS AGOTADAS Con este esquema de tablas. así como las claves de ALUMNOS y ASIGNATURAS.UNIDAD 2 Lenguaje de Consultas SQL Agotadas. Para saber el nombre de cada club utilizaremos el Código de club como clave para buscar el nombre en la tabla CLUBES. tal y como explicábamos en el capítulo de diagramas E-R. cada tupla en la que aparezca contendrá además la clave de una de los clubes en la que está matriculado. índice de contenidos. Se evaluará: Portada. recomendaciones y bibliografía. que podemos renombrar como Cédula del Alumno y Código de Club. o sea. basta con buscar todas las veces que parezca su cédula en la tabla MATRÍCULAS. calidad de la teoría investigada. Es interesante hacer notar la necesidad de los atributos asociados a la relación. para saber en qué CLUBES se ha matriculado un alumno concreto. conclusiones. ejemplos. Recuerde que una buena investigación implica una buena sustentación de la misma. índice de gráficos (si es que los hay). quedando las tablas de la figura siguiente. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 35 . ACTIVIDAD Investigue cómo se hace la Transformación de relaciones no binarias a tablas. Cédula y Código.

ESPECIALIDAD. Anomalías de actualización: cuando al cambiar la información en una tupla se descuida el actualizarla en otra. Normalización desde el punto de vista del diseño lógico de una base de datos 5.UNIDAD 2 Lenguaje de Consultas SQL 5. Si eliminamos la materia CCNN 2. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 36 .2 Dependencia Funcional En el diseño de esquemas de bases de datos el concepto de dependencia funcional (functional dependency) es vital para eliminar "redundancia". 2. ALUMNOS ALUMNO David Bustamante David Bustamante David Bustamante Polo García Raúl Bolaños Raúl Bolaños CURSO Décimo Décimo Décimo Octavo Noveno Noveno PARALELO F F F A B B EDAD 14 14 14 12 13 14 ESPECIALIDAD Básica Básica Básica Básica Básica Básica MATERIA Matemáticas III Computación III Inglés III CCNN I Inglés II CCSS II 5. 3. Los problemas tales como la redundancia que ocurren cuando se abarrotan demasiados datos en una sola relación son llamados anomalías. Redundancia: la información se repite innecesariamente en muchas tuplas. Los principales tipos son: 1. Si en la relación encontramos que la EDAD de David Bustamante es 15 podríamos cambiarlo únicamente para la primer tupla y olvidar actualizar las demás. Anomalías de eliminación: si un conjunto de valores llegan a estar vacíos y se llega a perder información relacionada como un efecto de la eliminación.1 Introducción Teórica Una vez creadas las tablas en el modelo relacional hay que verificarlas y revisar si aún se puede reducir u optimizar de alguna manera. CURSO. En la relación siguiente: ALUMNO. perdemos también la tupla del alumno Polo García. PARALELO.

David Bustamante no puede tener 314 años y Humberto López no puede estar en Tercero de Bachillerato cuando sólo tiene 12 años de edad. Nombre. Estas restricciones surgen de comprender el significado de las componentes de las tuplas. Edad. Como vimos anteriormente. Restricciones que dependen de la igualdad o desigualdad de valores. más allá de cuál 9 Restricciones: Es una condición que obliga el cumplimiento de ciertas condiciones en la bases de datos. no puede suceder que Pedro y Mario Osorio tengan el mismo valor en el campo CÓDIGO. Estas restricciones no dependen de qué valor tiene una tupla en una componente dada. pero es necesario considerarlas para que el DBMS chequee los errores que posiblemente ocurrirán en el momento de cargar los datos. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 37 . Conocer estas restricciones no ayudan a lograr un buen diseño de la base de datos. En el ejemplo anterior. En el ejemplo anterior. aún cuando los valores de las tuplas hayan sido tomados de los dominios correctos. estos hechos del mundo real implican que no todo conjunto de tuplas conforman una instancia válida del esquema de relación. sino que se basan en que dos tuplas coinciden en ciertas componentes. Curso} La siguiente instancia no es válida: ALUMNOS CÓDIGO 1234 5678 9101 1121 5678 NOMBRE David Bustamante Tomás Alarcón Humberto López Miguel Farfán Mario Osorio EDAD CURSO 314 15 12 16 15 Décimo 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 semántica del dominio. Por ejemplo.UNIDAD 2 Lenguaje de Consultas SQL otros factores sería el manejo de dependencias multivaluadas y las restricciones de integridad referencial. las relaciones pueden usarse como modelos del “mundo real”. si tenemos el esquema: Alumnos= {Código.

Las dependencias funcionales representan restricciones de la realidad. 5. Cada tipo de dependencia es un caso particular de la que le sigue. Existen distintos algunos tipos de dependencias: funcionales. Por alcance de éste curso analizaremos solamente las dependencias funcionales. ¿Entonces qué es la Dependencia funcional? Una dependencia funcional es una conexión entre uno o más atributos. Las dependencias funcionales del sistema se escriben utilizando una flecha. 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. de la siguiente manera: FechaDeNacimiento  Edad Aquí a FechaDeNacimiento se le conoce como un determinante. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 38 . Si deseamos disponer de métodos algorítmicos eficientes para el diseño de una base de datos relacional debemos primero estudiar y resolver problemas relacionados con la manipulación de dependencias entre los datos. multivaluadas. Se puede leer de dos formas FechaDeNacimiento determina a Edad o Edad es funcionalmente dependiente de FechaDeNacimiento. Por consiguiente. Estas restricciones se conocen con el nombre de dependencias. Las dependencias funcionales son afirmaciones del “mundo real” que nos dicen qué instancias son válidas para un esquema R.3 ¿Qué es la Normalización? Se puede entender la normalización como una serie de reglas que sirven para ayudar a desarrollar tablas que minimicen los problemas de lógica. Cada regla está basada en la que le antecede.UNIDAD 2 Lenguaje de Consultas SQL sea ese valor. de inclusión y de producto (join). Por ejemplo si conocemos el valor de FechaDeNacimiento podemos conocer el valor de Edad.

Estos criterios se refieren básicamente a asegurarse que la tabla Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 39 ..UNIDAD 2 Lenguaje de Consultas SQL Una de las ventajas de la normalización de base de datos es el consumo de espacio. Esto puede parecer un poco confuso al principio. Hay menos repetición de datos. Si no posee ciclos repetitivos Una columna no puede tener múltiples valores. mínimos. (Si a cada valor de X le pertenece un valor de Y. Una tabla de base de datos relacional que se adhiere a la 1NF es una que satisface cierto conjunto mínimo de criterios.. Cuando una base de datos se conforma a un nivel. El proceso de normalización tiene un nombre y una serie de reglas para cada fase. Un atributo es atómico si los elementos del dominio son indivisibles. No siempre es una buena idea tener una base de datos conformada en el nivel más alto de normalización. Los datos son atómicos. Todos los atributos son atómicos. Cada una de estas formas tiene sus propias reglas. puede llevar a un nivel de complejidad que pudiera ser evitado si estuviera en un nivel más bajo de normalización. así como las razones para hacerlo de esta manera. La tabla no contiene atributos nulos 4. La tabla contiene una clave primaria 3. pero poco a poco se va entendiendo el proceso. 5. La primera forma normal (1NF o forma mínima) es una forma normal usada en normalización de bases de datos. se considera normalizada a esa forma de normalización. Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF).4 Primera Forma Normal (1FN) Una tabla está en Primera Forma Normal sólo si 1. lo que tiene como consecuencia un mucho menor uso de espacio en disco. entonces a cada valor de Y le pertenece un valor de X). Grados de normalización Existen básicamente tres niveles de normalización: Primera Forma Normal (1NF). Una base de datos normalizada ocupa menos espacio en disco que una no normalizada.. 2.

la 1NF sí los permite12. Todas las columnas son regulares. que satisface las siguientes cinco condiciones: 1. 14 Vistas: Es el resultado de una consulta en de una o varias tablas utilizando un lenguaje propio de base de datos llamado SQL. Cada intersección de fila-y-columna contiene exactamente un valor del dominio aplicable (y nada más). La violación de cualquiera de estas condiciones significaría que la tabla no es estrictamente relacional. lo que significa. no hay un acuerdo universal en cuanto a qué características descalificarían a una tabla de estar en 1NF. Por otro lado. según lo definido por otros autores. Navathe) Siguiendo el precedente establecido por Edgar. Codd. tal y como es definida por algunos autores10 excluye "atributos relación-valor". 5. es decir. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 40 . 4. 13 Timestams: Es una secuencia de caracteres que denotan la hora y fecha (o alguna de ellas) en la cual ocurrió determinado evento. el concepto de "grupo repetitivo". Las tablas 1NF como representaciones de relaciones Según la definición de Date de la 1NF. es decir.UNIDAD 2 Lenguaje de Consultas SQL es una representación fiel de una relación y está libre de "grupos repetitivos". Codd. No hay orden de arriba-a-abajo en las filas. una tabla está en 1NF si y solo si es "isomorfa a alguna relación". Como una consecuencia. es entendido de diversas maneras por diferentes teóricos.F. las filas no tienen componentes como IDs de fila. No hay filas duplicadas. 2. Trabajó en IBM. Christopher Date. Muy notablemente. (nacido en 1941) es autor. 3. la 1NF. Algunos ejemplos de tablas (o de vistas14) que no satisface esta definición de 1NF son: 10 11 Algunos de esos autores son: Ramez Elmasri y Shamkant B. Es el investigador principal del modelo relacional de bases de datos de Edgar F. especializado en la tecnología de bases de datos relacionales. científico informático inglés (1923-2003) uno de los padres de las bases de datos relacionales 12 Según como le define como la define Chris Date. No hay orden de izquierda-a-derecha en las columnas. y por lo tanto no está en 1NF. o timestamps13 ocultos. específicamente. tablas dentro de tablas11. Sin embargo. investigador y consultor independiente. también se lo puede considerar una tabla virtual. IDs de objeto.

Procede a definir una tabla de ALUMNO como la que sigue: CODIGO 1234 5678 9101 NOMBRE David Tomás Humberto APELLIDO Bustamante Alarcón López DIRECCIÓN Av. concierne a grupos repetidos. Ejemplo 1: Dominios y valores Suponga que un diseñador principiante desea guardar los nombres y los números telefónicos de los alumnos.  Una tabla con por lo menos un atributo que pueda ser nulo. Un atributo que pueda ser nulo estaría en violación de la condición 4. según el modelo original de Codd sobre el modelo relacional. el cual hizo disposición explícita para los nulos. 24 de Mayo Gran Colombia Luis Cordero TELÉFONO 2832098 2813145 4096473 Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 41 .UNIDAD 2 Lenguaje de Consultas SQL   Una tabla que carece de una clave primaria. en violación de la 1NF. Sin embargo. Muchos autores consideran que una tabla está en 1FN si ninguna clave candidata puede contener valores nulos. de modo que el orden de la fila sea un aspecto intrínseco y significativo de la vista. que requiere a cada campo contener exactamente un valor de su dominio de columna. Una vista cuya definición exige que los resultados sean retornados en un orden particular. en violación de la condición 3. Grupos repetidos La cuarta condición de Date. debe ser observado que este aspecto de la condición 4 es controvertido. Las tuplas en relaciones verdaderas no están ordenadas una con respecto de la otra. El siguiente ejemplo ilustra cómo un diseño de base de datos puede incorporar la repetición de grupos. Esta tabla podría acomodar filas duplicadas. que expresa "lo que la mayoría de la gente piensa como la característica que define la 1NF". Esto viola la condición 1. pero se aceptan éstos para atributos (campos) que no sean clave.

la representación de arriba no está en 1NF. y Teléfono 3. esta representación hace uso de columnas que permiten valores nulos. el diseño no está en armonía con el espíritu de 1NF. Es difícil contestar preguntas tales como "¿Qué alumnos tienen el teléfono X?" y "¿Qué pares de alumnos comparten un número de teléfono?". para esa materia) prohíbe a un campo contener más de un valor de su dominio de columna. Incluso si se contempla la posibilidad de columnas con valores nulos. el dividir del número de teléfono en tres encabezados es artificial y causa problemas lógicos. Razona que la manera más simple de hacer esto es permitir que el campo "Teléfono" contenga más de un valor en cualquier registro dado: CODIGO 1234 5678 9101 NOMBRE David Tomás Humberto APELLIDO Bustamante Alarcón López DIRECCIÓN Av. el diseñador se da cuenta de un requisito: debe guardar múltiples números telefónicos para algunos alumnos. La 1NF (y. 24 de Mayo Gran Colombia Luis Cordero TELÉFONO 1 TELÉFONO 2 TELÉFONO 3 2832098 2813145 4096473 2831276 Humberto López Sin embargo. Estos problemas incluyen:  Dificultad en hacer consultas a la tabla. Ejemplo 2: Grupos repetidos a través de columnas El diseñador puede evitar esta restricción definiendo múltiples columnas del número telefónico: CODIGO NOMBRE APELLIDO 1234 5678 9101 David Tomás Bustamante Alarcón DIRECCIÓN Av. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 42 . comparten exactamente el mismo dominio y exactamente el mismo significado. 24 de Mayo Gran Colombia Luis Cordero TELÉFONO 2832098 2813145 2831276 4096473 Asumiendo. sin embargo. Teléfono 1. el dominio de cadenas de 12 caracteres de longitud).UNIDAD 2 Lenguaje de Consultas SQL En este punto. y por lo tanto no se conforman con la definición de la 1NF de Date. que la columna "Teléfono" está definida en algún tipo de dominio de número telefónico (por ejemplo. Teléfono 2.

pero alterando su dominio. en vez de (como idealmente debe ser el caso) al revés. 2831276 4096473 Éste es defendiblemente el peor diseño de todos. 24 de Mayo Gran Colombia Luis Cordero TELÉFONO 1 2832098 2813145. Esto significa que el diseño de la base de datos está imponiendo restricciones al proceso de la institución. Una consulta como "¿Qué pares de clientes comparten un número telefónico?" es virtualmente imposible de formular. ya que ahora puede representar. dada la necesidad de proveerse de listas de números telefónicos así como números telefónicos individuales. Ejemplo 3: Repetición de grupos dentro de columnas El diseñador puede. estamos obligados a guardar solamente tres y dejar el cuarto sin guardar. alternativamente. son también imposibles de definir significativas restricciones en números telefónicos. y otra vez no mantiene el espíritu de la 1NF. haciendo una cadena de suficiente longitud para acomodar múltiples números telefónicos: CODIGO 1234 5678 9101 NOMBRE David Tomás Humberto APELLIDO Bustamante Alarcón López DIRECCIÓN Av. conservar una sola columna de número de teléfono. o de hecho cualquier cosa. Con este diseño en la RDBMS. El encabezado "Teléfono" llega a ser semánticamente difuso. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 43 . o una lista de números de teléfono. Un diseño conforme con 1NF Un diseño que está inequívocamente en 1NF hace uso de dos tablas: una tabla de cliente y una tabla de teléfono del alumno. Si viene un alumno con cuatro números de teléfono.  La restricción de los números de teléfono por alumno a tres. Al alumno 9101 se le puede dar equivocadamente un valor para el Teléfono 2 que es exactamente igual que el valor de su Teléfono 1.UNIDAD 2 Lenguaje de Consultas SQL  La imposibilidad de hacer cumplir la unicidad los enlaces Cliente-a- Teléfono por medio del RDBMS. o un número de teléfono.

un sistema de gestión de datos que estaba fielmente basado al modelo relacional. más notablemente la de E.F. Codd indica que "se requiere que los valores sean atómicos con respecto al DBMS en los dominios en los que cada relación es definida". Codd define un valor atómico como uno que "no puede ser descompuesto en pedazos más pequeños por el DBMS (excepto ciertas funciones especiales)". si algún. la noción de un "valor que no puede ser descompuesto" es problemática. En lugar de eso. pues parecería implicar que pocos. fue arquitecto principal de “Bussiness System 12.UNIDAD 2 Lenguaje de Consultas SQL ALUMNO CODIGO 1234 5678 9101 NOMBRE David Tomás Humberto APELLIDO Bustamante Alarcón López DIRECCIÓN Av. cada enlace Alumno-a-Teléfono aparece en su propio registro. Atomicidad Algunas definiciones de 1NF. estuvo involucrado en la historia de los modelos relacionales desde su inicio. 24 de Mayo Gran Colombia Luis Cordero TELÉFONOS DE ALUMNOS CODIGO TELÉFONO 1234 5678 5678 9101 2832098 2813145 2831276 4096473 En este diseño no ocurren grupos repetidos de números telefónicos. y que esta ambigüedad ha conducido a una extensa confusión sobre cómo debe ser entendida la 1NF. hacen referencia al concepto de atomicidad. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 44 . Codd. tipos de datos son atómicos: 15 Hugh Darwen: Ex empleado de la IBM. Hugh Darwen15 y Chris Date han sugerido que el concepto de Codd de un "valor atómico" es ambiguo. En particular.

Las columnas de cualquier tipo de datos concebible (desde tipos de cadenas y tipos numéricos hasta tipos de arreglos y tipos de tabla) son entonces aceptables en una tabla 1NF aunque quizás no siempre deseable. Específicamente: una tabla 1NF está en 2NF si y solo si. ya que el RDBMS típicamente operadores para descomponerlo en proporciona componentes de números enteros y fraccionarios. dada cualquier clave candidata y cualquier atributo que no sea un constituyente de la clave candidato. Si esta posición es aceptada. Las siglas de la materia Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 45 . 16 RDBMS: Siglas en inglés de Relational Database Management System que traducido al español significa Sistema administrador de bases de datos relacionales (SGBD).UNIDAD 2 Lenguaje de Consultas SQL  Una cadena de caracteres parecería no ser atómica. ya que el RDBMS proporciona típicamente operadores para descomponerla los componentes de día. y año. La segunda forma normal (2NF) es una forma normal usada en normalización de bases de datos. Es decir que no existen dependencias parciales. Codd en 1971.  Un número de punto fijo parecería no ser atómico. Date sugiere que "la noción de atomicidad no tiene ningún significado absoluto": un valor puede ser considerado atómico para algunos propósitos. Una tabla que está en la primera forma normal (1NF) debe satisfacer criterios adicionales para calificar para la segunda forma normal. 5.  Una fecha parecería no ser atómica. pero puede ser considerado un ensamblaje de elementos más básicos para otros propósitos. la 1NF no puede ser definida con referencia a la atomicidad. mes. ya que el RDBMS16 típicamente proporciona operadores para descomponerla en subcadenas.5 Segunda Forma Normal (2NF) Una relación 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.F. el atributo no clave depende de toda la clave candidata en vez de solo una parte de ella. La 2NF fue definida originalmente por E.

Observe la redundancia de la manera en que son CURSO: nos dicen tres veces que David Bustamante está en Décimo y dos veces que Humberto López está en Tercero de Bachillerato. es dependiente en solo parte de la clave candidata.UNIDAD 2 Lenguaje de Consultas SQL En términos levemente más 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. Una alternativa 2NF a este diseño representaría la misma información en dos tablas: ALUMNOS ALUMNO David Bustamante Tomás Alarcón Miguel Farfán CURSO Décimo Primero de Bachillerato Segundo de Bachillerato Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 46 . llamada ALUMNO. Esta redundancia hace a la tabla vulnerable a anomalías de actualización: por ejemplo. CLUB}. es posible actualizar el CURSO de David Bustamante en sus registros "Fútbol" y "Ajedrez" y no actualizar su registro "Música". Los datos resultantes implicarían respuestas contradictorias a la pregunta "¿Cuál es el lugar CURSO actual de David Bustamante?". CURSO. Por lo tanto la tabla no está en 2NF. El atributo restante. la tabla está automáticamente en 2NF. Ejemplo Considere una tabla describiendo los clubes a los que asisten los alumnos: Clubes de los alumnos ALUMNO CLUB David Bustamante Fútbol David Bustamante Ajedrez David Bustamante Música Tomás Alarcón Básquet Humberto López Ajedrez Humberto López Judo Miguel Farfán Música CURSO Décimo Décimo Décimo Primero de Bachillerato Tercero de Bachillerato Tercero de Bachillerato Segundo de Bachillerato La única clave candidata de la tabla es {ALUMNO. Observe que cuando una tabla 1NF no tiene ninguna clave candidata compuesta (claves candidata consistiendo en más de un atributo).

Un ejemplo de una tabla 2NF que sufre de anomalías de actualización es: Campeones Intercolegiales DEPORTE Fútbol Básquet Vóley Fútbol Básquet AÑO 2008 2008 2009 2009 2009 COLEGIO Benigno Malo Técnico Salesiano La Salle Técnico Salesiano Benigno Malo DIRECCIÓN COLEGIO Av.F. de la clave primaria. Don Bosco 2-47 Av. La tercera forma normal (3NF) es una forma normal usada en la normalización de bases de datos. La 3NF fue definida originalmente por E. las cuales están en 2NF. Este problema es tratado por la tercera forma normal (3NF). Don Bosco 2-47 Av. Solano 2-277 Av. depende directamente y no transitivamente. no todas las tablas 2NF están libres de anomalías de actualización. Solano 2-58 Av. 5. Codd en 1971. Solano 2-58 Aunque el COLEGIO y la DIRECCIÓN DEL COLEGIO del campeón están determinadas por una clave completa {DEPORTE. Sin embargo. AÑO} y no son partes de ella. particularmente las combinaciones COLEGIO/DIRECCIÓN DEL COLEGIO del campeón son mostradas redundantemente en múltiples registros. La definición 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) Ningún atributo no-primario de la tabla es dependiente transitivamente en una clave candidata Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 47 .6 Tercera Forma Normal (3FN) La tabla se encuentra en 3FN si es 2FN y cada atributo que no forma parte de ninguna clave.UNIDAD 2 Lenguaje de Consultas SQL CLUBES ALUMNO David Bustamante David Bustamante David Bustamante Tomás Alarcón Humberto López Humberto López Miguel Farfán CLUB Fútbol Ajedrez Música Básquet Ajedrez Judo Música Las anomalías de actualización no pueden ocurrir en estas tablas.

X Z por virtud de X  Y y Y  Z. Es un estudioso de los sistemas de bases de datos relacionales con uso para internet. dada por Carlo Zaniolo17 en 1982. ó A es un atributo primario (es decir. pues no hay nada que impida al mismo 17 Carlo Zaniolo: Nació en Vicenza.UNIDAD 2 Lenguaje de Consultas SQL Un atributo no-primario es un atributo que no pertenece a ninguna clave candidato. Una formulación alternativa de la definición de Codd. Solano 2-277 Av. Es decir. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 48 . Solano 2-58 La violación de la 3NF ocurre porque el atributo no primario DIRECCIÓN COLEGIO es dependiente transitivamente de {DEPORTE. que a su vez depende de X. AÑO} vía el atributo no primario COLEGIO. Solano 2-58 Av. Don Bosco 2-47 Av. La BCNF simplemente elimina la tercera alternativa ("A es un atributo primario"). 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. El hecho de que la DIRECCIÓN DEL COLEGIO del campeón es funcionalmente dependiente en el COLEGIO hace la tabla vulnerable a inconsistencias lógicas. Ejemplo: Una tabla 2NF que falla en satisfacer los requisitos de la 3NF es: Campeones Intercolegiales DEPORTE Fútbol Básquet Vóley Fútbol Básquet AÑO 2008 2008 2009 2009 2009 COLEGIO Benigno Malo Técnico Salesiano La Salle Técnico Salesiano Benigno Malo DIRECCIÓN COLEGIO Av. A está contenido dentro de una clave candidato) La definición de Zaniolo tiene la ventaja de dar un claro sentido de la diferencia entre la 3NF y la más rigurosa forma normal de Boyce-Codd (BCNF). para cada una de sus dependencias funcionales X  A. por lo menos una de las condiciones siguientes se mantiene:    X contiene A. es ésta: Una tabla está en 3NF si y solo si. ó X es una superclave. Don Bosco 2-47 Av. Italia.

Don Bosco 2-47 Av. Solano 2-58 Av. Solano 2-277 Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 49 . Para expresar los mismos hechos sin violar la 3NF.UNIDAD 2 Lenguaje de Consultas SQL COLEGIO ser mostrado con diferentes DIRECCIÓN DE COLEGIO en diversos registros. es necesario dividir la tabla en dos: Campeones Intercolegiales DEPORTE Fútbol Básquet Vóley Fútbol Básquet AÑO 2008 2008 2009 2009 2009 COLEGIO Benigno Malo Técnico Salesiano La Salle Técnico Salesiano Benigno Malo Colegios COLEGIO Benigno Malo Técnico Salesiano La Salle DIRECCIÓN COLEGIO Av.

UNIDAD 2 Lenguaje de Consultas SQL SGBD Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 50 .

Pero como sucede con cualquier sistema de normalización hay excepciones para casi todo. aunque si se puede asegurar que cualquier sentencia escrita en ANSI será interpretable por cualquier motor de datos.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. 20 Donald Chamberlin: Científico americano nacido en 1944. programas y servicios relacionados a la informática. entre 1976 y 1977. tiene su sede en New York y está constituido desde el 15 de junio de 1911. Las experimentaciones con ese prototipo condujeron. de hecho. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 51 . a una revisión del lenguaje (SEQUEL/2).2 Breve Historia La historia de SQL empieza en 1974 con la definición. de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. por lo tanto. se adoptó y utilizó internamente en IBM y lo 18 SQL: De las siglas en ingles Structure Query Language que traducido al español significa Lenguaje estructurado de consultas 19 ANSI: De las siglas en inglés American National Standards Institute que traducido al español significa Instituto Nacional de Normalización Estadounidense es una organización que administra y coordina la normalización en los Estados Unidos. que a partir de ese momento cambió de nombre por motivos legales. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. basado en este lenguaje. pero lleva operando desde 1888. El prototipo (System R). Introducción Teórica 1.UNIDAD 2 Lenguaje de Consultas SQL UNIDAD 2 UNIDAD 2 Tema: Lenguaje de consultas SQL 1. el lenguaje SQL normalizado (ANSI19) no nos servirá para resolver todos los problemas. por parte de Donald Chamberlin20 y de otras personas que trabajaban en los laboratorios de investigación de IBM21. es uno de los principales creadores del SQL original junto a Raymond Boyce. cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor. convirtiéndose en SQL. 1. 21 IBM: De las siglas en inglés International Business Machines es una empresa multinacional que fabrica y comercializa herramientas.

UNIDAD 2 Lenguaje de Consultas SQL adoptaron algunos de sus clientes elegidos. El hecho de tener un estándar 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. éste ha sufrido diversas revisiones que han conducido primero a la versión SQL/89 y. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 52 . posteriormente. por desgracia las cosas fueron de otro modo. que no estaba todavía comercializado. el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transformó en estándar ISO22. que se convierte en el estándar industrial de hecho por lo que respecta a las bases de datos relacionales. En los años siguientes. Actualmente. Añade la sentencia TRUNCATE. Desde el punto de vista práctico. incluye los disparadores del tipo INSTEAD OF. en general cada productor adopta e implementa en la propia base de datos sólo el corazón del lenguaje SQL (el así llamado Entry level o al máximo el Intermediate level). IBM comenzó a entregar sus productos relacionales y en 1983 empezó a vender DB2. también otras compañías empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981. En 1986. nacida en 1947. sólo por citar algunos) comercializaron productos basados en SQL. es el organismo encargado de promover el desarrollo de normas internacionales de fabricación. Efectivamente. comercio y comunicación para todas las ramas industriales a excepción de la eléctrica y la electrónica. a la actual SQL/92. Las características principales de esta nueva encarnación de SQL deberían ser el uso de la cláusula ORDER BY fuera de las definiciones de los cursores. numerosas compañías (por ejemplo Oracle y Sysbase. Esta versión del estándar va con el nombre de SQL/86. está en marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO. extendiéndolo de manera individual según la propia visión que cada cual tenga del mundo de las bases de datos. Gracias al éxito de este sistema. que debería terminar en la definición de lo que en este momento se conoce como SQL 2008. En el curso de los años ochenta. 22 ISO: Es la Organización Internacional para la estandarización.

ALUMNO ALUMNO 1 2 3 4 5 6 7 8 9 10 NOMBRE Martin Pablo Roberto Esteban Rubén Sandro Medardo Saúl Bruno Juan APELLIDO Martínez Martínez Sánchez Guerrón Alemán Brito Abril Mogrovejo Méndez Serrano CÓDIGO 5988 5699 6401 8064 8975 3669 6224 9656 8765 8845 SQL es un lenguaje que consta de varias partes  Lenguaje de definición de datos (DDL-Data Definition Language): Es el encargado de la definición de bases de datos. INSERT INTO. apellido y cédula. UPDATE. insertar.3 Componentes del SQL SQL es un lenguaje estandarizado de base de datos. CREATE SYNONYM. y sus atributos serán los campos de la tabla. el cual nos permite realizar tablas y obtener datos de ella de manera muy sencilla. Es la parte que más frecuentemente utilizaremos ya que con ellas se construyen las consultas. en todo lo referente Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 53 . DELETE FROM. CREATE VIEW. Son comandos propios de éste lenguaje: CREATE TABLE. A través de él podemos seleccionar.  Lenguaje de manipulación de datos interactivos (DML-Data Manipulation Language). INSERT. Para exponer más claramente los conceptos se realizaran ejemplo sobre relaciones que se crearan aquí para entender mejor como funciona SQL. tablas. vistas e índices entre otros. cuya misión es la manipulación de datos.UNIDAD 2 Lenguaje de Consultas SQL 1.  Lenguaje de Control de datos (DDL-Data Control Language): encargado de la seguridad de la base de datos. Como ejemplo la siguiente relación (tabla) la llamaremos ALUMNO y sus atributos (campos) son nombre. Son comandos propios de éste lenguaje: SELECT. CREATE INDEX. Cuando aquí nos refiramos a relación estamos hablando más concretamente a la tabla de datos en sí. eliminar y actualizar datos.

. An FROM r1.. REVOKE. Estructura básica La estructura básica de una expresión para consulta SQL consta de tres cláusulas: SELECT FROM WHERE La cláusula SELECT se usa para listar los atributos que se desean en el resultado de una consulta. La cláusula FROM lista las relaciones que se van a examinar en la evaluación de la expresión La cláusula WHERE consta de un predicado23 que implica atributos de las relaciones que aparecen en la cláusula FROM.. r2. rn WHERE P Donde: Ai = atributo (Campo de la tabla) ri = relación (Tabla ) P = predicado (condición) Ejemplo: Seleccionar todos los nombres de los alumnos que tengan el apellido MARTÍNEZ de la tabla ALUMNOS.UNIDAD 2 Lenguaje de Consultas SQL al control de accesos y privilegios entre los usuarios. Son comandos propios de éste lenguaje: GRANT. SELECT nombre FROM alumno WHERE apellido = “Martínez” El resultado es: 23 Predicado: Es la condición que debe cumplir la cláusula WHERE. A2. Una consulta básica en SQL tiene la forma: SELECT A1. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 54 . 2..

nombre AS [PRIMER NOMBRE] FROM alumno P WHERE apellido = “Martínez” PRIMER NOMBRE Martin Pablo En este ejemplo cabe destacar un par de cosas.nombre>... Usar alias en los atributos nos permite cambiar el nombre de los atributos de la respuesta a la consulta. A2. podemos referirnos a este usando la relación (o el alias en este ejemplo) a la que pertenece el atributo seguido de un punto seguido del atributo <P. An puede sustituirse por un asterisco (*) para seleccionar todos los atributos de todas las relaciones que aparecen en la cláusula FROM. SELECT P.. Cuando asociamos un alias con una relación decimos que creamos una variable de tupla. a veces por conveniencia y otras veces por ser necesario. Los corchetes los usamos cuando usamos espacios en blancos o el caratér (-) en el nombre de atributo o alias. En las consultas que contienen subconsultas. el predicado P es verdadero. La lista A1. Cuando nos referimos a un atributo como es el caso de nombre.UNIDAD 2 Lenguaje de Consultas SQL NOMBRE Martin Pablo El resultado de una consulta es por supuesto otra relación.. a veces esta notación será necesaria para eliminar ambigüedades. Alias Es posible renombrar los atributos y las relaciones. Estas variables de tuplas se definen en la cláusula FROM después del nombre de la relación. Si se omite la cláusula WHERE. aunque no es conveniente elegir esta última opción salvo que sea necesario pues desperdiciamos mucho tiempo en obtenerlo 3. para esto usamos la clausula AS como en el siguiente ejemplo. En una subconsulta está permitido usar solo Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 55 . se aplica una regla de ámbito a las variables de tupla.

que es un tipo de datos especial destinado a almacenar archivos...m) Float ALFANUMÉRICOS char(n) varchar(n. 4.UNIDAD 2 Lenguaje de Consultas SQL variables de tupla definidas en la misma subconsulta o en cualquier consulta que tenga la subconsulta. imágenes . los tipos de datos pueden ser numéricos (con o sin decimales). el BLOB (Binary Large Object). Dependiendo de cada gestor de bases de datos el nombre que se da a cada uno de estos tipos puede variar.m) Decimal(n. Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas. aunque en la actualidad casi todos los gestores de bases de datos soportan un nuevo tipo. NUMÉRICOS Integer Numeric(n. Básicamente tenemos los siguientes tipos de datos. de fecha o booleanos(si o no). alfanuméricos. Las operaciones aritméticas en SQL son:     + (Suma) .Según el gestor de base de datos que estemos utilizando los tipos de datos varían. pero se reducen básicamente a los expuestos inmediatamente.(Resta) * (Multiplicación) / (División) Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 56 . Predicados y conectores Los conectores lógicos en SQL son:    AND OR NOT La lógica de estos conectores es igual que en cualquier lenguaje de programación y sirven para unir predicados.m) - FECHA Date DateTime - LÓGICO Bit - BLOB Image Text - 5.

UNIDAD 2 Lenguaje de Consultas SQL También incluye el operador de comparación BETWEEN. código FROM alumno WHERE (código > 6000) AND (código<9000) Otra solución sería utilizando el operador BETWEEN SELECT nombre. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 57 . Ejemplo: Encontrar todos los nombres y códigos de los alumnos cuyos códigos sean mayor que 6 mil y menor a 9 mil. SQL también incluye un operador de selección para comparaciones de cadena de caracteres. Un error muy frecuente es tratar de utilizar los modelos mediante el operador de igualdad (=) lo cual es un error de sintaxis. que se utiliza para valores comprendidos. Una solución sería utilizando el conector lógico AND SELECT nombre. Los modelos se describen usando los caracteres especiales o también conocidos como caracteres comodín: • El carácter (%) es igual a cualquier subcadena • El operador (_) es igual a cualquier caracter Estos modelos se expresan usando el operador de comparación LIKE. código FROM alumno WHERE código BETWEEN 6000 AND 9000 El resultado sería: NOMBRE Roberto Esteban Rubén Medardo Bruno Juan CÓDIGO 6401 8064 8975 6224 8765 8845 Análogamente podemos usar el operador de comparación NOT BETWEEN. Ejemplo: encontrar los nombres que comiencen con la letra p o el nombre tenga exactamente 6 caracteres de la relación alumno.

Así pues en las consultas se listaran todas las tuplas inclusive las repetidas. Por lo tanto SQL permite duplicados en las relaciones. Tuplas duplicadas Los lenguajes de consulta formales se basan en la noción matemática de relación como un conjunto. Por ello nunca aparecen tuplas duplicadas en las relaciones. 6. En aquellos casos en los que queremos forzar la eliminación de duplicados insertamos la palabra clave Ejemplo: Listar todos los apellidos no repetidos de la relación persona SELECT DISTINCT apellido FROM alumno El resultado sería: APELLIDO Martínez Sánchez Guerrón Alemán Brito Abril Mogrovejo Méndez Serrano Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 58 . En la práctica la eliminación de duplicados lleva bastante tiempo.UNIDAD 2 Lenguaje de Consultas SQL SELECT nombre FROM alumno WHERE (nombre LIKE "P%") OR (nombre LIKE "_ _ _ _ _ _") El resultado sería: NOMBRE Martin Pablo Sandro Análogamente podemos buscar desigualdades usando el operador de comparación NOT LIKE.

SELECT nombre FROM alumno WHERE apellido = "Martínez" UNION SELECT nombre FROM alumno WHERE apellido = "Serrano" El resultado sería: NOMBRE Martin Pablo Juan Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 59 . puesto y número_camiseta. Incorporemos ahora una nueva relación. Supongamos que esta nueva tabla está conformada de la siguiente manera: JUGADOR JUGADORES 1 2 3 4 CÓDIGO 5988 5699 9656 9872 PUESTO DELANTERO MEDIO ARQUERO DEFENSA NÚMERO_CAMISETA 9 5 1 3 Ejemplo: Obtener todos los nombres de la relación persona cuyos apellidos sean Martínez o Serrano. que operan sobre relaciones y corresponden a las operaciones del álgebra unión. SQL incluye las operaciones de conjuntos UNION. MINUS. pero debido al uso de DISTINCT en la consulta la relación respuesta solo lista un solo Martínez.UNIDAD 2 Lenguaje de Consultas SQL Si observamos la tabla original de la relación alumno veremos que el apellido Martínez aparecía dos veces. intersección y resta de conjuntos respectivamente. llamada jugadores que representa las personas que juegan al fútbol. sus atributos serán DNI. INTERSECT. Para realizar esta operación de conjuntos debemos tener sumo cuidado que las relaciones tengan las mismas estructuras. 7. Operaciones de conjunto.

apellido FROM alumno WHERE código IN (SELECT código FROM jugadores) El resultado sería: NOMBRE Martin Pablo Juan APELLIDO Martínez Martínez Serrano Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 60 . además. además. Análogamente el conector NOT IN prueba la no pertenencia al conjunto Ejemplo: Encontrar los nombres de los estudiantes que juegan al fútbol y. donde el conjunto es una colección de valores producidos en lo general por una cláusula SELECT. están en la lista de la relación persona: SELECT código FROM alumno INTERSECT SELECT código FROM jugador Y el resultado sería: CÓDIGO 5988 5699 8845 Por omisión. Para retener duplicados se debe escribir UNION ALL en lugar de UNION. se encuentran en la relación alumno SELECT nombre. 7. la operación de unión elimina las tuplas duplicadas.UNIDAD 2 Lenguaje de Consultas SQL Ejemplo: Obtener todos los códigos de los que juegan al fútbol y.1 Pertenencia a un conjunto El conector IN prueba si se es miembro de un conjunto.

.UNIDAD 2 Lenguaje de Consultas SQL Es posible probar la pertenencia de una relación arbitraria SQL usa la notación de elementos <v1.. (=SOME) (>=SOME). su sintaxis es igual que la del conector IN. (>=ALL). que corresponde a la frase << mayor que todos >>. v2.2 Comparación de conjuntos En conjuntos la frase << mayor que algún >> se representa en SQL por (>SOME). (=ALL). (<=ALL) y (<>ALL).. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 61 . Pruebas para relaciones vacías La construcción EXISTS devuelve el valor TRUE si la subconsulta del argumento no está vacía. también podría entenderse esto como << mayor que el menor de >>. (<=SOME) y (<>SOME).vn.. 7. 8.. Tales comparaciones se hacen usando las construcciones CONTAINS y NOT CONTAINS. apellido FROM alumno WHERE EXISTS (SELECT código FROM jugadores WHERE código = 8055) Como el código= 8055 no existe en la relación jugadores. la condición es FALSE y por lo tanto la respuesta es vacía. puede escribirse (>ALL). y la construcción NOT EXISTS devuelve TRUE si la consulta es vacía. Al igual que el operador SOME. También existe la construcción (>ALL). Ejemplo: encontrar todos los nombres y apellidos de la relación persona si es que en la relación jugadores existe un jugador con el número de código 8055. vn> para representar una tupla de elementos de n que contiene los valores v1. En ocasiones podríamos querer comparar conjuntos para determinar si un conjunto contiene los miembros de algún otro conjunto.. SELECT nombre. v2.. SQL también permite las comparaciones (>SOME)..

También es posible ordenar los resultados por más de una atributo Ejemplo: encontrar todos los nombres y apellido de la relación alumno y ordenar los resultados por apellido y nombre en forma descendente SELECT apellido. podemos especificar DESC para orden descendente o ASC para orden ascendente. La cláusula ORDER BY hace que las tupla en el resultado dé una consulta en un orden específico. nombre FROM alumno ORDER BY apellido DESC. nombre DESC El resultado sería: APELLIDO NOMBRE Serrano Sánchez Mogrovejo Méndez Martínez Martínez Guerrón Brito Alemán Abril Juan Roberto Saúl Bruno Pablo Martin Esteban Sandro Rubén Medardo 10. Para especificar el tipo de ordenación. Por omisión SQL lista los elementos en orden ascendente. Ordenación de la presentación de tuplas SQL ofrece al usuario cierto control sobre el orden en el que se va a presentar las tuplas en una relación.UNIDAD 2 Lenguaje de Consultas SQL 9. también incluye funciones para calcular     Promedios AVG Mínimo MIN Máximo MAX Total SUM Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 62 . Funciones de agregación SQL ofrece la posibilidad de calcular funciones en grupos de tuplas usando la cláusula GROUP BY.

UNIDAD 2 Lenguaje de Consultas SQL  Contar COUNT Para los próximos ejemplos incorporamos una nueva relación llamada PROFESIONALES que representara los jugadores profesionales de fútbol. MAX(valor_actual) AS JUG_MAS_CARO FROM profesionales GROUP BY club El resultado sería: CLUB LIGA DE QUITO DEPORTIVO CUENCA JUGADOR_MAS_CARO 250000 1200000. como por ejemplo COUNT (DISTINCT club).00 Hay ocasiones en la que los duplicados deben eliminarse antes de calcular una agregación. Y los valores son los siguientes: PROFESIONALES PROFESIONAL 1 2 3 4 5 CÉDULA AÑOS_ 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. sus atributos serán cédula. años_profesional. valor_actual. Cuando queremos eliminar los duplicados del cálculo usamos la palabra clave DISTINCT antepuesto al atributo de agregación que queremos calcular. club. SUM(valor_actual) AS VALOR_TOTAL.00 Ejemplo: Determinar por cada club cual es el valor_actual del jugador más caro de la relación PROFESIONALES SELECT club. COUNT(club) AS NRO_JUGADORES FROM profesionales GROUP BY club El resultado sería: CLUB LIGA DE QUITO DEPORTIVO CUENCA VALOR_TOTAL NRO_JUGADORES 2 3 250000.00 2300000. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 63 .

Modificación de la base de datos 11. DELETE FROM r WHERE P Donde P presenta un predicado y r representa una relación.UNIDAD 2 Lenguaje de Consultas SQL Hay ocasiones en las que es útil declara condiciones que se aplican a los grupos más que a las tuplas. MAX(valor_actual) AS JUG_MAS_CARO FROM profesionales GROUP BY club HAVING MAX(valor_actual) > 10000 CLUB DEPORTIVO CUENCA JUGADOR_MAS_CARO 1200000. son eliminadas de r. Ejemplo: Determinar por cada club cual es el valor_actual del jugador más caro. no podemos suprimir valores solo de atributos. Las tuplas t en r para las cuales P(t) es verdadero. Podemos suprimir solamente tuplas completas.1 Eliminación Una solicitud de eliminación se expresa casi de igual forma que una consulta. pero con la condición de que este sea mayor a 10000 de la relación PROFESIONALES. Para esto usamos la cláusula HAVING de SQL. las tupla que satisfacen el predicado WHERE son colocadas en grupos por la cláusula GROUP BY.00 Si en la misma consulta aparece una cláusula WHERE y una cláusula HAVING. primero se aplica el predicado de la cláusula WHERE. Si omitimos la cláusula WHERE se eliminan todas las tuplas de la relación r (un buen sistema debería buscar confirmación del usuario antes de ejecutar una acción tan devastadora) Ejemplo: Eliminar todas las tuplas de la relación alumno en donde apellido sea igual a “Brito” Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 64 . SELECT club. 11. Después se aplica la cláusula HAVING a cada grupo.

.2 Inserción Para insertar datos en una relación. v) Ejemplo: Insertar una tupla con los mismos valores de la tupla eliminada en el ejemplo anterior en la relación alumno.UNIDAD 2 Lenguaje de Consultas SQL DELETE FROM alumno WHERE apellido = "Brito" DELETED 1 NOMBRE Sandro APELLIDO Brito CÓDIGO 3669 11. Ejemplo: En la relación jugador actualizar la posición de los jugadores que posean la camiseta número 5 y asignarles la camiseta número 7. Para este propósito usamos la sentencia: UPDATE r1 SET A1 = V1.....An = Vn WHERE P Donde r1 es la relación Ai el atributo a modificar Vi el valor que se le asignara a Ai y P es el predicado. A2 = V2..3 Actualizaciones En ciertas ocasiones podemos desear cambiar los valores de una tupla sin cambiar todos los valores en dicha tupla."Brito"... especificamos una tupla que se va a insertar o escribimos una consulta cuyo resultado es un conjunto de tuplas que se van a insertar. v2. INSERT INTO alumno VALUES ("Sandro". La inserción de tuplas la realizamos mediante las sentencias: INSERT INTO r1 VALUES (v1.3669) 11. UPDATE jugador SET número_camiseta = 7 WHERE número_camiseta = 5 Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 65 .

y al cual aun no le han asignado un número_camiseta."Defensor". Definición de datos 12. esta orden es más fuerte que DELET FROM r ya que esta ultima elimina todas las tuplas pero no destruye la relación. mientras que la primera sí.2 Eliminación Para eliminar una relación usamos la orden DROP TABLE r. Para esto colocamos la palabra reservada NULL como valor del atributo.4 Valores nulos Es posible que para las tuplas insertadas se den valores únicamente a algunos atributos del esquema... apellido ambos de tipo char y tiempo_inhabilit de tipo entero CREATE TABLE lesionado ( nombre CHAR(20).. esta orden elimina toda la información sobre la relación sacada de la base de datos. puesto = defensor. NULL) 12. apellido CHAR(20).An Dn) Donde r es el nombre de la relación. Ejemplo: Insertar en la relación jugadores un jugador con cédula = 0122335631. El resto de los atributos son asignados a valores nulos representados por NULL. A2 D3.UNIDAD 2 Lenguaje de Consultas SQL 11. tiempo_inhabilt INTEGER ) 12. cada Ai es el nombre de un atributo del esquema de la relación r y Di es el tipo de dato de Ai. Ejemplo: eliminar la relación alumno Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 66 . INSERT INTO jugador VALUES(0122335631.. La orden INSERT puede usarse para cargar la relación Ejemplo: crear la relación lesionado con los atributos nombre.1 Creación Una relación en SQL se define usando la orden CREATE TABLE r(A1 D1. Una relación recién creada está vacía.

que representa a las partes. S S# S1 S2 S3 S4 S5 SNOMBRE Salazar Jaimes Bernal Corona Aldana SITUACION 20 10 30 20 30 CIUDAD Londres París París Londres Atenas Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 67 .UNIDAD 2 Lenguaje de Consultas SQL DROP TABLE alumno 12. la clave primaria de la tabla partes es P#. A todas las tuplas en la relación se les asigna NULL como valor de atributo. que representa a los proveedores. Ejercicios Propuestos Los ejercicios de ésta tarea se refieren a una sola base de datos. y la tabla SP. la tabla P. que representa los envíos de partes hechos por los proveedores. La clave primaria de la tabla proveedor es S#. que se compone de tres tablas: la tabla S. de modo que cada envío tiene una combinación única de número de proveedor/número de parte (es decir es la clave primaria combinada de la tabla SP).3 Actualización La orden ALTER TABLE se usa para añadir atributos a una relación existente. 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 relación jugadores ALTER TABLE jugador ADD nombre CHAR(20) ALTER TABLE jugador ADD apellido CHAR(20) 13. Además. supondremos que no pueden existir al mismo tiempo dos envíos del mismo proveedor y de la misma parte.

en orden descendente por situación. Obtener los números de parte de todas las partes suministradas (sin 4. Obtener los datos completos de todos los proveedores.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 París Roma Londres París 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 serán realizados inicialmente en el aula y luego terminado en las casas: 1. Obtener los números de parte de todas las partes suministradas. Obtener los números de proveedor y situación de los proveedores radicados en Paris. Obtener. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 68 . 3. 2. Obtener el número y la situación de todos los proveedores de Paris. 6. el número de parte y su peso en 5. Paris cuya 7. gramos (los pesos de parte se dan el libras en la tabla P) situación sea mayor que 20. Obtener los números de proveedores radicados en valores repetidos). para todas las partes.

Obtener todas las combinaciones de información de proveedor y parte donde el proveedor y la parte en cuestión estén cosituadas. 15. pero omitiendo a los proveedores cuya situación sea 20. (Londres.Obtener los nombres de los proveedores que suministre por lo menos una parte roja. 13. 23. 17. Obtener todas las combinaciones de información de proveedores y partes tales que el proveedor y la parte en cuestión estén situados en la misma ciudad (es decir.Obtener todas las combinaciones de información de proveedor y parte donde la ciudad del proveedor siga a la ciudad de la parte en el orden alfabético. Por ejemplo. por tanto.Obtener los nombres de los proveedores que suministran la parte P2. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 69 . 24.Obtener todas las parejas de números de proveedor tales que los dos proveedores estén cosituados. o sean suministradas por el proveedor S2 (o las dos cosas) 30.UNIDAD 2 Lenguaje de Consultas SQL 8. 22. 28.Obtener los números de los proveedores situados en la misma ciudad que el proveedor S1. 19. 20. el número de parte y la cantidad total enviada de esa parte. Organizar el resultado de la pregunta 4 en orden ascendente por número de parte dentro de un orden ascendente por peso en gramos.Cambiar a color amarillo el color de la parte P2.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. 9. 18. estén cosituados.Obtener el número total de proveedores que suministran partes en la actualidad.Obtener todas las combinaciones de número de proveedor/número de parte tales que el proveedor y la parte estén cosituados. 27. aumente su peso en 5 e indicar que su ciudad es desconocida (NULL). el proveedor S1 suministra la parte P1.Obtener los nombres de proveedores que no suministren la parte P2.Obtener los nombres de proveedores que suministren todas las partes. 29. 11.Obtener la cantidad total suministrada de la parte P2.Obtener los números de las partes que pesen mas de 16 libras. Londres) es una pareja de ciudades que debería aparecer en el resultado. 25. el proveedor S1 está situado en Londres.Obtener los números de los proveedores que suministran por lo menos todas las partes suministradas por el proveedor S2. 12. valga utilizar un término antiestético pero cómodo) 10. 16. 26.Obtener el número total de proveedores. 21. y la parte P1 se almacena en Londres.Obtener para cada parte suministrada.Obtener los números de los proveedores cuya situación sea menor que el valor máximo actual de situación en la tabla S. 14.Obtener los números de todas las partes suministradas por más de un proveedor.Obtener el número de envíos de la parte P2.Obtener todas las partes cuyos nombres comiencen con la letra B.

UNIDAD 2 Lenguaje de Consultas SQL
31.Duplicar la situación de todos los proveedores situados en Londres. 32.Cambiar el número de proveedor S2 a S9. 33.Eliminar el proveedor S5. 34.Eliminar todos los envíos cuya cantidad sea mayor que 300. 35.Eliminar todos los embarques. 36.Eliminar todos los envíos de los proveedores situados en Londres. 37.Añadir la parte P7 (ciudad: Atenas, peso:24, nombre y color

desconocido por ahora) a la tabla P. 38.Añadir la parte P8( nombre: cadena, color: rosa, peso:14, ciudad: Niza) a la tabla P. 39.Insertar un nuevo envio con número de proveedor S20, número de parte P20 y cantidad 100. 40.Para cada parte suministrada, obtener el número 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 envíos cuyas cantidades sean menores o iguales a 200), obtener el número de parte, el peso en gramos, el color, y la cantidad máxima suministrada de esa parte; y clasificar el resultado en orden descendente por número de parte dentro de un orden ascendente según esa cantidad máxima.

Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

70

UNIDAD 3
Access 2007

SGBD
Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

71

UNIDAD 3 Microsoft Access 2007

UNIDAD 3 UNIDAD 3
Tema: Access 2007 1. Introducción
Microsoft Access es un programa para la gestión de información. Permite diseñar las estructuras para almacenar la información y nos proporciona los medios para su introducción y explotación. La versión de Access que se va a presentar en ésta unidad es la versión 2007 para Windows, en español. 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 información, realizar su seguimiento y elaborar informes en un entorno administrable. Con las nuevas funciones de diseño interactivo, la biblioteca de plantillas de seguimiento y la capacidad de trabajar con numerosos orígenes 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 integración con Microsoft Windows SharePoint Services 3.0, Office Access 2007 le ayuda a compartir, administrar, auditar y realizar copias de seguridad de la información.

1.1 Estructura de ficheros de Access
Como se explica más 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 físicamente en un sólo fichero. Por ello en Access, se identifica una base de datos con el fichero en el que se almacena. Este fichero tiene la terminación .accdb.

Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

72

Elementos básicos de Access 2007 2.UNIDAD 3 Microsoft Access 2007 2. abrir una base de datos existente o ver contenido destacado de Microsoft Office Online.1 La pantalla inicial Gráfico 19 Pantalla Inicial de Access 2007 Cuando inicie Office Access 2007.2 La interfaz La nueva interfaz de usuario de Office Access 2007 incluye varios elementos que definen cómo se interactúa con el producto. Estos nuevos elementos se eligieron para ayudar al usuario a controlar Access y encontrar más rápidamente los comandos necesarios. la primera pantalla que aparece es la página de Introducción a Microsoft Office Access. Gráfico 20 Cinta de Opciones Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 73 . a menos que inicie Access haciendo doble clic en un archivo de base de datos específico de Access. en cuyo caso se abre esa base de datos. 2. La página Introducción a Microsoft Office Access es el punto de partida a partir del cual se puede crear una nueva base de datos.

El panel Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 74 . 6. Ficha de comandos contextual: Es una ficha de comandos que aparece según el contexto. Barra de herramientas de acceso rápido: Es una sola barra de herramientas estándar que aparece en la cinta de opciones y permite obtener acceso con un solo clic a los comandos más usados. Cada ficha contiene grupos de comandos relacionados y estos grupos incluyen algunos de los demás elementos de la nueva interfaz de usuario. como la galería. las principales fichas de la cinta de opciones son: Inicio. que es un nuevo tipo de control que presenta visualmente las opciones.UNIDAD 3 Microsoft Access 2007 El elemento más 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. Los principales elementos de la nueva interfaz de usuario de Office Access 2007 son: 1. según el objeto con el que se trabaje o la tarea que se esté llevando a cabo. Panel de exploración: Es el área situada a la izquierda de la ventana donde se muestran los objetos de la base de datos. 7. es decir. 3. Crear. La cinta de opciones proporciona una ubicación única para los comandos y reemplaza fundamentalmente los menús y barras de herramientas. Datos externos y Herramientas de base de datos. como Guardar y Deshacer. Cinta de opciones: Es el área situada en la parte superior de la ventana del programa donde se pueden elegir los comandos. Galería: Es un control que muestra visualmente una opción de modo que se ven los resultados que se van a obtener. 2. En Office Access 2007. 4. Introducción a Microsoft Office Access: La página que se muestra cuando se inicia Access desde el botón Inicio o un acceso directo de escritorio. Ficha de comandos: Comandos combinados de manera significativa. La cinta de opciones consta de fichas que combinan los comandos de manera significativa. 5.

informe o página de acceso a dato Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 75 . Una consulta puede unir datos de varias tablas para servir como origen de datos de un formulario. páginas y macros se muestran como documentos con Gráfico 21 Entorno de Access 2007 3. 24 Consulta: pregunta sobre los datos almacenados en las tablas o solicitud para llevar a cabo una acción en los datos. Una plantilla es una base de datos lista para usar que contiene todas las tablas. 8. consultas24. tablas. Crear. Documentos fichas.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 creación de bases de datos.UNIDAD 3 Microsoft Access 2007 de exploración reemplaza la ventana Base de datos de las versiones anteriores de Access. informes. formularios e informes necesarios para llevar a cabo una tarea específica. 10. Barra de estado: Es la barra situada en la parte inferior de la ventana del programa en la que se muestra la información de estado y que incluye botones que permiten cambiar la vista. cerrar y abrir una base de datos 3. Minibarra de herramientas: Es un elemento que aparece de manera transparente encima del texto seleccionado para que se pueda aplicar fácilmente formato al texto. consultas. 9. con fichas: Los formularios.

2 Crear una base de datos en blanco 1. 2. a continuación. Gráfico 22 Opción Nueva base de datos en blanco En el panel Base de datos en blanco. para que puedas empezar a rellenar sus datos. Inicie Access. haga clic en Aceptar. desde donde podremos seleccionar todos los objetos que sean creados dentro de la base de datos. Algunas plantillas contienen varios registros de ejemplo que ayudan a mostrar su uso. En la página Introducción a Microsoft Office Access. Access crea la base de datos con extensión ACCDB y. Haga clic en Crear. . haga clic en Base de datos en blanco. a continuación. Para cambiar la ubicación del archivo.UNIDAD 3 Microsoft Access 2007 Por ejemplo. busque la nueva Gráfico 23 Tabla inicial de la base de datos Como recordarás una tabla es el elemento principal de cualquier base de datos ya que todos los demás objetos se crean a partir de éstas. abre una tabla vacía (denominada Tabla1). escriba un nombre de archivo [registro de notas] en el cuadro Nombre de archivo. hay plantillas que se pueden usar para realizar un seguimiento de problemas. haga clic en Examinar ubicación y. situado junto al cuadro Nombre de archivo. Las plantillas de base de datos pueden usarse tal cual o pueden personalizarse de modo que se ajusten a las necesidades específicas del usuario. a la izquierda aparece el Panel de Exploración. 3. administrar contactos o gastos. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 76 . Si observas esta ventana.

Si arrastra uno de estos Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 77 . Los nombres de los campos se asignan por números (Campo1. empezando en la vista Hoja de datos En la vista Hoja de datos. a continuación. que contiene una lista de los tipos de campos más comunes. 4. 4. Access crea la tabla y coloca el cursor en la primera celda vacía de la columna Agregar nuevo campo.UNIDAD 3 Microsoft Access 2007 En principio sólo encontraremos el de Tabla1 pues es el que Access creará por defecto. en el grupo Tablas. puede escribir los datos inmediatamente y dejar que Access cree la estructura de tabla en segundo plano. Desplegando la cabecera del panel puedes seleccionar qué objetos 4. Access muestra el panel Plantillas de campos. Crear tablas 4. Puede usar la vista Hoja de datos para comenzar a escribir datos inmediatamente y para que Access cree la estructura de tabla. haga clic en Nuevo campo. Puedes ocultarlo haciendo clic en el botón Ocultar mostrar y de qué forma. Campo2. 3. en el grupo Campos y columnas. cambiar a la vista Hoja de datos para escribir los datos. haga clic en Tabla. Gráfico 24 Grupo Tablas de la ficha Crear Haga clic en Tabla para crear una tabla en blanco en la vista Hoja de datos.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. puede usar la Vista Diseño para crear primero la estructura de tabla y. etc. 1.) y Access define el tipo de datos basándose en el tipo de los datos que se escriben. 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. 2. o bien. En la ficha Crear.2 Insertar una tabla. . En la ficha Hoja de datos.

arrástrela hasta la ubicación que desee. Este método consiste en definir la estructura de la tabla. cambie a la vista Hoja de datos para escribir los datos. 4. empezando en la vista Diseño En la vista Diseño. Debe arrastrar el campo hasta el área de la hoja de datos que contiene datos. que muestra dónde se va a ubicar el campo. Access agregará un campo con ese nombre y establecerá sus propiedades en un valor apropiado para ese tipo de campo.  Para mover una columna. es decir.UNIDAD 3 Microsoft Access 2007 campos hasta la hoja de datos. A continuación.. haga doble clic en su encabezado y escriba el nuevo nombre. cree primero la estructura de la nueva tabla. 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. a continuación. Aparece una barra de inserción vertical. o haciendo clic en el botón de Vista de Diseño en la barra de estado: Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 78 .  Para cambiar el nombre de una columna (o campo). También puede seleccionar varias columnas contiguas y arrastrarlas juntas hasta una nueva ubicación. introduzca los datos con algún otro método. Para agregar datos.. en el grupo Tablas. etc. como una operación de pegar o anexar datos. En la ficha Crear. 5. definir las distintas columnas que esta tendrá y otras consideraciones como claves. Otra forma rápida de llegar a la vista Diseño es seleccionando la vista desde la pestaña Hoja de datos. Las propiedades se pueden cambiar más adelante. comience a escribir en la primera celda vacía. o bien.3 Insertar una tabla. pegue datos de otro origen tal y como se describe más adelante. haga clic en Diseño de tabla. o bien. selecciónela haciendo clic en su encabezado y.

se utiliza una línea para cada columna.UNIDAD 3 Microsoft Access 2007 Gráfico 25 Como cambiar a la Vista Diseño Aparecerá la vista de Diseño de la tabla: Gráfico 26 Vista Diseño En la pestaña tenemos el nombre de la tabla (como todavía no hemos asignado un nombre a la tabla. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 79 . En la parte inferior tenemos a la izquierda dos pestañas (General y Búsqueda) para definir propiedades del campo es decir características adicionales de la columna que estamos definiendo. A continuación tenemos la rejilla donde definiremos las columnas que componen la tabla. así en la primera línea (fila) de la rejilla definiremos la primera columna de la tabla y así sucesivamente. Access le ha asignado un nombre por defecto Tabla1).

UNIDAD 3 Microsoft Access 2007 Y a la derecha tenemos un recuadro con un texto que nos da algún tipo de ayuda sobre lo que tenemos que hacer. Gráfico 28 Tipos de datos de los campos Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 80 . Si queremos cambiar de tipo de datos. al pulsar la tecla ENTER pasamos al tipo de datos. 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: Gráfico 27 Campos de la tabla Profesores En la primera fila escribir el nombre del primer campo. hacer clic sobre la flecha de la lista desplegable de la derecha y elegir otro tipo. por defecto nos pone Texto como tipo de dato.

normalmente una descripción 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.UNIDAD 3 Microsoft Access 2007 Observa cómo una vez tengamos algún tipo de dato en la segunda columna. la correspondiente a Propiedades del campo se activa para poder indicar más características del campo. 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 ningún tipo de equivocación el registro al cual identifica. seleccionar los campos pulsando simultáneamente la tecla CTRL y el campo a seleccionar y una vez seleccionados todos los campos hacer clic en el botón Clave principal. Esta tercera columna no es obligatorio utilizarla ya que únicamente sirve para introducir un comentario. Repetir el proceso hasta completar la definición de todos los campos (columnas) de la tabla. 4. Para asignar una clave principal a un campo. Si queremos definir una clave principal compuesta (basada en varios campos). Hacer clic sobre el botón Clave principal en el marco Herramientas de la pestaña Diseño. seguir los siguientes pasos: Hacer clic sobre el nombre del campo que será clave principal. A continuación pulsar la tecla ENTER para ir a la tercera columna de la rejilla. No podemos definir más de una clave principal. la parte inferior de la ventana. Importante: Recordar que un campo o combinación de campos que forman la clave principal de una tabla no puede contener valores nulos y no Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 81 . pero podemos tener una clave principal compuesta por más de un campo. Gráfico 29 Botón para agregar la clave principal A la izquierda del nombre del campo aparecerá una llave indicándonos que dicho campo es la clave principal de la tabla.4 La clave principal o clave primaria Antes de guardar la tabla tendremos que asignar una clave principal.

puede pegar datos de otro origen tal y como se describe en la siguiente sección. o bien. Se pueden importar datos desde una hoja de Excel. 4. Asimismo. Si. Access permite importar con facilidad datos de otros programas. el sistema no nos deja crear la nueva fila y nos devuelve un error de este tipo: Gráfico 30 Error de clave Tras agregar todos los campos. En ambos casos. pero las siguientes instrucciones le sirven de punto de partida: 1. cambie a la vista Hoja de datos. El proceso varía ligeramente en función del origen. Cuando intentemos insertar una nueva fila con valores que infrinjan estas dos reglas. en el grupo Importar. guarde la tabla: Puede comenzar a escribir datos en la tabla en cualquier momento. En la ficha Datos Externos. una tabla de otra base de datos de Access.UNIDAD 3 Microsoft Access 2007 pueden haber dos filas en la tabla con el mismo valor en el campo/s clave principal. agregue los nuevos campos mediante los comandos del grupo Campos y columnas en la ficha Hoja de datos. una lista de SharePoint o diversos otros orígenes. desea agregar uno o varios campos a la tabla. haga clic en el comando correspondiente al tipo de archivo que va a importar. Para ello.5 Importar datos de otro origen Puede que haya recopilado datos en otro programa y desee importarlos a Access. tras escribir algunos datos. haga clic en la primera celda vacía y comience a escribir. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 82 . comience a escribir en la columna Agregar nuevo campo en la vista Hoja de datos. O bien. puede que trabaje con personas que almacenan sus datos en otros programas y desee usar esos datos en Access.

o bien. El procedimiento exacto depende de la opción de importación o vinculación que haya elegido. Propiedades de los campos 5. haga clic en Examinar para ir al archivo de datos de origen [alumnos técnico. En el cuadro de diálogo Obtener datos externos. Access preguntará si desea guardar los detalles de la operación de importación que acaba de finalizar.1 Introducción Cada campo de una tabla dispone de una serie de características que proporcionan un control adicional sobre la forma de funcionar del campo. Haga clic en Aceptar. Haga clic en la opción deseada bajo Especifique cómo y dónde desea almacenar los datos en la base de datos actual.xlsx]. 4.UNIDAD 3 Microsoft Access 2007 Gráfico 31 Grupo Importar de la Ficha Datos Externos En nuestro caso vamos a importar datos de una hoja de cálculo de Excel haga clic en Excel. Puede crear una nueva tabla usando los datos importados. 5. 2. Access inicia el Asistente para importación. En la última página del asistente. 3. escriba la ruta de acceso completa al archivo de datos de origen en el cuadro Nombre de archivo. Las propiedades aparecen en la parte inferior izquierda de la vista Diseño de tabla cuando tenemos un campo seleccionado. haga clic en Finalizar. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 83 . anexando los datos a una tabla existente o creando una tabla vinculada que mantenga un vínculo al origen de datos. Si no aparece el tipo de programa correcto. Siga las instrucciones del Asistente para importación. haga clic en Más.

147.648 y 2.UNIDAD 3 Microsoft Access 2007 Gráfico 32 Propiedades de los campos Las propiedades se agrupan en dos pestañas.401298E-45 para valores negativos. esta propiedad determina el número máximo de caracteres que se pueden introducir en el campo. Hay que tener en cuenta que si se modifican las propiedades de un campo después de haber introducido datos en él se pueden perder estos datos introducidos.767. Entero para valores enteros comprendidos entre -32.147.768 y 32.2 Tamaño del campo  Para los campos Texto. y entre 1.647.401298E-45 y 3. Simple para la introducción de valores comprendidos entre 3. Las propiedades de la pestaña General pueden cambiar para un tipo de dato u otro mientras que las propiedades de la pestaña Búsqueda cambian según el tipo de control asociado al campo. la pestaña General donde indicamos las características generales del campo y la pestaña Búsqueda en la que podemos definir una lista de valores válidos para el campo. A continuación explicaremos las propiedades de que disponemos según los diferentes tipos de datos. Entero largo para valores enteros comprendidos entre 2.483. 5. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 84 .402823E38 para valores positivos. Siendo por defecto de 50 caracteres y valor máximo de 255.483.402823E38 y -1. las opciones son: Byte (equivalente a un carácter) para almacenar valores enteros entre 0 y 255.  Para los campos Numérico.

Estándar: presenta los valores con separador de millares.accdb) Los campos Autonumérico son Entero largo. de réplica se utiliza para claves autonuméricas en bases réplicas. Ejemplos: 3/4/93.adp) y números entre 10^28-1 y 10^28-1 (si estamos en una base de datos . Este valor es una combinación de los valores de Fecha corta y Hora larga. Científico: presenta el número con notación científica. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 85 . las opciones son: Número general: presenta los números tal como fueron introducidos. Fijo: presenta los valores sin separador de millares. Euro: utiliza el formato de moneda. 05:34:00 PM y 3/4/93 05:34:00 PM. no se muestra ninguna fecha. Decimal para almacenar valores comprendidos entre -10^38-1 y 10^38-1 (si estamos en una base de datos .94065645841247E-324 para valores 5.79769313486231E308 y 4. con el símbolo del euro. Id.  Los campos Fecha/Hora tienen los siguientes formatos: Fecha general: si el valor es sólo una fecha. A los demás tipos de datos no se les puede especificar tamaño. y entre 1. si el valor es sólo una hora. Porcentaje: multiplica el valor por 100 y añade el signo de porcentaje (%). para valores negativos.UNIDAD 3 Microsoft Access 2007 Doble para valores comprendidos entre -1. no se muestra ninguna hora. Moneda: presenta los valores introducidos con el separador de millares y el símbolo monetario asignado en Windows como puede ser €. Se puede establecer para todos los tipos de datos excepto el Objeto OLE y Autonumérico.3 Formato del campo Esta propiedad se utiliza para personalizar la forma de presentar los datos en pantalla o en un informe.94065645841247E-324 positivos.  Para los campos Numérico y Moneda.79769313486231E308 y 4.

mes y año. Hora corta presenta la hora sin los segundos.  Los campos Sí/No disponen de los formatos predefinidos Sí/No. Access dispone de un Asistente para máscaras de entradas que nos facilita el establecer esta propiedad.UNIDAD 3 Microsoft Access 2007 Fecha larga: se visualiza la fecha con el día de la semana y el mes completo. al igual que lo son No. Por ejemplo. Ejemplo: Lunes 21 de agosto de 2000. para los campos Texto se tendrían que crear formatos personalizados. Hora larga: presenta la hora con el formato normal. Ejemplo: 21-Ago-2000. Sí. Verdadero/Falso y Activado/Desactivado. Ejemplo: 5:35 PM.5 Máscara de entrada Se utiliza la máscara de entrada para facilitar la entrada de datos y para controlar los valores que los usuarios pueden introducir. 5. y al cual accederemos al hacer clic sobre el Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 86 . Fecha mediana: presenta el mes con los tres primeros caracteres. 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 años 2000 y el 2029 y las fechas comprendidas entre el 1/1/30 y el 31/12/99 pertenecen al intervalo de años entre 1930 y 1999. puedes crear una máscara de entrada para un campo Número de teléfono que muestre exactamente cómo debe introducirse un número nuevo: (___) ___-____. Ejemplo: 17:35. Falso y Desactivado. Fecha corta: se presenta la fecha con dos dígitos para el día. Ejemplo: 17:35:20.  Los campos Texto y Memo no disponen de formatos predefinidos. 5. Verdadero y Activado son equivalentes entre sí.4 Lugares decimales Esta propiedad nos permite indicar el número de decimales que queremos asignar a un tipo de dato Número o Moneda. Hora mediana: presenta la hora con formato PM o AM.

7 Valor predeterminado El valor predeterminado es el valor que se almacenará automáticamente en el campo si no introducimos ningún valor. se puede introducir ese valor en la propiedad Valor predeterminado del campo Provincia y así a la hora de introducir los diferentes clientes.UNIDAD 3 Microsoft Access 2007 botón que aparece a la derecha de la propiedad a modificar una vez activada dicha propiedad. Por ejemplo si tenemos la tabla Alumnos con el campo Provincia y la mayoría de clientes son de la provincia del Azuay. 5. en la cabecera del campo Fnac veremos Fecha de nacimiento. se utiliza esta propiedad para indicar o especificar cuál va a ser ese valor y así que se introduzca automáticamente en el campo a la hora de introducir los datos de la tabla.6 Título Se utiliza esta propiedad para indicar cómo queremos que se visualice la cabecera del campo. si un campo se llama Fnac e indicamos Fecha de nacimiento como valor en la propiedad Título. Por ejemplo si queremos que un valor introducido esté comprendido entre 100 y 2000. Para formar la condición puedes utilizar el generador de expresiones. Por ejemplo.8 Regla de validación Esta propiedad nos permite controlar la entrada de datos según el criterio que se especifique. Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumérico. se puede especificar en esta propiedad >=100 Y <=2000. 5. automáticamente aparecerá el valor Azuay y no lo tendremos que teclear. 5. Se suele emplear cuando se sabe que un determinado campo va a tener la mayoría de las veces el mismo valor. Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumérico. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 87 . Hay que escribir el criterio que debe cumplir el valor introducido en el campo para que sea introducido correctamente.

Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumérico. Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumérico.UNIDAD 3 Microsoft Access 2007 Para ayudarnos a escribir la regla de validación tenemos el generador de expresiones que se abre al hacer clic sobre el botón generar que aparece a la derecha de la propiedad cuando hacemos clic en ella. Por ejemplo. y también aceleran las operaciones de ordenación y agrupación. 5. 5.10 Requerido Si queremos que un campo se rellene obligatoriamente tendremos que asignar a esta propiedad el valor Sí. si buscas alumnos basándose en un campo llamado Apellidos. 5. Debe ser un mensaje para que la persona que se equivoque a la hora de introducir los datos.9 Texto de validación 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 validación especificada en la propiedad anterior. sepa el porqué de su error y pueda solucionarlo.12 Indexado Se utiliza esta propiedad para establecer un índice de un solo campo. Sí (sin duplicados): Cuando se asigna un índice pero sin admitir valores duplicados.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 estén vacíos. Los índices hacen que las consultas basadas en los campos indexados sean más rápidas. puedes crear un índice sobre este campo para hacer más rápida la búsqueda. Sí (con duplicados): Cuando se asigna un índice al campo y además admite valores duplicados (dos filas con el mismo valor en el campo). Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 88 . Esta propiedad dispone de tres valores: No: Sin índice. en caso contrario el valor será el de No. 5.

se pueden crear consultas. Para lograr dicho objetivo.. para realizar este paso correctamente. especificar dichas relaciones en la base de datos de Office Access 2007. se colocan campos comunes en las tablas que están relacionadas y se definen las relaciones entre las tablas.la tabla Profesores. primero deberá comprender las relaciones existentes entre las tablas y. el formulario que se muestra a continuación incluye información recopilada de varias tablas: Gráfico 33 Formulario Notas 1. . Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 89 . Por ejemplo. es preciso proporcionar a Office Access 2007 los medios para recopilar de nuevo esa información cuando sea necesario. conviene desglosar los datos en muchas tablas basadas en temas para que cada hecho esté representado sólo una vez. Para ello. se debe proporcionar a Microsoft Office Access 2007 los medios para recopilar de nuevo la información desglosada (esto se realiza colocando campos comunes en tablas que están relacionadas). A continuación. formularios e informes que muestren a la vez la información de varias tablas. De ese modo. Sin embargo. La información de este formulario procede de la tabla Alumnos. a continuación. 2.. Tras crear una tabla para cada tema en la base de datos.UNIDAD 3 Microsoft Access 2007 6. Las relaciones Uno de los objetivos de un buen diseño de base de datos es eliminar la redundancia de los datos (datos duplicados).

...... 1.. los profesores pueden asociarse a las materias de los que son responsables mediante la creación de una relación de tabla entre los campos Identificación de profesor en las tablas Profesor y Materias. para cualquier cliente representado en la tabla Clientes puede haber representados muchos pedidos en la tabla Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 90 . .UNIDAD 3 Microsoft Access 2007 3. Una relación uno a varios Considere una base de datos de seguimiento de pedidos que incluya una tabla Clientes y una tabla Pedidos.1 Tipos de relaciones de tabla Existen tres tipos de relaciones de tabla. 6.. Un cliente puede realizar cualquier número de pedidos. Una relación de tabla hace coincidir los datos de los campos clave (a menudo un campo con el mismo nombre en ambas tablas). estos campos coincidentes son la clave principal de una tabla. los campos de las tablas deben coordinarse de modo que muestren información acerca del mismo estudiante. 2.y la tabla Notas. Esta coordinación se lleva a cabo mediante las relaciones de tablas. de empleado aparece en ambas tablas. Por lo tanto. que proporciona un identificador único para cada registro. .la tabla Materias 4. Siguiendo en el ejemplo anterior. En la mayoría de los casos. y como clave externa. Id. Gráfico 34 Campos en común entre las tablas Profesores y materias Por ejemplo. y una clave externa de la otra tabla. como clave principal ..

tome la clave principal del lado "uno" de la relación y agréguela como un campo o campos adicionales a la tabla en el lado "varios" de la relación. y cada producto puede aparecer en muchos pedidos. debe crear una tercera tabla. que divide la relación de varios a varios en dos relaciones uno a varios. un único producto puede aparecer en muchos pedidos. Para representar una relación de varios a varios. Una relación de varios a varios Considere la relación entre una tabla Productos y una tabla Pedidos. Para representar una relación de uno a varios en el diseño de la base de datos. Debe insertar la clave principal de cada una de las dos tablas en la tercera. o instancia. Un solo pedido puede incluir varios productos. es importante que considere ambas partes de la relación. Puede utilizar la relación uno a uno para dividir una tabla con muchos campos. Como resultado. Por otro lado. muy a menudo. para cada registro de la tabla Productos puede haber varios registros en la tabla Pedidos. y para un pedido puede haber varios productos. de la relación. cada registro de la primera tabla sólo puede tener un registro coincidente en la segunda tabla y viceversa. Este tipo de relación no es común porque. Tenga en cuenta que para detectar las relaciones de varios a varios existentes entre las tablas. Por consiguiente. Por ejemplo. para cada registro de la tabla Pedidos puede haber varios registros en la tabla Productos. Por tanto. para aislar parte de una tabla por razones de seguridad o para almacenar información que sólo se Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 91 . la tercera tabla registra cada ocurrencia. la información relacionada de este modo se almacena en la misma tabla. Un pedido puede incluir muchos productos. la tabla Pedidos y la tabla Productos tienen una relación varios a varios que se define mediante la creación de dos relaciones uno a varios con la tabla Detalles de pedidos. a menudo denominada tabla de unión.UNIDAD 3 Microsoft Access 2007 Pedidos. Este tipo de relación se denomina relación de varios a varios porque para un producto puede haber varios pedidos. Además. la relación entre la tabla Clientes y la tabla Pedidos es una relación de uno a varios. Una relación uno a uno En una relación uno a uno.

Access se asegura de que la actualización es completa y la base de datos no tiene un estado inconsistente con algunas Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 92 . ambas tablas deben compartir un campo común. Una vez habilitada. 6. El propósito de la integridad referencial es evitar los registros huérfanos y mantener las referencias sincronizadas para que esta situación hipotética no ocurra nunca. porque el registro al que hace referencia ya no existe. así como las eliminaciones que quitan el destino de una referencia. Access rechazará todas las operaciones que infrinjan la integridad referencial de esa relación de tabla. De este modo los valores de la tabla "varios" hacen referencia a los valores correspondientes de la tabla "uno". Sin embargo. La integridad referencial se aplica habilitándola para una relación de tabla. Para tales casos. Suponga que tiene una relación de uno a varios entre las tablas Profesores y Materias y desea eliminar un profesor. para representar una relación de uno a varios se toma la clave principal de la tabla "uno" y se agrega como un campo adicional a la tabla "varios". Cuando identifique esta relación. Para recopilar de nuevo los datos. colocando campos comunes en tablas relacionadas. Access toma el valor de la tabla "varios" y busca el valor correspondiente en la tabla "uno". Esto significa que Access rechaza las actualizaciones que cambian el destino de una referencia. pero el código ya no será válido. es posible que tenga la necesidad perfectamente válida de cambiar la clave principal de un profesor que tiene materias en la tabla Materias. Si el destinatario que desea quitar tiene materias en la tabla Materias.2 Descripción de la integridad referencial Al diseñar una base de datos. se proporciona a Office Access 2007 los medios para recopilar de nuevo la información. lo que realmente necesita es que Access actualice automáticamente todas las filas afectadas como parte de una única operación. Las materias todavía contendrán un código de profesor.UNIDAD 3 Microsoft Access 2007 aplica a un subconjunto de la tabla principal. De ese modo. A continuación. Por ejemplo. se divide la información en muchas tablas basadas en temas para minimizar la redundancia de los datos. dichas materias quedarán "huérfanos" si elimina el registro Profesor.

a continuación. 6. Access incluye la opción Eliminar en cascada los registros relacionados. Access actualiza automáticamente todos los campos que hacen referencia a la clave principal. Si aplica la integridad referencial y selecciona la opción Actualizar en cascada los campos relacionados y.3 Crear una relación. Access incluye la opción Eliminar en cascada los registros relacionados. elimina un registro en la parte de la clave principal de la relación. Por ello. a continuación. se actualiza una clave principal. se selecciona la opción Actualizar en cascada los campos relacionados y. Para crear relaciones en Access 2007 primero deberemos acceder a la ventana Relaciones deberemos hacer clic en el botón Relaciones que se encuentra en la pestaña Herramientas de base de datos. Por ello. Gráfico 36 Cuadro de diálogo Mostrar Tablas Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 93 . También es posible que tenga la necesidad válida de eliminar una fila y todos los registros relacionados.UNIDAD 3 Microsoft Access 2007 filas actualizadas y otras no. Aparecerá el cuadro de diálogo Mostrar tabla de la derecha esperando indicarle las tablas que formarán parte de la relación a crear. Gráfico 35 Botón Relaciones de la pestaña Herramientas de base de datos. Cuando se aplica la integridad referencial. Access eliminará automáticamente todos los campos que hagan referencia a la clave principal. por ejemplo. un registro Profesor y todas las materias relacionadas de ese profesor.

Hacer clic sobre el botón Agregar. Ahora aparecerá la ventana Relaciones con las tablas añadidas en el paso anterior.UNIDAD 3 Microsoft Access 2007 Seleccionar una de las tablas que pertenecen a la relación haciendo clic sobre ella. Hacer clic sobre el botón Cerrar. Repetir los dos pasos anteriores hasta añadir todas las tablas de las relaciones a crear. Soltar el botón del ratón y aparecerá el cuadro de diálogo Modificar relaciones siguiente: Gráfico 38 Cuadro de diálogo 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 relación (código y numero). Pulsar el botón izquierdo del ratón y manteniéndolo pulsado arrastrar hasta el campo numero de la tabla secundaria (CódigoProfesor de la tabla Materias). Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 94 . Gráfico 37 Tablas agregadas a la ventana Relaciones Para crear la relación: Ir sobre el campo de relación de la tabla principal (en nuestro caso CódigoProfesor de la tabla Profesores). aparecerá dicha tabla remarcada.

Para añadir la tabla hacer clic sobre el botón Mostrar tabla en la pestaña Diseño.UNIDAD 3 Microsoft Access 2007 Observa en la parte inferior el Tipo de relación que se asignará dependiendo de las características de los campos de relación (en nuestro caso uno a varios). Activar el recuadro Exigir integridad referencial haciendo clic sobre éste. Si se desea. Gráfico 40 Botón Mostrar tabla de la pestaña Diseño Aparecerá el cuadro de diálogo Mostrar tablas estudiado en el apartado anterior. Añadir las tablas necesarias y cerrar el cuadro de diálogo. Gráfico 39 Relación una a varios de la tabla Profesores con la tabla Alumnos 6. Para terminar. hacer clic sobre el botón Crear y se creará la relación y ésta aparecerá en la ventana Relaciones. Si ya hemos creado una relación y queremos crear otra pero no se dispone de la tabla en la ventana Relaciones debemos añadir la tabla a la ventana: Primero nos situamos en la ventana Relaciones haciendo clic en el botón Relaciones en la pestaña Herramientas de base de datos. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 95 .4 Añadir tablas a la ventana Relaciones.5 Quitar tablas de la ventana Relaciones. 6. Si queremos eliminar una tabla de la ventana Relaciones: Primero nos situamos en la ventana Relaciones haciendo clic en el botón Relaciones en la pestaña Herramientas de base de datos. se puede activar las casillas Actualizar en cascada los campos relacionados y Eliminar en cascada los registros relacionados.

UNIDAD 3 Microsoft Access 2007 Después podemos elegir entre: Hacer clic con el botón derecho sobre la tabla y elegir la opción Ocultar tabla del menú contextual que aparecerá.

Gráfico 41 Menú Contextual de una tabla en la ventana Relaciones

Hacer clic sobre la tabla para seleccionarla y hacer clic en el botón Ocultar tabla en la pestaña Diseño, ver Gráfico 40.

6.6 Modificar relaciones.
Posicionarse en la ventana Relaciones y elegir entre estas dos formas: Hacer clic con el botón derecho sobre la relación a modificar y elegir la opción Modificar relación... del menú contextual que aparecerá,

Gráfico 42 Menú Contextual de una relación

O bien, hacer clic sobre la relación a modificar y hacer clic en el botón Modificar relaciones que encontrarás en la pestaña Diseño de la banda de opciones. Se abrirá el cuadro de diálogo Modificar relaciones estudiado anteriormente, realizar los cambios deseados y hacer clic sobre el botón Aceptar.

6.7 Eliminar relaciones.
Si lo que queremos es borrar la relación podemos: Hacer clic con el botón derecho sobre la relación a borrar y elegir la opción Eliminar del menú contextual del Gráfico 41, o bien, hacer clic con el botón izquierdo sobre la relación, la relación quedará seleccionada, y a continuación pulsar la tecla DEL o SUPR. La relación queda eliminada de la ventana y de la base de datos.

Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

96

UNIDAD 3 Microsoft Access 2007

6.8 Mostrar relaciones directas
Esta opción 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 botón derecho sobre la tabla y elegir la opción Mostrar directas del menú contextual que aparecerá (ver gráfico 41), o hacer clic sobre la tabla para seleccionarla y hacer clic en el botón Mostrar relaciones directas en la pestaña Diseño (Ver gráfico 40). Aparecerán todas las relaciones asociadas a la tabla y todas las tablas que intervienen en estas relaciones.

7. Las consultas
Una consulta de selección se puede usar para crear subconjuntos de datos que sirvan para responder a preguntas específicas. También se puede usar para suministrar datos a otros objetos de base de datos. Una vez creada una consulta de selección, se puede usar siempre que sea necesario. En este tema, se explica cómo crear consultas de selección sencillas que busquen datos en una tabla única. También se explica cómo mejorar la consulta definiendo criterios para los registros y agregando valores calculados. En esta unidad veremos cómo crear consultas y manejarlas para la edición 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 selección. 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 según la consulta). Una consulta de selección genera una tabla lógica (se llama lógica porque no está físicamente en el disco duro sino en la memoria del ordenador y cada vez que se abre se vuelve a calcular).

Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

97

UNIDAD 3 Microsoft Access 2007 Consultas de acción. Son consultas que realizan cambios a los registros. Existen varios tipos de consultas de acción, de eliminación, de actualización, de datos anexados y de creación de tablas. Consultas específicas de SQL. Son consultas que no se pueden definir desde la cuadrícula QBE de Access sino que se tienen que definir directamente en SQL. Recuerde que las consultas tienen la siguiente sintaxis:

Parte

Descripción Uno de los siguientes predicados: ALL, DISTINCT, DISTINCTROW o TOP. Utilice el predicado para restringir el número 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 más 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.

expresióndet 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 expresión de tabla si éstas no están en la base de datos actual.

Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

98

están mostrando los datos pedidos.2 Crear una consulta Para crear una consulta. 7. paralelo E1. seguir los siguientes pasos: Abrir la base de datos donde se encuentra la consulta a crear. Hacer clic en el botón Diseño de Consulta en la pestaña Crear: Gráfico 44 Botón diseño de consulta de la pestaña Crear Al entrar en la Vista Diseño de consulta nos pide primero las tablas de las que la consulta sacará los datos con un cuadro de diálogo parecido al siguiente: Gráfico 45 Cuadro de diálogo Mostrar tabla para consultas Seleccionar la tabla de la que queremos sacar datos y hacer clic sobre el botón Agregar. de la tabla Alumnos.UNIDAD 3 Microsoft Access 2007 Por ejemplo para visualizar código y nombres de los estudiantes del Tercero de bachillerato. Si queremos sacar datos de varias tablas agregar de la Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 99 . La consulta sería: Gráfico 43 Consulta SQL en Access Puedes comprobar si tus ejercicios de SQL practicados en clases.

Finalmente hacer clic sobre el botón Cerrar y aparecerá la ventana Vista Diseño de consultas. Nos será útil cuando definamos consultas basadas en varias tablas. más adelante iremos profundizando en la explicación: Campo: ahí ponemos el campo a utilizar que en la mayoría de los casos será el campo a visualizar. Gráfico 46 Ventana Vista Diseño de Consultas Si observas la pantalla. Cada fila tiene un propósito que detallamos brevemente a continuación. Un criterio de búsqueda es una condición que deben cumplir los registros que aparecerán Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 100 .UNIDAD 3 Microsoft Access 2007 misma forma las demás tablas. Por ejemplo si queremos que la consulta nos saque todos los alumnos de Valencia. Orden: sirve para ordenar las filas del resultado. Criterios: sirve para especificar un criterio de búsqueda. necesitamos el campo Población para seleccionar los alumnos pero no queremos que aparezca la población en el resultado ya que todos son de la misma población. y en la parte inferior denominada cuadrícula QBE definimos la consulta. Mostrar: si la casilla de verificación aparece desactivada la columna no aparecerá en el resultado. Tabla: nombre de la tabla de la que sacamos el campo. se suele desactivar cuando queremos utilizar el campo para definir la consulta pero no queremos que aparezca en el resultado. Cada columna de la cuadrícula QBE corresponde a un campo. puede ser el nombre de un campo de la tabla y también puede ser un campo calculado. en la parte superior tenemos la zona de tablas donde aparecen las tablas añadidas con sus correspondientes campos.

así en la lista desplegable sólo aparecerán campos de la tabla seleccionada. este se colocará en la primera columna libre de la cuadrícula. si queremos cambiar ese encabezado lo indicamos en la fila Campo: escribiéndolo delante del nombre del campo y seguido de dos puntos ( : ).UNIDAD 3 Microsoft Access 2007 en el resultado de la consulta. En la consulta que aparece más arriba tienes el ejemplo de la segunda columna. También podemos teclear directamente el nombre del campo en la fila Campo: de una columna vacía de la cuadrícula. 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. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 101 . Normalmente aparece en el encabezado de la columna el nombre de la columna. Si tenemos muchos campos y varias tablas podemos reducir la lista seleccionando primero una tabla en la fila Tabla. 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 función mes( ). 7. Se suele utilizar sobre todo para los campos calculados.4 Encabezados de columna Podemos cambiar el encabezado de las columnas del resultado de la consulta. 7. soltar el botón cuando estemos sobre la columna delante de la cual queremos dejar el campo que estamos añadiendo. función que obtiene el mes de una fecha). Si queremos que todos los campos de la tabla aparezcan en el resultado de la consulta podemos utilizar el asterisco * (sinónimo de 'todos los campos'). Por lo tanto está formado por una condición o varias condiciones unidas por los operadores Y (AND) y O (OR). Hacer clic sobre el nombre del campo que aparece en la zona de tablas y sin soltar el botón del ratón arrastrar el campo sobre la cuadrícula. O: esta fila y las siguientes se utilizan para combinar condiciones.3 Añadir campos Para añadir campos a la cuadrícula podemos Hacer doble clic sobre el nombre del campo que aparece en la zona de tablas. Hacer clic sobre la fila Campo: de una columna vacía de la rejilla.

Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 102 . por orden alfabético si el campo es de tipo texto. hacer clic sobre la flecha que aparecerá para desplegar la lista y elegir el tipo de ordenación.. Puede ser Ascendente en este caso se ordenarán de menor a mayor si el campo es numérico. 7. y así sucesivamente.6 Modificar el diseño de una consulta Si lo que queremos es modificar el diseño de una consulta. de anterior a posterior si el campo es de tipo fecha/hora.. Desde el Panel de Exploración. o bien puede ser Descendente en orden inverso.5 Ejecutar la consulta Podemos ejecutar una consulta desde la ventana Diseño de consulta o bien desde el Panel de Exploración. haciendo clic sobre el botón Ejecutar de la pestaña Diseño: Gráfico 47 Botón Ejecutar Consultas Cuando estamos visualizando el resultado de una consulta. etc. lo que vemos realmente es la parte de la tabla que cumple los criterios especificados. para un mismo valor de la primera columna. 7. haciendo doble clic sobre su nombre. En el menú contextual seleccionar Vista Diseño . hacer clic sobre la fila Orden: del campo por el cual queremos ordenar las filas. por lo tanto si modificamos algún dato de los que aparecen en la consulta estaremos modificando el dato en la tabla (excepto algunas consultas que no permiten esas modificaciones). situarse en el Panel de Exploración y hacer clic derecho sobre el nombre de la consulta. En este caso se ordenan las filas por la primera columna de ordenación. Podemos ordenar también por varios campos para ello rellenar la fila Orden: de todas las columnas por las que queremos ordenar. Desde la vista diseño de la consulta. se ordenan por la segunda columna.UNIDAD 3 Microsoft Access 2007 7.7 Ordenar las filas Para ordenar las filas del resultado de la consulta..

Normalmente la condición estará basada en un campo de la tabla por ejemplo para seleccionar los alumnos de Azuay la condición sería población = "Azuay". 7. un criterio de búsqueda es una condición que deberán cumplir todas las filas que aparezcan en el resultado de la consulta. Siempre que se encuentra un texto lo encierra entre comillas. Para indicar varias condiciones se emplean los operadores Y y O. Tampoco es necesario poner las comillas. si no ponemos los corchetes añadirá las comillas y entenderá Precio = "coste". Por ejemplo ascendente por la primera columna y dentro de la primera columna. descendente por la segunda columna. para que el registro aparezca se deben cumplir todas las Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 103 . precio igual al valor Coste no al contenido del campo Coste. Para escribir esta condición en la cuadrícula tenemos que tener en una de las columnas de la cuadrícula el campo poblacion y en esa columna ponemos en la fila Criterios: el resto de la condición o sea ="Azuay". Por ejemplo queremos poner la condición precio = coste en la que precio y coste son dos campos. es decir si queremos ordenar por ejemplo por provincia y dentro de la misma provincia por localidad tenemos que tener en la cuadrícula primero la columna provincia y después la columna localidad. Cuando la condición es una igualdad no es necesario poner el signo =. El tipo de ordenación es independiente por lo que se puede utilizar una ordenación distinta para cada columna. 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 [ ].UNIDAD 3 Microsoft Access 2007 El orden de las columnas de ordenación es el que aparece en la cuadrícula. las añadirá él por defecto.8 Seleccionar filas Para seleccionar filas tenemos que indicar un criterio de búsqueda. podemos poner directamente el valor Valencia en la fila Criterios: ya que si no ponemos operador asume por defecto el =. En un criterio de búsqueda en el que las condiciones están unidas por el operador Y. tenemos que poner en la fila criterios: [coste].

el registro aparecerá en el resultado de la consulta si cumple al menos una de las condiciones. los alumnos aparecerán ordenados por Apellidos pero únicamente aparecerán 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. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 104 . En el ejemplo siguiente serían alumnos de Azuay cuya fecha de nacimiento esté comprendida entre el 1/1/60 y el 31/12/69. Población y Fecha nacimiento. Por ejemplo. En un criterio de búsqueda en el que las condiciones están unidas por el operador O. 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). Gráfico 48 Varias condiciones en una consulta Todas las condiciones establecidas en la misma fila de la cuadrícula quedan unidas por el operador Y. Por ejemplo precio > 100 y precio < 1200.UNIDAD 3 Microsoft Access 2007 condiciones. aparecen los registros cuyo precio está comprendido entre 101 y 1199. si en la cuadrícula QBE tenemos especificado los siguientes criterios: Gráfico 49 Condiciones en diferentes filas Visualizaremos de la tabla Alumnado los campos Apellidos. Access no diferencia entre mayúsculas y minúsculas a la hora de realizar la búsqueda de registros. Nombre.

Por ejemplo. 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.9 Consultas con parámetros A menudo. Un parámetro funciona de forma parecida a un campo de tabla. Access considera este campo como un parámetro y cuando se ejecuta la consulta nos pide Introducir el valor del parámetro mediante un cuadro de diálogo como este: Gráfico 50 Cuadro de diálogo para introducir valores 7.UNIDAD 3 Microsoft Access 2007 7. la población la introducirá el usuario cuando Access se lo pida. pero el valor que almacena lo introduce el usuario cuando se ejecuta la consulta. la consulta obtiene la concatenación de todas las filas de la primera tabla con todas las filas de la segunda tabla. En este caso necesitamos utilizar en nuestra consulta un parámetro.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 Diseño las distintas tablas de donde obtiene esos datos. queremos hacer una consulta para obtener los alumnos de una determinada Población. En una consulta cuando utilizamos un nombre de campo que no está en el origen de datos. Para añadir una tabla a la zona de tablas (una vez en la ventana Diseño de consulta) haremos clic en el botón Mostrar tabla de la pestaña Diseño: Gráfico 51 Botón Mostrar Tabla Si las tablas no están relacionadas o no tienen campos con el mismo nombre. si tenemos una tercera tabla concatenará cada una de las filas obtenidas en el primer paso con cada una Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 105 .

También se combinan automáticamente tablas que tengan un campo con el mismo nombre en las dos tablas aunque no exista una relación definidad entre ellas. Cuando dos tablas están combinadas en una consulta. De hecho si añadimos a la zona de tablas relacionadas. y así sucesivamente. en este caso tenemos que combinar las dos tablas. con lo cual se emparejan sólo las filas que luego aparecen en el resultado y la consulta es más eficiente.UNIDAD 3 Microsoft Access 2007 de las filas de la tercera tabla. 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. estas aparecerán automáticamente combinadas en la zona de tablas de la ventana Diseño de Consulta. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 106 . Además. normalmente la mayoría de las concatenaciones obtenidas no nos sirven y entonces tenemos que añadir algún criterio de búsqueda para seleccionar las filas que al final nos interesan. 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 unión. Gráfico 52 Combinar tablas Combinamos dos tablas por un campo (o varios) de unión de la misma forma que relacionamos tablas en la ventana Relaciones arrastrando el campo de unión de una de las tablas sobre el campo de unión de la otra tabla. Vemos que no interesa basar la consulta en muchas tablas ya que el resultado de la concatenación puede alcanzar dimensiones gigantescas.

Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 107 .UNIDAD 3 Microsoft Access 2007 Cuando las tablas están combinadas aparecen en la ventana diseño de la consulta como podemos apreciar en el gráfico 51.

UNIDAD 4 MySQL SGBD Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 108 .

Introducción El software MySQL proporciona un servidor de base de datos SQL (Structured Query Language) muy rápido. multi-threaded. Esta API fue diseñada para permitir código de terceras partes que fue escrito para poder usarse con mSQL para ser fácilmente portado para el uso con MySQL. El servidor de base de datos MySQL es muy rápido. La derivación del nombre MySQL no está clara. MySQL software es Open Source. Sin embargo. Esto provocó la creación de una nueva interfaz SQL para nuestra base de datos pero casi con la misma interfaz API que mSQL. Características MySQL es un sistema de gestión de bases de datos. fiable y fácil de usar. Además el software MySQL tiene una doble licencia: los usuarios pueden elegir entre usar el software MySQL como un producto Open Source bajo los términos de la licencia GNU General Public License o pueden adquirir una licencia comercial estándar de MySQL. llegamos a la conclusión que mSQL no era lo suficientemente rápido o flexible para nuestras necesidades. la hija del co-fundador Monty Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 109 . 3. MySQL Server trabaja en entornos cliente/servidor o incrustados Una gran cantidad de software de contribuciones está disponible para MySQL. Nuestro directorio base y un gran número de nuestras bibliotecas y herramientas han tenido el prefijo "my" por más de 10 años. 2.UNIDAD 4 MySQL UNIDAD 4 UNIDAD 4 Tema: MySQL 1. Historia Se empezó a utilizar con la intención de usar mSQL (el nombre original) para conectar a nuestras tablas utilizando nuestras propias rutinas rápidas de bajo nivel (ISAM). con alta carga de trabajo así como para integrarse en software para ser distribuido. El servidor MySQL está diseñado para entornos de producción críticos. Sin embargo y tras algunas pruebas. multiusuario y robusto. MySQL es un sistema de gestión de bases de datos relacionales.

Todas las entregas de la versión 5 comparten el mismo formato para sus ficheros. incluso para nosotros. se incrementa el segundo número. el que se incrementa es el último número en la denominación de la versión. Tanzania. el nombre femenino de Sakila tiene sus raíces en SiSwate. la versión principal y el nivel de entrega constituyen el número de la serie. • El tercer número (9) es el número de versión dentro de la serie. un desarrollador de software Open Source de Swaziland. Los posibles sufijos son: • alpha indica que la entrega contiene características nuevas que no han sido plenamente probadas. En conjunto. • El segundo número (0) es el nivel de entrega. se incrementa el primer número. Asimismo. aunque usualmente no los hay. Se incrementa para cada nueva entrega.9-beta. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 110 . Cuando cambia el formato de los ficheros. El nombre del delfín de MySQL (nuestro logo) es "Sakila". Esquema de denominaciones El esquema de denominaciones de MySQL emplea para las entregas nombres consistentes en tres números y un sufijo. Para los cambios menores. Una entrega progresa a través de un conjunto de sufijos a medida que mejora su estabilidad. el idioma local de Swaziland. 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 delfín).UNIDAD 4 MySQL Widenius también se llama My. El nombre ganador fue enviado por Ambrose Twebaze. África.0. por ejemplo. Cuál de los dos dió su nombre a MySQL todavía es un misterio. Las denominaciones de las entregas también incluyen un sufijo para indicar el grado de estabilidad. Los números dentro del nombre de la entrega se interpretan como sigue: • El primer número (5) es la versión principal y describe el formato de fichero. Según Ambrose. Sakila también es el nombre de una ciudad en Arusha. 4. mysql5. Usualmente es deseable poseer la última versión dentro de la serie que se está usando. en la sección "Novedades" deberían estar documentados los errores conocidos. Cuando se adicionan características de importancia o aparecen incompatibilidades menores con versiones precedentes.

sean beta. Sin embargo. Esto es lo que se llama una entrega de producción (estable) o “General Availability” (GA). (Una entrega candidata es formalmente conocida como una entrega gamma.) • Si no hay un sufijo. no deberían existir errores conocidos. bases de datos Documentación Programas y scripts de ejemplo Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 111 . • rc es una entrega candidata. Todas las APIs. o de producción. debido a las pruebas realizadas. El directorio de instalación contiene los siguientes subdirectorios: DIRECTORIO Bin data docs examples CONTENIDO Programas cliente y el servidor mysqld Ficheros de registro (logs). significa que la versión se ha estado utilizando por un tiempo en diferentes sitios sin que se informaran errores críticos reproducibles. una beta que ha estado funcionando un intervalo de tiempo y parece hacerlo bien. 5. Conformación de la instalación Esta sección describe la conformación por defecto de los directorios creados por el instalador binario y por las distribuciones de código fuente provistas por MySQL AB. y no hay planes de agregar características que pudieran comprometer la fiabilidad del código existente. candidatas. En MySQL 5. y no deberían existir errores críticos. • beta significa que la entrega está destinada a poseer sus características completas y que se probó todo el código nuevo. el directorio de instalación por defecto es C:\Program Files\MySQL\MySQL Server 5. Una versión cambia de alpha a beta cuando no se han descubierto errores fatales durante al menos un mes.0. Solamente podrían ser necesarias correcciones menores. o sea.UNIDAD 4 MySQL Por lo general. en cada entrega alpha se implementan nuevos comandos y extensiones. No se agregan características de importancia. las estructuras visibles externamente y las columnas para comandos SQL no se modificarán en las futuras entregas. y es la etapa donde puede producirse la mayor cantidad de cambios en el código.0 para Windows. más allá de los específicos de una plataforma.

a partir de ahora no se mostrará la línea “rows in set”. Ficheros con mensajes de err 6. A continuación muestra de nuevo el prompt mysql> para informarle que está listo para otro comando. lo cual da una idea aproximada del rendimiento del servidor. Luego conocerá otras. Si está trayendo el valor de una expresión. Comandos básicos Un comando normalmente consiste en una sentencia SQL seguida de punto y coma.) Aquí tiene otra consulta que demuestra que mysql puede usarse como calculadora: Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 112 . Generalmente. Estos valores son imprecisos porque representan tiempo de reloj corriente (no tiempo de CPU). es una de ellas. Mysql informa cuántas filas fueron devueltas y cuánto tiempo le tomó ejecutarse a la consulta. mencionado anteriormente. Gráfico 53 Prompt de MySQL Mysql imprime los resultados de la consulta en forma tabulada (filas y columnas). (Hay excepciones donde el punto y coma puede omitirse. QUIT. mysql etiqueta la columna usando el texto de la expresión. y además porque están afectados por factores como la carga del servidor o la latencia de red. el nombre de cada columna es el nombre del campo que trae desde la base de datos. (Para simplificar los ejemplos de este capítulo. Las filas siguientes son los resultados de la consulta.UNIDAD 4 MySQL include lib scripts share Ficheros de inclusión Bibliotecas Scripts de utilidades. MySQL lo envía al servidor para ser ejecutado e imprime los resultados.) Cuando ingresa un comando. en lugar del contenido de un campo o columna de una tabla (como en el ejemplo anterior). La primera fila contiene etiquetas para las columnas.

UNIDAD 4 MySQL

Gráfico 54 Instrucción SELECT con operaciones matemáticas básicas en MySQL

No es necesario que un comando sea ingresado en una sola línea, de ese modo, comandos extensos que requieren varias líneas 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 línea física. (En otras palabras, mysql acepta un formato libre para las entradas: recolecta líneas pero no las ejecuta hasta que encuentra el punto y coma.) Aquí tiene una sentencia de múltiples líneas:

Gráfico 55 Sentencias con múltiples líneas

Observe en este ejemplo que el prompt cambia de mysql> a -> después que se ha ingresado la primera línea de una consulta de múltiples líneas. Esta es la forma en que mysql advierte que no se ha completado la sentencia y aún espera por el resto. El prompt es un aliado, puesto que suministra información valiosa. Si se emplea, siempre se sabrá lo que mysql está esperando. Si durante el ingreso de un comando decide que no quiere ejecutarlo, cancélelo tipeando \c:

Gráfico 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 Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

113

UNIDAD 4 MySQL
PROMPT mysql> -> '> SIGNIFICADO Listo para un nuevo comando. Esperando la siguiente línea en un comando de múltiples líneas. Esperando la siguiente línea, se encuentra abierta una cadena que comienza con apostrofo ('''). "> Esperando la siguiente línea, se encuentra abierta una cadena que comienza con comillas dobles ('"'). `> Esperando la siguiente línea, se encuentra abierta una cadena que comienza con tilde ('`'). /*> Esperando la siguiente línea, 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:

Gráfico 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 Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

114

UNIDAD 4 MySQL

Gráfico 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 línea.

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:

Gráfico 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 también se aplica a los nombres de tablas. Esta restricción no existe en Windows, aunque puede utilizar el mismo esquema de mayúsculas 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 explícitamente. Para convertir a colegio en la base de datos actual, use este comando:

Gráfico 60 Cambio de una base de datos

Las bases de datos sólo necesitan ser creadas una sola vez, pero deben ser seleccionadas cada vez que se inicia una sesión de mysql. Puede hacerse a través del comando USE como se muestra en el ejemplo.

9. Creación de tablas
La creación de la base de datos ha sido una tarea sencilla, pero hasta ahora permanece vacía, como le muestra SHOW TABLES:
Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas

115

tenga en cuenta que la clave primaria de ésta tabla será el campo CodigoAlumno. Por ejemplo: el código. Querrá una tabla para contener un registro por cada estudiante. el paralelo y la fecha de nacimiento. y qué columnas habrá en cada tabla. Esta tabla puede llamarse alumnos. Dado que el nombre no es muy relevante por sí mismo. Gráfico 62 Sentencia CREATE TABLE Si se desea visualizar la estructura de una tabla creada se puede utilizar la sentencia DESCRIBE: Gráfico 63 Sentencia DESCRIBE Para crear una tabla la sintaxis sería: Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 116 . la normalización y finalmente los diccionarios de datos. y debería contener. la dirección. los nombres de cada alumno. el curso. tendría que tener más información. el diagrama entidad relación.UNIDAD 4 MySQL Gráfico 61 Sentencia SHOW TABLES La parte difícil es decidir cómo debería ser la estructura de su base de datos: qué tablas necesitará. Esto se soluciona con un buen análisis y diseño de su base de datos. para lo cual debe realizar el análisis de requisitos. como mínimo.

Un tipo es InnoDB. rollback (cancelación) y recuperación de fallas. Estas características incrementan el rendimiento y la capacidad de gestionar múltiples usuarios simultáneos. InnoDB también soporta restricciones FOREIGN KEY. [ FOREIGN KEY (Nombre campo clave foráneo) 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}. [PRIMARY KEY (Nombre campo clave)]. InnoDB se diseñó para obtener el máximo rendimiento al procesar grandes volúmenes de datos. que dota a MySQL de un motor de almacenamiento transaccional con capacidades de commit(confirmación).UNIDAD 4 MySQL CREATE TABLE [IF NOT EXISTS] nombre de la tabla ( Nombre_Campo_1 Tipo de dato del campo 1. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 117 . Nombre_Campo_2 Tipo de dato del campo 2. ……………………………..

UNIDAD 4 MySQL InnoDB rechaza cualquier operación INSERT o UPDATE que intente crear un valor de clave foránea en una tabla hija sin un valor de clave candidata coincidente en la tabla padre. Entre dos tablas. Tanto ON DELETE CASCADE como ON UPDATE CASCADE están disponibles en MySQL 5. En MySQL. MySQL 5. InnoDB rechaza la operación de eliminación o actualización en la tabla padre. • SET NULL: Borra o actualiza el registro en la tabla padre y establece en NULL la o las columnas de clave foránea en la tabla hija. por eso. no se deberían definir varias cláusulas ON UPDATE CASCADE que actúen en la misma columna en la tabla padre o hija. InnoDB soporta cinco acciones respecto a la acción a tomar: • CASCADE: Borra o actualiza el registro en la tabla padre y automáticamente borra o actualiza los registros coincidentes en la tabla hija.0 soporta tanto ON DELETE SET NULL como ON UPDATE SET NULL. NO ACTION y RESTRICT son similares en tanto omiten la cláusula ON DELETE u ON UPDATE. NO ACTION y RESTRICT son equivalentes. las restricciones de claves foráneas se verifican inmediatamente.0. (Algunos sistemas de bases de datos tienen verificaciones diferidas o retrasadas. Esto solamente es válido si las columnas de clave foránea no han sido definidas como NOT NULL. En MySQL 5.0. • RESTRICT: Rechaza la operación de eliminación o actualización en la tabla padre. una de las cuales es NO ACTION. La acción que InnoDB lleva a cabo para cualquier operación 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 subcláusulas ON UPDATE y ON DETETE en la cláusula FOREIGN KEY.) Un ejemplo sencillo que relaciona tablas materias y profesores a través de una clave foránea de una sola columna: Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 118 . • NO ACTION: Significa ninguna acción 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 foránea relacionado. Cuando el usuario intenta borrar o actualizar una fila de una tabla padre.

en el cual una tabla notas tiene claves foráneas hacia otras dos tablas.UNIDAD 4 MySQL Gráfico 64 Crear una tabla con una clave primaria Gráfico 65 Crear una tabla con una clave primaria y una clave foránea Aquí. un ejemplo más complejo. ahora podemos incorporar algunos datos en ella. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 119 . para lo cual haremos uso de las sentencias INSERT y LOAD DATA. Cargando datos en una tabla Después de haber creado la tabla. Una de las claves foráneas hace referencia a un índice de la tabla materias. La otra hace referencia a un índice de la tabla alumnos: Gráfico 66 Uso de claves combinadas en llaves foráneas 10. Supongamos que los registros de nuestros estudiantes pueden ser descritos por los datos mostrados en la siguiente tabla.

por default el tabulador es el Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 120 . cuidando que el orden de las columnas sea el mismo que utilizamos en la sentencia CREATE TABLE.UNIDAD 4 MySQL CÓDIGO NOMBRES DIRECCIÓN 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. usaremos el siguiente comando: Gráfico 68 Sentencia LOAD DATA La sentencia LOAD DATA nos permite especificar cuál es el separador de columnas. que puede ser diferente a lo que nosotros estamos acostumbrados. Para valores que no conozcamos podemos usar valores nulos (NULL). y el separador de registros. la manera más fácil de poblarla es crear un archivo de texto que contenga un registro por línea para cada uno de nuestros estudiantes para que posteriormente carguemos el contenido del archivo en la tabla únicamente con una sentencia. Por tanto. Gráfico 67 Ingreso de datos utilizando el bloc de notas Para cargar el contenido del archivo en la tabla mascotas. Para representar estos valores en nuestro archivo debemos usar \N.txt" que contenga un registro por línea con valores separados por tabuladores. Ya que estamos iniciando con una tabla vacía. debemos de crear un archivo de texto "DatosEstudiantes.

Gráfico 69 Sentencia INSERT INTO Podemos comprobar realizando consultas SELECT. Gráfico 70 Sentencia SELECT Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 121 .txt". y el salto de línea es el separador de registros. Si lo que deseamos es añadir un registro a la vez. En la manera más simple. que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo "DatosEstudiantes. Podemos usar la sentencia INSERT para agregar su registro en nuestra base de datos. entonces debemos hacer uso de la sentencia INSERT.UNIDAD 4 MySQL separador de columnas (campos). Supongamos que se matricula un nuevo estudiante de nombre David Dávalos en el Noveno G. su dirección es Totoracocha y su fecha de nacimiento es desconocida. debemos proporcionar un valor para cada columna en el orden en el cual fueron listados en la sentencia CREATE TABLE.

3ª edición. C. B. Hernández (1997) Database Design for Mere Mortals AddisonWesley Developers Press [8] Elmasri y Navathe (2002) Fundamentos de Sistemas de Bases de Datos.B. Strachan (2000) Database Systems. J.J. P. Date (2001) Introducción a los Sistemas de Bases de Datos Volumen I. J. Navathe (2002) Sistemas de Bases de Datos.com Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 122 . Cuadra. [10] A.programacion.J. Referencias URL www. Zoellick (1992) File Structures. Iglesias y C.lycos.M.tripod. [4] R. Conceptos fundamentales Segunda Edición Addison-Wesley Iberoamericana. Elmasri. Implementation and Management Addison-Wesley Segunda Edición en 1998.J. Nieto(1999) Diseño de Bases de Datos: Problemas Resueltos. A Practical Approach to Design. Capítulo 1. S.org www. Folk.B. Ullman y Widom: “Database systems: the complete book”. Cavero.V. A. Ceri. de Miguel. A. D. Batini. Prentice-Hall (Capítulo 3).com www. Un enfoque de entidades-interrelaciones Addison-Wesley / Díaz de Santos [2] T. [3] C. Martínez. Séptima Edición Addison-Wesley Iberoamericana Sexta Edición en 2001. Hansen. Segunda Edición AddisonWesley [6] G. Navathe (1994) Diseño Conceptual de Bases de Datos. [9] Garcia-Molina. Connolly. Tercera Edición en 1999 (en inglés.Bibliografía BIBLIOGRAFÍA BIBLIOGRAFÍA Referencias bibliográficas [1] C.maestrosdelweb. Begg. S. por Addison-Wesley) [5] M.com www.mysql-hispano. Castro. 2002 (Capítulo 7). S. E. Hansen (1999) Diseño y Administración de Bases de Datos Segunda Edición Prentice Hall [7] M.W.

py www.fciencias.com www.er www.com www.wikypedia.edu.mx www.es www.edu.org www.edu.cepeu.ec www.uazuay.edu.unam.pdf proporcionado por el Ing.unsl. Colegio Técnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato – Aplicaciones Informáticas 123 .ucm.org www.com Otras Referencias Archivo Base de datos.com.desarrolloweb.aulaclic.mx www.msdn2.sql.fdi.microsoft.quegrande.Bibliografía www. Freddy Ávila del área de Informática del CTS.

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->