SlideShare una empresa de Scribd logo
1 de 325
Descargar para leer sin conexión
r.
«I! ¡TV1!
arceta
grupo editorial
Iván LópezMontalbán
M
Jesús Castellano
Pérez
John Ospino
Rivas
DAM
y
DAW
Bases de Datos
Técnico
Supe
en
Desa
de
Ap
M
y
Web
arceta
grupoeditorial
Iván López Montalbán
M3 Jesús Castellano Pérez
John Ospino Rivas
ISBN: 978-84-9281-291-2
IBERGARCETA PUBLICACIONES,
S.L., Madrid 2011
Edición: 1.°
Impresión: 3.
N.° de páginas: 328
Formato: 20 x 26 cm
Reservados los derechos para todos los países de lengua española. De conformidad con lo dispuesto en el artículo 270 y siguientes del
código penal vigente, podrán ser castigados con penas de multa y privación de libertad quienes reprodujeren o plagiaren, en todo o en
parte, una obra literaria, artística o cientíca fijada en cualquier tipo de soporte sin la preceptiva autorización. Ninguna parte de esta
publicación, incluido el diseño de la cubierta, puede ser reproducida, almacenada o trasmitida de ninguna forma, ni por ningún medio,
sea éste electrónico, químico, mecánico, electro-óptico, grabación, fotocopia o cualquier otro, sin la previa autorización escrita por parte
de la editorial.
Diríjase a CEDRO (Centro Español de Derechos Reprográcos), www.cedro.org, si necesita fotocopiar o escanear algún fragmento de esta
obra.
COPYRIGHT © 2011 IBERGARCETA PUBLICACIONES, S.L.
info@garceta.es
Bases de Datos
©
Iván López Montalbán, Ma Jesús Castellano Pérez, John Ospino Rivas
1.° edición, 3.° impresión
OI: 0078/2012
ISBN: 978-84-9281-291-2
Deposito Legal: M-33366-2011
Imagen de cubiertazpisotskii ©
fotoIia.com
Impresión:
PRINT
HOUSE, marca
registrada de
Copiar, S.
A.
IMPRESO ENESPAÑA-PRINTED IN SPAIN
Nota sobre enlaces a páginas web ajenas: Este libro puede incluir referencias a sitios web gestionados por terceros y ajenos a IBERGAR-
CETA PUBLICACIONES,S.L., que se incluyen sólo con nalidad informativa. IBERGARCETA PUBLICACIONES,S.L., no asume ningún tipo
de responsabilidad por los daños y perjuicios derivados del uso de los datos personales que pueda hacer un tercero encargado del man-
tenimiento de las páginas 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 publicación sin garantías, expresas o implícitas, sobre la información que se proporcione en ellas.
PRÓLOGO
Este libro está concebido para formar estudiantes de los ciclos de grado su-
perior DAM (Desarrollo deAplicaciones Multiplataforma) y
DAW (Desarrollo de
Aplicaciones Web). Más concrementamente, está pensado para cubrir la unidad de
competencia UC0026_3, programar bases de datos relacionales mediante el módulo
Base de datos común a ambos ciclos formativos.
Desde nuestra experiencia como administradores de bases de datos en empre-
sas multinacionales,
como profesores
de educaciónsecundaria (Informática)y como
profesores asociadosde universidad, hemos compuestoesta herramienta complemen-
taria a las clasesdel módulo de formación profesional e indispensable para lectores
independientes que quieran convertirse en programadores de basesde datos.
El contenido del libro tiene una orientación puramente práctica, con actividades,
consejos y ejercicios resueltos en Access, MySQL, Oracle y DB2, que facilitan al
profesor del módulo su completo seguimiento.
El objetivo del libro no esser una guía de referencia de un solo SGBD, sino la for-
mación de programadores de bases dedatos actualizados, versátiles y competentes.
Existe multitud de material disponible para la realización de las prácticas pro-
puestas en el blog bbdd-garceta.blogspot . com.
Índice general
1. Los sistemas de almacenamiento de la información
1.1. Ficheros
1.1.1. Tipos
de cheros
y formatos
.. . ........ ... .....
1.1.2. Ficheros de texto
1.1.3. Ficheros binarios
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. Evolución y tipos de base de datos
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 . . . . . . . . .. . . . . .. . . . . . . . .. .
Prácticas Resueltas . . .. . . . . . .. . . . . . .. .. . .. . . . . .
Prácticas Propuestas . . . . . .. . .. . . . . . .. . .. .. . . .. .
Resumen . .. . . . . . . . .. . . . .. . . . .. . .. . . .. .. . . .
Test de repaso . .. .. . .. . .. . . . .. . . . .. . . .. .. . . . .
Comprueba tu aprendizaje . .. . . . .. .. . .. . . . .. . .. . . .
1.2.
1.3.
1.4.
1.5.
1.6.
Bases de Datos
2.4.1. Generalización y Especialización . . . . . .. . . .. . . . . . .59
2.5. Construcción 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. Transformación de un diagrama E/ R al modelorelacional . . . . . . .67
2.8. Normalización . . .. . . . .. . . . . . . .. . . .. . .. . . . . . . .73
2.9. Prácticas Resueltas . . . .. . . . . . . .. . . . . . .. . . . . .. .. 77
2.10. Prácticas Propuestas . .. . . .. . . . .. . . . .. . .. . .. . . . .81
2.11. Resumen . . . . .. . .. . .. . . .. . . .. . . .. . .. . . .. . . .88
2.12. Test de repaso . . . . . .. . . . . . . . . . . . . . . . .. . . .. . .. 89
2.13. Comprueba tu aprendizaje .. . . . . . . . . . . . . . . . . . . . . . .90
3. Diseño físico relacional 91
3.1. Notación para la sintaxis . . . .. . . .. . . . . .. . .. . . .. . . .92
3.2. Herramientas grácas proporcionadas por los SGBD . . .. . . .. . .93
3.2.1. PhpMyAdmin de MySQL .. . . .. . . . .. . . . .. . . . .93
3.2.2. Oracle Enterprise Manager y
Grid Control . .. . . . . .. . .94
3.2.3. DB2 Data Studio . .. . . . . . . . . . . . . . . .. . . . . . .96
3.3. Intérpretes de comandos de los SGBD . .. . . . .. . . . . .. . .. .97
3.3.1. MySQL: El cliente de MySQL-Server .. . . . . . . .. .. . .98
3.3.2. Ejecución de consultas en MySQL .. . . . . . . . . . .. . . .99
3.3.3. SQL*Plus: El intérprete de comandos de Oracle . . . . . .. . 102
3.3.4. Ejecución de consultas en SQL*Plus .. .. . .. . . . . . . .103
3.4. El lenguaje de denición de datos . .. . .. . . . . . . . .. . . . . .104
3.5. Creación de bases de datos . . . . . .. . .. . . . . . . . . .. . . . .105
3.5.1. Creación de basesde datos en MySQL . .. . .. . . . . . . .105
3.5.2. Creación de bases de datos en Oracle . . .. . . .. . . . . .. 107
3.6. Modicación de una base de datos . . . . . . .. . . .. . .. .. . . .110
3.7. Borrado de bases de datos . .. . .. .. . . .. .. . . . . .. . . . .111
3.8. Creación de tablas . . .. . . .. . . . . . .. . .. . .. . . .. . . .111
3.8.1. Implementación de restricciones . . . . . .. . . . . . . . . . .113
3.8.2. Tipos de Datos . . . . . .. . . .. . . . . . . . .. . . . . .. 116
3.8.3. Características de la creación de tablas para MySQL . .. . .117
3.8.4. Características de la creación 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. Modicación de tablas . . . . .. . . . . . . . . . . . . .. .. . . .. 120
3.10. Borrado de tablas . . . . . .. . . . . . . . . .. . . . . . . . .. . . .122
3.11. Renombrado de tablas . . . . . . . . . . . . . .. . . .. .. . . . . .122
3.12. Prácticas Resueltas . . . . . .. . .. . . . . . . .. . .. . .. . .. .123
VIII
Índice general
3.13. Prácticas Propuestas .. . . . .. . .. . .. . . . .. . .. . . .. . .128
3.14. Resumen . . . . . .. . .. . . . . . .. . . . . . . . . . .. .. . .. .130
3.15. Test de repaso .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .131
3.16. Comprueba tu aprendizaje . .. . . . . . . . .. . . . . . . . . .. . . 132
. Realización de Consultas 133
4.1. El lenguaje DML . .. . . . . . . .. . .. . . . . . .. . . .. . . .. 134
4.2. La sentencia SELECT . . . . . .. . .. . . .. . .. . . . .. . . . .134
4.3. Consultas básicas .. . .. . .. .. . . . . . .. . .. . . . . . . . . .135
4.4. Filtros . . . . . . . . . .. . . .. . . . . . . . .. . .. . . .. . . . .137
4.4.1. Expresiones para ltros . .. .. . . . .. . . . .. . . . .. . .138
4.4.2. Construcción 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 patrón . . . .. . . . . . . . . . . . . . . .143
4.4.7. Filtros por límite de número de registros . . . . . . .. . . . .144
4.5. Ordenación . .. . . .. . . . . . . .. .. . .. . . .. .. . . . . . .145
4.6. Consultas de resumen . . . . .. . . .. . . . . . . . . . .. . . . . . .147
4.6.1. Filtros de Grupos . . . .. .. . . .. . . . . . . .. .. . . . .151
4.7. Subconsultas . . . . .. . . .. . . .. . .. . . .. . . . . .. . .. .152
4.7.1. Test de Comparación . . .. . . . .. .. . . . .. . . .. . . .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. Prácticas Resueltas . .. . . . . . . . . . .. .. . . . .. . . . . . . .172
4.12. Prácticas 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 grácas para la edición de los datos . . . . .. . . . . .186
5.1.1. Edición con phpMyAdmin .. .. . . . .. . . . . .. . .. .. 186
5.1.2. Access como entorno gráco 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 y
DELETE con subconsultas . . . .. .. . .193
5.8. Borrado y modicación 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 información . . . . . .. . .. . . . . .. . . . . . . . .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. Prácticas Resueltas . . . . .. . . . . .. . . .. . . . . .. . . . .. .221
5.16. Prácticas Propuestas . .. .. . . . . . . . . . . .. . . . . . . . . . .223
5.17. Resumen . .. . .. .. . . . .. .. .. . .. . . . . . . .. . . .. .. 228
5.18. Test de repaso . . . . . .. . . . . . . . . . .. . . .. .. . .. . . .. 229
5.19. Comprueba tu aprendizaje . .. .. . . .. . . .. . .. . . . . . .. . 230
6. Programación de bases de datos 231
6.1. Introducción a la programación de bases dedatos .. .. . . . .. .. 232
6.2. Los lenguajes de programación de bases dedatos . . . . . .. . .. .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. Gestión de errores . . . . . . .. . . . . . . . . . . .. .. . . .. . .. 251
6.7. Transacciones en scripts . . . . . . . . . . . . . . .. .. . .. . . . .253
6.8. Las secuencias . . . . . .. .. .. . . . .. . . . .. . . . . . . .. . .257
6.9. Prácticas Resueltas . . . .. . . .. . . .. . .. . .. . . . . . . . . .258
6.10. Prácticas 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. Técnicas de fragmentación .. . . . . .. . .. .. . . . . . .. . . . .270
7.3. Consultas distribuidas . .. . . . . . . . . .. . .. . . .. . . . .. .271
7.3.1. DB Links . . . .. . . . . . . .. . .. . . .. . . . . . .. . .271
7.3.2. Ejecución de consultas distribuidas . .. .. .. . . . . .. . .273
7.4. Transacciones distribuidas . . . . .. . . .. . .. . . . . .. . . . . .275
7.4.1. TWO-PHASE COMMIT . .. . . .. . . . . .. . . . . . . .. 276
7.4.2. Ejemplo de transacción distribuida . . . . . . . . . . . . . . .277
7.5. Optimización de consultas sobre basesde datos distribuidas . . . .. 280
7.5.1. Optimización mediante consultas derivadas .. . . . . . .. .. 280
7.5.2. Optimización mediante hints . . .. .. . . . . . . . . . .. . .281
7.6. Prácticas Resueltas . .. . . . . .. .. . .. . . . .. . . .. . .. . .283
7.7. Prácticas 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 dedatos 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 métodos . . .. .. . . .. . . . . .. . .. . . . . . . . . . . . . .301
8.5. La herencia . .. . . .. .. .. . . . .. . . .. . . . . . . . . . .. .304
8.6. Operaciones DML .. .. .. . . . .. .. . .. . . . . . . .. . . . . .306
8.7. Las referencias . . . .. . . . . .. . . .. . . . . . . . . . . . . . . . .307
8.8. Prácticas Resueltas . . .. . . . . . . .. . .. .. . .. . . .. .. . . 309
8.9. Prácticas Propuestas .. .. . . .. . . . .. . . .. . . .. . .. .. . 312
8.10. Resumen . . .. .. . . . . .. . .. . . . .. . . .. . . . . .. .. . . 314
8.11. Test de repaso . . . . . . . .. . . . . . . . . .. . . . . . . .. . . . .315
8.12. Comprueba tu aprendizaje .. . . . .. . . .. . . . . . . . . . . .. . 316
XI
CAPÍTULO 1
Los sistemas de almacenamiento
de la información
Objetivos
W
Analizar los sistemaslógicos de
almacenamiento V sus carac-
.terísticas
Contenidos
Identicar los distintos tipos de
Ñ
Ficheros.Tipos y
formatos 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 función de los ele-
datos
mentos de un sistema gestor de
base de datos
Clasicar los sistemas gestores
de bases de datos
Este capítulo introduce conceptos sencillos e intuitivos para establecer una
cultura básica de bases de datos, y poder, de este modo, avanzar a objeti-
vos más avanzados. E1estudiante, a modo introductorio, manejará, de forma
muy visual, conceptos tales como tablas y
relaciones. De esta manera, afron-
tará capítulos próximos con más experiencia, y
entenderá y
asimilará mejor el
diseño lógico y
sico de las bases dedatos.
Bases de Datos
1. 1. Ficheros
Un ordenador almacena muchos tipos de información, desde datos administrati-
vos, contables o bancarios hasta música, películas, partidas de videojuegos, páginas
webs, etc. Toda esta información está almacenada en los dispositivos de almace-
namiento del ordenador, esto es, discos duros, dvds, pen drives, etc. Para poder
organizar la información en estos dispositivos, se utilizan los cheros o archivos.
Los cheros son estructuras de información que crean los sistemas operativos de los
ordenadores para poder almacenar datos. Suelen tener un nombre y una extensión,
que determina el formato de la información que contiene.
1.1.1. Tipos de cheros y
formatos
El formato y tipo de chero determina la forma de interpretar la información
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 suinterpretación para dar
sentido a la información 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. Además, la imagen
posee una paleta de colores y unas dimensiones, información que también hay que
almacenar en el chero. Todos estosdatos seordenan según un formato, y el sistema
operativo, o la utilidad que trate los grácos, debe conocer este formato para poder
extraer los píxeles 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: Buscaen tu ordenador un
chero con extensión doc
(del pro-
cesador detextos Microsoft Word), y ábrelo conel bloc de notas,pulsando conel
ratón derecho sobre el y seleccionando la opción 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 aplicación de Microsoft.
Tradicionalmente, los cheros se han clasicado de muchasformas, segúnsu conte-
nido (texto o binario), según suorganización (secuencial,
directa, indexada)o según
su utilidad (maestros, históricos,
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 alfabéticos y números que entiende el ser humano, o pueden
Capítulo 1. Los sistemas de almacenamiento de Ia información
ser tratados como componentesde estructuras de datos más complejas,como cheros
que almacenan sonido, vídeo, imágenes, etc.
La organización de un chero dicta la forma en quese hande accedera losdatos,
así, los datos de un chero con organización secuencial, están dispuestos siguiendo
una secuencia ordenada, es decir, unos detrás de otros. Se caracterizan por tener
que recorrer todos los datos anteriores para llegar a uno en concreto. Los cheros
de organización directa, permiten acceder a un dato en concreto sin necesidad de
acceder a todos los anteriores. Finalmente, los de organización indexada acceden
a los datos consultando un índice, es decir, una estructura de datos que permite
acceder a la información rápidamente, simulando la forma en que el índice de un
libro facilita el acceso a sus contenidos. Existen también variantes de las anteriores
que mezclan las mejores características 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 organización, 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 necesariospara su proceso diario pasan a formar parte de los
cheros históricos.
Hoy en día, estas dos últimas clasicaciones han quedado en desuso. Por ejemplo,
desde la aparición de las bases de datos modernas, ya no se clasican según su
utilidad u organización.
Actualmente un sistema opera.tivo trata. un chero desde dos puntos de vista:
1. Segúnsu contenido(texto o datos binarios)
2. Según su tipo (imágenes, ejecutables, clips de videos, etc.)
1.1.2. Ficheros de texto
Los cheros de texto suelen llamarse también cheros planos o cheros ascii. El
vocablo ascii es un acrónimo de American Standard Code for Information Inter-
change. Es un estándar que asigna un valor numérico a cada carácter, 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 asignación de valores numéricos a caracteres viene dada por la famosa tabla
de códigos ascii, que es la más extendida, aunque existen otras. Se caracteriza por
utilizar 1 byte para la representación de cada carácter. Con x bits se puedengenerar
2 combinacionesdistintas de caracteres, ycomo 1byte =
8 bits, existen 28=
256
caracteres en la tabla de códigos ascii, numerados del 0 al 255.
<> Actividad 1.22 Conéctate
a Internet,y buscauna tablade códigos
ascii de8
bits. Observa las siguientes características:
- Los 32 primeros caracteres, sellaman caracteres no imprimibles y se utilizaban
tradicionalmente para el control de transmisiones.
ILa distancia entre mayúsculas y minúsculas es exactamente 32 caracteres.
n Hay caracteres queson numéricos, y cuyo valor ascii es elresultado de sumarle
48. Por ejemplo, 6+48=54. 54 es el código ascii del carácter 6.
Algunos alfabetos, como el katakana japonés utilizan más de 256 caracteres. En
estos casos,se requierenlas tablas de caracteres unicode, quereservan dosbytes para
cada carácter.
o Actividad 1.32 Conéctate
a http://mm.unicode.org/charts/ y descárgate
las tablasde códigosLatin (alfabeto latino) y K
atakana (alfabeto japonés).Observa
las siguientes curiosidades:
n La tabla de códigos Latin ,es exactamente idéntica a la tabla de códigos ascii
de 8 bits, solo que los bits del primer byte unicode, están todos a 0.
ILa tablas de códigos Latin y Katakana tienen múltiples 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 conguración: Son cheros cuyo contenido es texto sobre con-
guraciones del sistema operativo o de alguna aplicación. Estos pueden tener
extensión .ini, .inf ,.conf
Capítulo 1. Los sistemas de almacenamiento de la información
IFicheros de código fuente: Su contenido es texto con programas informáticos.
Ejemplos: sql, .c, .java
n Ficherosde páginas
web: Laspáginas webs
son cherosde textocon hipertexto
que interpreta el navegador. html, php, .css, .xml
n Formatos enriquecidos: Son textos que contienen códigos de control para ofre-
cer una visión del texto más elegante: .rtf, .ps ,.tex
¿Sabías que .. . 7
XML es unlenguaje estándar
para elintercambio de
datos entre aplicaciones informáticas. Se están desarrollando actualmente las
llamadas basesde datos nativas XML. cuyo foco principal es el aI1nacenamien-
to de documentos de texto con código en XML. y no las relaciones entre la
información, como sucede conlas basesde datos relacionales quese estudianen
el presentelibro. Por ejemplo, DB2 incorpora dentro de sumotor una nueva ca-
racterística 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 continuación se muestran algunos tipos de formatos de
cheros binarios:
IDe imagen: jpg, gif, .tiff, .bmp, .wmf, .png, .pcx; entre muchos otros
n De vídeo: .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 unaforma de escritura no secuencial, conbifurcaciones, quepermite que el
lector elija qué secuencia seguir y
que es presentado en una pantalla interactiva para facilitar la
navegación.
Bases de Datos
Generalmente los cheros que componen una base de datos son de tipo binario,
puesto que la información que hay almacenada en ellos debe tener una estructura
lógica y organizada para que lasaplicaciones puedan acceder aella de manera univer-
sal, estoes, siguiendoun estándar. Esta estructura. lógica y organizada, generalmente
es muy difícil de expresar mediante cheros de texto, por tanto, la información de
una base de datos se sueleguardar en uno o varios cheros:
u El software de gestión de base dedatos Oracle guarda la información en múlti-
ples tipos de cheros, llamados datales, temples, logles, etc.
IUn tipo de tablas del gestor liI;vSQL guarda su información en 3 cheros de
datos binarios, con extensión frm, myd y myi.
n Access guarda toda la información de una base de datos con extensión mdb.
<> Actividad 1.4: La siguiente imagen
es una
captura de
una carpeta
en elsistema
operativo Windows 7. Indica qué tipo de chero es cadauno de ellos y qué contiene.
HcmL-re Fecha de nmzhwïcecicn Tnpc Tamahc
u112i
l
E Battlestar Galactica
-lxLavi Úí 3-322v]? "LJ Íhp de ¿dee 6&#39;
-4
11
a
Í
u
r
J
"n
1
.
o
_.
__
(omojnstalantxt
i- DSCN0776JPG
5&#39; eclipseexe
l 1
v. q
.
t n1
a
¡If L
__
eclipseini
c:
t.
a
V
IJ -
.-- img_xp_sp3.iso
_
lícencia_windows.bct
,4
(¡r
Capítulo 1. Los sistemas de almacenamiento de la información
de forma ordenada y coherente (sincontradicciones). Cadauna de estas tablases
una estructura que se parece a las hojas de cálculo, 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, sepodría 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 información sobre cada empleado, por ejemplo el
nombre o el número de teléfono.
jímpliidïvï - - Y
CodngoEmple v Nombre v Apellidol v Apellndoz v Extension v Email v codugoo :
1 Marcos
Magaña Perez
3897 marcos@jardnneria.es
TAL-ES
4
2
Ruben López Martinez 2899
rlopez@jardmeria.es TAL-ES
3
Alberto Soria Carrasco 2837 asoria@}ardineria.es TAL-ES _
4
Maria Solís Jerez 2847 msolis@jardineria.es TAL-ES E
5 Felipe Rosas Marquez 2844 frosas@jardineria.es TAL-ES
l
6 JuanCarlos 0m: Serrano 2845 cortiz@jardnnerua.es TAL-ES l
7
Carlos Soria Jimenez 2444
csorxa@jardmeria.es MAD-ES
x
8 Mariano López Murcia 2442 mlopezcenardmenaes rvlAD-ES
9 Lucio Campoamor Manín 2442 lcampoamorczïjardineriaes MAD-ES
10 Hilario Rodriguez Huertas 2444 hrodrlguez@jardineria.es MAD-ES
11 Emmanuel Magaña Perez 2518 manu@¡ardinena.es BCN-ES
12 José
Manuel Martinez De laOsa 2519
¡mmanéïhotmarles BCN-ES
13 David Dalma Aceituno 2519
dpalma@jard¡neria.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 mboltoncaïgardeningmom SFC-USA
___ ___19 W_a|_ïe_r_ Santuag
Sanchez Lopez 7454 wssanchez@gardenlng.com SFC-USA
v
Registro:
H 4
46231 P N P -Buscar 4 m
l I
Figura 1.1: Ejemplo de tabla en Microsoft Access.
1.2.1. Conceptos
Uno de los grandesproblemas al que seenfrentan los informáticos cuando comien-
zan su aprendizaje, es el gran número de términos desconocidos que debe asimilar,
incluyendo el enorme número de sinónimos y siglas que se utilizan para nombrar la
misma cosa. Tratando, a modo de resumen, de aclarar algunos de lo componentes
que sepueden encontrar en una base dedatos, y que severán en próximos capítulos,
se denen los siguientes conceptos:
Dato: El dato es un trozo de información concreta sobre algún concepto o suceso.
Por ejemplo, 1996 esun número que representa un año 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 numéricos, que son aquellos con los que se pueden realizar cálculos
aritméticos (sumas,restas, multiplicaciones.
. .) y los datos alfanuméricos,
que
7
Bases de Datos
son losque contienen caracteres alfabéticos y dígitos numéricos. Estos datos al-
fanuméricos y
numéricos se puedencombinar para obtener tipos de datos más
elaborados. Por ejemplo, el tipo de dato Fecha contiene tres datos numéricos,
representando el día, el mes y el año de esafecha.
Campo: Un campo esun 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 denacimiento de las personasque hay en la tabla. Este campo
pertenece al tipo de dato Fecha. Al campo también se le llama columna.
Registro: Es una recolección de datos referentes a un mismo concepto o suceso.
Por ejemplo, los datos de una persona pueden ser su NIF, año de nacimiento,
su nombre, su dirección, etc. A los registros también 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. sección 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 instrucción para hacer peticiones a una base de datos. Puede ser
una búsqueda 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 extracción de información, en inglés
query, una consulta es una petición, por tanto, además de las consultas de
búsqueda de información, que devuelven los campos y registros solicitados,
hay consultas(peticiones) deeliminación o inserción deregistros, deactuali-
zación de registros, cuya ejecución altera los valores de los mismos.
Índice: Es una estructura
que almacena
los campos
clave de
una tabla,orga-
nizándolos para hacer más fácil encontrar y ordenar los registros de esatabla.
El índice tiene un funcionamiento similar al índice de un libro, guardando pa-
rejas de elementos: el elemento que se deseaindexar y su posición 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 posición marcada por el índice.
Vista: Es una transformación que se hace a una o más 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 denición.
Capítulo 1.
Los sistemas de almacenamiento de la información
Informe: Es un listado ordenado de los campos y registros seleccionados en un
formato fácil de leer. Generalmente se usan como peticiones expresas de un
tipo de información 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 través de un esquema. El esquema
es la denición de la estructura donde se almacenan los datos, contiene todo lo
necesario para organizar la información mediante tablas, registros (las) y campos
(columnas). Tambiéncontiene otrosobjetos necesarios
para el tratamiento de los
datos (procedimientos, vistas, índices, etc.) y que se estudiarán en este libro. Al
esquema también se le suele llamar metainformación, es decir, información sobre la
información 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. Véase gura 1.2.
1.2.3. Usos de las bases de datos
Las bases de datos son ubícuas, están en Cualquier tipo de sistema informático.
a continuación se exponen solo algunos ejemplos de sus usosmás frecuentes:
IBases de datos Administrativas: Cualquier empresa necesita registrar y rela-
cionar sus clientes, pedidos, facturas, productos, etc.
IBases de datos Contables: También es necesariogestionar los pagos, balances
de pérdidas y ganancias, patrimonio, declaraciones de hacienda. . .
IBases de datos para motores de búsquedas: Por ejemplo Google o Altavista.
tienen una base deda.tos gigantescadonde almacenan información sobre todos
los documentos de Internet. Posteriormente millones de usuarios buscan en la
base de datos de estos motores.
- Cientícas: Recolección de datos climáticos y medioambientales, químicos.
genómicos, geológicos.. .
IConguraciones: Almacenan datos de conguración de un sistema informático.
como por ejemplo, el registro de windows.
n Bibliotecas: Almacenan información bibliográca, por ejemplo, la famosa tien-
da virtual amazon o la. biblioteca de un instituto.
ICensos: Guardan información demográca de pueblos, ciudades y
paises.
IVirus: Los antivirus guardan información sobre todos los potenciales software
maliciosos.
IOtros muchos usos: Militares, videojuegos, deportes, etc.
¿Sabías que . . . 7
La &#39;WDCC (World
Data ClimateCenter), centro
mun-
dial para datos del clima, es la base de datos más grande del mundo. Almacena
alrededor de 6 petabytes de información, esto es 6144 Terabytes de informa-
ción sobre clima, predicciones y simulaciones. La base de datos de Google
está situada como la 4a más grande del mundo (Abril-QOIO).
10
Capitulo 1.
Los sistemas de almacenamiento de la información
<> Actividad 1.5: Buscaen Internet
las 10bases de
datos más
grandes del
mundo.
Anota su nombre y su tamaño, y, en una hoja de cálculo, genera un gráco que
muestre la comparativa del tamaño de estas basesde datos.
El consejo del buen administrador. . .
Siempre hay que hacer copias de seguridad regularmente y
a ser posible, de
varios tipos. Cuando una base de datos tiene un tamaño brutalmente grande
como las del WDCC
o Google, hacer copias de seguridad se convierte en al-
go prácticamente imposible, puesto que se tardarian semanas en realizarlas,
y, además, 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
prácticamente nula.
1.2.4. Evolución y
tipos de base de datos
La clasicación de lasbases dedatos en tipos, está.ligada a su evolución histórica.
Según ha ido avanzando la tecnología, las basesde datos han mejorado cambiando
la forma de representar y extraer la información.
De esta manera, se presenta la evolución sufrida por las bases dedatos desde las
épocas prehistóricas de la informática hasta la actualidad:
En la década de 1950 se inventan las cintas magnéticas, que solo podían ser
leídas de forma secuencial y ordenadamente. Estas cintas, almacenaban cheros con
registros que se procesabansecuencialmente junto con cheros de movimientos para
generar nuevos
cheros actualizados. Estos sistemasse conocencomo aplicaciones
basadas en sistemas de cheros y constituyen la generación cero de las bases de
datos, pues ni siquiera entonces existía el concepto de basesde datos.
En la década de1960 segeneraliza el uso dediscos magnéticos,cuya característica
principal es que se podía acceder de forma directa a cualquier parte de los cheros,
sin tener que acceder a todos los datos anteriores. Con esta tecnología aparecen las
bases dedatos jerárquicas y en red, queaprovechan la capacidad de acceso directo a
la información de los discos magnéticos para estructurar la información en forma de
11
Bases de Datos
listas enlazadas y árboles de información. La losofía de las bases dedatos en red es
que un concepto principal o padre puede tener numerosas relaciones con conceptos
secundarios o hijos. Las bases dedatos jerárquicas, evolucionan para admitir varios
padres para un concepto hijo.
¿Sabías que . . . 7
En octubre de1969 se
concibe elprimer modelode
base dedatos 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, cientíco informático inglés de IBM, publica en 1970 en un
artículo Un modelo relacional de datos para grandes bancos de datos compartidos
(A Relational Model ofData forLarge Shared
Data Banks), donde denió el modelo
relacional, basado en la lógica de predicados y la teoría de conjuntos. Nacieron, de
esta forma, las basesde datos relacionales, o segunda generación de basesde datos.
Larry Ellison, fundador de Oracle. se inspiró en este artículo para desarrollar el
famoso motor de basede datos, que comenzócomo un proyecto para la CIA (Central
Intelligence Agency) americana. La potente base matemática de este modelo, es el
gran secreto de su éxito. Hoy en día, el modelo relacional de Codd, pese a tener
muchas alternativas, sigue siendo el más utilizado a todos los niveles.
¿Sabías que . . . 7
Las leyes de
Codd son
un conjuntode 13reglas (de
la
regla O
a la regla 12) cuya nalidad es establecer las características 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 biografíade lossiguientes personajes,
y
comenta su principal contribución a la evolución de las basesde datos:
J Edgar Frank Codd J Bill Gates
J Larry Ellison J Michael Monty Widenius
J Roger Kent Summit
12
Capítulo 1. Los sistemas de almacenamiento de la información
En la década de 1980 IBM lanza su motor de bases de datos DB2, para la pla-
taforma MVS. Unos añosdespués, IBMcrea elSQL (Structured Query Language),
un potente lenguage de consultas para manipular información de bases de datos
relacionales.
A medidados de 1990, IBM lanza una versión de DB2 que escapaz de dividir una
base dedatos enorme en varios servidores comunicadospor líneas de gran velocidad,
creándose deeste modo las basesde datos paralelas. A
esta versión 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 dedatos la capacidad de
manipular objetos, creando así, las basesde 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 losofía de almacenar relaciones y tablas, se almacenan colecciones de
objetos que, además de información, tienen comportamientos (instrucciones sobre
cómo procesar los datos).
La aparición de Internet y el comienzo de la era de la información, crean nuevos
requirimientos para bases dedatos. La cantidad de información comienza a creceren
proporciones desconocidashasta el momento. De esta forma, se creanlas basesde da-
tos distribuidas, que consistenen multiplicar el número de ordenadoresque controlan
una basede datos (llamados nodos), intercambiándose información y actualizaciones
a través de la red. Este increible aumento de datos a almacenar, organizados muchas
veces en datos estadísticos recopilados con el trascurso de los años, hizo necesaria
la aparición de un software llamado Software de ayuda a la decisión. Este software
avanzado trata de dar respuestas concretasexaminando múltiples datos estadísticos
que se han recopilado a lo largo del tiempo en bases dedatos multidimensionales,
formando lo que se denominan cubos de información.
Ventas del 2do 172010
España, Huelva
Jamón de Bellota Q4
empo
¡z/broducto
Provincia &#39;
Figura 1.3: Ejemplo de cubo en una base de datos multidimensional.
13
Bases de Datos
También, a lo largo de la corta historia de la informática, han surgido otros tipos
de basesde datos que se enumeran a continuación:
- Bases de datos espaciales o geográcas: Son bases de datos que almacenan
mapas v
símbolos que representan supercies geográcas. Google Earth es
u
una aplicación que lanza consultas a bases dedatos de este tipo.
n Bases de datos documentales: Permiten la indexación de texto para poder
realizar búsquedas complejas en textos de gran longitud.
IBases de datos deductivas: Es un sistema de bases de datos que almacena
hechos y que permite, a través de procedimientos de inferencia, extraer nuevos
hechos. Sebasan en la lógica, por ello también se suelen llamar bases dedatos
lógicas.
Base de datos Datos almacenados
Sistemas de cheros Datos en cheros
Jerárquicas Estructuras de datos (listas y árboles) varios cheros
En red Estructuras de datos (árbolesy grafos)
Relacionales Teoría de conjuntos y relaciones
Orientadas a objetos Objetos complejos con comportamiento
Geográcas Puntos, Líneas y Polígonos una o varias BBDD
Deductivas Hechos y Reglas
Documentales Documentos
Distribuidas Múltiples varias BBDD en
Multidimensionales Cubos varios ordenadores
Cuadro 1.1: Resumen de los tipos de basesde 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 actualización 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 deestructurar en
múltiples discos duros los cheros de una base de datos, permitiendo el acceso asus
datos tanto a partir de herramientas grácas como a partir de potentes lenguajes de
programación (PL-SQL, php, c++. . .).
14
Capítulo 1.
Los sistemas de almacenamiento de 1a información
1.3.2. Funciones de un SGBD
Los SGBD del mercado cumplen con casi todas funciones que a continuación 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-
racterísticas físicas 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 deseguridad quegarantiza
el acceso a la información exclusivamente a aquellos usuarios que dispongan
de autorización.
4. Proporcionan un diccionario de metadatos, que contiene el esquemade la base
de datos, es decir, cómo están estructurados los datos en tablas, registros y
campos, las relaciones entre los datos, usuarios, permisos, etc. Este diccionario
de datos debe ser también 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
transacción serealicen correctamente, y en caso dealguna incidencia, deshacen
los cambios sin ningún tipo de complicación adicional.
6. Ofrecen, mediante completas herramientas, estadísticas sobre eluso 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 hipotéticos malfuncionamientos.
7. Permiten la concurrencia, es decir, varios usuarios trabajando sobre un mismo
conjunto de datos. Además, proporcionan mecanismos que permiten arbitrar
operaciones conflictivas en el acceso omodicación de un dato al mismo tiempo
por parte de varios usuarios.
8. Independizan los datos de la aplicación o usuario que esté utilizándolos, ha-
ciendo más fácil su migración a otras plataformas.
9. Ofrecen conectividad con el exterior. De esta manera, se puede replicar y
distribuir bases de datos. Además, todos los SGBD incorporan herramientas
15
Bases de Datos
estándar de
conectividad. Elprotocolo ODBC4está muyextendido como
forma
de comunicación entre bases de datos y aplicaciones externas.
10. Incorporan herramientas para la salvaguarda y restauración de la información
en caso de desastre. Algunos gestores, tienen sosticados mecanismos para
poder establecer el estado de una base dedatos en cualquier punto anterior en
el tiempo. Además, deben ofrecer sencillas herramientas para la importación
y exporta.ción automática de la información.
<> Actividad 1.72 Busca
en Internetlas leyes
de Coddpara elfuncionamiento de
sistemas gestores de bases de datos relaciones y establece una relación 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-
mación con el usuario. Este interfaz consiste en un lenguaje muy sencillo mediante
el cuál el usuario realiza preguntas al servidor, contestando este a las demandas del
usuario. Este lenguaje comúnmente se denomina SQL, Structured Query Language,
está estandarizado
por la 1805, esdecir, todaslas bases
de 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 demanipulación dedatos (Data Manipulation
Language). Estelenguaje permitecon 4sentencias sencillas
seleccionar deter-
minados datos (SELECT), insertar datos (INSERT), modicarlos (UPDATE)
o inclusoborrarlos (DELETE). En capítulosposteriores se
desarrollará lasin-
taxis de cada una de estas sentencias.
ILenguaje DDL: o lenguaje de denición de datos (Data Denition Langua-
ge). Estelenguaje permitecrear todala estructurade unabase de
datos (desde
tablas hasta usuarios). Sus cláusulas son del tipo DROP (Eliminar objetos) y
CREATE (Crear objetos). En capítulos posteriores
se detallarála sintaxis de
cada una de estas sentencias.
ODBC signica Open DatabaseConnectivity, y es unestándar deacceso a
datos desarrollado
por Microsoft
5180 esel acrónimode International Organization for Standardarization
16
Capítulo 1. Los sistemas de almacenamiento de la información
- Lenguaje DCL: o lenguaje decontrol 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 propósito de este
lengua.je es
permitir ejecutar varios comandosde forma simultánea como si fue-
ra un comando atómico o indivisible. Si esposible ejecutar todos los comandos,
se aplica la transacción (COMMIT), y si, en algún paso de la ejecución, sucede
algo inesperado,
se pueden
deshacer todos
los pasosdados (ROLLBACK).
<> Actividad 1.82 Buscaen laWikipedia eltérmino SQLe indicalas revisiones
que ha sufrido el lenguaje a lo largo del tiempo. A continuación, busca el signicado
del término SQL Injection e indica por qué un administrador debe protegersefrente
a él.
1.3.4. Tipos de SGBD
Se puedenclasicar los SGBD de muchas formas, por ejemplo, según lasbases de
datos que gestionan, clasicando los SGBD según traten bases dedatos relacionales,
bases dedatos orientadas a objetos, etc. Puesto que en la actualidad, la mayoría de
los SGBD integran múltiples losóas y tipos de funcionamiento, en este libro se
clasican los de gestoresde basesde datos según sucapacidad y potencia del propio
gestor:
Los Gestores de Bases de Datos omáticas son aquellos que manipulan
bases dedatos pequeñas (omáticas) orientadas a almacenar datos domésticos o de
pequeñas empresas.Incluso estos gestores permiten construir pequeñas 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 omático es Microsoft Access,
que poseetanto una interfaz de usuario muy sencilla como un potente lenguaje de
programación (VBA=VisualBasic forAplications) paraofrecer ausuarios avanzados
otras posibilidades de gestión mucho más especícas.
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 Servercon altas
prestaciones). Estos gestores soncapaces demanipular grandes cantidades de datos
17
Bases de Datos
de formamuy rápiday eciente para poderresolver lademanda de
muchos (cientos)
de usuarios. Un ejemplo típico de servidor de base dedatos Corporativas es el antes
comentado Oracle, actualmente, junto con DB2, el servidor de base de datos más
potente del mercado (tambiénel más caro). Precisamente,ese costetan alto es el
que ha desencadenado quese haya recurrido a una solución intermedia entre gesto-
res de base dedatos omáticas y corporativas. Entre estas soluciones intermedias se
encuentra MySQL, un gestor de base de datos que, además de ser gratuito y senci-
llo, es capaz de manipular gran cantidad de datos cumpliendo prácticamente todos
los estándares de la arquitectura ANSI SPARC. Aunque implementa SQL, no tiene
un lenguaje de programaciónpropio como SQL Server u Oracle (aunque estáen
desarrollo), pero a cambio se integra fácilmente en las típicas soluciones XAMPP,
que son paquetes que incluyen, además de MySQL, una versión del servidor Web
Apache yvarios lenguajes
de script (php, perl. ..) que dotana MySQL de potentes
herramientas para acceso y publicación de los datos.
Contabilidad Administración
Usuario 1
Figura 1.4: Esquema típico de organización de un SGBD corporativo.
18
Capítulo 1. Los sistemas de almacenamiento de 1ainformación
1.4.
Prácticas Resueltas
Práctica 1.1: Introducción a Microsoft Access.
En esta práctica, se aprenderá a manipular de forma básica el gestor de basesde da-
tos Access
de Microsoft.Abre la base de
datos Neptunoaccdb que puedes
descargar
de www.garcetaes, y realiza las siguientes acciones. Será necesariomodicar algún
objeto de la basede datos, por tanto guarda una copia con el nombre practicalaccdb
7
y conserva laoriginal para repetir 1apráctica cuantasveces desees.
f í I
J&#39;/_
Organizar
v
Nueva carpen
lEscritorio «i: rw- Fama es núüiue. Tip:
,4 Sitios
recientes
¡a Neptuncuccdb " Z LC .5" Hicrcscft ¿Fi-ze
..
E] Vehiculosaccdb 3 I JLC . ":r;;:v:
d, Biblioteeas _
1 Documentos s_
h
Imagenes
¡v Musica
«A! _
¡Administrar B deos
n; Grupoen el
hogar
1&#39;- Equipc - 4
Hombre de
archivo: Neptuncmccdb
v
i Microsoft Office
Access (mccd
v]
rm
_
Herramientas
v ICancelar |
Abre Microsoft Access y
pulsa el botón de Office. Selecciona la opción abrir, y
en el cuadro de diálogo, busca
la base de datos neptuno.
1. ¿Qué tipo de información almacena la base de datos?
Neptuno es una basede datosque incorporanlas versiones
antiguas deMicrosoft Access
(hasta
Access 2003)
7accdb es la extensión 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
infonnación que contiene, por ejemplo, la tabla de productos almacena información sobre alimentación y de-
rivados, por tanto, Neptuno es el sistema de información de una empresa que importa y eazportacomestibles
especialesde todo el mundo.
2.
¿Qué objetostiene la basede datos?
ÏrSBíaTM---wl < Id.d Todos
los
ObJQÍOS
deAccess
Dplazarse
l lacategoría 13m -
6
De leyar C°""&#39;*
s formularios
Iipode
objeto . m;
Catalogo
i
Si
Personalizado e
7)
K
((
(4
Iablas
yvistas
relacionadas
Fecha
de
¡reacion Etiquetas
decliente
fecha
de
modicacion nm".
Desplegando la lista del pa-
nel lateral izquierdo de Ac-
cess, se puede obtener un
listado
detodos
losobjetos 5°""
de la base de datos clasi- E°""&#39;-"¡°5
cados por tipos, es decir, Worms
tablas, consultas, formula- Eaginas
rios, informes, etc. Macro;
Módulos
Todos
los
objetos
de
Access
Filtrar
por
grupo Lista
alfabética
deproductos
¿EE
Twin Productos
por
categoría
Resumen
de
ventas
por
año
Resumen
de
ventas
por
trimestre
Subintorme
Catalogo
Subiriíorme
ventas
por
año
440040
Subiriionrie
ventas
por
categoria
4
4 TOÍMQS
d!VGHÍIS
D0!
Cllidld
o ventas
de
empleado
por
país
ventas
por
año
3. Explora todos los objetos de la base de datos, poniendoespecialénfasisen el
diseñode cada objeto, esdecir, en la forma en la que estánconstruidos.
Todos
los
obietos
de
Access <
r j pjd
- --r-- --- -- r >EtE|l¿:
e e c:
Consultas
Consuita
de
pedidos J pu,
A
Para explorar el conte-
nido de un objeto, bas-
ta con hacer un do-
ble clic con el botón
izquierdo del ratón y
examinar el panel fron-
tal. Para ver el diseño
se pulsa con el botón
derecho del ratón y
se selecciona la opción
Diseño. Por ejemplo,
la consulta Subtotales
por pedido consiste en
un listado de los pedi-
dos con su coste total.
Detalle
de
pedidos
con
descuento 7&#39;°P&#39;°°"°
iÏ
Precioumdad
L_
Facturas
Filtro
íacturas
Lista
ambetica
de
producto:
Lista
de
productos
actual
Los
die:
productos
mas
caros
C-mpo:
iapeaiao Subtotal:
SumaICMonedaIMetE
Tabla:
¿Detalles
de
pedidos
Productos
por
categoria l Total:
ihqrupnr
por Expresion
Orden:
Productos
sobre
elprecio
medio Mostrar: T}
Pedidos
trimestrales
Resumen
d!
VEMM
D0!
IÑO cmem:
i
Resumen
de
ventas
por
trimestre
E Zoom
Subtotalesporpedido &#39;
&#39;
y. " l
ÍSTototaI:
scanamdonedaweooLx-udadlcmhda
Totales
de
ventas
por
cantidad
r mnuwvloo
léiliíéi
Capítulo 1. Los sistemas de almacenamiento de Ia información
4. Añade
el campo Destinatario
a la consulta Subtotales por
pedido.
Entra en modo diseño y pulsando con el botón derecho en el panel superior, selecciona la opción Mostrar
Tabla. Después,
añade la tabla pedido. Verás cómo aparecen las dos tablas relacionadas, en una, los campos
genéricos del pedido (FechaPedido,FechaEntrega,etc.) y en la otra, el detalle
de cada uno de los pedidos.
A continuación, arrastra el campoDestinatario
de la tabla Pedido al panel inferior (en la tercera columna).
Deïaïle:
de[ELÏIZJC
a ïeaidr:
FecnaEntiega
FechaEnvio
FoimaEnvío
¡-
Cnigo
1 :
Destinatario
-
DirecdonDe
stin
riunannminn
&#39;
i Ianeaiao
9
ldPiodueto
PreeioUnidId
Cantidad
Descuento
Subtotal.
SumnCMonednIPvecioUmdad]cnntidldlu-[Descueiito]i100r100)
Destinatario i;
Pedidos
¡impresion Agiupnr
por
3.
5. Añade el
campo Email
a la
tabla Clientes,
es un campo de tipo
Texto y de
longitud 75. Examina las distintas propiedades
del campo y consulta la
ayuda de
Accessen
cada uno de ellos pulsando la tecla F1.
Entra en modo diseño y aparecerá la lista de campos
de la tabla.
Añade una nueva la y completa el nombre
de campo, el tipo y la descripción. A continuación, rellena las
propiedades del campo.
Puedes, por ejemplo,
poner una regla
de validación para quelos emails tengan el formato nombre@dominio, esdecir, que tengan
una @ en el terio del email. Para poner la regla
de validación, pon Como *@* en el campo Regla
de
validación
Nombre
de!
campo Tipo
de datos Descripción
i Idcliente Texto Código
únicobasado
enel nombre
delcliente.
Nombrecompañía Texto
Nombrecontacto Texto
Cargocoritacio Texto
Dirección Texto Ca|le
oapartado
de correos.
Ciudad Texto
Región Texto Estado
oprovincia.
códPostal Texto
País Texto
Telefono Texto incluye
código
de país
o
de área.
Fax Texto Incluye
codigo
de país
o
de área.
Email Texto Nuevo
Campo
añadido
Propiedaues
delcampo
General
aúsqueu
Tamaño
del
campo 75
Formato
Mascara
deentrada
Título
Bases de Datos
6. Examina las relacionesde las tablas que contienela.basede datos Neptuno.
&#39;.,¿¿u¿-¡¿
(¿te
12.1»;
re:;1c.=:¿_1¡¡¿ ¡l ÏW-Vï
nIaProuucto Í WIWGO uldPeaido " ¿Mm
rlombrePvodu
l l ÏÚPWÜ-W ¡atinente N°mh"c°"p&#39;ñ¡&#39;
ldProveedor P&#39;&#39;°U"&#39;°3°
ldEmpIeIdo N°mb"c°m&#39;d°
ldcategovíu ("5" FechaPedndo C"°°(°""°
CanhdaaPovU °°"° FecmEntrega D_"""°"
Preuounuaao FecnaEnvío (Wa
UnndadesEnb
,_._¿_4__ FonnaEnvio Sa?"
unidadesEnPi
&#39; r _
&#39;
u Cargo °° al
d .
* &#39; Empleada Duhnltlno p
-
A ua _ .
p.
&#39;
o L DvremonDest
a Nombre CIudadDemn.
Ho»
aeDFODICUBUQS Cargo I
Tratamiento Rlolonmmn" J * &#39;
. Depenaenuas
del
Objlïí (ogpoggmpg; ldc°m9"&#39;¡¡""&#39;°5
Fechannrnlent- . ¡qompucomnñ
&#39;¡
53&#39;
5""J" Fecnacontratna
Pmoemrm" 1,¡¿¡¿,na
I
l &#39;l"rvr
:c."-- Dirección
v
4
Íz-ncehx
seamic;
Las relaciones dictan cómo se puede enlazar la información de diferentes tablas para obtener información
más elaborada. Para ver las relaciones de la base de datos, se pulsa en Herramientas de Bases de Datos
y a continuación en el botón Relaciones
7. Un formulariova siempreasociadoa las operaciones
quesehacenconuna tabla,
a las que comúnmentesellama mantenimiento de tabla,observael funcionamiento
del formulario Clientes
y comentaqué operaciones
sonestas.Realiza al menosuna
vez cada una de las operaciones
que permite el formulario.
Las 4 operaciones queforman el mantenimiento de una tabla son la insertión o alta, eliminación o baja,
modicación o actualización y búsqueda o consulta de un registro. Todas estas opemciones se pueden
realizar de forma muy sencilla y visual a través del formulario.
8. Inserta un nuevo cliente en la base de datos.
Y
lo.declientev Nombre
decompañia v Nombre
delcontact
-
Insertar un cliente es muy sencillo, WANDK Diewandemde
Kuh Rita
Muller
se puede hace-ra través del forfnularío VJÁRTH Wála Herkku Dnrkxo
KOSKIXBÍO
&#39;C[ien¿¿3
o abñendo [a tabla (jaen- WELLI Wellington
Importadora Paula
Parents
tes! y desplazarseal último mgistm_ WHKTC white
Cloverrvlarkets Karllablonsku
WRLMK wllman
Kala MaruKamunen
WOLZA wclska
Zaiazd Zbyszek
DIestrzenIev_
ILMSR La
Cantina
deSan
Roman Antonio
Lopez
b
Registro.
K 492
de
92D
o . Busur 1Lv
En una la vacía, se agregan los va-
lonescorrespondientes a cada campo.
9. Elimina el registrocorrespondiente
al cliente Rancho Grande. ¿Es posible?Si
no esposible.¿Quéhabría que hacerpara poder eliminarlo?
22
Capítulo 1. Los sistemas de almacenamiento de la información
Para eliminar el cliente, hay que buscar el cliente Rancho Grande . A continuación, se señala. la la
con el botón derecho del ratón y se escoge la opción 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, habría que eliminar previamente todos sus datos asociados.
j Clientes -- Y
Nombre
decompañia v Nombre
delcontact- Cargo
delcontacto - e
¡ Jensen «re-IMM»
L Sergio
Gutiérrez Representante
deventas Av.da
Nummgism nGrocery Paula
wilson Representante
agente
ventas
2817i
¡"""" "WW i Maurizio
Moroni Asistente
deventas Strad.
CMI! Janete
Limeira Asistente
deagente
deventaAv.Cr:
5gp." Michael
Holz Gerente
deventas Greni
Ale¡andra
Camino Gerente
decontabilidad Gran"
Rancho
Gun
I l D
¿no
de
fila... i l
10. Modica el valor del campo Nombre de Contacto del registro correspondiente
al cliente Romero
y Tomillo.
A continuación, modica el campo Id. de Cliente
cambiándolo su valor a ROMMY. ¿Es posible modicar el Id. de Cliente? Si es
posible, ¿conservael cliente aún sus pedidos?
Pana modicar el cliente, se localiza su la y se sitúa el cursor del ratón en el campo que se desea
modicar. Después, 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 relación. Modicar
el campo Id. de Cliente podría suponer la.pérdida de pedidos si no se actualizara a su vez todos los pedidos
del cliente. Access efectúa esta modicación automáticamente al cambiar el identicador del cliente, por
tanto, no hay pérdida de pedidos.
3 [lie-ita - Y
ld.decliente Nombre
decompañia
- Nombre
delcontact- Cargo
delcontacto DirA
QUEEN Queen
Cozlnha Lúcia
Carvalho Asistente
demarketing Alameda
d(
QUlCK QUICK-Stop Horst
¡(loss Gerente
decontabilidad Taucnerstre
RANCH Rancho
grande Sergio
Gutierrez Representante
deventas Av.delLibe
RATTC Rartlesnake
Canyon
Grocery Paula
Wilson Representante
agente
ventas
2817
Miltor
REGGC Reggiani
Caseifici Maurizio
Moroni Asistente
deventas Strada
prev:
RICAR Ricardo
Adocicados Janete
Limeira Asistente
deagente
deventaAv,Copacai:
Richter
Supermarkt Michael
Holz Gerente
deventas Grenzacher
I t Romero
vtomillo Jose
Modificado Gerente
decontabilidad Gran
Vía,1
.__*-SANTG__ __janteourmet_,_.__.__-,
__._._
_.Jonas Beraulisen Drooietario Erlinzskaki&#39;
Registro:
I< 4 69de
92
D N i. eroyTomillo 1 . l D
11. Abre la tabla de proveedores
y consulta qué productos proveeel proveedor Leka
Trading
Primero, se localiza el proveedor en la tabla de Proveedores mediante el cuadro Buscar. A continuación,
se pulsa el icono + del campo Id de Proveedor para desplegarlas relaciones que tiene con Productos.
18AuxJOyEUX
ecclesiastiques Guylene
Nodier Gerente
devent
19NewEngland
Seafood
Cannery Robo
Merchant Agente
decuent
20Leka
Trading Chandra
Leka Propietario
ld.deproducto- Nombre
deproducto Categoria - Cantidad
porUnidav
Tallarines
deSingapur Granos/Cereales 32- 1kgpaq.
43Cafe
deMalasia Bebidas 16- latas500
g
44Azucar
negra
Malacca Condimentos 20
- bolsas
2kg
(Nuevo)
,_..__¡_,_ ,-.s.... ».___.__i- __.
egistro:
I< l de3 D
H 0 - LeknTnding4 l
23
Bases de Datos
12. Consulta la ayuda de Accessy comenta los diferentes tipos de datos que puede
almacenar un campo en Access (Texto, Memo, Numérico).
En Access existen 10 tipos de datos básicos:
Datos adjuntosComo fotos digitales. En cada registro es posible adjuntar varios archivos. Este tipo de
datos no estaba disponible en versiones anteriores de Access.
AutonumérícoNúmeros que se generan automáticamente para cada registro.
Moneda Valores monetarios.
Fecha/HoraFechas y
Horas
HípervínculoComo direcciones de páginas web.
MemoBloques de tezto largos y
tezto que emplean formato de texto. Una utilidad típica de un campo Memo
sería una descripción de producto detallada.
Objeto OLEObjetos OLE (objeto OLE: objeto que admite el protocolo OLE para la vinculación e in-
crustación de objetos. Un objeto OLE de un servidor OLE (por ejemplo, una imagen de Paint de
Windows o una hoja de cálculo de Álicrosoft Excel), se puede vincular o incrustar en un campo,
formulario o informe.
Texto Valores alfanuméricos cortos, como un apellido o una dirección.
Número Valores numéricos, como distancias. Hay que tener en cuenta que existe un tipo de datos inde-
pendiente para la moneda.
Sí/No Valores Booleanos oLógicos. Admiten únicamente el valor Si y el valor No.
13. ¿Qué subtípos de datos tiene el campo numérico en Access?
El tipo numérico se puede dividir en subtípos dependiendo del tamaño de campo que se eli-
ja. Asi, los campos numéricos almacenarán un rango de valores muy distinto dependiendo del
tamaño del campo que se seleccione. Por ejemplo, los tamaños byte (1 byte), entero (2 by-
tes), entero lango (4 bytes), simple y doble precisión (coma otante de 4
y 8
bytes), etc.
GEMFN Búsqueda
Tamaño del
campo Entero lar -
Lugares decimales ¡"NFO
Mascara de
entrada Eme) ¿&#39;90
Titulo
Valor
predeterminado
Regla devalidación
i Textode validación
Requerido No
Indexado No
Etiquetas inteligentes
Alineación deltexto General
Doble
Id. dereplica
Decimal
24
Capítulo 1. Lossistemasde almacenamientode 1ainformación
14. ¿Quévaloresadmitiría un camponuméricode
1 byte?
Como 1 byte son 8 bits, se estima que los valores numéricos 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 Accesslos rechazará. Nótese que este cálculo se hace sin tener en
cuenta el signo del valor, puesto que el valor byte, no admite signo. Para utilizar números con signo ha
de escogerseel tipo Entero y pam utilizar númems reales, con.decimales, debe seleccionarse un campo en
formato de comaotante (simpleo doble)o el campodecimal.
15. Crea una tabla llamada Test conun únicocamponuméricode
1 byte. ¿Quéva-
loresmáximo y mínimo sepuedenalmacenar?Prueba a insertar registrospara ve-
ricarlo.
-/ Crear Datos
externos
ÍHICIO
La . &#39;.
l 3 _ Nombre
delcampo Tupo
dedaios
Para crear una tabla!sepulsa Tabla
Plantnllas
Lnstasae
DISEÑO Numem
en la pestaña Crear y se selec- 0mm Shmpm"!
&#39; d!"
. . . v,
. pn wca a
czonael icono Tabla. A contz- 3m _ &#39; &#39; &#39;
&#39;
&#39;
e e
nuación se pulsa el botón Ver 5mm _,Bús9us9I__AA__
___
y se seleccionala opciónDi-
- Cree
unanuevstablaracxa
Puede
a...nlos T""""°
°""°° 5V
- campcs
uuenamente
enuna
nueva
¡abla
o F°""¡°
seno Se Pone7mm? a l ta con!
launla
envlsxa
Duseño. Luoms
netimnles Automnko
bla, y se modica la línea que l _ Mnsaradunivldl
a anece
conelnombre
Id ti L: m: mu
P y po _J Valor
predelermmado
autonuméïico para poner los &#39;
Huevo
Aguggr
campo; Regll
aevaludauon
datosdel campo.En Tamaño Ei, 3&#39;39 m ° "°"°&#39;°
Requerido No
delcampo
hayque
seleccionar 2 &#39; l indexado snsm
GUDIICIGOS]
Byte _ 4 Etiquetas
inteligentes
Ahnenaon
del
texto 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], seproduce
el siguienteerror:
El
valor
que
ha
especicado
nacoincide
(un
eltipo
dedatos
Número
de
esta
eolumm.
Especique
un
valor
nuevo.
Ayuda
con
los
tipos
de
datos
yformatos.
25
Bases de Datos
Práctica 1.2: Manipulación deinformación enAccess.
Descarga dewww. garcetaes 1a basede datos de Vehículos (Vehiculosaccdb) y ábre-
la. Será necesario modicar algún objeto de la base de datos, por tanto guarda una
copia con el nombre practicalaccdb y conserva la original para repetir la práctica
cuantas VECES CÏGSGGS.
1. ¿Cuántos modelos de vehículos hay?
x
r
Modelo -censor-nro":
Se abre la tabla en modo Vista 1
A|a Romeo 147 1.6 rs
16V 10s
cv 3/5 8.1
de Hoja de Datos , y,
se con- 2 Alfa Romeo 147 1.o
rs 15v12o cv
3/5 3,2
sulta
el contador de 3Alfa
ROMEO 147 1.9
JTD IZÜ
CV 3/5
que hayen ¡aparte
¿nm-o, ¿el 4
Alfa Romeo 147
1.9 no
M-JET 15o
cv 3/5
paneLEn este
caso, 3654
mo_ 5 Alfa
Romeo 147
2.0TS 16v
3/5
d l . Alfa
Romeo 147 2.0
TS 16V
Selespeed 3/5
eos. , , , , _ _ ,,_ , ,,_ _ _
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 5
primeros modelos que apanecen son los que más consumen.
x
Mocelo -Ïioosumo -1 yFmamnnac
.v._ ,JU, . -
19
Ferran 612 agua. 20&#39;s Qrdenar
de menor
a
mayor
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 L1»
1262 Jeep gnerokee 3.7V 16,5
1657 Mercedes-Ben
m. 63
AMG Autom.
(1641 16,5
Agcno de
tolumna,
Qculuv columnas
3. Inserta un nuevo modelo de automóvil completando todos los campos.
Se pulsa el icono insertar registro y,
a continuación, se rellenan todos los datos menos el
campo Id, que es autonumérico y
por tanto se rellena automáticamente. El campo ñmagen
se rellena haciendo doble clic sobre el dato adjunto y
se selecciona una imagen de tipo bmp.
juanma
Id -I Marca - 7 7
¡Mooeio y N
- Consumo -1 Emnsrones - n
t d 7A
3652 Volvo xcsc vsAWD AUT
7A 13.5 322
3653 volvo xcsc vsAWD Am
EXECUTPJE/SDOR 13.3 317
3554 votvo xcso vsAWD AUT 133
317
" 3655
Ferrari Tesïarossa 22.27
Huevo,-
Regístra
N4
365?
M3655 ¡
&#39;0-
J,
J.
m;
26
Capítulo 1. Los sistemas de almacenamiento de la información
4. Crea y ejecuta una consulta para ver los automóviles de la marca Seat, repite
el procedimiento para los automóviles de la marca Toyota y Volkswagen.
¿miente nao ¿QmmrooS"d&#39;mumfmh ¿Desea
ma wnsuudeoetaloeoremwm?
(QHSUKBS
Nededeádenúsdeuwmuhodia.
Automóvnes Seal
1-:
llmmaem 4, Ésta es
toda la
mfovmaoón que
natura el
¡sustenta para
crear la
consutn.
l Imagenoeïlags
flmagmyneumg l Desea
abnr
la mnsulm
o
moáwcar
ei dxseño
de la
COHSUÍG
g
ImagenFneTmeSmw
<1 e
enFueT _ .
ilzagmeg y
agravante consulta para
ver nxmoco. ..........
m
g íiodca
el dzseño
oe A
Se puede crear una consulta de varias formas: con el
asistente para creación de consultas, con vista diseño
o creando una consulta en modo
SQL. En esta solu-
ción se opta por la primera opción, se pulsa en la pes-
taña Crear y
se selecciona la opción Asistente
pam Consumo
consultas. Primero, se selecciona la opción Asistente E"""°
para consultas sencillas y después se eligen los cam-
pos que se mostrarán en la consulta, Marca, Modelo,
Consumo y
Emisiones. En segundo lugar se elige la :[Luna] {Consumo}
opción Detalle y
nalmente se da un nombre a la Automoviles Lutomovules áutomovules
tabla. Para tenninar, se seleccionará la opción Mo-
dicar diseño de la consulta.
A
continuación, se establece el criterio a ltm para la
búsqueda de los automóviles 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 Diseño, pues se ALHAMBRA 1.8 MAN.6
realiza de forma idéntica a cuando se modica
el di- -»«HA&#39;4BRA1.9TD|AUT.5
seña de la consulta. . ÁLHAMBRÁ 1.9 ÏÜl
MAÑ.
5
Sea. A_r-;ANBF.A 2.0 NAAN.
6 y
Regnstvc N1 de
93 b
DI p .Busca:
27
Bases de Datos
5.
Abre el formulario Catálogo
Ferrari en
modo Diseño y describe cómo seenlazan
sus campos
a la base de datos.
Para abrir el formulario en modo diseño. se selecciona el objeto Catálogo Ferrari en el pa-
nel lateral y pulsando con el botón derecho del ratón se elige la opción Diseño del For-
mulario. A continuación, se selecciona cualquiera de los campos y se pulsa en. el botón Ho-
ja de Propiedades que esta. situado en la pestaña de Diseño para mostrar las propiedades de
los controles del formulario. En la hoja de propiedades aparece la opción Origen del control.
j (alüogofarui
&#39;
-n-|-I&#39;2"I&#39;3"I-4
- -&#39;
&#39;
&#39;
&#39;
&#39;
&#39;
&#39;
&#39;
-- «n-
HC]!
d:prcpmoades
Tipo
deselecclcn
Cuadro
oe(eno
Maru
FormnoUNOSEventos01m ïoaus
¡ ngen
delcontrol
u . y
Mascara
deentrada
¡mov
predeterminado
Regla
devahdaclon
6.
Crea una
tabla llamada Propietarios con los Campos DNI,
Nombre, Apellidos,
Fecha de
Nacimiento, Dirección y Teléfono. DNI será el Campo clavede
la tabla.
De la pestaña Crear, se escoge la opción Diseño de tabla, y se rellenan las las con cada uno de los
campos que va a tener la tabla. Se ha de poner atención en. el tamaño de cada uno de los campos.
¡DNI - Texto (10)
nNombre
- Texto (20)
¡Apellidos Texto (70)
¡Fecha de Nacimiento
- Fecha/Hora
nDirección - Texto (255)
I Teléfono
- 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 asignación del
nombre de la tabla.
_
T; __: -¿.:;
Nombre delcampo
¿t i V DNI exto Doc
ama
manana:
una:
aeDueño»Nombre Texto Nor
detam: SharePoint
&#39; de
¡abla Apemdos Texto Ap¿
l Fecha
deNaccmuenio ¿erre/Hora Fec
DITECCIÓH Texto Dire
Telefono Texto Tele
28
Capítulo 1. Los sistemasde almacenamientode la información
7. Creaunatabla llamadaPropietariosAutomoviles
conloscampos
DNI
(del pro-
pietario), Id
(del automóvil)
y Fecha
de Compra. Establececomo
clave principal
de
la tabla, los camposDNI
e Id.
Se repite el procedimiento de la cuestión anterior, esta vez, teniendo en cuenta que el tipo y tamaño de
loscampos
DNI e Id
debe ser igualal de las tablasPropietariosy Automóviles,esdecir,DNI - Texto(10)
e Id (Numérico, Entero Largo). El campoFecha de Compraserá de tipo Fecha/Hora. Para establecer
la
clave principal se seleccionan las doslas correspondientes a los camposId y DNI y se pulsa el botón 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 continuación, se-
leccionar las tres tablas y agregarlas al panel de relaciones. Para enlazar el campo Id de las tablas de Au-
tomóviles y PropietariosA-utomóviles se selecciona el campo Id de esta última y se arrastra hasta el campo
Id Automóviles. 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 estén
relacionados con Vehículos (Id) realmente existan en la base de datos, y, para actualizar el campo Id en la
tabla PmpietariosAutomóviles de forma automática si se modica en la tabla Automóviles. Se repite este
procesopara el DNI. Observa el mapa
de relaciones como se ilustra a continuación.
Henarmentas
de
base
dedatos . __ r
"-*&#39;-&#39;
- 5- " ;:.x
&#39;. : ¡ZCEEIILL
. bld g Dm
e4 .
- Dependencias
del
crudo th". "WW"
¡ÏEÍHCIOHGS Idoaela ápelhdos
C°"W"° Fecha
de
Nacnmierr
Llamar
u ccpha: Emisnones ¡mamon
¡""9" Telefono
J Egg:
nmgndad
reference!
yV
&<sa.¿=2¿n_ rs¡.e99¿922á
arma
en
cascada
los
regsros
relacionados
29
Bases de Datos
9. Crea un formulario con todos los campos de Propietarios mediante el asistente
de creación de formularios. Usa la opción de diseño Justicado y un estilo a tu
elección.
Crear
En
lapestaña Crear
hay Élghmmaazgsïm
que desplegar
el menúMás , ¿i
fonulaoa y
después se- i ¿snstente panformularuos
leccionar la opción Asia- &#39;
y
tente para formularios. ¿apagones
Se siguen los pasos indica-
dos por
el asistente,
selec-
cionando todos los campos &#39;
y
eligiendo
la distribución
I:4 I, mmm,
Justicadoy
cualquier
es- Í L
tilo, por ejemplo, el estilo Ï
Técnico.
a
V
Quadro de
dialogo modal
Asistentzponfomulum
cQaédsvbuoándeseawlvcunlfotmalab
Euuuela Datos
30
Capítulo 1. Lossistemasde almacenamientode 1ainformación
10. Inserta
5 registrosen la tabla de propietariosa través del formulario creado
en el apartado anterior.
y a Continuación.inserta registrosen la tabla Propieta-
riosAutomóvilespara
hacer dueño de dos modelosde vehículosa 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 operación para cada una de los 5 registros.
Propietarios
DNI Nombre Acelncos
52201928 José
carlos Garcia
Perez
Fecha
deNacimiento
Dueccnón
C/Los
álamos,
15.Madnd,
28034
Telétono
912234732!
LRegnstra
I;
Para el caso de PropietariosAutomóviles, 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 Automóvil del que es propietario, por ejemplo, José Carlos García Pérez , con DNI .52201928, es
propietario de los vehículos 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
(ya
Zampas
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 creación de informes, un informe con los propie-
tarios de los vehículos que hay en la base de datos, mostrando qué vehículos posee
cada propietario.
En la pestaña Cnear hay que seleccionar la opción Asistente para informes. Se selecciona el campo
Nombre de la tabla propietarios y
la marca y
el modelo de la tabla Automóviles.
Crear
1r:: g
Etcqueias
J
L] Intorme en
blanco - -
lnvorme Dueño de Tabla. metano:
[1 Asmente
para míormes
¡mmm Tabu: wwewmvhmbs
_
. ¡LAS
g
L""!I1Ñ&#39;HÏH¡E3L;,
._*_ en
14:79 1
-&#39;
Fecha de
Neumann)
Dnrecoón
Teléfono Ilmagenenate
&#39; lmogernFleïlags
lntaoenieatne
jlmapemñevrsesmm
Canceluv
¿Cómo desea
mr las
datos?
nor Aummóvnes
Se siguen los pasas indi-
cadas por el asistente, se- ¡gr m, N, mu
leccionando cómo se desea
ver los datos, si se pree-
re el informe agrupado por
algún nivel, la ordenación
de los registros y
nalmen-
te, la distribución, orienta-
ción y
estilo. Para termi-
nar, se abre el informe en
vista previa.
Propietarios
Aud A3 19
7De MAN.
S
Aun: A5 14
FS AU.
7V
muqrzolnx. :5
de n-Iv:
5|SCJ:
32
Capítulo 1. Los sistemasde almacenamientode la información
12. Crea una consulta
para ver el modelo
y la marca
de los vehículosdel
primer
propietarioque insertaste.
En la pestaña Crear hay
que seleccionar la opción
Diseño de consulta. A
continuación,
se seleccio- i ¡a Nom
nan las tres tablas de la ,_ ¡,,,,,¿,,,,,,, Apellidos
base de datos, mostrándo- Consumo
.  """°&#39;""""
seasílasrelaciones
entre ¡"mmm Ïgïggr"
ellas. Para seleccionar _
los campos que salen . La
en la consulta
hay que (nuvo:
umarn ¡Modelo rlombve DNI
aTTa-ïtm?
las ¿alumnas Tlbll:
áAutomovxles
Amomóvnles
Pvopuetanos
Propuetarios
Marca,Modelo,Nombne
y M°::"ï
¡ , ,
o m: ¡ y ,_; J y
DNI delastablas
al panel (mmm: ¡E1931
inferior. o:l
Posteriormente se añade
en la la Criterios y
columna DNI el valor
= 52201 928 . Para
_
terminar, con el botón l &#39;
Nombre v DN;
derecho sobre el título un A31.4TFS|AUT.7V Josécarlos 52201923
de la consulta, se elige la A31.9TDIeMAN.5 Josecarlos 52201925
opción guardar y se escribe
un nombre. Finalmente,
se puede ejecutar para ver
los resultados.
33
Bases
1.5.
de Datos
Prácticas Propuestas
Práctica 1.3: Base de datos de un instituto
Crea en Microsoft. Access2007 una base dedatos llamada lnstituto.accdb y realiza
los siguientes ejercicios.
1.
10.
11.
12.
Crea una tabla llamada Alumnos con los campos DNI, Nombre, Dirección,
Fecha de nacimiento, foto, grupo y curso. Elige cuidadosamente el tipo de
datos para cada campo.
.Inserta 6 registros a través de un formulario creado al efecto, tres registros
para el curso 1 y otros dos para el curso 2.
.Crea una consulta que muestre el campo DNI, Nombre y
Curso, 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.
.Crea la tabla Asignatura con los campos NombreAsignatura, Codigo, Ciclo.
Crea la tabla Notas con los campos sucientes para insertar la nota de un
alumno en una asignatura.
.Establece las relaciones entre las tablas Notas, Asignaturas y Alumnos.
Insertar mediante un formulario 4 asignaturas para dos ciclos distintos.
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-
Capítulo 1. Los sistemas de almacenamiento de 1ainformación
Práctica 1.4: Base de datos de mascotas
Crea una base de datos llamada Mascotasaccdb y realiza los siguientes ejercicios:
1.
es»
10.
11.
12.
13.
Crea una tabla llamada Animales con los campos Nombre, Tipo, Raza, Peso
y Color. Añade a la tabla un campo clave.
. Inserta 5
registros en la tabla Animales.
Crea una consulta para ver los Animales de tipo Perro.
. Añade una nueva columna a
la tabla Animales llamada Dueño.
.Completa el Dueño de cada uno de los Animales de la tabla.
.Añade una nueva columna a la tabla Animales llamada PrecioDeCompra. Es-
ta columna contendrá un valor nulo (sin información) cuando el Animal fue
adquirido gratuitamente.
. Crea una tabla llamada Vacunaciones con los campos FechaVacunacion, Des-
cripcíónVacuna, Veterinario y un campo que relacione la vacunación con el
animal vacunado.
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.
Crea
un informe
para listar
las vacunaciones
de los
animales.
Crea un informe basado en la consulta del tercer ejercicio para ver las vacu-
naciones de los perros.
Crea un formulario en vista diseño para poder añadir vacunaciones de los
animales.
Mediante la pestaña Datos Externos de Access, exporta los datos de la tabla
Animales a hlicrosoft Excel. Con la misma pestaña, crea una página web con
los datos exportados del informe de vacunaciones.
Bases de Datos
1.6.
36
Resumen
Los conceptos clave de este capítulo son los siguientes:
Un chero es una estructura de información que crea el sistema operativo para
almacenar información.
El tipo y formato del chero determina la forma de interpretar la información
que contiene. Se clasican según su contenido, organización 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 múltiplesformas dedatos (texto, imágenes, vídeo.
.. ) requierenuna
aplicación que sepa cómo está estructurada la información en ellos.
Una base de datos está organizada mediante tablas. Las tablas contienen re-
gistros de información o las. Cada registro está compuesto por múltiples
campos o columnas. Las tablas se relacionan entre sí para dar cierto sentido a
la información 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 múltiples aplicaciones, contables, administrativas,
motores de búsquedas, cientícas, bibliotecas, censos, virus, etc.
Las bases de datos se crean siguiendo un modelo o losofía. Así, han evolu-
cionado desde las basesde datos jerárquicas y en red hasta las más modernas
bases dedatos distribuidas. Las más comunes y utilizadas son las basadas en
el modelo relacional que propuso el ingeniero de IBM Edgar F. Codd.
Un SGBD es elconjunto 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, además, otras funciones
avanzadas comola concurrencia, conectividad, generación de estadísticas, etc.
El lenguaje SQL es una interfaz de programación entre el usuario y la base de
datos. Se compone de varios sublenguajes: DML, DDL, DCL y TCL.
Los gestores de basesde datos que manipulan bases dedatos pequeñas se lla-
man gestores de basesde datos omáticas, y los que manipulan bases de datos
medianas o grandes se denominan gestores de basesde datos corporativos.
Capítulo 1. Los sistemas de almacenamiento de la información
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 interpretadomediante unforma-
to
c) Son caracteres imprimibles del código AS-
CII
d) Es un conjunto de pixels con colores
2. Un chero de texto contiene
a) Cualquier tipo de información
b) Caracteres codicados en código ASCII
o
UNICODE
c) Los datos de una base de datos
d) Datos que han de ser accedidos secuencial-
mente
3. Las tablas de códigos ascii
a) Usan 2 bytes para representar cada
carácter
b) Distancian las mayúsculas de las minúscu-
las en 64 unidades
c) Tienen 256 caracteres distintos
d) Todas las anteriores son correctas
4. Señala el chero que no es binario
Un chero .avi
Un chero .html
a)
b)
c)
Un chero
.mp3
d) Un chero .doc
5. Un campo clave es
a) Un campo numérico
b) Un campo especial que puede repetir un
mismo valor
c) Un campo especial que no puede repetir
ningún valor
d) Un campo alfanumérico
6. Una query es
a) Un comando o petición que se envíaa la
base de datos
b) Una. búsqueda de información
c) Una operación de ordenación
d) Una estructura deinformación
7. Un índice es útil para
a Insertar información
b Borrar información
C
d
Buscar y ordenar información
)
)
)
)
No repeti
valores
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.
1.
Comprueba tu aprendizaje
N ombralos distintos tipos de bases
de datos que existen según el mo-
delo que siguen.
.Enumera 10 usos que puede tener
una base de datos.
.Explica para qué sirven las tablas
UN ICODE.
.Clasica los tipos de chero según
su contenido.
¿Dónde almacenan las basesde da-
tos la información?
.Nombre 6 tipos de objetos que pue-
de contener una base de datos.
.¿Qué es un script o guión?
. ¿Qué es una vista? ¿En qué se di-
ferencia de una consulta?
. Dene los siguientes conceptos:
IDato
n Tipo de Dato
ICampo
IRegistro
-Tabla
IRelación
- Consulta
IProcedimiento
10. ¿Qué tienen en común Larry Elli-
38
son y Bill Gates?
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
¿Conoces algunabase dedatos que
almacene conguraciones?
¿En qué consiste la función de se-
guridad de una BBDD?
¿Cómo garantiza la integridad de
los datos un SGBD?
¿Qué es el diccionario de metada-
tos?
¿Qué quiere decir que una base de
datos soporta transacciones?
¿Qué esODBC?
¿Qué quiere decir que una base de
datos permita concurrencia?
¿Cuál es la función del lenguaje
TCL? ¿ Y
la del lenguaje DML?
¿Cuál es la extensión de un che-
ro que contiene una base de datos
Access?
¿Qué operacionesforman el mante-
nimiento de una tabla?
Describe dos formas de crear un
formulario en Access.
¿Cuál es el tipo de datos que usa
Access paralos valoresmonetarios?
Nombre 5 tipos de datos que per-
mite Access.
Describe dos formas de crear una
consulta en Access.
CAPÍTULO 2
Diseño lógico relacional
Objetivos
W
Identicar el signicado de la
simbología de los diagramas
E/ R
Contenidos
Identicar las tablas
del diseño
Representación
del problema lógico
hïodelo de
datos Identicar los campos
que for-
Diagranlas E/R man parte
de las
tablas
.Identicar las relaciones entre
l l
E mode
o E/R
anïphado tablas del diseño
lógico
El modelo
relacional Identicar los campos
clave
Transformación E /R al modelo
relacional Aplicar reglas de
integridad
. . ,Identicar reglas de normaliza-
Normahzaclon , ,
cion
Identicar
y documentar
reglas
que no se puedenplasmar en el
diseño lógico
En este tema se trata a fondo e] diseño de una. base de datos, desde 1a inter-
pretación y
análisis de un problema hasta el diseño y
propuesta de un modelo
que dé solución al problema planteado.
39
Bases de Datos
2.1. Representación del problema
Una base de datos representa la información contenida en algún dominio del
mundo real. El
diseño de base de datos consiste en extraer todos los datos relevantes
de un problema, por ejemplo, saber qué datos están implicados en el proceso de
facturación de una empresaque vendevehículos agrícolas,o, qué datos sonnecesarios
para llevar el control veterinario de los animales de un zoológico.
Para extraer estos datos, se debe realizar un análisis en profundidad del dominio
del problema, y saber, de estaforma, qué datos son esenciales parala basede datos y
descartar los que no son de utilidad. Una vez extraídos los datos esenciales comienza
el proceso de modelización, esto es, construir, mediante una herramienta de diseño
de base de datos, un esquema que exprese con total exactitud todos los datos que
el problema requiere almacenar.
Típicamente, los informáticos analizan un problema a través de diversasreuniones
con los futuros usuarios del sistema. Nótese, que generalmente, el problema no solo
se resuelve poniendo una base de datos a disposición de un usuario, sino también
un conjunto de aplicaciones de software que automaticen el accesoa los datos y su
gestión. De estas reuniones,se extraeel documento más importante del análisis de un
sistema informatico, el documento de Especicación de Requisitos Software
o E.R.S. A partir de esta E.R.S. se extrae toda la información necesaria para la
modelización de los datos.
<> Actividad 2.1: Busca en Internet la estructura del documento estándar IEEE
830 SRS
o Software Requirements Specication. Descarga de internet algún ejem-
plo de SRS y examina cómo los analistas de software organizan los requisitos de una
aplicación extraídos de las conversaciones conusuarios.
2.2. El
modelo de datos
La modelización consiste en representar el problema realizando múltiples abs-
tracciones 1para asimilar toda la información de un problema, y de esta manera,
generar un mapa donde estén identicados todos los objetos de la base de datos.
¡Una de las acepcionesde la RAE para abstraer es: Separar por medio de una operación
intelectual las cualidades de un objeto para considerarlas aisladamente o para considerar el mismo
objeto en su pura esencia o noción
40
Capítulo 2. Diseño lógico relaciona]
Para modelar un problema de base de datos es necesario tener en cuenta las
siguientes consideraciones:
- Casi con toda probabilidad, la persona querealiza la modelización es un analis-
ta informático, por lo que puede no ser un experto en el dominio del problema
que debe resolver (Contabilidad, Medicina, Economía,etc.). Se ha de con-
tar con la experiencia de un futuro usuario de la base de datos que conozca
a fondo todos los pormenores del negocio, y que, a su vez, puede no tener
conocimientos de informática.
- Hay que modelar siguiendo unas directrices o estándares, esdecir, usando una
losofía estándar para que el resto de la comunidad informática pueda entender
y comprender el modelo realizado. De esta manera, será posible aprovechar las
herramientas informáticas software del mercado para realizar diseños.
n La base dedatos estará gestionada por un SGBD que tendrá unas característi-
cas técnicas, de esta manera, no se tratará igual la implantación de la base de
datos en un sistema l&#39;I_ySQL que
en uno DB2.
Para satisfacer estas necesidades,se suelerecurrir a tres modelados:
1. El modelo conceptual. Es un modelo que tiene un gran poder expresivo para
poder comunicarse con un usuario que no esexperto en informática. Tiene una
gran potencia para representar el dominio del problema tal y como elusuario lo
concibe. Elmodelo quese usará
en estelibro seráel modeloEntidad/Relación.
2. El modelo lógico. Este modelo es más técnico que el anterior. Los conceptos
expresados por este modelo, suelen serdifíciles de entender por los usuarios y
generalmente tienen traducción directa al modelo físico que entiende el SGBD.
El modelo lógico elegido dependerá de la implementación de la base de datos,
así, no es lo mismo modelizar una base de da.tos orientada a objetos, que
modelizar una base de datos relacional. El modelo que se usará en este libro
será el Modelo Relacional.
3. El modelo físico. Es el resultado de aplicar el modelo lógico a un SGBD concre-
to. Generalmente está expresado en un lenguaje de programación de BBDD
tipo SQL. Este libro transformará el Modelo Relacional en modelo físico a
través del sublenguaje DDL de SQL.
La interacción entre estos tres modelos es fundamental para un diseño de calidad:
1. Primero, se negocia con el usuario el modelo conceptual.
41
Bases de Datos
USUARIO
EXPERTO
MODELO lN FORMÁTICÓ
CONCEPTUAL DIS
EÑADOR BBD D
PROGRAMADOR
BBDD
DOMINIO
DEL
PROBLEMA
Figura 2.1: Interacción entre modelos.
2. Segundo, se pasael modelo conceptual al modelo lógico, realizando una serie de
transformaciones necesarias para adaptar el lenguaje del usuario al del gestor
de base de datos.
3. Finalmente, se transforma el modelo lógico en físico, obteniendo de esta forma
la base de datos nal.
En ocasiones, los diseñadores experimentados, realizan el diseño de Ia base de
datos directamente en el modelo relacional. Esto puede representar un ahorro 
de tiempo si el problema a resolver es relativamente sencillo. Pero, general- l
mente, en problemas más complejos, saltarse el diseño conceptual y
la opinión
del usuario, da como resultado diseños incompletos e incoherentes.
El consejo del buen administrador. ..
2.3. Diagramas E/R
Para representar el modelo conceptual se usará el modelo Entidad/Relación.
Este modelo consiste en plasmar el resultado del análisis del problema mediante
diagramas entidad-relación.
2
¡También llamados en otras fuentas diagramas Entidad-Interrelación, o en inglés Entity-
relationship
42
Capítulo 2. Diseño lógico relacional
Estos diagramas fueron propuestos por Peter P. Chen a mediados de los años 70
para la representación conceptual de los datos y establecer qué relaciones existían
entre ellos.
La notación es muy sencilla, y, precisamente, esta sencillez, permite representar
el mundo real de forma que el usuario pueda validar si el modelo propuesto se ajusta
perfectamente a la resolución del problema.
A continuación, se presentan las deniciones necesarias para comprender el mo-
delo entidad relación.
2.3.1. Entidad
Cualquier tipo de objeto o concepto sobre el que se recoge información: cosa,
persona, concepto abstracto o suceso. Se representan mediante un cuadrado. Por
ejemplo: coche, casa, empleado, cliente, etc. Las entidades se representan gráca-
mente mediante rectángulos y su nombre aparece en el interior (generalmente en
singular). Un nombre deentidad solopuede aparecer
una vezen el diagrama.
Emple
ados
Figura 2.2: Ejemplos de entidades.
Hay dostipos deentidades: fuertes
(o regulares)y débiles.Las entidades
débiles
se representan mediante un cuadro doble. Una entidad débil es una entidad cuya
existencia depende de la existencia de ot.ra entidad. Una entidad fuerte es una en-
tidad que no es débil, es decir, existe por méritos propios. Un ejemplo típico es la
existencia de dos entidades para la representación de un pedido. Por un lado, la
entidad pedido representa información genérica sobre el pedido como la fecha del
pedido, fecha de envío, el estado, etc. Por otro lado, la entidad Detalle de Pedido
recopila las líneas de información especíca sobre los artículos y unidades pedidas.
En este caso, Detalle de Pedido es unaentidad débil, puesto que la eliminación del
pedido implica la eliminación de las líneas de detalle asociadas al pedido, es decir,
no tiene sentido almacenar información especíca del pedido si se ha eliminado ese
pedido.
Entidad Fuerte Entidad Débil
Figura 2.3: Entidad fuerte y débil.
43
Bases
de Datos
2.3.2. Ocurrencia de una entidad
Es una instancia de una determinada entidad, esto es. una unidad del conjunto
que representa la. entidad. Ejemplo: La entidad coche tiene varias instancias, una
de ellas es el vehiculo seat ibiza con matrícula 1222FHD de color negro y con 5
puertas.
2.3.3. Relación
Una relación (o interrelación), es una correspondencia o asociación entre dos o
más entidades.
Cada relación tiene un nombre que describe su función. Normalmente debe utili-
zarse un nombre que exprese contotalidad la nalidad de la relación, evitando poner
un nombre que pueda signicar muchas cosas, por ejemplo, tener, hacer, poseer.
Las relacionesse representangrácamente mediante rombos y su nombre aparece
en el interior. Generalmente este nombre de relación corresponde a un verbo, pues
las relaciones suelen describir las acciones entre dos o más entidades.
Las relaciones están clasicadas según su grado. El grado es el número de en-
tidades que participan en la relación. Atendiendo a esta clasicación, existen los
siguientes tipos de relaciones:
IRelaciones binarias: (grado2), sonaquellas quese danentre dosentidades.
Figura 2.4: Ejemplo de relación binaria.
n Relacionesternarias: (grado3), sonaquellas quese danentre tresentidades.
Figura 2.5: Ejemplo de relación ternaria.
44
Capítulo 2. Diseño lógico relacional
n Relacionesunarias oreexivas: (grado 1), Esuna relacióndonde lamisma enti-
dad participa más deuna vez en la relación con distintos papeles. El nombre de
estos papeleses importante para determinar la función de cada participación.
Figura 2.6: Ejemplo de relación reflexiva.
IRelaciones n-arias: (grado >3) Son aquellas donde participan más de 3 enti-
dades. Aparecen en muy raras ocasiones, puesto que generalmente se pueden
descomponer en varias de grado 2 o de grado 3.
El consejo del buen administrador. . .
Si en tu diagrama entidad relación aparecen relacionesde grado >3, es posible
que la interpretación del problema seaincorrecta. Incluso si aparecenrelaciones
de grado 3, intenta descomponerlas en varias de grado 2 para simplicar tu
modelo. Eso SÍ, asegúrate de que no es posible descomponerlas en varias de
grado 2 sin perder semántica.
2.3.4. Participación
La participación de una ocurrencia de una entidad, indica, mediante una pareja
de números, el mínimo y máximo número de veces quepuede apareceren la relación
asociada a otra ocurrencia de entidad. Las posibles participaciones son:
Participación Signicado
Mínimo cero, Ináximo uno
Mínimo uno. máximo uno
Mínimo cero, máximo n (Muchos)
Mínimo uno, máximo n (lIuchos)
Las reglas que denen la participación de una ocurrencia en una relación son las
reglas de negocio, esdecir, se reconocen a través de los requisitos del problema.
45
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos
BasesDatos

