You are on page 1of 48

arceta

grupo editorial

r.

I! TV1!
Ivn Lpez Montalbn
M
Jess Castellano
Prez
John Ospino
Rivas

M
Ap
y
Web

DAW
DAM
y
Bases de Datos Desa
de
Supe
en
Tcnico
arcetagrupoeditorial
Ivn Lpez Montalbn
M3 Jess Castellano Prez
John Ospino Rivas

ISBN: 978-84-9281-291-2
IBERGARCETA PUBLICACIONES,S.L., Madrid 2011

Edicin: 1.
Impresin: 3.
N. de pginas: 328
Formato: 20 x 26 cm

Reservados los derechos para todos los pases de lengua espaola. De conformidad con lo dispuesto en el artculo 270 y siguientes del
cdigo penal vigente, podrn ser castigados con penas de multa y privacin de libertad quienes reprodujeren o plagiaren, en todo o en
parte, una obra literaria, artstica o cientca fijada en cualquier tipo de soporte sin la preceptiva autorizacin. Ninguna parte de esta
publicacin, incluido el diseo de la cubierta, puede ser reproducida, almacenada o trasmitida de ninguna forma, ni por ningn medio,
sea ste electrnico, qumico, mecnico, electro-ptico, grabacin, fotocopia o cualquier otro, sin la previa autorizacin escrita por parte
de la editorial.

Dirjase a CEDRO (Centro Espaol de Derechos Reprogrcos), www.cedro.org, si necesita fotocopiar o escanear algn fragmento de esta
obra.

COPYRIGHT 2011 IBERGARCETA PUBLICACIONES, S.L.


info@garceta.es

Bases de Datos

Ivn Lpez Montalbn, Ma Jess Castellano Prez, John Ospino Rivas

1. edicin, 3. impresin
OI: 0078/2012
ISBN: 978-84-9281-291-2
Deposito Legal: M-33366-2011
Imagen de cubiertazpisotskii fotoIia.com

Impresin:

PRINT
HOUSE,registrada
marcaCopiar,
deA. S.

IMPRESO EN ESPAA -PRINTED IN SPAIN

Nota sobre enlaces a pginas web ajenas: Este libro puede incluir referencias a sitios web gestionados por terceros y ajenos a IBERGAR-
CETA PUBLICACIONES,S.L., que se incluyen slo con nalidad informativa. IBERGARCETA PUBLICACIONES,S.L., no asume ningn tipo
de responsabilidad por los daos y perjuicios derivados del uso de los datos personales que pueda hacer un tercero encargado del man-
tenimiento de las pginas web ajenas a IBERGARCETA PUBLICACIONES, S.L., y del funcionamiento, accesibilidad y mantenimiento de
los sitios web no gestionados por IBERGARCETA PUBLICACIONES,S.L., directamente. Las referencias se proporcionan en el estado en
que se encuentran en el momento de publicacin sin garantas, expresas o implcitas, sobre la informacin que se proporcione en ellas.
PRLOGO

Este libro est concebido para formar estudiantes de los ciclos de grado su-
perior DAM (Desarrollo de Aplicaciones Multiplataforma) yDAW (Desarrollo de
Aplicaciones Web). Ms concrementamente, est pensado para cubrir la unidad de
competencia UC0026_3, programar bases de datos relacionales mediante el mdulo
Base de datos comn a ambos ciclos formativos.

Desde nuestra experiencia como administradores de bases de datos en empre-


sas multinacionales,como profesoresde educacinsecundaria (Informtica)y como
profesores asociadosde universidad, hemos compuesto esta herramienta complemen-
taria a las clases del mdulo de formacin profesional e indispensable para lectores
independientes que quieran convertirse en programadores de bases de datos.

El contenido del libro tiene una orientacin puramente prctica, con actividades,
consejos y ejercicios resueltos en Access, MySQL, Oracle y DB2, que facilitan al
profesor del mdulo su completo seguimiento.

El objetivo del libro no es ser una gua de referencia de un solo SGBD, sino la for-
macin de programadores de bases de datos actualizados, verstiles y competentes.

Existe multitud de material disponible para la realizacin de las prcticas pro-


puestas en el blog bbdd-garceta.blogspot . com.
ndice general
1. Los sistemas de almacenamiento de la informacin

1.1. Ficheros

1.1.1. de
Tipos
cheros
y formatos
.. . .. . . . . .. . .. . . . . .
1.1.2. Ficheros de texto
1.1.3. Ficheros binarios
1.2. Bases de Datos
1.2.1. Conceptos . . . . . . . . . . . .. . .. . . . .. . . . . . . . .
1.2.2. Estructura de una base de datos . . . . .. .. . . .. . . . . .
1.2.3. Usos de las bases de datos
1.2.4. Evolucin y tipos de base de datos
1.3. Los Sistemas Gestores de Base de Datos
1.3.1. Concepto de Sistema Gestor de Base de Datos .. .. . .. . .
1.3.2. Funciones de un SGBD . . .. . .. . .. . .. .. . .. . . . .
1.3.3. El lenguaje SQL
1.3.4. Tipos de SGBD . . . . . . . . .. . . . . .. . . . . . . . .. .

1.4. Prcticas Resueltas


Prcticas Propuestas . . . . . ..
Resumen . ..
. . ..

. . . . . . . ..
. . . . . ..
. ..
. . . ..
Test de repaso . .. .. . .. . .. . . . .. . . . .. . . ..
Comprueba tu aprendizaje . .. . . . .. .. . .. . . . ..
. . . . . ..
. . . . . ..
. . . .. . ..
..
. ..
..
. ..
..
..
. . . . .
. . ..
.. ..
.. . . . .
. .. . . .
.
.

1.5.

1.6.
Bases de Datos

2.4.1. Generalizacin y Especializacin . . . . . .. . . .. . . . . . .59


2.5. Construccin de un diagrama E/ R . . .. . .. . .. . . . . . . . .. 62
2.6. El modelo relacional . . . .. . . . .. . .. . .. . . . . . . . . .. .64
2.6.1. Las relaciones en el modelo relacional . . . . . . . .. . . .. .65
2.6.2. Otros conceptos del modelo relacional . . .. . .. .. . . . .. 65
2.7. Transformacin de un diagrama E/ R al modelo relacional . . . . . . .67
2.8. Normalizacin . . .. . . . .. .. . . . . .. . . .. . .. . . . . . . .73
2.9. Prcticas Resueltas . . . .. .. . . . . .. . . . . . .. . . . . .. .. 77
2.10. Prcticas Propuestas . .. . . .. . . . .. . . . .. . .. . .. . . . .81
2.11. Resumen . . . . .. . .. . .. . . .. . . .. .. .. . .. . . .. . . .88
2.12. Test de repaso . . . . . .. . . . . . . . . . . . . . . . .. . . .. . .. 89
2.13. Comprueba tu aprendizaje .. . . . . . . . . . . . . . . . . . . . . . .90

3. Diseo fsico relacional 91


3.1. Notacin para la sintaxis . . . .. . . .. . . . . .. . .. . . .. . . .92
3.2. Herramientas grcas proporcionadas por los SGBD . . .. . . .. . .93
3.2.1. PhpMyAdmin de MySQL .. . . .. . . . .. . . . .. . . . .93
3.2.2. Oracle Enterprise Manager yGrid Control . .. . . . . .. . .94
3.2.3. DB2 Data Studio . .. . . . . . . . . . . . . . . .. . . . . . .96
3.3. Intrpretes de comandos de los SGBD . .. . . . .. . . . . .. . .. .97
3.3.1. MySQL: El cliente de MySQL-Server .. . . . . . . .. .. . .98
3.3.2. Ejecucin de consultas en MySQL .. . . . . . . . . . .. . . .99
3.3.3. SQL*Plus: El intrprete de comandos de Oracle . . . . . .. . 102
3.3.4. Ejecucin de consultas en SQL*Plus .. .. . .. .. . . . . .103
3.4. El lenguaje de denicin de datos . .. . .. . . . . . . . .. . . . . .104
3.5. Creacin de bases de datos . . . . . .. . .. .. . . . . . . .. . . . .105
3.5.1. Creacin de bases de datos en MySQL . .. . .. . . . . . . .105
3.5.2. Creacin de bases de datos en Oracle . . .. . . .. . . . . .. 107
3.6. Modicacin de una base de datos . . . . . . .. . . .. . .. .. . . .110
3.7. Borrado de bases de datos . .. . .. .. .. .. .. .. . . .. . . . .111
3.8. Creacin de tablas . . .. . . .. . . . . . .. . .. . .. . . .. . . .111
3.8.1. Implementacin de restricciones . . . . . .. . . . . . . . . . .113
3.8.2. Tipos de Datos . . . . . .. . . .. . . . . . . . .. . . . . .. 116
3.8.3. Caractersticas de la creacin de tablas para MySQL . .. . .117
3.8.4. Caractersticas de la creacin de tablas para Oracle . .. . . .118
3.8.5. Consulta de las tablas de una base de datos . . . . . . . . . .119
3.8.6. Consulta de la estructura de una tabla .. . . . .. .. . .. .119
3.9. Modicacin de tablas . . . . .. .. . . . . . . . . . . .. .. . . .. 120
3.10. Borrado de tablas . . . . . .. . . . . . . . . .. . . . . . . . .. . . .122
3.11. Renombrado de tablas . . . . . . . . . . . . . .. . . .. .. . . . . .122
3.12. Prcticas Resueltas . . . . . .. . .. . . . . . . .. . .. . .. . .. .123

VIII
ndice general

3.13. Prcticas Propuestas .. . . . .. . .. . .. . . . .. . .. . . .. . .128


3.14. Resumen . . . . . .. . .. .. . . . .. . . . . . . . . . .. .. . .. .130
3.15. Test de repaso .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .131
3.16. Comprueba tu aprendizaje . .. . . . . . . . .. . . . . . . . . .. . . 132

. Realizacin de Consultas 133


4.1. El lenguaje DML . .. . . . . . . .. . .. . . . . . .. . . .. . . .. 134
4.2. La sentencia SELECT . . . . . .. . .. . . .. . .. . . . .. . . . .134
4.3. Consultas bsicas .. . .. . .. .. . . . . . .. . .. . . . . . . . . .135
4.4. Filtros . . . . . . . . . .. . . .. . . . . . . . .. . .. . . .. . . . .137
4.4.1. Expresiones para ltros . .. .. . . . .. . . . .. . . . .. . .138
4.4.2. Construccin de ltros . . . . . . . .. . . . . . . .. . . . . .140
4.4.3. Filtros con operador de pertenencia a conjuntos . . . . . .. .141
4.4.4. Filtros con operador de rango . .. . . . . . . .. . . . .. . .142
4.4.5. Filtros con test de valor nulo . .. . . . . . .. .. . .. . .. . 143
4.4.6. Filtros con test de patrn . . . .. . . . . . . . . . . . . . . .143
4.4.7. Filtros por lmite de nmero de registros . . . . . . .. . . . .144
4.5. Ordenacin . .. . . .. . . . . . . .. .. . .. .. .. .. . . . . . .145
4.6. Consultas de resumen . . . . .. . . .. .. . . . . . . . .. . . . . . .147
4.6.1. Filtros de Grupos . . . .. .. . . .. . . . . . . .. .. . . . .151
4.7. Subconsultas . . . . .. . . .. . . .. . .. . . .. . . . . .. . .. .152
4.7.1. Test de Comparacin . . .. . . . .. .. . . . .. . . .. . . .153
4.7.2. Test de pertenencia a conjunto .. . .. . .. . . . .. . . . .154
4.7.3. Test de existencia .. .. . .. .. .. . . . . . .. . . . . . . .154
4.7.4. Test cuanticados ALL y ANY . . . . . . . . . . . . . . . . .156
4.7.5. Subconsultas anidadas . . . .. . . . . .. . . . . . . . . . . .157
4.8. Consultas multitabla . .. . . . . . . . . .. .. . . . . . . . . . . . .158
4.8.1. Consultas multitabla SQL 1 . . . . .. . . . . . .. . . . . . .159
4.8.2. Consultas multitabla SQL 2 . . .. . . . . .. .. . . . . .. .162
4.9. Consultas reexivas . . .. . .. . .. . .. . . . . . . . . . . . . .. .169
4.10. Consultas con tablas derivadas . .. .. . . . . .. . . . . .. .. . .. 170
4.11. Prcticas Resueltas . .. . . . . . . . . . .. .. . . . .. .. . . . . .172
4.12. Prcticas Propuestas . . . . .. .. . . .. . . . . . . . . . . . .. . .176
4.13. Resumen . . . . . . . . .. . . . . .. . .. . . . . .. . . . . . .. . .182
4.14. Test de repaso .. . .. .. . . . . . .. . . . . . . . . . .. .. . .. . 183
4.15. Comprueba tu aprendizaje . . . .. . .. . .. . . . .. . . . .. . . .184

