La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Primitivas de Transformacion Propuesta de procesamiento de instancias utilizando SQL.

Presentaciones similares


Presentación del tema: "Primitivas de Transformacion Propuesta de procesamiento de instancias utilizando SQL."— Transcripción de la presentación:

1 Primitivas de Transformacion Propuesta de procesamiento de instancias utilizando SQL.

2 Introduccion Es una modificacion a la propuesta de Adriana de forma de exponer que las primitivas son expresables con SQL. Se redujo el planteo inicial: No considerando las expresiones en Algebra Relacional correspondientes. No se ataca el tema de la defincion de los esquemas (DDL).

3 P1 - Identity Entrada: Esquema origen: R  Rel Procesamiento: P1 = select * from R Es necesario tener una sentencia SQL para esto ?

4 P2 - Data Filter Entrada: Esquema origen: R(A 1,..., A n )  Rel Conjunto de atributos a filtrar: X  {A 1,..., A n } Pre-procesamiento: A’ = {A’ 1,..., A’ m } = {A 1,..., A n } - X Procesamiento: P2 = select A’ 1,..., A’ m from R

5 P3 - Temporalization Entrada: Esquema origen: R  Rel Valor de tiempo: t  Time Procesamiento: P2 = select *, t from R

6 P4.1 - Version Digits Entrada: Esquema origen: R(A 1,..., A n )  Rel / A 1  X  Att k (R) Numero de versión: n  String. Procesamiento (1) : P4.1 = select n || A 1,..., A n from R

7 P4.2 - Key Extension Entrada: Esquema origen: R  Rel Procesamiento: P1 = select * from R

8 P5 - Foreing Key Update Entrada: Esquema origen: R(A 1,..., A n )  Rel Esquema de la clave foránea: T(B 1,..., B m )  Rel Antigua clave foránea: X  {A 1,..., A n } Nueva clave foránea: Y  {B 1,..., B m } Esquema de correspondencias: S(C 1,..., C i )  Rel, {C 1,..., C i } = (X U Y) Pre-procesamiento: V = {V 1, …, V j } / V = Y U ({A 1,..., A n } – X) Procesamiento: P5 = select V 1, …, V j from R, S where R.X = S.X

9 P6.1 - DD-Ading 1-1 Entrada: Esquema origen: R(A 1,..., A n )  Rel Función de calculo: f(X) / X  {A 1,..., A n } Procesamiento: P6.1 = select *, f(X) from R

10 P6.2 - DD-Ading N-1 Entrada: Esquemas origen: R(A 1,..., A n ), R 1 (A’ 1,..., A’ n’ ),..., R n (A n 1,..., A n n n )  Rel Función de calculo: f(X) / X  ({A 1,..., A n } U {A’ 1,..., A’ n’ } U... U {A n 1,..., A n n n }) Atributos de Join: Y  {A 1,..., A n }  Y’  {A’ 1,..., A’ n’ }  …  Y n  {A n 1,..., A n n n } Procesamiento: P6.2 = select A 1,..., A n, f(X) from R, R 1, R 2, …, R n where R.Y = R 1.Y’ and R 1.Y’ = R 2.Y 2 and … and R (n-1).Y (n-1) = R n.Y n

11 P6.3 - DD-Ading N-N Entrada: Esquemas origen: R(A 1,..., A n ), R 1 (A’ 1,..., A’ n’ ),..., R n (A n 1,..., A n n n )  Rel Expresión de agregación: e(X) / X  ({A’ 1,..., A’ n’ } U... U {A n 1,..., A n n n }) Atributos de Join: Y  {A 1,..., A n }  Y’  {A’ 1,..., A’ n’ }  …  Y n  {A n 1,..., A n n n } Atributos de agregación: Z  ({A’ 1,..., A’ n’ } U... U {A m 1,..., A m n n }) Procesamiento: P6.3 = select A 1,..., A n, e(X) from R, R 1, R 2, …, R n where R.Y = R 1.Y’ and R 1.Y’ = R 2.Y 2 and … and R (n-1).Y (n-1) = R n.Y n group by A 1,..., A n, Z

12 P7 - Atribute Adding Entrada: Esquema origen: R  Rel Valores de los atributos a agregar: {b 1,..., b n } Procesamiento: P7 = select *, b 1,..., b n from R

13 P8 - Hierarchy Roll Up Entrada: Esquemas origen: R 1 (A 1,..., A n )  Rel M /  A  {A 1,..., A n }  A  Att FK (R 1, R 2 ) R 2 (B 1,..., B n’ )  Rel J / A  {B 1,..., B n’ }  A  Att K (R 2 ) Atributos de medida: Z = {Z 1, …, Z k } = Att M (R 1 ), Z  {A 1,..., A n } Agregaciones de los atributos: {e 1 (Z 1 ), …, e k (Z k )} Nivel de la jerarquía: B / B  {B 1,..., B n’ }  B  Att D (R 2 ) Atributos que por su granularidad salen de R 1 : X / X  {A 1,..., A n }  X  (Att D (R 1 ) U Att M (R 1 ))