Más contenido relacionado

Similar a BasesDatos

Algoritmos y programacion_i_-_con_lengua
Algoritmos y programacion_i_-_con_lenguaAlgoritmos y programacion_i_-_con_lengua
Algoritmos y programacion_i_-_con_lenguaDarío Herrera
 
Algoritmos programacion-python
Algoritmos programacion-pythonAlgoritmos programacion-python
Algoritmos programacion-pythonLUIS COAQUIRA
 
ApuntesC++.pdf
ApuntesC++.pdfApuntesC++.pdf
ApuntesC++.pdfbilgrado01
 
Desarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaDesarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaFreddy Quina
 
Manual completo python
Manual completo pythonManual completo python
Manual completo pythonalan moreno
 
Desarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaDesarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaVictor Basurto Alonso
 
Libro javacontapa
Libro javacontapaLibro javacontapa
Libro javacontapaRobert Wolf
 
Libro javacontapa
Libro javacontapaLibro javacontapa
Libro javacontapaTabu Carlos
 
Fundamentos de Programación con Lenguaje de Programación C++
Fundamentos de Programación con Lenguaje de Programación C++Fundamentos de Programación con Lenguaje de Programación C++
Fundamentos de Programación con Lenguaje de Programación C++Andy Juan Sarango Veliz
 
