You are on page 1of 34

Captulo 2

lgebra Relacional parte 1

Ejemplo de Relacin (instructor)

Tipos de atributos
El conjunto de valores permitidos para cada
atributo se llama dominio del atributo.
Exigencia:
Los valores de los atributos se requiere que sean
atmicos; esto es, indivisibles.

El valor especial null es un miembro de todo


dominio.
null significa que el valor es desconocido o no
existe

Esquemas e instancias relacionales


A1, A2, , An son atributos
R = (A1, A2, , An ) es un esquema de relacin

Ejemplo:
o Instructor = (ID, name, dept_name, salary)

Dados conjuntos D1, D2, . Dn una relacin r es un subconjunto


de D1 x D2 x x Dn
Las relaciones son conjuntos (el orden entre las tuplas no importa).
Un elemento t r es una tupla representado mediante una fila de la tabla.
Notacin: r(R) significa r es una relacin con esquema de relacin R.

Bases de datos relacionales


Un esquema de una BD relacional es un
conjunto de esquemas de relacin.
R1,,Rn
Una base de datos relacional consiste de
mltiples relaciones.
r1(R1),, rn(Rn)

Bases de datos relacionales


Nomenclatura:
Nombre de relacin: expresado en minscula, r, s, u, r1, r2, .
Nombre de esquema de relacin: expresado en mayscula R, S, U, R1,
R2,

Notacin: Sea t r , r(R), A R . t[A] es el valor de t en A.


Notacin: Sea t r , r(R). t[i] es el valor de t en atributo isimo de R.

Diseo de BD relacional
Mal diseo:
univ (instructor -ID, name, dept_name, salary, student_Id, ..)

Almacenar toda la informacin en una sola


relacin resulta en:
Repeticin de la informacin
Ejemplo: dos estudiantes con el mismo instructor

Necesidad de valores nulos


Ejemplo: representar un estudiante sin supervisor

La teora de normalizacin trata con cmo disear


buenos esquemas de BD relacionales.

Claves
Sea K R , R esquema de relacin; K es una superclave de R

si los valores para K son suficientes para identificar una tupla


nica en cada posible relacin r(R).
Ejemplo: instructor(ID, name, dept name, salary)
{ID} e {ID, name} son superclaves de instructor.

Claves
Una superclave K es una clave candidata, si K es minimal.
o Para todo atributo de K si se lo quito a K dejo de tener una superclave.
o Ejemplo: {ID} clave candidata de instructor.
o Atencin! No confundir clave candidata

con superclave de

cardinalidad mnima.

Una de las claves candidatas es elegida para ser la clave

primaria.

Claves Ejemplo:

Restriccin de clave fornea: el valor en una relacin debe


aparecer en otra.
o Relacin referenciante y relacin referenciada.

o Ejemplo:
instructor(ID, name, dept name, salary)
department(dept name, building, budget)
El valor de dept name en instructor (relacin referenciante) debe aparecer en
department (relacin referenciada).

Esquema de BD universitaria
classroom(building, room number, capacity)
department(dept name, building, budget)
course(course id, title, dept name, credits)
instructor(ID, name, dept name, salary)
section(course id, sec id, semester, year, building, room
number, time slot id)
teaches(ID, course id, sec id, semester, year)
student(ID, name, dept name, tot cred)
takes(ID, course id, sec id, semester, year, grade)
advisor(s ID, i ID)
time slot(time slot id, day, start time, end time)
prereq(course id, prereq id)

Diagrama de esquema
para BD universitartia

Lenguajes de Consulta
Un lenguaje de consultas es un lenguaje en el que un
usuario solicita informacin de la base de datos.
Estos lenguajes suelen ser de un nivel superior que el de los
lenguajes de programacin habituales.

En los lenguajes procedimentales el usuario instruye al


sistema para que lleve a cabo una serie de operaciones
en la base de datos para calcular el resultado deseado.
Por ejemplo, lgebra relacional.

Otros lenguajes de consulta a estudiar: SQL (en modelo


relacional), XPath y XQuery (en XML).

Algebra relacional
Los lenguajes relacionales puros forman la base de
los lenguajes de consulta que son usados en la
prctica.
El lgebra relacional (AR) es un lenguaje relacional puro.

AR Consiste de un conjunto de operadores sobre


relaciones que se pueden componer.
Se parte de las relaciones de la BD
A esas relaciones se les aplican operadores del AR.

Seleccin
El operador seleccin sirve para definir por comprensin
subconjuntos de una relacin.
Se usa la sintaxis p(r) , donde
p(r) =def {t | t r and p(t)} ,
Donde p es predicado de seleccin.
o p consistente de trminos conectados por conectivos proposicionales:
, , .

o Cada trmino es uno de los siguientes:


<atributo> op <atributo>,
<atributo> op <constante>,
<constante> op <atributo>,

o donde op es una de =, <,>, , , .

Seleccin
Relacin r

Seleccionar tuplas con

A=B y D > 5

A=B D > 5 (r)

Seleccin
Relacin r

Seleccionar tuplas con

A=B y D > 5

A=B D > 5 (r)

Proyeccin
Notacin: A1, A2, , An(r)
Semntica:
1. relacin de k columnas obtenida de borrar columnas que
no son listadas;
2. se borran filas duplicadas del resultado

Proyeccin
Relacin r

Selecciona A and C
proyeccin
A, C (r)

Proyeccin
Relacin r

Selecciona A and C
proyeccin
A, C (r)

Proyeccin Generalizada
Notacin: F1, F2, , Fn(E)
o Donde los F1,,Fn son expresiones aritmticas involucrando
constantes y atributos de E.
o Puedo permutar orden de atributos de r.
o Ejemplo: obtener el salario mensual de un instructor
instructor(ID, name, dept name, salary)
salary: es salario anual

