• No se han encontrado resultados

Bases de Datos I. Cursada Clase 4: Álgebra relacional y de bolsas Información ausente Claves BASES DE DATOS I

N/A
N/A
Protected

Academic year: 2021

Share "Bases de Datos I. Cursada Clase 4: Álgebra relacional y de bolsas Información ausente Claves BASES DE DATOS I"

Copied!
11
0
0

Texto completo

(1)

Bases de Datos I

Cursada 2008

Clase 4:

Álgebra relacional y de bolsas

Información ausente

Claves

Facultad de Ciencias Exactas Universidad Nac. Centro de la Pcia. de Bs. As.

BASES DE DATOS I

ALGEBRA RELACIONAL

•Formalismo para crear nuevas relaciones a partir de otras existentes. •Modelo matemático formado por:

Operandos ---Variables o valores;

Operadores ---Símbolos que denotan procedimientos que construyen nuevos valores a partir de otros dados.

Álgebra Relacionales un álgebra cuyos operandos son relaciones y operadores que están diseñados para realizar las operaciones básicas sobre relaciones.

Cinco operadores:

Unión, Diferencia, Selección, Proyección, Producto Cartesiano Operadores Auxiliares:

Intersección, joins (natural,equi-join, theta join), división, renombrado: ρ

BASES DE DATOS I ALGEBRA RELACIONAL

Unión: R UNION S / R ∪∪∪∪S Obtiene una relación cuyas tuplas son las que se encuentran en R, o en S, o en ambas relaciones a la vez. Para poder realizar esta operación, R y S deben ser compatibles para la unión.

Dos relaciones son compatibles para la unión si ambas tienen la misma cabecera, es decir, si tienen el mismo número de atributos, se llaman igual

y se encuentran definidos sobre los mismos dominios tienen el mismo esquema y dominio de definición.

Diferencia: R MINUS S / R-S Obtiene una relación que tiene las tuplas que se encuentran en R y no se encuentran en S. Para poder realizar esta operación, R y S deben ser compatibles para la unión. Intersección: R INTERSECT S / R ∩∩∩∩S Obtiene una relación que contiene las tuplas de R que también se encuentran en S. Para poder

(2)

ALGEBRA RELACIONAL Unión R1 ∪R2 Ejemplo EmpleadosActivos∪EmpleadosRetirados Diferencia R1 – R2 Ejemplo TodosLosEmpleados – EmpleadosRetirados Intersección R1 ∩R2 = R1 – (R1 – R2) Ejemplo EmpleadosAfiliados∩EmpleadosRetirados BASES DE DATOS I

Selección: R WHERE condición / σσσσcondición(R) Obtiene las tuplas de R que cumplen la condición. Condiciónes una comparación en la que aparece al menos un atributo de R; puede ser una combinación booleana de varias de estas comparaciones.

Proyección: R [ai, ..., ak] /ππππai, ..., ak(R) Obtiene una relación que contiene un subconjunto de columnas de R, extrayendo los valores de los atributos especificados y eliminando tuplas duplicadas.

Producto cartesiano: R TIMES S / R X S Obtiene una relación cuyas tuplas están formadas por la concatenación de todas las tuplas de R con todas las tuplas de S.

ALGEBRA RELACIONAL

BASES DE DATOS I

Producto CartesianoR1 ×R2 Ejemplo:

Empleado×Dependiente Utilizada principalmente en ensambles

Renombrado: cambia el esquema, no la extensión de la relación. ρB1,…,Bn(R)

Ejemplo:

ρApellidoAp, NroSocioNsoc(Empleado) Esquema obtenido:

Empleado(Ap, NSoc) ALGEBRA RELACIONAL

(3)

Join(concatenación o ensamble): R JOIN S / R S Obtiene una relación cuyas tuplas son todas las tuplas de R concatenadas con todas las tuplas de S que en los atributos comunes tienen los mismos valores. Estos atributos comunes aparecen una sola vez en el resultado.

Outer—Join a izquierda o derecha: R(+) JOIN S/ R Sy R