.Tratamiento de los datos 185


5.1. Herramientas grcas para la edicin de los datos . . . . .. . . . . .186
5.1.1. Edicin con phpMyAdmin .. .. . . . .. . . . . .. . .. .. 186
5.1.2. Access como entorno grco para otros gestores . . . .. . .. 187

IX
Bases de Datos

5.2. La sentencia INSERT . . . . . . . .. . . . .. . .. . . . .. . . . . .189


5.3. La sentencia INSERT extendida . . . . .. . . . . . .. .. .. . .. . 191
5.4. INSERT y SELECT .. . . . .. . .. . . . .. . .. .. . .. .. . .191
5.5. La sentencia UPDATE . .. .. . . . .. . . . . . .. . .. . .. .. .192
5.6. La sentencia DELETE .. . . . .. . .. .. . .. . . . . . . . .. .. 193
5.7. La sentencias UPDATE yDELETE con subconsultas . . . .. .. . .193
5.8. Borrado y modicacin de registros con relaciones . . .. .. . . .. .194
5.9. Transacciones . . . . . . . . . . .. . . . . . . . . .. . . . . . .. . .197
5.10. Acceso concurrente a los datos . . . . .. . .. . . . . .. . .. . . . .198
5.10.1. Ejemplo de problemas en el acceso concurrente . . . . . . . . .200
5.11. El acceso a la informacin . . . . . .. . .. . . . . .. . . . . . . . .203
5.12. Las vistas . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . .203
5.13. Los usuarios . . . . . .. .. . . . . . .. .. .. . . . . . . .. . . . .205
5.14. Los privilegios . . . . . . .. .. .. . . . . . . .. . . .. . . . . . . .207
5.14.1. El sistema de privilegios de l\'IySQL
.. .. . .. . . . . . . . .208
5.14.2. El sistema de privilegios de Oracle .. . .. . . . .. . . . . .212
5.14.3. El sistema de privilegios de DB2 .. . .. . . . . .. .. .. .. 219
5.15. Prcticas Resueltas . . . . .. .. . . .. . . .. . . . . .. . . . .. .221
5.16. Prcticas Propuestas . .. .. . . . . . . . . . . .. . . . . . . . . . .223
5.17. Resumen . .. . .. .. . . . .. .. .. . .. .. .. . . .. . . .. .. 228
5.18. Test de repaso . . . . . .. . . . . . . . . . .. . . .. .. . .. . . .. 229
5.19. Comprueba tu aprendizaje . .. .. . . .. . . .. . .. . . . . . .. . 230

6. Programacin de bases de datos 231


6.1. Introduccin a la programacin de bases de datos .. .. . . . .. .. 232
6.2. Los lenguajes de programacin de bases de datos . . . . . .. . .. .235
6.3. Tipos de datos, identicadores y variables . . . . .. . . .. . . . . .240
6.4. Operadores y expresiones . .. . . . . . . . . . . . . . .. . .. .. . .243
6.5. Estructuras de control . . .. .. . . . . . . . . . . . .. . . . . . . .245
6.5.1. IF..THEN-ELSIF..THENELSE-END IF . .. . . . . . . . . .245
6.5.2. CASE-WHENTHEN-ELSE-END CASE . .. .. . . .. . . .246
6.5.3. LOOP-EXIT WHEN-END LOOP .. .. . .. . . .. . .. .. 247
6.5.4. WHILE..LOOP-END LOOP . . .. . .. . . .. . .. . . . . .248
6.5.5. FOR..IN..LOOP-END LOOP . . .. . . . .. . . . . . . . . .248
6.6. Gestin de errores . . . . . . .. .. .. . . . . . . .. .. . . .. . .. 251
6.7. Transacciones en scripts . . . . . . . . . . . . . . .. .. . .. . . . .253
6.8. Las secuencias . . . . . .. .. .. .. . .. . . . .. . . . . . . .. . .257
6.9. Prcticas Resueltas . . . .. . . .. .. .. . .. . .. . . . . . . . . .258
6.10. Prcticas Propuestas . . . . . . . .. .. . . . .. . .. . . . . .. . .262
6.11. Resumen .. .. .. . . . . . . .. .. .. . . .. . . . . . . .. .. . . 264
6.12. Test de repaso . . . .. . . . . .. . . . . . . . . . . . . . .. .. . . .265
ndice general

6.13. Comprueba tu aprendizaje .. .. . . . . . .. . .. .. . .. . .. .. 266

.BBDD distribuidas 267


7.1. BBDD y SGBD distribuidos . . . . .. . .. . . . . . . . . . . . .. .268
7.1.1. Componentes de una BBDD distribuida .. .. . .. . . . . .268
7.2. Tcnicas de fragmentacin .. . . . . .. . .. .. . . . . . .. . . . .270
7.3. Consultas distribuidas . .. .. . . . . . . .. . .. .. .. . . . .. .271
7.3.1. DB Links . . . .. .. .. .. .. . .. . . .. .. . . . .. . .271
7.3.2. Ejecucin de consultas distribuidas . .. .. .. . . . . .. . .273
7.4. Transacciones distribuidas . . . . .. . . .. . .. . . . . .. . . . . .275
7.4.1. TWO-PHASE COMMIT . .. . . .. . . . . .. . . . . . . .. 276
7.4.2. Ejemplo de transaccin distribuida . . . . . . . . . . . . . . .277
7.5. Optimizacin de consultas sobre bases de datos distribuidas . . . .. 280
7.5.1. Optimizacin mediante consultas derivadas .. . . . . . .. .. 280
7.5.2. Optimizacin mediante hints . . .. .. . . . . . . . . . .. . .281
7.6. Prcticas Resueltas . .. . . . . .. .. . .. . . . .. .. .. . .. . .283
7.7. Prcticas propuestas .. . . .. . . .. . . .. . . .. . . .. . . . . . 286
7.8. Resumen . . . . . . . . . . . . . . .. . . . . . .. . .. . . . . . . ..289
7.9. Test de repaso . . . . . . .. .. . . . . . . . . . . . . . . . . . . .. .290
7.10. Comprueba tu aprendizaje . . . . . . . .. . .. .. . . . . . . .. .. 291

.BBDD Objeto-Relacionales 293


8.1. Las Bases de datos objetos-relacionales . . .. . .. . . . . . .. . . . 294
8.2. Los atributos multivaluados .. . .. . .. .. . .. . . . .. . . . . .294
8.2.1. Las colecciones . . . . . . . . . . . . . . . . . . . . . . . . . .295
8.2.2. Tablas anidadas .. . . . . .. . . . . . . . .. . . . . . . .. .296
8.2.3. Tipos de Objeto .. .. . . . . .. . . . . . .. . . . .. . . . .298
8.3. Los identicadores de objeto .. . . . .. . .. . . .. . . . .. . . . .300
8.4. Los mtodos . . .. .. .. .. .. . . .. . .. . . . . . . . . . . . . .301
8.5. La herencia . .. . . .. .. .. . . . .. . . .. . . . . . . . . . .. .304
8.6. Operaciones DML .. .. .. . . . .. .. . .. . . . . . . .. . . . . .306
8.7. Las referencias . . . .. .. . . .. . . .. . . . . . . . . . . . . . . . .307
8.8. Prcticas Resueltas . . .. . . . . . . .. . .. .. . .. . . .. .. . . 309
8.9. Prcticas Propuestas .. .. . . .. . . . .. . . .. . . .. . .. .. . 312
8.10. Resumen . . .. .. . . . . .. . .. .. . .. . . .. .. . . .. .. .. 314
8.11. Test de repaso . . . . . . . .. . . . . . . . . .. . . . . . . .. . . . .315
8.12. Comprueba tu aprendizaje .. . . . .. . . .. . . . . . . . . . . .. . 316

XI
CAPTULO 1

Los sistemas de almacenamiento


de la informacin

Objetivos
W
Analizar los sistemas lgicos de
almacenamiento V sus carac-
.tersticas
Contenidos

Identicar los distintos tipos de


Ficheros.Tipos yformatos bases de datos
n? Bases de datos. Conceptos.
. Reconocer la utilidad de un sis-
usos y tipos
tema gestor de base de datos
n? Sistemas gestores de bases de
Describir la funcin de los ele-
datos
mentos de un sistema gestor de
base de datos

Clasicar los sistemas gestores


de bases de datos

Este captulo introduce conceptos sencillos e intuitivos para establecer una


cultura bsica de bases de datos, y poder, de este modo, avanzar a objeti-
vos ms avanzados. E1 estudiante, a modo introductorio, manejar, de forma
muy visual, conceptos tales como tablas yrelaciones. De esta manera, afron-
tar captulos prximos con ms experiencia, yentender yasimilar mejor el
diseo lgico ysico de las bases de datos.
Bases de Datos

1. 1. Ficheros

Un ordenador almacena muchos tipos de informacin, desde datos administrati-


vos, contables o bancarios hasta msica, pelculas, partidas de videojuegos, pginas
webs, etc. Toda esta informacin est almacenada en los dispositivos de almace-
namiento del ordenador, esto es, discos duros, dvds, pen drives, etc. Para poder
organizar la informacin en estos dispositivos, se utilizan los cheros o archivos.
Los cheros son estructuras de informacin que crean los sistemas operativos de los
ordenadores para poder almacenar datos. Suelen tener un nombre y una extensin,
que determina el formato de la informacin que contiene.

1.1.1. Tipos de cheros yformatos


El formato y tipo de chero determina la forma de interpretar la informacin
que contiene, ya que, en denitiva, lo nico que se almacena en un chero es una
ristra de bits (ceros y unos), de forma que esnecesaria suinterpretacin para dar
sentido a la informacin que almacena. As, por ejemplo, para almacenar una imagen
en un ordenador, se puede usar un chero binario bmp, que almacena un vector de
datos con los colores que tiene cada pixel que forma la imagen. Adems, la imagen
posee una paleta de colores y unas dimensiones, informacin que tambin hay que
almacenar en el chero. Todos estos datos se ordenan segn un formato, y el sistema
operativo, o la utilidad que trate los grcos, debe conocer este formato para poder
extraer los pxeles y mostrarlos por pantalla en la forma y dimensiones correctas. Si
se abre el graco con una utilidad como el bloc de notas, que solo sabe interpretar
texto, el resultado ser ilegible e incomprensible.

<> Actividad 1.1: Busca en tu ordenador unchero con extensin doc(del pro-
cesador detextos Microsoft Word), y brelo con el bloc de notas, pulsando con el
ratn derecho sobre el y seleccionando la opcin Abrir con. Observa que el bloc de
notas no conoce el formato del chero tipo doc, y por tanto, no sabe interpretar el
contenido del chero, cosa que s hace la aplicacin de Microsoft.

Tradicionalmente, los cheros se han clasicado de muchas formas, segn su conte-


nido (texto o binario), segn suorganizacin (secuencial,
directa, indexada)o segn
su utilidad (maestros, histricos,movimientos).

El contenido de un chero puede ser tratado como texto, o como datos binarios,
es decir, los bits almacenados en un chero pueden ser traducidos por el sistema
operativo a caracteres alfabticos y nmeros que entiende el ser humano, o pueden
Captulo 1. Los sistemas de almacenamiento de Ia informacin

ser tratados como componentes de estructuras de datos ms complejas, como cheros


que almacenan sonido, vdeo, imgenes, etc.

La organizacin de un chero dicta la forma en que se han de accedera los datos,


as, los datos de un chero con organizacin secuencial, estn dispuestos siguiendo
una secuencia ordenada, es decir, unos detrs de otros. Se caracterizan por tener
que recorrer todos los datos anteriores para llegar a uno en concreto. Los cheros
de organizacin directa, permiten acceder a un dato en concreto sin necesidad de
acceder a todos los anteriores. Finalmente, los de organizacin indexada acceden
a los datos consultando un ndice, es decir, una estructura de datos que permite
acceder a la informacin rpidamente, simulando la forma en que el ndice de un
libro facilita el acceso a sus contenidos. Existen tambin variantes de las anteriores
que mezclan las mejores caractersticas de cada una de ellas.

Por otro lado, la utilidad de un chero indica qu uso se va a hacer de l, por


