Download arctica-intro-es.pps
Document related concepts
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.