El lenguaje de programación c++
El lenguaje de programación c++El lenguaje de programación c++
El lenguaje de programación c++Darkcame
 
Introducción a la programación en c
Introducción a la programación en cIntroducción a la programación en c
Introducción a la programación en cvictdiazm
 
MANUAL DE LENGUAJE C
MANUAL DE LENGUAJE CMANUAL DE LENGUAJE C
MANUAL DE LENGUAJE Cclaudiocj7
 
sistemas_operativos.pdf
sistemas_operativos.pdfsistemas_operativos.pdf
sistemas_operativos.pdfRosMerryHuro
 
Conceptos informáticos generales
Conceptos informáticos generalesConceptos informáticos generales
Conceptos informáticos generalesLeonel Sartori
 
Algoritmosy estructurasdedatos2015 1
Algoritmosy estructurasdedatos2015 1Algoritmosy estructurasdedatos2015 1
Algoritmosy estructurasdedatos2015 1Natalia G Peñuela
 

Similar a BasesDatos (20)

Algoritmos y programacion_i_-_con_lengua
Algoritmos y programacion_i_-_con_lenguaAlgoritmos y programacion_i_-_con_lengua
Algoritmos y programacion_i_-_con_lengua
 
Algoritmos programacion-python
Algoritmos programacion-pythonAlgoritmos programacion-python
Algoritmos programacion-python
 