JOIN S(+) / R S El outer—join a izquierda (respectivamente a derecha) es un ensamble en el que las tuplas de R

(respectivamente S) que no tienen valores en común con ninguna tupla de S (respectivamente R), también aparecen en el resultado. Cuando en ambas relaciones hay tuplas que no se pueden concatenar y se desea que en el resultado aparezcan todas estas tuplas, tanto las de una relación como las de la otra, se utiliza el outer—join completo: R(+) JOIN S(+) /

ALGEBRA RELACIONAL

BASES DE DATOS I

Ensamble General:ensamble que involucra un predicado R1 qR2 = σq(R1 ×R2)

Ensamble NaturalR1 R2 = Πesq(R1)Uesq(R2)-(esq(R1)∩esq(R2))(

σ

C(R1 ×R2))

La selección

σ

Cchequea la igualdad de los atributos comunes y la

proyección elimina los duplicados

Equijoin: ensamble general donde q es una igualdad R1 A=BR2 =

σ

A=B(R1 ×R2)

ALGEBRA RELACIONAL

BASES DE DATOS I

División: R DIVIDEBY S / R ÷÷÷÷S

Suponiendo que la cabecera de R es el conjunto de atributos A y la cabecera de S es el conjunto de atributos B, tales que B es un subconjunto de A. Si consideramos C como el subconjunto de los atributos de A que no están en B (A - B), la división obtiene una relación cuya cabecera es el conjunto de atributos C y que contiene las tuplas de R que están acompañadas de todas las tuplas de S.

(4)

División: útil para consultas que incluyan la frase “para todos”. Sean r y srelaciones con esq(S) ⊆esq(R)

esq(R)= (A1, …, Am, B1, …, Bn) y esq(S)= (B1, …, Bn) esq(R÷S) = esq(R)– esq(S) = (A1, …, Am)

r ÷s= { t| t ∈ ∏esq(R)- esq(S)(r) ∧ ∀u s ( t.ur ) } En términos de las operaciones primitivas del álgebra relacional:

temp1 ← ∏esq(R)-esq(S)(r)

temp2 ← ∏esq(R)-esq(S)((temp1 x s) –r) r÷s= temp1 –temp2

ALGEBRA RELACIONAL

Lasfunciones de agregación toman un conj. de valores y devuelven un valor único:

avg: valor promedio min: valor mínimo max: valor máximo sum: suma de valores count: número de valores

Operaciones de agregado en álgebra relacional

G1, G2, …, Gn, F1( A1), F2( A2),…, Fn( An) (E) Ees cualquier expresión del álgebra

G1, G2 …, Gn es una lista de atributos sobre los cuales se agrupa (puede ser vacío)

CadaFi es una función de agregación CadaAi es un nombre de atributo

BASES DE DATOS I

ALGEBRA RELACIONAL

SQL permite ‘relaciones’ con tuplas repetidas

SQL no se formaliza con álgebra relacional sino de bolsas: Una bolsa (bag)es un conjunto con elementos repetidos. Todas las operaciones deben ser redefinidas para bolsas:

{a,b,b,c} ∪{a,b,b,b,e,f,f} = {a,a,b,b,b,b,b,c,e,f,f} {a,b,b,b,c,c} – {b,c,c,c,d} = {a,b,b}

Las selecciones, ensambles y productos cartesianos preservan las repeticiones y las proyecciones no eliminan duplicados.

Los motores de BD relacionales trabajan con bolsas, no con relaciones! BASES DE DATOS I

(5)

Unión aditiva de bolsasR Scada elemento repetido aparece tantas veces como la suma de apariciones en ambas bolsas.

Ejemplo: {1, 2, 3, 1} {1, 1, 2, 3, 4, 1} = {1, 1, 1, 1, 1, 2, 2, 3, 3, 4}

contar(x, R S) = contar(x, R) + contar(x, S)

Intersección mínima de bolsasR ∩∩∩∩minSun elemento

duplicado aparece tantas veces como el mínimo de apariciones en una de las bolsas.

