Modelo Relacional

Temas:
Conceptos Generales. Restricciones de Integridad. Creación y Modificación de Relaciones. Algebra Relacional. Cálculo Relacional. SQL.

Conceptos Generales
Es un Modelo de Datos Lógico.
Se usa como Modelo implementado por DBMS.

Creado por Codd en 1970.
Se comenzó con una definición teórica. Se proponía un modelo con fuertes elementos matemáticos para BDs.

Actualmente : modelo lógico dominante.
Referencia:
Capítulos 7, 8 y 9 del [EN].
Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional Tema 3. Modelo Relacional

Los DBMS Relacionales son la enorme mayoria.
1
Fundamentos de Bases de Datos

Modelo Relacional y Algebra Relacional

2

Conceptos Generales
Vision Informal del Modelo.
Las estructuras consisten en TABLAS,
cuyas columnas corresponden a ATRIBUTOS de tipo atómico. y las filas corresponden a registros de datos.

Conceptos Generales
Dominio D.
Es un conjunto de valores atómicos.

Esquema de relacion R(A1,...,An).
R es el nombre de relaciòn. A1,...,An son los atributos con dominios D1,...,Dn.

Las operaciones están fundamentalmente orientadas a manejo de TABLAS, como conjuntos de registros. Es un modelo de datos extremadamente simple y claro, que también ha resultado potente para la mayor parte de las aplicaciones de BDs.
Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional

Relación r(R).
Es una instancia de un esquema de relacion R. Consiste en un conjunto de t-uplas (o tuplas)
r = {<a1,...,an> , <b1,...,bn>, <c1,...,cn> ,.... }

También puede interpretarse a r como:
r(R) ⊆ (D1 x ... x Dn)
3
Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional

4

1