ApuntesC++.pdf
ApuntesC++.pdfApuntesC++.pdf
ApuntesC++.pdf
 
Desarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaDesarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-java
 
Manual completo python
Manual completo pythonManual completo python
Manual completo python
 
Python desde 0
Python desde 0Python desde 0
Python desde 0
 
Desarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaDesarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-java
 
Libro javacontapa
Libro javacontapaLibro javacontapa
Libro javacontapa
 
Libro javacontapa
Libro javacontapaLibro javacontapa
Libro javacontapa
 
Fundamentos de Programación con Lenguaje de Programación C++
Fundamentos de Programación con Lenguaje de Programación C++Fundamentos de Programación con Lenguaje de Programación C++
Fundamentos de Programación con Lenguaje de Programación C++
 
El lenguaje de programación c++
El lenguaje de programación c++El lenguaje de programación c++
El lenguaje de programación c++
 
Tutorial Jsf
Tutorial JsfTutorial Jsf
Tutorial Jsf
 
Tutorial JSF
Tutorial JSFTutorial JSF
Tutorial JSF
 
Introducción a la programación en C
Introducción a la programación en CIntroducción a la programación en C
Introducción a la programación en C
 
Introducción a la programación en c
Introducción a la programación en cIntroducción a la programación en c
Introducción a la programación en c
 