Ejemplo: {1,2,3,3,1} ∩∩∩∩min{1, 1, 2, 3, 4, 1} = {1, 1, 2, 3}

contar(x, R ∩∩∩∩minS) = min(contar(x, R), contar(x, S))

ALGEBRA de BOLSAS

Diferencia de bolsas (monus) R Sun elemento

duplicado aparece tantas veces como la diferencia de apariciones, pero nunca menos de 0(cero) veces. Ejemplo: {1,2,1,3} {1,2,3,3} = {1}.

contar(x, R S) = contar(x, R) - contar(x, S) o bien 0 si contar(x, R) < contar(x, S)

Producto cartesiano de dos bolsasR ×S obtiene pares

de tuplas, de manera tal que se preservan las repeticiones.

contar((r, s), R ×S) = contar(r, R)* contar(s, S)

Eliminación de duplicadosε(B)

contar(x, ε(B)) = 1; o 0 si x no está en B BASES DE DATOS I

ALGEBRA de BOLSAS: Operadores

Selección de bolsasσp(B) filtra las tuplas preservando

los duplicados

Ejemplo σx<2{1, 1, 1, 1, 1, 2, 2, 3, 3, 4}= {1, 1, 1, 1, 1}

Proyección de una bolsaπA(B) quita columnas que no

están en A, preservando los duplicados | B | = | πA(B) | Ejemplo: πx{<1,a>,<1,b>,<1,c>,<2,m>,<2,m>,<3,a>,

<3,b>,<4,t>}={1,1,1,2,2,3,3,4}

Unión Máxima de dos bolsasR ∪maxS las tuplas

repetidas aparecen tantas veces como la cantidad máxima de repeticiones en una u otra bolsa.

contar(x, R∪∪∪∪maxS) = max(contar(x, R), contar(x, S)) BASES DE DATOS I

(6)

Algunas leyes del álgebra siguen teniendo validez: Union e intersección son conmutativas y asociativas.

Pero otras no se cumplen en el caso de las bolsas: Ejemplo

R∩(S∪T) ≡(R∩S) ∪(R∩T) se cumple para conjuntos solamente.

Sean R, S, y Tbolsas con el elemento {1}. R∩(S∪T) = {1}.

(R∩S) ∪(R∩T) = {1,1} ≠{1}. ALGEBRA de BOLSAS: Operadores

Operaciones en conjuntos

UNION ≡ U INTERSECT ≡∩ EXCEPT ≡

-Operaciones en bolsas

UNION ALL ≡

INTERSECT ALL ≡∩min

EXCEPT ALL ≡

DISTINCT ≡

ε(B)

SELECT A1,…, A2 …≡

π

A

(B)

Duplicate Counting:

BASES DE DATOS I

ALGEBRA de BOLSAS: Operadores

La ausenciade valores para uno o más atributos de una tupla se denota con null

null no es un valor, es la ausencia de valor !! (noción aceptada por SQL)

Nullsignifica valor desconocido o no existente … pero en realidad hay varias interpretaciones más

BASES DE DATOS I

(7)

Tipos de información faltante:

Atributos inaplicables(ej. Comisión para un empleado que realiza ventas)

Aplicable pero desconocido(ej. Sueldo para un empleado que aún no lo tiene asignado, aunque es obligatorio)

Valor no existente(ej. NroPasaporte para quien no lo tiene) Indefinido(ej. NotaPromedio para quien no ha rendido finales) Valor inválido(ej. un dato evidentemente erróneo,

AñoNacimiento >=2008)

Valor no provisto (ej. NoSabe/NoContesta)

Valor resultante es el conj. vacío(ej. Caracteres de relleno en el OUTER-JOIN o en OUTER-UNION)

VALORES NULOS

BASES DE DATOS I

Cada tipo de nulo tiene sus propia semántica, características y operatoria

antinatural utilizar el mismo tratamiento para todos los casos mal uso potencial (ej. la suma Comisión + Sueldo para un

empleado que no vende dará un valor desconocido) si la ausencia de un valor depende de la ausencia de otro

