base de datos
TRANSCRIPT
-
CCoolleeggiioo TTccnniiccoo SSaalleessiiaannoo
APLICACIONES INFORMTICAS
Sistemas Gestores de Bases de Datos
Ing. Wilson Cedillo P. MSc.
Terceros de Bachillerato
2010-2011
Siste
ma
s Ge
store
s de
Ba
se d
e D
ato
s
-
IIINNNDDDIIICCCEEE GGGEEENNNEEERRRAAALLL
INDICE GENERAL .................................................................................................................................... 2
INDICE DE GRFICOS .............................................................................................................................. 5
UNIDAD 1 .............................................................................................................................................. 8
TEMA: SISTEMAS DE BASES DE DATOS ................................................................................................... 8
1. INTRODUCCIN TERICA ........................................................................................................................ 8
1.1 Dato e Informacin ................................................................................................................. 8
1.2 Qu es una base de datos? ................................................................................................... 8
1.3 El sistema de gestin de la base de datos .............................................................................. 9
1.4 Objetivos de los sistemas de bases de datos .......................................................................... 9
2. PLANIFICACIN Y DISEO DE BASES DE DATOS .......................................................................................... 11
2.1 Introduccin Terica ............................................................................................................. 11
2.2 Ciclo de vida de las Aplicaciones de bases de datos ............................................................. 12
2.3 Diseo de bases de datos ...................................................................................................... 13
3. DISEO CONCEPTUAL DE BASES DE DATOS UTILIZANDO EL MODELO E-R ........................................................ 15
3.1 Modelos de datos ................................................................................................................. 15
3.2 El modelo E-R ........................................................................................................................ 15
3.3 Generalizacin, especializacin y Agregacin ...................................................................... 19
3.4 Tcnica para el modelado entidad relacin .......................................................................... 21
3.5 Ejercicios Resueltos ............................................................................................................... 21
4. DISEO LGICO DE BASES DE DATOS UTILIZANDO EL MODELO RELACIONAL .................................................... 23
4.1 Introduccin Terica ............................................................................................................. 23
4.2 El Modelo Relacional ............................................................................................................ 23
4.3 Conversin del diagrama E-R a tablas .................................................................................. 26
5. NORMALIZACIN DESDE EL PUNTO DE VISTA DEL DISEO LGICO DE UNA BASE DE DATOS ................................. 36
5.1 Introduccin Terica ............................................................................................................. 36
5.2 Dependencia Funcional ......................................................................................................... 36
5.3 Qu es la Normalizacin? ................................................................................................... 38
5.4 Primera Forma Normal (1FN) ............................................................................................... 39
5.5 Segunda Forma Normal (2NF) .............................................................................................. 45
5.6 Tercera Forma Normal (3FN) ................................................................................................ 47
UNIDAD 2 ............................................................................................................................................ 51
TEMA: LENGUAJE DE CONSULTAS SQL ................................................................................................. 51
1. INTRODUCCIN TERICA ...................................................................................................................... 51
1.1 Qu es el lenguaje de consultas SQL? ................................................................................. 51
1.2 Breve Historia ....................................................................................................................... 51
1.3 Componentes del SQL ........................................................................................................... 53
2. ESTRUCTURA BSICA ........................................................................................................................... 54
3. ALIAS ............................................................................................................................................... 55
4. TIPOS DE DATOS ................................................................................................................................. 56
5. PREDICADOS Y CONECTORES ................................................................................................................. 56
6. TUPLAS DUPLICADAS ........................................................................................................................... 58
7. OPERACIONES DE CONJUNTO. ............................................................................................................... 59
-
INDICES
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
3
7.1 Pertenencia a un conjunto .................................................................................................... 60
7.2 Comparacin de conjuntos ................................................................................................... 61
8. PRUEBAS PARA RELACIONES VACAS ........................................................................................................ 61
9. ORDENACIN DE LA PRESENTACIN DE TUPLAS ......................................................................................... 62
10. FUNCIONES DE AGREGACIN ............................................................................................................ 62
11. MODIFICACIN DE LA BASE DE DATOS ................................................................................................ 64
11.1 Eliminacin ........................................................................................................................... 64
11.2 Insercin ............................................................................................................................... 65
11.3 Actualizaciones ..................................................................................................................... 65
11.4 Valores nulos ........................................................................................................................ 66
12. DEFINICIN DE DATOS ..................................................................................................................... 66
12.1 Creacin ................................................................................................................................ 66
12.2 Eliminacin ........................................................................................................................... 66
12.3 Actualizacin......................................................................................................................... 67
13. EJERCICIOS PROPUESTOS ................................................................................................................. 67
UNIDAD 3 ............................................................................................................................................ 72
TEMA: ACCESS 2007 ............................................................................................................................. 72
1. INTRODUCCIN .................................................................................................................................. 72
1.1 Estructura de ficheros de Access ........................................................................................... 72
2. ELEMENTOS BSICOS 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 Diseo ................................................................ 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 Introduccin .......................................................................................................................... 83
5.2 Tamao del campo ............................................................................................................... 84
5.3 Formato del campo ............................................................................................................... 85
5.4 Lugares decimales ................................................................................................................ 86
5.5 Mscara de entrada ............................................................................................................. 86
5.6 Ttulo ..................................................................................................................................... 87
5.7 Valor predeterminado .......................................................................................................... 87
5.8 Regla de validacin ............................................................................................................... 87
5.9 Texto de validacin ............................................................................................................... 88
5.10 Requerido .............................................................................................................................. 88
5.11 Permitir longitud cero ........................................................................................................... 88
5.12 Indexado ............................................................................................................................... 88
6. LAS RELACIONES ................................................................................................................................. 89
6.1 Tipos de relaciones de tabla ................................................................................................. 90
6.2 Descripcin de la integridad referencial ............................................................................... 92
-
INDICES
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
4
6.3 Crear una relacin. ............................................................................................................... 93
6.4 Aadir tablas a la ventana Relaciones. ................................................................................. 95
6.5 Quitar tablas de la ventana Relaciones. ............................................................................... 95
6.6 Modificar relaciones. ............................................................................................................ 96
6.7 Eliminar relaciones................................................................................................................ 96
6.8 Mostrar relaciones directas .................................................................................................. 97
7. LAS CONSULTAS ................................................................................................................................. 97
7.1 Tipos de consultas ................................................................................................................. 97
7.2 Crear una consulta ................................................................................................................ 99
7.3 Aadir campos .................................................................................................................... 101
7.4 Encabezados de columna.................................................................................................... 101
7.5 Ejecutar la consulta ............................................................................................................ 102
7.6 Modificar el diseo de una consulta ................................................................................... 102
7.7 Ordenar las filas .................................................................................................................. 102
7.8 Seleccionar filas .................................................................................................................. 103
7.9 Consultas con parmetros .................................................................................................. 105
7.10 Las consultas multitabla ..................................................................................................... 105
UNIDAD 4 .......................................................................................................................................... 109
TEMA: MYSQL .................................................................................................................................... 109
1. INTRODUCCIN ................................................................................................................................ 109
2. CARACTERSTICAS ............................................................................................................................. 109
3. HISTORIA ........................................................................................................................................ 109
4. ESQUEMA DE DENOMINACIONES ......................................................................................................... 110
5. CONFORMACIN DE LA INSTALACIN .................................................................................................... 111
6. COMANDOS BSICOS......................................................................................................................... 112
7. CREAR Y UTILIZAR UNA BASE DE DATOS ................................................................................................. 114
8. CREAR Y SELECCIONAR UNA BASE DE DATOS ........................................................................................... 115
9. CREACIN DE TABLAS ........................................................................................................................ 115
10. CARGANDO DATOS EN UNA TABLA ................................................................................................... 119
BIBLIOGRAFA .................................................................................................................................... 122
-
INDICES
IIINNNDDDIIICCCEEE DDDEEE GGGRRRFFFIIICCCOOOSSS
GRFICO 1 SISTEMA GESTOR DE BASES DE DATOS..................................................................................................... 9
GRFICO 2 REPRESENTACIN GRFICA DE UNA ENTIDAD .......................................................................................... 16
GRFICO 3 REPRESENTACIN GRFICA DE LOS ATRIBUTOS EN UNA ENTIDAD ............................................................... 16
GRFICO 4 RELACIN ENTRE DOS ENTIDADES ........................................................................................................ 17
GRFICO 5 RELACIN DE GRADO 3 O TERNARIA ..................................................................................................... 17
GRFICO 6 RELACIN 1 A 1 ............................................................................................................................... 18
GRFICO 7 RELACIN 1 A N .............................................................................................................................. 18
GRFICO 8 RELACIN N A N .............................................................................................................................. 18
GRFICO 9 EJEMPLOS DE GENERALIZACIN .......................................................................................................... 19
GRFICO 10 EJEMPLO DE AGREGACIN ............................................................................................................... 20
GRFICO 11 DIAGRAMA E-R DEL EJERCICIO 1 ....................................................................................................... 21
GRFICO 12 DIAGRAMA E-R DEL EJERCICIO 2 ....................................................................................................... 22
GRFICO 13 DIAGRAMA E-R DEL EJERCICIO 3 ....................................................................................................... 22
GRFICO 14 ENTIDAD ALUMNO ......................................................................................................................... 28
GRFICO 15 ESQUEMA E-R DE UNA FACTURA ....................................................................................................... 28
GRFICO 16 ESQUEMA E-R CON RELACIN UNO A UNO .......................................................................................... 30
GRFICO 17 ESQUEMA E-R CON RELACIN UNO A MUCHOS .................................................................................... 32
GRFICO 18 ESQUEMA E-R CON RELACIN MUCHOS A MUCHOS .............................................................................. 34
GRFICO 19 PANTALLA INICIAL DE ACCESS 2007 .................................................................................................. 73
GRFICO 20 CINTA DE OPCIONES ....................................................................................................................... 73
GRFICO 21 ENTORNO DE ACCESS 2007 ............................................................................................................. 75
GRFICO 22 OPCIN NUEVA BASE DE DATOS EN BLANCO ........................................................................................ 76
GRFICO 23 TABLA INICIAL DE LA BASE DE DATOS .................................................................................................. 76
GRFICO 24 GRUPO TABLAS DE LA FICHA CREAR ................................................................................................... 77
GRFICO 25 COMO CAMBIAR A LA VISTA DISEO .................................................................................................. 79
GRFICO 26 VISTA DISEO ............................................................................................................................... 79
GRFICO 27 CAMPOS DE LA TABLA PROFESORES ................................................................................................... 80
GRFICO 28 TIPOS DE DATOS DE LOS CAMPOS ...................................................................................................... 80
GRFICO 29 BOTN PARA AGREGAR LA CLAVE PRINCIPAL ........................................................................................ 81
GRFICO 30 ERROR DE CLAVE ............................................................................................................................ 82
GRFICO 31 GRUPO IMPORTAR DE LA FICHA DATOS EXTERNOS ............................................................................... 83
GRFICO 32 PROPIEDADES DE LOS CAMPOS .......................................................................................................... 84
GRFICO 33 FORMULARIO NOTAS ...................................................................................................................... 89
GRFICO 34 CAMPOS EN COMN ENTRE LAS TABLAS PROFESORES Y MATERIAS ........................................................... 90
GRFICO 35 BOTN RELACIONES DE LA PESTAA HERRAMIENTAS DE BASE DE DATOS. .................................................. 93
GRFICO 36 CUADRO DE DILOGO MOSTRAR TABLAS ............................................................................................ 93
GRFICO 37 TABLAS AGREGADAS A LA VENTANA RELACIONES .................................................................................. 94
GRFICO 38 CUADRO DE DILOGO MOSTRAR RELACIONES ...................................................................................... 94
GRFICO 39 RELACIN UNA A VARIOS DE LA TABLA PROFESORES CON LA TABLA ALUMNOS ............................................ 95
GRFICO 40 BOTN MOSTRAR TABLA DE LA PESTAA DISEO ................................................................................. 95
GRFICO 41 MEN CONTEXTUAL DE UNA TABLA EN LA VENTANA RELACIONES ............................................................ 96
GRFICO 42 MEN CONTEXTUAL DE UNA RELACIN .............................................................................................. 96
GRFICO 43 CONSULTA SQL EN ACCESS .............................................................................................................. 99
GRFICO 44 BOTN DISEO DE CONSULTA DE LA PESTAA CREAR ............................................................................ 99
GRFICO 45 CUADRO DE DILOGO MOSTRAR TABLA PARA CONSULTAS ...................................................................... 99
GRFICO 46 VENTANA VISTA DISEO DE CONSULTAS .......................................................................................... 100
GRFICO 47 BOTN EJECUTAR CONSULTAS........................................................................................................ 102
-
INDICES
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
6
GRFICO 48 VARIAS CONDICIONES EN UNA CONSULTA .......................................................................................... 104
GRFICO 49 CONDICIONES EN DIFERENTES FILAS ................................................................................................. 104
GRFICO 50 CUADRO DE DILOGO PARA INTRODUCIR VALORES .............................................................................. 105
GRFICO 51 BOTN MOSTRAR TABLA .............................................................................................................. 105
GRFICO 52 COMBINAR TABLAS ....................................................................................................................... 106
GRFICO 53 PROMPT DE MYSQL .................................................................................................................... 112
GRFICO 54 INSTRUCCIN SELECT CON OPERACIONES MATEMTICAS BSICAS EN MYSQL ........................................ 113
GRFICO 55 SENTENCIAS CON MLTIPLES LNEAS ................................................................................................ 113
GRFICO 56 PARA CANCELAR UN COMANDO UTILICE /C ........................................................................................ 113
GRFICO 57 SENTENCIA SHOW DATABASES .................................................................................................. 114
GRFICO 58 SENTENCIA USE .......................................................................................................................... 115
GRFICO 59 SENTENCIA CREATE DATABASE ................................................................................................... 115
GRFICO 60 CAMBIO DE UNA BASE DE DATOS ..................................................................................................... 115
GRFICO 61 SENTENCIA SHOW TABLES .......................................................................................................... 116
GRFICO 62 SENTENCIA CREATE TABLE ......................................................................................................... 116
GRFICO 63 SENTENCIA DESCRIBE ................................................................................................................. 116
GRFICO 64 CREAR UNA TABLA CON UNA CLAVE PRIMARIA .................................................................................... 119
GRFICO 65 CREAR UNA TABLA CON UNA CLAVE PRIMARIA Y UNA CLAVE FORNEA ..................................................... 119
GRFICO 66 USO DE CLAVES COMBINADAS EN LLAVES FORNEAS ........................................................................... 119
GRFICO 67 INGRESO DE DATOS UTILIZANDO EL BLOC DE NOTAS ............................................................................. 120
GRFICO 68 SENTENCIA LOAD DATA .............................................................................................................. 120
GRFICO 69 SENTENCIA INSERT INTO ............................................................................................................ 121
GRFICO 70 SENTENCIA SELECT ..................................................................................................................... 121
-
UNIDAD 1 Sistemas de bases de datos
SSGGBBDD
-
UNIDAD 1 Sistemas de Bases de Datos
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
8
UUUNNNIIIDDDAAADDD 111
Tema: Sistemas de Bases de Datos
1. Introduccin Terica
1.1 Dato e Informacin
En esencia, un sistema de bases de datos no es ms que un sistema para
archivar en computador; o sea, es un sistema computarizado cuyo
propsito general es mantener informacin y hacer que est disponible
cuando se solicite. Para tener claro sta definicin es necesario hacer la
distincin entre dos trminos que parecieran ser sinnimos: dato e
informacin:
Dato: El dato es conjunto de caracteres con algn significado, pueden
ser numricos, alfabticos, o alfanumricos.
Informacin: Es un conjunto ordenado de datos los cuales son
manejados segn la necesidad del usuario, para que un conjunto de
datos pueda ser procesado eficientemente y pueda dar lugar a
informacin, primero se debe guardar lgicamente en archivos.
1.2 Qu es una base de datos?
Una base de datos es un conjunto de datos almacenados entre los que
existen relaciones lgicas y ha sido diseada para satisfacer los
requerimientos de informacin de una empresa u organizacin.
La base de datos es un gran almacn de datos que se define una sola vez y
que se utiliza al mismo tiempo por muchos departamentos y usuarios. La
base de datos no pertenece a un departamento, se comparte por toda la
organizacin.
Adems, la base de datos no slo contiene los datos de la organizacin,
tambin almacena una descripcin de dichos datos. Esta descripcin es lo
que se denomina metadatos, se almacena en el diccionario de datos o
catlogo y es lo que permite que exista independencia de datos.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
9
1.3 El sistema de gestin de la base de datos
El sistema de gestin de la base de datos (DBMS1) es una aplicacin que
permite a los usuarios (clientes) definir, crear y mantener la base de datos,
y proporciona acceso controlado a la misma.
Grfico 1 Sistema gestor de bases de datos
En general, un DBMS proporciona los siguientes servicios:
Permite la definicin de la base de datos mediante el lenguaje de
definicin de datos (DDL2). Este lenguaje permite especificar la
estructura y el tipo de los datos, as como las restricciones sobre los
datos. Todo esto se almacenar en la base de datos.
Permite la insercin, actualizacin, eliminacin y consulta de datos
mediante el lenguaje de manejo de datos (DML3).
Proporciona un acceso controlado a la base de datos.
1.4 Objetivos de los sistemas de bases de datos
Los objetivos principales de un sistema de base de datos es disminuir los
siguientes aspectos:
Redundancia e inconsistencia de datos: Si los archivos que mantienen
almacenada la informacin son creados por diferentes tipos de programas
1 DBMS: De las siglas en ingls Data Bases Management System cuya traduccin al espaol es Sistemas
manejadores de bases de datos. 2 DDL: De las siglas en ingls Data Definition Language cuya traduccin al espaol es Lenguaje de
definicin de datos. 3 DML: De las siglas en ingls Data Manipulation Language cuya traduccin al espaol es Lenguaje de
manipulacin de datos
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
10
de aplicacin existe la posibilidad de que si no se controla detalladamente el
almacenamiento, se pueda originar un duplicado de informacin, esto se
conoce como redundancia de datos. Esto aumenta los costos de
almacenamiento y acceso a los datos, adems de que puede originar la
inconsistencia de los datos4, por ejemplo: que se actualiza la direccin de
un alumno en un archivo y que en otros archivos permanezca la anterior.
Dificultad para tener acceso a los datos: Un sistema de base de datos
debe contemplar un entorno de datos que le facilite al usuario el manejo de
los mismos. Por ejemplo supngase la siguiente situacin: en el colegio uno
de los departamentos necesita averiguar los nombres de todos los alumnos
que viven en la parroquia Totoracocha de la ciudad de Cuenca. El
departamento pide al centro de cmputo que genere la lista
correspondiente. Puesto que esta situacin no fue prevista en el diseo del
sistema, no existe ninguna aplicacin de consulta que permita este tipo de
solicitud, esto ocasiona una deficiencia del sistema.
Aislamiento de los datos: Cuando los datos estn repartidos en varios
archivos, y estos no pueden tener diferentes formatos, es difcil escribir
nuevos programas de aplicacin para obtener los datos apropiados.
Anomalas del acceso concurrente: Para mejorar el funcionamiento
global del sistema y obtener un tiempo de respuesta ms rpido, muchos
sistemas permiten que mltiples usuarios actualicen los datos
simultneamente. En un entorno as la interaccin de actualizaciones
concurrentes puede dar por resultado datos inconsistentes.
Problemas de seguridad: La informacin de toda organizacin es
importante, aunque unos datos lo son ms que otros, por tal motivo se
debe considerar el control de acceso a los mismos, no todos los usuarios
pueden visualizar alguna informacin, por tal motivo para que un sistema
de base de datos sea confiable debe mantener un grado de seguridad que
garantice la autentificacin y proteccin de los datos. En un colegio por
ejemplo, el personal de contabilidad slo necesita tener acceso a la parte de
la base de datos que tiene informacin acerca de la parte econmica de la
4 Inconsistencia de datos: Es cuando diversas copias de un mismo dato no concuerdan entre s
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
11
institucin y no a otro tipo de informacin como por ejemplo a las notas de
los estudiantes.
Problemas de integridad: Los valores de datos almacenados en la base
de datos deben satisfacer cierto tipo de restricciones de consistencia. Estas
restricciones se hacen cumplir en el sistema aadiendo cdigos apropiados
en los diversos programas de aplicacin.
ACTIVIDAD GRUPAL
Con un grupo de tres compaeros realice un foro para debatir la
importancia de los sistemas de bases de datos. Entregue un documento con
las conclusiones y opiniones que se han llegado al final de la actividad.
2. Planificacin y diseo de bases de datos
2.1 Introduccin Terica
Todo sistema de informacin debe ser previamente planificado para evitar
futuros inconvenientes y dicha planificacin debe realizarse por fases, stas
fases de la planificacin del sistema se conoce como el ciclo de vida de un
sistema de informacin que se relaciona directamente con el desarrollo de
aplicaciones de bases de datos.
La razn para preocuparse por el diseo de las bases de datos es que es
crucial para la consistencia, integridad y precisin de los datos. Si una base
de datos est mal diseada, los usuarios tendrn dificultades a la hora de
acceder a ciertos tipos de informacin y existe el riesgo aadido de que
ciertas bsquedas puedan producir informacin errnea.
Vindolo desde una perspectiva diferente, la base de datos es como una
casa que queremos que nos construyan. Qu es lo primero que hay que
hacer? Desde luego, lo que no vamos a hacer es buscar a un constructor
que haga la casa sobre la marcha y lo haga como l quiera. Seguramente,
buscaremos primero a un arquitecto que disee nuestra nueva casa y
despus haremos que el constructor la edifique. El arquitecto expresar
nuestras necesidades en una serie de planos, anotando todos los requisitos
de los diversos sistemas (estructural, mecnico y elctrico). Despus, el
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
12
constructor pondr los materiales necesarios, tal y como se indica en los
planos y en las especificaciones.
Volviendo a la perspectiva de las bases de datos, el diseo lgico
corresponde con la fase de elaboracin de los planos arquitectnicos, y la
implementacin fsica de la base de datos es la casa ya construida. El
diseo lgico describe el tamao, la forma y los sistemas necesarios para la
base de datos. Despus, se construye la implementacin fsica del diseo
lgico de la base de datos mediante el DBMS.
Se pueden hacer malos diseos, pero una base de datos bien diseada
contendr informacin correcta, almacenar los datos ms eficientemente y
ser ms fcil de gestionar y de mantener.
2.2 Ciclo de vida de las Aplicaciones de bases de datos
Una aplicacin de base de datos es un sistema de informacin, es decir, un
conjunto de recursos que permiten recoger, gestionar, controlar y difundir
la informacin de toda una empresa u organizacin.
Un sistema de informacin est formado por los siguientes componentes:
La base de datos.
El DBMS.
Los programas de aplicacin.
Los dispositivos fsicos (ordenadores, medios de almacenamiento,
etc.).
El personal que utiliza y que desarrolla el sistema.
La base de datos es un componente fundamental de un sistema de
informacin, razn por la cual en este documento se van a estudiar cada
una de las etapas del ciclo de vida de desarrollo del software desde la
perspectiva del desarrollo de una aplicacin de bases de datos, siguiendo un
enfoque orientado a datos.
Bajo esa perspectiva las etapas del ciclo de vida de una aplicacin de bases
de datos son las siguientes:
Planificacin del proyecto.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
13
Definicin del sistema.
Recoleccin y anlisis de los requisitos.
Diseo de la base de datos.
Seleccin del DBMS.
Diseo de la aplicacin.
Prototipado.
Implementacin.
Conversin y carga de datos.
Prueba.
Mantenimiento.
Estas etapas no son estrictamente secuenciales. De hecho hay que repetir
algunas de las etapas varias veces, haciendo lo que se conocen como ciclos
de realimentacin. Por ejemplo, los problemas que se encuentran en la
etapa del diseo de la base de datos pueden requerir una recoleccin de
requisitos adicional y su posterior anlisis.
Debido a la naturaleza de la materia nuestro estudio se centrar solamente
en una de las fases del ciclo de vida: el diseo de base de datos.
ACTIVIDAD
Investigue cada una de las etapas del ciclo de vida del desarrollo del
software. Se evaluar: Portada, ndice de contenidos, ndice de grficos (si
es que los hay), calidad de la teora investigada, ejemplos, conclusiones,
recomendaciones y bibliografa.
Recuerde que una buena investigacin implica una buena sustentacin de la
misma.
2.3 Diseo de bases de datos
Como se pudo ver en la Planificacin y diseo de la bases de datos, el
diseo de una base de datos se descompone en: diseo conceptual, diseo
lgico y diseo fsico.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
14
Diseo conceptual: En esta etapa se debe construir un esquema de la
informacin que se usa en la empresa, independientemente de cualquier
consideracin fsica. A este esquema se le denomina esquema conceptual.
Al construir el esquema, los diseadores5 descubren la semntica
(significado) de los datos de la empresa. El objetivo es comprender:
La perspectiva que cada usuario tiene de los datos.
La naturaleza de los datos, independientemente de su representacin
fsica.
El uso de los datos a travs de las reas de aplicacin.
El esquema ms popular para el diseo conceptual es el modelo E-R6.
Diseo lgico: El diseo lgico es el proceso de construir un esquema de la
informacin que utiliza la empresa, basndose en un modelo de base de
datos especfico, independiente del DBMS concreto que se vaya a utilizar y
de cualquier otra consideracin fsica.
En esta etapa, se transforma el esquema conceptual en un esquema lgico
que utilizar las estructuras de datos del modelo de base de datos en el que
se basa el DBMS que se vaya a utilizar, como puede ser el modelo
relacional, el modelo de red, el modelo jerrquico o el modelo orientado a
objetos.
La normalizacin es una tcnica que se utiliza para comprobar la validez de
los esquemas lgicos basados en el modelo relacional, ya que asegura que
las relaciones (tablas) obtenidas no tienen datos redundantes.
Diseo fsico: El diseo fsico es el proceso de producir la descripcin de la
implementacin de la base de datos en memoria secundaria: estructuras de
almacenamiento y mtodos de acceso que garanticen un acceso eficiente a
los datos.
5 Los diseadores de la base de datos realizan el diseo lgico de la base de datos, debiendo identificar
los datos, las relaciones entre datos y las restricciones sobre los datos y sus relaciones. El diseador de la base de datos debe tener un profundo conocimiento de los datos de la empresa y tambin debe conocer sus reglas de negocio. Las reglas de negocio describen las caractersticas principales de los datos tal y como las ve la empresa. 6 Un diagrama o modelo entidad-relacin (a veces denominado por su siglas en ingls E-R "Entity
relationship"). Se ver ms adelante en detalle.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
15
Para llevar a cabo esta etapa, se debe haber decidido cul es el DBMS que
se va a utilizar, ya que el esquema fsico se adapta a l. Entre el diseo
fsico y el diseo lgico hay una realimentacin, ya que algunas de las
decisiones que se tomen durante el diseo fsico para mejorar las
prestaciones, pueden afectar a la estructura del esquema lgico. En
general, el propsito del diseo fsico es describir cmo se va a implementar
fsicamente el esquema lgico obtenido en la fase anterior.
3. Diseo conceptual de bases de datos utilizando el Modelo
E-R
Como ya se dijo anteriormente el diseo de bases de datos es el proceso
por el que se determina la organizacin de una base de datos, incluidos su
estructura, contenido y las aplicaciones que se han de desarrollar.
3.1 Modelos de datos
Un modelo de datos es una serie de conceptos que puede utilizarse para
describir un conjunto de datos y las operaciones para manipularlos. Hay dos
tipos de modelos de datos: los modelos conceptuales y los modelos lgicos.
En el diseo de bases de datos se usan primero los modelos conceptuales
para lograr una descripcin de alto nivel de la realidad, y luego se
transforma el esquema conceptual en un esquema lgico.
3.2 El modelo E-R
El modelo E-R est formado por un conjunto de conceptos que permiten
describir la realidad mediante un conjunto de representaciones grficas y
lingsticas.
Originalmente, el modelo E-R slo inclua los conceptos de entidad, relacin
y atributo. Ms tarde, se aadieron otros conceptos, como los atributos
compuestos y las jerarquas de generalizacin, en lo que se ha denominado
modelo entidad-relacin extendido.
Entidad y atributos
Entidades: Es todo lo que existe y es capaz de ser descrito (sustantivo), se
distingue de otros objetos de acuerdo a sus caractersticas llamadas
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
16
atributos. Por ejemplo puede ser una entidad el sustantivo persona pues el
mismo se diferencia de cualquier otra persona, incluso siendo gemelos.
O puede ser una entidad el sustantivo casa pues aunque sea exactamente
igual a otra, an se diferenciar en su direccin.
Grfico 2 representacin grfica de una entidad
Las entidades se representan grficamente mediante rectngulos y su
nombre aparece en la parte interna. Un nombre de entidad slo puede
aparecer una vez en el esquema conceptual.
Una entidad puede ser un objeto con existencia fsica como: una persona,
un animal, una casa, etc. (entidad concreta), o un objeto con existencia
conceptual como: un puesto de trabajo, una asignatura de clases, un
nombre, etc. (entidad abstracta).
Hay dos tipos de entidades: fuertes y dbiles. Una entidad dbil es una
entidad cuya existencia depende de la existencia de otra entidad. Una
entidad fuerte es una entidad que existe pos s sola y no depende de la
existencia de otras.
Atributos: es una caracterstica (adjetivo) de una entidad o relacin. Una
entidad est descrita y se representa por sus caractersticas o atributos. Por
ejemplo, la entidad Alumno puede llevar consigo las caractersticas: Cdigo,
Nombres, Direccin, Telfono, etc.
Grfico 3 Representacin grfica 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 CDIGO). En el esquema se los distingue
por que el atributo clave se encuentra subrayado.
ALUMNO
ALUMNO
Cdigo Nombres
Direccin Telfono
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
17
Relacin (Interrelacin)
Es una correspondencia o asociacin entre dos o ms entidades (verbo).
Cada relacin tiene dos extremos y se representas grficamente con
rombos, dentro de ellas se coloca el nombre de la relacin.
Grfico 4 Relacin entre dos entidades
La cantidad de entidades en una relacin determina el grado de la relacin,
por ejemplo la relacin ALUMNO-CURSO es de grado 2 (binarias), ya que
intervienen la entidad ALUMNO y la entidad CURSO, la relacin PADRES,
puede ser de grado 3, ya que involucra las entidades PADRE, MADRE e
HIJO.
Grfico 5 Relacin de grado 3 o ternaria
Cardinalidad
La cardinalidad nos especifica los tipos de relaciones que existen entre las
entidades en el modelo E-R para establecer con esto las validaciones
necesarias para conseguir que los datos de la instancia7 correspondan con
la realidad.
a) Relacin uno a uno (1:1): A cada ocurrencia de una entidad le
corresponde como mximo una ocurrencia de la otra entidad relacionada.
7 Instancia: Valor nico en un momento dado de una base de datos
MADRE
PADRE
HIJO PADRES
Cdigo Nombres
Direccin Telfono
ALUMNO
Nivel Paralelo
CURSO PERTENECE
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
18
Una entidad del tipo A solo se puede relacionar con una entidad del tipo B, y
viceversa.
Por ejemplo: La entidad HOMBRE con la entidad MUJER y entre ellos la
relacin MATRIMONIO, es una relacin 1 a 1, ya que asocia a un HOMBRE
con una nica MUJER por lo tanto ningn HOMBRE tiene ms de una MUJER
en MATRIMONIO, y ninguna MUJER tiene ms de una HOMBRE en
MATRIMONIO. El extremo de la flecha indica el uno de la relacin.
Grfico 6 Relacin 1 a 1
b) Relacin uno a muchos (1:N): Significa que una entidad del tipo A
puede relacionarse con cualquier cantidad de entidades del tipo B, y una
entidad del tipo B solo puede estar relacionada con una entidad del tipo A.
Por ejemplo: La entidad CURSO y la entidad ALUMNO y entre ellos la
relacin ESTUDIAR EN. En un CURSO pueden ESTUDIAR muchos ALUMNOS,
pero un ALUMNO puede ESTUDIAR EN un solo CURSO.
Grfico 7 Relacin 1 a N
c) Relacin muchos a muchos (N:N): Establece que cualquier cantidad
de entidades del tipo A pueden estar relacionados con cualquier cantidad de
entidades del tipo B.
Por ejemplo: La entidad ALUMNO y la entidad ASIGNATURA y entre ellos la
relacin APRENDER. Un ALUMNO puede APRENDER varias asignaturas y una
ASIGNATURA puede ser APRENDIDA por varios ALUMNOS.
Grfico 8 Relacin N a N
HOMBRE MUJER MATRIMONIO
ALUMNO CURSO ESTUDIAR EN
ALUMNO ASIGNATURA ESTUDIAR EN
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
19
3.3 Generalizacin, especializacin y Agregacin
a) Generalizacin
La generalizacin consiste en identificar atributos comunes a ciertas
entidades, para lo cual podemos crear: una entidad de nivel superior que
las contenga, y otras entidades de nivel inferior con los atributos
particulares. Ejemplo:
Grfico 9 Ejemplos de Generalizacin
Se puede observar que las entidades EMPLEADO y ESTUDIANTE heredan8 de
la entidad PERSONA los atributos Nombre, Direccin y Telfono. De la
misma manera la entidad EMPLEADO tiene un atributo particular llamado
8 La herencia es un tipo de relacin entre una entidad "padre" y una entidad "hijo". La entidad "hijo"
hereda todos los atributos y relaciones de la entidad "padre". Por tanto, no necesitan ser representadas dos veces en el diagrama.
EMPLEADO
Salario
IS A
Nombre
Direccin
Telfono
IS A
PERSONA
ADMINISTRATIVO
Cargo Departamento
PROFESOR
Materia Horas de clase
ESTUDIANTE
Calificacin
Atributos semejantes
(Generalizados)
Entidad global
generada
IS A: Se lee ES UN
Atributos individuales
Atributos individuales
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
20
salario que hereda a las entidades ADMINISTRATIVO y PROFESOR, las
cuales tienen tambin sus propios atributos individuales.
Como podemos observar la Generalizacin trata de eliminar la redundancia
(repeticin) de atributos, al englobar los atributos semejantes. La
entidad(es) de bajo nivel heredan todos los atributos correspondientes.
b) Especializacin
Si identificamos un subconjunto de entidades dentro de un conjunto de
entidades que tienen algunos atributos particulares, entonces estos
subgrupos se convierten en conjuntos de entidades de nivel inferior que
tienen atributos o participan en relaciones que no son aplicables al conjunto
de entidades de nivel superior.
c) Agregacin
La agregacin surge cuando ms de una entidad se asocian de tal forma
que se las puede ver como a una nueva entidad. Esta nueva entidad, fruto
de esa ntima unin, se puede relacionar con otras entidades. Se representa
enmarcando la relacin en un rectngulo.
Grfico 10 Ejemplo de Agregacin
Para ejemplificar una agregacin consideraremos un ejemplo que consiste
en una empresa en la cual existen trabajando muchos empleados que
trabajan en diferentes proyectos, pero dependiendo del trabajo que realiza
en pueden llegar a utilizar un equipo o maquinaria; en este problema
intervienen 3 entidades: Empleado, Proyecto y Maquinaria, el diagrama E-R
correspondiente sera el que se visualiza en la figura 9.
MAQUINARIA
Id
PROYECTO
Nmero Nombre Horas
TRABAJA
USA
EMPLEADO
Id
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
21
Como el modelo E-R no permite la unin entre dos o ms relaciones, la
relacin TRABAJA es englobada como si fuera una entidad ms de la
relacin USA, grficamente se dibuja un rectngulo para englobarlas. Slo
as podemos decir que la entidad TRABAJA se relaciona con la entidad
MAQUINARIA a travs de la relacin USA. Para indicarnos que un trabajo
usa un determinado equipo o maquinaria segn el tipo de trabajo que se
trate.
3.4 Tcnica para el modelado entidad relacin
El modelado entidad-relacin es una tcnica para el modelado de datos
utilizando diagramas entidad relacin. No es la nica tcnica pero s la ms
utilizada. Brevemente consiste en los siguientes pasos:
1. Se parte de una descripcin textual del problema o sistema de
informacin a automatizar (los requisitos).
2. Se hace una lista de los sustantivos y verbos que aparecen.
3. Los sustantivos son posibles entidades o atributos.
4. Los verbos son posibles relaciones.
5. Analizando las frases se determina la cardinalidad de las relaciones y
otros detalles.
6. Se elabora el diagrama (o diagramas) entidad-relacin.
7. Se completa el modelo con listas de atributos y una descripcin de
otras restricciones que no se pueden reflejar en el diagrama.
3.5 Ejercicios Resueltos
Ejercicio 1: Realizar un diagrama E-R del siguiente enunciado: Una
editorial publica varios libros. Un libro es publicado por una sola editorial.
Grfico 11 Diagrama E-R del Ejercicio 1
Ejercicio 2: Una editorial publica varios libros. Un libro es publicado por
una sola editorial. Un lector puede tomar prestados varios libros.
EDITORIAL LIBRO PUBLICA
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
22
Grfico 12 Diagrama E-R del Ejercicio 2
Ejercicio 3
Se pretende crear una base de datos para almacenar informacin sobre los
proyectos que realizan en un curso. Los datos a tener en cuenta son:
Cada proyecto tiene asociado un identificador numrico y un nombre. Adems se guardar qu estudiante es el director de dicho proyecto.
Tambin se quiere guardar informacin sobre los informes que en cada aporte se hacen de cada proyecto. Para ello se guardar la
fecha del informe y se detallar cules han sido las tareas realizadas
en el aporte, quin las realiz y el tiempo que dedic a cada una de
ellas. Las tareas dentro de los proyectos suelen ser casi siempre las
mismas, aunque las realicen distintas personas y le dediquen tiempos
distintos. Adems un mismo estudiante puede realizar distintas
tareas en el mismo aporte y una tarea puede ser desarrollada por
ms de un empleado.
De los estudiantes se guardar el cdigo y su nombre.
Grfico 13 Diagrama E-R del Ejercicio 3
EDITORIAL
LIBRO
PUBLICA
LECTOR TIENE
ESTUDIANTE
TAREA
Tiempo
REGISTRA INFORME
DIRIGE
GUARDA
IdTarea
Descripcin Fecha
IdInforme
IdProyecto Nombre
PROYECTO
Cdigo
Nombre
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
23
4. Diseo lgico de bases de datos utilizando el Modelo
Relacional
4.1 Introduccin Terica
El objetivo del diseo lgico es convertir los esquemas conceptuales locales
en un esquema lgico global que se ajuste al modelo de DBMS sobre el que
se vaya a implementar el sistema.
Los modelos de bases de datos ms extendidos desde la perspectiva del
diseo lgico son el modelo relacional, el modelo de red y el modelo
jerrquico. El modelo orientado a objetos es tambin muy popular, pero no
existe un modelo estndar orientado a objetos.
En este punto nos concentraremos en desarrollar un buen modelo "lgico"
que se conoce como "esquema de la base de datos" a partir del cual se
podr realizar el modelado fsico en el DBMS, es importante mencionar que
es un paso necesario, no se puede partir de un modelo conceptual para
realizar un fsico.
4.2 El Modelo Relacional
El objetivo del modelo relacional es crear un "esquema", lo cual como se
explicar ms adelante consiste de un conjunto de "tablas" que representan
"relaciones", relaciones entre los datos.
La ventaja del modelo relacional es que los datos se almacenan, al menos
conceptualmente, de un modo en que los usuarios entienden con mayor
facilidad. Los datos se almacenan como tablas y las relaciones entre las filas
y las tablas son visibles en los datos. Este enfoque permite a los usuarios
obtener informacin de la base de datos sin asistencia de sistemas
profesionales de administracin de informacin.
Las caractersticas ms importantes de los modelos relacionales son:
Es importante saber que las entradas en la tabla tienen un solo valor (son atmicos); no se admiten valores mltiples, por lo tanto la
interseccin de un rengln con una columna tiene un solo valor,
nunca un conjunto de valores.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
24
Todas las entradas de cualquier columna son de un solo tipo. Por ejemplo, una columna puede contener nombres de clientes, y en otra
puede tener fechas de nacimiento. Cada columna posee un nombre
nico, el orden de las comunas no es de importancia para la tabla, las
columnas de una tabla se conocen como atributos. Cada atributo
tiene un dominio, que es una descripcin fsica y lgica de valores
permitidos.
No existen 2 filas en la tabla que sean idnticas.
La informacin en las bases de datos son representados como datos explcitos, no existen apuntadores o ligas entre las tablas.
En el enfoque relacional es sustancialmente distinto de otros enfoques en
trminos de sus estructuras lgicas y del modo de las operaciones de
entrada/salida. En el enfoque relacional, los datos se organizan en tablas
llamadas relaciones, cada una de las cuales se implanta como un archivo.
En terminologa relacional una fila en una relacin representa un registro o
una entidad; Cada columna en una relacin representa un campo o un
atributo.
As, una relacin se compone de una coleccin de registros cuyos
propietarios estn descritos por cierto nmero de atributos predeterminados
implantados como campos.
Las tablas del diagrama relacional, pueden ser construidas partiendo de
convertir el diagrama e-r a tablas y posteriormente aplicar operaciones de
normalizacin hasta conseguir el esquema ptimo.
Esta es muy conveniente en varios aspectos:
El partir de un diagrama visual es muy til para apreciar los detalles,
de ah que se llame modelo conceptual.
El crear las tablas inciales es mucho ms simple a travs de las
reglas de conversin.
Se podra pensar que es lo mismo porque finalmente hay que
"normalizar" las tablas de todas formas, pero la ventaja de partir del
modelo e-r es que la "normalizacin" es mnima por lo general.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
25
Lo anterior tiene otra ventaja, an cuando se normalice de manera
deficiente, se garantiza un esquema aceptable.
Conceptos bsicos
Tablas: El modelo relacional proporciona una manera simple de representar
los datos: una tabla bidimensional llamada relacin.
ALUMNOS
CODIGO NOMBRES DIRECCIN
1234 David Bustamante Av. 24 de Mayo
5678 Toms Alarcn Gran Colombia
La relacin Alumnos tiene la intencin de manejar la informacin de las
instancias en la entidad Alumnos, cada rengln corresponde a una entidad
Alumno y cada columna corresponde a uno de los atributos de la entidad.
Sin embargo las relaciones pueden representar ms que entidades, como se
explicar ms adelante.
El grado de esta tabla es el nmero de campos que posee, en nuestro caso
la tabla ALUMNOS es de grado 3.
Campos o atributos: Los atributos son las columnas de una relacin y
describen caractersticas particulares de ella.
Relacin, Esquema o Tabla: Es el nombre que se le da a una relacin y el
conjunto de atributos en ella.
Alumnos (Cdigo, Nombres, Direccin)
Tuplas o registros: Cada uno de los renglones en una relacin
conteniendo valores para cada uno de los atributos.
(1234, David Bustamante, Av. 24 de Mayo)
Dominios: Se debe considerar que cada campo (columna) debe ser
atmico, es decir, que no sea divisible, no se puede pensar en un atributo
como un "registro" o "estructura" de datos.
Claves: Como en una tabla, las tuplas pueden estar en cualquier orden, no
podemos referenciar una tupla concreta a mediante su posicin entre las
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
26
dems, y necesitamos alguna forma de seleccionar una tupla concreta. La
forma de hacerlo es mediante una clave.
Una clave es un atributo o conjunto de atributos cuyo valor es nico y
diferente para cada tupla.
Clave primaria: De entre todas las claves candidatas, el administrador,
cuando define la tabla, debe decidir cul de ellas va a ser la clave principal o
clave primaria.
Una clave primaria es aquella columna (pueden ser tambin dos columnas o
ms) que identifica nicamente a esa fila. La clave primaria es un
identificador que va a ser nico para cada fila. Se acostumbra poner la clave
primaria como la primera columna de la tabla pero esto no tiene que ser
necesario, si no es ms una conveniencia. Muchas veces la clave primaria
es autonumrica.
Clave Candidata: En una tabla puede que tengamos ms de una clave, en
tal caso se puede escoger una para ser la clave primaria, las dems claves
son las claves candidatas, adems es la posible clave primaria. P.ej., en
nuestro caso de la tabla Alumnos, la clave puede ser tanto el atributo
Cdigo, como el atributo Nombre
Claves Alternativas: Una clave alternativa es aquella clave candidata que
no ha sido seleccionada como clave primaria, pero que tambin puede
identificar de forma nica a una fila dentro de una tabla. Ejemplo: Si en una
tabla Alumnos definimos Cdigo como clave primaria, el nmero de cdula
de ese alumno podra ser una clave alternativa.
Clave Fornea: Una clave fornea es aquella columna que existiendo como
dependiente en una tabla, es a su vez clave primaria en otra tabla.
Clave Compuesta: Una clave compuesta es una clave que est compuesta
por ms de una columna o campo.
4.3 Conversin del diagrama E-R a tablas
En el tema anterior estudiamos un modelo conceptual de datos que nos
permita describir la informacin que se desea almacenar en una base de
datos cualquiera: el modelo Entidad-Relacin.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
27
La ventaja de este modelo es que es independiente del modelo lgico sobre
el que se vaya a implantar finalmente dicha base de datos. Por otro lado,
cuando dicho modelo lgico es el modelo relacional, resulta bastante
sencillo pasar del diagrama E-R al esquema relacional mediante unas
cuantas reglas sencillas y fciles de aplicar.
Antes de comenzar es necesario resaltar las diferencias existentes entre
estos dos modelos.
De una parte, el modelo E-R trabaja a nivel conceptual, estableciendo
cules son las entidades fuertes y dbiles que intervienen en nuestra base
de datos, y las relaciones existentes entre ellas; sin embargo, no hace
referencia alguna a la forma en que estos objetos se almacenan en
ninguna base de datos, entre otras cosas por se trata slo de un modelo
conceptual. Por contra, el modelo relacional lo que trata es de representar
la informacin en la forma en que se va a almacenar en la memoria del
ordenador (o al menos en la forma en que el usuario la ve). Para ello se
vale casi nicamente del concepto de tabla.
Por tanto, lo que se pretende con este apartado es pasar de describir
conceptualmente el mundo mediante entidades y relaciones, a describirlo
lgicamente mediante tablas.
Una vez preparados los atributos de las entidades y relaciones, la
conversin del diagrama E-R al modelo relacional pasa por dos etapas: una
en la que se convierten las entidades, y otra en la que se convierten las
relaciones. No obstante, las tablas que se van obteniendo no adoptan su
forma definitiva hasta que se ha acabado el proceso.
Conversin de entidades a tablas.
Una entidad A con atributos a1...aN se convierte en una tabla de nombre A,
y nombres de columna o atributos a1...aN. Si la clave de la entidad A est
formada por los atributos ai...ai+k, la clave de la tabla correspondiente
estar formada por dichos atributos.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
28
En definitiva, podemos decir que existe una correspondencia directa entre el
concepto de entidad del diagrama E-R (una vez eliminados los atributos
mltiples y los compuestos), y el concepto de tabla relacional.
P.ej., siguiendo con el caso anterior, la entidad ALUMNO se convertira en la
tabla adjunta, en la que no hay ningn dato insertado.
Grfico 14 Entidad Alumno
ALUMNO
CODIGO NOMBRES DIRECCIN TELFONO
Si la entidad es dbil, ser necesario incluir tambin los atributos
correspondientes a su entidad fuerte, indispensables para poder establecer
una clave identificativa en la tabla as formada.
Conversin de relaciones binarias a tablas
Supongamos el ejemplo de un diagrama que nos permite representar las
facturas propias de cualquier negocio. Dado que el nmero de lneas de
detalle de una factura es indeterminado, es necesario crear una relacin
dbil que relacione cada factura con los detalles que en ella se facturan, tal
y como se ve en el diagrama del la figura.
Grfico 15 Esquema E-R de una factura
ALUMNO
Cdigo Nombres
Direccin Telfono
Nmero IVA
Cliente Fecha
FACTURA
NmeroLnea PrecioUnitario
TIENE
Cantidad CdigoArtculo
LNEAS DETALLE
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
29
FACTURA
NMERO FECHA CLIENTE IVA
LNEAS DE DETALLE
NMERO_ FACTURA
NMERO LNEA
CANTIDAD CDIGO ARTCULO
PRECIO UNITARIO
Cuando convertimos las entidades FACTURAS y LNEAS DE DETALLE en sus
tablas correspondientes, obtenemos las de la figura, en la que se observa
quela tabla de LNEAS DE DETALLE hereda los atributos que forman la clave
de FACTURAS.
Con este mtodo est claro cules son las instancias de LNEAS DE
DETALLE que se relacionan con cada Factura concreta, ya que partiendo del
Nmero de la Factura buscamos todas las tuplas de LNEAS DE DETALLE en
las que coincida su atributo Nmero de Factura. Por otro lado, averiguar a
qu Factura pertenece una Lnea de Detalle es trivial, todo caso que se
conoce la clave de dicha Factura a travs de Nmero de Factura.
De esta forma, la relacin dbil Detalle queda representada en el modelo
relacional por la inclusin de la clave de la relacin fuerte en la tabla de la
dbil.
Conversin de relaciones uno a uno
La conversin de una relacin uno a uno, no da lugar a una tabla nueva,
sino que modifica una de las dos tablas correspondientes a las entidades
que relaciona.
Una relacin R del tipo uno a uno con atributos r1...rN que relaciona
entidades A y B de claves ai...ai+k y bj...bj+m, modifica la tabla de la entidad
A, aadindole como atributos los de la clave de B, y los suyos propios, esto
es bj...bj+m y r1...rN.
Por ejemplo, supongamos el diagrama E-R de la figura que representa a
una entidad CLIENTES y a una entidad CASILLEROS DE ROPA, en un
sistema en el que queremos representar parte de un gimnasio, de manera
que un cliente alquila un casillero para guardar su ropa, y un CASILLEROS
DE ROPA slo puede pertenecer como mucho a un CLIENTE. Esta situacin
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
30
se representa mediante la relacin ALQUILA, que en tal caso es del tipo uno
a uno.
Grfico 16 Esquema E-R con relacin uno a uno
Tras convertir las entidades CLIENTES y CASILLEROS DE ROPA en tablas, se
obtienen las de la figura adjunta.
CLIENTE
CDULA NOMBRE APELLIDO DIRECCIN
CASILLERO DE ROPA
NMERO SITUACIN
Si ahora aplicamos la regla dada anteriormente, nos damos cuenta de su
ambigedad, en el sentido de que hace referencia a una entidad A y otra B.
En nuestro caso, da lo mismo cual consideremos como entidad A (si a
CLIENTES o CASILLEROS DE ROPA), ya que el proceso a seguir es idntico
escojamos la que escojamos.
Supongamos que la entidad A es CLIENTES, en tal caso para convertir la
relacin ALQUILA con atributos Fecha alquiler y Duracin, ampliaremos la
tabla de Clientes con la clave de CASILLEROS DE ROPA, o sea Nmero, y los
atributos de la relacin CASILLEROS DE ROPA, dando lugar a la tabla
siguiente.
CLIENTE
CDULA NOMBRE APELLIDO DIRECCIN NMERO FECHA ALQUILER
DURACIN
Cdula Direccin
Apellido Nombre
CLIENTE
Nmero Situacin
ALQUILA
Duracin FechaAlquiler
CASILLERO ROPA
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
31
Como resultado de esta conversin, hemos transformado una tabla
aadindole atributos que permiten seguir la relacin existente entre un
CLIENTE y un CASILLERO DE ROPA. Podemos saber directamente qu
CASILLEROS DE ROPA tiene asignado un CLIENTE sin ms que consultar su
clave, en este caso el atributo Nmero, que, por el hecho de ser clave,
identifica de forma nica una tupla en la tabla de CASILLEROS DE ROPA.
Asimismo, acompaamos la adicin de esta clave con la adicin de los
atributos propios de la relacin, con lo que podemos saber qu CASILLERO
DE ROPA ha alquilado cada CLIENTE, en qu Fecha alquiler y por cunta
Duracin.
Por otro lado, para saber a partir de un Nmero de CASILLERO DE ROPA,
qu CLIENTE la ha alquilado, basta con inspeccionar todas las tuplas de
Clientes en busca de uno cuyo atributo Nmero coincida con el que estamos
buscando.
Por tanto, lo que en el diagrama E-R no era ms que un dibujo que
relacionaba instancias de una entidad, lo hemos convertido en tablas y
atributos insertados en ellas que nos permiten seguir el hilo de las
instancias relacionadas.
Esta operacin, en la que la clave de una tabla emigra a otra, da lugar a
lo que se llama clave fornea, que no es ms que el conjunto de atributos
que conforman la clave migrada.
Conversin de relaciones uno a muchos.
Cuando la relacin que se desea convertir es del tipo uno a muchos, la
solucin es muy parecida a la del punto anterior, y consiste en migrar una
de las claves a la tabla correspondiente a la otra entidad.
Una relacin R del tipo uno a muchos con atributos r1...rN que relaciona
entidades A y B de claves ai...ai+k y bj...bj+m de manera que una instancia de
A se puede relacionar con muchas de B, modifica la tabla de la entidad B,
aadindole como atributos los de la clave de A, y los suyos propios, esto es
ai...ai+k y r1...rN.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
32
Tpico ejemplo de esta situacin es el diagrama E-R que representa la
relacin entre una lista de vuelos comerciales y las compaas areas que
los realizan. Esto puede verse en la figura adjunta.
Grfico 17 Esquema E-R con relacin uno a muchos
Tras haber convertido las entidades en tablas se obtienen las de la figura
siguiente.
COMPAIAS
NOMBRE DIRECCIN NACIONALIDAD
VUELOS
DESCRIPTOR LUGAR DE SALIDA
FECHA DE SALIDA
SITUACIN DESTINO
En esta situacin, para convertir la relacin REALIZAR al modelo relacional,
observamos que una COMPAA se relaciona con muchos VUELOS, por lo
que siguiendo la regla anterior, COMPAA hace las veces de entidad A, y
VUELOS hace las veces de entidad B. Por tanto, para convertir la relacin,
basta con incluir la clave de COMPAAS en la tabla de VUELOS, dando
lugar al siguiente esquema.
COMPAIAS
NOMBRE DIRECCIN NACIONALIDAD
VUELOS
DESCRIPTOR LUGAR DE
SALIDA
FECHA DE
SALIDA
SITUACIN DESTINO NOMBRE
Nombre Direccin
Nacionalidad
COMPAAS
Descriptor Destino
REALIZA VUELOS
FechaDeSalida
LugarDeSalida Situacin
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
33
En este caso, la relacin REALIZAR carece de atributos propios por lo que
no se aaden ms atributos a la tabla de VUELOS.
En este punto es interesante hacer notar que en el diagrama E-R existe la
posibilidad de tener entidades distintas con atributos distintos pero con el
mismo nombre; p.ej., puede ser comn tener la entidad CLIENTES con un
atributo CDULA, y a la vez tener la entidad EMPLEADOS con un atributo
tambin llamado CDULA. Esto es posible porque cuando se hace referencia
a CDULA, es necesario tambin indicar la entidad a que nos referimos:
CLIENTES o EMPLEADOS.
Sin embargo, en el momento de efectuar la conversin del diagrama a las
tablas relacionales, vemos que en ciertas situaciones es necesario migrar
las claves de unas entidades a otras, lo cual puede dar conflictos de
nombres. Por ejemplo, qu ocurrira si el atributo que forma la clave de
VUELOS (destinado a guardar el cdigo del vuelo: IB-713, AV-098, etc.),
en lugar de llamarse Descriptor se llamase Nombre? Est claro que cuando
se migrase la clave de la COMPAA a la tabla de VUELOS habra un
problema, pues tendramos dos atributos con el mismo nombre.
Pues bien, tanto si se produce esa situacin como si no, cuando se migra la
clave de una tabla a otra, nada nos impide renombrar los atributos en su
nueva ubicacin. Por ejemplo, en el caso anterior, la tabla VUELOS podra
haber quedado como se ve en la figura: el atributo Nombre ha pasado a
llamarse Nombre de Compaa.
COMPAIAS
NOMBRE DIRECCIN NACIONALIDAD
VUELOS
DESCRIPTOR LUGAR DE SALIDA
FECHA DE SALIDA
SITUACIN DESTINO NOMBRE DE COMPAA
Lo que s est claro, en cualquier caso, es que el atributo Nombre de
Compaa sigue siendo clave fornea, aunque tenga distinto nombre.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
34
Conversin de relaciones muchos a muchos.
Este es el caso ms general de conversin de relaciones, pudiendo incluso
aplicarse en las relaciones uno a uno y uno a muchos. El nico motivo por el
que no se da esta regla como nica regla general es la eficiencia, ya que
como veremos implica la creacin de tablas nuevas y la duplicacin de
informacin en gran cantidad.
Una relacin R del tipo muchos a muchos con atributos r1...rN que
relaciona entidades A y B de claves ai...ai+k y bj...bj+m respectivamente, se
convierte en una tabla llamada R y compuesta por los atributos de las
claves de A y B, as como por los atributos propios de la relacin R, esto es
ai...ai+k, bj...bj+m, y r1...rN. Los atributos ai...ai+k, bj...bj+m forman la clave de
la nueva tabla.
En el caso de las relaciones muchos a muchos no podemos ampliar ninguna
de las tablas asociadas porque necesitaramos un nmero indeterminado de
claves forneas. Por tanto, la solucin pasa por crear una nueva tabla con el
nico objetivo de contener los pares de instancias que se relacionan;
evidentemente, en lugar de repetir toda la informacin de cada instancia, se
almacena tan slo la informacin identificativa: la clave.
Para ilustrar esto, supongamos que queremos representar la informacin
relativa a los ALUMNOS del colegio y los CLUBES en que se halan
matriculados. El diagrama E-R que representa puede verse en la figura.
Grfico 18 Esquema E-R con relacin muchos a muchos
Dado que la relacin MATRCULAS es muchos a muchos, segn la regla
anterior, la conversin implica crear una nueva tabla con el mismo nombre,
o sea MATRCULAS, y con los atributos Veces Matriculado y Convocatorias
ALUMNO MATRICULA CLUB
Nombre Apellido
Cdula AoNacimiento Cdigo Nombre
VecesMatriculado ConvocatoriasAgotadas
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
35
Agotadas, as como las claves de ALUMNOS y ASIGNATURAS, o sea, Cdula
y Cdigo, que podemos renombrar como Cdula del Alumno y Cdigo de
Club, quedando las tablas de la figura siguiente.
ALUMNOS
CDULA NOMBRE APELLIDO AO DE NACIMIENTO
CLUB
CDIGO NOMBRE
MATRCULA CLUB
CDULA ALUMNO
CDIGO DE CLUB
VECES MATRICULADO
CONVOCATORIAS AGOTADAS
Con este esquema de tablas, para saber en qu CLUBES se ha matriculado
un alumno concreto, basta con buscar todas las veces que parezca su
cdula en la tabla MATRCULAS; cada tupla en la que aparezca contendr
adems la clave de una de los clubes en la que est matriculado.
Para saber el nombre de cada club utilizaremos el Cdigo de club como
clave para buscar el nombre en la tabla CLUBES.
Es interesante hacer notar la necesidad de los atributos asociados a la
relacin, tal y como explicbamos en el captulo de diagramas E-R.
ACTIVIDAD
Investigue cmo se hace la Transformacin de relaciones no binarias a
tablas. Se evaluar: Portada, ndice de contenidos, ndice de grficos (si es
que los hay), calidad de la teora investigada, ejemplos, conclusiones,
recomendaciones y bibliografa.
Recuerde que una buena investigacin implica una buena sustentacin de la
misma.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
36
5. Normalizacin desde el punto de vista del diseo lgico de
una base de datos
5.1 Introduccin Terica
Una vez creadas las tablas en el modelo relacional hay que verificarlas y
revisar si an se puede reducir u optimizar de alguna manera.
Los problemas tales como la redundancia que ocurren cuando se abarrotan
demasiados datos en una sola relacin son llamados anomalas. Los
principales tipos son:
1. Redundancia: la informacin se repite innecesariamente en muchas
tuplas. En la relacin siguiente: ALUMNO, CURSO, PARALELO,
ESPECIALIDAD.
2. Anomalas de actualizacin: cuando al cambiar la informacin en
una tupla se descuida el actualizarla en otra. Si en la relacin
encontramos que la EDAD de David Bustamante es 15 podramos
cambiarlo nicamente para la primer tupla y olvidar actualizar las
dems.
3. Anomalas de eliminacin: si un conjunto de valores llegan a estar
vacos y se llega a perder informacin relacionada como un efecto de
la eliminacin. Si eliminamos la materia CCNN 2, perdemos tambin
la tupla del alumno Polo Garca.
ALUMNOS
ALUMNO CURSO PARALELO EDAD ESPECIALIDAD MATERIA
David Bustamante Dcimo F 14 Bsica Matemticas III
David Bustamante Dcimo F 14 Bsica Computacin III
David Bustamante Dcimo F 14 Bsica Ingls III
Polo Garca Octavo A 12 Bsica CCNN I
Ral Bolaos Noveno B 13 Bsica Ingls II
Ral Bolaos Noveno B 14 Bsica CCSS II
5.2 Dependencia Funcional
En el diseo de esquemas de bases de datos el concepto de dependencia
funcional (functional dependency) es vital para eliminar "redundancia",
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
37
otros factores sera el manejo de dependencias multivaluadas y las
restricciones de integridad referencial.
Como vimos anteriormente, las relaciones pueden usarse como modelos del
mundo real, estos hechos del mundo real implican que no todo conjunto
de tuplas conforman una instancia vlida del esquema de relacin, an
cuando los valores de las tuplas hayan sido tomados de los dominios
correctos. Por ejemplo, si tenemos el esquema:
Alumnos= {Cdigo, Nombre, Edad, Curso}
La siguiente instancia no es vlida:
ALUMNOS
CDIGO NOMBRE EDAD CURSO
1234 David Bustamante 314 Dcimo
5678 Toms Alarcn 15 Primero de Bachillerato
9101 Humberto Lpez 12 Tercero de Bachillerato
1121 Miguel Farfn 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 semntica del dominio. Estas
restricciones surgen de comprender el significado de las componentes de las
tuplas. En el ejemplo anterior, David Bustamante no puede tener 314 aos
y Humberto Lpez no puede estar en Tercero de Bachillerato cuando slo
tiene 12 aos de edad. Conocer estas restricciones no ayudan a lograr un
buen diseo de la base de datos, pero es necesario considerarlas para que
el DBMS chequee los errores que posiblemente ocurrirn en el momento de
cargar los datos.
Restricciones que dependen de la igualdad o desigualdad de
valores. Estas restricciones no dependen de qu valor tiene una tupla en
una componente dada, sino que se basan en que dos tuplas coinciden en
ciertas componentes. En el ejemplo anterior, no puede suceder que Pedro y
Mario Osorio tengan el mismo valor en el campo CDIGO, ms all de cul
9 Restricciones: Es una condicin que obliga el cumplimiento de ciertas condiciones en la bases de datos.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
38
sea ese valor. Estas restricciones se conocen con el nombre de
dependencias. Existen distintos algunos tipos de dependencias: funcionales,
multivaluadas, de inclusin y de producto (join). Cada tipo de dependencia
es un caso particular de la que le sigue.
Si deseamos disponer de mtodos algortmicos eficientes para el diseo de
una base de datos relacional debemos primero estudiar y resolver
problemas relacionados con la manipulacin de dependencias entre los
datos. Por alcance de ste curso analizaremos solamente las dependencias
funcionales.
Entonces qu es la Dependencia funcional?
Una dependencia funcional es una conexin entre uno o ms atributos. Por
ejemplo si conocemos el valor de FechaDeNacimiento podemos conocer el
valor de Edad.
Las dependencias funcionales del sistema se escriben utilizando una flecha,
de la siguiente manera:
FechaDeNacimiento Edad
Aqu a FechaDeNacimiento se le conoce como un determinante. Se puede
leer de dos formas FechaDeNacimiento determina a Edad o Edad es
funcionalmente dependiente de FechaDeNacimiento.
Las dependencias funcionales representan restricciones de la realidad. Por
consiguiente, la nica manera de determinar las dependencias funcionales
que se cumplen en una tabla R es analizando cuidadosamente las
restricciones de la realidad que estamos representando.
Las dependencias funcionales son afirmaciones del mundo real que nos
dicen qu instancias son vlidas para un esquema R.
5.3 Qu es la Normalizacin?
Se puede entender la normalizacin como una serie de reglas que sirven
para ayudar a desarrollar tablas que minimicen los problemas de lgica.
Cada regla est basada en la que le antecede.
-
UNIDAD 2 Lenguaje de Consultas SQL
Colegio Tcnico Salesiano Sistemas Gestores de bases de datos Tercero de Bachillerato Aplicaciones Informticas
39
Una de las ventajas de la normalizacin de base de datos es el consumo de
espacio. Una base de datos normalizada ocupa menos espacio en disco que
una no normalizada. Hay menos repeticin de datos, lo que tiene como
consecuencia un mucho menor uso de espacio en disco.
El proceso de normalizacin tiene un nombre y una serie de reglas para
cada fase. Esto puede parecer un poco confuso al principio, pero poco a
poco se va entendiendo el proceso, as como las razones para hacerlo de
esta manera.
Grados de normalizacin
Existen bsicamente tres niveles de normalizacin: Primera Forma Normal
(1NF), Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada
una de estas