Está en la página 1de 123

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
IIN
NDDIIC
CEEG
GEEN
NEER
RAALL
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
2. 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
3. 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
4. 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
5. 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

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
2. ESTRUCTURA BÁSICA ........................................................................................................................... 54
3. ALIAS ............................................................................................................................................... 55
4. TIPOS DE DATOS ................................................................................................................................. 56
5. PREDICADOS Y CONECTORES ................................................................................................................. 56
6. TUPLAS DUPLICADAS ........................................................................................................................... 58
7. OPERACIONES DE CONJUNTO. ............................................................................................................... 59
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. INTRODUCCIÓN .................................................................................................................................. 72
1.1 Estructura de ficheros de Access ........................................................................................... 72
2. ELEMENTOS BÁSICOS DE ACCESS 2007 ................................................................................................... 73
2.1 La pantalla inicial .................................................................................................................. 73
2.2 La interfaz ............................................................................................................................. 73
3. 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
4. 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
5. 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
6. 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
INDICES

6.3 Crear una relación. ............................................................................................................... 93


6.4 Añadir tablas a la ventana Relaciones. ................................................................................. 95
6.5 Quitar tablas de la ventana Relaciones. ............................................................................... 95
6.6 Modificar relaciones. ............................................................................................................ 96
6.7 Eliminar relaciones................................................................................................................ 96
6.8 Mostrar relaciones directas .................................................................................................. 97
7. LAS CONSULTAS ................................................................................................................................. 97
7.1 Tipos de consultas ................................................................................................................. 97
7.2 Crear una consulta ................................................................................................................ 99
7.3 Añadir campos .................................................................................................................... 101
7.4 Encabezados de columna.................................................................................................... 101
7.5 Ejecutar la consulta ............................................................................................................ 102
7.6 Modificar el diseño de una consulta ................................................................................... 102
7.7 Ordenar las filas .................................................................................................................. 102
7.8 Seleccionar filas .................................................................................................................. 103
7.9 Consultas con parámetros .................................................................................................. 105
7.10 Las consultas multitabla ..................................................................................................... 105

UNIDAD 4 .......................................................................................................................................... 109

TEMA: MYSQL .................................................................................................................................... 109

1. INTRODUCCIÓN ................................................................................................................................ 109


2. CARACTERÍSTICAS ............................................................................................................................. 109
3. HISTORIA ........................................................................................................................................ 109
4. ESQUEMA DE DENOMINACIONES ......................................................................................................... 110
5. CONFORMACIÓN DE LA INSTALACIÓN.................................................................................................... 111
6. COMANDOS BÁSICOS......................................................................................................................... 112
7. CREAR Y UTILIZAR UNA BASE DE DATOS ................................................................................................. 114
8. CREAR Y SELECCIONAR UNA BASE DE DATOS ........................................................................................... 115
9. CREACIÓN DE TABLAS ........................................................................................................................ 115
10. CARGANDO DATOS EN UNA TABLA ................................................................................................... 119

BIBLIOGRAFÍA .................................................................................................................................... 122

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 4
INDICES

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

GRÁFICO 48 VARIAS CONDICIONES EN UNA CONSULTA.......................................................................................... 104


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

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 6
UNIDAD 1
Sistemas de bases de datos

SGBD
UNIDAD 1
Sistemas de Bases de Datos

U
UNNIID
DAAD
D11
Tema: Sistemas de Bases de Datos

1. Introducción Teórica

1.1 Dato e Información

En esencia, un sistema de bases de datos no es más que un sistema para


archivar en computador; o sea, es un sistema computarizado cuyo
propósito general es mantener información y hacer que esté disponible
cuando se solicite. 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, pueden


ser numéricos, alfabéticos, o alfanuméricos.
 Información: Es un conjunto ordenado de datos los cuales son
manejados según la necesidad del usuario, para que un conjunto de
datos pueda ser procesado eficientemente y pueda dar lugar a
información, primero se debe guardar lógicamente en archivos.

1.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.

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. La
base de datos no pertenece a un departamento, se comparte por toda la
organización.

Además, la base de datos no sólo contiene los datos de la organización,


también almacena una descripción de dichos datos. Esta descripción es lo
que se denomina metadatos, se almacena en el diccionario de datos o
catálogo y es lo que permite que exista independencia de datos.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas

8
UNIDAD 2
Lenguaje de Consultas SQL

1.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, crear y mantener la base de datos,
y proporciona acceso controlado a la misma.

Gráfico 1 Sistema gestor de bases de datos

En general, 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, así como las restricciones sobre los
datos. Todo esto se almacenará en la base de datos.
 Permite la inserción, actualización, eliminación y consulta de datos
mediante el lenguaje de manejo de datos (DML3).
 Proporciona un acceso controlado a la base de datos.

1.4 Objetivos de los sistemas de bases de datos

Los objetivos principales de un sistema de base de datos es disminuir los


siguientes aspectos:

Redundancia e inconsistencia de datos: Si los archivos que mantienen


almacenada la 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.
2
DDL: De las siglas en inglés Data Definition Language cuya traducción al español es Lenguaje de
definición de datos.
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
UNIDAD 2
Lenguaje de Consultas SQL

de aplicación existe la posibilidad de que si no se controla detalladamente el


almacenamiento, se pueda originar un duplicado de información, esto se
conoce como redundancia de datos. Esto aumenta los costos de
almacenamiento y acceso a los datos, además de que puede originar la
inconsistencia de los datos4, por ejemplo: que se actualiza la dirección de
un alumno en un archivo y que en otros archivos permanezca la anterior.

Dificultad para tener acceso a los datos: Un sistema de base de datos


debe contemplar un entorno de datos que le facilite al usuario el manejo de
los mismos. Por ejemplo 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. El
departamento pide al centro de cómputo que genere la lista
correspondiente. Puesto que esta situación no fue prevista en el diseño del
sistema, no existe ninguna aplicación de consulta que permita este tipo de
solicitud, esto ocasiona una deficiencia del sistema.

Aislamiento de los datos: Cuando los datos están repartidos en varios


archivos, y estos no pueden tener diferentes formatos, es difícil escribir
nuevos programas de aplicación para obtener los datos apropiados.

Anomalías del acceso concurrente: Para mejorar el funcionamiento


global del sistema y obtener un tiempo de respuesta más rápido, muchos
sistemas permiten que múltiples usuarios actualicen los datos
simultáneamente. En un entorno así la interacción de actualizaciones
concurrentes puede dar por resultado datos inconsistentes.

Problemas de seguridad: La información de toda organización es


importante, aunque unos datos lo son más que otros, por tal motivo se
debe considerar el control de acceso a los mismos, no todos los usuarios
pueden visualizar alguna información, 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. En un colegio por
ejemplo, 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
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. Estas
restricciones se hacen cumplir en el sistema añadiendo códigos apropiados
en los diversos programas de aplicación.

ACTIVIDAD GRUPAL

Con un grupo de tres compañeros realice un foro para debatir la


importancia de los sistemas de bases de datos. Entregue un documento con
las conclusiones y opiniones que se han llegado al final de la actividad.

2. Planificación y diseño de bases de datos

2.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, é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, integridad y precisión de los datos. Si una base
de datos está mal diseñada, 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.

Viéndolo desde una perspectiva diferente, la base de datos es como una


casa que queremos que nos construyan. ¿Qué es lo primero que hay que
hacer? Desde luego, lo que no vamos a hacer es buscar a un constructor
que haga la casa sobre la marcha y lo haga como él quiera. Seguramente,
buscaremos primero a un arquitecto que diseñe nuestra nueva casa y
después haremos que el constructor la edifique. El arquitecto expresará
nuestras necesidades en una serie de planos, anotando todos los requisitos
de los diversos sistemas (estructural, mecánico y eléctrico). Después, el

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 11
UNIDAD 2
Lenguaje de Consultas SQL

constructor pondrá los materiales necesarios, tal y como se indica en los


planos y en las especificaciones.

Volviendo a la perspectiva de las bases de datos, el diseño lógico


corresponde con la fase de elaboración de los planos arquitectónicos, y la
implementación física de la base de datos es la casa ya construida. El
diseño lógico describe el tamaño, la forma y los sistemas necesarios para la
base de datos. Después, se construye la implementación física del diseño
lógico de la base de datos mediante el DBMS.

Se pueden hacer malos diseños, pero una base de datos bien diseñada
contendrá información correcta, almacenará los datos más eficientemente y
será más fácil de gestionar y de mantener.

2.2 Ciclo de vida de las Aplicaciones de bases de datos

Una aplicación de base de datos es un sistema de información, es decir, un


conjunto de recursos que permiten recoger, gestionar, controlar y difundir
la información de toda una empresa u organización.

Un sistema de información está formado por los siguientes componentes:

 La base de datos.
 El DBMS.
 Los programas de aplicación.
 Los dispositivos físicos (ordenadores, medios de almacenamiento,
etc.).
 El personal que utiliza y que desarrolla el sistema.

La base de datos es un componente fundamental de un sistema de


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, siguiendo un
enfoque orientado a 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.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 12
UNIDAD 2
Lenguaje de Consultas SQL

 Definición del sistema.


 Recolección y análisis de los requisitos.
 Diseño de la base de datos.
 Selección del DBMS.
 Diseño de la aplicación.
 Prototipado.
 Implementación.
 Conversión y carga de datos.
 Prueba.
 Mantenimiento.

Estas etapas no son estrictamente secuenciales. De hecho hay que repetir


algunas de las etapas varias veces, haciendo lo que se conocen como ciclos
de realimentación. Por ejemplo, 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.

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.

ACTIVIDAD

Investigue cada una de las etapas del ciclo de vida del desarrollo del
software. Se evaluará: Portada, índice de contenidos, índice de gráficos (si
es que los hay), calidad de la teoría investigada, ejemplos, conclusiones,
recomendaciones y bibliografía.

Recuerde que una buena investigación implica una buena sustentación de la


misma.

2.3 Diseño de bases de datos

Como se pudo ver en la Planificación y diseño de la bases de datos, el


diseño de una base de datos se descompone en: diseño conceptual, diseño
lógico y diseño físico.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 13
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, independientemente de cualquier
consideración física. A este esquema se le denomina esquema conceptual.
Al construir el esquema, los diseñadores5 descubren la semántica
(significado) de los datos de la empresa. El objetivo es comprender:

 La perspectiva que cada usuario tiene de los datos.


 La naturaleza de los datos, independientemente de su representación
física.
 El uso de los datos a través de las áreas de aplicación.

El esquema más popular para el diseño conceptual es el modelo E-R6.

Diseño lógico: El diseño lógico es el proceso de construir un esquema de la


información que utiliza la empresa, basándose en un modelo de base de
datos específico, independiente del DBMS concreto que se vaya a utilizar y
de cualquier otra consideración física.

En esta etapa, 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, como puede ser el modelo
relacional, el modelo de red, el modelo jerárquico o el modelo orientado a
objetos.

La normalización es una técnica que se utiliza para comprobar la validez de


los esquemas lógicos basados en el modelo relacional, ya que asegura que
las relaciones (tablas) obtenidas no tienen datos redundantes.

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.

5
Los diseñadores de la base de datos realizan el diseño lógico de la base de datos, debiendo identificar
los datos, las relaciones entre datos y las restricciones sobre los datos y sus relaciones. 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. Las reglas de negocio describen las características principales de los datos
tal y como las ve la empresa.
6
Un diagrama o modelo entidad-relación (a veces denominado por su siglas en inglés E-R "Entity
relationship"). Se verá más adelante en detalle.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 14
UNIDAD 2
Lenguaje de Consultas SQL

Para llevar a cabo esta etapa, se debe haber decidido cuál es el DBMS que
se va a utilizar, ya que el esquema físico se adapta a él. Entre el diseño
físico y el diseño lógico hay una realimentación, ya que algunas de las
decisiones que se tomen durante el diseño físico para mejorar las
prestaciones, pueden afectar a la estructura del esquema lógico. En
general, el propósito del diseño físico es describir cómo se va a implementar
físicamente el esquema lógico obtenido en la fase anterior.

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, incluidos su
estructura, contenido y las aplicaciones que se han de desarrollar.

3.1 Modelos de datos

Un modelo de datos es una serie de conceptos que puede utilizarse para


describir un conjunto de datos y las operaciones para manipularlos. Hay dos
tipos de modelos de datos: los modelos conceptuales y los modelos lógicos.

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, y luego se
transforma el esquema conceptual en un esquema lógico.

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, el modelo E-R sólo incluía los conceptos de entidad, relación


y atributo. Más tarde, se añadieron otros conceptos, como los atributos
compuestos y las jerarquías de generalización, en lo que se ha denominado
modelo entidad-relación extendido.

Entidad y atributos

Entidades: Es todo lo que existe y es capaz de ser descrito (sustantivo), se


distingue de otros objetos de acuerdo a sus características llamadas

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 15
UNIDAD 2
Lenguaje de Consultas SQL

atributos. Por ejemplo puede ser una entidad el sustantivo persona pues el
mismo se diferencia de cualquier otra persona, incluso siendo gemelos.

O puede ser una entidad el sustantivo casa pues aunque sea exactamente
igual a otra, aún se diferenciará en su dirección.

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. Un nombre de entidad sólo puede
aparecer una vez en el esquema conceptual.

Una entidad puede ser un objeto con existencia física como: una persona,
un animal, una casa, etc. (entidad concreta), o un objeto con existencia
conceptual como: un puesto de trabajo, una asignatura de clases, un
nombre, etc. (entidad abstracta).

Hay dos tipos de entidades: fuertes y débiles. Una entidad débil es una
entidad cuya existencia depende de la existencia de otra entidad. Una
entidad fuerte es una entidad que existe pos sí sola y no depende de la
existencia de otras.

Atributos: es una característica (adjetivo) de una entidad o relación. Una


entidad está descrita y se representa por sus características o atributos. Por
ejemplo, la entidad Alumno puede llevar consigo las características: Código,
Nombres, Dirección, Teléfono, etc.

Teléfono Dirección

Código Nombres

ALUMNO
Gráfico 3 Representación gráfica de los atributos en una Entidad

De entre los atributos habrá uno o un conjunto de ellos que no se repite; a


este atributo o conjunto de atributos se le llama clave de la entidad, (para
la entidad alumno una clave seria CÓDIGO). En el esquema se los distingue
por que el atributo clave se encuentra subrayado.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 16
UNIDAD 2
Lenguaje de Consultas SQL

Relación (Interrelación)

Es una correspondencia o asociación entre dos o más entidades (verbo).


Cada relación tiene dos extremos y se representas gráficamente con
rombos, dentro de ellas se coloca el nombre de la relación.

Teléfono Dirección

Código Nombres Nivel Paralelo

PERTENECE
ALUMNO 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, la relación PADRES,
puede ser de grado 3, ya que involucra las entidades PADRE, MADRE e
HIJO.

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.

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
UNIDAD 2
Lenguaje de Consultas SQL

Una entidad del tipo A solo se puede relacionar con una entidad del tipo B, y
viceversa.

Por ejemplo: La entidad HOMBRE con la entidad MUJER y entre ellos la


relación MATRIMONIO, es una relación 1 a 1, ya que asocia a un HOMBRE
con una única MUJER por lo tanto ningún HOMBRE tiene más de una MUJER
en MATRIMONIO, y ninguna MUJER tiene más de una HOMBRE en
MATRIMONIO. El extremo de la flecha indica el uno de la relación.

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 una
entidad del tipo B solo puede estar relacionada con una entidad del tipo A.

Por ejemplo: La entidad CURSO y la entidad ALUMNO y entre ellos la


relación ESTUDIAR EN. En un CURSO pueden ESTUDIAR muchos ALUMNOS,
pero un ALUMNO puede ESTUDIAR EN un solo CURSO.

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.

Por ejemplo: La entidad ALUMNO y la entidad ASIGNATURA y entre ellos la


relación APRENDER. Un ALUMNO puede APRENDER varias asignaturas y una
ASIGNATURA puede ser APRENDIDA por varios 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
UNIDAD 2
Lenguaje de Consultas SQL

3.3 Generalización, especialización y Agregación

a) Generalización