hay que definir un null nuevo ¡! Si depende de dos otro null más ¡!

VALORES NULOS

BASES DE DATOS I

VALORES NULOS

Para interpretar la existencia de nulos LÓGICA DE TRES VALORES

VERDADERO (TRUE) FALSO (FALSE) DESCONOCIDO (UNKNOWN)

(8)

VALORES NULOS

Pero haría falta un nuevo operador para manejar la ‘incertidumbre’

ES_DESC (MAYBE)

Es una función que evalúa enVERDADERO sólo cuando su entrada esDESCONOCIDO, yFALSO en los otros casos Ejemplo:

“Obtener los empleados que son vendedores, nacidos antes de F1, con sueldo mayor a 1000”

BASES DE DATOS I

VALORES NULOS

? ? ? …… 1005 <F1 ? …… 1200 ? Vend …… ? <F1 Vend …… 1340 ? ? …… ? <F1 ? …… ? ? Vend ….. Sueldo FechaNac Oficio IdEmpl

Cualquiera de estas tuplas pertenece potencialmente a la respuesta !!

BASES DE DATOS I

VALORES NULOS

Si existiese la operaciónES_DESC, se podría escribir:

SELECT …. WHERE ES_DESC (Oficio = ‘Vend’ AND FechaNac < F1 AND Sueldo > 1000);

SiES_DESC no existe SELECT …. WHERE

(Oficio = ‘Vend’ AND FechaNac IS NULL AND Sueldo IS NULL) OR (Oficio = ‘Vend’ AND FechaNac < F1 AND Sueldo IS NULL) OR (Oficio IS NULL AND FechaNac < F1 AND Sueldo >1000) OR ….;

Deben establecerse las 7 configuraciones con información faltante.

(9)

VALORES NULOS

ALGUNAS CONSIDERACIONES

Un dominio se define como ‘el conjunto de valores válidos’ … un valor desconocido es válido?

Si fuera válido, una restricción de dominios nunca fallaría ¡! VεDi sería VERDADERO si V es uno de los valores válidos, pero también si no, pues no se sabe si no podría ser igual al valor que representa DESCONOCIDO.

Pero los dominios no deberían incluir desconocidos, pues sino una relación tampoco sería tal, ya que no se podría afirmar

R⊆D1xD2X…xDn

BASES DE DATOS I

VALORES NULOS

Que efecto tienen sobre las operaciones relacionales? Selección se requiere que la condición evalúe en VERDADERO, no en FALSO ni DESCONOCIDO. Proyección implica la eliminación de duplicados, pero null<>null, entonces dos tuplas aparentemente iguales no podrían ser eliminadas!! (la misma tupla no sería igual a si misma!!) Unión e Intersección ídem

Restricciones de integridad predicados que no deben evaluar en FALSO… sin embargo si evalúa en DESCONOCIDO no podría asegurarse que la restricción no se satisface!!

Para el WHERE, DESCONOCIDO se interpreta FALSO, para las restricciones,se interpreta VERDADERO !!

BASES DE DATOS I

VALORES NULOS

Para ORDER BY, null es el ‘mayor’ Para DISTINCT null es duplicado de null

Para funciones de agregado, si cada ítem de datos en una columna es null, SUM(), AVG(), MIN(), MAX() devuelven null, COUNT() devuelve 0

COUNT(*) funciona sin depender de los valores de una columna.

(10)

VALORES NULOS

CONSECUENCIAS:

Las siguientes expresiones no se preservan en caso de participar nulls x=x x-x=0 x OR NOT x x*0=0 R R = R

EJEMPLO:

Sean las tablas DEPTO (IdDEPTO) y EMPL (IdEmpl, IdDepto), pobladas según DEPTO = {<D2>} y EMPL = {<E1,null>}

La condición EMPL.IdDepto = DEPTO.IdDepto AND EMPL.IdDepto = ‘D1’ (1) DESCONOCIDO AND DESCONOCIDO DESCONOCIDO

