Algebra relacional Flashcards
Definir lenguade de consulta del modelo relacional
Es un lenguaje a traves del cual se solicita informacion a la base de datos. Pueden ser procedimentales o no procedimentales
Diferencia entre lenguajes procedimentales y no procedimentales. Ejemplificar
- Procedimentales: se dan instruccion al sistema de como obtener la informacion a consultar. Algebra relacional es un ejemplo.
- No procedimentales: se especifica que informacion se quiere consultar, pero no como obtenerla. Ejemplos: CRT, CRD
Definir algebra relacional
Es un lenguaje de consulta procedimental. Sus expresiones se componen de:
(1) Una relacion de la base de datos
(2) Una relacion constante
Las expresiones del algebra relacional se construyen a partir de subexpresiones menores. Sean E1 y E2 expresiones del algebra relacinal, las siguientes son expresiones del algebra:
- E1 U E2
- E1 - E2
- E1 x E2
\sigma_p(E1) donde p es un predicado sobre los atributos de E1
\pi_ s(E1) onde s es una lista de atributos de E1
\rho_X(E1) donde X es un nuevo nombre del resultado de E1
Definir propiedad de union compatible
Dos relaciones R y S se dicen union-compatibles si:
- R y S tienen la misma cantidad de atributos
- Los dominios de los i-esimos atributos de R y S son iguales
Listar los operadores basicos del algebra relacional
1 - Union
2 - Diferencia
3 - Producto cartesiano
4 - Seleccion
5 - Proyeccion
6 - Renombramiento
Definir al menos tres operadores compuestos del algebra relacional
1 - Interseccion: Sean r y s dos instancias de relaciones, r \cap s devuelve todas las filas de r que no estan en s. La equivalencia en operadores basicos es r - (r - s)
2 - Natural join: retorna una relacion con los atributos de ambas relaciones, combinando las tuplas de ambas relaciones que tengan el mismo valor en atributos comunes. La equivalencia en operadores basicos es \sigma_p(r x s)
3 - Division: Define una relacion sobre el conjunto C = R - S, retornando los valores de C que se combinan en R con todos los valores de S (por lo que S debe estar estrictamente incluido en R)
Definir outerjoin
Combina las filas donde hay un atributo en comun y rellena con valores nulos donde no hay correspondencia en el join. Puede ser:
- Full: toma en cuenta las filas de ambos operandos
- Left: toma en cuenta solo las filas del primer operando
- Right: toma en cuenta solo las filas del segundo operando
Definir calculo relacional de tuplas
Es un lenguaje de consulta no procedimental. Las consultas son de la forma {t | P(t)}, donde:
- t es una variable de tupla libre
- P es una formula donde pueden aparecer variables de tuplas, libres o ligadas
- las formulas se componen de atomos
Los atomos pueden ser:
- s \in r, s variable de tupla y r relacion
- s[x] OP u[y], con s y u variables de tupla, x e y atributos sobre s y u, OP operador
- s[x] OP c, idem al anterior, pero con c constante
Las formulas se forman a partir de atomos:
- Un atomo es una formula
- Si P es una formula, \not P es una formula
- Si P y Q son formulas, P <logical> Q son formulas
- P(s) es una formula que contiene una variable de tupla s y r es una relacion, entonces: \forall s \in r(P(s)) y \exists s \in r(P(s)) es una formula</logical>
Definir calculo relacional de dominio
Es un lenguaje no procedimental, cuyas consultas son de la forma {<x1,…,xn> | P(<x1,…,xn>)}, donde x1, x2,…,xn son variables de dominio y P es una formula compuesta por atomos, idem a CRT.
- Atomos definidos como en CRT
- Formulas definidas como en CRT
Definir expresion segura
Una expresion de la forma {t | P(t)} es segura si retorna una cantidad finita de valores dentro del dominio de P(t). Por ejemplo, la expresion {t | ~(t \in r)} no es segura ya que el resultado es inifito, dado que hay infinitas tuplas que no pertenecen a r