Bases de datos
Mercedes Marqués
Departament D’enginyeria i CiènCia Dels
ComputaDors
Codi d’assignatura IG18
Mercedes Marqués - ISBN: 978-84-693-0146-3
Bases de datos - UJI
Edita: Publicacions de la Universitat Jaume I. Servei de Comunicació i Publicacions
Campus del Riu Sec. Edifici Rectorat i Serveis Centrals. 12071 Castelló de la Plana
http://www.tenda.uji.es e-mail:
[email protected]
Col·lecció Sapientia, 18
Primera edició, 2011
www.sapientia.uji.es
ISBN: 978-84-693-0146-3
Aquest text està subjecte a una llicència Reconeixement-NoComercial-Compartir Igual de
Creative Commons, que permet copiar, distribuir i comunicar públicament l’obra sempre que
especifique l’autor i el nom de la publicació i sense objectius comercials, i també permet crear
obres derivades, sempre que siguen distribuïdes amb aquesta mateixa llicència.
http://creativecommons.org/licenses/by-nc-sa/2.5/es/deed.ca
Mercedes Marqués - ISBN: 978-84-693-0146-3
Bases de datos - UJI
Índice general
1. Conceptos de bases de datos
1.1. Base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
1.2. Sistema de gestión de bases de datos
1.3. Personas en el entorno de las bases de datos
. . . . . . . . . . .
1.4. Historia de los sistemas de bases de datos . . . . . . . . . . . . .
1.5. Ventajas e inconvenientes . . . . . . . . . . . . . . . . . . . . . .
1
2
3
4
5
9
2. Modelo relacional
13
2.1. Modelos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 14
. . . . . . . . . . . . . . . . . . . 16
2.2. Estructura de datos relacional
2.2.1. Relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.2. Propiedades de las relaciones . . . . . . . . . . . . . . . . 19
2.2.3. Tipos de relaciones . . . . . . . . . . . . . . . . . . . . . 20
2.2.4. Claves . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3. Esquema de una base de datos relacional
. . . . . . . . . . . . . 22
2.4. Reglas de integridad . . . . . . . . . . . . . . . . . . . . . . . . 25
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.1. Nulos
2.4.2. Regla de integridad de entidades
. . . . . . . . . . . . . 25
2.4.3. Regla de integridad referencial . . . . . . . . . . . . . . . 26
2.4.4. Reglas de negocio . . . . . . . . . . . . . . . . . . . . . . 28
3. Lenguajes relacionales
29
3.1. Manejo de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2. Álgebra relacional . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3. Cálculo relacional . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1. Cálculo orientado a tuplas . . . . . . . . . . . . . . . . . 37
. . . . . . . . . . . . . . . 39
3.3.2. Cálculo orientado a dominios
3.4. Otros lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4. Lenguaje SQL
41
4.1. Bases de datos relacionales . . . . . . . . . . . . . . . . . . . . . 42
4.2. Descripción de la base de datos
. . . . . . . . . . . . . . . . . . 42
4.3. Visión general del lenguaje . . . . . . . . . . . . . . . . . . . . . 44
. . . . . . . . . . . . . . . . . . . . . 45
4.3.1. Creación de tablas
Mercedes Marqués - ISBN: 978-84-693-0146-3
iii
iii
Bases de datos - UJI
4.3.2.
Inserción de datos . . . . . . . . . . . . . . . . . . . . . . 48
4.3.3. Consulta de datos . . . . . . . . . . . . . . . . . . . . . . 48
. . . . . . . . . . . 49
4.3.4. Actualización y eliminación de datos
4.4. Estructura básica de la sentencia SELECT . . . . . . . . . . . . . 49
4.4.1. Expresiones en SELECT y WHERE . . . . . . . . . . . . . . 50
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4.2. Nulos
4.4.3. Tipos de datos
. . . . . . . . . . . . . . . . . . . . . . . 51
4.5. Funciones y operadores . . . . . . . . . . . . . . . . . . . . . . . 51
4.5.1. Operadores lógicos
. . . . . . . . . . . . . . . . . . . . . 51
4.5.2. Operadores de comparación . . . . . . . . . . . . . . . . 52
4.5.3. Operadores matemáticos . . . . . . . . . . . . . . . . . . 52
4.5.4. Funciones matemáticas . . . . . . . . . . . . . . . . . . . 53
4.5.5. Operadores y funciones de cadenas de caracteres . . . . . 53
4.5.6. Operadores y funciones de fecha . . . . . . . . . . . . . . 55
4.5.7. Función CASE . . . . . . . . . . . . . . . . . . . . . . . . 57
4.5.8. Funciones COALESCE y NULLIF . . . . . . . . . . . . . . . 57
4.5.9. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6. Operaciones sobre conjuntos de filas . . . . . . . . . . . . . . . . 59
4.6.1. Funciones de columna . . . . . . . . . . . . . . . . . . . 60
4.6.2. Cláusula GROUP BY . . . . . . . . . . . . . . . . . . . . . 62
4.6.3. Cláusula HAVING . . . . . . . . . . . . . . . . . . . . . . 63
4.6.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.6.5. Algunas cuestiones importantes . . . . . . . . . . . . . . 65
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.7.1. Subconsultas en la cláusula WHERE . . . . . . . . . . . . . 66
4.7.2. Subconsultas en la cláusula HAVING . . . . . . . . . . . . 72
4.7.3. Subconsultas en la cláusula FROM . . . . . . . . . . . . . 73
4.7.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.7.5. Algunas cuestiones importantes . . . . . . . . . . . . . . 75
4.8. Consultas multitabla . . . . . . . . . . . . . . . . . . . . . . . . 76
4.8.1. La concatenación: JOIN . . . . . . . . . . . . . . . . . . . 76
4.8.2. Sintaxis original de la concatenación . . . . . . . . . . . 80
4.8.3. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.8.4. Algunas cuestiones importantes . . . . . . . . . . . . . . 82
4.9. Operadores de conjuntos . . . . . . . . . . . . . . . . . . . . . . 83
4.9.1. Operador UNION . . . . . . . . . . . . . . . . . . . . . . . 84
4.9.2. Operador INTERSECT . . . . . . . . . . . . . . . . . . . . 84
4.9.3. Operador EXCEPT . . . . . . . . . . . . . . . . . . . . . . 85
4.9.4. Sentencias equivalentes . . . . . . . . . . . . . . . . . . . 85
4.9.5. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.10. Subconsultas correlacionadas . . . . . . . . . . . . . . . . . . . . 87
4.10.1. Referencias externas
. . . . . . . . . . . . . . . . . . . . 88
4.10.2. Operadores EXISTS, NOT EXISTS . . . . . . . . . . . . . 88
4.10.3. Sentencias equivalentes . . . . . . . . . . . . . . . . . . . 89
4.7. Subconsultas
Mercedes Marqués - ISBN: 978-84-693-0146-3
iv
iv
Bases de datos - UJI
4.10.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5. Diseño de bases de datos
94
5.1. Necesidad de metodologías de diseño . . . . . . . . . . . . . . . 95
5.2. Ciclo de vida . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2.1. Planificación del proyecto
. . . . . . . . . . . . . . . . . 97
5.2.2. Definición del sistema . . . . . . . . . . . . . . . . . . . . 98
5.2.3. Recolección y análisis de los requisitos
. . . . . . . . . . 98
5.2.4. Diseño de la base de datos . . . . . . . . . . . . . . . . . 99
5.2.5. Selección del SGBD . . . . . . . . . . . . . . . . . . . . . 99
5.2.6. Diseño de la aplicación . . . . . . . . . . . . . . . . . . . 99
5.2.7. Prototipado . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.2.8.
Implementación . . . . . . . . . . . . . . . . . . . . . . . 100
5.2.9. Conversión y carga de datos . . . . . . . . . . . . . . . . 101
5.2.10. Prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.2.11. Mantenimiento . . . . . . . . . . . . . . . . . . . . . . . 101
5.3. Diseño de bases de datos . . . . . . . . . . . . . . . . . . . . . . 101
5.3.1. Diseño conceptual . . . . . . . . . . . . . . . . . . . . . . 102
5.3.2. Diseño lógico . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3.3. Diseño físico . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4. Diseño de transacciones . . . . . . . . . . . . . . . . . . . . . . . 104
5.5. Herramientas CASE . . . . . . . . . . . . . . . . . . . . . . . . 105
6. Diseño conceptual
106
6.1. Modelo entidad-relación . . . . . . . . . . . . . . . . . . . . . . 106
6.1.1. Entidades . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.1.2. Relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 109
. . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.1.3. Atributos
6.1.4. Dominios
. . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.1.5.
Identificadores . . . . . . . . . . . . . . . . . . . . . . . . 114
6.1.6. Jerarquías de generalización . . . . . . . . . . . . . . . . 115
6.1.7. Diagrama entidad-relación . . . . . . . . . . . . . . . . . 116
6.2. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.3. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7. Diseño lógico relacional
125
7.1. Esquema lógico . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.2. Metodología de diseño . . . . . . . . . . . . . . . . . . . . . . . 127
7.2.1. Entidades fuertes . . . . . . . . . . . . . . . . . . . . . . 128
7.2.2. Entidades débiles . . . . . . . . . . . . . . . . . . . . . . 129
7.2.3. Relaciones binarias . . . . . . . . . . . . . . . . . . . . . 130
7.2.4. Jerarquías de generalización . . . . . . . . . . . . . . . . 136
7.2.5. Normalización . . . . . . . . . . . . . . . . . . . . . . . . 137
7.3. Restricciones de integridad . . . . . . . . . . . . . . . . . . . . . 142
Mercedes Marqués - ISBN: 978-84-693-0146-3
v
v
Bases de datos - UJI
7.4. Desnormalización . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.5. Reglas de comportamiento de las claves ajenas . . . . . . . . . . 146
7.6. Cuestiones adicionales
. . . . . . . . . . . . . . . . . . . . . . . 149
7.7. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8. Diseño físico en SQL
153
8.1. Metodología de diseño . . . . . . . . . . . . . . . . . . . . . . . 154
8.1.1. Traducir el esquema lógico . . . . . . . . . . . . . . . . . 154
157
8.1.2. Diseñar la representación física
. . . . . . . . . . . . . . 156
8.1.3. Dise
Comentarios de: Bases de Datos (0)
No hay comentarios