ejemplo, puede contener datos fundamentales para una organizacin, como los datos
de los clientes, que se almacenan en un chero principal llamada maestro. Si hay
variaciones (altas, modicaciones o bajas de clientes) en los cheros maestros, se
almacenan en los llamados cheros de movimientos que posteriormente se enfrentan
con los maestros para incorporar las modicaciones. Finalmente, cuando existen
datos que ya no son necesarios para su proceso diario pasan a formar parte de los
cheros histricos.

Hoy en da, estas dos ltimas clasicaciones han quedado en desuso. Por ejemplo,
desde la aparicin de las bases de datos modernas, ya no se clasican segn su
utilidad u organizacin.
Actualmente un sistema opera.tivo trata. un chero desde dos puntos de vista:

1. Segnsu contenido(texto o datos binarios)

2. Segn su tipo (imgenes, ejecutables, clips de videos, etc.)

1.1.2. Ficheros de texto

Los cheros de texto suelen llamarse tambin cheros planos o cheros ascii. El
vocablo ascii es un acrnimo de American Standard Code for Information Inter-
change. Es un estndar que asigna un valor numrico a cada carcter, con lo que se
pueden representar los documentos llamados de Texto Plano, es decir, los que son
directamente legibles por seres humanos.
Bases de Datos

La asignacin de valores numricos a caracteres viene dada por la famosa tabla


de cdigos ascii, que es la ms extendida, aunque existen otras. Se caracteriza por
utilizar 1 byte para la representacin de cada carcter. Con x bits se pueden generar
2 combinaciones distintas de caracteres, ycomo 1 byte =8 bits, existen 28 =256
caracteres en la tabla de cdigos ascii, numerados del 0 al 255.

<> Actividad 1.22 Conctatea Internet,y buscauna tablade cdigosascii de8


bits. Observa las siguientes caractersticas:
- Los 32 primeros caracteres, sellaman caracteres no imprimibles y se utilizaban
tradicionalmente para el control de transmisiones.

ILa distancia entre maysculas y minsculas es exactamente 32 caracteres.

n Hay caracteres que son numricos, y cuyo valor ascii es el resultado de sumarle
48. Por ejemplo, 6+48=54. 54 es el cdigo ascii del carcter 6.

Algunos alfabetos, como el katakana japons utilizan ms de 256 caracteres. En


estos casos,se requieren las tablas de caracteres unicode, que reservan dos bytes para
cada carcter.

o Actividad 1.32 Conctatea http://mm.unicode.org/charts/ y descrgate


las tablasde cdigosLatin (alfabeto latino) y Katakana (alfabeto japons).Observa
las siguientes curiosidades:
n La tabla de cdigos Latin ,es exactamente idntica a la tabla de cdigos ascii
de 8 bits, solo que los bits del primer byte unicode, estn todos a 0.

ILa tablas de cdigos Latin y Katakana tienen mltiples extensiones, como


Katakana Phonetic Extensions o Latin Extended Additional.

Los cheros de texto, aunque no necesitan un formato para. ser interpretado,


suelen tener extensiones para conocer qu tipo de texto se halla dentro del chero,
por ejemplo:
- Ficheros de conguracin: Son cheros cuyo contenido es texto sobre con-
guraciones del sistema operativo o de alguna aplicacin. Estos pueden tener
extensin .ini, .inf ,.conf
Captulo 1. Los sistemas de almacenamiento de la informacin

IFicheros de cdigo fuente: Su contenido es texto con programas informticos.


Ejemplos: sql, .c, .java

n Ficherosde pginasweb: Laspginas websson cheros de texto con hipertexto


que interpreta el navegador. html, php, .css, .xml

n Formatos enriquecidos: Son textos que contienen cdigos de control para ofre-
cer una visin del texto ms elegante: .rtf, .ps ,.tex

Sabas que .. . 7XML es un lenguaje estndar


para el intercambio de
datos entre aplicaciones informticas. Se estn desarrollando actualmente las
llamadas bases de datos nativas XML. cuyo foco principal es el aI1nacenamien-
to de documentos de texto con cdigo en XML. y no las relaciones entre la
informacin, como sucede conlas basesde datos relacionales que se estudian en
el presente libro. Por ejemplo, DB2 incorpora dentro de su motor una nueva ca-
racterstica que potencia el XML: XQuery, esto es, un lenguaje innovador para
hacer consultas directamente sobre documentos XML guardados directamente
en la base de datos.

1.1.3. Ficheros binarios

Los cheros binarios son todos los que no son de texto, y requieren un formato
para ser interpretado. A continuacin se muestran algunos tipos de formatos de
cheros binarios:

IDe imagen: jpg, gif, .tiff, .bmp, .wmf, .png, .pcx; entre muchos otros

n De vdeo: .mpg, .mov, .avi, .qt

IComprimidos o empaquetados: .zip. .Z, .gz, tar, .lhz

IEjecutables o compilados: exe. .com, .cgi, .0, .a

IProcesadores de textos: .doc, .odt

lEl hipertexto es una forma de escritura no secuencial, conbifurcaciones, quepermite que el


lector elija qu secuencia seguir yque es presentado en una pantalla interactiva para facilitar la
navegacin.
Bases de Datos

Generalmente los cheros que componen una base de datos son de tipo binario,
puesto que la informacin que hay almacenada en ellos debe tener una estructura
lgica y organizada para que las aplicaciones puedan acceder aella de manera univer-
sal, esto es, siguiendo un estndar. Esta estructura. lgica y organizada, generalmente
es muy difcil de expresar mediante cheros de texto, por tanto, la informacin de
una base de datos se suele guardar en uno o varios cheros:

u El software de gestin de base de datos Oracle guarda la informacin en mlti-


ples tipos de cheros, llamados datales, temples, logles, etc.

IUn tipo de tablas del gestor l\iI;vSQL guarda su informacin en 3 cheros de


datos binarios, con extensin frm, myd y myi.

n Access guarda toda la informacin de una base de datos con extensin mdb.

<> Actividad 1.4: La siguiente imagen


es unacaptura deuna carpetaen elsistema
operativo Windows 7. Indica qu tipo de chero es cada uno de ellos y qu contiene.
HcmL-re Fecha de nmzhwcecicn Tnpc Tamahc

E Battlestar Galactica-lxLavi 3-322v]? "LJ hp de dee 6&#39; lu112i


-4

11

"n

o_.
__
(omojnstalantxt
i- DSCN0776JPG l
v.. q
1 t n1a
5&#39; eclipseexe If L
__
eclipseini
c:

t.

.-- img_xp_sp3.iso
_lcencia_windows.bct
,4 IJ -
V

(r
Captulo 1. Los sistemas de almacenamiento de la informacin

de forma ordenada y coherente (sincontradicciones). Cadauna de estas tablas es


una estructura que se parece a las hojas de clculo, pues est dispuesta mediante
las y columnas. De este modo, cada la almacena un registro con tantos campos
como columnas tenga la tabla. Por ejemplo, se podra tener una tabla de Empleados,
donde cada la o registro es un empleado de la empresa y cada columna o campo
representa un trozo discreto de informacin sobre cada empleado, por ejemplo el
nombre o el nmero de telfono.

jmpliidv - - Y
CodngoEmple v Nombre v Apellidol v Apellndoz v Extension v Email v codugoo :
1 Marcos
Magaa Perez
2Ruben
3897 marcos@jardnneria.es
TAL-ES
4
Lpez Martinez 2899
rlopez@jardmeria.es TAL-ES
3Alberto Soria Carrasco 2837 asoria@}ardineria.es TAL-ES _
4Maria Sols Jerez 2847 msolis@jardineria.es TAL-ES E
5 Felipe Rosas Marquez 2844 frosas@jardineria.es TAL-ESl
6 JuanCarlos 0m: Serrano 2845 cortiz@jardnnerua.es TAL-ES l
7Carlos Soria Jimenez 2444
csorxa@jardmeria.es MAD-ES
x
8 Mariano Lpez Murcia 2442 mlopezcenardmenaes rvlAD-ES
9 Lucio Campoamor Mann 2442 lcampoamorczjardineriaes MAD-ES
10 Hilario Rodriguez Huertas 2444 hrodrlguez@jardineria.es MAD-ES
11 Emmanuel Magaa Perez 2518 manu@ardinena.es BCN-ES
12 JosManuel Martinez De laOsa 2519
mmanhotmarles BCN-ES
13 David Dalma Aceituno 2519
dpalma@jardneria.es BCN-ES
14
Oscar Palma Aceituno 7519 opalma@jardineria.es BCN-ES
15 Francois Fugnon 9981
ffignonQgardeningxom PAR-FR
16
Lionel Narvaez 9982
lnarvaez@gardening.com PAR-FR
17 Laurent Serra 9982
lserra@gardening.com PAR-FR
18 Michael Bolton 7454 mboltoncagardeningmom SFC-USA
___ ___19 W_a|_e_r_ Santuag
Sanchez Lopez 7454 wssanchez@gardenlng.com SFC-USAv
Registro:
H 446231 P N P -Buscar 4 m
l I

Figura 1.1: Ejemplo de tabla en Microsoft Access.

1.2.1. Conceptos
Uno de los grandes problemas al que seenfrentan los informticos cuando comien-
zan su aprendizaje, es el gran nmero de trminos desconocidos que debe asimilar,
incluyendo el enorme nmero de sinnimos y siglas que se utilizan para nombrar la
misma cosa. Tratando, a modo de resumen, de aclarar algunos de lo componentes
que se pueden encontrar en una base de datos, y que se vern en prximos captulos,
se denen los siguientes conceptos:

Dato: El dato es un trozo de informacin concreta sobre algn concepto o suceso.


Por ejemplo, 1996 es un nmero que representa un ao de nacimiento de una
persona. Los datos se caracterizan por pertenecer a un tipo.

Tipo de Dato: El tipo de dato indica la naturaleza del campo. As, se puede te-
ner datos numricos, que son aquellos con los que se pueden realizar clculos
aritmticos (sumas,restas, multiplicaciones.. .) y los datos alfanumricos,que

7
Bases de Datos

son los que contienen caracteres alfabticos y dgitos numricos. Estos datos al-
fanumricos ynumricos se pueden combinar para obtener tipos de datos ms
elaborados. Por ejemplo, el tipo de dato Fecha contiene tres datos numricos,
representando el da, el mes y el ao de esa fecha.

Campo: Un campo es un identicador para toda una familia de datos. Cada campo
pertenece a un tipo de datos. Por ejemplo, el campo F echaNacimiento repre-
senta las fechas de nacimiento de las personas que hay en la tabla. Este campo
pertenece al tipo de dato Fecha. Al campo tambin se le llama columna.

Registro: Es una recoleccin de datos referentes a un mismo concepto o suceso.


Por ejemplo, los datos de una persona pueden ser su NIF, ao de nacimiento,
su nombre, su direccin, etc. A los registros tambin se les llama tuplas o las.

Campo Clave: Es un campo especial que identica de forma nica a cada registro.
As, el NIF es nico para cada persona, por tanto es campo clave. Hay varios
tipos de campos clave como se explicar en la. seccin 2.6.2.

Tabla: Es un conjunto de registros bajo un mismo nombre que representa el con-


junto de todos ellos. Por ejemplo, todos los clientes de una base de datos se
almacenan en una tabla cuyo nombre es Clientes.

Consulta: Es una instruccin para hacer peticiones a una base de datos. Puede ser
una bsqueda simple de un registro especico o una solicitud para seleccionar
todos los registros que satisfagan un conjunto de criterios. Aunque en cas-
tellano, consulta tiene un signicado de extraccin de informacin, en ingls
query, una consulta es una peticin, por tanto, adems de las consultas de
bsqueda de informacin, que devuelven los campos y registros solicitados,
hay consultas (peticiones) deeliminacin o insercin deregistros, de actuali-
zacin de registros, cuya ejecucin altera los valores de los mismos.

ndice: Es una estructuraque almacena


los camposclave deuna tabla,orga-
nizndolos para hacer ms fcil encontrar y ordenar los registros de esa tabla.
El ndice tiene un funcionamiento similar al ndice de un libro, guardando pa-
rejas de elementos: el elemento que se desea indexar y su posicin en la base
de datos. Para buscar un elemento que est indexado, solo hay que buscar en
el ndice de dicho elemento para, una vez encontrado, devolver el registro que
se encuentre en la posicin marcada por el ndice.

Vista: Es una transformacin que se hace a una o ms tablas para obtener una
nueva tabla. Esta nueva tabla es una tabla virtual, es decir, no est almacenada
en los dispositivos de almacenamiento del ordenador, aunque s se almacena
su denicin.
Captulo 1.
Los sistemas de almacenamiento de la informacin

Informe: Es un listado ordenado de los campos y registros seleccionados en un


formato fcil de leer. Generalmente se usan como peticiones expresas de un
tipo de informacin por parte de un usuario. Por ejemplo, un informe de las
facturas impagadas del mes de enero ordenado por nombre de cliente.

Guiones: o scripts. Son un conjunto de instrucciones, que ejecutadas de forma


ordenada, realizan operaciones avanzadas de mantenimiento de los datos al-
macenados en la base de datos.

Procedimientos: Son un tipo especial de script que est almacenado en la base


de datos y que forma parte de su esquema.

1.2.2. Estructura de una base de datos

Una base de datos almacena los datos a travs de un esquema. El esquema


es la denicin de la estructura donde se almacenan los datos, contiene todo lo
necesario para organizar la informacin mediante tablas, registros (las) y campos
(columnas). Tambincontiene otros objetos necesariospara el tratamiento de los
datos (procedimientos, vistas, ndices, etc.) y que se estudiarn en este libro. Al
esquema tambin se le suele llamar metainformacin, es decir, informacin sobre la
informacin o metadatos.

mysq1> select table_schema, tab1e_name, tab1e_rows


-> from information_schema.tables
-> where tab1e_schema=jardineria;
+ ------------ --+ -------------- --+ ---------- --+
I tab1e_schema I tab1e_name I tab1e_rows

jardineria Clientes
jardineria Deta11ePedidos
jardineria Empleados
jardineria GamasProductos
jardineria Oficinas
jardineria Pagos
jardineria Pedidos
jardineria Productos

9 rows in set (0,01 sec)

Figura 1.2: Consulta de un esquema de una base de datos en MySQL.

Los gestores de bases de datos modernos Oracle, MySQL y DB2, entre otros,
almacenan el esquema de la base de datos en tablas, de tal manera que el propio

9
Bases de Datos

esquema de la base de datos se puede tratar como si fueran datos comunes de le.
base de datos. Vase gura 1.2.

1.2.3. Usos de las bases de datos

Las bases de datos son ubcuas, estn en Cualquier tipo de sistema informtico.
a continuacin se exponen solo algunos ejemplos de sus usos ms frecuentes:

IBases de datos Administrativas: Cualquier empresa necesita registrar y rela-


cionar sus clientes, pedidos, facturas, productos, etc.

IBases de datos Contables: Tambin es necesario gestionar los pagos, balances


de prdidas y ganancias, patrimonio, declaraciones de hacienda. . .

IBases de datos para motores de bsquedas: Por ejemplo Google o Altavista.


tienen una base de da.tos gigantescadonde almacenan informacin sobre todos
los documentos de Internet. Posteriormente millones de usuarios buscan en la
base de datos de estos motores.

- Cientcas: Recoleccin de datos climticos y medioambientales, qumicos.


genmicos, geolgicos.. .

IConguraciones: Almacenan datos de conguracin de un sistema informtico.


como por ejemplo, el registro de windows.

n Bibliotecas: Almacenan informacin bibliogrca, por ejemplo, la famosa tien-


da virtual amazon o la. biblioteca de un instituto.

ICensos: Guardan informacin demogrca de pueblos, ciudades ypaises.

IVirus: Los antivirus guardan informacin sobre todos los potenciales software
maliciosos.

IOtros muchos usos: Militares, videojuegos, deportes, etc.

Sabas que . . . 7La &#39;WDCC (World


Data ClimateCenter), centromun-
dial para datos del clima, es la base de datos ms grande del mundo. Almacena
alrededor de 6 petabytes de informacin, esto es 6144 Terabytes de informa-
cin sobre clima, predicciones y simulaciones. La base de datos de Google
est situada como la 4a ms grande del mundo (Abril-QOIO).

