unidad 3 fundamentos de bases de datos
Post on 27-Jun-2015
512 Views
Preview:
TRANSCRIPT
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Unidad 3El Modelo Relacional
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
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 datos2. 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.
Introducción
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
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.
ProductocveProducto 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Objetivos del modelo relacionalIndependencia 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).
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
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.
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Terminología estructuralRelació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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Terminología estructural
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Estructura del modelo relacional
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 )
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Álgebra relacionalLos 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 relacionesEn é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.
Operadores en Álgebra Relacional• 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Origen de las operaciones• 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
1111
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
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 3010 Juan Martínez 19
ADMINISTRADOR
PROGRAMADOR
Sean las relaciones:
12
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Restricción o Selección (Sigma σ)
– 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Restricción o Selección (σ) sEdad >= 25 (Administrador):
sCódigo < 5 (Programador): Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 30
10 Juan Martínez 19
Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21
14
Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 25
Código Nombre Edad2 Enrique Muñoz 25
14
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
SELECCIÓN s c (R)Tresul:= s (c>1 AND B>2) (R)Tresul 0, 3, 2
15
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Proyección (Pi π )– 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Proyección (π) pCódigo,Edad(Administrador)
Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21
17
Código Edad1 332 253 21
Código Nombre2 Enrique Muñoz8 Jorge Arias
10 Juan Martínez
pCódigo,Nombre(Programador)Código Nombre Edad
2 Enrique Muñoz 258 Jorge Arias 30
10 Juan Martínez 19
17
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Código Edad1 302 253 30
Edad3025
18
Suponga una relación W así:
pEdad(W)
W
¡¡ se eliminan tuplas repetidas !!
El resultado será:
18
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Proyección (π)
PROYECCIÓN p a1,a2,... (R) Tresul:= p B,D (Q)Tresul<2,1>,<1,1>,<0,3>,<3,0>
19
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Producto Cartesiano: R1 X R2
– 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Ejemplo
21
Código Nombre Edad Cod Nom Edad11 Jorge Campos 33 2 Enrique Muñoz 251 Jorge Campos 33 8 Jorge Arias 301 Jorge Campos 33 10 Juan Martínez 192 Enrique Muñoz 25 2 Enrique Muñoz 252 Enrique Muñoz 25 8 Jorge Arias 302 Enrique Muñoz 25 10 Juan Martínez 19
3 Esteban Paz 21 2 Enrique Muñoz 253 Esteban Paz 21 8 Jorge Arias 303 Esteban Paz 21 10 Juan Martínez 19
Administrador X [rCódigoCod,NombreNom,EdadEdad1(Programador)]
El renombrado de la relación R(A,B,C,D) en R(A,K,L,D) se denota
BK,CL (R)
¡¡ El renombrado es únicamente sintáctico !!
21
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
PRODUCTO CARTESIANO• Ejemplo:
– Tresul:=R x S– G(R)=3 G(S)=2 G(R x S)=G(R)+G(S)=5– C(R)=5 C(S)=3 C(R x S)=C(R)XC(S)=15
– Tresul A R.B C S.B D1 0 1 0 31 0 1 3 01 0 1 2 11 0 0 0 31 0 0 3 01 0 0 2 10 3 2 0 30 3 2 3 00 3 2 2 11 2 3 0 3
1 2 3 30 1 2 32 1 0 20 0 3 02 0 3 00 2 0 2 1
... ... ... ... ...
22
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Unión: R1 È R2• 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Ejemplo:
• Administrador È Programador:
24
Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 218 Jorge Arias 30
10 Juan Martínez 19
Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21
Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 30
10 Juan Martínez 19
Administrador Programador
24
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
• 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.
Unión R È S
25
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Intersección: R1 R2
• 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Ejemplo:
• Administrador Ç Programador
27
Código Nombre Edad2 Enrique Muñoz 25
Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 30
10 Juan Martínez 19
Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21
Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 30
10 Juan Martínez 19
Administrador Programador
27
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Intersección R S
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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Intersección R S
29
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Ejemplo:Tresul:=R TG(T)=G(R)=G(R T)=3Tresul<1,0,1>,<1,2,3>
Diferencia: R1 - R2
• 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Ejemplo:
• Administrador - Programador:
• Programador - Administrador:
31
Código Nombre Edad1 Jorge Campos 333 Esteban Paz 21
Código Nombre Edad8 Jorge Arias 30
10 Juan Martínez 19
Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21
Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 30
10 Juan Martínez 19
Administrador Programador
31
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Diferencia R - S Sintaxis: nombre_tabla1 - nombre_tabla2Las 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 - TG(R)=G(T)=G(Tresul)=3C(Tresul)=3Tresul<1,0,0>,<0,3,2>,<0,2,0>
32
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
• 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
• 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.
3434
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Reunión (JOIN)
35
Código Nombre Edad Depto1 Jorge Campos 33 12 Enrique Muñoz 25 13 Esteban Paz 21 18 Jorge Arias 30 2
10 Juan Martínez 19 212 Anselmo Rodas 28 6
Depto Descripción1 Administración2 Producción3 Ventas4 Finanzas
Empleado
Departamento
Atributo de Join
Nota: En este ejemplo, el campoDepto en Empleado NO ES FKcon respecto a la tabla Departamento
35
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Ejemplo
Empleado ⋈ Departamento
36
Código Nombre Edad Depto Descripción1 Jorge Campos 33 1 Administración2 Enrique Muñoz 25 1 Administración3 Esteban Paz 21 1 Administración8 Jorge Arias 30 2 Producción
10 Juan Martínez 19 2 Producción
36
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Ejemplo
Join o Reunión ⋈ 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Join o Reunión ⋈Tresul := S ⋈ (S.B=R.B) R
38
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Tresul
Natural Join (|X1| o Producto Natural
• 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
División: R1 ÷ R2
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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Ejemplo:Empleado
Código Nombre Edad2 Enrique Muñoz 25
41
Código Nombre Edad Depto1 Jorge Campos 33 12 Enrique Muñoz 25 12 Enrique Muñoz 25 23 Esteban Paz 21 18 Jorge Arias 30 2
10 Juan Martínez 19 2Depto
12
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ón1 Administración2 Producción
41
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
Sintaxis: nombre_tabla1 / nombre_tabla2También llamada división, se realiza entre dos tablas que cumplen las
siguientes condiciones:Los atributos de T2 deben estar incluidos en T1Se debe cumplir que G(T1)=m>n y G(T2)=n siendo m>0La 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
División: R1 ÷ R2
04/13/2023 43
Crea una nueva relación, seleccionando las filas en unarelación que se corresponden con todas lasfilas en otra relación.
43
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
División: R1 ÷ R2
ExtenderExtend R ADD expresión AS nuevo_atributo
Código Nombre Sal Bono1 Jorge Campos 33 12 Enrique Muñoz 25 13 Esteban Paz 21 18 Jorge Arias 30 2
10 Juan Martínez 19 212 Anselmo Rodas 28 6
44
Emp
Ej: Extend Emp ADD Sal*2 AS Saldobl
44
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
EjemploSe genera una relación como la original pero con un atributo
saldobl adicional:
Código Nombre Sal Bono Saldobl1 Jorge Campos 33 1 662 Enrique Muñoz 25 1 503 Esteban Paz 21 1 428 Jorge Arias 30 2 60
10 Juan Martínez 19 2 3812 Anselmo Rodas 28 6 56
4545
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
ASIGNACIÓN :=
• 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
47
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
RESUMENSelección o restricción σ condición (RELACION)
Proyección π campo1,campo2,……,campoN (RELACION)
Producto cartesiano R1 X R2
Renombrado 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
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
RESUMENESTRUCTURA
Campos a mostrar , condiciones, origen
TRADUCCION AL ALGREBRA RELACIONAL
π campo1,campo2,…,campoN ( σ condiciones ( Relaciones))
Fundamentos de Bases de Datos
Lic. Luis Antonio Sánchez Reynoso
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
top related