Proyeccin Generalizada
Notacin: F1, F2, , Fn(E)
o Donde los F1,,Fn son expresiones aritmticas involucrando
constantes y atributos de E.
o Puedo permutar orden de atributos de r.
o Ejemplo: obtener el salario mensual de un instructor
instructor(ID, name, dept name, salary)
salary: es salario anual

ID,name,dept_name,salary12 (instructor)

Unin, diferencia e interseccin


Operaciones de conjuntos del mismo nombre.
r s = {t | t r or t s}
r s = {t | t r and t s}
r s ={ t | t r and t s }

Condiciones para que estas operaciones tengan


sentido.
1. Ambas relaciones deben tener el mismo nmero de
atributos
2. Los dominios de atributos de la misma posicin deben
ser compatibles.

Enunciados de consultas en
lenguaje natural
Problema: A partir de un enunciado de una consulta en
lenguaje natural producir una expresin en AR para la
misma.
El lenguaje natural suele tener algunos problemas a
resolver como:
Ambigedades: ms de una interpretacin posible.
Inconsistencias: partes que se contradicen entre s.

Es normal que problemas como estos sucedan, sobre todo


cuando un enunciado no es ni corto ni sencillo.
Estos problemas deben ser resueltos junto con los clientes.
Este va a ser el rol del docente de taller.
En la materia van a adquirir prctica en hacer esto.

Ejemplos
persona(DNI, nombre,apellido)
biblioteca(nombreBib,calle,nmero)
libro(ttulo,ISBN,editorial,edicin)
socio(posicin,DNI)
bibliotecario(antigedad,DNI)
inscriptoEn(DNI,nombreBib)
trabajaEn(DNI,nombreBib)

Encontrar todos los libros cuya editorial es PrenticeHall


Encontrar los ISBN de todos los libros cuya editorial es
Prentice-Hall.
Encontrar los DNIs de todas las personas que son
socios o bibliotecarios de la biblioteca de FaMAF.

Producto Cartesiano
r x s =def {t q | t r and q s}

Esquema de r x s (r(R) y s(S))


Si R y S son disjuntos: R . S
Si R y S no son disjuntos, se debe usar renombramiento.
Ejemplo:
instructor(ID, name, dept_name, salary)
teaches(ID, course id, sec id, semester, year)

El esquema de r = instructor teaches es:


(instructor.ID, instructor.name, instructor.dept_name, instructor.salary, teaches.ID,
teaches.course_id, teaches.sec_id, teaches.semester, teaches.year)

El esquema anterior se puede simplificar a:


(instructor.ID, name, dept_name, salary
teaches.ID, course_id, sec_id, semester, year)

Producto Cartesiano
Consecuencias de la convencin anterior.
No se puede expresar r x r
Tampoco se puede expresar r x E con E expresin de

consulta arbitraria.
P. ej. E es unin de dos tablas con esquemas distintos.

Unir dos relaciones:


Producto Cartesiano
Relaciones r, s:

r x s:

Unir dos relaciones:


Producto Cartesiano
Relaciones r, s:

r x s:

Renombramiento
Motivacin: permite darle el nombre al resultado
de una expresin del lgebra relacional.
Permite referirse a una relacin por ms de un
nombre.
Permite asociar un esquema relacional a una
expresin del AR.

x (E) retorna la expresin E con el nombre X.


P. ej. puedo expresar ( s r )x r.

Renombramiento
Si una expresin de AR E tiene aridad n, entonces
x (A1, A2, , An) (E)
retorna el resultado de la expresin E con el nombre X y
con los atributos renombrados a A1,, An.
P. ej. si E no tiene esquema puedo darle uno.
P. ej. x.A1 = r.A1 ( x (A1, A2, , An) (E) x r ), donde A1 atributo de
esquema de r.
Conclusin: si E no tiene esquema, puedo necesitar darle un
nombre a la tabla de E ,
de ah la conveniencia de tener x (A1, A2, , An)

Ejemplos
persona(DNI, nombre,apellido)
biblioteca(nombreBib,calle,nmero)
libro(ttulo,ISBN,editorial,edicin)
socio(posicin,DNI)
bibliotecario(antigedad,DNI)
inscriptoEn(DNI,nombreBib)
trabajaEn(DNI,nombreBib)

Encontrar los nombres de todas las personas que son socios


de la biblioteca de FaMAF.
Encontrar los apellidos de todos los socios de la biblioteca de
FaMAF y que no son bibliotecarios de la biblioteca de
FaMAF.
Encontrar los DNIs de los bibliotecarios de menor antigedad.

Definicin del AR
Una expresin bsica del AR consiste de una de las
siguientes:
o Una relacin de la BD
o Una relacin constante

Si E1 y E2 son expresiones del AR, entonces las siguientes son


expresiones del AR:
o E1 E2
o E1 - E2
o E1 x E2
o p (E1), p predicado en atributos de E1
o s(E1), S lista con algunos de los atributos de E1
o x (E1), x es un nombre para el resultado de E1
o x(A1,,An) (E1), A1,, An

son nombres de atributos y x es un nombre para el resultado de E1

Vnculo de AR con SQL

En primera etapa del proyecto de taller van a trabajar con


expresiones select-from-where de SQL con sintaxis:

select distinct A1,,An


from r1,,rn
where P

Son equivalentes a:
A ,, An (p (r1 x x rn))
1

Esto es cierto si r1,, rn son relaciones.


Sino hay que definir AR para multiconjuntos.

You might also like