14 P8 - Hierarchy Roll Up (II) Atributos que por su granularidad salen de R 2 : Y / Y  {B 1,..., B n’ }  Y  Att D (R 2 ) Indica si genera nueva jerarquía: agg_h  Bolean Pre-procesamiento: V= {V 1, …, V m } / V = ((({A 1,..., A n } – A) U B) – X) – Z V’= {V’ 1, …, V’ m’ } / V’ = {B 1,..., B n’ } – Y Procesamiento: P8 = select V 1, …, V m, e 1 (Z 1 ), …, e k (Z k ) from R 1, R 2 where R 1.A = R 2.A group by V 1, …, V m Si se indica agg_h: P8b = select distinct V’ 1, …, V’ m’ from R 2

15 P9 - Aggregate Generation Entrada: Esquemas origen: R(A 1,..., A n )  Rel M Atributos de medida: Z = {Z 1, …, Z k } = Att M (R), Z  {A 1,..., A n } Agregaciones de los atributos: {e 1 (Z 1 ), …, e k (Z k )} Atributos que salen de R: X / X  {A 1,..., A n }  X  (Att D (R) U Att M (R)) Pre-procesamiento: V = {V 1, …, V m } / V = ({A 1,..., A n } – X) – Z Procesamiento: P9 = select V 1, …, V m, e 1 (Z 1 ), …, e k (Z k ) from R group by V 1, …, V m

16 P10 - Data Array Creation Entrada: Esquema origen: R(A 1,..., A n ) Atributo de valores predefinidos: A  {A 1,..., A n } Expresión agregación: e(A) Pre-procesamiento: V = {V 1, …, V m } / V = select distinct A from R B = {B 1, …, B p } = Att M (R) N = { N ij / N ij = “V i ” || “_” || “B j ”, i=1..m, j=1..p} K = {K 1, …, K n-1 } = {A 1,..., A n } – B – {A}

17 P10 - Data Array Creation (II) Procesamiento: T 1 = select K 1, …, K n-1, e(B 1 ) as N 11, …, e(B p ) as N p1 from R where A = V 1 group by K 1, …, K n-1 … T m = select K 1, …, K n-1, e(B 1 ) as N 1m, …, e(B p ) as N pm from R where A = V m group by K 1, …, K n-1 P10 = select K 1, …, K n-1, N 11, …, N pm from T 1, …, T m where T 1.K=T 2.K and…and T m-1.K=T m.K

18 P11.1 - Vertical Partition Entrada: Esquema origen: R  Rel Atributos que nunca cambian: Y  Att(R) Atributos que algunas veces cambian: Z  Att(R), Z  Y =  Atributos que cambian muchas veces: W  Att(R), W  Y =   W  Z =  Pre-procesamiento: Y’ = {Y’ 1, …, Y’ n’ } / Y’ = Att K (R)  Y Z’ = {Z’ 1, …, Z’ n’ } / Z’ = Att K (R)  Z W’ = {W’ 1, …, W’ n’ } / W’ = Att K (R)  W

19 P11.1 - Vertical Partition (II) Procesamiento: P11.1.1 = select Y’ 1, …, Y’ n’ from R P11.1.2 = select Z’ 1, …, Z’ n’’ from R P11.1.3 = select W’ 1, …, W’ n’’’ from R

20 P11.2 - Horizontal Partition Entrada: Esquema origen: R  Rel Condición de Historizacion: c(X) / X  Att(R) Procesamiento: P11.2.1 = select * from R where c(X) P11.2.2 = select * from R where not(c(X))

21 P12.1 - De-Normalized Hierarchy Generation Entrada: Esquemas origen: R 1,..., R n  Rel Atributos de la Jerarquía: J = {J 1, …, J m } Clave de la Jerarquía: k  {J 1, …, J m } Pre-procesamiento: S’ = {S’ 1, …, S’ n’ } = (Att(R 1 ) – J)  k … S n = {S’ 1, …, S’ n n } = (Att(R n ) – J)  k s i(i+1) = Att(R i )  J  Att(R i+1 ), i=1..(n-1)

22 P12.1 - De-Normalized Hierarchy Generation (II) Procesamiento: P13.0 = select distinct J 1, …, J m from R 1, …, R n where R 1.s 12 = R 2.s 12 and … and R (n-1).s (n-1)n = R n.s (n-1)n P13.1 = select S’ 1, …, S’ n’ from R 1, P13.0 where R 1.k = P13.0.k … P13.n = select S’ 1, …, S’ n n from R n, P13.0 where R 1.k = P13.0.k