La generalización consiste en identificar atributos comunes a ciertas


entidades, para lo cual podemos crear: una entidad de nivel superior que
las contenga, y otras entidades de nivel inferior con los atributos
particulares. Ejemplo:

Atributos semejantes Dirección


(Generalizados)
Nombre Teléfono

PERSONA Entidad global


generada

IS A: Se lee ES UN
IS A

Salario Calificación

EMPLEADO ESTUDIANTE

IS A
Atributos individuales

Atributos individuales

ADMINISTRATIVO PROFESOR

Cargo Departamento 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, Dirección y Teléfono. 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". La entidad "hijo"
hereda todos los atributos y relaciones de la entidad "padre". Por tanto, no necesitan ser representadas
dos veces en el diagrama.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 19
UNIDAD 2
Lenguaje de Consultas SQL

salario que hereda a las entidades ADMINISTRATIVO y PROFESOR, las


cuales tienen también sus propios atributos individuales.

Como podemos observar la Generalización trata de eliminar la redundancia


(repetición) de atributos, al englobar los atributos semejantes. La
entidad(es) de bajo nivel heredan todos los atributos correspondientes.

b) Especialización

Si identificamos un subconjunto de entidades dentro de un conjunto de


entidades que tienen algunos atributos particulares, entonces estos
subgrupos se convierten en conjuntos de entidades de nivel inferior que
tienen atributos o participan en relaciones que no son aplicables al conjunto
de entidades de nivel superior.

c) 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. Esta nueva entidad, fruto
de esa íntima unión, se puede relacionar con otras entidades. Se representa
enmarcando la relación en un rectángulo.

Id
Horas Número
Nombre

EMPLEADO TRABAJA 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, pero dependiendo del trabajo que realiza
en pueden llegar a utilizar un equipo o maquinaria; en este problema
intervienen 3 entidades: Empleado, Proyecto y Maquinaria, el diagrama E-R
correspondiente sería el que se visualiza en la figura 9.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 20
UNIDAD 2
Lenguaje de Consultas SQL

Como el modelo E-R no permite la unión entre dos o más relaciones, la


relación TRABAJA es englobada como si fuera una entidad más de la
relación USA, gráficamente se dibuja un rectángulo para englobarlas. Sólo
así podemos decir que la entidad TRABAJA se relaciona con la entidad
MAQUINARIA a través de la relación USA. Para indicarnos que un trabajo
usa un determinado equipo o maquinaria según el tipo de trabajo que se
trate.

3.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. No es la única técnica pero sí la más
utilizada. 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).
2. Se hace una lista de los sustantivos y verbos que aparecen.
3. Los sustantivos son posibles entidades o atributos.
4. Los verbos son posibles relaciones.
5. Analizando las frases se determina la cardinalidad de las relaciones y
otros detalles.
6. Se elabora el diagrama (o diagramas) entidad-relación.
7. Se completa el modelo con listas de atributos y una descripción de
otras restricciones que no se pueden reflejar en el diagrama.

3.5 Ejercicios Resueltos

Ejercicio 1: Realizar un diagrama E-R del siguiente enunciado: Una


editorial publica varios libros. Un libro es publicado por una sola editorial.

EDITORIAL PUBLICA LIBRO

Gráfico 11 Diagrama E-R del Ejercicio 1

Ejercicio 2: Una editorial publica varios libros. Un libro es publicado por


una sola editorial. Un lector puede tomar prestados varios libros.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 21
UNIDAD 2
Lenguaje de Consultas SQL

EDITORIAL PUBLICA

LIBRO
TIENE
LECTOR
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. Los datos a tener en cuenta son:

 Cada proyecto tiene asociado un identificador numérico y un nombre.


Además se guardará qué estudiante es el director de dicho proyecto.

 También se quiere guardar información sobre los informes que en


cada aporte se hacen de cada proyecto. 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. Las tareas dentro de los proyectos suelen ser casi siempre las
mismas, aunque las realicen distintas personas y le dediquen tiempos
distintos. 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.

 De los estudiantes se guardará el código y su nombre.

Fecha Descripción

Tiempo
IdInforme IdTarea

GUARDA REGISTRA TAREA


INFORME

Código
Nombre IdProyecto
Nombre

DIRIGE
PROYECTO 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
UNIDAD 2
Lenguaje de Consultas SQL

4. Diseño lógico de bases de datos utilizando el Modelo


Relacional

4.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.

Los modelos de bases de datos más extendidos desde la perspectiva del


diseño lógico son el modelo relacional, el modelo de red y el modelo
jerárquico. El modelo orientado a objetos es también muy popular, pero no
existe un modelo estándar orientado a objetos.

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, es importante mencionar que
es un paso necesario, no se puede partir de un modelo conceptual para
realizar un físico.

4.2 El Modelo Relacional

El objetivo del modelo relacional es crear un "esquema", lo cual como se


explicará más adelante consiste de un conjunto de "tablas" que representan
"relaciones", relaciones entre los datos.

La ventaja del modelo relacional es que los datos se almacenan, al menos


conceptualmente, de un modo en que los usuarios entienden con mayor
facilidad. Los datos se almacenan como tablas y las relaciones entre las filas
y las tablas son visibles en los datos. Este enfoque permite a los usuarios
obtener información de la base de datos sin asistencia de sistemas
profesionales de administración de información.

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, por lo tanto la
intersección de un renglón con una columna tiene un solo valor,
nunca un conjunto de valores.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 23
UNIDAD 2
Lenguaje de Consultas SQL

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


ejemplo, una columna puede contener nombres de clientes, y en otra
puede tener fechas de nacimiento. Cada columna posee un nombre
único, el orden de las comunas no es de importancia para la tabla, las
columnas de una tabla se conocen como atributos. Cada atributo
tiene un dominio, que es una descripción física y lógica de valores
permitidos.

 No existen 2 filas en la tabla que sean idénticas.


 La información en las bases de datos son representados como datos
explícitos, no existen apuntadores o ligas entre las tablas.

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. En el enfoque relacional, los datos se organizan en tablas
llamadas relaciones, cada una de las cuales se implanta como un archivo.
En terminología relacional una fila en una relación representa un registro o
una entidad; Cada columna en una relación representa un campo o un
atributo.

Así, 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.

Las tablas del diagrama relacional, pueden ser construidas partiendo de


convertir el diagrama e-r a tablas y posteriormente aplicar operaciones de
normalización hasta conseguir el esquema óptimo.

Esta es muy conveniente en varios aspectos:

 El partir de un diagrama visual es muy útil para apreciar los detalles,


de ahí que se llame modelo conceptual.
 El crear las tablas iníciales es mucho más simple a través de las
reglas de conversión.
 Se podría pensar que es lo mismo porque finalmente hay que
"normalizar" las tablas de todas formas, pero la ventaja de partir del
modelo e-r es que la "normalización" es mínima por lo general.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 24
UNIDAD 2
Lenguaje de Consultas SQL

 Lo anterior tiene otra ventaja, aún cuando se normalice de manera


deficiente, se garantiza un esquema aceptable.

Conceptos básicos

Tablas: El modelo relacional proporciona una manera simple de representar


los datos: una tabla bidimensional llamada relación.

ALUMNOS

CODIGO NOMBRES DIRECCIÓN

1234 David Bustamante Av. 24 de Mayo

5678 Tomás Alarcón Gran Colombia

La relación Alumnos tiene la intención de manejar la información de las


instancias en la entidad Alumnos, cada renglón corresponde a una entidad
Alumno y cada columna corresponde a uno de los atributos de la entidad.
Sin embargo las relaciones pueden representar más que entidades, como se
explicará más adelante.

El grado de esta tabla es el número de campos que posee, en nuestro caso


la tabla ALUMNOS es de grado 3.

Campos o atributos: Los atributos son las columnas de una relación y


describen características particulares de ella.

Relación, Esquema o Tabla: Es el nombre que se le da a una relación y el


conjunto de atributos en ella.

Alumnos (Código, Nombres, Dirección)

Tuplas o registros: Cada uno de los renglones en una relación


conteniendo valores para cada uno de los atributos.

(1234, David Bustamante, Av. 24 de Mayo)

Dominios: Se debe considerar que cada campo (columna) debe ser


atómico, es decir, que no sea divisible, no se puede pensar en un atributo
como un "registro" o "estructura" de datos.

Claves: Como en una tabla, las tuplas pueden estar en cualquier orden, no
podemos referenciar una tupla concreta a mediante su posición entre las

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 25
UNIDAD 2
Lenguaje de Consultas SQL

demás, y necesitamos alguna forma de seleccionar una tupla concreta. La


forma de hacerlo es mediante una clave.

Una clave es un atributo o conjunto de atributos cuyo valor es único y


diferente para cada tupla.

Clave primaria: De entre todas las claves candidatas, el administrador,


cuando define la tabla, debe decidir cuál de ellas va a ser la clave principal o
clave primaria.

Una clave primaria es aquella columna (pueden ser también dos columnas o
más) que identifica únicamente a esa fila. La clave primaria es un
identificador que va a ser único para cada fila. Se acostumbra poner la clave
primaria como la primera columna de la tabla pero esto no tiene que ser
necesario, si no es más una conveniencia. Muchas veces la clave primaria
es autonumérica.

Clave Candidata: En una tabla puede que tengamos más de una clave, en
tal caso se puede escoger una para ser la clave primaria, las demás claves
son las claves candidatas, además es la posible clave primaria. P.ej., en
nuestro caso de la tabla Alumnos, la clave puede ser tanto el atributo
Código, como el atributo Nombre

Claves Alternativas: Una clave alternativa es aquella clave candidata que


no ha sido seleccionada como clave primaria, pero que también puede
identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una
tabla Alumnos definimos Código como clave primaria, el número de cédula
de ese alumno podría ser una clave alternativa.

Clave Foránea: Una clave foránea es aquella columna que existiendo como
dependiente en una tabla, es a su vez clave primaria en otra tabla.

Clave Compuesta: Una clave compuesta es una clave que está compuesta
por más de una columna o campo.

4.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.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 26
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. Por otro lado,
cuando dicho modelo lógico es el modelo relacional, resulta bastante
sencillo pasar del diagrama E-R al esquema relacional mediante unas
cuantas reglas sencillas y fáciles de aplicar.

Antes de comenzar es necesario resaltar las diferencias existentes entre


estos dos modelos.

De una parte, el modelo E-R trabaja a nivel conceptual, estableciendo


cuáles son las entidades fuertes y débiles que intervienen en nuestra base
de datos, y las relaciones existentes entre ellas; sin embargo, no hace
referencia alguna a la forma en que estos «objetos» se almacenan en
ninguna base de datos, entre otras cosas por se trata sólo de un modelo
conceptual. Por contra, 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). Para ello se
vale casi únicamente del concepto de tabla.

Por tanto, lo que se pretende con este apartado es pasar de describir


conceptualmente el mundo mediante entidades y relaciones, a describirlo
lógicamente mediante tablas.

Una vez preparados los atributos de las entidades y relaciones, la


conversión del diagrama E-R al modelo relacional pasa por dos etapas: una
en la que se convierten las entidades, y otra en la que se convierten las
relaciones. No obstante, las tablas que se van obteniendo no adoptan su
forma definitiva hasta que se ha acabado el proceso.

Conversión de entidades a tablas.

«Una entidad A con atributos a1...aN se convierte en una tabla de nombre A,


y nombres de columna o atributos a1...aN. Si la clave de la entidad A está
formada por los atributos ai...ai+k, la clave de la tabla correspondiente
estará formada por dichos atributos».

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 27
UNIDAD 2
Lenguaje de Consultas SQL

En definitiva, podemos decir que existe una correspondencia directa entre el


concepto de entidad del diagrama E-R (una vez eliminados los atributos
múltiples y los compuestos), y el concepto de tabla relacional.

P.ej., siguiendo con el caso anterior, la entidad ALUMNO se convertiría en la


tabla adjunta, en la que no hay ningún dato insertado.

Teléfono Dirección

Código Nombres

ALUMNO
Gráfico 14 Entidad Alumno

ALUMNO

CODIGO NOMBRES DIRECCIÓN TELÉFONO

Si la entidad es débil, será necesario incluir también los atributos


correspondientes a su entidad fuerte, indispensables para poder establecer
una clave identificativa en la tabla así formada.

Conversión de relaciones binarias a tablas

Supongamos el ejemplo de un diagrama que nos permite representar las


facturas propias de cualquier negocio. Dado que el número de líneas de
detalle de una factura es indeterminado, es necesario crear una relación
débil que relacione cada factura con los detalles que en ella se facturan, tal
y como se ve en el diagrama del la figura.

Fecha Cliente CódigoArtículo Cantidad

Número NúmeroLínea PrecioUnitario


IVA

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
UNIDAD 2
Lenguaje de Consultas SQL

FACTURA

NÚMERO FECHA CLIENTE IVA

LÍNEAS DE DETALLE
NÚMERO_ NÚMERO CANTIDAD CÓDIGO PRECIO
FACTURA LÍNEA ARTÍCULO UNITARIO

Cuando convertimos las entidades FACTURAS y LÍNEAS DE DETALLE en sus


tablas correspondientes, obtenemos las de la figura, en la que se observa
quela tabla de LÍNEAS DE DETALLE hereda los atributos que forman la clave
de FACTURAS.

Con este método está claro cuáles son las instancias de LÍNEAS DE
DETALLE que se relacionan con cada Factura concreta, 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. Por otro lado, averiguar a
qué Factura pertenece una Línea de Detalle es trivial, todo caso que se
conoce la clave de dicha Factura a través de Número de Factura.

De esta forma, 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.

Conversión de relaciones uno a uno

La conversión de una relación uno a uno, no da lugar a una tabla nueva,


sino que modifica una de las dos tablas correspondientes a las entidades
que relaciona.

«Una relación R del tipo uno a uno con atributos r1...rN que relaciona
entidades A y B de claves ai...ai+k y bj...bj+m, modifica la tabla de la entidad
A, añadiéndole como atributos los de la clave de B, y los suyos propios, esto
es bj...bj+m y r1...rN».

Por ejemplo, supongamos el diagrama E-R de la figura que representa a


una entidad CLIENTES y a una entidad CASILLEROS DE ROPA, en un
sistema en el que queremos representar parte de un gimnasio, de manera
que un cliente alquila un casillero para guardar su ropa, y un CASILLEROS
DE ROPA sólo puede pertenecer como mucho a un CLIENTE. Esta situación

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 29
UNIDAD 2
Lenguaje de Consultas SQL

se representa mediante la relación ALQUILA, que en tal caso es del tipo uno
a uno.

Nombre Apellido

Cédula Dirección Número Situación

ALQUILA
CLIENTE 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, se


obtienen las de la figura adjunta.