10
Capitulo 1.
Los sistemas de almacenamiento de la informacin

<> Actividad 1.5: Buscaen Internetlas 10bases de


datos msgrandes del
mundo.
Anota su nombre y su tamao, y, en una hoja de clculo, genera un grco que
muestre la comparativa del tamao de estas basesde datos.

El consejo del buen administrador. . .


Siempre hay que hacer copias de seguridad regularmente ya ser posible, de
varios tipos. Cuando una base de datos tiene un tamao brutalmente grande
como las del WDCC
o Google, hacer copias de seguridad se convierte en al-
go prcticamente imposible, puesto que se tardarian semanas en realizarlas,
y, adems, es complicado encontrar dispositivos capaces de almacenar estas
copias, por lo que en lugar de hacer copias de seguridad, se recurre a sistemas
tolerantes a fallos, que logran que la probabilidad de perder un solo dato, sea
prcticamente nula.

1.2.4. Evolucin ytipos de base de datos


La clasicacin de las bases dedatos en tipos, est. ligada a su evolucin histrica.
Segn ha ido avanzando la tecnologa, las bases de datos han mejorado cambiando
la forma de representar y extraer la informacin.

De esta manera, se presenta la evolucin sufrida por las bases de datos desde las
pocas prehistricas de la informtica hasta la actualidad:

En la dcada de 1950 se inventan las cintas magnticas, que solo podan ser
ledas de forma secuencial y ordenadamente. Estas cintas, almacenaban cheros con
registros que se procesaban secuencialmente junto con cheros de movimientos para
generar nuevoscheros actualizados. Estos sistemasse conocencomo aplicaciones
basadas en sistemas de cheros y constituyen la generacin cero de las bases de
datos, pues ni siquiera entonces exista el concepto de bases de datos.

En la dcada de 1960 segeneraliza el uso de discos magnticos, cuya caracterstica


principal es que se poda acceder de forma directa a cualquier parte de los cheros,
sin tener que acceder a todos los datos anteriores. Con esta tecnologa aparecen las
bases dedatos jerrquicas y en red, que aprovechan la capacidad de acceso directo a
la informacin de los discos magnticos para estructurar la informacin en forma de

11
Bases de Datos

listas enlazadas y rboles de informacin. La losofa de las bases dedatos en red es


que un concepto principal o padre puede tener numerosas relaciones con conceptos
secundarios o hijos. Las bases de datos jerrquicas, evolucionan para admitir varios
padres para un concepto hijo.

Sabas que . . . 7En octubre de 1969 seconcibe elprimer modelode


base de datos en red. conocido como CODASYL (Conference on Data Systems
Language), que posteriormente IBM rena. y mejora mediante el modelo IMS
(Information Management System) para el programa Apollo de la NASA.

Edgar Frank Codd, cientco informtico ingls de IBM, publica en 1970 en un


artculo Un modelo relacional de datos para grandes bancos de datos compartidos
(A Relational Model of Data for Large SharedData Banks), donde deni el modelo
relacional, basado en la lgica de predicados y la teora de conjuntos. Nacieron, de
esta forma, las bases de datos relacionales, o segunda generacin de bases de datos.
Larry Ellison, fundador de Oracle. se inspir en este artculo para desarrollar el
famoso motor de basede datos, que comenz como un proyecto para la CIA (Central
Intelligence Agency) americana. La potente base matemtica de este modelo, es el
gran secreto de su xito. Hoy en da, el modelo relacional de Codd, pese a tener
muchas alternativas, sigue siendo el ms utilizado a todos los niveles.

Sabas que . . . 7Las leyes deCodd sonun conjuntode 13reglas (dela


regla Oa la regla 12) cuya nalidad es establecer las caractersticas que debe
tener una base de datos relacional. Actualmente. todos los gestores de bases
de datos implementan estas reglas. Puedes buscar en Internet estas reglas y
leerlas con detenimiento.

<>
Actividad 1.6: Busca en Internetla biografade lossiguientes personajes,
y
comenta su principal contribucin a la evolucin de las bases de datos:

J Edgar Frank Codd J Bill Gates

J Larry Ellison J Michael Monty Widenius

J Roger Kent Summit

12
Captulo 1. Los sistemas de almacenamiento de la informacin

En la dcada de 1980 IBM lanza su motor de bases de datos DB2, para la pla-
taforma MVS. Unos aosdespus, IBMcrea el SQL (Structured Query Language),
un potente lenguage de consultas para manipular informacin de bases de datos
relacionales.

A medidados de 1990, IBM lanza una versin de DB2 que es capaz de dividir una
base dedatos enorme en varios servidores comunicados por lneas de gran velocidad,
crendose de este modo las bases de datos paralelas. Aesta versin se le llam DB2
Parallel Edition, que ahora, ha evolucionado hasta el DBZ Data Partition Feature,
nico SGBD de este tipo en sistemas distribuidos.

A nales de 1990 IBM y Oracle incorporan a sus bases de datos la capacidad de


manipular objetos, creando as, las bases de datos orientadas a objetos. Estas bases
de datos orientadas a objetos se basan en la existencia de objetos persistentes que
se almacenan para su procesamiento mediante programas orientados a objetos. En
lugar de la losofa de almacenar relaciones y tablas, se almacenan colecciones de
objetos que, adems de informacin, tienen comportamientos (instrucciones sobre
cmo procesar los datos).

La aparicin de Internet y el comienzo de la era de la informacin, crean nuevos


requirimientos para bases dedatos. La cantidad de informacin comienza a crecer en
proporciones desconocidashasta el momento. De esta forma, se creanlas basesde da-
tos distribuidas, que consisten en multiplicar el nmero de ordenadoresque controlan
una base de datos (llamados nodos), intercambindose informacin y actualizaciones
a travs de la red. Este increible aumento de datos a almacenar, organizados muchas
veces en datos estadsticos recopilados con el trascurso de los aos, hizo necesaria
la aparicin de un software llamado Software de ayuda a la decisin. Este software
avanzado trata de dar respuestas concretas examinando mltiples datos estadsticos
que se han recopilado a lo largo del tiempo en bases de datos multidimensionales,
formando lo que se denominan cubos de informacin.
Ventas del 2do 172010
Espaa, Huelva
Jamn de Bellota Q4

empo

Provincia z/broducto
&#39;

Figura 1.3: Ejemplo de cubo en una base de datos multidimensional.

13
Bases de Datos

Tambin, a lo largo de la corta historia de la informtica, han surgido otros tipos


de bases de datos que se enumeran a continuacin:

- Bases de datos espaciales o geogrcas: Son bases de datos que almacenan


mapas v usmbolos que representan supercies geogrcas. Google Earth es
una aplicacin que lanza consultas a bases de datos de este tipo.

n Bases de datos documentales: Permiten la indexacin de texto para poder


realizar bsquedas complejas en textos de gran longitud.

IBases de datos deductivas: Es un sistema de bases de datos que almacena


hechos y que permite, a travs de procedimientos de inferencia, extraer nuevos
hechos. Sebasan en la lgica, por ello tambin se suelen llamar bases dedatos
lgicas.

Base de datos Datos almacenados


Sistemas de cheros Datos en cheros
Jerrquicas Estructuras de datos (listas y rboles) varios cheros
En red Estructuras de datos (rbolesy grafos)
Relacionales Teora de conjuntos y relaciones
Orientadas a objetos Objetos complejos con comportamiento
Geogrcas Puntos, Lneas y Polgonos una o varias BBDD
Deductivas Hechos y Reglas
Documentales Documentos
Distribuidas Mltiples varias BBDD en
Multidimensionales Cubos varios ordenadores

Cuadro 1.1: Resumen de los tipos de bases de datos.

1.3. Los Sistemas Gestores de Base de Datos

1.3.1. Concepto de Sistema Gestor de Base de Datos


Se dene un Sistema Gestor de Base de Datos, en adelante SGBD, como el
conjunto de herramientas que facilitan la. consulta, uso y actualizacin de una base
de datos. Un ejemplo de software Gestor de Base de Datos es Oracle 11g, que
incorpora un conjunto de herramientas software que son capaces de estructurar en
mltiples discos duros los cheros de una base de datos, permitiendo el acceso asus
datos tanto a partir de herramientas grcas como a partir de potentes lenguajes de
programacin (PL-SQL, php, c++. . .).

14
Captulo 1.
Los sistemas de almacenamiento de 1a informacin

1.3.2. Funciones de un SGBD

Los SGBD del mercado cumplen con casi todas funciones que a continuacin se
enumeran:

1. Permiten a los usuarios almacenar datos, acceder a ellos y actualizarlos de


forma sencilla y con un gran rendimiento, ocultando la complejidad y las ca-
ractersticas fsicas de los dispositivos de almacenamiento.

2. Garantizan la integridad de los datos, respetando las reglas y restricciones que


