2. Las bases de datos relacionales son el tipo de bases de datos
actualmente más difundido. Los motivos de este éxito son
fundamentalmente dos:
1. ofrecen sistemas simples y eficaces para representar y manipular los
datos
2. se basan en un modelo, el relacional, con sólidas bases teóricas
El modelo relacional fue propuesto originariamente por E.F. Codd en un
ya famoso artículo de 1970. Gracias a su coherencia y facilidad de uso, el
modelo se ha convertido en los años 80 en el más usado para la
producción de DBMS.
3. La estructura fundamental del modelo relacional es precisamente
esa, "relación", es decir una tabla bidimensional constituida por líneas
(tupla) y columnas (atributos). Las relaciones representan las entidades
que se consideran interesantes en la base de datos. Cada instancia de la
entidad encontrará sitio en una tupla de la relación, mientras que los
atributos de la relación representarán las propiedades de la entidad.
Producto
cveProducto nombre descripcion unidadDe Medida costo precio existencias
P001 AZUCAR REFINADA KG. 15.00 19.00 100
P002 LECHE EN
POLVO
BOTE DE 1
KG.
PZA. 50.00 65.00 20
P003 VASOS DE
UNICEL
PAQUETE DE
25 PZAS.
PZA. 9.00 12.00 100
4. Independencia física: el modo en el que se almacenan los
datos no influye en su manipulación lógica y, por tanto, los
usuarios que acceden a esos datos no tienen que modificar
sus programas por cambios en el almacenamiento físico.
Independencia lógica: el añadir, eliminar o modificar objetos
de la base de datos no repercute en los programas y/o
usuarios que están accediendo a subconjuntos parciales de
los mismos (vistas).
5. Flexibilidad: en el sentido de poder presentar a cada usuario
los datos de la forma en que éste prefiera.
Uniformidad: las estructuras lógicas de los datos presentan
un aspecto uniforme, lo que facilita la concepción y
manipulación de la base de datos por parte de los usuarios.
Sencillez: las características anteriores, así como unos
lenguajes de usuario muy sencillos, producen como resultado
que el modelo de datos relacional sea fácil de comprender y
de utilizar por parte del usuario final.
6. Relación Tabla
Tupla Fila / Registro (sólo a nivel físico)
Atributo Columna/Campo (sólo a nivel físico)
Cardinalidad Número de filas / tuplas / registro (sólo a nivel físico)
Grado Número de atributos/columnas
Dominio Colección de valores, de los cuales uno o mas atributos
obtienen sus valores reales. Conjunto de valores válidos
Clave primaria Identificador único para la tabla, es decir, una columna o
combinación de columnas con la propiedad de que nunca
existen 2 filas de la tabla con el mismo valor en esa columna
o combinación de Columnas
7.
8. Intensión o Esquema de la Relación:
R(Atributo 1:D1, Atributo 2:D2, ....Atributo m:Dm)
Cuerpo
•No hay dos tuplas iguales
•El orden de las tuplas no es significativo
•El orden de las columnas o atributos no es significativo
•Cada atributo sólo puede tomar un único valor del dominio
( no hay grupos repetitivos )
9. Los lenguajes relacionales son lenguajes formales
(teórico-matemáticos) y se basan en el carácter
conjuntista de una relación.
El álgebra relacional es un lenguaje procedimental para
la manipulación de relaciones
En ésta se especifica paso por paso la respuesta a una
consulta de los datos contenidos en una relación.
El Algebra Relacional fue desarrollada en 1970 y el
cálculo relacional en 1971 por Codd.
10. • El AR tiene 8 operadores iniciales clasificados en 2
grupos:
– Tradicionales de la teoría de conjuntos:
Unión, Intersección, Diferencia y Producto Cartesiano.
– Especiales: Restricción (o
Selección), Proyección, Reunión (join) y División
• Operadores adicionales:
Renombrado, Agrupamiento
10
11. • Las de origen matemático
son:
• Unión
• Intersección
• Diferencia de conjuntos
• Producto Cartesiano
• La del lenguaje de
programación es:
• Asignación
• Las de lenguaje relacional
son:
• Proyección
• Selección
• División o cociente
• Join
11
11
12. 12
Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21
Código Nombre Edad
2 Enrique Muñoz 25
8 Jorge Arias 30
10 Juan Martínez 19
ADMINISTRADOR
PROGRAMADOR
Sean las relaciones:
12
13. – El argumento es una relación y una condición
– Produce una relación R1 que contiene todas
las tuplas de R que cumplen una condición
específica
– La condición se construye mediante
operadores de comparación (=,<,> etc.) y
booleanos (AND, OR etc.)
– El resultado es una nueva relación cuyo
esquema es idéntico al esquema de R
13
scondición(R)
13
15. SELECCIÓN s c (R)
Tresul:= s (c>1 AND B>2) (R)
Tresul 0, 3, 2
15
16. – Toma como argumento una relación R y
una lista de atributos
– Se utiliza para extraer atributos
(columnas) de una relación R
– El resultado es una nueva relación R1
cuyo esquema corresponde a la lista de
atributos proyectados
– En R1 se eliminan las tuplas duplicadas
– Se puede extraer más de una columna a
la vez
16
p Lista Atributos (R)
16
20. – Toma como argumentos dos relaciones R1 y R2
– Da como resultado una relación R3 cuyo esquema consta tanto de los
atributos de R1 como de los atributos de R2
– Los esquemas de R1 y R2 deben ser disjuntos, es decir los esquemas de
R1 y R2 no pueden tener nombres de atributos en común ¿por qué?
– Se debe usar un alias (mediante el operador r [rho]) si los esquemas
no son disjuntos
– R3 contiene todas las tuplas resultantes de la concatenación de cada
tupla de R1 con cada una de las tuplas de R2
20
Renombrado de atributos
20
21. Ejemplo
21
Código Nombre Edad Cod Nom Edad1
1 Jorge Campos 33 2 Enrique Muñoz 25
1 Jorge Campos 33 8 Jorge Arias 30
1 Jorge Campos 33 10 Juan Martínez 19
2 Enrique Muñoz 25 2 Enrique Muñoz 25
2 Enrique Muñoz 25 8 Jorge Arias 30
2 Enrique Muñoz 25 10 Juan Martínez 19
3 Esteban Paz 21 2 Enrique Muñoz 25
3 Esteban Paz 21 8 Jorge Arias 30
3 Esteban Paz 21 10 Juan Martínez 19
Administrador X [rCódigoCod,NombreNom,EdadEdad1(Programador)]
El renombrado r de la relación R(A,B,C,D) en R(A,K,L,D) se denota
r BK,CL (R)
¡¡ El renombrado es únicamente sintáctico !!
21
23.
• Toma como argumentos dos
relaciones R1 y R2 con esquemas
idénticos
• Retorna una relación R3 con el
mismo esquema de R1 y R2 que
contiene todas la tuplas de R1 y
todas las de R2, eliminando tuplas
repetidas
23
R1
R2
23
25. • Las dos tablas deben tener el mismo grado y los dominios de sus
atributos deben ser compatibles.
• El resultado de aplicar una operación de unión obtiene una tabla
formada con las columnas de una de ellas y las filas de ambas
tablas, excluyendo las que sean duplicadas, que sólo aparecen una
vez. La unión de las relaciones R y S es el conjunto de tuplas que
están en R o en S o en ambos.
25
26.
• Toma como argumentos
dos relaciones R1 y R2 con
esquemas idénticos
• Retorna una relación R3
con el mismo esquema de
R1 y R2 que contiene todas
las tuplas que aparecen
tanto en R1 como en R2
26
R1
R2
26
27. • Administrador Programador
Código Nombre Edad
2 Enrique Muñoz 25
Código Nombre Edad
2 Enrique Muñoz 25
8 Jorge Arias 30
10 Juan Martínez 19
Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21
Código Nombre Edad
2 Enrique Muñoz 25
8 Jorge Arias 30
10 Juan Martínez 19
Administrador Programador
28.
Sintaxis: nombre_tabla1 nombre_tabla2
• Es una operación derivada de la operación básica
diferencia. Por lo que las dos tablas deben tener el mismo
grado y los dominios de sus atributos deben ser
compatibles.
• El resultado se obtiene con la siguiente secuencia de
operaciones: T1 T2=T1-(T1-T2), la nueva tabla tiene las
columnas de una de ellas y las filas comunes a ambas
tablas. La intersección de las relaciones R y S es el
conjunto de tuplas que están en R y en S
28
30. • Toma como argumento dos
relaciones R1 y R2 con esquemas
idénticos
• Retorna una relación R3 con el
mismo esquema de R1 y R2 que
contiene todas las tuplas que
aparecen en R1 pero no en R2
30
R1
R2
30
32. Sintaxis: nombre_tabla1 - nombre_tabla2
Las dos tablas deben tener el mismo grado y los dominios de sus
atributos deben ser compatibles.
El resultado de aplicar una operación de diferencia obtiene una tabla
formada con las columnas de una de ellas y las filas de nombre_tabla1
que no están en nombre_tabla2.
La diferencia de las relaciones R y S es el conjunto de tuplas que están en R, pero
que no están en S.
Ejemplo:
Tresul:=R - T
G(R)=G(T)=G(Tresul)=3
C(Tresul)=3
Tresul<1,0,0>,<0,3,2>,<0,2,0>
32
33. • La unión, intersección y producto cartesiano son
conmutativas y asociativas
• La diferencia no es conmutativa ni asociativa
• La intersección no es primitiva ya que puede ser
expresada mediante la diferencia
33
Observe que se verifica:
33
34. • NATURAL JOIN: R1 ⋈R2
Si R1(A,B) y R2(B,C) el resultado de R1 ⋈R2
es una relación R3 con esquema R3(A,B,C) donde cada tupla de R1 se
concatena con cada tupla de R2 SIEMPRE Y CUANDO tengan el mismo
valor del atributo en común (B).
El atributo B puede ser compuesto.
34
34
35. 35
Código Nombre Edad Depto
1 Jorge Campos 33 1
2 Enrique Muñoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martínez 19 2
12 Anselmo Rodas 28 6
Depto Descripción
1 Administración
2 Producción
3 Ventas
4 Finanzas
Empleado
Departamento
Atributo de
Join
Nota: En este ejemplo, el campo
Depto en Empleado NO ES FK
con respecto a la tabla Departamento
35
36. Empleado ⋈Departamento
36
Código Nombre Edad Depto Descripción
1 Jorge Campos 33 1 Administración
2 Enrique Muñoz 25 1 Administración
3 Esteban Paz 21 1 Administración
8 Jorge Arias 30 2 Producción
10 Juan Martínez 19 2 Producción
36
37. Sintaxis: nombre_tabla1 ⋈ (condición) nombre_tabla2
Es una de las operaciones más importantes del álgebra relacional. Recibe diferentes
nombres específicos dependiendo del resultado a obtener.
El resultado es una nueva tabla cuyas filas serán las resultantes de realizar el
producto cartesiano entre las tablas especificadas, seleccionando las tuplas que
cumplan la condición especificada.
Las columnas de la tabla resultante, serán las columnas de las tablas participantes.
Las tuplas de cada tabla se confrontan según las columnas especificadas en la
condición mediante operadores relacionales: >,<,,,= y <>, que generalmente
corresponderán a claves ajenas.
El grado resultante dependerá de si van a existir columnas iguales o no, y la
cardinalidad de la condición impuesta por el join.
37
39. • Las columnas que se utilicen en la condición deben de tener dominios compatibles
y se denominan atributos o columnas de join.
• Cuando la condición de join entre las dos tablas es de igualdad la operación se
denomina equijoin.
• Si de la tabla resultante de un equijoin se elimina una de las columnas comparadas
la operación se denomina join natural o producto natural
• El NATURAL JOIN de R y S, que se denota por R |X| S, da como resultado las tuplas
que se forman al añadirle a R los componentes que emparejan en R y en S. El
emparejamiento se realiza con aquellos componentes que tienen valor igual.
• No duplica el componente.
39
40. Def 1: Sean las relaciones R1(A,B) y R2(B). El resultado de R1
¸ R2 es una relación R3 cuyo esquema esta compuesto por el
atributo A, donde para todo valor de B en R2 existe una
pareja en R1 de A con ese valor.
Def 2:
R S = {t | t K (R) y {t} x s r} con
K= esquema de R – esquema de S
40
Tuplas de S
Tuplas de R
40
41. Empleado
Código Nombre Edad
2 Enrique Muñoz 25
41
Código Nombre Edad Depto
1 Jorge Campos 33 1
2 Enrique Muñoz 25 1
2 Enrique Muñoz 25 2
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martínez 19 2
Depto
1
2
Departamento
Empleado (pDepto(Departamento))
En este ejemplo la relación empleado no está normalizada,
observe que la CP es (Código, Depto) y Código Nombre, Edad
Depto Descripción
1 Administración
2 Producción
41
42. Sintaxis: nombre_tabla1 / nombre_tabla2
También llamada división, se realiza entre dos tablas que cumplen las
siguientes condiciones:
Los atributos de T2 deben estar incluidos en T1
Se debe cumplir que G(T1)=m>n y G(T2)=n siendo m>0
La cardinalidad de T2 debe ser distinta de cero.
El resultado es una nueva tabla con grado m (los atributos de T1 que
no están en T2) y las tuplas de T1 de grado ( m - n ) que están en R y
parean con tuplas en S.
La división escoge registros de la tabla T1 basándose en el rango de
valores especificados en T2.
42
43. 5/7/2014 43
Crea una nueva relación, seleccionando las filas en una
relación que se corresponden con todas las
filas en otra relación.
43
44. Extend R ADD expresión AS nuevo_atributo
Código Nombre Sal Bono
1 Jorge Campos 33 1
2 Enrique Muñoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martínez 19 2
12 Anselmo Rodas 28 6
44
Emp
Ej: Extend Emp ADD Sal*2 AS Saldobl
44
45. Se genera una relación como la original pero con un
atributo saldobl adicional:
Código Nombre Sal Bono Saldobl
1 Jorge Campos 33 1 66
2 Enrique Muñoz 25 1 50
3 Esteban Paz 21 1 42
8 Jorge Arias 30 2 60
10 Juan Martínez 19 2 38
12 Anselmo Rodas 28 6 56
45
45
46. • Con esta operación se le da un nombre a una
relación que es resultado de otras operaciones.
• Se denota con el símbolo := también se puede
escribir
• Por ejemplo Q := R X S
46
47. 47
Selección o restricción σ condición (RELACION)
Proyección π campo1,campo2,……,campoN (RELACION)
Producto cartesiano R1 X R2
Renombrado r Nombre_original -> nuevo_nombre
Unión R1 R2
Intersección R1 R2
Diferencia R1 – R2
Reunión nombre_tabla1 ⋈ (condición) nombre_tabla2
División R1 ÷ R2
Extender R1 ADD expresion AS identificador
Asignación Q := R1 X R2
48. 48
ESTRUCTURA
Campos a mostrar , condiciones, origen
TRADUCCION AL ALGREBRA RELACIONAL
π campo1,campo2,…,campoN ( σ condiciones ( Relaciones))
49. Con base en las siguientes relaciones:
ALUMNOS (noControl, nombre ,aPaterno, aMaterno)
MATERIAS (cveMateria, nombre, semestre, noUnidades)
CALIFICACIONES (noControl, cveMateria, calificacion, periodo)
ALUMNOS
noControl nombre aPaterno aMaterno
01 LUIS LOPEZ PEREZ
02 ALBERTO HERNANDEZ JIMENEZ
03 ALEJANDRA LOPEZ VAZQUEZ
04 SANDRA PATIÑO FLORES
05 JUAN REYNOSO MENDEZ
MATERIAS
cveMateria nombre semestre noUnidades
01
FUNDAMENTOS DE BASES
DE DATOS
4 7
02 TALER DE BASES DE DATOS 5 7
03
BASES DE DATOS
DISTRIBUIDAS
8 4
04 PROGRAMACION DE WEB 7 5
05
FUNDAMENTOS DE
PROGAMACION
1 7
CALIFICACIONES
noControl cveMateria calificacion periodo
01 01 90 09-01
02 01 80 09-01
03 01 100 09-01
01 02 70 10-01
02 02 85 10-01
03 02 90 10-01
04 04 100 09-01
05 04 70 09-01
04 03 100 10-01
05 03 90 10-01