CLIENTE

CÉDULA NOMBRE APELLIDO DIRECCIÓN

CASILLERO DE ROPA

NÚMERO SITUACIÓN

Si ahora aplicamos la regla dada anteriormente, nos damos cuenta de su


ambigüedad, en el sentido de que hace referencia a una entidad A y otra B.
En nuestro caso, da lo mismo cual consideremos como entidad A (si a
CLIENTES o CASILLEROS DE ROPA), ya que el proceso a seguir es idéntico
escojamos la que escojamos.

Supongamos que la entidad A es CLIENTES, en tal caso para convertir la


relación ALQUILA con atributos Fecha alquiler y Duración, ampliaremos la
tabla de Clientes con la clave de CASILLEROS DE ROPA, o sea Número, y los
atributos de la relación CASILLEROS DE ROPA, dando lugar a la tabla
siguiente.

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
UNIDAD 2
Lenguaje de Consultas SQL

Como resultado de esta conversión, hemos transformado una tabla


añadiéndole atributos que permiten seguir la relación existente entre un
CLIENTE y un CASILLERO DE ROPA. Podemos saber directamente qué
CASILLEROS DE ROPA tiene asignado un CLIENTE sin más que consultar su
clave, en este caso el atributo Número, que, por el hecho de ser clave,
identifica de forma única una tupla en la tabla de CASILLEROS DE ROPA.
Asimismo, acompañamos la adición de esta clave con la adición de los
atributos propios de la relación, con lo que podemos saber qué CASILLERO
DE ROPA ha alquilado cada CLIENTE, en qué Fecha alquiler y por cuánta
Duración.

Por otro lado, para saber a partir de un Número de CASILLERO DE ROPA,


qué CLIENTE la ha alquilado, basta con inspeccionar todas las tuplas de
Clientes en busca de uno cuyo atributo Número coincida con el que estamos
buscando.

Por tanto, lo que en el diagrama E-R no era más que un dibujo que
relacionaba instancias de una entidad, lo hemos convertido en tablas y
atributos insertados en ellas que nos permiten «seguir el hilo» de las
instancias relacionadas.

Esta operación, en la que la clave de una tabla «emigra» a otra, da lugar a


lo que se llama clave foránea, que no es más que el conjunto de atributos
que conforman la clave migrada.

Conversión de relaciones uno a muchos.

Cuando la relación que se desea convertir es del tipo uno a muchos, la


solución es muy parecida a la del punto anterior, y consiste en migrar una
de las claves a la tabla correspondiente a la otra entidad.

«Una relación R del tipo uno a muchos con atributos r1...rN que relaciona
entidades A y B de claves ai...ai+k y bj...bj+m de manera que una instancia de
A se puede relacionar con muchas de B, modifica la tabla de la entidad B,
añadiéndole como atributos los de la clave de A, y los suyos propios, esto es
ai...ai+k y r1...rN».

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 31
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. Esto puede verse en la figura adjunta.

FechaDeSalida

Situación
LugarDeSalida
Nacionalidad

Nombre Dirección Destino


Descriptor

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.

COMPAÑIAS

NOMBRE DIRECCIÓN NACIONALIDAD

VUELOS

DESCRIPTOR LUGAR DE FECHA DE SITUACIÓN DESTINO


SALIDA SALIDA

En esta situación, para convertir la relación REALIZAR al modelo relacional,


observamos que una COMPAÑÍA se relaciona con muchos VUELOS, por lo
que siguiendo la regla anterior, COMPAÑÍA hace las veces de entidad A, y
VUELOS hace las veces de entidad B. Por tanto, para convertir la relación,
basta con incluir la clave de COMPAÑÍAS en la tabla de VUELOS, dando
lugar al siguiente esquema.

COMPAÑIAS

NOMBRE DIRECCIÓN NACIONALIDAD

VUELOS

DESCRIPTOR LUGAR DE FECHA DE SITUACIÓN DESTINO NOMBRE


SALIDA SALIDA

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 32
UNIDAD 2
Lenguaje de Consultas SQL

En este caso, la relación REALIZAR carece de atributos propios por lo que


no se añaden más atributos a la tabla de VUELOS.

En este punto es interesante hacer notar que en el diagrama E-R existe la


posibilidad de tener entidades distintas con atributos distintos pero con el
mismo nombre; p.ej., puede ser común tener la entidad CLIENTES con un
atributo CÉDULA, y a la vez tener la entidad EMPLEADOS con un atributo
también llamado CÉDULA. Esto es posible porque cuando se hace referencia
a CÉDULA, es necesario también indicar la entidad a que nos referimos:
CLIENTES o EMPLEADOS.

Sin embargo, en el momento de efectuar la conversión del diagrama a las


tablas relacionales, vemos que en ciertas situaciones es necesario migrar
las claves de unas entidades a otras, lo cual puede dar conflictos de
nombres. Por ejemplo, ¿qué ocurriría si el atributo que forma la clave de
VUELOS (destinado a guardar el código del vuelo: IB-713, AV-098, etc.),
en lugar de llamarse Descriptor se llamase Nombre? Está claro que cuando
se migrase la clave de la COMPAÑÍA a la tabla de VUELOS habría un
problema, pues tendríamos dos atributos con el mismo nombre.

Pues bien, tanto si se produce esa situación como si no, cuando se migra la
clave de una tabla a otra, nada nos impide renombrar los atributos en su
nueva ubicación. Por ejemplo, en el caso anterior, la tabla VUELOS podría
haber quedado como se ve en la figura: el atributo Nombre ha pasado a
llamarse Nombre de Compañía.

COMPAÑIAS

NOMBRE DIRECCIÓN NACIONALIDAD

VUELOS

DESCRIPTOR LUGAR DE FECHA DE SITUACIÓN DESTINO NOMBRE DE


SALIDA SALIDA COMPAÑÍA

Lo que sí está claro, en cualquier caso, es que el atributo Nombre de


Compañía sigue siendo clave foránea, aunque tenga distinto nombre.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 33
UNIDAD 2
Lenguaje de Consultas SQL

Conversión de relaciones muchos a muchos.

Este es el caso más general de conversión de relaciones, pudiendo incluso


aplicarse en las relaciones uno a uno y uno a muchos. El único motivo por el
que no se da esta regla como única regla general es la eficiencia, ya que
como veremos implica la creación de tablas nuevas y la duplicación de
información en gran cantidad.

«Una relación R del tipo muchos a muchos con atributos r1...rN que
relaciona entidades A y B de claves ai...ai+k y bj...bj+m respectivamente, se
convierte en una tabla llamada R y compuesta por los atributos de las
claves de A y B, así como por los atributos propios de la relación R, esto es
ai...ai+k, bj...bj+m, y r1...rN. Los atributos ai...ai+k, bj...bj+m forman la clave de
la nueva tabla».

En el caso de las relaciones muchos a muchos no podemos ampliar ninguna


de las tablas asociadas porque necesitaríamos un número indeterminado de
claves foráneas. Por tanto, la solución pasa por crear una nueva tabla con el
único objetivo de contener los pares de instancias que se relacionan;
evidentemente, en lugar de repetir toda la información de cada instancia, se
almacena tan sólo la información identificativa: la clave.

Para ilustrar esto, supongamos que queremos representar la información


relativa a los ALUMNOS del colegio y los CLUBES en que se halan
matriculados. El diagrama E-R que representa puede verse en la figura.

Nombre Apellido

Cédula AñoNacimiento Código Nombre

MATRICULA
ALUMNO CLUB

ConvocatoriasAgotadas VecesMatriculado

Gráfico 18 Esquema E-R con relación muchos a muchos

Dado que la relación MATRÍCULAS es muchos a muchos, según la regla


anterior, la conversión implica crear una nueva tabla con el mismo nombre,
o sea MATRÍCULAS, 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
UNIDAD 2
Lenguaje de Consultas SQL

Agotadas, así como las claves de ALUMNOS y ASIGNATURAS, o sea, Cédula


y Código, que podemos renombrar como Cédula del Alumno y Código de
Club, quedando las tablas de la figura siguiente.

ALUMNOS

CÉDULA NOMBRE APELLIDO AÑO DE


NACIMIENTO

CLUB

CÓDIGO NOMBRE

MATRÍCULA CLUB

CÉDULA CÓDIGO VECES CONVOCATORIAS


ALUMNO DE CLUB MATRICULADO AGOTADAS

Con este esquema de tablas, para saber en qué CLUBES se ha matriculado


un alumno concreto, basta con buscar todas las veces que parezca su
cédula en la tabla MATRÍCULAS; cada tupla en la que aparezca contendrá
además la clave de una de los clubes en la que está matriculado.

Para saber el nombre de cada club utilizaremos el Código de club como


clave para buscar el nombre en la tabla CLUBES.

Es interesante hacer notar la necesidad de los atributos asociados a la


relación, tal y como explicábamos en el capítulo de diagramas E-R.

ACTIVIDAD

Investigue cómo se hace la Transformación de relaciones no binarias a


tablas. Se evaluará: Portada, índice de contenidos, índice de gráficos (si es
que los hay), calidad de la teoría investigada, ejemplos, conclusiones,
recomendaciones y bibliografía.

Recuerde que una buena investigación implica una buena sustentación de la


misma.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 35
UNIDAD 2
Lenguaje de Consultas SQL

5. Normalización desde el punto de vista del diseño lógico de


una base de datos

5.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.

Los problemas tales como la redundancia que ocurren cuando se abarrotan


demasiados datos en una sola relación son llamados anomalías. Los
principales tipos son:

1. Redundancia: la información se repite innecesariamente en muchas


tuplas. En la relación siguiente: ALUMNO, CURSO, PARALELO,
ESPECIALIDAD.
2. Anomalías de actualización: cuando al cambiar la información en
una tupla se descuida el actualizarla en otra. 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.
3. 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. Si eliminamos la materia CCNN 2, perdemos también
la tupla del alumno Polo García.

ALUMNOS
ALUMNO CURSO PARALELO EDAD ESPECIALIDAD MATERIA
David Bustamante Décimo F 14 Básica Matemáticas III
David Bustamante Décimo F 14 Básica Computación III
David Bustamante Décimo F 14 Básica Inglés III
Polo García Octavo A 12 Básica CCNN I
Raúl Bolaños Noveno B 13 Básica Inglés II
Raúl Bolaños Noveno B 14 Básica CCSS II

5.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",

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 36
UNIDAD 2
Lenguaje de Consultas SQL

otros factores sería el manejo de dependencias multivaluadas y las


restricciones de integridad referencial.

Como vimos anteriormente, las relaciones pueden usarse como modelos del
“mundo real”, estos hechos del mundo real implican que no todo conjunto
de tuplas conforman una instancia válida del esquema de relación, aún
cuando los valores de las tuplas hayan sido tomados de los dominios
correctos. Por ejemplo, si tenemos el esquema:

Alumnos= {Código, Nombre, Edad, Curso}

La siguiente instancia no es válida:

ALUMNOS

CÓDIGO NOMBRE EDAD CURSO

1234 David Bustamante 314 Décimo

5678 Tomás Alarcón 15 Primero de Bachillerato

9101 Humberto López 12 Tercero de Bachillerato

1121 Miguel Farfán 16 Tercero de Bachillerato

5678 Mario Osorio 15 Segundo de Bachillerato

Podemos distinguir dos tipos de restricciones9 sobre las relaciones:

Restricciones que dependen de la semántica del dominio. Estas


restricciones surgen de comprender el significado de las componentes de las
tuplas. En el ejemplo anterior, David Bustamante no puede tener 314 años
y Humberto López no puede estar en Tercero de Bachillerato cuando sólo
tiene 12 años de edad. Conocer estas restricciones no ayudan a lograr un
buen diseño de la base de datos, pero es necesario considerarlas para que
el DBMS chequee los errores que posiblemente ocurrirán en el momento de
cargar los datos.

Restricciones que dependen de la igualdad o desigualdad de


valores. Estas restricciones no dependen de qué valor tiene una tupla en
una componente dada, sino que se basan en que dos tuplas coinciden en
ciertas componentes. En el ejemplo anterior, no puede suceder que Pedro y
Mario Osorio tengan el mismo valor en el campo CÓDIGO, más allá de cuál

9
Restricciones: Es una condición que obliga el cumplimiento de ciertas condiciones en la bases de datos.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 37
UNIDAD 2
Lenguaje de Consultas SQL

sea ese valor. Estas restricciones se conocen con el nombre de


dependencias. Existen distintos algunos tipos de dependencias: funcionales,
multivaluadas, de inclusión y de producto (join). Cada tipo de dependencia
es un caso particular de la que le sigue.

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. 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. Por
ejemplo si conocemos el valor de FechaDeNacimiento podemos conocer el
valor de Edad.

Las dependencias funcionales del sistema se escriben utilizando una flecha,


de la siguiente manera:

FechaDeNacimiento  Edad

Aquí a FechaDeNacimiento se le conoce como un determinante. Se puede


leer de dos formas FechaDeNacimiento determina a Edad o Edad es
funcionalmente dependiente de FechaDeNacimiento.

Las dependencias funcionales representan restricciones de la realidad. Por


consiguiente, la única manera de determinar las dependencias funcionales
que se cumplen en una tabla R es analizando cuidadosamente las
restricciones de la realidad que estamos representando.

Las dependencias funcionales son afirmaciones del “mundo real” que nos
dicen qué instancias son válidas para un esquema R.

5.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.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 38
UNIDAD 2
Lenguaje de Consultas SQL

Una de las ventajas de la normalización de base de datos es el consumo de


espacio. Una base de datos normalizada ocupa menos espacio en disco que
una no normalizada. Hay menos repetición de datos, lo que tiene como
consecuencia un mucho menor uso de espacio en disco.

El proceso de normalización tiene un nombre y una serie de reglas para


cada fase. Esto puede parecer un poco confuso al principio, pero poco a
poco se va entendiendo el proceso, así como las razones para hacerlo de
esta manera.

Grados de normalización

Existen básicamente tres niveles de normalización: Primera Forma Normal


(1NF), Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada
una de estas formas tiene sus propias reglas. Cuando una base de datos se
conforma a un nivel, se considera normalizada a esa forma de
normalización. No siempre es una buena idea tener una base de datos
conformada en el nivel más alto de normalización, puede llevar a un nivel
de complejidad que pudiera ser evitado si estuviera en un nivel más bajo de
normalización.

5.4 Primera Forma Normal (1FN)

Una tabla está en Primera Forma Normal sólo si

1. Todos los atributos son atómicos. Un atributo es atómico si los


elementos del dominio son indivisibles, mínimos.
2. La tabla contiene una clave primaria
3. La tabla no contiene atributos nulos
4. Si no posee ciclos repetitivos

Una columna no puede tener múltiples valores. Los datos son atómicos. (Si
a cada valor de X le pertenece un valor de Y, entonces a cada valor de Y le
pertenece un valor de X)....

La primera forma normal (1NF o forma mínima) es una forma normal usada
en normalización de bases de datos. Una tabla de base de datos relacional
que se adhiere a la 1NF es una que satisface cierto conjunto mínimo de
criterios. 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

es una representación fiel de una relación y está libre de "grupos


repetitivos".

Sin embargo, el concepto de "grupo repetitivo", es entendido de diversas


maneras por diferentes teóricos.

Como una consecuencia, no hay un acuerdo universal en cuanto a qué


