Download arctica-intro-es.pps

Document related concepts

XBase++ wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

H2 (DBMS) wikipedia , lookup

Navicat wikipedia , lookup

Transcript
La Revelación de…
SQL, nuestro amigo – un acercamiento no competitivo
Sumario
•
•
•
•
•
•
•
Introducción a SQL, características
Comparación
Sumario de „Arctica“
Unified-SQL
Universal SQL
Solución Cliente/Servidor
Resumen
November 2007
Alaska Software Inc.
Introducción a SQL
November 2007
Alaska Software Inc.
SQL definiciones
• SQL = Lenguaje Estructurado de Consulta
– Es un conjunto de mandatos que le permite acceder a
una base de datos.
– Es una interfaz estándar para muchos sistemas de bases
de datos relacionales.
– Viene con una estructura de mandatos simple para
definición y manipulación de datos.
– SQL fue intencionalmente hecho para ser usado con
lenguajes de programación.
– SQL no tiene una interfaz de usuario o características de
formateo.
– En SQL Usted especifica qué quiere y no cómo hacerlo.
November 2007
Alaska Software Inc.
SQL en un sentido amplio!
– SQL es percibido como Cliente/Servidor
• Ud. instala un servidor SQL donde sea.
• Ud. Lo accede via ODBC o su API SQL remotamente.
– Las características típicas de un servidor SQL son:
• Administración de Transacciones
• Diccionarios
• Integridad referencial y restricciones
– Los atributos asociados con SQL son:
• Confiabilidad – porque es cliente/servidor
• Performance/Escalabilidad - es un mito!
• Seguridad – porque los datos son accedidos sólo a través del
servidor
November 2007
Alaska Software Inc.
Buceando dentro...
SELECT * FROM CUSTOMER WHERE CITY=‚Berlin‘
Procesador SQL
(toma el mandato SQL y lo transforma)
aSelect := {ALL,{CUSTOMER},{CITY=‚Berlin‘}}
USE CUSTOMER
Planificador
GO TOP
(crea un plan desde la sentencia SQL)DO WHILE !EOF
Optimizador
(controla existencia de indices
y reescribe el plan)
USE CUSTOMER INDEX CITIES
SEEK „Berlin“
DO WHILE City==„Berlin“
AGREGA REGISTRO AL RESULTADO
ENDDO
IF(FIELD->CITY==„Berlin“)
AGREGA REGISTRO AL RESULTADO
ENDDO
Ejecutor
(ejecuta el plan)
Administrador de Almacenamiento
(gerencia las Tablas e Indices)
Cuidado! Esta es una ilustración simplificada. Algunos detalles fueron omitidos - 
November 2007
Alaska Software Inc.
Comparando lenguajes!
* FROM CUSTOMER
WHERE
CITY=‚Berlin‘
Con losSELECT
mandatos
xBase Ud.
expresa
cómo lo quiere.
El qué está „oculto“ en su lógica y estilo de codificación. Su código
depende en todos sus detalles de su modelo de datos.
USE CUSTOMER
GO TOP
DO WHILE !EOF
IF(FIELD->CITY==„Berlin“)
AGREGA REGISTRO AL RESULTADO
ENDDO
USE CUSTOMER INDEX CITIES
SEEK „Berlin“
DO WHILE City==„Berlin“
AGREGA REGISTRO AL RESULTADO
ENDDO
En SQL Ud. expresa qué quiere!
El cómo es determinado
dinámicamente dependiendo de su modelo de datos concreto y su estado.
November 2007
Alaska Software Inc.
Comparando manzanas con...
xBase
SQL
Lenguaje
completo de
características
Administración de
Expresiones del
lenguaje – El Qué
Trabaja en el
Cliente
Limitado al
Servidor
Sin impedancia
discordante
Lenguaje limitado y
optimizado para
administración de
datos
November 2007
Alaska Software Inc.
Xbase++
Todo lo que tiene el
lenguaje xBase
mas:
Modelo OOP,
multihilos,
persistencia de datos
Motores de Bases de
Datos para acceder a
diferentes orígenes de
datos
Apoya
implementación de
soluciones Cliente,
Servidor y Servicios
Lo mejor de ambos mundos!
Xbase++ 2.0
Mandatos de Expresiones
SQL se convierten en
elementos de primera
clase en el lenguaje
¡El Qué!
Objetivos y
metas
de “Arctica”
Extiende el alcance del
lenguaje Xbase++ desde
el cliente al servidor
Provee una solución
cliente/servidor SQL
para cualquier
desarrollador Xbase++
Xbase++ 1.9
November 2007
Alaska Software Inc.
Tecnologías de „Arctica“Execute SQL
Unified-SQL
Juega un papel especial:
• Entiende todas las funciones y mandatos nativos
xBase/ISAM
• Soporta todos los tipos de datos nativos de Xbase++
incluyendo objetos y arreglos
• Soporta a Xbase++ como el lenguaje para los
procedimientos almacenados
• Cumple con las especificaciones SQL 92 y Oracle
November 2007
Alaska Software Inc.
statements against:
Ejecuta instrucciones SQL contra:
• ADS-DatabaseEngine
• ODBC DatabaseSources
• PostgreSQL
Ejecuta instrucciones SQL contra:
• Cualquier Area de Trabajo
• DBF/NTX/CDX/DEL/SDF/…
• Motor de datos ADS
• Origen de Datos ODBC
• Objetos
• Arreglos
• PostgreSQL
Unified-SQL
Pass-
Pass-Through
Through
Unified-SQL
SQL
SQL
Execute SQL
statements against:
Ejecuta instrucciones SQL contra:
• ADS-DatabaseEngine
• ODBC DatabaseSources
• PostgreSQL
„Arctica“
„PostgreSQL“
Server
Juega un papel especial:
• Entiende todas las funciones y mandatos nativos
xBase/ISAM
• Soporta todos los tipos de datos nativos de Xbase++
incluyendo objetos y arreglos
• Soporta a Xbase++ como el lenguaje para los
procedimientos almacenados
• Cumple con las especificaciones SQL 92 y Oracle
November 2007
Alaska Software Inc.
Universal
SQL
Ejecuta instrucciones SQL contra:
• Cualquier Area de Trabajo
• DBF/NTX/CDX/DEL/SDF/…
• Motor de datos ADS
• Origen de Datos ODBC
• Objetos
• Arreglos
• PostgreSQL
PassUnified-SQL
Through
SQL
Unified-SQL
• Los mandatos SQL soportados son:
– Como extensión del lenguaje: SELECT, INSERT, UPDATE y
DELETE
• Características Especiales:
– Adaptación automática de la sintaxis
– Las variables LOCAL y STATIC pueden usarse en mandatos SQL
• De hecho, en Unified-SQL los mandatos son instrucciones
de primera clase en el lenguaje. Veamos...
Tiempo
de
Codificación
November 2007
Alaska Software Inc.
¿Cómo trabaja Unified-SQL?
PassUnified-SQL
Through
SQL
Los mandatos de lenguaje SQL se dividen en un árbol de expresiones
El Runtime de Xbase++ reescribe los elementos del árbol de expresiones como LOCAL/STATICS
o llamadas a funciones empotradas
Los Motores de Bases de Datos reescriben los nodos del árbol de expresiones de acuerdo con
sus propios requerimientos semánticos
Los Motores de Bases de Datos usan el árbol de expresiones para escribir un mandato SQL
conforme con la sintaxis específica del Servidor SQL
El conjunto resultante es un area de trabajo verdadera con todas las caracterísiticas como
navegación, filtros, alcances, acceso a variables de campo, etc
November 2007
Alaska Software Inc.
Unified-SQL
PassUnified-SQL
Through
SQL
• Le permite escribir mandatos SQL para Servidores
SQL remotos en su código fuente.
• El compilador le asiste verificando la sintaxis y
semántica.
• Puede usar variables en sus mandatos SQL sin errores
por truncamiento de cadenas durante la concatenación
como ocurre con otras herramientas de desarrollo.
• Los Conjuntos Resultantes SQL (Resultsets) son
Areas de Trabajo con toda la flexibilidad resultante y la
integración dentro del lenguaje Xbase++
• Con Unified-SQL, SQL se convierte en una parte del
lenguaje Xbase++
• Unified-SQL es apoyado por los Motores de Bases de
Datos ADS, ODBC y PostgreSQL.
November 2007
Alaska Software Inc.
Universal SQL
Pass-
Pass-Through
Through
Unified-SQL
SQL
SQL
Execute SQL
statements against:
Ejecuta instrucciones SQL contra:
• ADS-DatabaseEngine
• ODBC DatabaseSources
• PostgreSQL
„Arctica“
„PostgreSQL“
Server
Juega un papel especial:
• Entiende todas las funciones y mandatos nativos
xBase/ISAM
• Soporta todos los tipos de datos nativos de Xbase++
incluyendo objetos y arreglos
• Soporta a Xbase++ como el lenguaje para los
procedimientos almacenados
• Cumple con las especificaciones SQL 92 y Oracle
November 2007
Alaska Software Inc.
Universal
SQL
Ejecuta instrucciones SQL contra:
• Cualquier Area de Trabajo
• DBF/NTX/CDX/DEL/SDF/…
• Motor de datos ADS
• Origen de Datos ODBC
• Objetos
• Arreglos
• PostgreSQL
Universal SQL
Universal
SQL
• Los mandatos SQL que se soportan son:
– SELECT, INSERT, UPDATE y DELETE
• Las características específicas son:
– Cualquier cosa ejecutada en el lado cliente – es un Motor
empotrado SQL para varios orígenes de datos como Tablas DBF o
Arreglos de Objetos....
– Puede usarse cualquier elemento del lenguaje Xbase++ incluyendo
sus fuciones definidas como usuario u objetos y métodos.
– ¡No-Hay-Límites!
Tiempo
de
Codificación
November 2007
Alaska Software Inc.
el sendero U-SQL
Universal
SQL
U-SQL-SELECT ...
Cláusula Input / FROM:
•Cualquier Area de Trabajo
•DBF/NTX/CDX/DEL/SDF/…
•ADS-Motor de B.D.
•ODBC – Origen de Datos
•Objetos
•Arreglos
•PostgreSQL
•Clases derivadas de IUsqlDataProvider
November 2007
Alaska Software Inc.
Cláusula Output / INTO:
•Transitorio en memoria de trabajo
•Nueva area de trabajo
administrada por cualquier Motor
de Base de Datos
•Arreglos
•Objetos anónimos sencillos
•Arreglo de objetos
¡Máximo Desempeño!
Universal
SQL
– Deja la optimización al modelo de datos, tanto que el
motor de ejecución puede decidir la reutilización de
índices, o inclusive crear otros específicos sobre la
marcha.
– Caché inteligente de datos, de sub-selects conduce a una
dramática reducción de E/S cuando se ejecutan queries
en tablas DBF. Puede compararlo cargando sus tablas en arreglos y
ejecutando sus cálculos en memoria.
– Usted expresa el qué – el cómo se lo deja al Motor SQL
Engine que lleve la adaptación dinámica de la ejecución
de su hardware – Dual-Core, Quad-Core
November 2007
Alaska Software Inc.
Beneficios y posicionamiento
• Unified-SQL
– SQL se vuelve un lenguaje miembro de primera clase, no más barajar
cadenas para construir un mandato SQL.
– Ideal para recuperar un conjunto de informaciones desde un origen de
datos remoto.
– Los conjuntos resultantes son Areas de Trabajo con toda su
integración al lenguaje como variables FIELD, comportamiento
navegacional,...
• Universal SQL
– La mayoría de los desarrolladores de aplicaciones trabajan con
transformaciones de datos y barajando desde el origen de datos a la
interfaz de usuario.
– Con USQL un sencillo mandato declarativo crea un Area de Trabajo
lista para usar, arreglo, objeto o una colección de objetos los cuales
pueden ser utilizados por la interfaz de usuario.
– Los orígenes de datos pueden ser Areas de Trabajo, objetos, arreglos
o su propio Proveedor de Datos, conduciendo al máximo de
flexibilidad en el procesamiento de datos.
– USQL es local, permite aliviar al servidor realizando cálculos
complejos en el lado cliente, lo cual lleva a una mejor distribución de
carga de trabajo.
November 2007
Alaska Software Inc.
!
Hasta ahora hemos hablado sobre
mejoras en la productividad de los
Componentes Xbase++ para
acceso y administración de datos
November 2007
Alaska Software Inc.
?
Hablemos de las futuras
soluciones Cliente/Servidor en
los sitios de sus usuarios
November 2007
Alaska Software Inc.
„Arctica“ como solución Cliente/Servidor
• PostgreSQL Server Version 8.2/8.3
• Un Motor de Base de Datos que puede emular el 100% de
las características de los Motores de Bases de datos
Xbase++ DBF/FOX/CDX/NTX
• Una extensión de los tipos de datos del Servidor
PostgreSQL para comportarse exactamente como
cualquier tipo de datos Xbase++.
• Un asistente de migración para migrar sus tablas DBF
existentes basadas en el modelo de datos del Servidor
PostgreSQL.
• Un Motor Unified-SQL que provee acceso transparente
100% al servidor PostgreSQL.
• Una extensión al lenguaje procedural de PostgreSQL
agregando a Xbase++ como lenguaje de desarrollo de
procedimientos almacenados.
November 2007
Alaska Software Inc.
Feature overview PostgreSQL Server
• Cumple con la totalidad de SQL 92/99
– Cumple con las pruebas ACID, Integridad Referencial, Reglas de Replicación,
Vistas, Gatillos, Unicode, Secuencias, Junturas Externas, Sub-selects,
Procedimientos Almacenados, Soporte Nativo para SSL, Lenguajes
procedurales, MVCC en vez de bloqueo a nivel de fila, Indices Funcionales y
Parciales, autenticación Native Kerberos, Soporte para consultas UNION,
UNION ALL y EXCEPT, Sistema de tipos de datos extensible para tipos de
datos propietarios, definidos por el usuario.
• Características especiales como ser:
– Búsqueda de texto completo incluyendo ranking de resultados de
búsqueda (como google!)
– Datos Geo-Espaciales, puede buscar por clientes domiciliados a 100
km alrededor de un punto dado.
• De hecho hemos evaluado muchas soluciones diferentes de
SQL Server en el mercado y terminamos con PostgreSQL
debido a su reputación, confiabilidad, características y
diseño.
November 2007
Alaska Software Inc.
Veamos...
• Viejo Clipper 87
– aplicación, evolucionada, migrada y extendida con Xbase++.
– Usa los Motores de Bases de Datos FOXCDX y DBFNTX.
• Con una sóla línea de código la aplicación usa al Servidor
SQL Server en vez de tablas locales DBF/CDX
– Función definida por el usuario en índice
– Tablas de ordenamiento
Tiempo de
Codificación
November 2007
Alaska Software Inc.
„Arctica“: una mirada al cliente/servidor
- No hay limites
- Puede mezclar con acceso Navegacional
- Perfecto para soluciones a gran escala
Acceso Navegacional usando
USE, SEEK,INDEX,GO, TO TOP
- Perfecto para migración de soluciones
existentes a plataforma Cliente/Servidor.
- Soporta todas las características
navegacionales
November 2007
Alaska Software Inc.
- Stored Procedures en Xbase++
„Arctica“: solución cliente/servidor
• Cualquier aplicación Xbase++ que use ficheros DBFCDX o
DBFNTX puede convertirse en solución cliente/servidor
100% SQL por agregar literalmente una sola línea de código:
¡la conexión!
• Las aplicaciones existentes Xbase++ pueden escalar hasta
miles de usuarios sin problemas de performance.
• Las nuevas soluciones de Xbase++ pueden tomar lo mejor
del mundo navegacional y/o SQL.
• Los desarrolladores de Xbase++ pueden mudar sus lógicas
de negocio al servidor usando Procedimientos Almacenados
(Stored-Procedures) escritos en Xbase++.
• Conectar diferentes sitios en un santiamén: PostgreSQL
puede usar TCP/IP y SSL entre cliente y servidor
• ¡No-Hay-Límites!
November 2007
Alaska Software Inc.
Creemos que
• SQL integrado al lenguaje Xbase++ y la adición del qué
incrementa la productividad, performance y hace a la
aplicación menos propensa a errores.
• SQL y el Navigational Data-Access se benefician uno
del otro. Como Desarrollador SQL experimentado sabrá
que:
– Las sentencias SQL SELECT pueden ser pesadas y complejas.
– Estando habilitados para postprocesar el resultado de la
consulta con mandatos navegacionales, podemos remover la
complejidad y agregar flexibilidad.
– Mover la lógica al Servidor SQL introduce un cuello de botella
que puede conducir a pesadas cargas de trabajo en el servidor.
• Distribuir la carga de trabajo entre Cliente y Servidor es
la clave para la performance futura. El Motor U-SQL
interno encaja perfectamente en esa imagen.
November 2007
Alaska Software Inc.
Sumario
• Con „Artica“, las Tecnologías de Bases de Datos de
Xbase++ se convierten en una herramienta de
Desarrollo de Aplicaciones Orientadas a Objetos &
Bases de Datos Relacionales.
• Con Universal SQL, cualquier aplicación Xbase++
puede beneficiarse del motor „incrustado de SQL“ y
puede hacer uso de esa aproximación.
• Con Cliente/Servidor „Arctica“, las soluciones existentes
de Xbase++ se convierten en aplicaciones de SQL de
primera clase casi sin cambios en el código.
• Con Unified-SQL, el desarrollo de soluciones de SQL
puro integradas dentro del poder navegacional del
lenguaje Xbase++
November 2007
Alaska Software Inc.
November 2007
Alaska Software Inc.