dicte el programador de la base de datos. Es decir, no permiten operaciones
que dejen cierto conjunto de datos incompletos o incorrectos.

3. Integran, junto con el sistema operativo, un sistema de seguridad que garantiza


el acceso a la informacin exclusivamente a aquellos usuarios que dispongan
de autorizacin.

4. Proporcionan un diccionario de metadatos, que contiene el esquema de la base


de datos, es decir, cmo estn estructurados los datos en tablas, registros y
campos, las relaciones entre los datos, usuarios, permisos, etc. Este diccionario
de datos debe ser tambin accesible de la misma forma sencilla que es posible
acceder al resto de datos.

5. Permiten el uso de transacciones, garantizan que todas las operaciones de la


transaccin se realicen correctamente, y en caso dealguna incidencia, deshacen
los cambios sin ningn tipo de complicacin adicional.

6. Ofrecen, mediante completas herramientas, estadsticas sobre el uso del gestor,


registrando operaciones efectuadas, consultas solicitas, operaciones fallidas y
cualquier tipo de incidencia. Es posible de este modo, monitorizar el uso de la
base de datos, y permiten analizar hipotticos malfuncionamientos.

7. Permiten la concurrencia, es decir, varios usuarios trabajando sobre un mismo


conjunto de datos. Adems, proporcionan mecanismos que permiten arbitrar
operaciones conflictivas en el acceso omodicacin de un dato al mismo tiempo
por parte de varios usuarios.

8. Independizan los datos de la aplicacin o usuario que est utilizndolos, ha-


ciendo ms fcil su migracin a otras plataformas.

9. Ofrecen conectividad con el exterior. De esta manera, se puede replicar y


distribuir bases de datos. Adems, todos los SGBD incorporan herramientas

15
Bases de Datos

estndar deconectividad. Elprotocolo ODBC4est muyextendido comoforma


de comunicacin entre bases de datos y aplicaciones externas.

10. Incorporan herramientas para la salvaguarda y restauracin de la informacin


en caso de desastre. Algunos gestores, tienen sosticados mecanismos para
poder establecer el estado de una base de datos en cualquier punto anterior en
el tiempo. Adems, deben ofrecer sencillas herramientas para la importacin
y exporta.cin automtica de la informacin.

<> Actividad 1.72 Buscaen Internetlas leyesde Coddpara elfuncionamiento de


sistemas gestores de bases de datos relaciones y establece una relacin entre cada
una de las leyes de Codd y las funciones que proporcionan los SGBD actuales.

1.3.3. El lenguaje SQL


La principal herramienta de un gestor de base de datos es la interfaz de progra-
macin con el usuario. Este interfaz consiste en un lenguaje muy sencillo mediante
el cul el usuario realiza preguntas al servidor, contestando este a las demandas del
usuario. Este lenguaje comnmente se denomina SQL, Structured Query Language,
est estandarizadopor la 1805, esdecir, todaslas basesde datosque soportenSQL
deben tener la misma sintaxis a la hora de aplicar el lenguaje. Se divide en 4 su-
blenguajes, el total de todos ellos permite al SGBD cumplir con las funcionalidades
requeridas por CODD:

- Lenguaje DML: o lenguaje de manipulacin de datos (Data Manipulation


Language). Estelenguaje permitecon 4 sentencias sencillas
seleccionar deter-
minados datos (SELECT), insertar datos (INSERT), modicarlos (UPDATE)
o incluso borrarlos (DELETE). En captulos posteriores sedesarrollar lasin-
taxis de cada una de estas sentencias.

ILenguaje DDL: o lenguaje de denicin de datos (Data Denition Langua-


ge). Estelenguaje permitecrear todala estructura de unabase dedatos ( desde
tablas hasta usuarios). Sus clusulas son del tipo DROP (Eliminar objetos) y
CREATE (Crear objetos). En captulos posterioresse detallar la sintaxis de
cada una de estas sentencias.

ODBC signica Open DatabaseConnectivity, y es un estndar deacceso adatos desarrollado


por Microsoft
5180 esel acrnimo de International Organization for Standardarization

16
Captulo 1. Los sistemas de almacenamiento de la informacin

- Lenguaje DCL: o lenguaje de control de datos (Data Control Language).


Incluye comandos (GRANT y REVOKE) que permiten al administrador ges-
tionar el acceso a los datos contenidos en la base de datos.

- Lenguaje TCL: o lenguaje de control de transacciones. El propsito de este


lengua.je espermitir ejecutar varios comandos de forma simultnea como si fue-
ra un comando atmico o indivisible. Si es posible ejecutar todos los comandos,
se aplica la transaccin (COMMIT), y si, en algn paso de la ejecucin, sucede
algo inesperado,se puedendeshacer todoslos pasosdados (ROLLBACK).

<> Actividad 1.82 Buscaen la Wikipedia eltrmino SQLe indicalas revisiones


que ha sufrido el lenguaje a lo largo del tiempo. A continuacin, busca el signicado
del trmino SQL Injection e indica por qu un administrador debe protegerse frente
a l.

1.3.4. Tipos de SGBD


Se puedenclasicar los SGBD de muchas formas, por ejemplo, segn las bases de
datos que gestionan, clasicando los SGBD segn traten bases dedatos relacionales,
bases dedatos orientadas a objetos, etc. Puesto que en la actualidad, la mayora de
los SGBD integran mltiples losas y tipos de funcionamiento, en este libro se
clasican los de gestores de basesde datos segn su capacidad y potencia del propio
gestor:

Los Gestores de Bases de Datos omticas son aquellos que manipulan


bases de datos pequeas (omticas) orientadas a almacenar datos domsticos o de
pequeas empresas.Incluso estos gestores permiten construir pequeas aplicaciones
para ayudar a un usuario inexperto a manipular los datos de una base de datos de
forma sencilla e intuitiva. Un ejemplo de un SGBD omtico es Microsoft Access,
que posee tanto una interfaz de usuario muy sencilla como un potente lenguaje de
programacin (VBA=Visual Basic forAplications) paraofrecer ausuarios avanzados
otras posibilidades de gestin mucho ms especcas.

Los Gestores de bases de datos Corporativas son aquellas que tienen la


capacidad de gestionar bases de datos enormes, de grandes o medianas empresas
con una carga de datos y transacciones que requieren un servidor de grandes di-
mensiones (generalmente un Servidor Unix, o un Windows 2OOX Server con altas
prestaciones). Estos gestores son capaces demanipular grandes cantidades de datos

17
Bases de Datos

de formamuy rpida y eciente para poder resolver lademanda demuchos (cientos)


de usuarios. Un ejemplo tpico de servidor de base de datos Corporativas es el antes
comentado Oracle, actualmente, junto con DB2, el servidor de base de datos ms
potente del mercado (tambin el ms caro). Precisamente,ese costetan alto es el
que ha desencadenado que se haya recurrido a una solucin intermedia entre gesto-
res de base de datos omticas y corporativas. Entre estas soluciones intermedias se
encuentra MySQL, un gestor de base de datos que, adems de ser gratuito y senci-
llo, es capaz de manipular gran cantidad de datos cumpliendo prcticamente todos
los estndares de la arquitectura ANSI SPARC. Aunque implementa SQL, no tiene
un lenguaje de programacin propio como SQL Server u Oracle (aunque est en
desarrollo), pero a cambio se integra fcilmente en las tpicas soluciones XAMPP,
que son paquetes que incluyen, adems de MySQL, una versin del servidor Web
Apache y varios lenguajesde script (php, perl. . .) que dotan a MySQL de potentes
herramientas para acceso y publicacin de los datos.

Contabilidad Administracin

Usuario 1

Figura 1.4: Esquema tpico de organizacin de un SGBD corporativo.

18
Captulo 1. Los sistemas de almacenamiento de 1ainformacin

1.4.
Prcticas Resueltas

Prctica 1.1: Introduccin a Microsoft Access.


En esta prctica, se aprender a manipular de forma bsica el gestor de basesde da-
tos Accessde Microsoft.Abre la base dedatos Neptunoaccdb que puedesdescargar
de www. garcetaes, y realiza las siguientes acciones. Ser necesario modicar algn
objeto de la base de datos, por tanto guarda una copia con el nombre practicalaccdb
7y conserva laoriginal para repetir 1aprctica cuantasveces desees.

f I
\J&#39;\/_
Organizar
vNueva carpen
lEscritorio i: rw- Fama es niue. Tip:
,4 Sitiosrecientes
a Neptuncuccdb " Z LC .5" Hicrcscft Fi-ze
..
E] Vehiculosaccdb 3 I JLC . ":r;;:v:
d, Biblioteeas _
1 Documentos s_
hImagenes
A! _ v Musica
Administrar B deos

n; Grupoen elhogar

1&#39;- Equipc - 4

Hombrearchivo:
de Neptuncmccdb
vi Microsoft Office
Access (mccd
v]
rm
_

Herramientas
v ICancelar |

Abre Microsoft Access ypulsa el botn de Office. Selecciona la opcin abrir, yen el cuadro de dilogo, busca
la base de datos neptuno.

1. Qu tipo de informacin almacena la base de datos?

Neptuno es una basede datosque incorporanlas versionesantiguas deMicrosoft Access(hasta


Access 2003)
7accdb es la extensin de las bases de datos de Access 2007

19
Bases de Datos

Observando las tablas de la base de datos Neptuno, se puede ver que hay tablas de Clientes, Emplea-
dos, Pedidos, Productos, Proveedores, etc. Al abrir las tablas haciendo doble clic sobre ellas, se muestra la
infonnacin que contiene, por ejemplo, la tabla de productos almacena informacin sobre alimentacin y de-
rivados, por tanto, Neptuno es el sistema de informacin de una empresa que importa y eazportacomestibles
especiales de todo el mundo.

2.
Qu objetos tiene la base de datos?

rSBaTM---wl < Id.d Todos


losObJQOS
deAccess
Dplazarse
l lacategora
6
13m -
i
De leyar C""&#39;*
s formularios
Iipodeobjeto . m; Si
Personalizado e Catalogo

Iablas
yvistas
relacionadas
((
K
7)
(4
Fechadereacion Etiquetas
decliente
fechademodicacion nm".
Desplegando la lista del pa-
Filtrar
porgrupo Lista
alfabtica
deproductos

440040
nel lateral izquierdo de Ac-
Twin Productos
porcategora
cess, se puede obtener un
listadode todoslosobjetos 5"" Resumendeventas
porao

EE
de la base de datos clasi- E""&#39;-"5 Resumendeventas
portrimestre
cados por tipos, es decir, Worms Subintorme
Catalogo
tablas, consultas, formula- Eaginas Subiriorme
ventas
porao
rios, informes, etc. Macro; 4 Subiriionrie
ventas
porcategoria
Mdulos 4 TOMQSd!VGHIS
D0!Cllidld
Todos
losobjetos
deAccess o ventas
deempleadoporpas
ventas
porao

3. Explora todos los objetos de la base de datos, poniendo especial nfasis en el


diseode cada objeto, es decir, en la forma en la que estn construidos.

-Todos
los obietos
--r-- deAccess
--- -- r<r j epejdc:
>EtE|l:
Consultas A
Para explorar el conte- Consuitadepedidos J pu,
nido de un objeto, bas- Detalle
depedidos
con
descuento 7 &#39;P&#39;"
i
ta con hacer un do- Precioumdad
L_
ble clic con el botn
izquierdo del ratn y
Facturas
examinar el panel fron-
tal. Para ver el diseo
se pulsa con el botn
Filtro
acturas

lilii
derecho del ratn y Lista
ambetica
deproducto:
se selecciona la opcin Lista
deproductos
actual
Diseo. Por ejemplo, Losdie:productos
mascaros
la consulta Subtotales C-mpo:
iapeaiao Subtotal:
SumaICMonedaIMetE
Pedidos
trimestrales Tabla:
Detalles
depedidos
por pedido consiste en
Productos
por
categoria l Total:
ihqrupnr
por Expresion
un listado de los pedi- Orden:
dos con su coste total. Productos
sobre
elprecio
medio Mostrar: T}
Resumen
d!VEMM
D0!
IO cmem:
i
Resumen
deventas
portrimestre
Subtotalesporpedido E Zoom &#39;
&#39;
y. " l
Totales
deventas
porcantidad
r STototaI:
scanamdonedaweooLx-udadlcmhda
mnuwvloo
Captulo 1. Los sistemas de almacenamiento de Ia informacin

4. Aade
el campo Destinatario
a la consulta Subtotales por
pedido.

Entra en modo diseo y pulsando con el botn derecho en el panel superior, selecciona la opcin Mostrar
Tabla. Despus,
aade la tabla pedido. Vers cmo aparecen las dos tablas relacionadas, en una, los campos
genricos del pedido (FechaPedido, FechaEntrega, etc.) y en la otra, el detalle
de cada uno de los pedidos.
A continuacin, arrastra el campo Destinatario
de la tabla Pedido al panel inferior (en la tercera columna).
Deale:
de[ELIZJC
a eaidr:
FecnaEntiega
FechaEnvio
i Ianeaiao

9ldPiodueto FoimaEnvo
-
Cnigo
1
Destinatario-
:
DirecdonDe
stin
riunannminn&#39;

PreeioUnidId

Cantidad

Descuento

Subtotal.
SumnCMonednIPvecioUmdad]cnntidldlu-[Descueiito]i100r100)
Destinatario i;
Pedidos
impresion Agiupnr
por
3.