características descalificarían a una tabla de estar en 1NF. Muy
notablemente, la 1NF, tal y como es definida por algunos autores10 excluye
"atributos relación-valor", es decir, tablas dentro de tablas11. Por otro lado,
según lo definido por otros autores, la 1NF sí los permite12.

Las tablas 1NF como representaciones de relaciones

Según la definición de Date de la 1NF, una tabla está en 1NF si y solo si es


"isomorfa a alguna relación", lo que significa, específicamente, que satisface
las siguientes cinco condiciones:

1. No hay orden de arriba-a-abajo en las filas.


2. No hay orden de izquierda-a-derecha en las columnas.
3. No hay filas duplicadas.
4. Cada intersección de fila-y-columna contiene exactamente un valor
del dominio aplicable (y nada más).
5. Todas las columnas son regulares, es decir, las filas no tienen
componentes como IDs de fila, IDs de objeto, o timestamps13
ocultos.

La violación de cualquiera de estas condiciones significaría que la tabla no


es estrictamente relacional, y por lo tanto no está en 1NF. Algunos ejemplos
de tablas (o de vistas14) que no satisface esta definición de 1NF son:

10
Algunos de esos autores son: Ramez Elmasri y Shamkant B. Navathe)
11
Siguiendo el precedente establecido por Edgar.F. Codd, 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, Christopher Date, (nacido en 1941) es autor,
investigador y consultor independiente, especializado en la tecnología de bases de datos relacionales. Es
el investigador principal del modelo relacional de bases de datos de Edgar F. Codd. Trabajó en IBM.
13
Timestams: Es una secuencia de caracteres que denotan la hora y fecha (o alguna de ellas) en la cual
ocurrió determinado evento.
14
Vistas: Es el resultado de una consulta en de una o varias tablas utilizando un lenguaje propio de base
de datos llamado SQL, también se lo puede considerar una tabla virtual.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 40
UNIDAD 2
Lenguaje de Consultas SQL

 Una tabla que carece de una clave primaria. Esta tabla podría
acomodar filas duplicadas, en violación de la condición 3.
 Una vista cuya definición exige que los resultados sean retornados en
un orden particular, de modo que el orden de la fila sea un aspecto
intrínseco y significativo de la vista. Esto viola la condición 1. Las
tuplas en relaciones verdaderas no están ordenadas una con respecto
de la otra.
 Una tabla con por lo menos un atributo que pueda ser nulo. Un
atributo que pueda ser nulo estaría en violación de la condición 4,
que requiere a cada campo contener exactamente un valor de su
dominio de columna. Sin embargo, debe ser observado que este
aspecto de la condición 4 es controvertido.

Muchos autores consideran que una tabla está en 1FN si ninguna


clave candidata puede contener valores nulos, pero se aceptan éstos
para atributos (campos) que no sean clave, según el modelo original
de Codd sobre el modelo relacional, el cual hizo disposición explícita
para los nulos.

Grupos repetidos

La cuarta condición de Date, que expresa "lo que la mayoría de la gente


piensa como la característica que define la 1NF", concierne a grupos
repetidos. El siguiente ejemplo ilustra cómo un diseño de base de datos
puede incorporar la repetición de grupos, en violación de la 1NF.

Ejemplo 1: Dominios y valores

Suponga que un diseñador principiante desea guardar los nombres y los


números telefónicos de los alumnos.

Procede a definir una tabla de ALUMNO como la que sigue:

CODIGO NOMBRE APELLIDO DIRECCIÓN TELÉFONO

1234 David Bustamante Av. 24 de Mayo 2832098

5678 Tomás Alarcón Gran Colombia 2813145

9101 Humberto López Luis Cordero 4096473

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 41
UNIDAD 2
Lenguaje de Consultas SQL

En este punto, el diseñador se da cuenta de un requisito: debe guardar


múltiples números telefónicos para algunos alumnos. 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 NOMBRE APELLIDO DIRECCIÓN TELÉFONO

1234 David Bustamante Av. 24 de Mayo 2832098

5678 Tomás Alarcón Gran Colombia 2813145


2831276

9101 Humberto López Luis Cordero 4096473

Asumiendo, sin embargo, que la columna "Teléfono" está definida en algún


tipo de dominio de número telefónico (por ejemplo, el dominio de cadenas
de 12 caracteres de longitud), la representación de arriba no está en 1NF.
La 1NF (y, para esa materia) prohíbe a un campo contener más de un valor
de su dominio de columna.

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 DIRECCIÓN TELÉFONO 1 TELÉFONO 2 TELÉFONO 3


1234 David Bustamante Av. 24 de Mayo 2832098
5678 Tomás Alarcón Gran Colombia 2813145 2831276
9101 Humberto López Luis Cordero 4096473

Sin embargo, esta representación hace uso de columnas que permiten


valores nulos, y por lo tanto no se conforman con la definición de la 1NF de
Date. Incluso si se contempla la posibilidad de columnas con valores nulos,
el diseño no está en armonía con el espíritu de 1NF. Teléfono 1, Teléfono 2,
y Teléfono 3, comparten exactamente el mismo dominio y exactamente el
mismo significado; el dividir del número de teléfono en tres encabezados es
artificial y causa problemas lógicos. Estos problemas incluyen:

 Dificultad en hacer consultas a la tabla. 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?".

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 42
UNIDAD 2
Lenguaje de Consultas SQL

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


Teléfono por medio del RDBMS. 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.
 La restricción de los números de teléfono por alumno a tres. Si viene
un alumno con cuatro números de teléfono, estamos obligados a
guardar solamente tres y dejar el cuarto sin guardar. Esto significa
que el diseño de la base de datos está imponiendo restricciones al
proceso de la institución, en vez de (como idealmente debe ser el
caso) al revés.

Ejemplo 3: Repetición de grupos dentro de columnas

El diseñador puede, alternativamente, conservar una sola columna de


número de teléfono, pero alterando su dominio, haciendo una cadena de
suficiente longitud para acomodar múltiples números telefónicos:

CODIGO NOMBRE APELLIDO DIRECCIÓN TELÉFONO 1


1234 David Bustamante Av. 24 de Mayo 2832098
5678 Tomás Alarcón Gran Colombia 2813145, 2831276
9101 Humberto López Luis Cordero 4096473

Éste es defendiblemente el peor diseño de todos, y otra vez no mantiene el


espíritu de la 1NF. El encabezado "Teléfono" llega a ser semánticamente
difuso, ya que ahora puede representar, o un número de teléfono, o una
lista de números de teléfono, o de hecho cualquier cosa. Una consulta como
"¿Qué pares de clientes comparten un número telefónico?" es virtualmente
imposible de formular, dada la necesidad de proveerse de listas de números
telefónicos así como números telefónicos individuales. Con este diseño en la
RDBMS, son también imposibles de definir significativas restricciones en
números telefónicos.

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.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 43
UNIDAD 2
Lenguaje de Consultas SQL

ALUMNO

CODIGO NOMBRE APELLIDO DIRECCIÓN

1234 David Bustamante Av. 24 de Mayo

5678 Tomás Alarcón Gran Colombia

9101 Humberto López Luis Cordero

TELÉFONOS DE
ALUMNOS

CODIGO TELÉFONO

1234 2832098

5678 2813145

5678 2831276

9101 4096473

En este diseño no ocurren grupos repetidos de números telefónicos. En


lugar de eso, cada enlace Alumno-a-Teléfono aparece en su propio registro.

Atomicidad

Algunas definiciones de 1NF, más notablemente la de E.F. Codd, hacen


referencia al concepto de atomicidad. 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)".

Hugh Darwen15 y Chris Date han sugerido que el concepto de Codd de un


"valor atómico" es ambiguo, y que esta ambigüedad ha conducido a una
extensa confusión sobre cómo debe ser entendida la 1NF. En particular, la
noción de un "valor que no puede ser descompuesto" es problemática, pues
parecería implicar que pocos, si algún, tipos de datos son atómicos:

15
Hugh Darwen: Ex empleado de la IBM, estuvo involucrado en la historia de los modelos relacionales
desde su inicio, fue arquitecto principal de “Bussiness System 12, un sistema de gestión de datos que
estaba fielmente basado al modelo relacional.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 44
UNIDAD 2
Lenguaje de Consultas SQL

 Una cadena de caracteres parecería no ser atómica, ya que el


RDBMS16 típicamente proporciona operadores para descomponerla en
subcadenas.
 Una fecha parecería no ser atómica, ya que el RDBMS proporciona
típicamente operadores para descomponerla los componentes de día,
mes, y año.
 Un número de punto fijo parecería no ser atómico, ya que el RDBMS
proporciona típicamente operadores para descomponerlo en
componentes de números enteros y fraccionarios.

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,
pero puede ser considerado un ensamblaje de elementos más básicos para
otros propósitos. Si esta posición es aceptada, la 1NF no puede ser definida
con referencia a la atomicidad. Las columnas de cualquier tipo de datos
concebible (desde tipos de cadenas y tipos numéricos hasta tipos de
arreglos y tipos de tabla) son entonces aceptables en una tabla 1NF -
aunque quizás no siempre deseable.

5.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.
Es decir que no existen dependencias parciales.

La segunda forma normal (2NF) es una forma normal usada en


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

16
RDBMS: Siglas en inglés de Relational Database Management System que traducido al español
significa Sistema administrador de bases de datos relacionales (SGBD), Las siglas de la materia

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 45
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. Observe que cuando una tabla 1NF no tiene ninguna clave
candidata compuesta (claves candidata consistiendo en más de un
atributo), 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 CURSO
David Bustamante Fútbol Décimo
David Bustamante Ajedrez Décimo
David Bustamante Música Décimo
Tomás Alarcón Básquet Primero de Bachillerato
Humberto López Ajedrez Tercero de Bachillerato
Humberto López Judo Tercero de Bachillerato
Miguel Farfán Música Segundo de Bachillerato

La única clave candidata de la tabla es {ALUMNO, CLUB}.

El atributo restante, CURSO, es dependiente en solo parte de la clave


candidata, llamada ALUMNO. Por lo tanto la tabla no está en 2NF. Observe
la redundancia de la manera en que son CURSO: nos dicen tres veces que
David Bustamante está en Décimo y dos veces que Humberto López está en
Tercero de Bachillerato. Esta redundancia hace a la tabla vulnerable a
anomalías de actualización: por ejemplo, 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?".

Una alternativa 2NF a este diseño representaría la misma información en


dos tablas:

ALUMNOS
ALUMNO CURSO
David Bustamante Décimo
Tomás Alarcón Primero de Bachillerato
Miguel Farfán Segundo de Bachillerato

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 46
UNIDAD 2
Lenguaje de Consultas SQL

CLUBES
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

Las anomalías de actualización no pueden ocurrir en estas tablas, las cuales


están en 2NF. Sin embargo, no todas las tablas 2NF están libres de
anomalías de actualización. Un ejemplo de una tabla 2NF que sufre de
anomalías de actualización es:

Campeones Intercolegiales

DEPORTE AÑO COLEGIO DIRECCIÓN COLEGIO

Fútbol 2008 Benigno Malo Av. Solano 2-58


Básquet 2008 Técnico Salesiano Av. Don Bosco 2-47
Vóley 2009 La Salle Av. Solano 2-277
Fútbol 2009 Técnico Salesiano Av. Don Bosco 2-47
Básquet 2009 Benigno Malo Av. Solano 2-58

Aunque el COLEGIO y la DIRECCIÓN DEL COLEGIO del campeón están


determinadas por una clave completa {DEPORTE, 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. Este
problema es tratado por la tercera forma normal (3NF).

5.6 Tercera Forma Normal (3FN)

La tabla se encuentra en 3FN si es 2FN y cada atributo que no forma parte


de ninguna clave, depende directamente y no transitivamente, de la clave
primaria.

La tercera forma normal (3NF) es una forma normal usada en la


normalización de bases de datos. La 3NF fue definida originalmente por E.F.
Codd en 1971. 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
UNIDAD 2
Lenguaje de Consultas SQL

Un atributo no-primario es un atributo que no pertenece a ninguna clave


candidato. Una dependencia transitiva es una dependencia funcional X  Z
en la cual Z no es inmediatamente dependiente de X, pero sí de un tercer
conjunto de atributos Y, que a su vez depende de X.

Es decir, X Z por virtud de X  Y y Y  Z.

Una formulación alternativa de la definición de Codd, dada por Carlo


Zaniolo17 en 1982, es ésta: Una tabla está en 3NF si y solo si, para cada
una de sus dependencias funcionales X  A, por lo menos una de las
condiciones siguientes se mantiene:

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

La 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). La BCNF simplemente elimina la tercera alternativa ("A es un
atributo primario").

Ejemplo: Una tabla 2NF que falla en satisfacer los requisitos de la 3NF es:

Campeones Intercolegiales

DEPORTE AÑO COLEGIO DIRECCIÓN COLEGIO

Fútbol 2008 Benigno Malo Av. Solano 2-58


Básquet 2008 Técnico Salesiano Av. Don Bosco 2-47
Vóley 2009 La Salle Av. Solano 2-277
Fútbol 2009 Técnico Salesiano Av. Don Bosco 2-47
Básquet 2009 Benigno Malo Av. Solano 2-58

La violación de la 3NF ocurre porque el atributo no primario DIRECCIÓN


COLEGIO es dependiente transitivamente de {DEPORTE, AÑO} vía el
atributo no primario COLEGIO. 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, pues no hay nada que impida al mismo

17
Carlo Zaniolo: Nació en Vicenza, Italia. Es un estudioso de los sistemas de bases de datos relacionales
con uso para internet.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 48
UNIDAD 2
Lenguaje de Consultas SQL

COLEGIO ser mostrado con diferentes DIRECCIÓN DE COLEGIO en diversos


registros. Para expresar los mismos hechos sin violar la 3NF, es necesario
dividir la tabla en dos:

Campeones Intercolegiales

DEPORTE AÑO COLEGIO

Fútbol 2008 Benigno Malo


Básquet 2008 Técnico Salesiano
Vóley 2009 La Salle
Fútbol 2009 Técnico Salesiano
Básquet 2009 Benigno Malo

Colegios

COLEGIO DIRECCIÓN COLEGIO

Benigno Malo Av. Solano 2-58


Técnico Salesiano Av. Don Bosco 2-47
La Salle Av. Solano 2-277

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 49
UNIDAD 2
Lenguaje de Consultas SQL

SGBD

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas

50
UNIDAD 2
Lenguaje de Consultas SQL

U
UNNIID
DAAD
D22
Tema: Lenguaje de consultas SQL

1. Introducción Teórica

1.1 ¿Qué es el lenguaje de consultas SQL?

El lenguaje de consulta estructurado (SQL18) es un lenguaje de base de


datos normalizado, utilizado por los diferentes motores de bases de datos
para realizar determinadas operaciones sobre los datos o sobre la
estructura de los mismos. Pero como sucede con cualquier sistema de
normalización hay excepciones para casi todo; de hecho, cada motor de
bases de datos tiene sus peculiaridades y lo hace diferente de otro motor,
por lo tanto, el lenguaje SQL normalizado (ANSI19) no nos servirá para
resolver todos los problemas, aunque si se puede asegurar que cualquier
sentencia escrita en ANSI será interpretable por cualquier motor de datos.

1.2 Breve Historia

La historia de SQL empieza en 1974 con la definición, por parte de Donald


Chamberlin20 y de otras personas que trabajaban en los laboratorios de
investigación de IBM21, de un lenguaje para la especificación de las
características de las bases de datos que adoptaban el modelo relacional.
Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se
implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las
experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una
revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de
nombre por motivos legales, convirtiéndose en SQL. El prototipo (System
R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo
18
SQL: De las siglas en ingles Structure Query Language que traducido al 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.
20
Donald Chamberlin: Científico americano nacido en 1944, es uno de los principales creadores del SQL
original junto a Raymond Boyce.
21
IBM: De las siglas en inglés International Business Machines es una empresa multinacional que fabrica
y comercializa herramientas, programas y servicios relacionados a la informática, tiene su sede en New
York y está constituido desde el 15 de junio de 1911, pero lleva operando desde 1888.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas

51
UNIDAD 2
Lenguaje de Consultas SQL

adoptaron algunos de sus clientes elegidos. Gracias al éxito de este


sistema, que no estaba todavía comercializado, también otras compañías
empezaron a desarrollar sus productos relacionales basados en SQL. A
partir de 1981, IBM comenzó a entregar sus productos relacionales y en
1983 empezó a vender DB2. En el curso de los años ochenta, numerosas
compañías (por ejemplo Oracle y Sysbase, sólo por citar algunos)
comercializaron productos basados en SQL, que se convierte en el estándar
industrial de hecho por lo que respecta a las bases de datos relacionales.

En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de


IBM) como estándar para los lenguajes relacionales y en 1987 se
transformó en estándar ISO22. Esta versión del estándar va con el nombre
de SQL/86. En los años siguientes, éste ha sufrido diversas revisiones que
han conducido primero a la versión SQL/89 y, posteriormente, a la actual
SQL/92.

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. Desde el punto de vista práctico,
por desgracia las cosas fueron de otro modo. Efectivamente, 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), extendiéndolo de manera individual según la propia
visión que cada cual tenga del mundo de las bases de datos.

