T1.6: Deploys SQL Applications

Knowledge Review - InterSystems IRIS SQL Specialist

1. Comprende mecanismos de despliegue de aplicaciones SQL

Puntos Clave

  • Comando LOAD SQL: Método recomendado para importar scripts DDL de cualquier dialecto SQL
  • Métodos %SYSTEM.SQL.Schema: ImportDDL(), Run(), y ExportDDL() para despliegue programático
  • Múltiples Dialectos SQL Soportados: IRIS, FDBMS, Informix, InterBase, MSSQLServer, MySQL, Oracle, Sybase
  • Enfoques de Despliegue: Archivos de script DDL, compilación embedded SQL, ejecución dynamic SQL, ODBC/JDBC
  • Compilación de Clase: %SYSTEM.OBJ.Compile() para desplegar definiciones de clase persistente como tablas SQL

Notas Detalladas

Resumen

InterSystems IRIS proporciona múltiples mecanismos para desplegar aplicaciones SQL, habilitando migración sin problemas desde otras plataformas de base de datos y estrategias de despliegue flexibles.

Comando LOAD SQL

El comando LOAD SQL es el enfoque principal recomendado para importar definiciones de esquema y estructuras de tabla.

  • Fuente: Archivos de texto (archivos únicos o directorios enteros)
  • Soporte de dialecto: SQL de InterSystems IRIS y dialectos SQL de proveedores externos
  • Traducción automática: Convierte SQL específico de proveedor en sintaxis compatible con IRIS

Métodos de Despliegue Programático

La clase %SYSTEM.SQL.Schema ofrece:

  • ImportDDL(): Operaciones batch para importar DDL
  • Run(): Despliegues interactivos
  • Registro de errores: Ambos métodos generan logs de error para solucionar sentencias fallidas

Dialectos SQL Soportados

InterSystems IRIS soporta importar SQL de proveedores principales de base de datos:

  • Oracle, MySQL, SQL Server (MSSQL), Sybase, Informix, InterBase, FDBMS
  • Conversión: Conversión automática de comandos y cláusulas compatibles

Métodos de Despliegue DDL

Ejecutar sentencias CREATE TABLE, CREATE INDEX, CREATE VIEW, y otras de definición de esquema a través de:

  • Embedded SQL
  • Dynamic SQL
  • Archivos de script DDL
  • Conexiones JDBC/ODBC

Despliegue Orientado a Objetos

Para aplicaciones orientadas a objetos:

  • %SYSTEM.OBJ.Compile(): Despliega clases persistentes
  • Generación automática: Crea tablas SQL, vistas, y procedimientos almacenados correspondientes

Características de Despliegue

  • Validación de sintaxis: En tiempo de compilación
  • Verificación de existencia de entidad: Diferida hasta ejecución en runtime (permite secuenciación flexible de despliegue)
  • Objetivo: Namespace actual
  • Codificación de caracteres: Opciones para especificar vía tablas de traducción I/O para conjuntos de datos internacionales

Referencias de Documentación

2. Identifica requisitos de despliegue y dependencias

Puntos Clave

  • Dependencias de Esquema: Las tablas deben existir antes de vistas, índices, triggers, y claves foráneas que las referencien
  • Requisitos de Seguridad: Los usuarios necesitan privilegios DDL (rol %DB_DBNAME) para operaciones CREATE/ALTER/DROP
  • Dependencias de Clase: El compilador resuelve y compila automáticamente clases dependientes en orden correcto
  • Requisitos de Formato de Archivo: Los scripts SQL requieren delimitadores (GO para IRIS, punto y coma para otros) entre sentencias
  • Contexto de Namespace: Todos los despliegues apuntan al namespace actual; requiere configuración apropiada de namespace

Notas Detalladas

Resumen

El despliegue exitoso de aplicaciones SQL requiere atención cuidadosa a dependencias, privilegios de seguridad, y prerrequisitos ambientales.

Dependencias de Objeto de Esquema

