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
Referencias de Documentación
Resumen de Preparación para el Examen
Conceptos Críticos a Dominar:
- Métodos de Despliegue: Conocer LOAD SQL, ImportDDL(), Run(), ExportDDL(), y %SYSTEM.OBJ.Compile()
- Soporte de Dialecto SQL: Comprender capacidades de importación específicas de proveedor y limitaciones de conversión
- Gestión de Dependencias: Reconocer secuenciación apropiada de despliegue para objetos de esquema
- Requisitos de Seguridad: Identificar privilegios necesarios para operaciones DDL y métodos de autenticación
- 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