Actualmente, está en marcha un proceso de revisión del lenguaje por parte


de los comités ANSI e ISO, que debería terminar en la definición de lo que
en este momento se conoce como SQL 2008. 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, incluye los disparadores del tipo
INSTEAD OF. Añade la sentencia TRUNCATE.

22
ISO: Es la Organización Internacional para la estandarización, nacida en 1947, es el organismo
encargado de promover el desarrollo de normas internacionales de fabricación, comercio y
comunicación para todas las ramas industriales a excepción de la eléctrica y la electrónica.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 52
UNIDAD 2
Lenguaje de Consultas SQL

1.3 Componentes del SQL

SQL es un lenguaje estandarizado de base de datos, el cual nos permite


realizar tablas y obtener datos de ella de manera muy sencilla. Para
exponer más claramente los conceptos se realizaran ejemplo sobre
relaciones que se crearan aquí para entender mejor como funciona SQL.

Cuando aquí nos refiramos a relación estamos hablando más concretamente


a la tabla de datos en sí, y sus atributos serán los campos de la tabla. Como
ejemplo la siguiente relación (tabla) la llamaremos ALUMNO y sus atributos
(campos) son nombre, apellido y cédula.

ALUMNO
ALUMNO NOMBRE APELLIDO CÓDIGO

1 Martin Martínez 5988


2 Pablo Martínez 5699
3 Roberto Sánchez 6401
4 Esteban Guerrón 8064
5 Rubén Alemán 8975
6 Sandro Brito 3669
7 Medardo Abril 6224
8 Saúl Mogrovejo 9656
9 Bruno Méndez 8765
10 Juan Serrano 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, tablas, vistas e
índices entre otros. Son comandos propios de éste lenguaje: CREATE
TABLE, CREATE INDEX, CREATE VIEW, CREATE SYNONYM.
 Lenguaje de manipulación de datos interactivos (DML-Data
Manipulation Language), cuya misión es la manipulación de datos. A
través de él podemos seleccionar, insertar, eliminar y actualizar
datos. Es la parte que más frecuentemente utilizaremos ya que con
ellas se construyen las consultas. Son comandos propios de éste
lenguaje: SELECT, UPDATE, INSERT, INSERT INTO, DELETE FROM.
 Lenguaje de Control de datos (DDL-Data Control Language):
encargado de la seguridad de la base de datos, en todo lo referente

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 53
UNIDAD 2
Lenguaje de Consultas SQL

al control de accesos y privilegios entre los usuarios. Son comandos


propios de éste lenguaje: GRANT, REVOKE.

2. Estructura 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.

Una consulta básica en SQL tiene la forma:

SELECT A1, A2... An


FROM r1, 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.

SELECT nombre
FROM alumno
WHERE apellido = “Martínez”

El resultado es:

23
Predicado: Es la condición que debe cumplir la cláusula WHERE.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 54
UNIDAD 2
Lenguaje de Consultas SQL

NOMBRE

Martin
Pablo

El resultado de una consulta es por supuesto otra relación. Si se omite la


cláusula WHERE, el predicado P es verdadero. La lista A1, A2,..., An puede
sustituirse por un asterisco (*) para seleccionar todos los atributos de todas
las relaciones que aparecen en la cláusula FROM, aunque no es conveniente
elegir esta última opción salvo que sea necesario pues desperdiciamos
mucho tiempo en obtenerlo

3. Alias

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


conveniencia y otras veces por ser necesario, para esto usamos la clausula
AS como en el siguiente ejemplo.

SELECT P.nombre AS [PRIMER NOMBRE] FROM alumno P


WHERE apellido = “Martínez”
PRIMER NOMBRE

Martin
Pablo

En este ejemplo cabe destacar un par de cosas. Cuando nos referimos a un


atributo como es el caso de nombre, podemos referirnos a este usando la
relación (o el alias en este ejemplo) a la que pertenece el atributo seguido
de un punto seguido del atributo <P.nombre>, a veces esta notación será
necesaria para eliminar ambigüedades. Los corchetes los usamos cuando
usamos espacios en blancos o el caratér (-) en el nombre de atributo o
alias.

Usar alias en los atributos nos permite cambiar el nombre de los atributos
de la respuesta a la consulta.

Cuando asociamos un alias con una relación decimos que creamos una
variable de tupla. Estas variables de tuplas se definen en la cláusula FROM
después del nombre de la relación.

En las consultas que contienen subconsultas, se aplica una regla de ámbito


a las variables de tupla. En una subconsulta está permitido usar solo

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 55
UNIDAD 2
Lenguaje de Consultas SQL

variables de tupla definidas en la misma subconsulta o en cualquier consulta


que tenga la subconsulta.

4. Tipos de datos

SQL admite una variada gama de tipos de datos para el tratamiento de la


información contenida en las tablas, los tipos de datos pueden ser
numéricos (con o sin decimales), alfanuméricos, de fecha o booleanos(si o
no).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, aunque en la actualidad casi todos los gestores de bases
de datos soportan un nuevo tipo, el BLOB (Binary Large Object), que es un
tipo de datos especial destinado a almacenar archivos, imágenes ...

Dependiendo de cada gestor de bases de datos el nombre que se da a cada


uno de estos tipos puede variar. Básicamente tenemos los siguientes tipos
de datos.

NUMÉRICOS ALFANUMÉRICOS FECHA LÓGICO BLOB


Integer char(n) Date Bit Image

Numeric(n.m) varchar(n,m) DateTime - Text

Decimal(n,m) - - - -
Float - - - -

5. 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.

Las operaciones aritméticas en SQL son:

 + (Suma)
 - (Resta)
 * (Multiplicación)
 / (División)

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 56
UNIDAD 2
Lenguaje de Consultas SQL

También incluye el operador de comparación BETWEEN, que se utiliza para


valores comprendidos.

Ejemplo: Encontrar todos los nombres y códigos de los alumnos cuyos


códigos sean mayor que 6 mil y menor a 9 mil.

Una solución sería utilizando el conector lógico AND

SELECT nombre, código


FROM alumno
WHERE (código > 6000) AND (código<9000)

Otra solución sería utilizando el operador BETWEEN

SELECT nombre, código


FROM alumno
WHERE código BETWEEN 6000 AND 9000

El resultado sería:
NOMBRE CÓDIGO

Roberto 6401
Esteban 8064
Rubén 8975
Medardo 6224
Bruno 8765
Juan 8845

Análogamente podemos usar el operador de comparación NOT BETWEEN.

SQL también incluye un operador de selección para comparaciones de


cadena de caracteres. 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. Un


error muy frecuente es tratar de utilizar los modelos mediante el operador
de igualdad (=) lo cual es un error de sintaxis.

Ejemplo: encontrar los nombres que comiencen con la letra p o el nombre


tenga exactamente 6 caracteres de la relación alumno.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 57
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.

6. 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. En la práctica la eliminación de duplicados lleva bastante tiempo.
Por lo tanto SQL permite duplicados en las relaciones. Así pues en las
consultas se listaran todas las tuplas inclusive las repetidas.

En aquellos casos en los que queremos forzar la 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
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, pero debido al uso de DISTINCT en la
consulta la relación respuesta solo lista un solo Martínez.

7. Operaciones de conjunto.

SQL incluye las operaciones de conjuntos UNION, INTERSECT, MINUS, que


operan sobre relaciones y corresponden a las operaciones del álgebra unión,
intersección y resta de conjuntos respectivamente. Para realizar esta
operación de conjuntos debemos tener sumo cuidado que las relaciones
tengan las mismas estructuras.

Incorporemos ahora una nueva relación, llamada jugadores que representa


las personas que juegan al fútbol, sus atributos serán DNI, puesto y
número_camiseta.

Supongamos que esta nueva tabla está conformada de la siguiente manera:

JUGADOR
JUGADORES CÓDIGO PUESTO NÚMERO_CAMISETA

1 5988 DELANTERO 9
2 5699 MEDIO 5
3 9656 ARQUERO 1
4 9872 DEFENSA 3

Ejemplo: Obtener todos los nombres de la relación persona cuyos apellidos


sean Martínez o Serrano.

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
UNIDAD 2
Lenguaje de Consultas SQL

Ejemplo: Obtener todos los códigos de los que juegan al fútbol y, además,
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, la operación de unión elimina las tuplas duplicadas. Para


retener duplicados se debe escribir UNION ALL en lugar de UNION.

7.1 Pertenencia a un conjunto

El conector IN prueba si se es miembro de un conjunto, donde el conjunto


es una colección de valores producidos en lo general por una cláusula
SELECT.

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,


además, se encuentran en la relación alumno

SELECT nombre, apellido


FROM alumno
WHERE código IN
(SELECT código
FROM jugadores)

El resultado sería:

NOMBRE APELLIDO

Martin Martínez
Pablo Martínez
Juan Serrano

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 60
UNIDAD 2
Lenguaje de Consultas SQL

Es posible probar la pertenencia de una relación arbitraria SQL usa la


notación de elementos <v1, v2,..., vn> para representar una tupla de
elementos de n que contiene los valores v1, v2,...,vn.

7.2 Comparación de conjuntos

En conjuntos la frase << mayor que algún >> se representa en SQL por
(>SOME), también podría entenderse esto como << mayor que el menor de
>>, su sintaxis es igual que la del conector IN. SQL también permite las
comparaciones (>SOME), (=SOME) (>=SOME), (<=SOME) y (<>SOME).

También existe la construcción (>ALL), que corresponde a la frase <<


mayor que todos >>. Al igual que el operador SOME, puede escribirse
(>ALL), (=ALL), (>=ALL), (<=ALL) y (<>ALL).

En ocasiones podríamos querer comparar conjuntos para determinar si un


conjunto contiene los miembros de algún otro conjunto. Tales
comparaciones se hacen usando las construcciones CONTAINS y NOT
CONTAINS.

8. Pruebas para relaciones vacías

La construcción EXISTS devuelve el valor TRUE si la subconsulta del


argumento no está vacía, y la construcción NOT EXISTS devuelve TRUE si la
consulta es vacía.

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.

SELECT nombre, 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.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 61
UNIDAD 2
Lenguaje de Consultas SQL

9. 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. La cláusula ORDER BY hace que las
tupla en el resultado dé una consulta en un orden específico.

Por omisión SQL lista los elementos en orden ascendente. Para especificar
el tipo de ordenación, podemos especificar DESC para orden descendente o
ASC para orden ascendente.

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, nombre


FROM alumno
ORDER BY apellido DESC, nombre DESC

El resultado sería:

APELLIDO NOMBRE
Serrano Juan
Sánchez Roberto
Mogrovejo Saúl
Méndez Bruno
Martínez Pablo
Martínez Martin
Guerrón Esteban
Brito Sandro
Alemán Rubén
Abril Medardo

10. Funciones de agregación

SQL ofrece la posibilidad de calcular funciones en grupos de tuplas usando


la cláusula GROUP BY, 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
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,
sus atributos serán cédula, años_profesional, club, valor_actual. Y los
valores son los siguientes:

PROFESIONALES
AÑOS_ VALOR_
PROFESIONAL CÉDULA CLUB
PROFESIONAL ACTUAL

1 0261259885 5 LIGA DE QUITO 100000


2 0225485699 2 LIGA DE QUITO 250000
3 0327126045 3 DEPORTIVO CUENCA 1200000
4 0426958644 4 DEPORTIVO CUENCA 650000
5 0229120791 1 DEPORTIVO CUENCA 450000

SELECT club, SUM(valor_actual) AS VALOR_TOTAL, COUNT(club) AS NRO_JUGADORES


FROM profesionales
GROUP BY club

El resultado sería:

CLUB VALOR_TOTAL NRO_JUGADORES

LIGA DE QUITO 250000,00 2


DEPORTIVO CUENCA 2300000,00 3

Ejemplo: Determinar por cada club cual es el valor_actual del jugador más
caro de la relación PROFESIONALES

SELECT club, MAX(valor_actual) AS JUG_MAS_CARO


FROM profesionales
GROUP BY club
El resultado sería:
CLUB JUGADOR_MAS_CARO

LIGA DE QUITO 250000


DEPORTIVO CUENCA 1200000,00
Hay ocasiones en la que los duplicados deben eliminarse antes de calcular
una agregación. Cuando queremos eliminar los duplicados del cálculo
usamos la palabra clave DISTINCT antepuesto al atributo de agregación que
queremos calcular, como por ejemplo COUNT (DISTINCT club).

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 63
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. Para esto usamos la cláusula HAVING de SQL.

Ejemplo: Determinar por cada club cual es el valor_actual del jugador más
caro, pero con la condición de que este sea mayor a 10000 de la relación
PROFESIONALES.

SELECT club, MAX(valor_actual) AS JUG_MAS_CARO


FROM profesionales
GROUP BY club
HAVING MAX(valor_actual) > 10000

CLUB JUGADOR_MAS_CARO
DEPORTIVO CUENCA 1200000,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, las tupla que
satisfacen el predicado WHERE son colocadas en grupos por la cláusula
GROUP BY. Después se aplica la cláusula HAVING a cada grupo.

11. Modificación de la base de datos

11.1 Eliminación

Una solicitud de eliminación se expresa casi de igual forma que una


consulta. Podemos suprimir solamente tuplas completas, no podemos
suprimir valores solo de atributos.

DELETE FROM r
WHERE P

Donde P presenta un predicado y r representa una relación. Las tuplas t en


r para las cuales P(t) es verdadero, son eliminadas de r.

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
UNIDAD 2
Lenguaje de Consultas SQL

DELETE FROM alumno


WHERE apellido = "Brito"
DELETED NOMBRE APELLIDO CÓDIGO
1 Sandro Brito 3669

11.2 Inserción