BASES DE DATOS I

VALORES NULOS

Si la base de datos tiene un optimizador, verá lo siguiente: a=b AND a=c, de lo que se infiere que b=c

La condición puede completarse artificialmente a

EMPL.IdDepto = DEPTO.IdDepto AND EMPL.IdDepto = ‘D1’ AND DEPTO.IdDepto = ‘D1’

Que evalúa

DESCONOCIDO AND DESCONOCIDO AND FALSO FALSO¡! En el mundo real, el empleado pertenece a un DEPTO, que puede ser D1u otro.

Si es D1, (1) FALSO AND DESCONOCIDO FALSO Si no es D1, también evalúa en FALSO

sin importar el valor null, en el mundo real siempre resulta FALSO

BASES DE DATOS I

cómo puede ser que lo que es verdadero en el mundo real y lo que es verdadero en la base de datos sean cosas distintas ¡!??

La lógica de tres valores no parece interpretar

adecuadamente lo que ocurre en el mundo real, aunque

está implementada en la mayoría de los sistemas

actuales.

Cómo evitar los nulos?

proyecciones y selecciones

(analizando atributos y relaciones inaplicables)

6FN ??

(11)

CLAVES INTELIGENTES Y CLAVES SURROGANTES

Clave inteligente

Denominada de esta forma por la semántica que conlleva (concepto relacionado con su estructura, por ejemplo NroMatricAlumno formado por tres partes)

Doble rol: identifican y contienen información y semántica Clave Surrogante (SK)

Es una columna que no está definida por requerimientos del negocio sino que son agregadas con el propósito de identificación Único rol: indican solamente la presencia de una entidad, pero no contienen información ni semántica

Clave natural

Columna o columnas elegidas por la organización para identificar registros, lo suficientemente estables como para ser elegidas como identificadores primarios

BASES DE DATOS I

CLAVES SURROGANTES

Asociadas frecuentemente a identificadores de tuplas (tids) que relación tienen con los identificadores de entidades SK? • NO siempre existe la correspondencia tupla-entidad (jerarquías, proyecciones)

•tidstienen que ver con eficiencia (accesos rápidos) porque en la mayoría de los sistemas actuales hay una correspondencia casi directa entre tuplas y almacenamiento físico

•tidsson ocultas al usuario, las SKNO una tidno es una columna de una tabla, una SKSI

•tids son conceptos físicos,SKs son conceptos lógicos

•tids no necesitan ser actualizadas, SKpodrían ser modificadas y reasignadas (inconvenientes)

BASES DE DATOS I

CLAVES SURROGANTES

• involucran un único atributo

• la inserción de una nueva entidad provoca la generación de una SK única, nueva y que no será reutilizada

• habitualmente generadas en forma automática por el sistema • de naturaleza incremental inconvenientes en la generación de índices

• algunos sistemas generan índices para los atributos únicos en forma automática

• la clave inteligente se convierte en alternativa más restricciones para verificar

CUIDADO CON LAS DUPLICACIONES Y LA NULIDAD!! • consultas en SQL más fáciles de escribir, pero pueden requerir más ensambles

Referencias

Documento similar

Tras establecer un programa de trabajo (en el que se fijaban pre- visiones para las reuniones que se pretendían celebrar los posteriores 10 de julio —actual papel de los

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

U-Ranking cuenta con la colaboración del Ministe- rio de Universidades, al permitirnos el acceso al Sistema Integrado de Información Universitaria (SIIU). El SIIU es

El valor agregado 6 del indicador por universidad se pre- senta en una escala de 0 (mínimo valor obtenido por una universidad del sistema en ese indicador) a 100 (correspondiente

El segundo paso es elegir la comunidad autónoma o comunidades que se contemplan como lugares en los que cursar los estudios. Para ello, el usuario debe marcar las elegidas

El segundo paso es elegir la comunidad autónoma o comunidades que se contemplan como lugares en los que cursar los estudios. Para ello, el usuario debe marcar las elegidas