Las dependencias de objeto de esquema deben desplegarse en secuencia apropiada:

  • Tablas base antes de vistas dependientes
  • Tablas padre antes de tablas hijas con restricciones de clave foránea
  • Tablas antes de índices y triggers definidos sobre ellas
  • Procedimientos almacenados antes de código que los invoque

Gestión de Dependencias del Compilador de Clase

El compilador de clase gestiona automáticamente dependencias al desplegar clases persistentes:

  • Genera una lista de dependencias
  • Compila clases prerrequisito primero
  • Asegura que propiedades y métodos heredados estén disponibles antes de compilación

Requisitos de Seguridad

Las operaciones DDL requieren privilegios específicos:

  • Privilegios: Típicamente otorgados a través del rol %DB_DBNAME para la base de datos objetivo
  • SQLCODE -99: El error Privilege Violation indica permisos insuficientes
  • Autenticación: Usar $SYSTEM.Security.Login() para autenticación apropiada

Requisitos de Formato de Archivo de Script SQL

Los archivos de script SQL deben cumplir requisitos específicos de formato:

  • Tipo de archivo: Archivos de texto sin formato (extensiones .txt o .sql)
  • Colocación de sentencia: Cada sentencia SQL comenzando en su propia línea
  • Delimitadores: GO para SQL de InterSystems, punto y coma para la mayoría de formatos de proveedor
  • Formato: Formato multi-línea opcional con indentación permitida

Configuración de Namespace

La configuración de namespace es una dependencia clave:

  • Todas las operaciones de importación se ejecutan dentro del contexto del namespace actual
  • Requiere selección apropiada de namespace antes del despliegue
  • Mapeos de base de datos apropiados necesarios para distribución de paquete a través de namespaces

Codificación de Caracteres

Los requisitos de codificación de caracteres pueden necesitar especificaciones de tabla de traducción I/O:

  • Requerido al importar scripts SQL de sistemas usando diferentes conjuntos de caracteres
  • Importante para despliegues internacionales con datos Unicode o caracteres multi-byte

Registro de Errores

El proceso de despliegue genera logs de error documentando sentencias fallidas:

  • LOAD SQL: Usa %SQL_Diag.Result
  • ImportDDL(): Usa archivos de log de error personalizados
  • Información capturada: Timestamps, nombres de usuario, nombres de namespace, mensajes de error detallados

Resumen de Preparación para el Examen

Conceptos Críticos a Dominar:

  1. Métodos de Despliegue: Conocer LOAD SQL, ImportDDL(), Run(), ExportDDL(), y %SYSTEM.OBJ.Compile()
  2. Soporte de Dialecto SQL: Comprender capacidades de importación específicas de proveedor y limitaciones de conversión
  3. Gestión de Dependencias: Reconocer secuenciación apropiada de despliegue para objetos de esquema
  4. Requisitos de Seguridad: Identificar privilegios necesarios para operaciones DDL y métodos de autenticación
  5. Reglas de Formato de Archivo: Conocer requisitos de delimitador y convenciones de formato para scripts SQL

Escenarios Comunes de Examen:

  • Seleccionar método de despliegue apropiado para escenarios de migración dados
  • Identificar dependencias faltantes causando fallos de despliegue
  • Solucionar violaciones de privilegio durante ejecución DDL
  • Determinar método de importación correcto para scripts SQL específicos de proveedor
  • Secuenciar despliegue de tablas, vistas, índices, y triggers

Recomendaciones de Práctica Práctica:

  • Importar scripts SQL usando comando LOAD SQL con varios dialectos
  • Desplegar aplicaciones usando ImportDDL() y examinar logs de error
  • Practicar %SYSTEM.OBJ.Compile() para despliegue de clase persistente
  • Probar despliegue con privilegios insuficientes para comprender SQLCODE -99
  • Exportar DDL usando ExportDDL() y reimportar a namespace diferente
  • Crear scripts de despliegue con orden apropiado de dependencias

Report an Issue