23 P12.2 - Snowflake Hierarchy Generation Entrada: Esquemas origen: R 1,..., R n  Rel Conjunto ordenado de atributos de la Jerarquía: J = {J 1, …, J m } Clave de la Jerarquía: k  {J 1, …, J m } Pre-procesamiento: S’ = {S’ 1, …, S’ n’ } = (Att(R 1 ) – J)  k … S n = {S’ 1, …, S’ n n } = (Att(R n ) – J)  k s i(i+1) = Att(R i )  J  Att(R i+1 ), i=1..(n-1)

24 P12.2 - Snowflake Hierarchy Generation (II) Procesamiento: T1 = select distinct J 1, …, J m from R 1, …, R n where R 1.s 12 = R 2.s 12 and … and R (n-1).s (n-1)n = R n.s (n-1)n P13.J1 = select distinct J 1, J 2 from R 1, …, R n where R 1.s 12 = R 2.s 12 and … and R (n-1).s (n-1)n = R n.s (n-1)n … P13.J(m-1) = select distinct J (m-1), J m from R 1, …, R n where R 1.s 12 = R 2.s 12 and … and R (n-1).s (n-1)n = R n.s (n-1)n P13.1 = select S’ 1, …, S’ n’ from R 1, T1 where R 1.k = T1.k … P13.n = select S’ 1, …, S’ n n from R n, T1 where R 1.k = T1.k

25 P12.3 - Free Decomposition – Hierarchy Generation Entrada: Esquemas origen: R 1,..., R n  Rel Conjunto ordenado de atributos de la Jerarquía: J = {J 1, …, J m } Descomposición de la Jerarquía: D = {D i / D i = {J i 1,..., J i q i}  J, i=1..p} Clave de la Jerarquía: k  {J 1, …, J m } Pre-procesamiento: S’ = {S’ 1, …, S’ n’ } = (Att(R 1 ) – J)  k … S n = {S’ 1, …, S’ n n} = (Att(R n ) – J)  k s i(i+1) = Att(R i )  J  Att(R i+1 ), i=1..(n-1)

26 P12.3 - Free Decomposition – Hierarchy Generation (II) Procesamiento: T1 = select distinct J 1, …, J m from R 1, …, R n where R 1.s 12 = R 2.s 12 and … and R (n-1).s (n-1)n = R n.s (n-1)n P13.J1 = select distinct J’ 1,..., J’ q’ from R 1, …, R n where R 1.s 12 = R 2.s 12 and … and R (n-1).s (n-1)n = R n.s (n-1)n … P13.Jp = select distinct J p 1,..., J p q p from R 1, …, R n where R 1.s 12 = R 2.s 12 and … and R (n-1).s (n-1)n = R n.s (n-1)n P13.1 = select S’ 1, …, S’ n’ from R 1, T1 where R 1.k = T1.k … P13.n = select S’ 1, …, S’ n n from R n, T1 where R 1.k = T1.k

27 P13 - Minidimension Break Off Entrada: Esquema origen: R  Rel Función de clave: f Atributos de la mini dimensión: X = {X 1,..., X n }  Att(R) Pre-procesamiento: {R’ 1,..., R’ m } = Att(R) - X Procesamiento: T1 = select f as F, * from R P13.1 = select F, X 1,..., X n from T1 P13.2 = select F, R’ 1,..., R’ m from T1

28 P14 - New Dimension Crossing Entrada: Esquema origen: R 1, R 2  Rel Atributos de Join: A, A  Att(R 1 ), A  Att(R 2 ) Atributos que se excluyen de R 1 :Y 1  Att(R 1 ) Atributos que se excluyen de R 2 :Y 2  Att(R 2 ) Pre-procesamiento: Y’ 1 = {y’ 1,..., y’ n } = Att(R 1 ) – Y 1 Y’ 2 = {y’’ 1,..., y’’ m } = Att(R 2 ) – Y 2 Procesamiento: P14 = select distinct y’ 1,..., y’ n, y’’ 1,..., y’’ m from R 1, R 2 where R 1.A = R 2.A

29 Posibles lineas de trabajo Definicion mas formal de la semantica de las primitivas. Tentativa de implementacion de carga por cada primitiva. Completar el trabajo sobre Algebra Relacional. Encarar el tema de propiedades de las primitivas. Encarar el tema sobre DDL Lenguaje para expresar esto ?

30 Dudas que surgieron Cuando se define mal la aplicación de una primitiva y por ejemplo se pierde la clave primaria que pasa ? Esto se asume como un error del diseñador y no se verifica el error ? O se imponen restricciones que se verifican el definir la primitiva que llevan a que estos errores no se cometan ?. Esta alternativa tiene el aspecto importante de que impacta el diseño. Existe la sospecha de que unas primitivas se pueden definir en funcion de las otras

31 Conclusiones Todas las primitivas expuestas son expresables utilizando unicamente SQL, si bien es necesario cierto pre- procesamiento y los datos son parametricos en los esquemas de entrada. Hay algunas lineas de trabajo posible, habria que estudiar como atacarlas.


Descargar ppt "Primitivas de Transformacion Propuesta de procesamiento de instancias utilizando SQL."

Presentaciones similares


Anuncios Google