Estándares de Nomenclatura de Objetos de Base de Datos Oracle
GERENCIA DE DESARROLLO Y AYQUITECTURA
Historial de Revisión
| Fecha | Versión | Descripción | Autor |
|---|---|---|---|
| 31-10-2024 | 1.1 | Revisor | 1. Javier Hernández Barraza |
| 16-06-2026 | 1.2 | Revisor | 1. Javier Hernández Barraza 2. Eduardo Tovar López |
1. Introducción
El presente documento describe los estándares de programación en codificación PL-SQL (Procedural Language/Structured Query Language), a utilizarse en la gerencia de desarrollo de la dirección de sistemas, proyectos e informática de Grupo Alpura.
1.1 Objetivo y Alcance
El objetivo de este documento es listar y describir los estándares de programación establecidos por la gerencia de desarrollo y en comnún acuerdo con el área de arquitectura TI para que todos los desarrolladores trabajen de forma coordinada.
Objetivos:
- Practicidad
- Armonía y estilo unificado
- Establecer buenas prácticas
- Legibilidad y mantenimiento del código
- Promover la colaboración entre grupos de desarrollo
Alcances: Este documento contiene normas para el desarrollo de software, incluyendo estándares de nomenclatura, entornos de desarrollo y uso de herramientas.
2. Generalidades
2.1 Conceptos
2.1.1 Aplicaciones de Oracle
| Aplicación | Código | Descripción |
|---|---|---|
| General Ledger | GL | Contabilidad general y reportes financieros |
| Accounts Payable | AP | Gestión de pagos a proveedores |
| Accounts Receivable | AR | Gestión de cobros a clientes |
| Fixed Assets | FA | Administración de activos fijos |
| Cash Management | CE | Conciliaci ón bancaria y gestión de efectivo |
| Tax | ZX | Motor de impuestos y fiscalidad |
| Treasury | XTR | Gestión de tesorería y riesgos financieros |
| Purchasing | PO | Gestión de compras |
| Inventory | INV | Control de inventarios |
| Order Management | OM | Gestión de pedidos de venta |
| Shipping Execution | WSH | Logística y despacho |
| Bills of Material | BOM | Estructura de productos |
| Work in Process | WIP | Producción en proceso |
| Cost Management | CST | Costeo de manufactura |
| Human Resources | HR | Gestión de empleados |
| Payroll | PAY | Nómina |
| Self Service HR | SSHR | Autoservicio de empleados |
| iRecruitment | IRC | Reclutamiento |
| Learning Management | OTA | Capacitación |
| Projects | PA | Gestión y contabilidad de proyectos |
| Quality Management | QA | Control de calidad |
| Maintenance | EAM | Mantenimiento de activos |
| Engineering | ENG | Ingeniería de producto |
| System Administration | FND | Seguridad, usuarios y configuración base |
| Workflow | WF | Automatización de procesos de negocio |
| Alert | ALR | Alertas del sistema |
| XML Publisher (BI Publisher) | XDO | Reportes y documentos XML/BI |
| Application Object Library | AOL | Infraestructura base de Oracle EBS |
| EDI Gateway | EC | Intercambio electrónico de datos |
| Web ADI | BNE | Carga de datos desde Excel |
| SOA Gateway | SOA | Integración por servicios web |
| iStore | IBE | Comercio electrónico |
| iProcurement | ICX | Compras autoservicio |
| Contracts | OKC | Gestión de contratos |
| Service Contracts | OKS | Contratos de servicio |
| Service | CS | Atención al cliente |
3. Lenguajes y Tecnologías en Oracle
| Lenguaje / Tecnología | Tipo | Uso principal en Oracle |
|---|---|---|
| PL/SQL | Lenguaje procedural | Desarrollo de lógica en base de datos (procedimientos, funciones, triggers, paquetes) |
| SQL | Lenguaje declarativo | Consultas, manipulación y definición de datos |
| Java | Lenguaje de programación | Integraciones, aplicaciones ADF, middleware y servicios |
| Oracle Forms | Framework / 4GL | Interfaces clásicas en EBS (pantallas transaccionales) |
| Oracle Reports | Herramienta de reporting | Generación de reportes tradicionales en EBS |
| XML | Lenguaje de marcado | Integración, BI Publisher, configuración y mensajería |
| XSL / XSLT | Transformación XML | Formateo de reportes y transformación de datos XML |
| JavaScript | Lenguaje web | Interfaces web (ADF, OA Framework, personalizaciones UI) |
| HTML | Lenguaje web | Construcción de interfaces web en Oracle Applications |
| CSS | Estilos web | Estilización de interfaces ADF/OAF |
| Oracle ADF (Java EE) | Framework | Desarrollo de aplicaciones web modernas en Oracle |
| Oracle OA Framework (OAF) | Framework Java | Personalización de Oracle E-Business Suite |
| Shell Script (Bash/Korn) | Scripting | Automatización en servidores Oracle (Unix/Linux) |
| Python (externo) | Lenguaje externo | Integraciones, automatización, ETL (no nativo EBS pero muy usado con Oracle) |
| Groovy | Scripting | Usado en algunas herramientas Oracle Middleware |
| C / C++ | Lenguajes base | Componentes de Oracle Database y herramientas internas |
| SQL*Plus | Herramienta | Ejecución de scripts SQL/PLSQL en Oracle |
| Oracle BI Publisher | Herramienta/XML | Reportes XML y diseño de documentos |
4. Encabezado de Objetos de Base de Datos
- Este estándar define la estructura obligatoria del encabezado en objetos de base de datos (funciones, procedimientos, triggers o paquetes), con el objetivo de mantener trazabilidad, control de versiones y documentación homogénea.
4.1. Versión
- Mayor (1.x.x): cambios estructurales
- Menor (x.1.x): nuevas funcionalidades
- Patch (x.x.1): correcciones
4.2. Fecha
<fecha>Fecha en la que se creó la versión inicial del objeto.
Permite trazabilidad histórica.
4.3. Descripción
<Descripción Corta>.- Define qué hace el objeto.
- Explica qué problema resuelve.
- Evita detalles técnicos excesivos.
4.4. Autor
<Autor>Responsable del desarrollo del objeto.
4.5. Solicitante
<Solicitante>Persona o área que solicita el desarrollo.
Clave para la trazabilidad funcional.
4.6. Historial de cambios
Permite control completo de cambios del objeto.
| Versión | Fecha | Desarrollador | Solicitante | Descripción |
|---|---|---|---|---|
| x.x.x | <Fecha> | <Desarrollador> | <Solicitante> | <Comentarios del Cambio> |
Ejemplo:
# 🧾 Ejemplo de encabezado estándar
```sql
/**************************************************************************************************
* Nombre: fn_get_documents_pending_balance
* Tipo: Función
* Versión: 1.0.1
* Fecha creación: 2024-09-06
*
* Descripción:
* Función para recuperar la información de los documentos con saldo pendiente.
*
* Autor: Victor Manuel López Carvajal
* Solicitante: Royer Hernandez Reyes
*
* -----------------------------------------------------------------------------------------------
* Historial de cambios
* -----------------------------------------------------------------------------------------------
* Versión Fecha Desarrollador Solicitante Descripción del cambio
* -----------------------------------------------------------------------------------------------
* 1.0.0 2024-09-06 Victor Carvajal Royer Hernandez Creación inicial
* 1.0.1 2025-10-07 Victor Carvajal Royer Hernandez Se agregan datos de auditoría
**************************************************************************************************/
🎯 Beneficios de este estándar
- Trazabilidad completa del objeto
- Control de versiones claro
- Fácil mantenimiento en equipos grandes
- Soporte para auditorías técnicas
5 Nomenclaturas
5.1 Tablas
Tabla: Unidad básica de organización de datos en una base de datos.
El nombre de las tablas será siempre en singular y con la nomenclatura siguiente
Formato: ALP_XX1_XX2_XXXXXXXXXXXXXXX3_X
- ALP : Constante que indica que es un objeto Custom
- XX1 : Código o abreviatura de la aplicación de Oracle EBS relacionada con el desarrollo, si corresponde
- XX2 : Abreviatura proyecto
- XXXXXXXXXXXXXXX3 : Entidad de negocio o proceso de negocio
- X : Sufijo opcional:
TMPpara tablas temporales oHpara históricos.
ALP_AR_CI_FACT_CONTADO_TMP
Desglose:
- ALP → Constante de objetos custom
- AR → Aplicación Oracle EBS
- CI → Abreviatura Proyecto
- FACT_CONTADO → Entidad de negocio
- TMP → Tipo de tabla (Temporal)
ALP_SAT_CARTA_PORTE
Desglose:
- ALP → Constante de objetos custom
- SAT → Abreviatura Proyecto
- CARTA_PORTE → Entidad de negocio
Este ejemplo no cuenta con Aplicación Oracle EBS, ya que involucra varios módulos.
:::
5.2 Paquetes
- Paquete: Proporcionan una forma conveniente de organizar las funciones y procedimientos que tienen un propósito relacionado
Formato: ALP_XX1_XXXXXXXXXXXXXXXXXX_PKG
- ALP : Constante de objetos custom
- XX1 : Código o abreviatura de la aplicación de Oracle EBS relacionada con el desarrollo, si corresponde
- XXXXXXXXXXXXXXX3 : Proyecto
- PKG : Constante que indica que es un Paquete
ALP_AP_SIT_BANORTE_PKG
Desglose:
- ALP → Constante de objetos custom
- AP → Aplicación de Oracle
- SIT_BANORTE → Proyecto
- PKG → Constante para los Paquetes
5.3 Stored Procedures
- Store Procedure: Bloque de código PL/SQL que se almacena en la base de datos y se puede ejecutar desde otras aplicaciones o procedimientos almacenados.
El nombre de los Stored Procedures será de la siguiente manera:
Formato: ALP_XX1_XX2_XXXXXXXXXXXXXXXXXX
- ALP : Constante de objetos custom
- XX1 : Código o abreviatura de la aplicación de Oracle EBS relacionada con el desarrollo, si corresponde
- XX2 : Abreviatura proyecto
- XXXXXXXXXXXXXXX3 : Proceso de negocio
ALP_AR_CI_ABRIR_PERIODO
Desglose:
- ALP → Constante de objetos custom
- AR → Aplicación de Oracle
- CI → Abreviatura Proyecto
- ABRIR_PERIODO → Proceso de negocio
5.4 Functions
- Functions: Subprograma que puede recibir parámetros y devolver un único valor
El nombre de las funciones será de la siguiente manera:
Formato: ALP_XXXXXXXXXXXXXXXXXX
- ALP : Constante de objetos custom
- XXXXXXXXXXXXXXX : Proceso de negocio
ALP_GET_DESCRIPTION_FLEXFILD
Desglose:
- ALP → Constante de objetos custom
- GET_DESCRIPTION_FLEXFILD → Proceso de negocio
5.5 Triggers
El uso de Triggers se tendra que evaluar por el equipo de Arquitectura y Desarrollo. Con la finalidad de evitar:
- Complejidad de mantenimiento
- Problemas de rendimiento
- Dependencias ocultas
- Dificultad en la depuración
- Portabilidad limitada
- Complejidad de pruebas
5.6 Secuencias
El nombre de las secuencias será de la siguiente manera:
Formato: XXXXXXXXXXXXX1_S
- XXXXXXXXXXXXX1: Entidad a la que se encuentra ligada la sequencia, o nombre de proceso que la utiliza
- S: Constante que se utiliza para identificar las sequencias
ALP_AP_H2H_BANORTE_PROV_S
Desglose:
- ALP_AP_H2H_BANORTE_PROV: Entidad que utiliza la secuencia
- S = Constante que se utiliza para identificar las sequencias
6 Índices
Un índice es una estructura de base de datos que permite mejorar el rendimiento de las consultas, facilitando la búsqueda y recuperación eficiente de registros dentro de una tabla.
Funciona como una referencia rápida a los datos, evitando la necesidad de recorrer toda la tabla para localizar información específica.
- Optimiza el rendimiento de consultas (SELECT).
- Reduce el tiempo de búsqueda de registros.
- Mejora la eficiencia en tablas con grandes volúmenes de datos.
- Consume espacio adicional en almacenamiento.
- Puede impactar el rendimiento en operaciones de inserción, actualización o eliminación (INSERT, UPDATE, DELETE), ya que el índice también debe mantenerse actualizado.
6.1 Índices primarios
Formato:XXXXXXXXXXXXXXXXXXXXXX_PK
- XXXXXXXXXXXXXXXXXXXXXX : Es el Nombre de la entidad que crea al índice o nombre del personalizado del mismo.
- PK : Es la abreviatura de llave primaria PK
6.2 Índices secundarios
Formato: XXXXXXXXXXXXXXXXXXXXX_FKNN
- XXXXXXXXXXXXXXXXXXXXX : Es el Nombre de la entidad que crea al índice o nombre del personalizado del mismo.
- FK : Es la abreviatura de llave foránea
- NN : Consecutivo de la FK
7. Hints en Consultas SQL
Los hints en SQL son válidos y pueden utilizarse para influir en el plan de ejecución de las consultas.
Sin embargo, su uso no es recomendado y solo debe aplicarse cuando exista una autorización explícita, por parte de Arquitectura y Desarrollo.
- Interferir con el optimizador de la base de datos.
- Generar planes de ejecución subóptimos.
- Provocar problemas con estadísticas actualizadas o desactualizadas.
- Afectar el rendimiento en distintos entornos (desarrollo, pruebas y producción).
Su uso indebido puede generar degradación de rendimiento o comportamientos inconsistentes en las consultas.