si no puede existir ninguna r(R) tal que tenga dos tuplas con valores iguales de X (t[X] = t`[X]). t:R → D1 U .Direccion..FechaN.. Superclave y Clave. d1 d3 d4 PRODS #p desc 1 t1 2 t2 3 t3 5 t2 6 t3 7 t4 9 t2 10 t1 11 t3 12 t2 15 t3 #f 1 1 1 1 1 2 2 2 5 5 9 9 10 VENTAS #p precio 1 100 2 200 3 300 10 1000 11 1100 3 350 6 600 7 700 3 350 5 200 7 100 3 300 3 400 Ejemplo: EMPLEADO(Nombre. Una clave es una superclave que no contiene propiamente una superclave (o sea minimal).. NumeroP. se dice que X ⊆ {A1. RI en el Modelo Relacional Restricciones de Dominios. ND) DEPARTAMENTO(Nombre. Sexo. NumD) Trabaja_En(NSSE.An} es superclave en un esquema R. Valores de Atributos en tuplas: Son valores atómicos (indivisibles). Restricciones de tipo en los Di. LugarP. Lugard) PROYECTO(Nombre.NSSGTE.. 7 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional Atributos ordenados o no ? Visión ''producto cartesiano'': SI .Apellido... Ejemplo de instancia de BD Relacional Fabricantes que Venden Productos: #f 1 2 4 5 6 9 10 13 15 16 19 FABS Nombre Juan Pedro Maria Ana Pedro Pepe Laura Maria Pedro Oscar Juan Direcc d1 d2. Visión ''tuplas como funciones'': NO . No hay repetidos.FechaInicGte ) LugaresDeptos(NumeroD. U Dn Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 8 2 .. Salario.. NumP. Propiedad: primera forma normal. d3 d2 d4.. d5 d4 d3.Conceptos Generales Esquema de BD Relacional o Esquema Relacional: Conjunto de esquemas de relación. Horas) 5 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 6 Características de Relaciones Es un conjunto de tuplas: No está ordenado.NumeroD..NSS.An). NSSSuper. Dado R(A1.

NumeroD FK Departamento.b. Delete from R where A=''a'' borra de las tuplas de r cuyo valor para A es ''a''. un conjunto de atributos X es una FK de R si: Los atributos de X coinciden en dominio con los de una clave Y de S. NO por esquemas de relación.NumeroD Una BD se considera válida si: Todas las relaciones r satisfacen las RIs. Los valores de X en tuplas de r(R) (para toda r) corresponden a valores de Y en la relación s(S). Las RI se definen a nivel de: ESQUEMA RELACIÓN NO a nivel de instancia.RI en el Modelo Relacional Integridad Referencial y Foreign Keys. Las tuplas insertadas deben cumplir las RI. Delete. ¿En qué casos ? 11 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 12 3 . NO de la observación de relaciones.NSS Empleado.b.NSS Proyecto. Operaciones de modificación Sea R(A. Insert. Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional Borrar tuplas puede generar violaciones a RI.NSSGTE FK Empleado.B. Las RI son violadas por: relaciones.C) y r(R). Se dice que existe una RI Referencial entre R y S.c> en la relación r. RI en el Modelo Relacional Ejemplo de RI Referenciales: Departamento. insert <a. Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 9 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 10 RI en el Modelo Relacional Propiedades importantes: Las RI surgen de: La observación de la realidad. Dado R.c> into R Incluye la tupla <a.NSSSuper FK Empleado. donde R referencia a S.

Actualizar tuplas puede generar violaciones a RI. colocando “a1” como valor de A. Proyección. Sea R(A. Operadores: Sobre conjuntos de tuplas: Union. Diferencia.Selección Ejemplos: σND=4 (EMPLEADO) σSalario>3000 (EMPLEADO) σND=4 and Salario>3000 (EMPLEADO) σnot (ND=4 and Salario >3000) (EMPLEADO) 15 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional Sintaxis: σ<condicion> (<relacion>) donde: Condición es una condicion lógica sobre valores de los atributos de las tuplas resultado.B. El Algebra Relacional Visión General: Conjunto de operadores para consultar BD-Rs.Selección Descripción General: Permite obtener las tuplas que cumplen una cierta condición. Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 13 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 14 Algebra Relacional . Producto Cartesiano. ¿En qué casos ? Específicos para BDs Rel. Algebra Relacional . Selección.Operaciones de modificación Update. Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 16 4 . Define conjunto de ops estandar en BD-Rs.C) y r(R). update R set A = ''a1'' where B = ''b'' modifica las tuplas de r cuyo valor de B es ''b'‘. Join. Relación es una relación o expresion relacional.

Algebra Relacional .Union Descripción General: Permite obtener la Union de dos relaciones tomadas como conjuntos de tuplas. Relación es una relación o expresion relacional.. 17 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 18 Algebra Relacional . Sintaxis: (<relacion>) U (<relacion>) donde: relación es una relación o expresion relacional.Proyección Descripción General: Permite obtener las tuplas con un cierto conjunto de atributos... Π desc (PRODS) 3).. Π #f (VENTAS) Algebra Relacional .An (R) Sintaxis: da como resultado otra relacion: Π<lista_atributos> (<relacion>) donde: Lista_atributos es una lista de atributos a aparecer en la relaciòn resultado...Proyección Proyección (Π). Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional con esquema (A1.. Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 19 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 20 5 . dirección (FABS) 2). Π A1. al realizar una proyeccion..Proyección Ejemplos: 1) Π nombre. podrian quedar menos tuplas que en la relacion de partida.An. Sea R una relacion..An) con tuplas formadas a partir de las de R. tomando los valores para los atributos A1. Observación: Como no se admiten tuplas repetidas.Algebra Relacional ....

y que tiene como conjunto de tuplas a la resta de las de R menos las de S. 21 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 22 Algebra Relacional . 23 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 24 6 .Producto Cartesiano Descripción General: Permite obtener el Producto Cartesiano de dos relaciones tomadas como conjuntos de tuplas.Diferencia Descripción General: Permite obtener la Diferencia de dos relaciones tomadas como conjuntos de tuplas. Sintaxis: da como resultado otra relación: cuyo esquema es igual al de R (y S).Algebra Relacional . Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional (<relacion>) x (<relacion>) donde: Relación es una relación o expresion relacional. La operación: (R ∪ S) Algebra Relacional .Union Union: Sean R y S dos relaciones con igual esquema (o compatible).Diferencia Diferencia: Sean R y S dos relaciones con igual esquema (o compatible). y que tiene como conjunto de tuplas a la unión de las de R y las de S. La operación: (R − S) Algebra Relacional . Sintaxis: da como resultado otra relación: cuyo esquema es igual al de R (y S). Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional (<relacion>) − (<relacion>) donde: Relación es una relación o expresion relacional.

Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional Este operador permite combinar las tuplas de dos tablas. La operación: RxS Algebra Relacional .Producto Cartesiano Producto Cartesiano: Sean R y S dos relaciones con esquemas (A1.Bm) y cuyas tuplas son generadas por todas las combinaciones posibles de las de R con las de S..$5 (σ$1<3 (PRODS) x σ$2<3 (VENTAS)) da como resultado: desc t1 t1 t2 t2 #f 1 1 1 1 #p 1 2 1 2 precio 100 200 100 200 Operadores Derivados Los operadores presentados antes: son los básicos del Algebra Relacional.Algebra Relacional .$4.... Se definen otros que: se pueden expresar en funcion de los basicos. 25 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 26 Ejemplo Ejemplo: Π$2.An...... 27 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 28 7 .$3....Producto Cartesiano Ejemplos: σ#p<3 (PRODS) x σ#p<3 (VENTAS) da como resultado: #p 1 1 2 2 desc #f #p precio t1 1 1 100 t1 1 2 200 t2 1 1 100 t2 1 2 200 da como resultado: otra relacion cuyo esquema es (A1... pero que expresan operaciones importantes.B1. Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional Division: Permite obtener los datos que se relacionan con todos los elementos de otro conjunto.. Estos operadores son: Join: Permite expresar la combinación de tablas..Bm) respectivamente.An) y (B1. La notacion de atributos numerados tambien puede ser usada en la seleccion.

2). Dar los nombres de fabricantes y la descripcion de los productos que vende.Algebra Relacional .Join Descripción General: Permite combinar tuplas de dos relaciones a través de una condición sobre los atributos. Dar descripcion y precio de productos vendidos por Juan.Join Natural Ejemplos: 1). Cartesiano de las relaciones.precio ((σ nombre='Juan'(FABS) * VENTAS ) * PRODS ) Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 31 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 32 8 . Sean R y S dos relaciones.Join Natural Join Natural. la operación R*S Algebra Relacional . Π nombre.Θ− Θ−Join Θ−Join. Sean R y S dos relaciones. Algebra Relacional .desc ( ( FABS * VENTAS ) * PRODS ) es equivalente a realizar el: θ−Join con la condicion de igualdad entre los atributos de igual nombre y luego proyectar eliminando columnas con nombre repetido. Corresponde a una selección sobre el Prod. la operación R |><|condición S es equivalente a realizar : Sintaxis: (<relacion>) |><| <condicion> (<relacion>) Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional σcondicion (R x S) 29 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 30 Algebra Relacional . Π desc.

......An) y su contenido son: las tuplas tomadas a partir de las de r(R) tales que su valor (a1..an) esta asociado en r(R) con TODOS los valores (b1.Bm) y (B1.División División.División Por ejemplo: Sean R y S.Join Cómo se ejecuta el Join? Cuando se realiza un Join entre dos relaciones (R y S). Algebra Relacional . Si vende varios productos. a1 a1 a2 a2 a2 a2 a3 a3 B) b1 b2 b1 b2 b3 b4 b1 b3 S( B ) b1 b2 b3 ==> Q( A ) a2 La operación R ÷ S da como resultado otra relacion con esquema (A1..Bm) respectivamente...An... se genera una tupla en el resultado. se obtendran varias tuplas en la solucion... Sean R y S dos relaciones con esquemas (A1..bm) que estan en s(S). cada vez que una tupla de R y otra de S cumplen la condicion del join. yQ=R÷S R( A. alcanza con que el fabricante venda un producto para que este en la solucion.. Para que se genere una tupla en el resultado alcanza con que exista una tupla en R y otra en S que se "conecten" por la condicion del Join... Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 35 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 36 9 .... Algebra Relacional .. Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 33 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 34 Algebra Relacional .B1.Join Por ejemplo: Cuando se consulta el nombre y descripcion de producto tal que el fabricante vende ese producto..Algebra Relacional ..

Dar los #f que venden todos los productos con descripcion "t1". Π#f. Valores base a incluir en el resultado. A = Π#f. Dar los #p vendidos por todos los fabricantes que venden algun producto. pero NO se exige que lo este solo con esos valores. Result = Π#p.#p ( VENTAS) ÷ Π#p ( VENTAS) 37 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 38 Ejemplos Ejemplo 3.División Observación: Las tuplas solucion deben estar relacionadas con todos los valores de S. Lo que NO se quiere en el resultado.División La división en función de operadores base. Ejemplo 4. Sea: T(X) = R(X.#f ( VENTAS) ÷ Π#f ( FABS) Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional Ejemplo 2.Y) ÷ S(Y).#p ( VENTAS) ÷ Π#p ( σdesc=“t1” (PRODS) ) Algebra Relacional . Ejemplos Ejemplo1.R ) Tuplas de R a las que les falta relacionarse con algun elemento de S.T2 39 Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional 40 10 . direc ( FABS * A ) Fundamentos de Bases de Datos Modelo Relacional y Algebra Relacional T2 = ΠX ( (T1 x S) .#f ( VENTAS) ÷ Π#f ( VENTAS) Ejemplo: Dar los #p vendidos por todos los fabricantes.Algebra Relacional . Pueden estar relacionadas con otros valores. Dar nombre y direccion de fabricantes que venden todos los productos con descripcion "t1". Dar los #f que venden todos los productos vendidos por algun fabricante. T1 = ΠX (R). Π#p. Π nombre. T = T1 .