5. Aade elcampo Email


a latabla Clientes,
es un campo de tipo
Texto y de
longitud 75. Examina las distintas propiedades
del campo y consulta laayuda de
Access en
cada uno de ellos pulsando la tecla F1.

Entra en modo diseo y aparecer la lista de campos


de la tabla.
Aade una nueva la y completa el nombre
de campo, el tipo y la descripcin. A continuacin, rellena las
propiedades del campo.
Puedes, por ejemplo,
poner una regla
de validacin para que los emails tengan el formato nombre@dominio, es decir, que tengan
una @ en el terio del email. Para poner la regla
de validacin, pon Como *@* en el campo Regla
de

validacin

Nombre
de!
campo Tipo
de datos Descripcin
i Idcliente Texto Cdigonicobasadoenel nombredel cliente.
Nombrecompaa Texto
Nombrecontacto Texto
Cargocoritacio Texto
Direccin Texto Ca|leo apartado
de correos.
Ciudad Texto
Regin Texto Estadoo provincia.
cdPostal Texto
Pas Texto
Telefono Texto incluyecdigo
de pasode rea.
Fax Texto Incluyecodigo
de pasode rea.
Email Texto NuevoCampoaadido
Propiedaues
delcampo
Generalasqueu
Tamao delcampo 75
Formato
Mascaradeentrada
Ttulo
Bases de Datos

6. Examina las relacionesde las tablas que contienela. base de datos Neptuno.

