3. Introducción
El almacenamiento y la manipulación de datos
ha sido una aplicación de importancia mayor
desde los primeros días de las computadoras
Las aplicaciones que requieren de almacenar
y recuperar datos, continúan evolucionando
Presumiblemente, las tecnologías de Gestión de
Datos continuarán siendo el objeto de esfuerzos
de desarrollo e innovación
3
4. Características
Basado en la teoría de relaciones:
Álgebra relacional,
Calculo de predicados SQL.
Modelo de datos simple y formal.
Alto grado de independencia física.
Lenguaje declarativo (SQL) de manipulación de datos.
4
5. Conceptos (1)
Un dominio es un conjunto de valores atómicos
caracterizados por un nombre:
enteros, nombres, edades, ciudades, colores_primarios, etc.
Puede ser definido en intención o en extensión:
enteros = lN+.
enteros = {0, 1, 2, 3, …, ∞ }.
5
6. Ejemplo
colores_primarios =
{rojo, verde, azul}.
nombres =
{cadenas de 20 caracteres} ó
{juan, pedro, pablo}.
enteros =
N+
{0,1,2,3, . . ., ∞}
{numeros <= 10}
{1,4,6,7}
Notas
Por cada dominio es necesario precisar su nombre y el tipo de datos.
Desde el punto de vista de la implementación se tienen dominios predefinidos.
(Enteros, booleanos, etc.)
6
7. Conceptos (2)
Una relación n-aria es un subconjunto de un producto
cartesiano de n dominios.
Sean {D1, D2, ... , Dn} un conjunto de dominios y R una relación,
R D1 D2 ... Dn.
Cada elemento (v1, v2, ... , vn) R es una tupla y n es el
grado de R.
7
8. Relación n-aria (1/2)
Intención de una relación (esquema de relación):
Dominios: D1, D2, ..., Dn.
Constituyentes: A1, A2, ..., An donde dom(Ai) = Di con i = 1, 2, ..., n.
Nombre de relación: R
regla o predicado que indica si una tupla (v1, v2, ..., vn) pertenece o no al
producto cartesiano de dominios que definen la relación.
Extensión de una relación:
{ (v1, v2, ..., vn) D1x D2 x ... Dn R(v1, v2, ..., vn) = verdadero }.
8
9. Relación n-aria (2/2)
Un esquema de relación de grado n se denota por R(A1, A2, ..., An).
Un constituyente dentro de una relación indica el rol de un dominio en una
relación.
Una asignación de un D de valores a cada atributo o constituyente:
Di = dom( Ai ).
Ai : Di.
Una tupla en R se denota por (v1, v2, ..., vn) donde vi es el valor
correspondiente al constituyente A.
Un predicado de pertenencia de tuplas a la relación:
R(v1, v2, ... , vn) = verdadero.
9
10. Ejemplo
D1 = Nombre
D2 = Ciudad
D3 = Ciudad
Nombre = {juan, pedro, pablo}
Ciudad = {puebla, cholula, mexico}
Calcule D=NombrexCiudadxCiudad
La tupla (n,v1,v2) E R tiene el significado:
La persona de nombre n nació en la ciudad v1 y vive
en la ciudad v2.
10
11. Relación n-aria: Resumen
Intención: esquema de relación R(A1, A2, ..., An) que es invariante
en el tiempo.
Extensión: representa los datos presentes a un instante dado en
la BD estado de la BD.
Un valor de atributo es atómico (eventualmente nulo).
La n-tupla es una secuencia ordenada de valores de atributos.
Una relación es un conjunto de n-tuplas donde no existe noción de
orden.
11
12. Ejemplo
R( ESCUELA, DIA, HORA, SALON, PROFESOR )
Intención:
El PROFESOR p da clases en la ESCUELA e el DIA d, a la HORA h,
en la SALON s.
El dominio del constituyente HORA está definido por el conjunto de
enteros comprendido entre 7 y 20.
Un profesor a una hora dada en el mismo día sólo puede estar en un
salón.
Los atributos DIA, HORA y PROFESOR no pueden ser nulos.
12
13. Esquema de relación (2)
Se define como una pareja R = < X, > donde X = { A1,
A2, ..., An } un conjunto de constituyentes y
representa parte de la semántica de la relación.
es un conjunto de restricciones de integridad.
13
14. Restricciones de integridad
Una restricción de integridad es una propiedad que no
varía en el tiempo.
Son un medio para asegurar que los cambios que se
hacen en la base de datos por usuarios autorizados no
resultan en una perdida de la coherencia de los datos.
14
15. Tipos de restricciones
Restricciones de dominio: forma más elemental de restricción
de integridad permiten probar valores insertados en la base.
Valores nulos: la inserción de tuplas incompletas puede introducir
valores nulos en la base. Para ciertos atributos los valores nulos
son inapropiados.
Llaves: por definición las tuplas de una relación son distintas
entre si. El sistema debe asegurar esta unicidad.
15
16. Tipos de restricciones
Estructurales: describe la manera en que los atributos se
relacionan entre si.
Restricciones referenciales: describen la manera en que se
relacionan las tablas. Aseguran que un valor que aparece en una
relación para un conjunto de atributos aparece para un cierto
conjunto de atributos en otra relación.
16
17. Restricción referencial
(ejemplo)
ESTUDIANTE HORARIO
CURSO NOMBRE CURSO MATERIA
IS-341 Pedro IS-341 BD
IS-417 Juan IS-417 SD
17
18. Super-llave de una relación
Existe un subconjunto de atributos de una relación que
permite diferenciar a las tuplas entre si. Esto quiere decir
que dos tuplas no tienen la misma combinación de
valores para esos atributos.
Todo conjunto de atributos que verifica esta propiedad
es una super-llave del esquema.
Existes al menos una super-llave ...
18
19. Llave de una relación
Una llave es un conjunto de atributos mínimo que
permite identificar de manera única a una tupla.
La llave es una super-llave tal que si le quitamos un
atributo entonces ya no es super-llave.
Ejemplo:
R( ID, NOMBRE, APELLIDOS, FECHA )
19
20. Llave extranjera: dependencias
inter-relaciones
Sean R1 y R2 dos relaciones:
Una llave extranjera impone que el valor de un grupo de atributos de R1 aparece como
valor de llave en R2 (dependencias inter-relaciones).
VIAJE( NUM_VIAJE, DESTINACION, SALIDA, LLEGADA, PRECIO )
CLIENTE( NUM_CLIENTE, NOMBRE, APELLIDOS, DIRECION )
RESERVACION( NUM_RESERVACION,
NUM_VIAJE, FECHA_R, NUM_CLIENTE, OFERTA )
20
21. Restricciones de integridad
referencial
Expresada entre dos relaciones
Consiste en verificar que la información utilizada en
una tupla para designar otra es válida, en particular
si la tupla designada existe.
Orden de creación o destrucción de las relaciones
(tablas).
21
22. Esquema relacional de bases de
datos
Conjunto de esquemas de relación:
S = ( R1, R2, ..., Rn )
conjunto de restricciones de integridad:
(S, )
( R1, R2, ..., Rn ) realización de un esquema relacional.
22
23. ESTUDIANTE
CURSO NOMBRE CIUDAD FECHAN DEPORTE
IS-341 Pedro Cholula 11/10/80 Football
IS-341 María Puebla 04/04/80 Natación
IS-341 Julia Puebla 15/03/81 Esgrima
IS-580 Juan Cholula 20/07/79 Football
HORARIO
CURSO DIAS HORA MATERIA PROFESOR SALON LIBRO
IS-341 MJ 13:00-13:50 BD José Luis 2102 Navathe
IS-580 LMV 05:00-05:50 SBD José Luis 2245 Navathe
RESULTADO
NOMBRE MATERIA CALIFICACION
Pedro BD 8.0
María BD 10.0
Julia BD 9.0
23
24. Ejemplo
Dado tres esquemas de relación:
ESTUDIANTE = <{ CURSO, NOMBRE, CIUDAD,
FECHAN, DEPORTE }, 1>
a) “El estudiante de NOMBRE n toma el CURSO c, habita en la
CIUDAD ci, tiene por FECHA de nacimiento f y práctica el
DEPORTE d”.
b) CIUDAD no puede ser NULO.
c) La llave primaria de la relación ESTUDIANTE es (NOMBRE).
1 = { a, b, c }
24
25. Ejemplo
HORARIO = <{ CURSO, DIAS, HORA, MATERIA,
PROFESOR, SALON, LIBRO }, 2>
d) “El PROFESOR p enseña la MATERIA s con el LIBRO l en el
CURSO c los DIAS d a la HORA h en el SALON s”.
e) “El número de horas de clase para cada curso es inferior a 30”.
f) “Un profesor a una hora determinada sólo puede estar en un salón
e impartiendo un solo curso”.
= { d, e, f }
25
26. Ejemplo
RESULTADO = <{ NOMBRE, MATERIA,
CALIFICACION }, >
g) “El estudiante de NOMBRE n obtuvo la CALIFICACION c en la
MATERIA m”.
h) La llave primaria de la relación RESULTADO es (NOMBRE,
MATERIA).
= { g, h }
26
27. Ejemplo
Esquema relacional: (S, )
i) “El CURSO de la relación ESTUDIANTE debe existir como
valor en la relación HORARIO”.
j) “La MATERIA de la relación RESULTADO debe existir como
valor en la relación HORARIO”.
k) “Los NOMBREs de la relación RESULTADO están contenidos
en el conjunto de nombres de la relación ESTUDIANTE”.
( S = {ESTUDIANTE, HORARIO, RESULTADO}, = { i, j, k } )
27
28. Ejercicio
a) Supongamos que se quiere agregar la siguiente tupla a la relación HORARIO:
(IS-417, LMV, 08:00-08:50, Pablo, 7110, Mullender )
¿Es está una relación del esquema HORARIO?
b) ¿Es posible agregar en ESTUDIANTE la siguiente tupla?
(IS-580, Alicia, México, 08/12/78, Esgrima )
28
29. Modelo de
datos
(modelo lógico)
Representación de datos Lenguaje de manipulación
(esquema) (necesidades del usuario)
29
31. ¿Cómo manipular las relaciones?
Álgebra relacional: colección de operadores que
permiten:
La selección de tuplas en una relación;
La combinación de tuplas de relaciones diferentes.
Principio:
La aplicación de uno o más operadores sobre una relación da
siempre como resultado una relación (cerradura).
La información a recuperar se expresa bajo la forma de una
relación obtenida por aplicación sucesiva de operadores
binarios o únarios cuyos operandos son las relaciones de la
BD.
32. Agencia de viajes: RUTA DEL SOL
CLIENTE VIAJE
NOMBRE DIRECCION DESTINACION SALIDA PRECIO
Juan Cain Murray Acapulco 01/06/04 2000.00
Rosario Cain Murray Veracruz 15/08/04 1000.00
Pedro Ignacio Bernal
Amalia José Gaos
HOTEL APARTAMENTOS
Celia Coley Taylor
NOMBRE TIPO NOMBRE TIPO
FIESTA INN 4 CITADINES 3
CAMINO REAL 5 HOME LUX 5
MIRADOR 3 FIESTA INN 4
RESERVACION
NUMERO NOMBRE DESTINACION
001 Juan Veracruz
002 Juan Acapulco
003 Celia Acapulco
004 Amalia Acapulco
33. Selección
Clientes de ruta del sol que viven en el colegio Cain Murray:
CLIENTE R
NOMBRE DIRECCION NOMBRE DIRECCION
Juan Cain Murray Juan Cain Murray
Rosario Cain Murray Rosario Cain Murray
Pedro Ignacio Bernal
Amalia José Gaos
Celia Coley Taylor
34. Proyección
Nombre de los clientes que tienen una reservación:
R
RESERVACION
NUMERO NOMBRE DESTINACION NOMBRE
001 Juan Veracruz Juan
002 Celia Acapulco Celia
003 Amalia Acapulco Amalia
35. Producto cartesiano
Hoteles ofrecidos por ruta del sol en sus viajes
HOTEL VIAJE
NOMBRE TIPO DESTINACION SALIDA PRECIO
FIESTA INN 4 Acapulco 01/06/03 2000.00
CAMINO REAL 5 Veracruz 15/08/03 1000.00
MIRADOR 3
R
NOMBRE TIPO DESTINACION SALIDA PRECIO
FIESTA INN 4 Acapulco 01/06/03 2000.00
FIESTA INN 4 Veracruz 15/08/03 1000.00
CAMINO REAL 5 Acapulco 01/06/03 2000.00
CAMINO REAL 5 Veracruz 15/08/03 1000.00
MIRADOR 3 Acapulco 01/06/03 2000.00
MIRADOR 3 Veracruz 15/08/03 1000.00
36. Unión
Alojamiento con el que trabaja ruta del sol en sus destinos:
HOTEL APARTAMENTOS
NOMBRE TIPO NOMBRE TIPO
FIESTA INN 4 CITADINES 3
CAMINO REAL 5 HOME LUX 5
MIRADOR 3 FIESTA INN 4
R
NOMBRE TIPO
FIESTA INN 4
CAMINO REAL 5
MIRADOR 3
CITADINES 3
HOME LUX 5
37. Diferencia
Cadenas que trabajan con ruta del sol y que sólo ofrecen hoteles:
HOTEL APARTAMENTOS
NOMBRE TIPO NOMBRE TIPO
FIESTA INN 4 CITADINES 3
CAMINO REAL 5 HOME LUX 5
MIRADOR 3 FIESTA INN 4
R
NOMBRE TIPO
CAMINO REAL 5
MIRADOR 3
38. Notación (1)
Sean R(X), S(Y), T(Z) tres relaciones con:
X = {X1, X2, ..., Xn}
Y = {Y1, Y2, ..., Yp}
Z = {Z1, Z2, ..., Zq}
Las tuplas son expresadas r є R, s є S, t є T.
39. Notación (2)
f es una expresión de selección tal que:
Xi θ constante con θ { =, >, <, =, <=, >= } es una expresión
de selección.
Xi θ Xj son expresiones de selección.
Si f1 y f2 son expresiones de selección, entonces f1 ^ f2, f1
v f2, ¬ f1 son expresiones de selección.
40. Operaciones de base
Operación Notación Resultado
Selección R:f { r(X) r R ^ f(r) = verdadero }
σ f (R)
Proyección R : (A) { r(A) r R}
π A (R) A X
Producto R×S { t = (r, s) r R ^ s S}
cartesiano Z=X Y
Unión R S {t t R v t S}
( n = p ^ dom(Xi) = dom(Yi) )
Diferencia R–S {t t R ^ t S}
( n = p ^ dom(Xi) = dom(Yi) )
67. Objetivos del modelado
Permitir una mejor comprensión:
Sistemas reales demasiado complejos.
Abstracción de los aspectos cruciales del problema.
Omisión de detalles.
Permitir una concepción progresiva:
Abstracción y refinamiento sucesivos.
Posibilidad de implementar rápidamente.
Organización en módulos o vistas.
Generación de las estructuras de datos y de sus tratamientos.
Facilitar la visualización del sistema:
Diagramas con notaciones simples y precisas.
Comprensión visual y no solamente intelectual.
68. Pasos de la concepción
Cinco etapas:
Percepción del mundo real.
Elaboración del esquema conceptual.
Concepción del esquema lógico.
Afinación del esquema lógico.
Elaboración del esquema físico.
69. 1.- Percepción del mundo real
Esta etapa consiste en:
Estudiar los problemas de los usuarios y comprender sus necesidades.
Realizar entrevistas.
Analizar la información y los procesos propios de una aplicación.
Estudiar los casos parciales (en caso de tener problemas al entender el
problema completo).
Resultado: esquemas externos.
Se requiere utilizar procesos de tipo negocios, reingeniería y de modelado de
problemas (ingeniería de software, economía, psicología).
70. 2.- Elaboración del esquema
conceptual
Integración de los esquemas externos de la etapa precedente en un
esquema conceptual:
global,
no redundante,
Coherente.
Ida y regreso con la etapa anterior.
Resultado: un esquema conceptual (ER, UML).
71. 3.- Concepción del esquema
lógico
Transformación del esquema conceptual en
estructuras de datos soportados por el SGBD elegido:
Relaciones (sistemas relacionales).
Relaciones + tipos (sistemas objeto relacional).
Clases y asociaciones (sistemas orientado a objetos).
Resultado: un esquema lógico (etapa automatizable).
72. 4.- Refinamiento del esquema
lógico
El esquema lógico es un buen esquema:
Sin olvidos.
Ni redundancia de información.
Resultado: un esquema lógico en buena forma.
73. 5.- Elaboración del esquema físico
Obtener un buen desempeño:
Transacciones (identificar los patrones de acceso y de
modificaciones frecuentes).
Indexación.
Reagrupar, dividir, replicar.