MANUAL DE LENGUAJE C
MANUAL DE LENGUAJE CMANUAL DE LENGUAJE C
MANUAL DE LENGUAJE C
 
sistemas_operativos.pdf
sistemas_operativos.pdfsistemas_operativos.pdf
sistemas_operativos.pdf
 
Conceptos informáticos generales
Conceptos informáticos generalesConceptos informáticos generales
Conceptos informáticos generales
 
SORYP.pdf
SORYP.pdfSORYP.pdf
SORYP.pdf
 
Algoritmosy estructurasdedatos2015 1
Algoritmosy estructurasdedatos2015 1Algoritmosy estructurasdedatos2015 1
Algoritmosy estructurasdedatos2015 1
 

Último

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (20)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

BasesDatos

  • 2. Iván LópezMontalbán M Jesús Castellano Pérez John Ospino Rivas DAM y DAW Bases de Datos Técnico Supe en Desa de Ap M y Web arceta grupoeditorial
  • 3. Iván López Montalbán M3 Jesús Castellano Pérez John Ospino Rivas ISBN: 978-84-9281-291-2 IBERGARCETA PUBLICACIONES, S.L., Madrid 2011 Edición: 1.° Impresión: 3. N.° de páginas: 328 Formato: 20 x 26 cm Reservados los derechos para todos los países de lengua española. De conformidad con lo dispuesto en el artículo 270 y siguientes del código penal vigente, podrán ser castigados con penas de multa y privación de libertad quienes reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o cientíca fijada en cualquier tipo de soporte sin la preceptiva autorización. Ninguna parte de esta publicación, incluido el diseño de la cubierta, puede ser reproducida, almacenada o trasmitida de ninguna forma, ni por ningún medio, sea éste electrónico, químico, mecánico, electro-óptico, grabación, fotocopia o cualquier otro, sin la previa autorización escrita por parte de la editorial. Diríjase a CEDRO (Centro Español de Derechos Reprográcos), www.cedro.org, si necesita fotocopiar o escanear algún fragmento de esta obra. COPYRIGHT © 2011 IBERGARCETA PUBLICACIONES, S.L. info@garceta.es Bases de Datos © Iván López Montalbán, Ma Jesús Castellano Pérez, John Ospino Rivas 1.° edición, 3.° impresión OI: 0078/2012 ISBN: 978-84-9281-291-2 Deposito Legal: M-33366-2011 Imagen de cubiertazpisotskii © fotoIia.com Impresión: PRINT HOUSE, marca registrada de Copiar, S. A. IMPRESO ENESPAÑA-PRINTED IN SPAIN Nota sobre enlaces a páginas web ajenas: Este libro puede incluir referencias a sitios web gestionados por terceros y ajenos a IBERGAR- CETA PUBLICACIONES,S.L., que se incluyen sólo con nalidad informativa. IBERGARCETA PUBLICACIONES,S.L., no asume ningún tipo de responsabilidad por los daños y perjuicios derivados del uso de los datos personales que pueda hacer un tercero encargado del man- tenimiento de las páginas 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 publicación sin garantías, expresas o implícitas, sobre la información que se proporcione en ellas.
  • 4. PRÓLOGO Este libro está concebido para formar estudiantes de los ciclos de grado su- perior DAM (Desarrollo deAplicaciones Multiplataforma) y DAW (Desarrollo de Aplicaciones Web). Más concrementamente, está pensado para cubrir la unidad de competencia UC0026_3, programar bases de datos relacionales mediante el módulo Base de datos común a ambos ciclos formativos. Desde nuestra experiencia como administradores de bases de datos en empre- sas multinacionales, como profesores de educaciónsecundaria (Informática)y como profesores asociadosde universidad, hemos compuestoesta herramienta complemen- taria a las clasesdel módulo de formación profesional e indispensable para lectores independientes que quieran convertirse en programadores de basesde datos. El contenido del libro tiene una orientación puramente práctica, con actividades, consejos y ejercicios resueltos en Access, MySQL, Oracle y DB2, que facilitan al profesor del módulo su completo seguimiento. El objetivo del libro no esser una guía de referencia de un solo SGBD, sino la for- mación de programadores de bases dedatos actualizados, versátiles y competentes. Existe multitud de material disponible para la realización de las prácticas pro- puestas en el blog bbdd-garceta.blogspot . com.
  • 5. Índice general 1. Los sistemas de almacenamiento de la información 1.1. Ficheros 1.1.1. Tipos de cheros y formatos .. . ........ ... ..... 1.1.2. Ficheros de texto 1.1.3. Ficheros binarios 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. Evolución y tipos de base de datos 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 . . . . . . . . .. . . . . .. . . . . . . . .. . Prácticas Resueltas . . .. . . . . . .. . . . . . .. .. . .. . . . . . Prácticas Propuestas . . . . . .. . .. . . . . . .. . .. .. . . .. . Resumen . .. . . . . . . . .. . . . .. . . . .. . .. . . .. .. . . . Test de repaso . .. .. . .. . .. . . . .. . . . .. . . .. .. . . . . Comprueba tu aprendizaje . .. . . . .. .. . .. . . . .. . .. . . . 1.2. 1.3. 1.4. 1.5. 1.6.
  • 6. Bases de Datos 2.4.1. Generalización y Especialización . . . . . .. . . .. . . . . . .59 2.5. Construcción 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. Transformación de un diagrama E/ R al modelorelacional . . . . . . .67 2.8. Normalización . . .. . . . .. . . . . . . .. . . .. . .. . . . . . . .73 2.9. Prácticas Resueltas . . . .. . . . . . . .. . . . . . .. . . . . .. .. 77 2.10. Prácticas Propuestas . .. . . .. . . . .. . . . .. . .. . .. . . . .81 2.11. Resumen . . . . .. . .. . .. . . .. . . .. . . .. . .. . . .. . . .88 2.12. Test de repaso . . . . . .. . . . . . . . . . . . . . . . .. . . .. . .. 89 2.13. Comprueba tu aprendizaje .. . . . . . . . . . . . . . . . . . . . . . .90 3. Diseño físico relacional 91 3.1. Notación para la sintaxis . . . .. . . .. . . . . .. . .. . . .. . . .92 3.2. Herramientas grácas proporcionadas por los SGBD . . .. . . .. . .93 3.2.1. PhpMyAdmin de MySQL .. . . .. . . . .. . . . .. . . . .93 3.2.2. Oracle Enterprise Manager y Grid Control . .. . . . . .. . .94 3.2.3. DB2 Data Studio . .. . . . . . . . . . . . . . . .. . . . . . .96 3.3. Intérpretes de comandos de los SGBD . .. . . . .. . . . . .. . .. .97 3.3.1. MySQL: El cliente de MySQL-Server .. . . . . . . .. .. . .98 3.3.2. Ejecución de consultas en MySQL .. . . . . . . . . . .. . . .99 3.3.3. SQL*Plus: El intérprete de comandos de Oracle . . . . . .. . 102 3.3.4. Ejecución de consultas en SQL*Plus .. .. . .. . . . . . . .103 3.4. El lenguaje de denición de datos . .. . .. . . . . . . . .. . . . . .104 3.5. Creación de bases de datos . . . . . .. . .. . . . . . . . . .. . . . .105 3.5.1. Creación de basesde datos en MySQL . .. . .. . . . . . . .105 3.5.2. Creación de bases de datos en Oracle . . .. . . .. . . . . .. 107 3.6. Modicación de una base de datos . . . . . . .. . . .. . .. .. . . .110 3.7. Borrado de bases de datos . .. . .. .. . . .. .. . . . . .. . . . .111 3.8. Creación de tablas . . .. . . .. . . . . . .. . .. . .. . . .. . . .111 3.8.1. Implementación de restricciones . . . . . .. . . . . . . . . . .113 3.8.2. Tipos de Datos . . . . . .. . . .. . . . . . . . .. . . . . .. 116 3.8.3. Características de la creación de tablas para MySQL . .. . .117 3.8.4. Características de la creación 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. Modicación de tablas . . . . .. . . . . . . . . . . . . .. .. . . .. 120 3.10. Borrado de tablas . . . . . .. . . . . . . . . .. . . . . . . . .. . . .122 3.11. Renombrado de tablas . . . . . . . . . . . . . .. . . .. .. . . . . .122 3.12. Prácticas Resueltas . . . . . .. . .. . . . . . . .. . .. . .. . .. .123 VIII
  • 7. Índice general 3.13. Prácticas Propuestas .. . . . .. . .. . .. . . . .. . .. . . .. . .128 3.14. Resumen . . . . . .. . .. . . . . . .. . . . . . . . . . .. .. . .. .130 3.15. Test de repaso .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .131 3.16. Comprueba tu aprendizaje . .. . . . . . . . .. . . . . . . . . .. . . 132 . Realización de Consultas 133 4.1. El lenguaje DML . .. . . . . . . .. . .. . . . . . .. . . .. . . .. 134 4.2. La sentencia SELECT . . . . . .. . .. . . .. . .. . . . .. . . . .134 4.3. Consultas básicas .. . .. . .. .. . . . . . .. . .. . . . . . . . . .135 4.4. Filtros . . . . . . . . . .. . . .. . . . . . . . .. . .. . . .. . . . .137 4.4.1. Expresiones para ltros . .. .. . . . .. . . . .. . . . .. . .138 4.4.2. Construcción 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 patrón . . . .. . . . . . . . . . . . . . . .143 4.4.7. Filtros por límite de número de registros . . . . . . .. . . . .144 4.5. Ordenación . .. . . .. . . . . . . .. .. . .. . . .. .. . . . . . .145 4.6. Consultas de resumen . . . . .. . . .. . . . . . . . . . .. . . . . . .147 4.6.1. Filtros de Grupos . . . .. .. . . .. . . . . . . .. .. . . . .151 4.7. Subconsultas . . . . .. . . .. . . .. . .. . . .. . . . . .. . .. .152 4.7.1. Test de Comparación . . .. . . . .. .. . . . .. . . .. . . .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. Prácticas Resueltas . .. . . . . . . . . . .. .. . . . .. . . . . . . .172 4.12. Prácticas 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 grácas para la edición de los datos . . . . .. . . . . .186 5.1.1. Edición con phpMyAdmin .. .. . . . .. . . . . .. . .. .. 186 5.1.2. Access como entorno gráco para otros gestores . . . .. . .. 187 IX
  • 8. 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 y DELETE con subconsultas . . . .. .. . .193 5.8. Borrado y modicación 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 información . . . . . .. . .. . . . . .. . . . . . . . .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&#39;IySQL .. .. . .. . . . . . . . .208 5.14.2. El sistema de privilegios de Oracle .. . .. . . . .. . . . . .212 5.14.3. El sistema de privilegios de DB2 .. . .. . . . . .. .. . . .. 219 5.15. Prácticas Resueltas . . . . .. . . . . .. . . .. . . . . .. . . . .. .221 5.16. Prácticas Propuestas . .. .. . . . . . . . . . . .. . . . . . . . . . .223 5.17. Resumen . .. . .. .. . . . .. .. .. . .. . . . . . . .. . . .. .. 228 5.18. Test de repaso . . . . . .. . . . . . . . . . .. . . .. .. . .. . . .. 229 5.19. Comprueba tu aprendizaje . .. .. . . .. . . .. . .. . . . . . .. . 230 6. Programación de bases de datos 231 6.1. Introducción a la programación de bases dedatos .. .. . . . .. .. 232 6.2. Los lenguajes de programación de bases dedatos . . . . . .. . .. .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. Gestión de errores . . . . . . .. . . . . . . . . . . .. .. . . .. . .. 251 6.7. Transacciones en scripts . . . . . . . . . . . . . . .. .. . .. . . . .253 6.8. Las secuencias . . . . . .. .. .. . . . .. . . . .. . . . . . . .. . .257 6.9. Prácticas Resueltas . . . .. . . .. . . .. . .. . .. . . . . . . . . .258 6.10. Prácticas Propuestas . . . . . . . .. .. . . . .. . .. . . . . .. . .262 6.11. Resumen . . .. .. . . . . . . .. .. .. . . .. . . . . . . .. . . . . 264 6.12. Test de repaso . . . .. . . . . .. . . . . . . . . . . . . . .. .. . . .265
  • 9. Í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. Técnicas de fragmentación .. . . . . .. . .. .. . . . . . .. . . . .270 7.3. Consultas distribuidas . .. . . . . . . . . .. . .. . . .. . . . .. .271 7.3.1. DB Links . . . .. . . . . . . .. . .. . . .. . . . . . .. . .271 7.3.2. Ejecución de consultas distribuidas . .. .. .. . . . . .. . .273 7.4. Transacciones distribuidas . . . . .. . . .. . .. . . . . .. . . . . .275 7.4.1. TWO-PHASE COMMIT . .. . . .. . . . . .. . . . . . . .. 276 7.4.2. Ejemplo de transacción distribuida . . . . . . . . . . . . . . .277 7.5. Optimización de consultas sobre basesde datos distribuidas . . . .. 280 7.5.1. Optimización mediante consultas derivadas .. . . . . . .. .. 280 7.5.2. Optimización mediante hints . . .. .. . . . . . . . . . .. . .281 7.6. Prácticas Resueltas . .. . . . . .. .. . .. . . . .. . . .. . .. . .283 7.7. Prácticas 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 dedatos 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 métodos . . .. .. . . .. . . . . .. . .. . . . . . . . . . . . . .301 8.5. La herencia . .. . . .. .. .. . . . .. . . .. . . . . . . . . . .. .304 8.6. Operaciones DML .. .. .. . . . .. .. . .. . . . . . . .. . . . . .306 8.7. Las referencias . . . .. . . . . .. . . .. . . . . . . . . . . . . . . . .307 8.8. Prácticas Resueltas . . .. . . . . . . .. . .. .. . .. . . .. .. . . 309 8.9. Prácticas Propuestas .. .. . . .. . . . .. . . .. . . .. . .. .. . 312 8.10. Resumen . . .. .. . . . . .. . .. . . . .. . . .. . . . . .. .. . . 314 8.11. Test de repaso . . . . . . . .. . . . . . . . . .. . . . . . . .. . . . .315 8.12. Comprueba tu aprendizaje .. . . . .. . . .. . . . . . . . . . . .. . 316 XI
  • 10. CAPÍTULO 1 Los sistemas de almacenamiento de la información Objetivos W Analizar los sistemaslógicos de almacenamiento V sus carac- .terísticas Contenidos Identicar los distintos tipos de Ñ Ficheros.Tipos y formatos 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 función de los ele- datos mentos de un sistema gestor de base de datos Clasicar los sistemas gestores de bases de datos Este capítulo introduce conceptos sencillos e intuitivos para establecer una cultura básica de bases de datos, y poder, de este modo, avanzar a objeti- vos más avanzados. E1estudiante, a modo introductorio, manejará, de forma muy visual, conceptos tales como tablas y relaciones. De esta manera, afron- tará capítulos próximos con más experiencia, y entenderá y asimilará mejor el diseño lógico y sico de las bases dedatos.
  • 11. Bases de Datos 1. 1. Ficheros Un ordenador almacena muchos tipos de información, desde datos administrati- vos, contables o bancarios hasta música, películas, partidas de videojuegos, páginas webs, etc. Toda esta información está almacenada en los dispositivos de almace- namiento del ordenador, esto es, discos duros, dvds, pen drives, etc. Para poder organizar la información en estos dispositivos, se utilizan los cheros o archivos. Los cheros son estructuras de información que crean los sistemas operativos de los ordenadores para poder almacenar datos. Suelen tener un nombre y una extensión, que determina el formato de la información que contiene. 1.1.1. Tipos de cheros y formatos El formato y tipo de chero determina la forma de interpretar la información 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 suinterpretación para dar sentido a la información 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. Además, la imagen posee una paleta de colores y unas dimensiones, información que también hay que almacenar en el chero. Todos estosdatos seordenan según un formato, y el sistema operativo, o la utilidad que trate los grácos, debe conocer este formato para poder extraer los píxeles 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: Buscaen tu ordenador un chero con extensión doc (del pro- cesador detextos Microsoft Word), y ábrelo conel bloc de notas,pulsando conel ratón derecho sobre el y seleccionando la opción 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 aplicación de Microsoft. Tradicionalmente, los cheros se han clasicado de muchasformas, segúnsu conte- nido (texto o binario), según suorganización (secuencial, directa, indexada)o según su utilidad (maestros, históricos, 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 alfabéticos y números que entiende el ser humano, o pueden
  • 12. Capítulo 1. Los sistemas de almacenamiento de Ia información ser tratados como componentesde estructuras de datos más complejas,como cheros que almacenan sonido, vídeo, imágenes, etc. La organización de un chero dicta la forma en quese hande accedera losdatos, así, los datos de un chero con organización secuencial, están dispuestos siguiendo una secuencia ordenada, es decir, unos detrás de otros. Se caracterizan por tener que recorrer todos los datos anteriores para llegar a uno en concreto. Los cheros de organización directa, permiten acceder a un dato en concreto sin necesidad de acceder a todos los anteriores. Finalmente, los de organización indexada acceden a los datos consultando un índice, es decir, una estructura de datos que permite acceder a la información rápidamente, simulando la forma en que el índice de un libro facilita el acceso a sus contenidos. Existen también variantes de las anteriores que mezclan las mejores características 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 organización, 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 necesariospara su proceso diario pasan a formar parte de los cheros históricos. Hoy en día, estas dos últimas clasicaciones han quedado en desuso. Por ejemplo, desde la aparición de las bases de datos modernas, ya no se clasican según su utilidad u organización. Actualmente un sistema opera.tivo trata. un chero desde dos puntos de vista: 1. Segúnsu contenido(texto o datos binarios) 2. Según su tipo (imágenes, ejecutables, clips de videos, etc.) 1.1.2. Ficheros de texto Los cheros de texto suelen llamarse también cheros planos o cheros ascii. El vocablo ascii es un acrónimo de American Standard Code for Information Inter- change. Es un estándar que asigna un valor numérico a cada carácter, con lo que se pueden representar los documentos llamados de Texto Plano, es decir, los que son directamente legibles por seres humanos.
  • 13. Bases de Datos La asignación de valores numéricos a caracteres viene dada por la famosa tabla de códigos ascii, que es la más extendida, aunque existen otras. Se caracteriza por utilizar 1 byte para la representación de cada carácter. Con x bits se puedengenerar 2 combinacionesdistintas de caracteres, ycomo 1byte = 8 bits, existen 28= 256 caracteres en la tabla de códigos ascii, numerados del 0 al 255. <> Actividad 1.22 Conéctate a Internet,y buscauna tablade códigos ascii de8 bits. Observa las siguientes características: - Los 32 primeros caracteres, sellaman caracteres no imprimibles y se utilizaban tradicionalmente para el control de transmisiones. ILa distancia entre mayúsculas y minúsculas es exactamente 32 caracteres. n Hay caracteres queson numéricos, y cuyo valor ascii es elresultado de sumarle 48. Por ejemplo, 6+48=54. 54 es el código ascii del carácter 6. Algunos alfabetos, como el katakana japonés utilizan más de 256 caracteres. En estos casos,se requierenlas tablas de caracteres unicode, quereservan dosbytes para cada carácter. o Actividad 1.32 Conéctate a http://mm.unicode.org/charts/ y descárgate las tablasde códigosLatin (alfabeto latino) y K atakana (alfabeto japonés).Observa las siguientes curiosidades: n La tabla de códigos Latin ,es exactamente idéntica a la tabla de códigos ascii de 8 bits, solo que los bits del primer byte unicode, están todos a 0. ILa tablas de códigos Latin y Katakana tienen múltiples 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 conguración: Son cheros cuyo contenido es texto sobre con- guraciones del sistema operativo o de alguna aplicación. Estos pueden tener extensión .ini, .inf ,.conf
  • 14. Capítulo 1. Los sistemas de almacenamiento de la información IFicheros de código fuente: Su contenido es texto con programas informáticos. Ejemplos: sql, .c, .java n Ficherosde páginas web: Laspáginas webs son cherosde textocon hipertexto que interpreta el navegador. html, php, .css, .xml n Formatos enriquecidos: Son textos que contienen códigos de control para ofre- cer una visión del texto más elegante: .rtf, .ps ,.tex ¿Sabías que .. . 7 XML es unlenguaje estándar para elintercambio de datos entre aplicaciones informáticas. Se están desarrollando actualmente las llamadas basesde datos nativas XML. cuyo foco principal es el aI1nacenamien- to de documentos de texto con código en XML. y no las relaciones entre la información, como sucede conlas basesde datos relacionales quese estudianen el presentelibro. Por ejemplo, DB2 incorpora dentro de sumotor una nueva ca- racterística 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 continuación se muestran algunos tipos de formatos de cheros binarios: IDe imagen: jpg, gif, .tiff, .bmp, .wmf, .png, .pcx; entre muchos otros n De vídeo: .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 unaforma de escritura no secuencial, conbifurcaciones, quepermite que el lector elija qué secuencia seguir y que es presentado en una pantalla interactiva para facilitar la navegación.
  • 15. Bases de Datos Generalmente los cheros que componen una base de datos son de tipo binario, puesto que la información que hay almacenada en ellos debe tener una estructura lógica y organizada para que lasaplicaciones puedan acceder aella de manera univer- sal, estoes, siguiendoun estándar. Esta estructura. lógica y organizada, generalmente es muy difícil de expresar mediante cheros de texto, por tanto, la información de una base de datos se sueleguardar en uno o varios cheros: u El software de gestión de base dedatos Oracle guarda la información en múlti- ples tipos de cheros, llamados datales, temples, logles, etc. IUn tipo de tablas del gestor liI;vSQL guarda su información en 3 cheros de datos binarios, con extensión frm, myd y myi. n Access guarda toda la información de una base de datos con extensión mdb. <> Actividad 1.4: La siguiente imagen es una captura de una carpeta en elsistema operativo Windows 7. Indica qué tipo de chero es cadauno de ellos y qué contiene. HcmL-re Fecha de nmzhwïcecicn Tnpc Tamahc u112i l E Battlestar Galactica -lxLavi Úí 3-322v]? "LJ Íhp de ¿dee 6&#39; -4 11 a Í u r J "n 1 . o _. __ (omojnstalantxt i- DSCN0776JPG 5&#39; eclipseexe l 1 v. q . t n1 a ¡If L __ eclipseini c: t. a V IJ - .-- img_xp_sp3.iso _ lícencia_windows.bct ,4 (¡r
  • 16. Capítulo 1. Los sistemas de almacenamiento de la información de forma ordenada y coherente (sincontradicciones). Cadauna de estas tablases una estructura que se parece a las hojas de cálculo, 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, sepodría 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 información sobre cada empleado, por ejemplo el nombre o el número de teléfono. jímpliidïvï - - Y CodngoEmple v Nombre v Apellidol v Apellndoz v Extension v Email v codugoo : 1 Marcos Magaña Perez 3897 marcos@jardnneria.es TAL-ES 4 2 Ruben López Martinez 2899 rlopez@jardmeria.es TAL-ES 3 Alberto Soria Carrasco 2837 asoria@}ardineria.es TAL-ES _ 4 Maria Solís Jerez 2847 msolis@jardineria.es TAL-ES E 5 Felipe Rosas Marquez 2844 frosas@jardineria.es TAL-ES l 6 JuanCarlos 0m: Serrano 2845 cortiz@jardnnerua.es TAL-ES l 7 Carlos Soria Jimenez 2444 csorxa@jardmeria.es MAD-ES x 8 Mariano López Murcia 2442 mlopezcenardmenaes rvlAD-ES 9 Lucio Campoamor Manín 2442 lcampoamorczïjardineriaes MAD-ES 10 Hilario Rodriguez Huertas 2444 hrodrlguez@jardineria.es MAD-ES 11 Emmanuel Magaña Perez 2518 manu@¡ardinena.es BCN-ES 12 José Manuel Martinez De laOsa 2519 ¡mmanéïhotmarles BCN-ES 13 David Dalma Aceituno 2519 dpalma@jard¡neria.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 mboltoncaïgardeningmom SFC-USA ___ ___19 W_a|_ïe_r_ Santuag Sanchez Lopez 7454 wssanchez@gardenlng.com SFC-USA v Registro: H 4 46231 P N P -Buscar 4 m l I Figura 1.1: Ejemplo de tabla en Microsoft Access. 1.2.1. Conceptos Uno de los grandesproblemas al que seenfrentan los informáticos cuando comien- zan su aprendizaje, es el gran número de términos desconocidos que debe asimilar, incluyendo el enorme número de sinónimos y siglas que se utilizan para nombrar la misma cosa. Tratando, a modo de resumen, de aclarar algunos de lo componentes que sepueden encontrar en una base dedatos, y que severán en próximos capítulos, se denen los siguientes conceptos: Dato: El dato es un trozo de información concreta sobre algún concepto o suceso. Por ejemplo, 1996 esun número que representa un año 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 numéricos, que son aquellos con los que se pueden realizar cálculos aritméticos (sumas,restas, multiplicaciones. . .) y los datos alfanuméricos, que 7
  • 17. Bases de Datos son losque contienen caracteres alfabéticos y dígitos numéricos. Estos datos al- fanuméricos y numéricos se puedencombinar para obtener tipos de datos más elaborados. Por ejemplo, el tipo de dato Fecha contiene tres datos numéricos, representando el día, el mes y el año de esafecha. Campo: Un campo esun 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 denacimiento de las personasque hay en la tabla. Este campo pertenece al tipo de dato Fecha. Al campo también se le llama columna. Registro: Es una recolección de datos referentes a un mismo concepto o suceso. Por ejemplo, los datos de una persona pueden ser su NIF, año de nacimiento, su nombre, su dirección, etc. A los registros también 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. sección 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 instrucción para hacer peticiones a una base de datos. Puede ser una búsqueda 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 extracción de información, en inglés query, una consulta es una petición, por tanto, además de las consultas de búsqueda de información, que devuelven los campos y registros solicitados, hay consultas(peticiones) deeliminación o inserción deregistros, deactuali- zación de registros, cuya ejecución altera los valores de los mismos. Índice: Es una estructura que almacena los campos clave de una tabla,orga- nizándolos para hacer más fácil encontrar y ordenar los registros de esatabla. El índice tiene un funcionamiento similar al índice de un libro, guardando pa- rejas de elementos: el elemento que se deseaindexar y su posición 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 posición marcada por el índice. Vista: Es una transformación que se hace a una o más 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 denición.
  • 18. Capítulo 1. Los sistemas de almacenamiento de la información Informe: Es un listado ordenado de los campos y registros seleccionados en un formato fácil de leer. Generalmente se usan como peticiones expresas de un tipo de información 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 través de un esquema. El esquema es la denición de la estructura donde se almacenan los datos, contiene todo lo necesario para organizar la información mediante tablas, registros (las) y campos (columnas). Tambiéncontiene otrosobjetos necesarios para el tratamiento de los datos (procedimientos, vistas, índices, etc.) y que se estudiarán en este libro. Al esquema también se le suele llamar metainformación, es decir, información sobre la información 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
  • 19. Bases de Datos esquema de la base de datos se puede tratar como si fueran datos comunes de le. base de datos. Véase gura 1.2. 1.2.3. Usos de las bases de datos Las bases de datos son ubícuas, están en Cualquier tipo de sistema informático. a continuación se exponen solo algunos ejemplos de sus usosmás frecuentes: IBases de datos Administrativas: Cualquier empresa necesita registrar y rela- cionar sus clientes, pedidos, facturas, productos, etc. IBases de datos Contables: También es necesariogestionar los pagos, balances de pérdidas y ganancias, patrimonio, declaraciones de hacienda. . . IBases de datos para motores de búsquedas: Por ejemplo Google o Altavista. tienen una base deda.tos gigantescadonde almacenan información sobre todos los documentos de Internet. Posteriormente millones de usuarios buscan en la base de datos de estos motores. - Cientícas: Recolección de datos climáticos y medioambientales, químicos. genómicos, geológicos.. . IConguraciones: Almacenan datos de conguración de un sistema informático. como por ejemplo, el registro de windows. n Bibliotecas: Almacenan información bibliográca, por ejemplo, la famosa tien- da virtual amazon o la. biblioteca de un instituto. ICensos: Guardan información demográca de pueblos, ciudades y paises. IVirus: Los antivirus guardan información sobre todos los potenciales software maliciosos. IOtros muchos usos: Militares, videojuegos, deportes, etc. ¿Sabías que . . . 7 La &#39;WDCC (World Data ClimateCenter), centro mun- dial para datos del clima, es la base de datos más grande del mundo. Almacena alrededor de 6 petabytes de información, esto es 6144 Terabytes de informa- ción sobre clima, predicciones y simulaciones. La base de datos de Google está situada como la 4a más grande del mundo (Abril-QOIO). 10
  • 20. Capitulo 1. Los sistemas de almacenamiento de la información <> Actividad 1.5: Buscaen Internet las 10bases de datos más grandes del mundo. Anota su nombre y su tamaño, y, en una hoja de cálculo, genera un gráco que muestre la comparativa del tamaño de estas basesde datos. El consejo del buen administrador. . . Siempre hay que hacer copias de seguridad regularmente y a ser posible, de varios tipos. Cuando una base de datos tiene un tamaño brutalmente grande como las del WDCC o Google, hacer copias de seguridad se convierte en al- go prácticamente imposible, puesto que se tardarian semanas en realizarlas, y, además, 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 prácticamente nula. 1.2.4. Evolución y tipos de base de datos La clasicación de lasbases dedatos en tipos, está.ligada a su evolución histórica. Según ha ido avanzando la tecnología, las basesde datos han mejorado cambiando la forma de representar y extraer la información. De esta manera, se presenta la evolución sufrida por las bases dedatos desde las épocas prehistóricas de la informática hasta la actualidad: En la década de 1950 se inventan las cintas magnéticas, que solo podían ser leídas de forma secuencial y ordenadamente. Estas cintas, almacenaban cheros con registros que se procesabansecuencialmente junto con cheros de movimientos para generar nuevos cheros actualizados. Estos sistemasse conocencomo aplicaciones basadas en sistemas de cheros y constituyen la generación cero de las bases de datos, pues ni siquiera entonces existía el concepto de basesde datos. En la década de1960 segeneraliza el uso dediscos magnéticos,cuya característica principal es que se podía acceder de forma directa a cualquier parte de los cheros, sin tener que acceder a todos los datos anteriores. Con esta tecnología aparecen las bases dedatos jerárquicas y en red, queaprovechan la capacidad de acceso directo a la información de los discos magnéticos para estructurar la información en forma de 11
  • 21. Bases de Datos listas enlazadas y árboles de información. La losofía de las bases dedatos en red es que un concepto principal o padre puede tener numerosas relaciones con conceptos secundarios o hijos. Las bases dedatos jerárquicas, evolucionan para admitir varios padres para un concepto hijo. ¿Sabías que . . . 7 En octubre de1969 se concibe elprimer modelode base dedatos 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, cientíco informático inglés de IBM, publica en 1970 en un artículo Un modelo relacional de datos para grandes bancos de datos compartidos (A Relational Model ofData forLarge Shared Data Banks), donde denió el modelo relacional, basado en la lógica de predicados y la teoría de conjuntos. Nacieron, de esta forma, las basesde datos relacionales, o segunda generación de basesde datos. Larry Ellison, fundador de Oracle. se inspiró en este artículo para desarrollar el famoso motor de basede datos, que comenzócomo un proyecto para la CIA (Central Intelligence Agency) americana. La potente base matemática de este modelo, es el gran secreto de su éxito. Hoy en día, el modelo relacional de Codd, pese a tener muchas alternativas, sigue siendo el más utilizado a todos los niveles. ¿Sabías que . . . 7 Las leyes de Codd son un conjuntode 13reglas (de la regla O a la regla 12) cuya nalidad es establecer las características 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 biografíade lossiguientes personajes, y comenta su principal contribución a la evolución de las basesde datos: J Edgar Frank Codd J Bill Gates J Larry Ellison J Michael Monty Widenius J Roger Kent Summit 12
  • 22. Capítulo 1. Los sistemas de almacenamiento de la información En la década de 1980 IBM lanza su motor de bases de datos DB2, para la pla- taforma MVS. Unos añosdespués, IBMcrea elSQL (Structured Query Language), un potente lenguage de consultas para manipular información de bases de datos relacionales. A medidados de 1990, IBM lanza una versión de DB2 que escapaz de dividir una base dedatos enorme en varios servidores comunicadospor líneas de gran velocidad, creándose deeste modo las basesde datos paralelas. A esta versión 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 dedatos la capacidad de manipular objetos, creando así, las basesde 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 losofía de almacenar relaciones y tablas, se almacenan colecciones de objetos que, además de información, tienen comportamientos (instrucciones sobre cómo procesar los datos). La aparición de Internet y el comienzo de la era de la información, crean nuevos requirimientos para bases dedatos. La cantidad de información comienza a creceren proporciones desconocidashasta el momento. De esta forma, se creanlas basesde da- tos distribuidas, que consistenen multiplicar el número de ordenadoresque controlan una basede datos (llamados nodos), intercambiándose información y actualizaciones a través de la red. Este increible aumento de datos a almacenar, organizados muchas veces en datos estadísticos recopilados con el trascurso de los años, hizo necesaria la aparición de un software llamado Software de ayuda a la decisión. Este software avanzado trata de dar respuestas concretasexaminando múltiples datos estadísticos que se han recopilado a lo largo del tiempo en bases dedatos multidimensionales, formando lo que se denominan cubos de información. Ventas del 2do 172010 España, Huelva Jamón de Bellota Q4 empo ¡z/broducto Provincia &#39; Figura 1.3: Ejemplo de cubo en una base de datos multidimensional. 13
  • 23. Bases de Datos También, a lo largo de la corta historia de la informática, han surgido otros tipos de basesde datos que se enumeran a continuación: - Bases de datos espaciales o geográcas: Son bases de datos que almacenan mapas v símbolos que representan supercies geográcas. Google Earth es u una aplicación que lanza consultas a bases dedatos de este tipo. n Bases de datos documentales: Permiten la indexación de texto para poder realizar búsquedas complejas en textos de gran longitud. IBases de datos deductivas: Es un sistema de bases de datos que almacena hechos y que permite, a través de procedimientos de inferencia, extraer nuevos hechos. Sebasan en la lógica, por ello también se suelen llamar bases dedatos lógicas. Base de datos Datos almacenados Sistemas de cheros Datos en cheros Jerárquicas Estructuras de datos (listas y árboles) varios cheros En red Estructuras de datos (árbolesy grafos) Relacionales Teoría de conjuntos y relaciones Orientadas a objetos Objetos complejos con comportamiento Geográcas Puntos, Líneas y Polígonos una o varias BBDD Deductivas Hechos y Reglas Documentales Documentos Distribuidas Múltiples varias BBDD en Multidimensionales Cubos varios ordenadores Cuadro 1.1: Resumen de los tipos de basesde 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 actualización 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 deestructurar en múltiples discos duros los cheros de una base de datos, permitiendo el acceso asus datos tanto a partir de herramientas grácas como a partir de potentes lenguajes de programación (PL-SQL, php, c++. . .). 14
  • 24. Capítulo 1. Los sistemas de almacenamiento de 1a información 1.3.2. Funciones de un SGBD Los SGBD del mercado cumplen con casi todas funciones que a continuación 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- racterísticas físicas 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 deseguridad quegarantiza el acceso a la información exclusivamente a aquellos usuarios que dispongan de autorización. 4. Proporcionan un diccionario de metadatos, que contiene el esquemade la base de datos, es decir, cómo están estructurados los datos en tablas, registros y campos, las relaciones entre los datos, usuarios, permisos, etc. Este diccionario de datos debe ser también 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 transacción serealicen correctamente, y en caso dealguna incidencia, deshacen los cambios sin ningún tipo de complicación adicional. 6. Ofrecen, mediante completas herramientas, estadísticas sobre eluso 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 hipotéticos malfuncionamientos. 7. Permiten la concurrencia, es decir, varios usuarios trabajando sobre un mismo conjunto de datos. Además, proporcionan mecanismos que permiten arbitrar operaciones conflictivas en el acceso omodicación de un dato al mismo tiempo por parte de varios usuarios. 8. Independizan los datos de la aplicación o usuario que esté utilizándolos, ha- ciendo más fácil su migración a otras plataformas. 9. Ofrecen conectividad con el exterior. De esta manera, se puede replicar y distribuir bases de datos. Además, todos los SGBD incorporan herramientas 15
  • 25. Bases de Datos estándar de conectividad. Elprotocolo ODBC4está muyextendido como forma de comunicación entre bases de datos y aplicaciones externas. 10. Incorporan herramientas para la salvaguarda y restauración de la información en caso de desastre. Algunos gestores, tienen sosticados mecanismos para poder establecer el estado de una base dedatos en cualquier punto anterior en el tiempo. Además, deben ofrecer sencillas herramientas para la importación y exporta.ción automática de la información. <> Actividad 1.72 Busca en Internetlas leyes de Coddpara elfuncionamiento de sistemas gestores de bases de datos relaciones y establece una relación 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- mación con el usuario. Este interfaz consiste en un lenguaje muy sencillo mediante el cuál el usuario realiza preguntas al servidor, contestando este a las demandas del usuario. Este lenguaje comúnmente se denomina SQL, Structured Query Language, está estandarizado por la 1805, esdecir, todaslas bases de 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 demanipulación dedatos (Data Manipulation Language). Estelenguaje permitecon 4sentencias sencillas seleccionar deter- minados datos (SELECT), insertar datos (INSERT), modicarlos (UPDATE) o inclusoborrarlos (DELETE). En capítulosposteriores se desarrollará lasin- taxis de cada una de estas sentencias. ILenguaje DDL: o lenguaje de denición de datos (Data Denition Langua- ge). Estelenguaje permitecrear todala estructurade unabase de datos (desde tablas hasta usuarios). Sus cláusulas son del tipo DROP (Eliminar objetos) y CREATE (Crear objetos). En capítulos posteriores se detallarála sintaxis de cada una de estas sentencias. ODBC signica Open DatabaseConnectivity, y es unestándar deacceso a datos desarrollado por Microsoft 5180 esel acrónimode International Organization for Standardarization 16
  • 26. Capítulo 1. Los sistemas de almacenamiento de la información - Lenguaje DCL: o lenguaje decontrol 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 propósito de este lengua.je es permitir ejecutar varios comandosde forma simultánea como si fue- ra un comando atómico o indivisible. Si esposible ejecutar todos los comandos, se aplica la transacción (COMMIT), y si, en algún paso de la ejecución, sucede algo inesperado, se pueden deshacer todos los pasosdados (ROLLBACK). <> Actividad 1.82 Buscaen laWikipedia eltérmino SQLe indicalas revisiones que ha sufrido el lenguaje a lo largo del tiempo. A continuación, busca el signicado del término SQL Injection e indica por qué un administrador debe protegersefrente a él. 1.3.4. Tipos de SGBD Se puedenclasicar los SGBD de muchas formas, por ejemplo, según lasbases de datos que gestionan, clasicando los SGBD según traten bases dedatos relacionales, bases dedatos orientadas a objetos, etc. Puesto que en la actualidad, la mayoría de los SGBD integran múltiples losóas y tipos de funcionamiento, en este libro se clasican los de gestoresde basesde datos según sucapacidad y potencia del propio gestor: Los Gestores de Bases de Datos omáticas son aquellos que manipulan bases dedatos pequeñas (omáticas) orientadas a almacenar datos domésticos o de pequeñas empresas.Incluso estos gestores permiten construir pequeñas 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 omático es Microsoft Access, que poseetanto una interfaz de usuario muy sencilla como un potente lenguaje de programación (VBA=VisualBasic forAplications) paraofrecer ausuarios avanzados otras posibilidades de gestión mucho más especícas. 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 Servercon altas prestaciones). Estos gestores soncapaces demanipular grandes cantidades de datos 17
  • 27. Bases de Datos de formamuy rápiday eciente para poderresolver lademanda de muchos (cientos) de usuarios. Un ejemplo típico de servidor de base dedatos Corporativas es el antes comentado Oracle, actualmente, junto con DB2, el servidor de base de datos más potente del mercado (tambiénel más caro). Precisamente,ese costetan alto es el que ha desencadenado quese haya recurrido a una solución intermedia entre gesto- res de base dedatos omáticas y corporativas. Entre estas soluciones intermedias se encuentra MySQL, un gestor de base de datos que, además de ser gratuito y senci- llo, es capaz de manipular gran cantidad de datos cumpliendo prácticamente todos los estándares de la arquitectura ANSI SPARC. Aunque implementa SQL, no tiene un lenguaje de programaciónpropio como SQL Server u Oracle (aunque estáen desarrollo), pero a cambio se integra fácilmente en las típicas soluciones XAMPP, que son paquetes que incluyen, además de MySQL, una versión del servidor Web Apache yvarios lenguajes de script (php, perl. ..) que dotana MySQL de potentes herramientas para acceso y publicación de los datos. Contabilidad Administración Usuario 1 Figura 1.4: Esquema típico de organización de un SGBD corporativo. 18
  • 28. Capítulo 1. Los sistemas de almacenamiento de 1ainformación 1.4. Prácticas Resueltas Práctica 1.1: Introducción a Microsoft Access. En esta práctica, se aprenderá a manipular de forma básica el gestor de basesde da- tos Access de Microsoft.Abre la base de datos Neptunoaccdb que puedes descargar de www.garcetaes, y realiza las siguientes acciones. Será necesariomodicar algún objeto de la basede datos, por tanto guarda una copia con el nombre practicalaccdb 7 y conserva laoriginal para repetir 1apráctica cuantasveces desees. f í I J&#39;/_ Organizar v Nueva carpen lEscritorio «i: rw- Fama es núüiue. Tip: ,4 Sitios recientes ¡a Neptuncuccdb " Z LC .5" Hicrcscft ¿Fi-ze .. E] Vehiculosaccdb 3 I JLC . ":r;;:v: d, Biblioteeas _ 1 Documentos s_ h Imagenes ¡v Musica «A! _ ¡Administrar B deos n; Grupoen el hogar 1&#39;- Equipc - 4 Hombre de archivo: Neptuncmccdb v i Microsoft Office Access (mccd v] rm _ Herramientas v ICancelar | Abre Microsoft Access y pulsa el botón de Office. Selecciona la opción abrir, y en el cuadro de diálogo, busca la base de datos neptuno. 1. ¿Qué tipo de información almacena la base de datos? Neptuno es una basede datosque incorporanlas versiones antiguas deMicrosoft Access (hasta Access 2003) 7accdb es la extensión de las bases de datos de Access 2007 19
  • 29. 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 infonnación que contiene, por ejemplo, la tabla de productos almacena información sobre alimentación y de- rivados, por tanto, Neptuno es el sistema de información de una empresa que importa y eazportacomestibles especialesde todo el mundo. 2. ¿Qué objetostiene la basede datos? ÏrSBíaTM---wl < Id.d Todos los ObJQÍOS deAccess Dplazarse l lacategoría 13m - 6 De leyar C°""&#39;* s formularios Iipode objeto . m; Catalogo i Si Personalizado e 7) K (( (4 Iablas yvistas relacionadas Fecha de ¡reacion Etiquetas decliente fecha de modicacion nm". Desplegando la lista del pa- nel lateral izquierdo de Ac- cess, se puede obtener un listado detodos losobjetos 5°"" de la base de datos clasi- E°""&#39;-"¡°5 cados por tipos, es decir, Worms tablas, consultas, formula- Eaginas rios, informes, etc. Macro; Módulos Todos los objetos de Access Filtrar por grupo Lista alfabética deproductos ¿EE Twin Productos por categoría Resumen de ventas por año Resumen de ventas por trimestre Subintorme Catalogo Subiriíorme ventas por año 440040 Subiriionrie ventas por categoria 4 4 TOÍMQS d!VGHÍIS D0! Cllidld o ventas de empleado por país ventas por año 3. Explora todos los objetos de la base de datos, poniendoespecialénfasisen el diseñode cada objeto, esdecir, en la forma en la que estánconstruidos. Todos los obietos de Access < r j pjd - --r-- --- -- r >EtE|l¿: e e c: Consultas Consuita de pedidos J pu, A Para explorar el conte- nido de un objeto, bas- ta con hacer un do- ble clic con el botón izquierdo del ratón y examinar el panel fron- tal. Para ver el diseño se pulsa con el botón derecho del ratón y se selecciona la opción Diseño. Por ejemplo, la consulta Subtotales por pedido consiste en un listado de los pedi- dos con su coste total. Detalle de pedidos con descuento 7&#39;°P&#39;°°"° iÏ Precioumdad L_ Facturas Filtro íacturas Lista ambetica de producto: Lista de productos actual Los die: productos mas caros C-mpo: iapeaiao Subtotal: SumaICMonedaIMetE Tabla: ¿Detalles de pedidos Productos por categoria l Total: ihqrupnr por Expresion Orden: Productos sobre elprecio medio Mostrar: T} Pedidos trimestrales Resumen d! VEMM D0! IÑO cmem: i Resumen de ventas por trimestre E Zoom Subtotalesporpedido &#39; &#39; y. " l ÍSTototaI: scanamdonedaweooLx-udadlcmhda Totales de ventas por cantidad r mnuwvloo léiliíéi
  • 30. Capítulo 1. Los sistemas de almacenamiento de Ia información 4. Añade el campo Destinatario a la consulta Subtotales por pedido. Entra en modo diseño y pulsando con el botón derecho en el panel superior, selecciona la opción Mostrar Tabla. Después, añade la tabla pedido. Verás cómo aparecen las dos tablas relacionadas, en una, los campos genéricos del pedido (FechaPedido,FechaEntrega,etc.) y en la otra, el detalle de cada uno de los pedidos. A continuación, arrastra el campoDestinatario de la tabla Pedido al panel inferior (en la tercera columna). Deïaïle: de[ELÏIZJC a ïeaidr: FecnaEntiega FechaEnvio FoimaEnvío ¡- Cnigo 1 : Destinatario - DirecdonDe stin riunannminn &#39; i Ianeaiao 9 ldPiodueto PreeioUnidId Cantidad Descuento Subtotal. SumnCMonednIPvecioUmdad]cnntidldlu-[Descueiito]i100r100) Destinatario i; Pedidos ¡impresion Agiupnr por 3. 5. Añade el campo Email a la tabla Clientes, es un campo de tipo Texto y de longitud 75. Examina las distintas propiedades del campo y consulta la ayuda de Accessen cada uno de ellos pulsando la tecla F1. Entra en modo diseño y aparecerá la lista de campos de la tabla. Añade una nueva la y completa el nombre de campo, el tipo y la descripción. A continuación, rellena las propiedades del campo. Puedes, por ejemplo, poner una regla de validación para quelos emails tengan el formato nombre@dominio, esdecir, que tengan una @ en el terio del email. Para poner la regla de validación, pon Como *@* en el campo Regla de validación Nombre de! campo Tipo de datos Descripción i Idcliente Texto Código únicobasado enel nombre delcliente. Nombrecompañía Texto Nombrecontacto Texto Cargocoritacio Texto Dirección Texto Ca|le oapartado de correos. Ciudad Texto Región Texto Estado oprovincia. códPostal Texto País Texto Telefono Texto incluye código de país o de área. Fax Texto Incluye codigo de país o de área. Email Texto Nuevo Campo añadido Propiedaues delcampo General aúsqueu Tamaño del campo 75 Formato Mascara deentrada Título
  • 31. Bases de Datos 6. Examina las relacionesde las tablas que contienela.basede datos Neptuno. &#39;.,¿¿u¿-¡¿ (¿te 12.1»; re:;1c.=:¿_1¡¡¿ ¡l ÏW-Vï nIaProuucto Í WIWGO uldPeaido " ¿Mm rlombrePvodu l l ÏÚPWÜ-W ¡atinente N°mh"c°"p&#39;ñ¡&#39; ldProveedor P&#39;&#39;°U"&#39;°3° ldEmpIeIdo N°mb"c°m&#39;d° ldcategovíu ("5" FechaPedndo C"°°(°""° CanhdaaPovU °°"° FecmEntrega D_"""°" Preuounuaao FecnaEnvío (Wa UnndadesEnb ,_._¿_4__ FonnaEnvio Sa?" unidadesEnPi &#39; r _ &#39; u Cargo °° al d . * &#39; Empleada Duhnltlno p - A ua _ . p. &#39; o L DvremonDest a Nombre CIudadDemn. Ho» aeDFODICUBUQS Cargo I Tratamiento Rlolonmmn" J * &#39; . Depenaenuas del Objlïí (ogpoggmpg; ldc°m9"&#39;¡¡""&#39;°5 Fechannrnlent- . ¡qompucomnñ &#39;¡ 53&#39; 5""J" Fecnacontratna Pmoemrm" 1,¡¿¡¿,na I l &#39;l"rvr :c."-- Dirección v 4 Íz-ncehx seamic; Las relaciones dictan cómo se puede enlazar la información de diferentes tablas para obtener información más elaborada. Para ver las relaciones de la base de datos, se pulsa en Herramientas de Bases de Datos y a continuación en el botón Relaciones 7. Un formulariova siempreasociadoa las operaciones quesehacenconuna tabla, a las que comúnmentesellama mantenimiento de tabla,observael funcionamiento del formulario Clientes y comentaqué operaciones sonestas.Realiza al menosuna vez cada una de las operaciones que permite el formulario. Las 4 operaciones queforman el mantenimiento de una tabla son la insertión o alta, eliminación o baja, modicación o actualización y búsqueda o consulta de un registro. Todas estas opemciones se pueden realizar de forma muy sencilla y visual a través del formulario. 8. Inserta un nuevo cliente en la base de datos. Y lo.declientev Nombre decompañia v Nombre delcontact - Insertar un cliente es muy sencillo, WANDK Diewandemde Kuh Rita Muller se puede hace-ra través del forfnularío VJÁRTH Wála Herkku Dnrkxo KOSKIXBÍO &#39;C[ien¿¿3 o abñendo [a tabla (jaen- WELLI Wellington Importadora Paula Parents tes! y desplazarseal último mgistm_ WHKTC white Cloverrvlarkets Karllablonsku WRLMK wllman Kala MaruKamunen WOLZA wclska Zaiazd Zbyszek DIestrzenIev_ ILMSR La Cantina deSan Roman Antonio Lopez b Registro. K 492 de 92D o . Busur 1Lv En una la vacía, se agregan los va- lonescorrespondientes a cada campo. 9. Elimina el registrocorrespondiente al cliente Rancho Grande. ¿Es posible?Si no esposible.¿Quéhabría que hacerpara poder eliminarlo? 22
  • 32. Capítulo 1. Los sistemas de almacenamiento de la información Para eliminar el cliente, hay que buscar el cliente Rancho Grande . A continuación, se señala. la la con el botón derecho del ratón y se escoge la opción 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, habría que eliminar previamente todos sus datos asociados. j Clientes -- Y Nombre decompañia v Nombre delcontact- Cargo delcontacto - e ¡ Jensen «re-IMM» L Sergio Gutiérrez Representante deventas Av.da Nummgism nGrocery Paula wilson Representante agente ventas 2817i ¡"""" "WW i Maurizio Moroni Asistente deventas Strad. CMI! Janete Limeira Asistente deagente deventaAv.Cr: 5gp." Michael Holz Gerente deventas Greni Ale¡andra Camino Gerente decontabilidad Gran" Rancho Gun I l D ¿no de fila... i l 10. Modica el valor del campo Nombre de Contacto del registro correspondiente al cliente Romero y Tomillo. A continuación, modica el campo Id. de Cliente cambiándolo su valor a ROMMY. ¿Es posible modicar el Id. de Cliente? Si es posible, ¿conservael cliente aún sus pedidos? Pana modicar el cliente, se localiza su la y se sitúa el cursor del ratón en el campo que se desea modicar. Después, 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 relación. Modicar el campo Id. de Cliente podría suponer la.pérdida de pedidos si no se actualizara a su vez todos los pedidos del cliente. Access efectúa esta modicación automáticamente al cambiar el identicador del cliente, por tanto, no hay pérdida de pedidos. 3 [lie-ita - Y ld.decliente Nombre decompañia - Nombre delcontact- Cargo delcontacto DirA QUEEN Queen Cozlnha Lúcia Carvalho Asistente demarketing Alameda d( QUlCK QUICK-Stop Horst ¡(loss Gerente decontabilidad Taucnerstre RANCH Rancho grande Sergio Gutierrez Representante deventas Av.delLibe RATTC Rartlesnake Canyon Grocery Paula Wilson Representante agente ventas 2817 Miltor REGGC Reggiani Caseifici Maurizio Moroni Asistente deventas Strada prev: RICAR Ricardo Adocicados Janete Limeira Asistente deagente deventaAv,Copacai: Richter Supermarkt Michael Holz Gerente deventas Grenzacher I t Romero vtomillo Jose Modificado Gerente decontabilidad Gran Vía,1 .__*-SANTG__ __janteourmet_,_.__.__-, __._._ _.Jonas Beraulisen Drooietario Erlinzskaki&#39; Registro: I< 4 69de 92 D N i. eroyTomillo 1 . l D 11. Abre la tabla de proveedores y consulta qué productos proveeel proveedor Leka Trading Primero, se localiza el proveedor en la tabla de Proveedores mediante el cuadro Buscar. A continuación, se pulsa el icono + del campo Id de Proveedor para desplegarlas relaciones que tiene con Productos. 18AuxJOyEUX ecclesiastiques Guylene Nodier Gerente devent 19NewEngland Seafood Cannery Robo Merchant Agente decuent 20Leka Trading Chandra Leka Propietario ld.deproducto- Nombre deproducto Categoria - Cantidad porUnidav Tallarines deSingapur Granos/Cereales 32- 1kgpaq. 43Cafe deMalasia Bebidas 16- latas500 g 44Azucar negra Malacca Condimentos 20 - bolsas 2kg (Nuevo) ,_..__¡_,_ ,-.s.... ».___.__i- __. egistro: I< l de3 D H 0 - LeknTnding4 l 23
  • 33. Bases de Datos 12. Consulta la ayuda de Accessy comenta los diferentes tipos de datos que puede almacenar un campo en Access (Texto, Memo, Numérico). En Access existen 10 tipos de datos básicos: Datos adjuntosComo fotos digitales. En cada registro es posible adjuntar varios archivos. Este tipo de datos no estaba disponible en versiones anteriores de Access. AutonumérícoNúmeros que se generan automáticamente para cada registro. Moneda Valores monetarios. Fecha/HoraFechas y Horas HípervínculoComo direcciones de páginas web. MemoBloques de tezto largos y tezto que emplean formato de texto. Una utilidad típica de un campo Memo sería una descripción de producto detallada. Objeto OLEObjetos OLE (objeto OLE: objeto que admite el protocolo OLE para la vinculación e in- crustación de objetos. Un objeto OLE de un servidor OLE (por ejemplo, una imagen de Paint de Windows o una hoja de cálculo de Álicrosoft Excel), se puede vincular o incrustar en un campo, formulario o informe. Texto Valores alfanuméricos cortos, como un apellido o una dirección. Número Valores numéricos, como distancias. Hay que tener en cuenta que existe un tipo de datos inde- pendiente para la moneda. Sí/No Valores Booleanos oLógicos. Admiten únicamente el valor Si y el valor No. 13. ¿Qué subtípos de datos tiene el campo numérico en Access? El tipo numérico se puede dividir en subtípos dependiendo del tamaño de campo que se eli- ja. Asi, los campos numéricos almacenarán un rango de valores muy distinto dependiendo del tamaño del campo que se seleccione. Por ejemplo, los tamaños byte (1 byte), entero (2 by- tes), entero lango (4 bytes), simple y doble precisión (coma otante de 4 y 8 bytes), etc. GEMFN Búsqueda Tamaño del campo Entero lar - Lugares decimales ¡"NFO Mascara de entrada Eme) ¿&#39;90 Titulo Valor predeterminado Regla devalidación i Textode validación Requerido No Indexado No Etiquetas inteligentes Alineación deltexto General Doble Id. dereplica Decimal 24
  • 34. Capítulo 1. Lossistemasde almacenamientode 1ainformación 14. ¿Quévaloresadmitiría un camponuméricode 1 byte? Como 1 byte son 8 bits, se estima que los valores numéricos 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 Accesslos rechazará. Nótese que este cálculo se hace sin tener en cuenta el signo del valor, puesto que el valor byte, no admite signo. Para utilizar números con signo ha de escogerseel tipo Entero y pam utilizar númems reales, con.decimales, debe seleccionarse un campo en formato de comaotante (simpleo doble)o el campodecimal. 15. Crea una tabla llamada Test conun únicocamponuméricode 1 byte. ¿Quéva- loresmáximo y mínimo sepuedenalmacenar?Prueba a insertar registrospara ve- ricarlo. -/ Crear Datos externos ÍHICIO La . &#39;. l 3 _ Nombre delcampo Tupo dedaios Para crear una tabla!sepulsa Tabla Plantnllas Lnstasae DISEÑO Numem en la pestaña Crear y se selec- 0mm Shmpm"! &#39; d!" . . . v, . pn wca a czonael icono Tabla. A contz- 3m _ &#39; &#39; &#39; &#39; &#39; e e nuación se pulsa el botón Ver 5mm _,Bús9us9I__AA__ ___ y se seleccionala opciónDi- - Cree unanuevstablaracxa Puede a...nlos T""""° °""°° 5V - campcs uuenamente enuna nueva ¡abla o F°""¡° seno Se Pone7mm? a l ta con! launla envlsxa Duseño. Luoms netimnles Automnko bla, y se modica la línea que l _ Mnsaradunivldl a anece conelnombre Id ti L: m: mu P y po _J Valor predelermmado autonuméïico para poner los &#39; Huevo Aguggr campo; Regll aevaludauon datosdel campo.En Tamaño Ei, 3&#39;39 m ° "°"°&#39;° Requerido No delcampo hayque seleccionar 2 &#39; l indexado snsm GUDIICIGOS] Byte _ 4 Etiquetas inteligentes Ahnenaon del texto 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], seproduce el siguienteerror: El valor que ha especicado nacoincide (un eltipo dedatos Número de esta eolumm. Especique un valor nuevo. Ayuda con los tipos de datos yformatos. 25
  • 35. Bases de Datos Práctica 1.2: Manipulación deinformación enAccess. Descarga dewww. garcetaes 1a basede datos de Vehículos (Vehiculosaccdb) y ábre- la. Será necesario modicar algún objeto de la base de datos, por tanto guarda una copia con el nombre practicalaccdb y conserva la original para repetir la práctica cuantas VECES CÏGSGGS. 1. ¿Cuántos modelos de vehículos hay? x r Modelo -censor-nro": Se abre la tabla en modo Vista 1 A|a Romeo 147 1.6 rs 16V 10s cv 3/5 8.1 de Hoja de Datos , y, se con- 2 Alfa Romeo 147 1.o rs 15v12o cv 3/5 3,2 sulta el contador de 3Alfa ROMEO 147 1.9 JTD IZÜ CV 3/5 que hayen ¡aparte ¿nm-o, ¿el 4 Alfa Romeo 147 1.9 no M-JET 15o cv 3/5 paneLEn este caso, 3654 mo_ 5 Alfa Romeo 147 2.0TS 16v 3/5 d l . Alfa Romeo 147 2.0 TS 16V Selespeed 3/5 eos. , , , , _ _ ,,_ , ,,_ _ _ 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 5 primeros modelos que apanecen son los que más consumen. x Mocelo -Ïioosumo -1 yFmamnnac .v._ ,JU, . - 19 Ferran 612 agua. 20&#39;s Qrdenar de menor a mayor 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 L1» 1262 Jeep gnerokee 3.7V 16,5 1657 Mercedes-Ben m. 63 AMG Autom. (1641 16,5 Agcno de tolumna, Qculuv columnas 3. Inserta un nuevo modelo de automóvil completando todos los campos. Se pulsa el icono insertar registro y, a continuación, se rellenan todos los datos menos el campo Id, que es autonumérico y por tanto se rellena automáticamente. El campo ñmagen se rellena haciendo doble clic sobre el dato adjunto y se selecciona una imagen de tipo bmp. juanma Id -I Marca - 7 7 ¡Mooeio y N - Consumo -1 Emnsrones - n t d 7A 3652 Volvo xcsc vsAWD AUT 7A 13.5 322 3653 volvo xcsc vsAWD Am EXECUTPJE/SDOR 13.3 317 3554 votvo xcso vsAWD AUT 133 317 " 3655 Ferrari Tesïarossa 22.27 Huevo,- Regístra N4 365? M3655 ¡ &#39;0- J, J. m; 26
  • 36. Capítulo 1. Los sistemas de almacenamiento de la información 4. Crea y ejecuta una consulta para ver los automóviles de la marca Seat, repite el procedimiento para los automóviles de la marca Toyota y Volkswagen. ¿miente nao ¿QmmrooS"d&#39;mumfmh ¿Desea ma wnsuudeoetaloeoremwm? (QHSUKBS Nededeádenúsdeuwmuhodia. Automóvnes Seal 1-: llmmaem 4, Ésta es toda la mfovmaoón que natura el ¡sustenta para crear la consutn. l Imagenoeïlags flmagmyneumg l Desea abnr la mnsulm o moáwcar ei dxseño de la COHSUÍG g ImagenFneTmeSmw <1 e enFueT _ . ilzagmeg y agravante consulta para ver nxmoco. .......... m g íiodca el dzseño oe A Se puede crear una consulta de varias formas: con el asistente para creación de consultas, con vista diseño o creando una consulta en modo SQL. En esta solu- ción se opta por la primera opción, se pulsa en la pes- taña Crear y se selecciona la opción Asistente pam Consumo consultas. Primero, se selecciona la opción Asistente E"""° para consultas sencillas y después se eligen los cam- pos que se mostrarán en la consulta, Marca, Modelo, Consumo y Emisiones. En segundo lugar se elige la :[Luna] {Consumo} opción Detalle y nalmente se da un nombre a la Automoviles Lutomovules áutomovules tabla. Para tenninar, se seleccionará la opción Mo- dicar diseño de la consulta. A continuación, se establece el criterio a ltm para la búsqueda de los automóviles 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 Diseño, pues se ALHAMBRA 1.8 MAN.6 realiza de forma idéntica a cuando se modica el di- -»«HA&#39;4BRA1.9TD|AUT.5 seña de la consulta. . ÁLHAMBRÁ 1.9 ÏÜl MAÑ. 5 Sea. A_r-;ANBF.A 2.0 NAAN. 6 y Regnstvc N1 de 93 b DI p .Busca: 27
  • 37. Bases de Datos 5. Abre el formulario Catálogo Ferrari en modo Diseño y describe cómo seenlazan sus campos a la base de datos. Para abrir el formulario en modo diseño. se selecciona el objeto Catálogo Ferrari en el pa- nel lateral y pulsando con el botón derecho del ratón se elige la opción Diseño del For- mulario. A continuación, se selecciona cualquiera de los campos y se pulsa en. el botón Ho- ja de Propiedades que esta. situado en la pestaña de Diseño para mostrar las propiedades de los controles del formulario. En la hoja de propiedades aparece la opción Origen del control. j (alüogofarui &#39; -n-|-I&#39;2"I&#39;3"I-4 - -&#39; &#39; &#39; &#39; &#39; &#39; &#39; &#39; -- «n- HC]! d:prcpmoades Tipo deselecclcn Cuadro oe(eno Maru FormnoUNOSEventos01m ïoaus ¡ ngen delcontrol u . y Mascara deentrada ¡mov predeterminado Regla devahdaclon 6. Crea una tabla llamada Propietarios con los Campos DNI, Nombre, Apellidos, Fecha de Nacimiento, Dirección y Teléfono. DNI será el Campo clavede la tabla. De la pestaña Crear, se escoge la opción Diseño de tabla, y se rellenan las las con cada uno de los campos que va a tener la tabla. Se ha de poner atención en. el tamaño de cada uno de los campos. ¡DNI - Texto (10) nNombre - Texto (20) ¡Apellidos Texto (70) ¡Fecha de Nacimiento - Fecha/Hora nDirección - Texto (255) I Teléfono - 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 asignación del nombre de la tabla. _ T; __: -¿.:; Nombre delcampo ¿t i V DNI exto Doc ama manana: una: aeDueño»Nombre Texto Nor detam: SharePoint &#39; de ¡abla Apemdos Texto Ap¿ l Fecha deNaccmuenio ¿erre/Hora Fec DITECCIÓH Texto Dire Telefono Texto Tele 28
  • 38. Capítulo 1. Los sistemasde almacenamientode la información 7. Creaunatabla llamadaPropietariosAutomoviles conloscampos DNI (del pro- pietario), Id (del automóvil) y Fecha de Compra. Establececomo clave principal de la tabla, los camposDNI e Id. Se repite el procedimiento de la cuestión anterior, esta vez, teniendo en cuenta que el tipo y tamaño de loscampos DNI e Id debe ser igualal de las tablasPropietariosy Automóviles,esdecir,DNI - Texto(10) e Id (Numérico, Entero Largo). El campoFecha de Compraserá de tipo Fecha/Hora. Para establecer la clave principal se seleccionan las doslas correspondientes a los camposId y DNI y se pulsa el botón 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 continuación, se- leccionar las tres tablas y agregarlas al panel de relaciones. Para enlazar el campo Id de las tablas de Au- tomóviles y PropietariosA-utomóviles se selecciona el campo Id de esta última y se arrastra hasta el campo Id Automóviles. 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 estén relacionados con Vehículos (Id) realmente existan en la base de datos, y, para actualizar el campo Id en la tabla PmpietariosAutomóviles de forma automática si se modica en la tabla Automóviles. Se repite este procesopara el DNI. Observa el mapa de relaciones como se ilustra a continuación. Henarmentas de base dedatos . __ r "-*&#39;-&#39; - 5- " ;:.x &#39;. : ¡ZCEEIILL . bld g Dm e4 . - Dependencias del crudo th". "WW" ¡ÏEÍHCIOHGS Idoaela ápelhdos C°"W"° Fecha de Nacnmierr Llamar u ccpha: Emisnones ¡mamon ¡""9" Telefono J Egg: nmgndad reference! yV &<sa.¿=2¿n_ rs¡.e99¿922á arma en cascada los regsros relacionados 29
  • 39. Bases de Datos 9. Crea un formulario con todos los campos de Propietarios mediante el asistente de creación de formularios. Usa la opción de diseño Justicado y un estilo a tu elección. Crear En lapestaña Crear hay Élghmmaazgsïm que desplegar el menúMás , ¿i fonulaoa y después se- i ¿snstente panformularuos leccionar la opción Asia- &#39; y tente para formularios. ¿apagones Se siguen los pasos indica- dos por el asistente, selec- cionando todos los campos &#39; y eligiendo la distribución I:4 I, mmm, Justicadoy cualquier es- Í L tilo, por ejemplo, el estilo Ï Técnico. a V Quadro de dialogo modal Asistentzponfomulum cQaédsvbuoándeseawlvcunlfotmalab Euuuela Datos 30
  • 40. Capítulo 1. Lossistemasde almacenamientode 1ainformación 10. Inserta 5 registrosen la tabla de propietariosa través del formulario creado en el apartado anterior. y a Continuación.inserta registrosen la tabla Propieta- riosAutomóvilespara hacer dueño de dos modelosde vehículosa 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 operación para cada una de los 5 registros. Propietarios DNI Nombre Acelncos 52201928 José carlos Garcia Perez Fecha deNacimiento Dueccnón C/Los álamos, 15.Madnd, 28034 Telétono 912234732! LRegnstra I; Para el caso de PropietariosAutomóviles, 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 Automóvil del que es propietario, por ejemplo, José Carlos García Pérez , con DNI .52201928, es propietario de los vehículos 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 (ya Zampas dnzpoynmles enpma: seI/agonacays 52201928 s9 0335552010 °&#39;"°"" 53" W , 52201928 98 02/04/2010: oPvopnetanos Eartaurama i? 31
  • 41. Bases de Datos 11. Realiza, con el asistente para la creación de informes, un informe con los propie- tarios de los vehículos que hay en la base de datos, mostrando qué vehículos posee cada propietario. En la pestaña Cnear hay que seleccionar la opción Asistente para informes. Se selecciona el campo Nombre de la tabla propietarios y la marca y el modelo de la tabla Automóviles. Crear 1r:: g Etcqueias J L] Intorme en blanco - - lnvorme Dueño de Tabla. metano: [1 Asmente para míormes ¡mmm Tabu: wwewmvhmbs _ . ¡LAS g L""!I1Ñ&#39;HÏH¡E3L;, ._*_ en 14:79 1 -&#39; Fecha de Neumann) Dnrecoón Teléfono Ilmagenenate &#39; lmogernFleïlags lntaoenieatne jlmapemñevrsesmm Canceluv ¿Cómo desea mr las datos? nor Aummóvnes Se siguen los pasas indi- cadas por el asistente, se- ¡gr m, N, mu leccionando cómo se desea ver los datos, si se pree- re el informe agrupado por algún nivel, la ordenación de los registros y nalmen- te, la distribución, orienta- ción y estilo. Para termi- nar, se abre el informe en vista previa. Propietarios Aud A3 19 7De MAN. S Aun: A5 14 FS AU. 7V muqrzolnx. :5 de n-Iv: 5|SCJ: 32
  • 42. Capítulo 1. Los sistemasde almacenamientode la información 12. Crea una consulta para ver el modelo y la marca de los vehículosdel primer propietarioque insertaste. En la pestaña Crear hay que seleccionar la opción Diseño de consulta. A continuación, se seleccio- i ¡a Nom nan las tres tablas de la ,_ ¡,,,,,¿,,,,,,, Apellidos base de datos, mostrándo- Consumo . """°&#39;"""" seasílasrelaciones entre ¡"mmm Ïgïggr" ellas. Para seleccionar _ los campos que salen . La en la consulta hay que (nuvo: umarn ¡Modelo rlombve DNI aTTa-ïtm? las ¿alumnas Tlbll: áAutomovxles Amomóvnles Pvopuetanos Propuetarios Marca,Modelo,Nombne y M°::"ï ¡ , , o m: ¡ y ,_; J y DNI delastablas al panel (mmm: ¡E1931 inferior. o:l Posteriormente se añade en la la Criterios y columna DNI el valor = 52201 928 . Para _ terminar, con el botón l &#39; Nombre v DN; derecho sobre el título un A31.4TFS|AUT.7V Josécarlos 52201923 de la consulta, se elige la A31.9TDIeMAN.5 Josecarlos 52201925 opción guardar y se escribe un nombre. Finalmente, se puede ejecutar para ver los resultados. 33
  • 43. Bases 1.5. de Datos Prácticas Propuestas Práctica 1.3: Base de datos de un instituto Crea en Microsoft. Access2007 una base dedatos llamada lnstituto.accdb y realiza los siguientes ejercicios. 1. 10. 11. 12. Crea una tabla llamada Alumnos con los campos DNI, Nombre, Dirección, Fecha de nacimiento, foto, grupo y curso. Elige cuidadosamente el tipo de datos para cada campo. .Inserta 6 registros a través de un formulario creado al efecto, tres registros para el curso 1 y otros dos para el curso 2. .Crea una consulta que muestre el campo DNI, Nombre y Curso, 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. .Crea la tabla Asignatura con los campos NombreAsignatura, Codigo, Ciclo. Crea la tabla Notas con los campos sucientes para insertar la nota de un alumno en una asignatura. .Establece las relaciones entre las tablas Notas, Asignaturas y Alumnos. Insertar mediante un formulario 4 asignaturas para dos ciclos distintos. 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-
  • 44. Capítulo 1. Los sistemas de almacenamiento de 1ainformación Práctica 1.4: Base de datos de mascotas Crea una base de datos llamada Mascotasaccdb y realiza los siguientes ejercicios: 1. es» 10. 11. 12. 13. Crea una tabla llamada Animales con los campos Nombre, Tipo, Raza, Peso y Color. Añade a la tabla un campo clave. . Inserta 5 registros en la tabla Animales. Crea una consulta para ver los Animales de tipo Perro. . Añade una nueva columna a la tabla Animales llamada Dueño. .Completa el Dueño de cada uno de los Animales de la tabla. .Añade una nueva columna a la tabla Animales llamada PrecioDeCompra. Es- ta columna contendrá un valor nulo (sin información) cuando el Animal fue adquirido gratuitamente. . Crea una tabla llamada Vacunaciones con los campos FechaVacunacion, Des- cripcíónVacuna, Veterinario y un campo que relacione la vacunación con el animal vacunado. 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. Crea un informe para listar las vacunaciones de los animales. Crea un informe basado en la consulta del tercer ejercicio para ver las vacu- naciones de los perros. Crea un formulario en vista diseño para poder añadir vacunaciones de los animales. Mediante la pestaña Datos Externos de Access, exporta los datos de la tabla Animales a hlicrosoft Excel. Con la misma pestaña, crea una página web con los datos exportados del informe de vacunaciones.
  • 45. Bases de Datos 1.6. 36 Resumen Los conceptos clave de este capítulo son los siguientes: Un chero es una estructura de información que crea el sistema operativo para almacenar información. El tipo y formato del chero determina la forma de interpretar la información que contiene. Se clasican según su contenido, organización 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 múltiplesformas dedatos (texto, imágenes, vídeo. .. ) requierenuna aplicación que sepa cómo está estructurada la información en ellos. Una base de datos está organizada mediante tablas. Las tablas contienen re- gistros de información o las. Cada registro está compuesto por múltiples campos o columnas. Las tablas se relacionan entre sí para dar cierto sentido a la información 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 múltiples aplicaciones, contables, administrativas, motores de búsquedas, cientícas, bibliotecas, censos, virus, etc. Las bases de datos se crean siguiendo un modelo o losofía. Así, han evolu- cionado desde las basesde datos jerárquicas y en red hasta las más modernas bases dedatos distribuidas. Las más comunes y utilizadas son las basadas en el modelo relacional que propuso el ingeniero de IBM Edgar F. Codd. Un SGBD es elconjunto 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, además, otras funciones avanzadas comola concurrencia, conectividad, generación de estadísticas, etc. El lenguaje SQL es una interfaz de programación entre el usuario y la base de datos. Se compone de varios sublenguajes: DML, DDL, DCL y TCL. Los gestores de basesde datos que manipulan bases dedatos pequeñas se lla- man gestores de basesde datos omáticas, y los que manipulan bases de datos medianas o grandes se denominan gestores de basesde datos corporativos.
  • 46. Capítulo 1. Los sistemas de almacenamiento de la información 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 interpretadomediante unforma- to c) Son caracteres imprimibles del código AS- CII d) Es un conjunto de pixels con colores 2. Un chero de texto contiene a) Cualquier tipo de información b) Caracteres codicados en código ASCII o UNICODE c) Los datos de una base de datos d) Datos que han de ser accedidos secuencial- mente 3. Las tablas de códigos ascii a) Usan 2 bytes para representar cada carácter b) Distancian las mayúsculas de las minúscu- las en 64 unidades c) Tienen 256 caracteres distintos d) Todas las anteriores son correctas 4. Señala el chero que no es binario Un chero .avi Un chero .html a) b) c) Un chero .mp3 d) Un chero .doc 5. Un campo clave es a) Un campo numérico b) Un campo especial que puede repetir un mismo valor c) Un campo especial que no puede repetir ningún valor d) Un campo alfanumérico 6. Una query es a) Un comando o petición que se envíaa la base de datos b) Una. búsqueda de información c) Una operación de ordenación d) Una estructura deinformación 7. Un índice es útil para a Insertar información b Borrar información C d Buscar y ordenar información ) ) ) ) No repeti valores 8. Una vista es una tabla virtual que a Almacena los datos en la BBDD ) b) No se almacena en la BBDD
  • 47. Bases de Datos 1.8. 1. Comprueba tu aprendizaje N ombralos distintos tipos de bases de datos que existen según el mo- delo que siguen. .Enumera 10 usos que puede tener una base de datos. .Explica para qué sirven las tablas UN ICODE. .Clasica los tipos de chero según su contenido. ¿Dónde almacenan las basesde da- tos la información? .Nombre 6 tipos de objetos que pue- de contener una base de datos. .¿Qué es un script o guión? . ¿Qué es una vista? ¿En qué se di- ferencia de una consulta? . Dene los siguientes conceptos: IDato n Tipo de Dato ICampo IRegistro -Tabla IRelación - Consulta IProcedimiento 10. ¿Qué tienen en común Larry Elli- 38 son y Bill Gates? 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ¿Conoces algunabase dedatos que almacene conguraciones? ¿En qué consiste la función de se- guridad de una BBDD? ¿Cómo garantiza la integridad de los datos un SGBD? ¿Qué es el diccionario de metada- tos? ¿Qué quiere decir que una base de datos soporta transacciones? ¿Qué esODBC? ¿Qué quiere decir que una base de datos permita concurrencia? ¿Cuál es la función del lenguaje TCL? ¿ Y la del lenguaje DML? ¿Cuál es la extensión de un che- ro que contiene una base de datos Access? ¿Qué operacionesforman el mante- nimiento de una tabla? Describe dos formas de crear un formulario en Access. ¿Cuál es el tipo de datos que usa Access paralos valoresmonetarios? Nombre 5 tipos de datos que per- mite Access. Describe dos formas de crear una consulta en Access.
  • 48. CAPÍTULO 2 Diseño lógico relacional Objetivos W Identicar el signicado de la simbología de los diagramas E/ R Contenidos Identicar las tablas del diseño Representación del problema lógico hïodelo de datos Identicar los campos que for- Diagranlas E/R man parte de las tablas .Identicar las relaciones entre l l E mode o E/R anïphado tablas del diseño lógico El modelo relacional Identicar los campos clave Transformación E /R al modelo relacional Aplicar reglas de integridad . . ,Identicar reglas de normaliza- Normahzaclon , , cion Identicar y documentar reglas que no se puedenplasmar en el diseño lógico En este tema se trata a fondo e] diseño de una. base de datos, desde 1a inter- pretación y análisis de un problema hasta el diseño y propuesta de un modelo que dé solución al problema planteado. 39
  • 49. Bases de Datos 2.1. Representación del problema Una base de datos representa la información contenida en algún dominio del mundo real. El diseño de base de datos consiste en extraer todos los datos relevantes de un problema, por ejemplo, saber qué datos están implicados en el proceso de facturación de una empresaque vendevehículos agrícolas,o, qué datos sonnecesarios para llevar el control veterinario de los animales de un zoológico. Para extraer estos datos, se debe realizar un análisis en profundidad del dominio del problema, y saber, de estaforma, qué datos son esenciales parala basede datos y descartar los que no son de utilidad. Una vez extraídos los datos esenciales comienza el proceso de modelización, esto es, construir, mediante una herramienta de diseño de base de datos, un esquema que exprese con total exactitud todos los datos que el problema requiere almacenar. Típicamente, los informáticos analizan un problema a través de diversasreuniones con los futuros usuarios del sistema. Nótese, que generalmente, el problema no solo se resuelve poniendo una base de datos a disposición de un usuario, sino también un conjunto de aplicaciones de software que automaticen el accesoa los datos y su gestión. De estas reuniones,se extraeel documento más importante del análisis de un sistema informatico, el documento de Especicación de Requisitos Software o E.R.S. A partir de esta E.R.S. se extrae toda la información necesaria para la modelización de los datos. <> Actividad 2.1: Busca en Internet la estructura del documento estándar IEEE 830 SRS o Software Requirements Specication. Descarga de internet algún ejem- plo de SRS y examina cómo los analistas de software organizan los requisitos de una aplicación extraídos de las conversaciones conusuarios. 2.2. El modelo de datos La modelización consiste en representar el problema realizando múltiples abs- tracciones 1para asimilar toda la información de un problema, y de esta manera, generar un mapa donde estén identicados todos los objetos de la base de datos. ¡Una de las acepcionesde la RAE para abstraer es: Separar por medio de una operación intelectual las cualidades de un objeto para considerarlas aisladamente o para considerar el mismo objeto en su pura esencia o noción 40
  • 50. Capítulo 2. Diseño lógico relaciona] Para modelar un problema de base de datos es necesario tener en cuenta las siguientes consideraciones: - Casi con toda probabilidad, la persona querealiza la modelización es un analis- ta informático, por lo que puede no ser un experto en el dominio del problema que debe resolver (Contabilidad, Medicina, Economía,etc.). Se ha de con- tar con la experiencia de un futuro usuario de la base de datos que conozca a fondo todos los pormenores del negocio, y que, a su vez, puede no tener conocimientos de informática. - Hay que modelar siguiendo unas directrices o estándares, esdecir, usando una losofía estándar para que el resto de la comunidad informática pueda entender y comprender el modelo realizado. De esta manera, será posible aprovechar las herramientas informáticas software del mercado para realizar diseños. n La base dedatos estará gestionada por un SGBD que tendrá unas característi- cas técnicas, de esta manera, no se tratará igual la implantación de la base de datos en un sistema l&#39;I_ySQL que en uno DB2. Para satisfacer estas necesidades,se suelerecurrir a tres modelados: 1. El modelo conceptual. Es un modelo que tiene un gran poder expresivo para poder comunicarse con un usuario que no esexperto en informática. Tiene una gran potencia para representar el dominio del problema tal y como elusuario lo concibe. Elmodelo quese usará en estelibro seráel modeloEntidad/Relación. 2. El modelo lógico. Este modelo es más técnico que el anterior. Los conceptos expresados por este modelo, suelen serdifíciles de entender por los usuarios y generalmente tienen traducción directa al modelo físico que entiende el SGBD. El modelo lógico elegido dependerá de la implementación de la base de datos, así, no es lo mismo modelizar una base de da.tos orientada a objetos, que modelizar una base de datos relacional. El modelo que se usará en este libro será el Modelo Relacional. 3. El modelo físico. Es el resultado de aplicar el modelo lógico a un SGBD concre- to. Generalmente está expresado en un lenguaje de programación de BBDD tipo SQL. Este libro transformará el Modelo Relacional en modelo físico a través del sublenguaje DDL de SQL. La interacción entre estos tres modelos es fundamental para un diseño de calidad: 1. Primero, se negocia con el usuario el modelo conceptual. 41
  • 51. Bases de Datos USUARIO EXPERTO MODELO lN FORMÁTICÓ CONCEPTUAL DIS EÑADOR BBD D PROGRAMADOR BBDD DOMINIO DEL PROBLEMA Figura 2.1: Interacción entre modelos. 2. Segundo, se pasael modelo conceptual al modelo lógico, realizando una serie de transformaciones necesarias para adaptar el lenguaje del usuario al del gestor de base de datos. 3. Finalmente, se transforma el modelo lógico en físico, obteniendo de esta forma la base de datos nal. En ocasiones, los diseñadores experimentados, realizan el diseño de Ia base de datos directamente en el modelo relacional. Esto puede representar un ahorro de tiempo si el problema a resolver es relativamente sencillo. Pero, general- l mente, en problemas más complejos, saltarse el diseño conceptual y la opinión del usuario, da como resultado diseños incompletos e incoherentes. El consejo del buen administrador. .. 2.3. Diagramas E/R Para representar el modelo conceptual se usará el modelo Entidad/Relación. Este modelo consiste en plasmar el resultado del análisis del problema mediante diagramas entidad-relación. 2 ¡También llamados en otras fuentas diagramas Entidad-Interrelación, o en inglés Entity- relationship 42
  • 52. Capítulo 2. Diseño lógico relacional Estos diagramas fueron propuestos por Peter P. Chen a mediados de los años 70 para la representación conceptual de los datos y establecer qué relaciones existían entre ellos. La notación es muy sencilla, y, precisamente, esta sencillez, permite representar el mundo real de forma que el usuario pueda validar si el modelo propuesto se ajusta perfectamente a la resolución del problema. A continuación, se presentan las deniciones necesarias para comprender el mo- delo entidad relación. 2.3.1. Entidad Cualquier tipo de objeto o concepto sobre el que se recoge información: cosa, persona, concepto abstracto o suceso. Se representan mediante un cuadrado. Por ejemplo: coche, casa, empleado, cliente, etc. Las entidades se representan gráca- mente mediante rectángulos y su nombre aparece en el interior (generalmente en singular). Un nombre deentidad solopuede aparecer una vezen el diagrama. Emple ados Figura 2.2: Ejemplos de entidades. Hay dostipos deentidades: fuertes (o regulares)y débiles.Las entidades débiles se representan mediante un cuadro doble. Una entidad débil es una entidad cuya existencia depende de la existencia de ot.ra entidad. Una entidad fuerte es una en- tidad que no es débil, es decir, existe por méritos propios. Un ejemplo típico es la existencia de dos entidades para la representación de un pedido. Por un lado, la entidad pedido representa información genérica sobre el pedido como la fecha del pedido, fecha de envío, el estado, etc. Por otro lado, la entidad Detalle de Pedido recopila las líneas de información especíca sobre los artículos y unidades pedidas. En este caso, Detalle de Pedido es unaentidad débil, puesto que la eliminación del pedido implica la eliminación de las líneas de detalle asociadas al pedido, es decir, no tiene sentido almacenar información especíca del pedido si se ha eliminado ese pedido. Entidad Fuerte Entidad Débil Figura 2.3: Entidad fuerte y débil. 43
  • 53. Bases de Datos 2.3.2. Ocurrencia de una entidad Es una instancia de una determinada entidad, esto es. una unidad del conjunto que representa la. entidad. Ejemplo: La entidad coche tiene varias instancias, una de ellas es el vehiculo seat ibiza con matrícula 1222FHD de color negro y con 5 puertas. 2.3.3. Relación Una relación (o interrelación), es una correspondencia o asociación entre dos o más entidades. Cada relación tiene un nombre que describe su función. Normalmente debe utili- zarse un nombre que exprese contotalidad la nalidad de la relación, evitando poner un nombre que pueda signicar muchas cosas, por ejemplo, tener, hacer, poseer. Las relacionesse representangrácamente mediante rombos y su nombre aparece en el interior. Generalmente este nombre de relación corresponde a un verbo, pues las relaciones suelen describir las acciones entre dos o más entidades. Las relaciones están clasicadas según su grado. El grado es el número de en- tidades que participan en la relación. Atendiendo a esta clasicación, existen los siguientes tipos de relaciones: IRelaciones binarias: (grado2), sonaquellas quese danentre dosentidades. Figura 2.4: Ejemplo de relación binaria. n Relacionesternarias: (grado3), sonaquellas quese danentre tresentidades. Figura 2.5: Ejemplo de relación ternaria. 44
  • 54. Capítulo 2. Diseño lógico relacional n Relacionesunarias oreexivas: (grado 1), Esuna relacióndonde lamisma enti- dad participa más deuna vez en la relación con distintos papeles. El nombre de estos papeleses importante para determinar la función de cada participación. Figura 2.6: Ejemplo de relación reflexiva. IRelaciones n-arias: (grado >3) Son aquellas donde participan más de 3 enti- dades. Aparecen en muy raras ocasiones, puesto que generalmente se pueden descomponer en varias de grado 2 o de grado 3. El consejo del buen administrador. . . Si en tu diagrama entidad relación aparecen relacionesde grado >3, es posible que la interpretación del problema seaincorrecta. Incluso si aparecenrelaciones de grado 3, intenta descomponerlas en varias de grado 2 para simplicar tu modelo. Eso SÍ, asegúrate de que no es posible descomponerlas en varias de grado 2 sin perder semántica. 2.3.4. Participación La participación de una ocurrencia de una entidad, indica, mediante una pareja de números, el mínimo y máximo número de veces quepuede apareceren la relación asociada a otra ocurrencia de entidad. Las posibles participaciones son: Participación Signicado Mínimo cero, Ináximo uno Mínimo uno. máximo uno Mínimo cero, máximo n (Muchos) Mínimo uno, máximo n (lIuchos) Las reglas que denen la participación de una ocurrencia en una relación son las reglas de negocio, esdecir, se reconocen a través de los requisitos del problema. 45