&#39;.,u-
(te
12.1;
re:;1c.=:_1 l W-V
n IaProuucto WIWGO u ldPeaido " Mm
rlombrePvodul l PW-W atinente Nmh"c"p&#39;&#39;
ldProveedor P&#39;&#39;U"&#39;3
ldEmpIeIdo Nmb"cm&#39;d
4
ldcategovu ("5" FechaPedndo C"(""
CanhdaaPovU " FecmEntrega D_""""
Preuounuaao FecnaEnvo (Wa
UnndadesEnb
unidadesEnPi
&#39; ,_.__4__
r _&#39;
u FonnaEnvio
Cargo Sa?"
al
* &#39; d Empleada - Duhnltlno p.

a
p.&#39;
o L DvremonDest
A ua
Nombre
_ .
CIudadDemn.
HoaeDFODICUBUQS Cargo I z-ncehxseamic;
. Depenaenuas
delObjl
Tratamiento Rlolonmmn"
(ogpoggmpg;
J ldcm9"&#39;""&#39;5
* &#39;
Fechannrnlent- . qompucomn
&#39;
53&#39;
5 ""J" FecnacontratnaPmoemrm" 1,,na
I
l &#39;l"rvr
:c."-- Direccin
v
Las relaciones dictan cmo se puede enlazar la informacin de diferentes tablas para obtener informacin
ms elaborada. Para ver las relaciones de la base de datos, se pulsa en Herramientas de Bases de Datos
y a continuacin en el botn Relaciones

7. Un formulario va siempreasociadoa las operacionesque se hacen con una tabla,


a las que comnmentese llama mantenimiento de tabla, observael funcionamiento
del formulario Clientes
y comenta qu operacionesson estas. Realiza al menosuna
vez cada una de las operacionesque permite el formulario.

Las 4 operaciones que forman el mantenimiento de una tabla son la insertin o alta, eliminacin o baja,
modicacin o actualizacin y bsqueda o consulta de un registro. Todas estas opemciones se pueden
realizar de forma muy sencilla y visual a travs del formulario.

8. Inserta un nuevo cliente en la base de datos.

Y
lo.declientev Nombre decompaia v Nombre delcontact-
Insertar un cliente es muy sencillo, WANDK Diewandemde Kuh RitaMuller
se puede hace-r a travs del forfnularo VJRTH Wla Herkku Dnrkxo
KOSKIXBO
&#39;C[ien3
o abendo [a tabla (jaen- WELLI Wellington
Importadora PaulaParents
tes! y desplazarseal ltimo mgistm_ WHKTC whiteCloverrvlarkets Karllablonsku
En una la vaca, se agregan los va- WRLMK wllmanKala MaruKamunen
lones correspondientes a cada campo. WOLZA wclskaZaiazd Zbyszek
DIestrzenIev_
ILMSR LaCantina
deSanRoman Antonio
Lopez
b
Registro.
K 492 de
92Do . Busur 1Lv

9. Elimina el registro correspondienteal cliente Rancho Grande. Es posible?Si


no es posible. Qu habra que hacer para poder eliminarlo?

22
Captulo 1. Los sistemas de almacenamiento de la informacin

Para eliminar el cliente, hay que buscar el cliente Rancho Grande . A continuacin, se seala. la la
con el botn derecho del ratn y se escoge la opcin Eliminar Registro. Access mostrar una advertencia
indicando que no es posible eliminar el registro puesto que hay pedidos de ese cliente. Para poder eliminar
denitivamente el cliente, habra que eliminar previamente todos sus datos asociados.
j Clientes -- Y
Nombrede compaia v Nombredel contact- Cargodel contacto - e
Jensen re-IMML SergioGutirrez Representante
deventas Av.da
Nummgism n Grocery Paula
wilson Representante
agente
ventas
2817i
"""" "WW i MaurizioMoroni Asistentedeventas Strad.
CMI! JaneteLimeira AsistentedeagentedeventaAv.Cr:
5gp." MichaelHolz Gerentedeventas Greni
Aleandra
Camino Gerentedecontabilidad Gran"
Rancho
Gun
I l D
nodefila... i l

10. Modica el valor del campo Nombre de Contacto del registro correspondiente
al cliente Romero
y Tomillo.
A continuacin, modica el campo Id. de Cliente
cambindolo su valor a ROMMY. Es posible modicar el Id. de Cliente? Si es
posible, conserva el cliente an sus pedidos?

Pana modicar el cliente, se localiza su la y se sita el cursor del ratn en el campo que se desea
modicar. Despus, cambiar el valor del campo. En este caso, es posible modicar ambos campos, el primero,
el Nombre de Contacto no tiene conicto alguno puesto que no est implicado en ninguna relacin. Modicar
el campo Id. de Cliente podra suponer la. prdida de pedidos si no se actualizara a su vez todos los pedidos
del cliente. Access efecta esta modicacin automticamente al cambiar el identicador del cliente, por
tanto, no hay prdida de pedidos.
3 [lie-ita - Y
ld. decliente Nombredecompaia
- Nombredel contact- Cargodel contacto Dir A
QUEEN QueenCozlnha LciaCarvalho Asistentede marketing Alamedad(
QUlCK QUICK-Stop Horst(loss Gerentedecontabilidad Taucnerstre
RANCH Rancho grande SergioGutierrez Representante deventas Av.del Libe
RATTC Rartlesnake Canyon Grocery PaulaWilson Representante agenteventas2817Miltor
REGGC Reggiani Caseifici MaurizioMoroni Asistentedeventas Stradaprev:
RICAR Ricardo Adocicados JaneteLimeira Asistentede agentedeventaAv,Copacai:
RichterSupermarkt MichaelHolz Gerentedeventas Grenzacher
I t Romerov tomillo JoseModificado Gerentede contabilidad GranVa,1
.__*-SANTG__ __janteourmet_,_.__.__-, __._.__.Jonas Beraulisen Drooietario Erlinzskaki&#39;
Registro:
I< 4 69de92
D N i. eroyTomillo 1 . l D

11. Abre la tabla de proveedores


y consulta qu productos provee el proveedor Leka
Trading

Primero, se localiza el proveedor en la tabla de Proveedores mediante el cuadro Buscar. A continuacin,


se pulsa el icono + del campo Id de Proveedor para desplegar las relaciones que tiene con Productos.
18AuxJOyEUX ecclesiastiques GuyleneNodier Gerentedevent
19NewEngland SeafoodCannery RoboMerchant Agentedecuent
20 LekaTrading ChandraLeka Propietario
ld. deproducto- Nombredeproducto Categoria - CantidadporUnidav
Tallarinesde Singapur Granos/Cereales 32- 1kgpaq.
43 Cafede Malasia Bebidas 16- latas500g
44 AzucarnegraMalacca Condimentos 20
- bolsas2 kg
(Nuevo)
,_..___,_ ,-.s.... .___.__i- __.
egistro:
I< l de3 DH 0 - LeknTnding4 l

23
Bases de Datos

12. Consulta la ayuda de Access y comenta los diferentes tipos de datos que puede
almacenar un campo en Access (Texto, Memo, Numrico).

En Access existen 10 tipos de datos bsicos:

Datos adjuntosComo fotos digitales. En cada registro es posible adjuntar varios archivos. Este tipo de
datos no estaba disponible en versiones anteriores de Access.

AutonumrcoNmeros que se generan automticamente para cada registro.

Moneda Valores monetarios.

Fecha/HoraFechas yHoras

HpervnculoComo direcciones de pginas web.

MemoBloques de tezto largos ytezto que emplean formato de texto. Una utilidad tpica de un campo Memo
sera una descripcin de producto detallada.

Objeto OLEObjetos OLE (objeto OLE: objeto que admite el protocolo OLE para la vinculacin e in-
crustacin de objetos. Un objeto OLE de un servidor OLE (por ejemplo, una imagen de Paint de
Windows o una hoja de clculo de licrosoft Excel), se puede vincular o incrustar en un campo,
formulario o informe.

Texto Valores alfanumricos cortos, como un apellido o una direccin.

Nmero Valores numricos, como distancias. Hay que tener en cuenta que existe un tipo de datos inde-
pendiente para la moneda.

S/No Valores Booleanos o Lgicos. Admiten nicamente el valor Si y el valor No.

13. Qu subtpos de datos tiene el campo numrico en Access?

El tipo numrico se puede dividir en subtpos dependiendo del tamao de campo que se eli-
ja. Asi, los campos numricos almacenarn un rango de valores muy distinto dependiendo del
tamao del campo que se seleccione. Por ejemplo, los tamaos byte (1 byte), entero (2 by-
tes), entero lango (4 bytes), simple y doble precisin (coma otante de 4y 8bytes), etc.
GEMFN Bsqueda
Tamao delcampo Entero lar -

Lugares decimales "NFO


Mascara deentrada Eme) &#39;90

Titulo

predeterminado
Valor Doble
Id. de replica
Regla devalidacin
Decimal
i Textode validacin
Requerido No
Indexado No
Etiquetas inteligentes
Alineacin deltexto General

24
Captulo 1. Los sistemasde almacenamientode 1a informacin

14. Qu valoresadmitira un campo numricode


1 byte?

Como 1 byte son 8 bits, se estima que los valores numricos que se pueden almacenar en un campo de este
tipo son del 0 al 28-1, es decir del 0 al 255. Si se insertan en el campode tipo Byte valorespor encima
o por debajo del 0 y del 255, Microsoft Access los rechazar. Ntese que este clculo se hace sin tener en
cuenta el signo del valor, puesto que el valor byte, no admite signo. Para utilizar nmeros con signo ha
de escogerse el tipo Entero y pam utilizar nmems reales, con. decimales, debe seleccionarse un campo en
formato de comaotante (simpleo doble) o el campodecimal.

15. Crea una tabla llamada Test con un nico campo numricode
1 byte. Qu va-
lores mximo y mnimo se pueden almacenar?Prueba a insertar registrospara ve-
ricarlo.

-/ HICIO Crear Datos


externos
La . &#39;.
l 3 _ Nombre
delcampo Tupo
dedaios
Para crear una tabla! se pulsa TablaPlantnllas
Lnstasae
DISEO Numem
en la pestaa Crear y se selec- 0mm Shmpm"!
&#39; d!"
.
czona .
el icono .
Tabla. A contz- v,
.3m _ &#39; p&#39;
n wc&#39;
&#39; &#39; ae ae
nuacin se pulsa el botn Ver 5mm _,Bs9us9I__AA__
___
y se seleccionala opcin Di-
- Cree
unanuevstablaracxa
Puedea...nlos T"""""" 5V
- campcs
uuenamente
enunanueva
abla
o F""
seno Se Pone7mm? a l ta con!
launla
envlsxa
Duseo. Luoms netimnles Automnko
bla, y se modica la lnea que l _ Mnsaradunivldl
aPanece
conel nombreId y tipo L: m:
_J mu
Valor
predelermmado
autonumico para poner los &#39;Huevo
Aguggr
campo; Regll
aevaludauon
datos del campo.En Tamao Ei, 3&#39;39 m ""&#39;
Requerido No
delcampo
hayqueseleccionar 2 &#39; l indexado snsm
GUDIICIGOS]
Byte _ 4 Etiquetas
inteligentes
Ahnenaon
deltexto Genem

Para insertar los valores de prueba, se abre la tabla y se insertan varios valores. Cuando se inserta un valor
fuera del rango [0-255], se produceel siguienteerror:

Elvalor
quehaespecicado
nacoincide
(uneltipodedatos
Nmero
deesta
eolumm.
Especique
unvalor
nuevo.
Ayuda
conlostipos
dedatos
yformatos.

25
Bases de Datos

Prctica 1.2: Manipulacin de informacin en Access.


Descarga de www. garcetaes 1a basede datos de Vehculos (Vehiculosaccdb) y bre-
la. Ser necesario modicar algn objeto de la base de datos, por tanto guarda una
copia con el nombre practicalaccdb y conserva la original para repetir la prctica
cuantas VECES CGSGGS.

1. Cuntos modelos de vehculos hay?

xr
Modelo -censor-nro":
Se abre la tabla en modo Vista 1A|a Romeo 147 1.6 rs16V 10scv 3/5 8.1
de Hoja de Datos , y, se con- 2 Alfa Romeo 147 1.o
rs 15v12o cv3/5 3,2
sulta
el contador de 3 Alfa
ROMEO 147 1.9 JTD IZ
CV 3/5
que hay en a parte
nm-o, el 4Alfa Romeo 1471.9 noM-JET 15o
cv 3/5
paneLEn este
caso, 3654
mo_ 5 Alfa
Romeo 147
2.0TS 16v
3/5
deos.
l , , , , . Alfa
Romeo_ _ ,,_147 2.0
, TS ,16V
,_Selespeed
_ _ 3/5
Mkagmro.
@ If Nv. _ V

Desde el modo Vista de Hoja de Datos, hay que ordenar de mayor a menor (forma descendente)
la. tabla por el campo Consumo. Los 5primeros modelos que apanecen son los que ms consumen.
x
Mocelo -ioosumo -1 yFmamnnac
.v._ ,JU, . -
19
Ferran 612 agua. 20&#39;s Qrdenar
de menor
amayor
s20 Ferran raao/ =43osp 13.2 il Ovenvdc mmrnmenw
821 Ferran F599
GTB 17,5 -_gopm
1406
Maserati Coup Granspor 17.5 3 ge,
&#39;
3 Hummer H2 6,2 VS
13" 17.4 L1Agcno de
tolumna,
1262 Jeep gnerokee 3.7V 16,5
Qculuv columnas
1657 Mercedes-Ben
m. 63AMG Autom.
(1641 16,5

3. Inserta un nuevo modelo de automvil completando todos los campos.

Se pulsa el icono insertar registro y,


a continuacin, se rellenan todos los datos menos el
campo Id, que es autonumrico ypor tanto se rellena automticamente. El campo magen
se rellena haciendo doble clic sobre el dato adjunto yse selecciona una imagen de tipo bmp.
juanma
Id -I Marca - 7 7Mooeio y N- Consumo -1 Emnsrones - nt d 7A
3652 Volvo
3653 volvo
3554 votvo
xcsc vsAWD AUT 7A 13.5
xcsc vsAWD AmEXECUTPJE/SDOR 13.3
xcso vsAWD AUT 133317
322
317 J,
" 3655
Ferrari Tesarossa 22.27
Huevo,-
Regstra
N4365?
M3655
&#39;0-

J.

m;

26
Captulo 1. Los sistemas de almacenamiento de la informacin

4. Crea y ejecuta una consulta para ver los automviles de la marca Seat, repite
el procedimiento para los automviles de la marca Toyota y Volkswagen.

miente nao QmmrooS"d&#39;mumfmh Desea


ma wnsuudeoetaloeoremwm?
(QHSUKBS

Nedededensdeuwmuhodia.

1-: Automvnes Seal


llmmaem 4, sta es
toda mfovmaon
la natura
que elsustenta crear
para consutn.
la
l Imagenoelags
flmagmyneumg l Deseaabnr
la mnsulm
omowcar
ei dxseo
de la
COHSUG
gImagenFneTmeSmw
<1 eenFueT _ .
ilzagmeg yagravante consulta
verpara
nxmoco. ..........
m
g iodcael dzseo
oe A

Se puede crear una consulta de varias formas: con el


asistente para creacin de consultas, con vista diseo
o creando una consulta en modoSQL. En esta solu-
cin se opta por la primera opcin, se pulsa en la pes-
taa Crear yse selecciona la opcin Asistente
pam Consumo
consultas. Primero, se selecciona la opcin Asistente E"""
para consultas sencillas y despus se eligen los cam-
pos que se mostrarn en la consulta, Marca, Modelo,
Consumo yEmisiones. En segundo lugar se elige la :[Luna] {Consumo}
opcin Detalle ynalmente se da un nombre a la Automoviles Lutomovules utomovules
tabla. Para tenninar, se seleccionar la opcin Mo-
dicar diseo de la consulta.
Acontinuacin, se establece el criterio a ltm para la
bsqueda de los automviles de la marca Seat. ponien-
do en el campo Criterios de la columna Marca, el
valor =Seat". Puedes crear las consultas para To- : ALHAMBRA L8AUT.5
yota y Volkswagen siguiendo la vista Diseo, pues se ALHAMBRA 1.8 MAN.6
realiza de forma idntica a cuando se modica
el di- -HA&#39;\4BRA1.9TD|AUT.5
sea de la consulta. . LHAMBR 1.9 lMA.5
Sea. A_r-;ANBF.A 2.0 NAAN.6y
Regnstvc N1 de93 bDI p .Busca:

27
Bases de Datos

5.
Abre el formulario Catlogo
Ferrari en
modo Diseo y describe cmo se enlazan
sus campos
a la base de datos.

Para abrir el formulario en modo diseo. se selecciona el objeto Catlogo Ferrari en el pa-
nel lateral y pulsando con el botn derecho del ratn se elige la opcin Diseo del For-
mulario. A continuacin, se selecciona cualquiera de los campos y se pulsa en. el botn Ho-
ja de Propiedades que esta. situado en la pestaa de Diseo para mostrar las propiedades de
los controles del formulario. En la hoja de propiedades aparece la opcin Origen del control.
j (alogofarui
&#39;
-n-|-I&#39;2"I&#39;3"I-4- -&#39;
&#39;
&#39;
&#39;
&#39;
&#39;
&#39;
&#39;
-- n-

HC]!d: prcpmoades
Tipodeselecclcn
Cuadro
oe(eno
Maru
Formno UNOSEventos01m oaus
ngendelcontrol
u . y
Mascara
deentrada
movpredeterminado
Regla
devahdaclon

6.
Crea una
tabla llamada Propietarios con los Campos DNI,
Nombre, Apellidos,
Fecha de
Nacimiento, Direccin y Telfono. DNI ser el Campo clave de
la tabla.

De la pestaa Crear, se escoge la opcin Diseo de tabla, y se rellenan las las con cada uno de los
campos que va a tener la tabla. Se ha de poner atencin en. el tamao de cada uno de los campos.

DNI - Texto (10)

nNombre
- Texto (20)

Apellidos Texto (70)

Fecha de Nacimiento
- Fecha/Hora

nDireccin - Texto (255)

I Telfono
- Tezto(15)

Se seleccionar la la correspondiente al DNI, y se pulsar el icono Clave principal para designarlo como
campo clave. Para terminar. Access preguntar si se desea guardar los cambios y pedir la asignacin del
nombre de la tabla.

_T; __: -.:;


Nombre del campo
t i V DNI exto Doc
amamanana:
una:
ae Dueo Nombre Texto Nor
detam: SharePoint
&#39; de abla Apemdos Texto Ap
l Fechade Naccmuenio erre/Hora Fec
DITECCIH Texto Dire
Telefono Texto Tele

28
Captulo 1. Los sistemasde almacenamientode la informacin

7. Crea una tabla llamadaPropietariosAutomoviles


conlos camposDNI
(del pro-
pietario), Id
(del automvil)
y Fecha
de Compra. Establececomo
clave principal
de
la tabla, los camposDNI
e Id.

Se repite el procedimiento de la cuestin anterior, esta vez, teniendo en cuenta que el tipo y tamao de
los camposDNI e Id
debe ser igual al de las tablasPropietariosy Automviles,es decir, DNI - Texto (10)
e Id (Numrico, Entero Largo). El campoFecha de Compra ser de tipo Fecha/Hora. Para establecerla
clave principal se seleccionan las dos las correspondientes a los campos Id y DNI y se pulsa el botn Clave
Principal. Finalmente, se asigna el nombre a la tabla.

8. Establece las relaciones entre las


tres tablas
de la.
base de datos.

Hay que pulsar en el icono relaciones del panel Herramientas de base de datos. A continuacin, se-
leccionar las tres tablas y agregarlas al panel de relaciones. Para enlazar el campo Id de las tablas de Au-
tomviles y PropietariosA-utomviles se selecciona el campo Id de esta ltima y se arrastra hasta el campo
Id Automviles. En la pantalla modicar relaciones que aparece, se marca las opciones Ezigir Integridad
Referencial y Actualizar en cascada los registros relaciones, para erigir que los propietarios que estn
relacionados con Vehculos (Id) realmente existan en la base de datos, y, para actualizar el campo Id en la
tabla PmpietariosAutomviles de forma automtica si se modica en la tabla Automviles. Se repite este
proceso para el DNI. Observa el mapa
de relaciones como se ilustra a continuacin.

Henarmentas
debase
dedatos .- __ 5-r
"-*&#39;-&#39; " ;:.x
&#39;. : ZCEEIILL
. b ld g Dm
e4 .
- Dependencias
delcrudo th". "WW"
EHCIOHGS Idoaela pelhdos
C"W" Fecha
deNacnmierr
Llamar
u ccpha: Emisnones mamon
""9" Telefono

J Egg:nmgndad
reference!
yV&<sa.=2n_ rs.e99922

arma
en
cascada
los
regsros
relacionados

29
Bases de Datos

9. Crea un formulario con todos los campos de Propietarios mediante el asistente


de creacin de formularios. Usa la opcin de diseo Justicado y un estilo a tu
eleccin.

En
lapestaa
hay Crear
lghmmaazgsm
que desplegarel men Ms , i
Crear

fonulaoa ydespus se- i Va snstente panformularuos


leccionar la opcin Asia- &#39;
y
tente para formularios. apagones
Se siguen los pasos indica-
dos por
el asistente,
selec- Quadro dialogo
de modal
cionando todos los campos &#39;
yeligiendo
la distribucin
I:4 I, mmm,
Justicadoycualquieres- L
tilo, por ejemplo, el estilo
Tcnico.

Asistentzponfomulum
cQadsvbuondeseawlvcunlfotmalab

Euuuela Datos

30
Captulo 1. Los sistemasde almacenamientode 1a informacin

10. Inserta
5 registrosen la tabla de propietarios a travs del formulario creado
en el apartado anterior.
y a Continuacin.inserta registros en la tabla Propieta-
riosAutomvilespara
hacer dueo de dos modelosde vehculosa cada uno de los
propietariosque has insertado.

Se abre el fonnulario Propietarios creado en el apartado anterior y se completan, todos los campos. Se
repite la operacin para cada una de los 5 registros.

Propietarios

DNI Nombre Acelncos


52201928 Joscarlos Garcia
Perez
Fecha
deNacimiento

Dueccnn
C/Loslamos,
15.Madnd,28034

Teltono

912234732!

LRegnstra
I;

Para el caso de PropietariosAutomviles, se abre la tabla y se insertan los registros manualmente. Es


fundamental que los valores insertados en el campo DNI de la tabla conesponda exactamente con alguno
de los propietarios insertados. De igual modo, los valores del campo Id deben corresponder con la clave
del Automvil del que es propietario, por ejemplo, Jos Carlos Garca Prez , con DNI .52201928, es
propietario de los vehculos 89 y 98, es decir, del Audi A3 1.4 TFSI AUT. 7V y del Audi A3 1.9 TDIe

v Fechacomup
v Agregar
nuevo
(yaZampas
dnzpoynmles
enpma:
seI/agonacays
52201928 s9 0335552010 &#39;""" 53"
W
, 52201928 98 02/04/2010: oPvopnetanos Eartaurama
i?

31
Bases de Datos

11. Realiza, con el asistente para la creacin de informes, un informe con los propie-
tarios de los vehculos que hay en la base de datos, mostrando qu vehculos posee
cada propietario.

En la pestaa Cnear hay que seleccionar la opcin Asistente para informes. Se selecciona el campo
Nombre de la tabla propietarios yla marca yel modelo de la tabla Automviles.
Crear
1r:: gEtcqueias
JL] Intorme
blanco
en - -
lnvorme Dueo de Tabla. metano:
[1 Asmente
para mormes
mmm Tabu: wwewmvhmbs

_. LAS
gL""!I1&#39;HHE3L;,
._*_ en

14:79-&#39;
1
Fecha Neumann)
de
Dnrecon
Telfono Ilmagenenate
&#39; lmogernFlelags
lntaoenieatne

jlmapemevrsesmm

Canceluv

Cmo desea
mr las
datos?

nor Aummvnes

Se siguen los pasas indi-


cadas por el asistente, se- gr m, N, mu
leccionando cmo se desea
ver los datos, si se pree-
re el informe agrupado por
algn nivel, la ordenacin
de los registros ynalmen-
te, la distribucin, orienta-
cin yestilo. Para termi-
nar, se abre el informe en
vista previa.

Propietarios

Aud A3 197D e MAN.


S
Aun: A5 14FS AU.
7V

muqrzolnx.
de :5
n-Iv:
5|SCJ:

32
Captulo 1. Los sistemasde almacenamientode la informacin

12. Crea una consulta


para ver el modelo
y la marca
de los vehculosdel
primer
propietario que insertaste.

En la pestaa Crear hay


que seleccionar la opcin
Diseo de consulta. A
continuacin,
se seleccio- i a Nom
nan las tres tablas de la ,_ ,,,,,,,,,,,, Apellidos
base de datos, mostrndo- Consumo
. \ """&#39;""""
seaslasrelaciones
entre "mmm gggr"
ellas. Para seleccionar _
los campos que salen . La
en la consulta
hay que (nuvo:
umarn Modelo rlombve DNI
aTTa-tm?
las alumnas Tlbll:
Automovxles
Amomvnles
Pvopuetanos
Propuetarios
Marca,Modelo,Nombne
y M::"
o m: y
,,_; J y
,
DNI de lastablasal panel (mmm: E1931
inferior. o:l

Posteriormente se aade
en la la Criterios y
columna DNI el valor
= 52201 928 . Para
_
terminar, con el botn l &#39;
Nombre v DN;
derecho sobre el ttulo un A31.4TFS|AUT.7V Joscarlos 52201923
de la consulta, se elige la A31.9TDIeMAN.5 Josecarlos 52201925
opcin guardar y se escribe
un nombre. Finalmente,
se puede ejecutar para ver
los resultados.

33
Bases de Datos

1.5. Prcticas Propuestas

Prctica 1.3: Base de datos de un instituto


Crea en Microsoft. Access 2007 una base de datos llamada lnstituto.accdb y realiza
los siguientes ejercicios.

1.

Crea una tabla llamada Alumnos con los campos DNI, Nombre, Direccin,
Fecha de nacimiento, foto, grupo y curso. Elige cuidadosamente el tipo de
datos para cada campo.

.Inserta 6 registros a travs de un formulario creado al efecto, tres registros


para el curso 1 y otros dos para el curso 2.

10. .Crea una consulta que muestre el campo DNI, Nombre yCurso, ordenado por
Curso y Nombre.

Crea una consulta que muestre todos los campos de la tabla Alumnos, con el
criterio Curso=2.

. Crea un informe para visualizar los alumnos de cada grupo.

11.
.Crea la tabla Asignatura con los campos NombreAsignatura, Codigo, Ciclo.

Crea la tabla Notas con los campos sucientes


alumno en una asignatura.
para insertar la nota de un

.Establece las relaciones entre las tablas Notas, Asignaturas y Alumnos.

Insertar mediante un formulario 4 asignaturas para dos ciclos distintos.

12. Crea consultas distintas para ver qu asignaturas tiene cada ciclo.

Inserta 2 notas para cada alumno anteriormente introducido.

Intenta insertar notas para alumnos y asignaturas que no existan Qu pro-


Captulo 1. Los sistemas de almacenamiento de 1a informacin

Prctica 1.4: Base de datos de mascotas


Crea una base de datos llamada Mascotasaccdb y realiza los siguientes ejercicios:

1.

Crea una tabla llamada Animales con los campos Nombre, Tipo, Raza, Peso
es y Color. Aade a la tabla un campo clave.

. Inserta 5registros en la tabla Animales.

Crea una consulta para ver los Animales de tipo Perro.

. Aade una nueva columna ala tabla Animales llamada Dueo.

.Completa el Dueo de cada uno de los Animales de la tabla.

.Aade una nueva columna a la tabla Animales llamada PrecioDeCompra. Es-


ta columna contendr un valor nulo (sin informacin) cuando el Animal fue
adquirido gratuitamente.

. Crea una tabla llamada Vacunaciones con los campos FechaVacunacion, Des-
cripcnVacuna, Veterinario y un campo que relacione la vacunacin con el
animal vacunado.

10. Crea las relaciones entre la tabla Animales y la tabla Vacunaciones.

.Inserta, para uno de los animales, 3 vacunas puestas por tres diferentes vete-

rinarios.
11.
12. un
Crea
informe
paralas
listar
vacunaciones
deanimales.
los
Crea un informe basado en la consulta del tercer ejercicio para ver las vacu-
13.
naciones de los perros.

Crea un formulario en vista diseo para poder aadir vacunaciones de los


animales.

Mediante la pestaa Datos Externos de Access, exporta los datos de la tabla


Animales a hlicrosoft Excel. Con la misma pestaa, crea una pgina web con
los datos exportados del informe de vacunaciones.
Bases de Datos

1.6. Resumen

Los conceptos clave de este captulo son los siguientes:

Un chero es una estructura de informacin que crea el sistema operativo para


almacenar informacin.

El tipo y formato del chero determina la forma de interpretar la informacin


que contiene. Se clasican segn su contenido, organizacin y utilidad.

Los cheros de texto no requieren un formato para ser interpretado puesto


que contienen nicamente texto, sin embargo, los cheros binarios, como al-
macenan mltiplesformas dedatos (texto, imgenes, vdeo... ) requieren una
aplicacin que sepa cmo est estructurada la informacin en ellos.

Una base de datos est organizada mediante tablas. Las tablas contienen re-
gistros de informacin o las. Cada registro est compuesto por mltiples
campos o columnas. Las tablas se relacionan entre s para dar cierto sentido a
la informacin almacena.da en ellas.

Una base de datos almacena multitud de objetos como tablas, consultas, ndi-
ces, vistas, informes, guiones y procedimientos.

Las bases de datos tienen mltiples aplicaciones, contables, administrativas,


motores de bsquedas, cientcas, bibliotecas, censos, virus, etc.

Las bases de datos se crean siguiendo un modelo o losofa. As, han evolu-
cionado desde las bases de datos jerrquicas y en red hasta las ms modernas
bases de datos distribuidas. Las ms comunes y utilizadas son las basadas en
el modelo relacional que propuso el ingeniero de IBM Edgar F. Codd.

Un SGBD es el conjunto de herramientas software que manipulan bases deda-


tos. Ofrecen a los usuarios funciones como almacenar y acceder datos, garanti-
zan la integridad y seguridad de los mismos y ofrecen, adems, otras funciones
avanzadas como la concurrencia, conectividad, generacin de estadsticas, etc.

El lenguaje SQL es una interfaz de programacin entre el usuario y la base de


datos. Se compone de varios sublenguajes: DML, DDL, DCL y TCL.

Los gestores de bases de datos que manipulan bases de datos pequeas se lla-
man gestores de basesde datos omticas, y los que manipulan bases de datos
medianas o grandes se denominan gestores de bases de datos corporativos.

36
Captulo 1. Los sistemas de almacenamiento de la informacin

1.7. Test de repaso


1. El contenido de un chero binario

a) Es legible y se puede abrir con un editor


de textos

b) Debe ser interpretado mediante un forma-


to
6. Una query es
c) Son caracteres imprimibles del cdigo AS-
CII a) Un comando o peticin que se enva a la
base de datos
d) Es un conjunto de pixels con colores
b) Una. bsqueda de informacin
2. Un chero de texto contiene c) Una operacin de ordenacin
a) Cualquier tipo de informacin d) Una estructura de informacin
b) Caracteres codicados en cdigo ASCII
o
UNICODE 7. Un ndice es til para

)
c) Los datos de una base de datos a Insertar informacin