Para insertar datos en una relación, especificamos una tupla que se va a


insertar o escribimos una consulta cuyo resultado es un conjunto de tuplas
que se van a insertar. La inserción de tuplas la realizamos mediante las
sentencias:

INSERT INTO r1
VALUES (v1, v2,..., v)

Ejemplo: Insertar una tupla con los mismos valores de la tupla eliminada
en el ejemplo anterior en la relación alumno.

INSERT INTO alumno


VALUES ("Sandro","Brito",3669)

11.3 Actualizaciones

En ciertas ocasiones podemos desear cambiar los valores de una tupla sin
cambiar todos los valores en dicha tupla. Para este propósito usamos la
sentencia:

UPDATE r1
SET A1 = V1, A2 = V2,...,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.

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.

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
UNIDAD 2
Lenguaje de Consultas SQL

11.4 Valores nulos

Es posible que para las tuplas insertadas se den valores únicamente a


algunos atributos del esquema. El resto de los atributos son asignados a
valores nulos representados por NULL. Para esto colocamos la palabra
reservada NULL como valor del atributo.

Ejemplo: Insertar en la relación jugadores un jugador con cédula =


0122335631, puesto = defensor, y al cual aun no le han asignado un
número_camiseta.

INSERT INTO jugador


VALUES(0122335631,"Defensor", NULL)

12. Definición de datos

12.1 Creación

Una relación en SQL se define usando la orden CREATE TABLE r(A1 D1, A2
D3,...,An Dn) Donde r es el nombre de la relación, cada Ai es el nombre de
un atributo del esquema de la relación r y Di es el tipo de dato de Ai. Una
relación recién creada está vacía. La orden INSERT puede usarse para
cargar la relación

Ejemplo: crear la relación lesionado con los atributos nombre, apellido


ambos de tipo char y tiempo_inhabilit de tipo entero

CREATE TABLE lesionado


(
nombre CHAR(20),
apellido CHAR(20),
tiempo_inhabilt INTEGER
)

12.2 Eliminación

Para eliminar una relación usamos la orden DROP TABLE r, esta orden
elimina toda la información sobre la relación sacada de la base de datos,
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í.

Ejemplo: eliminar la relación alumno

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 66
UNIDAD 2
Lenguaje de Consultas SQL

DROP TABLE alumno

12.3 Actualización

La orden ALTER TABLE se usa para añadir atributos a una relación


existente. A todas las tuplas en la relación se les asigna NULL como valor de
atributo. La sintaxis de ALTER TABLE es la siguiente:

ALTER TABLE r1 ADD A1 D1

Ejemplo: agregar los atributos de tipo char nombre y apellido a la relación


jugadores

ALTER TABLE jugador ADD nombre CHAR(20)


ALTER TABLE jugador ADD apellido CHAR(20)

13. Ejercicios Propuestos

Los ejercicios de ésta tarea se refieren a una sola base de datos, que se
compone de tres tablas: la tabla S, que representa a los proveedores; la
tabla P, que representa a las partes, y la tabla SP, que representa los
envíos de partes hechos por los proveedores. La clave primaria de la tabla
proveedor es S#, la clave primaria de la tabla partes es P#. Además,
supondremos que no pueden existir al mismo tiempo dos envíos del mismo
proveedor y de la misma parte, 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).

S# SNOMBRE SITUACION CIUDAD


S1 Salazar 20 Londres
S2 Jaimes 10 París
S3 Bernal 30 París
S4 Corona 20 Londres
S5 Aldana 30 Atenas

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 67
UNIDAD 2
Lenguaje de Consultas SQL

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

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

Estos ejercicios serán realizados inicialmente en el aula y luego


terminado en las casas:

1. Obtener el número y la situación de todos los proveedores de Paris.


2. Obtener los números de parte de todas las partes suministradas.
3. Obtener los números de parte de todas las partes suministradas (sin
valores repetidos).
4. Obtener, para todas las partes, el número de parte y su peso en
gramos (los pesos de parte se dan el libras en la tabla P)
5. Obtener los datos completos de todos los proveedores.
6. Obtener los números de proveedores radicados en Paris cuya
situación sea mayor que 20.
7. Obtener los números de proveedor y situación de los proveedores
radicados en Paris, en orden descendente por situación.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 68
UNIDAD 2
Lenguaje de Consultas SQL

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


número de parte dentro de un orden ascendente por peso en
gramos.
9. 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, estén cosituados; valga utilizar un término
antiestético pero cómodo)
10.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.
11.Obtener todas las combinaciones de información de proveedor y
parte donde el proveedor y la parte en cuestión estén cosituadas,
pero omitiendo a los proveedores cuya situación sea 20.
12.Obtener todas las combinaciones de número de proveedor/número de
parte tales que el proveedor y la parte estén cosituados.
13.Obtener todas las parejas de nombres de ciudad (sin parejas
repetidas) tales que un proveedor situado en la primera ciudad
suministre una parte almacenada en la segunda ciudad. Por ejemplo,
el proveedor S1 suministra la parte P1; el proveedor S1 está situado
en Londres, y la parte P1 se almacena en Londres; por tanto,
(Londres, Londres) es una pareja de ciudades que debería aparecer
en el resultado.
14.Obtener todas las parejas de números de proveedor tales que los dos
proveedores estén cosituados.
15.Obtener el número total de proveedores.
16.Obtener el número total de proveedores que suministran partes en la
actualidad.
17.Obtener el número de envíos de la parte P2.
18.Obtener la cantidad total suministrada de la parte P2.
19.Obtener para cada parte suministrada, el número de parte y la
cantidad total enviada de esa parte.
20.Obtener los números de todas las partes suministradas por más de
un proveedor.
21.Obtener todas las partes cuyos nombres comiencen con la letra B.
22.Obtener los nombres de los proveedores que suministran la parte P2.
23.Obtener los nombres de los proveedores que suministre por lo menos
una parte roja.
24.Obtener los números de los proveedores situados en la misma ciudad
que el proveedor S1.
25.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.
26.Obtener los nombres de proveedores que no suministren la parte P2.
27.Obtener los nombres de proveedores que suministren todas las
partes.
28.Obtener los números de los proveedores que suministran por lo
menos todas las partes suministradas por el proveedor S2.
29.Obtener los números de las partes que pesen mas de 16 libras, o
sean suministradas por el proveedor S2 (o las dos cosas)
30.Cambiar a color amarillo el color de la parte P2, aumente su peso en
5 e indicar que su ciudad es desconocida (NULL).

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 69
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

U
UNNIID
DAAD
D33
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
UNIDAD 3
Microsoft Access 2007

2. Elementos básicos de Access 2007


2.1 La pantalla inicial

Gráfico 19 Pantalla Inicial de Access 2007

Cuando inicie Office Access 2007, la primera pantalla que aparece es la


página de Introducción a Microsoft Office Access, 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. 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, abrir una base de datos existente o ver contenido
destacado de Microsoft Office Online.
2.2 La interfaz
La nueva interfaz de usuario de Office Access 2007 incluye varios elementos
que definen 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.

Gráfico 20 Cinta de Opciones

Colegio Técnico Salesiano


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

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 74
UNIDAD 3
Microsoft Access 2007

de exploración reemplaza la ventana Base de datos de las versiones


anteriores de Access.
8. Documentos con fichas: Los formularios, tablas, consultas,
informes, páginas y macros se muestran como documentos con
fichas.
9. 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.
10. 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.

Gráfico 21 Entorno de Access 2007

3. Crear, cerrar y abrir una base de datos


3.1 Crear una base de datos mediante una plantilla
Access incluye una gran variedad de plantillas que se pueden usar para
acelerar el proceso de creación de bases de datos. Una plantilla es una base
de datos lista para usar que contiene todas las tablas, consultas24,
formularios e informes necesarios para llevar a cabo una tarea específica.
24
Consulta: pregunta sobre los datos almacenados en las tablas o solicitud para llevar a cabo una acción
en los datos. Una consulta puede unir datos de varias tablas para servir como origen de datos de un
formulario, 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
UNIDAD 3
Microsoft Access 2007

Por ejemplo, hay plantillas que se pueden usar para realizar un seguimiento
de problemas, administrar contactos o gastos. Algunas plantillas contienen
varios registros de ejemplo que ayudan a mostrar su uso. Las plantillas de
base de datos pueden usarse tal cual o pueden personalizarse de modo que
se ajusten a las necesidades específicas del usuario.
3.2 Crear una base de datos en blanco
1. Inicie Access.
En la página Introducción a Microsoft Office Access, haga clic en Base
de datos en blanco.

Gráfico 22 Opción Nueva base de datos en blanco

En el panel Base de datos en blanco, escriba un nombre de archivo


[registro de notas] en el cuadro Nombre de archivo.

Para cambiar la ubicación del archivo, haga clic en Examinar ,


situado junto al cuadro Nombre de archivo, busque la nueva
ubicación y, a continuación, haga clic en Aceptar.
2. Haga clic en Crear.
Access crea la base de datos con extensión ACCDB y, a continuación,
abre una tabla vacía (denominada Tabla1), para que puedas empezar
a rellenar sus datos.

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.
Si observas esta ventana, a la izquierda aparece el Panel de
Exploración, desde donde podremos seleccionar todos los objetos que
sean creados dentro de la base de datos.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 76
UNIDAD 3
Microsoft Access 2007

En principio sólo encontraremos el de Tabla1 pues es el que Access


creará por defecto.

Puedes ocultarlo haciendo clic en el botón Ocultar .


Desplegando la cabecera del panel puedes seleccionar qué objetos
mostrar y de qué forma.
4. Crear tablas
4.1 Agregar una tabla
Puede agregar una nueva tabla a una base de datos existente mediante las
herramientas del grupo Tablas en la ficha Crear.

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.
Puede usar la vista Hoja de datos para comenzar a escribir datos
inmediatamente y para que Access cree la estructura de tabla, o bien,
puede usar la Vista Diseño para crear primero la estructura de tabla y, a
continuación, cambiar a la vista Hoja de datos para escribir los datos.
Independientemente de la vista en la que comience a trabajar, siempre
puede cambiar a la otra vista mediante los botones Ver en la barra de
estado de la ventana Access.
4.2 Insertar una tabla, empezando en la vista Hoja de datos
En la vista Hoja de datos, puede escribir los datos inmediatamente y dejar
que Access cree la estructura de tabla en segundo plano. Los nombres de
los campos se asignan por números (Campo1, Campo2, etc.) y Access
define el tipo de datos basándose en el tipo de los datos que se escriben.

1. En la ficha Crear, en el grupo Tablas, haga clic en Tabla.


2. Access crea la tabla y coloca el cursor en la primera celda vacía de la
columna Agregar nuevo campo.
3. En la ficha Hoja de datos, en el grupo Campos y columnas, haga clic

en Nuevo campo.
4. Access muestra el panel Plantillas de campos, que contiene una lista
de los tipos de campos más comunes. Si arrastra uno de estos

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 77
UNIDAD 3
Microsoft Access 2007

campos hasta la hoja de datos, Access agregará un campo con ese


nombre y establecerá sus propiedades en un valor apropiado para
ese tipo de campo. Las propiedades se pueden cambiar más
adelante. Debe arrastrar el campo hasta el área de la hoja de datos
que contiene datos. Aparece una barra de inserción vertical, que
muestra dónde se va a ubicar el campo.
5. Para agregar datos, comience a escribir en la primera celda vacía, o
bien, pegue datos de otro origen tal y como se describe más
adelante.
 Para cambiar el nombre de una columna (o campo), haga doble clic
en su encabezado y escriba el nuevo nombre. Se recomienda asignar
a cada campo un nombre significativo de modo que sepa lo que
contiene cuando lo vea en el panel Lista de campos.
 Para mover una columna, selecciónela haciendo clic en su
encabezado y, a continuación, arrástrela hasta la ubicación que
desee. También puede seleccionar varias columnas contiguas y
arrastrarlas juntas hasta una nueva ubicación.
4.3 Insertar una tabla, empezando en la vista Diseño
En la vista Diseño, cree primero la estructura de la nueva tabla. A
continuación, cambie a la vista Hoja de datos para escribir los datos, o bien,
introduzca los datos con algún otro método, como una operación de pegar o
anexar datos.

En la ficha Crear, en el grupo Tablas, haga clic en Diseño de tabla.


Este método consiste en definir la estructura de la tabla, es decir, definir las
distintas columnas que esta tendrá y otras consideraciones como claves,
etc...
Otra forma rápida de llegar a la vista Diseño es seleccionando la vista desde
la pestaña Hoja de datos, 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
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, Access le ha asignado un nombre por
defecto Tabla1).
A continuación tenemos la rejilla donde definiremos las columnas que
componen la tabla, se utiliza una línea para cada columna, así en la primera
línea (fila) de la rejilla definiremos la primera columna de la tabla y así
sucesivamente.
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.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 79
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, 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, al pulsar la tecla


ENTER pasamos al tipo de datos, por defecto nos pone Texto como tipo de
dato. Si queremos cambiar de tipo de datos, hacer clic sobre la flecha de la
lista desplegable de la derecha y elegir otro tipo.

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
UNIDAD 3
Microsoft Access 2007

Observa cómo una vez tengamos algún tipo de dato en la segunda columna,
la parte inferior de la ventana, la correspondiente a Propiedades del campo
se activa para poder indicar más características del campo.
A continuación pulsar la tecla ENTER para ir a la tercera columna de la
rejilla. Esta tercera columna no es obligatorio utilizarla ya que únicamente
sirve para introducir un comentario, normalmente una 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.
Repetir el proceso hasta completar la definición de todos los campos
(columnas) de la tabla.
4.4 La clave principal o clave primaria
Antes de guardar la tabla tendremos que asignar una clave principal.
Recuerda que la clave principal proporciona un valor único para cada fila de
la tabla y nos sirve de identificador de registros de forma que con esta clave
podamos saber sin ningún tipo de equivocación el registro al cual identifica.
No podemos definir más de una clave principal, pero podemos tener una
clave principal compuesta por más de un campo.
Para asignar una clave principal a un campo, seguir los siguientes pasos:
Hacer clic sobre el nombre del campo que será clave principal.
Hacer clic sobre el botón Clave principal en el marco Herramientas de la
pestaña Diseño.

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.
Si queremos definir una clave principal compuesta (basada en varios
campos), 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.
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
UNIDAD 3
Microsoft Access 2007

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

Gráfico 30 Error de clave

Tras agregar todos los campos, guarde la tabla:


Puede comenzar a escribir datos en la tabla en cualquier momento. Para
ello, cambie a la vista Hoja de datos, haga clic en la primera celda vacía y
comience a escribir. Asimismo, puede pegar datos de otro origen tal y como
se describe en la siguiente sección.
Si, tras escribir algunos datos, desea agregar uno o varios campos a la
tabla, comience a escribir en la columna Agregar nuevo campo en la vista
Hoja de datos, o bien, agregue los nuevos campos mediante los comandos
del grupo Campos y columnas en la ficha Hoja de datos.
4.5 Importar datos de otro origen
Puede que haya recopilado datos en otro programa y desee importarlos a
Access. O bien, puede que trabaje con personas que almacenan sus datos
en otros programas y desee usar esos datos en Access. En ambos casos,
Access permite importar con facilidad datos de otros programas. Se pueden
importar datos desde una hoja de Excel, una tabla de otra base de datos de
Access, una lista de SharePoint o diversos otros orígenes. El proceso varía
ligeramente en función del origen, pero las siguientes instrucciones le sirven
de punto de partida:
1. En la ficha Datos Externos, en el grupo Importar, haga clic en el
comando correspondiente al tipo de archivo que va a importar.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 82
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. Si no aparece el tipo de programa correcto,
haga clic en Más.
2. En el cuadro de diálogo Obtener datos externos, haga clic en
Examinar para ir al archivo de datos de origen [alumnos
técnico.xlsx], o bien, escriba la ruta de acceso completa al archivo de
datos de origen en el cuadro Nombre de archivo.
3. Haga clic en la opción deseada bajo Especifique cómo y dónde desea
almacenar los datos en la base de datos actual. Puede crear una
nueva tabla usando los datos importados, anexando los datos a una
tabla existente o creando una tabla vinculada que mantenga un
vínculo al origen de datos.
4. Haga clic en Aceptar.
Access inicia el Asistente para importación.
Siga las instrucciones del Asistente para importación. El procedimiento
exacto depende de la opción de importación o vinculación que haya elegido.
En la última página del asistente, haga clic en Finalizar.
Access preguntará si desea guardar los detalles de la operación de
importación que acaba de finalizar.
5. Propiedades de los campos
5.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.
Las propiedades aparecen en la parte inferior izquierda de la vista Diseño de
tabla cuando tenemos un campo seleccionado.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 83
UNIDAD 3
Microsoft Access 2007

Gráfico 32 Propiedades de los campos

Las propiedades se agrupan en dos pestañas, 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.
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.
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.
A continuación explicaremos las propiedades de que disponemos según los
diferentes tipos de datos.
5.2 Tamaño del campo
 Para los campos Texto, esta propiedad determina el número máximo
de caracteres que se pueden introducir en el campo. Siendo por
defecto de 50 caracteres y valor máximo de 255.
 Para los campos Numérico, las opciones son:
Byte (equivalente a un carácter) para almacenar valores enteros
entre 0 y 255.
Entero para valores enteros comprendidos entre -32.768 y 32.767.
Entero largo para valores enteros comprendidos entre -
2.147.483.648 y 2.147.483.647.
Simple para la introducción de valores comprendidos entre -
3,402823E38 y -1,401298E-45 para valores negativos, y entre
1,401298E-45 y 3,402823E38 para valores positivos.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 84
UNIDAD 3
Microsoft Access 2007

Doble para valores comprendidos entre -1,79769313486231E308 y -


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

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 85
UNIDAD 3
Microsoft Access 2007

Fecha larga: se visualiza la fecha con el día de la semana y el mes


completo. Ejemplo: Lunes 21 de agosto de 2000.
Fecha mediana: presenta el mes con los tres primeros caracteres.
Ejemplo: 21-Ago-2000.
Fecha corta: se presenta la fecha con dos dígitos para el día, mes y
año. 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.
Hora larga: presenta la hora con el formato normal. Ejemplo:
17:35:20.
Hora mediana: presenta la hora con formato PM o AM. Ejemplo:
5:35 PM.
Hora corta presenta la hora sin los segundos. Ejemplo: 17:35.
 Los campos Sí/No disponen de los formatos predefinidos Sí/No,
Verdadero/Falso y Activado/Desactivado.
Sí, Verdadero y Activado son equivalentes entre sí, al igual que lo son
No, Falso y Desactivado.
 Los campos Texto y Memo no disponen de formatos predefinidos,
para los campos Texto se tendrían que crear formatos
personalizados.
5.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.
5.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. Por ejemplo,
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: (___)
___-____.
Access dispone de un Asistente para máscaras de entradas que nos facilita
el establecer esta propiedad, 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
UNIDAD 3
Microsoft Access 2007

botón que aparece a la derecha de la propiedad a modificar una vez


activada dicha propiedad.
5.6 Título
Se utiliza esta propiedad para indicar cómo queremos que se visualice la
cabecera del campo.
Por ejemplo, si un campo se llama Fnac e indicamos Fecha de nacimiento
como valor en la propiedad Título, en la cabecera del campo Fnac veremos
Fecha de nacimiento.
5.7 Valor predeterminado
El valor predeterminado es el valor que se almacenará automáticamente en
el campo si no introducimos ningún valor. Se suele emplear cuando se sabe
que un determinado campo va a tener la mayoría de las veces el mismo
valor, 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.
Por ejemplo si tenemos la tabla Alumnos con el campo Provincia y la
mayoría de clientes son de la provincia del Azuay, se puede introducir ese
valor en la propiedad Valor predeterminado del campo Provincia y así a la
hora de introducir los diferentes clientes, automáticamente aparecerá el
valor Azuay y no lo tendremos que teclear.
Se puede utilizar esta propiedad para todos los tipos de datos excepto el
Objeto OLE y el Autonumérico.
5.8 Regla de validación
Esta propiedad nos permite controlar la entrada de datos según el criterio
que se especifique. Hay que escribir el criterio que debe cumplir el valor
introducido en el campo para que sea introducido correctamente.
Por ejemplo si queremos que un valor introducido esté comprendido entre
100 y 2000, se puede especificar en esta propiedad >=100 Y <=2000. Para
formar la condición puedes utilizar el generador de expresiones.
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
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.
5.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.
Debe ser un mensaje para que la persona que se equivoque a la hora de
introducir los datos, sepa el porqué de su error y pueda solucionarlo.
Se puede utilizar esta propiedad para todos los tipos de datos excepto el
Objeto OLE y el Autonumérico.
5.10 Requerido
Si queremos que un campo se rellene obligatoriamente tendremos que
asignar a esta propiedad el valor Sí, en caso contrario el valor será el de No.
Se puede utilizar esta propiedad para todos los tipos de datos excepto el
Objeto OLE y el Autonumérico.
5.11 Permitir longitud cero
Los campos Memo y Texto cuentan con esta propiedad para controlar que
no se puedan introducir valores de cadena que no contengan caracteres o
estén vacíos.
5.12 Indexado
Se utiliza esta propiedad para establecer un índice de un solo campo. Los
índices hacen que las consultas basadas en los campos indexados sean más
rápidas, y también aceleran las operaciones de ordenación y agrupación.
Por ejemplo, si buscas alumnos basándose en un campo llamado Apellidos,
puedes crear un índice sobre este campo para hacer más rápida la
búsqueda.
Esta propiedad dispone de tres valores:
No: Sin índice.
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).
Sí (sin duplicados): Cuando se asigna un índice pero sin admitir valores
duplicados.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 88
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). Para lograr dicho
objetivo, conviene desglosar los datos en muchas tablas basadas en
temas para que cada hecho esté representado sólo una vez. A
continuación, 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).
Sin embargo, para realizar este paso correctamente, primero deberá
comprender las relaciones existentes entre las tablas y, a
continuación, especificar dichas relaciones en la base de datos de
Office Access 2007.
Tras crear una tabla para cada tema en la base de datos, es preciso
proporcionar a Office Access 2007 los medios para recopilar de nuevo
esa información cuando sea necesario. Para ello, se colocan campos
comunes en las tablas que están relacionadas y se definen las
relaciones entre las tablas. De ese modo, se pueden crear consultas,
formularios e informes que muestren a la vez la información de varias
tablas. Por ejemplo, el formulario que se muestra a continuación
incluye información recopilada de varias tablas:

Gráfico 33 Formulario Notas

1. La información de este formulario procede de la tabla Alumnos.


2. ...la tabla Profesores.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 89
UNIDAD 3
Microsoft Access 2007

3. ...la tabla Materias


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

Gráfico 34 Campos en común entre las tablas Profesores y materias

Por ejemplo, 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.
1. Id. de empleado aparece en ambas tablas; como clave principal ...
2. ... y como clave externa.
6.1 Tipos de relaciones de tabla
Existen tres tipos de relaciones de tabla.
Una relación uno a varios
Considere una base de datos de seguimiento de pedidos que incluya una
tabla Clientes y una tabla Pedidos. Un cliente puede realizar cualquier
número de pedidos. Por lo tanto, 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

Pedidos. Por consiguiente, la relación entre la tabla Clientes y la tabla


Pedidos es una relación de uno a varios.
Para representar una relación de uno a varios en el diseño de la base de
datos, 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.
Una relación de varios a varios
Considere la relación entre una tabla Productos y una tabla Pedidos. Un solo
pedido puede incluir varios productos. Por otro lado, un único producto
puede aparecer en muchos pedidos. Por tanto, para cada registro de la
tabla Pedidos puede haber varios registros en la tabla Productos. Además,
para cada registro de la tabla Productos puede haber varios registros en la
tabla Pedidos. Este tipo de relación se denomina relación de varios a varios
porque para un producto puede haber varios pedidos, y para un pedido
puede haber varios productos. Tenga en cuenta que para detectar las
relaciones de varios a varios existentes entre las tablas, es importante que
considere ambas partes de la relación.
Para representar una relación de varios a varios, debe crear una tercera
tabla, a menudo denominada tabla de unión, que divide la relación de varios
a varios en dos relaciones uno a varios. Debe insertar la clave principal de
cada una de las dos tablas en la tercera. Como resultado, la tercera tabla
registra cada ocurrencia, o instancia, de la relación. Por ejemplo, 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. Un pedido puede incluir muchos productos, y cada
producto puede aparecer en muchos pedidos.
Una relación uno a uno
En una relación uno a uno, 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, muy a menudo, la información relacionada de
este modo se almacena en la misma tabla. Puede utilizar la relación uno a
uno para dividir una tabla con muchos campos, 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
UNIDAD 3
Microsoft Access 2007

aplica a un subconjunto de la tabla principal. Cuando identifique esta


relación, ambas tablas deben compartir un campo común.
6.2 Descripción de la integridad referencial
Al diseñar una base de datos, se divide la información en muchas tablas
basadas en temas para minimizar la redundancia de los datos. A
continuación, se proporciona a Office Access 2007 los medios para recopilar
de nuevo la información, colocando campos comunes en tablas
relacionadas. Por ejemplo, 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". Para recopilar de nuevo los datos, Access toma
el valor de la tabla "varios" y busca el valor correspondiente en la tabla
"uno". De este modo los valores de la tabla "varios" hacen referencia a los
valores correspondientes de la tabla "uno".
Suponga que tiene una relación de uno a varios entre las tablas Profesores
y Materias y desea eliminar un profesor. Si el destinatario que desea quitar
tiene materias en la tabla Materias, dichas materias quedarán "huérfanos" si
elimina el registro Profesor. Las materias todavía contendrán un código de
profesor, pero el código ya no será válido, porque el registro al que hace
referencia ya no existe.
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.
La integridad referencial se aplica habilitándola para una relación de tabla.
Una vez habilitada, Access rechazará todas las operaciones que infrinjan la
integridad referencial de esa relación de tabla. Esto significa que Access
rechaza las actualizaciones que cambian el destino de una referencia, así
como las eliminaciones que quitan el destino de una referencia. Sin
embargo, es posible que tenga la necesidad perfectamente válida de
cambiar la clave principal de un profesor que tiene materias en la tabla
Materias. Para tales casos, lo que realmente necesita es que Access
actualice automáticamente todas las filas afectadas como parte de una
única operación. De ese modo, 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
UNIDAD 3
Microsoft Access 2007

filas actualizadas y otras no. Por ello, Access incluye la opción Eliminar en
cascada los registros relacionados. Cuando se aplica la integridad
referencial, se selecciona la opción Actualizar en cascada los campos
relacionados y, a continuación, se actualiza una clave principal, Access
actualiza automáticamente todos los campos que hacen referencia a la clave
principal.
También es posible que tenga la necesidad válida de eliminar una fila y
todos los registros relacionados; por ejemplo, un registro Profesor y todas
las materias relacionadas de ese profesor. Por ello, Access incluye la opción
Eliminar en cascada los registros relacionados. Si aplica la integridad
referencial y selecciona la opción Actualizar en cascada los campos
relacionados y, a continuación, elimina un registro en la parte de la clave
principal de la relación, Access eliminará automáticamente todos los campos
que hagan referencia a la clave principal.
6.3 Crear una relación.
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.

Gráfico 35 Botón Relaciones de la pestaña Herramientas de base de datos.

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 36 Cuadro de diálogo Mostrar Tablas

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 93
UNIDAD 3
Microsoft Access 2007

Seleccionar una de las tablas que pertenecen a la relación haciendo clic


sobre ella, aparecerá dicha tabla remarcada.
Hacer clic sobre el botón Agregar.
Repetir los dos pasos anteriores hasta añadir todas las tablas de las
relaciones a crear. Hacer clic sobre el botón Cerrar.
Ahora aparecerá la ventana Relaciones con las tablas añadidas en el paso
anterior.

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).
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).
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).

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 94
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, se puede activar las casillas Actualizar en cascada los campos
relacionados y Eliminar en cascada los registros relacionados. Para
terminar, hacer clic sobre el botón Crear y se creará la relación y ésta
aparecerá en la ventana 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.


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.
Para añadir la tabla hacer clic sobre el botón Mostrar tabla en la pestaña
Diseño.

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.
6.5 Quitar tablas de la ventana Relaciones.
Si queremos eliminar una tabla de la ventana Relaciones:
Primero nos situamos en la ventana Relaciones haciendo clic en el 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
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

predicado 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.

* 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, Nombres de los campos que contienen los datos que desea recuperar. Si
campo2 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 Nombre de la tabla o tablas que contienen los datos que se desean
abla recuperar.

basededatos Nombre de la base de datos que contiene las tablas de expresión de tabla
externa 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
UNIDAD 3
Microsoft Access 2007

Por ejemplo para visualizar código y nombres de los estudiantes del Tercero
de bachillerato, paralelo E1, de la tabla Alumnos. La consulta sería:

Gráfico 43 Consulta SQL en Access

Puedes comprobar si tus ejercicios de SQL practicados en clases, están


mostrando los datos pedidos.
7.2 Crear una consulta
Para crear una consulta, seguir los siguientes pasos:
Abrir la base de datos donde se encuentra la consulta a crear. Hacer clic en
el 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. 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
UNIDAD 3
Microsoft Access 2007

misma forma las demás tablas. Finalmente hacer clic sobre el botón Cerrar
y aparecerá la ventana Vista Diseño de consultas.

Gráfico 46 Ventana Vista Diseño de Consultas

Si observas la pantalla, en la parte superior tenemos la zona de tablas


donde aparecen las tablas añadidas con sus correspondientes campos, y en
la parte inferior denominada cuadrícula QBE definimos la consulta.
Cada columna de la cuadrícula QBE corresponde a un campo.
Cada fila tiene un propósito que detallamos brevemente a continuación,
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, puede ser el nombre de un campo de la tabla y
también puede ser un campo calculado.
Tabla: nombre de la tabla de la que sacamos el campo. Nos será útil
cuando definamos consultas basadas en varias tablas.
Orden: sirve para ordenar las filas del resultado.
Mostrar: si la casilla de verificación aparece desactivada la columna no
aparecerá en el resultado, se suele desactivar cuando queremos utilizar el
campo para definir la consulta pero no queremos que aparezca en el
resultado. Por ejemplo si queremos que la consulta nos saque todos los
alumnos de Valencia, necesitamos el campo 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.
Criterios: sirve para especificar un criterio de búsqueda. 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

en el resultado de la consulta. Por lo tanto está formado por una condición o


