Primitivas de Transformacion Propuesta de procesamiento de instancias utilizando SQL.

Slides:



Advertisements
Presentaciones similares
Las aplicaciones requieren datos persistentes
Advertisements

SQL Sigla del nombre “Structured Query Language”.
integridad referencial
Repaso DBD!!! (Es ahora o nunca)
Rocío Contreras Águila Primer Semestre 2010
Teórico: Modelo Relacional
SQL G r u p o
Modelo de Datos Unidad II.
INTELIGENCIA ARTIFICIAL
Maestría en Bioinformática Bases de Datos y Sistemas de Información SQL: DML Ing. Alfonso Vicente, PMP
Lenguaje de consulta de Hibernate
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
EL LENGUAJE ESTÁNDAR SQL
DATAWAREHOUSE.
Unidad 3 Tema “Transformacion Equivalentes”
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Lenguaje Estructurado de Consultas (Structured Query Language – SQL)
OPERACIONES DE RECUPERACIÓN. WHERE ciudad =‘Las Palmas’; de los suministradores Obtener el código y la situación de Las Palmas SELECT sn, situacion FROM.
Diseño de Bases de Datos Distribuidas (1era Parte)
MySQL M.C. Pedro Bello López.
Tercera Parte - Reflexiones sobre el estado actual
SQL Lenguaje de consulta estructurado
SQL Básico Prof. Nelliud D. Torres.
Análisis dimensional Aplicaciones del Análisis de Datos: –Formular queries –Extraer datos aggregados –Analizar resultados –Visualizar resultados El conjunto.
SQL Structured Query Language
SQL: Lenguaje de Interrogación Estructurado
1 InCo - Facultad de Ingenieria Objetivo de esta presentación Contexto –Tomar el trabajo de la tesis de Verónika como punto de partida para proponer un.
Consulta Típica en OLAP
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Juan Alvites 27/04/2015 INTRODUCCIÓN A LA INGENIERÍA DE SISTEMAS Semana 6 Alvites Huamaní Juan.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
Elaborado por: GCRM Institución Gabriel García Márquez.
SQL: Lenguaje de Interrogación Estructurado. Vistas Declaración de vista CREATE VIEW ( ) AS SELECT... Semántica Tabla virtual cuyo contenido es el resultado.
Consultas SQL (Base de Datos)
REFERENCIA DIRECTA INSEGURA A OBJETOS
INSTRUCCIONES Elaboración de la Presentación:
Introducción a Bases de Datos en Microsoft Access Programación de Computadoras 2 Sección: P.
LENGUAJE SQL.
FRAGMENTACION EN ORACLE
Expresiones algebraicas equivalentes
PROCEDIMIENTOS ALMACENADOS Es una consulta almacenada en la base de datos en un servidor. Los P.A. Mejoran el Rendimiento Disminuyen el tráfico. Los P.A.
Más ejemplos en SQL Francisco Moreno. S sn snombre situacion ciudad S1 Salazar 20 Londres S2 Jaramillo 10 París S3 Bernal30 París S4 Caicedo 20 Londres.
Lenguaje Estructurado de Consulta
Instrucciones para crear tablas My SQL. A nivel teórico, existen dos lenguajes para el manejo de bases de datos: DDL (Data Definition Language) Lenguaje.
SQL Sigla del nombre “Structured Query Language”.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 0 Introducción.
Sample-Based Quality Estimation of Query Results in Relational Database Environments Donald P. Ballou InduShobha N. Chengalur-Smith Richard Y. Wang.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
INSTRUCCIONES Elaboración de la Presentación:
INSTRUCCIONES Elaboración de la Presentación: 1.- COMPLETA en LA PRESENTACION EL TEMA SQL 2.- En el penúltimo punto, DE ACUERDO AL EXAMEN QUE TE TOCO EN.
SQL Lenguaje Estructurado de Consulta MATERIA: diseñar sistemas de información ALUMNO: sarmiento flores Liliana Guadalupe GRUPO: 4° “A” TURNO: matutino.
 La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos.
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
JOIN EN MYSQL Bueno en esta presentación mostrare cosas acerca de los usos de la sentencia JOIN en mysql , mediante esta presentación planeo mostrar los.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Comandos DDL Los comandos DDL son las siglas de Data Definition Language, y se corresponde con el conjunto de órdenes que permiten definir las estructuras.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Unidad 6. Tema 4. Lenguaje de consultas SQL
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
INTEGRACION DE LAS TECNOLOGIAS DE LA INFORMACION Y COMUNICACION Implementación de base de datos (Lenguaje de manipulación de datos) Ing. Linda Masias Morales.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Paul Leger Ejercicios En SQL Paul Leger
SQL: structured Query Language
Transcripción de la presentación:

Primitivas de Transformacion Propuesta de procesamiento de instancias utilizando SQL.

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

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

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

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

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

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

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

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

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

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

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

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 ))

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

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

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}

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

P 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

P Vertical Partition (II) Procesamiento: P = select Y’ 1, …, Y’ n’ from R P = select Z’ 1, …, Z’ n’’ from R P = select W’ 1, …, W’ n’’’ from R

P Horizontal Partition Entrada: Esquema origen: R  Rel Condición de Historizacion: c(X) / X  Att(R) Procesamiento: P = select * from R where c(X) P = select * from R where not(c(X))

P 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)

P 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

P 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)

P 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

P 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)

P 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

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

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

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 ?

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

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.