b Borrar informacin
d) Datos que han de ser accedidos secuencial-
mente C Buscar y ordenar informacin
d
3. Las tablas de cdigos ascii
a) Usan 2 bytes para representar cada
carcter

b) Distancian las maysculas de las minscu-


las en 64 unidades

c) Tienen 256 caracteres distintos


d) Todas las anteriores son correctas

4. Seala el chero que no es binario


)
a) Un chero .avi

Un chero .html

b)

Unc)chero
.mp3
d) Un chero .doc
)
5. Un campo clave es
a) Un campo numrico
b) Un campo especial que puede repetir un

No
valores
)repeti
mismo valor

c) Un campo especial que no puede repetir


ningn valor
d) Un campo alfanumrico

8. Una vista es una tabla virtual que


a )Almacena los datos en la BBDD

b) No se almacena en la BBDD
Bases de Datos

1.8. Comprueba tu aprendizaje


1. N ombra los distintos tipos de bases 11.
de datos que existen segn el mo-
delo que siguen.
12.
.Enumera 10 usos que puede tener
una base de datos. Conoces alguna base de datos que
13. almacene conguraciones?
.Explica para qu sirven las tablas
UN ICODE. En qu consiste la funcin de se-
14. guridad de una BBDD?
.Clasica los tipos de chero segn
su contenido. Cmo garantiza la integridad de
15. los datos un SGBD?
Dnde almacenan las basesde da-
tos la informacin?
Qu es el diccionario de metada-

.Nombre 6 tipos de objetos que pue-


16. tos?

Qu quiere decir que una base de


de contener una base de datos.
datos soporta transacciones?
.Qu es un script o guin?

. Qu es una vista? En qu se di-


17.
Qu es ODBC?

Qu quiere decir que una base de


ferencia de una consulta?
datos permita concurrencia?
. Dene los siguientes conceptos: 18. Cul es la funcin del lenguaje
IDato TCL? Yla del lenguaje DML?

n Tipo de Dato 19. Cul es la extensin de un che-


ICampo ro que contiene una base de datos
Access?
IRegistro
-Tabla
20. Qu operacionesforman el mante-
nimiento de una tabla?
IRelacin
21. Describe dos formas de crear un
- Consulta
formulario en Access.
IProcedimiento
22. Cul es el tipo de datos que usa
10. Qu tienen en comn Larry Elli- Access para los valores monetarios?
son y Bill Gates?
23. Nombre 5 tipos de datos que per-
mite Access.

24. Describe dos formas de crear una


38 consulta en Access.
CAPTULO 2

Diseo lgico relacional


Objetivos
W
Identicar el signicado de la
simbologa de los diagramas
E/ R
Contenidos

Identicar las tablas


del diseo
Representacin
del problema lgico
hodelo de
datos Identicar los campos
que for-
Diagranlas E/R man parte
de las
tablas
.Identicar las relaciones entre
El l mode
o E/Ranphado tablas del diseo
lgico
El modelo
relacional Identicar los campos
clave
Transformacin E /R al modelo
relacional Aplicar reglas de
integridad
. . ,Identicar reglas de normaliza-
Normahzaclon ,,

cion
Identicar
y documentar
reglas
que no se pueden plasmar en el
diseo lgico

En este tema se trata a fondo e] diseo de una. base de datos, desde 1a inter-
pretacin yanlisis de un problema hasta el diseo ypropuesta de un modelo
que d solucin al problema planteado.

39