varias condiciones unidas por los operadores Y (AND) y O (OR).
O: esta fila y las siguientes se utilizan para combinar condiciones.
7.3 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, este se colocará en la
primera columna libre de la cuadrícula.
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, soltar el
botón cuando estemos sobre la columna delante de la cual queremos dejar
el campo que estamos añadiendo.
Hacer clic sobre la fila Campo: de una columna vacía de la rejilla, aparecerá
a la derecha la flecha para desplegar la lista de todos los campos de todas
las tablas que aparecen en la zona de tablas. Si tenemos muchos campos y
varias tablas podemos reducir la lista seleccionando primero una tabla en la
fila Tabla, así en la lista desplegable sólo aparecerán campos de la tabla
seleccionada.
También podemos teclear directamente el nombre del campo en la fila
Campo: de una columna vacía de la cuadrícula.
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').
7.4 Encabezados de columna
Podemos cambiar el encabezado de las columnas del resultado de la
consulta.
Normalmente aparece en el encabezado de la columna el nombre de la
columna, si queremos cambiar ese encabezado lo indicamos en la fila
Campo: escribiéndolo delante del nombre del campo y seguido de dos
puntos ( : ). Se suele utilizar sobre todo para los campos calculados.
En la consulta que aparece más arriba tienes el ejemplo de la segunda
columna, esta tendrá en el encabezado Mes_Factura y en la columna se
visualizará el mes de la fecha de la factura (tenemos un campo calculado
que utiliza la función mes( ), función que obtiene el mes de una fecha).

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 101
UNIDAD 3
Microsoft Access 2007

7.5 Ejecutar la consulta


Podemos ejecutar una consulta desde la ventana Diseño de consulta o bien
desde el Panel de Exploración.
Desde el Panel de Exploración, haciendo doble clic sobre su nombre.
Desde la vista diseño de la consulta, 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, lo que vemos


realmente es la parte de la tabla que cumple los criterios especificados, 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).
7.6 Modificar el diseño de una consulta
Si lo que queremos es modificar el diseño de una consulta, situarse en el
Panel de Exploración y hacer clic derecho sobre el nombre de la consulta. En

el menú contextual seleccionar Vista Diseño .


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

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 102
UNIDAD 3
Microsoft Access 2007

El orden de las columnas de ordenación es el que aparece en la cuadrícula,


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.
El tipo de ordenación es independiente por lo que se puede utilizar una
ordenación distinta para cada columna. Por ejemplo ascendente por la
primera columna y dentro de la primera columna, descendente por la
segunda columna.
7.8 Seleccionar filas
Para seleccionar filas tenemos que indicar un criterio de búsqueda, un
criterio de búsqueda es una condición que deberán cumplir todas las filas
que aparezcan en el 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". 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".
Cuando la condición es una igualdad no es necesario poner el signo =,
podemos poner directamente el valor Valencia en la fila Criterios: ya que si
no ponemos operador asume por defecto el =.
Tampoco es necesario poner las comillas, las añadirá él por defecto.
Siempre que se encuentra un texto lo encierra entre comillas.
Si en la fila Criterios: queremos poner un nombre de campo en vez de un
valor (para comparar dos campos entre sí) tenemos que encerrar el nombre
del campo entre corchetes [ ]. Por ejemplo queremos poner la condición
precio = coste en la que precio y coste son dos campos, tenemos que poner
en la fila criterios: [coste], si no ponemos los corchetes añadirá las comillas
y entenderá Precio = "coste", precio igual al valor Coste no al contenido del
campo Coste.
Para indicar varias condiciones se emplean los operadores Y y O.
En un criterio de búsqueda en el que las condiciones están unidas por el
operador Y, 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
UNIDAD 3
Microsoft Access 2007

condiciones. Por ejemplo precio > 100 y precio < 1200, aparecen los
registros cuyo precio está comprendido entre 101 y 1199.
En un criterio de búsqueda en el que las condiciones están unidas por el
operador O, el registro aparecerá en el resultado de la consulta si cumple al
menos una de las condiciones.

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.
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.
Del mismo modo pasa con cada una de las filas o:
Si queremos que las condiciones queden unidas por el operador O tenemos
que colocarlas en filas distintas (utilizando las filas O: y siguientes).
Por ejemplo, si en la cuadrícula QBE tenemos especificado los siguientes
criterios:

Gráfico 49 Condiciones en diferentes filas

Visualizaremos de la tabla Alumnado los campos Apellidos, Nombre,


Población y Fecha nacimiento, 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.
Access no diferencia entre mayúsculas y minúsculas a la hora de realizar la
búsqueda de registros.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 104
UNIDAD 3
Microsoft Access 2007

7.9 Consultas con parámetros


A menudo, en una consulta necesitamos utilizar un valor que no es conocido
en ese momento sino que queremos que lo introduzca el usuario cuando se
ejecute la consulta. Por ejemplo, queremos hacer una consulta para obtener
los alumnos de una determinada Población, la población la introducirá el
usuario cuando Access se lo pida.
En este caso necesitamos utilizar en nuestra consulta un parámetro.
Un parámetro funciona de forma parecida a un campo de tabla, pero el
valor que almacena lo introduce el usuario cuando se ejecuta la consulta.
En una consulta cuando utilizamos un nombre de campo que no está en el
origen de datos, Access considera este campo como un 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.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.
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, la consulta obtiene la concatenación de todas las filas de la primera
tabla con todas las filas de la segunda tabla, si tenemos una tercera tabla
concatenará cada una de las filas obtenidas en el primer paso con cada una

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 105
UNIDAD 3
Microsoft Access 2007

de las filas de la tercera tabla, y así sucesivamente. Vemos que no interesa


basar la consulta en muchas tablas ya que el resultado de la concatenación
puede alcanzar dimensiones gigantescas.
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. Por ejemplo me puede
interesar datos de la tabla Alumnado y de la tabla Cursos porque quiero
sacar una lista con los datos de cada alumno y nombre del curso al que
pertenece, en este caso no me interesa unir el alumno con cada uno de los
cursos sino unirlo al curso que tiene asignado; en este caso tenemos que
combinar las dos tablas.

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. De hecho si añadimos a la zona de tablas relacionadas, estas
aparecerán automáticamente combinadas en la zona de tablas de la
ventana Diseño de Consulta.
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, 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, con lo cual se emparejan sólo las filas
que luego aparecen en el resultado y la consulta es más eficiente.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 106
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.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 107
UNIDAD 4
MySQL

SGBD

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas

108
UNIDAD 4
MySQL

U
UNNIID
DAAD
D44
Tema: MySQL

1. Introducción
El software MySQL proporciona un servidor de base de datos SQL
(Structured Query Language) muy rápido, multi-threaded, multiusuario y
robusto. El servidor MySQL está diseñado para entornos de producción
críticos, con alta carga de trabajo así como para integrarse en software para
ser distribuido. 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.
2. Características
MySQL es un sistema de gestión de bases de datos.
MySQL es un sistema de gestión de bases de datos relacionales.
MySQL software es Open Source.
El servidor de base de datos MySQL es muy rápido, fiable y fácil de usar.
MySQL Server trabaja en entornos cliente/servidor o incrustados
Una gran cantidad de software de contribuciones está disponible para
MySQL.
3. Historia
Se empezó a utilizar con la intención de usar mSQL (el nombre original)
para conectar a nuestras tablas utilizando nuestras propias rutinas rápidas
de bajo nivel (ISAM). Sin embargo y tras algunas pruebas, llegamos a la
conclusión que mSQL no era lo suficientemente rápido o flexible para
nuestras necesidades. Esto provocó la creación de una nueva interfaz SQL
para nuestra base de datos pero casi con la misma interfaz API que mSQL.
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.
La derivación del nombre MySQL no está clara. 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. Sin embargo, la hija del co-fundador Monty

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 109
UNIDAD 4
MySQL

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

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 110
UNIDAD 4
MySQL

Por lo general, en cada entrega alpha se implementan nuevos comandos y


extensiones, y es la etapa donde puede producirse la mayor cantidad de
cambios en el código. Sin embargo, debido a las pruebas realizadas, no
deberían existir errores conocidos.
• beta significa que la entrega está destinada a poseer sus características
completas y que se probó todo el código nuevo. No se agregan
características de importancia, y no deberían existir errores críticos. Una
versión cambia de alpha a beta cuando no se han descubierto errores
fatales durante al menos un mes, y no hay planes de agregar características
que pudieran comprometer la fiabilidad del código existente.
Todas las APIs, las estructuras visibles externamente y las columnas para
comandos SQL no se modificarán en las futuras entregas, sean beta,
candidatas, o de producción.
• rc es una entrega candidata; o sea, una beta que ha estado funcionando
un intervalo de tiempo y parece hacerlo bien. Solamente podrían ser
necesarias correcciones menores. (Una entrega candidata es formalmente
conocida como una entrega gamma.)
• Si no hay un sufijo, significa que la versión se ha estado utilizando por un
tiempo en diferentes sitios sin que se informaran errores críticos
reproducibles, más allá de los específicos de una plataforma. Esto es lo que
se llama una entrega de producción (estable) o “General Availability” (GA).
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.
En MySQL 5.0 para Windows, el directorio de instalación por defecto es
C:\Program Files\MySQL\MySQL Server 5.0. El directorio de instalación
contiene los siguientes subdirectorios:
DIRECTORIO CONTENIDO
Bin Programas cliente y el servidor mysqld
data Ficheros de registro (logs), bases de datos
docs Documentación
examples Programas y scripts de ejemplo

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 111
UNIDAD 4
MySQL

include Ficheros de inclusión


lib Bibliotecas
scripts Scripts de utilidades.
share Ficheros con mensajes de err

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

Gráfico 53 Prompt de MySQL

Mysql imprime los resultados de la consulta en forma tabulada (filas y


columnas). La primera fila contiene etiquetas para las columnas. Las filas
siguientes son los resultados de la consulta. Generalmente, el nombre de
cada columna es el nombre del campo que trae desde la base de datos. Si
está trayendo el valor de una expresión, en lugar del contenido de un
campo o columna de una tabla (como en el ejemplo anterior), mysql
etiqueta la columna usando el texto de la expresión.
Mysql informa cuántas filas fueron devueltas y cuánto tiempo le tomó
ejecutarse a la consulta, lo cual da una idea aproximada del rendimiento del
servidor. Estos valores son imprecisos porque representan tiempo de reloj
corriente (no tiempo de CPU), y además porque están afectados por
factores como la carga del servidor o la latencia de red. (Para simplificar los
ejemplos de este capítulo, a partir de ahora no se mostrará la línea “rows in
set”.)
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
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 SIGNIFICADO
mysql> 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
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á, y qué columnas habrá en cada tabla. 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, el diagrama entidad relación, la
normalización y finalmente los diccionarios de datos.
Querrá una tabla para contener un registro por cada estudiante. Esta tabla
puede llamarse alumnos, y debería contener, como mínimo, los nombres de
cada alumno. Dado que el nombre no es muy relevante por sí mismo,
tendría que tener más información. Por ejemplo: el código, la dirección, el
curso, el paralelo y la fecha de nacimiento; tenga en cuenta que la clave
primaria de ésta tabla será el campo CodigoAlumno.

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
UNIDAD 4
MySQL

CREATE TABLE [IF NOT EXISTS] nombre de la tabla


(
Nombre_Campo_1 Tipo de dato del campo 1,
Nombre_Campo_2 Tipo de dato del campo 2,
……………………………..
[PRIMARY KEY (Nombre campo clave)],
[
FOREIGN KEY (Nombre campo clave 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] [AUTO_INCREMENT] [PRIMARY KEY] [COMMENT
‘comentarios’]

Los tipos de los campos pueden ser los siguientes:

Entre las principales opciones de la tabla tenemos el tipo de


almacenamiento {ENGINE|TYPE}.
Un tipo es InnoDB, que dota a MySQL de un motor de almacenamiento
transaccional con capacidades de commit(confirmación), 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. InnoDB se diseñó para
obtener el máximo rendimiento al procesar grandes volúmenes de datos.

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 117
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. 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.
Cuando el usuario intenta borrar o actualizar una fila de una tabla padre,
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. Tanto ON DELETE CASCADE como ON UPDATE CASCADE están
disponibles en MySQL 5.0. Entre dos tablas, no se deberían definir varias
cláusulas ON UPDATE CASCADE que actúen en la misma columna en la
tabla padre o hija.
• SET NULL: Borra o actualiza el registro en la tabla padre y establece en
NULL la o las columnas de clave foránea en la tabla hija. Esto solamente es
válido si las columnas de clave foránea no han sido definidas como NOT
NULL. MySQL 5.0 soporta tanto ON DELETE SET NULL como ON UPDATE
SET NULL.
• NO ACTION: Significa ninguna 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. En MySQL
5.0, InnoDB rechaza la operación de eliminación o actualización en la tabla
padre.
• RESTRICT: Rechaza la operación de eliminación o actualización en la tabla
padre. NO ACTION y RESTRICT son similares en tanto omiten la cláusula ON
DELETE u ON UPDATE. (Algunos sistemas de bases de datos tienen
verificaciones diferidas o retrasadas, una de las cuales es NO ACTION. En
MySQL, las restricciones de claves foráneas se verifican inmediatamente,
por eso, NO ACTION y RESTRICT son equivalentes.)
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
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, en el cual una tabla notas tiene claves
foráneas hacia otras dos tablas. 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. Cargando datos en una tabla


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

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 119
UNIDAD 4
MySQL

CÓDIGO NOMBRES DIRECCIÓN CURSO PARALELO FECHA DE


NACIMIENTO
1 Pedro Pedraza Las Alcabalas Octavo A 1996-01-01
2 Marlon Martinez Los Alamos Decimo B 1998-01-02

3 Ludovico Lujano Luis Cordero Noveno C 1996-04-04

Debemos observar que MySQL espera recibir fechas en el formato YYYY-


MM-DD, que puede ser diferente a lo que nosotros estamos acostumbrados.
Ya que estamos iniciando con una tabla vacía, 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, debemos de crear un archivo de texto "DatosEstudiantes.txt" que
contenga un registro por línea con valores separados por tabuladores,
cuidando que el orden de las columnas sea el mismo que utilizamos en la
sentencia CREATE TABLE. Para valores que no conozcamos podemos usar
valores nulos (NULL). Para representar estos valores en nuestro archivo
debemos usar \N.

Gráfico 67 Ingreso de datos utilizando el bloc de notas

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


siguiente comando:

Gráfico 68 Sentencia LOAD DATA

La sentencia LOAD DATA nos permite especificar cuál es el separador de


columnas, y el separador de registros, por default el tabulador es el

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 120
UNIDAD 4
MySQL

separador de columnas (campos), y el salto de línea es el separador de


registros, que en este caso son suficientes para que la sentencia LOAD
DATA lea correctamente el archivo "DatosEstudiantes.txt".
Si lo que deseamos es añadir un registro a la vez, entonces debemos hacer
uso de la sentencia INSERT. En la manera más simple, debemos
proporcionar un valor para cada columna en el orden en el cual fueron
listados en la sentencia CREATE TABLE. Supongamos que se matricula un
nuevo estudiante de nombre David Dávalos en el Noveno G, su dirección es
Totoracocha y su fecha de nacimiento es desconocida. Podemos usar la
sentencia INSERT para agregar su registro en nuestra base de datos.

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
Bibliografía

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

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas

122
Bibliografía

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

Colegio Técnico Salesiano


Sistemas Gestores de bases de datos
Tercero de Bachillerato – Aplicaciones Informáticas 123

También podría gustarte