álgebra relacional

34
Capítulo 2 Álgebra Relacional – parte 1

description

Algebra relacional

Transcript of álgebra relacional

Page 1: álgebra relacional

Capítulo 2

Álgebra Relacional – parte 1

Page 2: álgebra relacional

Ejemplo de Relación (instructor)

Page 3: álgebra relacional

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

atómicos; esto es, indivisibles.

• El valor especial null es un miembro de todo dominio. – null significa que el valor es desconocido o no

existe

Page 4: álgebra relacional

Esquemas e instancias relacionales

• A1, A2, …, An son atributos

• R = (A1, A2, …, An ) es un esquema de relación

• Ejemplo:

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

• Dados conjuntos D1, D2, …. Dn una relación 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.

– Notación: r(R) significa r es una relación con esquema de relación R.

Page 5: álgebra relacional

Bases de datos relacionales

• Un esquema de una BD relacional es un conjunto de esquemas de relación.

R1,…,Rn

• Una base de datos relacional consiste de múltiples relaciones.

r1(R1),…, rn(Rn)

Page 6: álgebra relacional

Bases de datos relacionales

• Nomenclatura: – Nombre de relación: expresado en minúscula, r, s, u, r1, r2, ….

– Nombre de esquema de relación: expresado en mayúscula R, S, U, R1, R2, …

• Notación: Sea t ∈ r , r(R), A ∈ R . t[A] es el valor de t en A.

• Notación: Sea t ∈ r , r(R). t[i] es el valor de t en atributo i-ésimo de R.

Page 7: álgebra relacional

Diseño de BD relacional

• Mal diseño: – univ (instructor -ID, name, dept_name, salary, student_Id, ..)

• Almacenar toda la información en una sola relación resulta en: – Repetición de la información

• Ejemplo: dos estudiantes con el mismo instructor

– Necesidad de valores nulos • Ejemplo: representar un estudiante sin supervisor

– La teoría de normalización trata con cómo diseñar buenos esquemas de BD relacionales.

Page 8: álgebra relacional

Claves

• Sea K R , R esquema de relación; K es una superclave de R si los valores para K son suficientes para identificar una tupla única en cada posible relación r(R).

• Ejemplo: instructor(ID, name, dept name, salary)

{ID} e {ID, name} son superclaves de instructor.

Page 9: álgebra relacional

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 ¡Atención! No confundir clave candidata con superclave de cardinalidad mínima.

• Una de las claves candidatas es elegida para ser la clave primaria.

Page 10: álgebra relacional

Claves Ejemplo:

• Restricción de clave foránea: el valor en una relación debe aparecer en otra.

o Relación referenciante y relación referenciada.

o Ejemplo: instructor(ID, name, dept name, salary)

department(dept name, building, budget)

El valor de dept name en instructor (relación referenciante) debe aparecer en department (relación referenciada).

Page 11: álgebra relacional

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)

Page 12: álgebra relacional

Diagrama de esquema para BD universitartia

Page 13: álgebra relacional

Lenguajes de Consulta

• Un lenguaje de consultas es un lenguaje en el que un usuario solicita información de la base de datos.

– Estos lenguajes suelen ser de un nivel superior que el de los lenguajes de programación 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).

Page 14: álgebra relacional

Algebra relacional

• Los lenguajes relacionales puros forman la base de los lenguajes de consulta que son usados en la práctica.

– 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.

Page 15: álgebra relacional

Selección

• El operador selección sirve para definir por comprensión subconjuntos de una relación.

• Se usa la sintaxis σp(r) , donde

σp(r) =def {t | t ∈ r and p(t)} ,

• Donde p es predicado de selección. o p consistente de términos conectados por conectivos proposicionales:

∧, ∨, ┐.

o Cada término es uno de los siguientes:

<atributo> op <atributo>,

<atributo> op <constante>,

<constante> op <atributo>,

o donde op es una de =, <,>, ≠, ≥, ≤ .

Page 16: álgebra relacional

Selección

Relación r

Seleccionar tuplas con

A=B y D > 5

σ A=B ∧ D > 5 (r)

Page 17: álgebra relacional

Selección

Relación r

Seleccionar tuplas con

A=B y D > 5

σ A=B ∧ D > 5 (r)

Page 18: álgebra relacional

Proyección

• Notación: ΠA1, A2, …, An(r)

• Semántica:

1. relación de k columnas obtenida de borrar columnas que

no son listadas;

2. se borran filas duplicadas del resultado

Page 19: álgebra relacional

Proyección

Relación r

Selecciona A and C

proyección

Π A, C (r)

Page 20: álgebra relacional

Proyección

Relación r

Selecciona A and C

proyección

Π A, C (r)

Page 21: álgebra relacional

Proyección Generalizada

• Notación: ΠF1, F2, …, Fn(E) o Donde los F1,…,Fn son expresiones aritméticas 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

Page 22: álgebra relacional

Proyección Generalizada

• Notación: ΠF1, F2, …, Fn(E) o Donde los F1,…,Fn son expresiones aritméticas 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,salary÷12 (instructor)

Page 23: álgebra relacional

Unión, diferencia e intersección

• 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 número de

atributos

2. Los dominios de atributos de la misma posición deben

ser compatibles.

Page 24: álgebra relacional

Enunciados de consultas en lenguaje natural

• Problema: A partir de un enunciado de una consulta en lenguaje natural producir una expresión en AR para la misma.

• El lenguaje natural suele tener algunos problemas a resolver como: – Ambigüedades: más de una interpretación 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 práctica en hacer esto.

Page 25: álgebra relacional

Ejemplos

persona(DNI, nombre,apellido) biblioteca(nombreBib,calle,número) libro(título,ISBN,editorial,edición) socio(posición,DNI) bibliotecario(antigüedad,DNI) inscriptoEn(DNI,nombreBib) trabajaEn(DNI,nombreBib)

• Encontrar todos los libros cuya editorial es “Prentice-Hall”

• 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”.

Page 26: álgebra relacional

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)

Page 27: álgebra relacional

Producto Cartesiano

• Consecuencias de la convención anterior.

– No se puede expresar r x r – Tampoco se puede expresar r x E con E expresión de

consulta arbitraria. • P. ej. E es unión de dos tablas con esquemas distintos.

Page 28: álgebra relacional

Unir dos relaciones: Producto Cartesiano

Relaciones r, s:

r x s:

Page 29: álgebra relacional

Unir dos relaciones: Producto Cartesiano

Relaciones r, s:

r x s:

Page 30: álgebra relacional

Renombramiento

• Motivación: permite darle el nombre al resultado

de una expresión del álgebra relacional.

– Permite referirse a una relación por más de un

nombre.

– Permite asociar un esquema relacional a una

expresión del AR.

• x (E) retorna la expresión E con el nombre X.

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

Page 31: álgebra relacional

Renombramiento

• Si una expresión de AR E tiene aridad n, entonces

x (A1, A2, …, An) (E)

retorna el resultado de la expresión 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.

– Conclusión: 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)

Page 32: álgebra relacional

Ejemplos

persona(DNI, nombre,apellido)

biblioteca(nombreBib,calle,número)

libro(título,ISBN,editorial,edición)

socio(posición,DNI)

bibliotecario(antigüedad,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 antigüedad.

Page 33: álgebra relacional

Definición del AR

• Una expresión básica del AR consiste de una de las siguientes: o Una relación de la BD o Una relación 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

Page 34: álgebra relacional

Vínculo 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:

Π A1,…, An (σp (r1 x … x rn))

• Esto es cierto si r1,…, rn son relaciones.

– Sino hay que definir AR para multiconjuntos.