Professional Documents
Culture Documents
Tuplas Atributos
Grado
Cardinalidad
CREATE TABLE P
{ P# DOMAIN (P#) NOT NULL,
PNOMBRE DOMAIN (NOMBRE) NOT NULL,
COLOR DOMAIN (COLOR) NOT NULL,
PESO DOMAIN (PESO) NOT NULL,
CIUDAD DOMAIN (CIUDAD) NOT NULL,
PRIMARY KEY (P#) };
CREATE TABLE SP
{ S# DOMAIN (S#) NOT NULL,
P# DOMAIN (NOMBRE) NOT NULL,
CANT DOMAIN (CANT) NOT NULL,
PRIMARY KEY (S#, P#),
FOREGEIN KEY (S#) REFERENCES S,
FOREGEIN KEY (P#) REFERENCES P };
Tipos de relaciones.
Comentarios.
1. Todas las reglas de integridad se aplican a las relaciones base.
2. No se incluyeron explícitamente reglas específicas con
respecto a una base de datos en el modelo relacional.
3. Se acostumbra llamar reglas a las dos reglas generales de
integridad del modelo relacional. Aunque sería más apropiado
llamarlas metarreglas.
4. Se acostumbra decir que el modelo tiene dos reglas generales
de integridad. No obstante sería más apropiado decir que tiene
tres.
Claves primarias.
En términos informales, la clave primaria es un identificador
único para esa relación. La clave primaria pueda ser compuesta.
Una la relación pueda tener más de un identificador único Claves
candidatas de las cuales se escoge una y las demás se llaman
claves alternativas.
Claves ajenas.
Definición informal.
Una clave ajena es un atributo (quizá compuesto) de una relación
R2 cuyos valores deben concordar con los de la clave primaria de
alguna relación R1.
Definición formal.
El atributo LF (quizá compuesto) de la relación base R2 es una
clave ajena si y sólo si satisface dos propiedades independientes
del tiempo:
1. Cada valor LF es nulo del todo o bien no nulo del todo (con
nulo del todo o no nulo del todo se quiere decir que si, LF es
compuesto, todos sus componentes son nulos o bien sus
componentes son no nulos, no una combinación).
2. Existe una relación base R1 con clave primaria LP tal que cada
valor no nulo de LH es idéntico al valor de LP en alguna tupla
de R1.
Justificación de la regla:
Así como los valores de la clave primaria representan
identificadores de entidades, así los valores de la clave ajena
representan referencias a entidades (a menos que sean nulos). La
regla de integridad referencial dice tan sólo que si B hace
referencia a A, entonces A debe existir.
Anotaciones.
1. La integridad referencial exige concordancia de las claves
ajenas muy específicamente, con claves primarias, no con
claves alternativas.
2. Los conceptos de clave ajena e integridad referencial se
definen uno en términos del otro.
La regla de integridad referencial se expresa en términos de
estados de la base de datos. Cualquier estado de la base de
datos que no satisfaga la regla será incorrecto por definición. Así
habrá operaciones que podrían rechazarse o aceptarse.
Algebra relacional
La tercera parte del modelo relacional que está relacionada con la
manipulación de los datos, esta dividida en dos partes:
1. El álgebra relacional
2. La operación de asignación.
A1 b1 b1 c1 a1 b1 c1 a x x a
A2 b2 b2 c2 a2 b1 c1 a y z
A3 b3 b3 c3 a3 b3 c3 a z
b x
c y
Operaciones del álgebra relacional.
La operación unión en el álgebra relacional no es la unión
matemática. Es una forma limitada en la cual se obliga a las dos
relaciones de entrada a tener la misma forma o las dos deben
tener tuplas con “compatibilidad respecto a la unión”.
La operación Unión.
UNION. La unión de dos relaciones A y B compatibles respecto a
la union, A UNION B (A ∪ B), es una relación cuya cabecera es
idéntica a la de A o B y cuyo cuerpo está formado por todas las
tuplas t pertenecientes ya sea a A o a B o a las dos.
La operación Intersección.
La intersección de dos relaciones compatibles respecto a la unión
A y B, A INTERSECT B (A ∩ B), es una relación cuya cabecera es
idéntica a la de A o B y cuyo cuerpo está formado por todas la
tuplas t pertenecientes tanto a A como a B.
La operación Diferencia.
La diferencia entre dos relaciones compatibles con respecto a la
unión A y B, A MINUS B, es una relación cuya cabecera es
idéntica a la de A o B y cuyo cuerpo está formado por todas las
tuplas t pertenecientes a A pero no a B.
Ejemplo: Considerando las relaciones:
Relación A
No_S Snombre Situación Ciudad
S1 Salazar 20 México
S4 Carmona 40 Morelia
S5 Alvarez 50 Puebla
Relación B
No_S Snombre Situación Ciudad
S1 Salazar 20 México
S2 Martinez 30 Veracruz
S3 Breidi 10 Puebla
S5 Alvarez 50 Puebla
A UNION B
No_S Snombre Situación Ciudad
S1 Salazar 20 México
S2 Martinez 30 Veracruz
S3 Breidi 10 Puebla
S4 Carmona 40 Morelia
S5 Alvarez 50 Puebla
A INTERSECT B
No_S Snombre Situación Ciudad
S1 Salazar 20 México
S5 Alvarez 50 Puebla
A MINUS B
No_S Snombre Situación Ciudad
S4 Carmona 40 Morelia
B MINUS A
No_S Snombre Situación Ciudad
S2 Martinez 30 Veracruz
S3 Breidi 10 Puebla
La operación Producto cartesiano.
En matemáticas, el producto cartesiano de dos conjuntos es el
conjunto de todos los pares ordenados de elementos tales que el
primer elemento de cada par pertenece al primer conjunto y el
segundo elemento pertenece al segundo conjunto. Así el
producto cartesiano de dos relaciones sería un conjunto de pares
ordenados de tuplas.
A where X theta Y
Consideraciones.
Los atributos X y Y deben estar definidos sobre el mismo
dominio y la operación theta debe ser aplicable a ese dominio.
La relación A no debe ser por fuerza una relación nombrada y
puede representarse mediante una expresión arbitraria del
álgebra relacional.
En lugar de alguno de los atributos X o Y se puede especificar
por un valor literal.
El operador de restricción produce un subconjunto horizontal
de una relación dada, es decir, un subconjunto de tuplas.
La operación de restricción permite una operación simple de
comparación o una de las siguientes formas en las cuales la
expresión condicional de la cláusula WHERE esté formada por
una combinación booleana arbitraria de tales comparaciones
simples:
1. A WHERE c1 AND c2
Que es equivalente a(A WHERE c1)INTERSECT(A WHERE c2)
2. A WHERE c1 OR c2
Que es equivalente a (A WHERE c1) UNION (A WHERE c2)
3. A WHERE NOT c
Que es equivalente a A MINUS (A WHERE c)
A [x,y,...,z]
Ejemplos:
S [CIUDAD]
Ciudad
México
Veracruz
Puebla
Morelia
P [COLOR, CIUDAD]
Color Ciudad
Rojo México
Verde Veracruz
Azul Puebla
Azul Morelia
La operación Reunión natural.
La operación reunión tiene diferentes formas. La más importante
es la reunión natural.
(X1,X2,...Xm,Y1,Y2,...,Yn)
y
(Y1,Y2,...,Yn,Z1,Z2,...Zp)
A JOIN B
(A JOIN B) JOIN C
y
A JOIN (B JOIN C)
se pueden simplificar a
A JOIN B JOIN C
Relación S Relación P
S# Snombre Situación Ciudad P# Pnombre Color Peso Ciudad
S1 Salazar 20 Londres P1 Tuerca Rojo 12 Londres
S2 Jaimes 10 París P2 Perno Verde 17 París
S3 Bernal 30 París P3 Birlo Azul 17 Roma
S4 Corona 20 Londres P4 Birlo Rojo 14 Londres
S5 Aldana 30 Atenas P5 Leva Azul 12 París
P6 Engrane Rojo 19 Londres
S JOIN P
S# Snombre Situación Ciudad P# Pnombre Color Peso
S1 Salazar 20 Londres P1 Tuerca Rojo 12
S1 Salazar 20 Londres P4 Birlo Rojo 14
S1 Salazar 20 Londres P6 Engrane Rojo 19
S2 Jaimes 10 París P2 Perno Verde 17
S2 Jaimes 10 París P5 Leva Azul 12
S3 Bernal 30 París P2 Perno Verde 17
S3 Bernal 30 París P5 Leva Azul 12
S4 Corona 20 Londres P1 Tuerca Rojo 12
S4 Corona 20 Londres P4 Birlo Rojo 14
S4 Corona 20 Londres P6 Engrane Rojo 19
Operación Reunión-Theta.
La reunión theta es un subcaso de la reunión natural, en la cual
se juntan dos relaciones con base en alguna condición diferente a
la igualdad.
Relación S Relación P
S# Snombre Situación Ciudad P# Pnombre Color Peso Ciudad
S1 Salazar 20 Londres P1 Tuerca Rojo 12 Londres
S2 Jaimes 10 París P2 Perno Verde 17 París
S3 Bernal 30 París P3 Birlo Azul 17 Roma
S4 Corona 20 Londres P4 Birlo Rojo 14 Londres
S5 Aldana 30 Atenas P5 Leva Azul 12 París
P6 Engrane Rojo 19 Londres
S JOIN P
(X1,X2,...Xm,Y1,Y2,...,Yn)
y
(Y1,Y2,...,Yn)
A DIVIDEBY B
Relación S Relación SP
S# SNOMBRE SITUACIÓN CIUDAD S# P# CANTIDAD
S1 Salazar 20 Londres S1 P1 300
S2 Jaimes 10 París S1 P2 200
S3 Bernal 30 París S1 P3 400
S4 Corona 20 Londres S1 P4 200
S5 Aldana 30 Atenas S1 P5 100
S1 P6 100
Relacion P S2 P1 300
P# PNOMBRE COLOR PESO CIUDAD S2 P2 400
P1 Tuerca Rojo 12 Londres S3 P2 200
P2 Perno Verde 17 París S4 P2 200
P3 Birlo Azul 17 Roma S4 P4 300
P4 Birlo Rojo 14 Londres S4 P5 400
P5 Leva Azul 12 París
P6 Engrane Rojo 19 Londres
¿Cuál es el resultado de S WHERE CIUDAD = ´Londres’ [S#,
SNOMBRE]?
S1 Salazar
S4 Corona
S1 Salazar
Aldana
Operador
Unión A UNION B A∪ B
Intersección A INTERSECT B A∩ B
Diferencia A MINUS B A–B
Producto cartesiano A TIMES B AxB
Selección A WHERE X THETA Y σ X THETA Y (A)
Proyección A [] Π X,Y,...Z (A)
Reunión A JOIN B A | x| B
División A DIVIDEBY B A÷ B
Renombrar A RENAME Ai AS Ain ρ X (A)
Asignación A := B A← B
Ejemplo: La siguiente expresión
Ejemplo:
La siguiente expresión
se puede escribir
TEMP1:= P RENAME CIUDAD AS PCIUDAD
TEMP2:= S TIMES TEMP1
TEMP3:= TEMP2 WHERE CIUDAD =PCIUDAD
TEMP4:= TEMP3 [S#, SNOMBRE, SITUACION, CIUDAD, P#,
PNOMBRE, COLOR, PESO]
TEMP5:= TEMP4 WHERE SITUACION <>20