Introducción a Oracle Database

¡Bienvenidos al boletín de La Botica del DBA! En esta edición, en la primera sección exploraremos algunas fundamentos introductorios de Oracle Database, el cual es un sistema de gestión de bases de datos relacionales (RDBMS) líder en la industria, diseñado para proporcionar un almacenamiento y recuperación de datos eficiente, confiable y seguro en entornos multiusuario. Este artículo en español ofrece una visión general detallada de los conceptos clave y la arquitectura de Oracle Database.
- Bases de datos relacionales
Una base de datos relacional almacena datos en tablas compuestas por filas y columnas. El modelo relacional, propuesto por E.F. Codd en 1970, es el estándar de la industria para bases de datos. Oracle Database implementa y extiende este modelo.
Características principales:
Independencia entre el almacenamiento físico y las estructuras lógicas de datos
Lenguaje SQL estándar para consultas y manipulación de datos
Soporte para transacciones ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad)
Control de concurrencia para acceso multiusuario
Integridad y consistencia de datos
Historia breve de Oracle Database:
1977: Fundación de Software Development Laboratories (luego Oracle Corporation)
1979: Oracle V2, primer RDBMS comercial basado en SQL
1983: Oracle Version 3, primera base de datos portátil
1992: Oracle7 introduce procedimientos almacenados y triggers en PL/SQL
2001: Oracle9i introduce Oracle Real Application Clusters (RAC)
2013: Oracle Database 12c introduce la arquitectura multitenant
Versiones recientes: Mejoras en blockchain, JSON, y columnar in-memory
- Objetos de esquema
Los objetos de esquema son estructuras lógicas que se refieren directamente a los datos. Los principales son:
a) Tablas:
Almacenan datos en filas y columnas
Describen entidades como empleados o productos
Cada columna tiene un nombre, tipo de dato y ancho
b) Índices:
Mejoran el rendimiento de las consultas
Son estructuras opcionales asociadas a una o más columnas de una tabla
Permiten localizar filas específicas rápidamente
c) Vistas:
Presentan datos de una o más tablas
Pueden simplificar consultas complejas
d) Procedimientos y funciones:
Contienen lógica de negocio
Se pueden almacenar en la base de datos para su reutilización
- Acceso a datos
Oracle Database proporciona varias opciones para acceder y manipular datos:
a) SQL (Structured Query Language):
Lenguaje estándar para consultas y manipulación de datos
Ejemplo:
SELECT first_name, last_name FROM employees;
b) PL/SQL:
Extensión procedural de SQL para programación avanzada
Permite crear procedimientos almacenados, funciones y paquetes
c) Java:
Soporte para almacenar y ejecutar código Java en la base de datos
Se puede llamar a PL/SQL desde Java y viceversa
d) JavaScript:
Opción para lógica de negocio con Oracle Multilingual Engine (MLE)
Permite escribir funciones en JavaScript y exponerlas a SQL y PL/SQL
- Gestión de transacciones
Oracle Database garantiza la integridad y consistencia de los datos mediante:
a) Transacciones atómicas:
Principio de "todo o nada"
Ejemplo: transferencia de fondos entre cuentas
b) Control de concurrencia:
Uso de bloqueos para prevenir interacciones destructivas entre transacciones
Permite el acceso simultáneo de múltiples usuarios
c) Consistencia de lectura:
Garantiza que cada consulta vea datos consistentes en un punto en el tiempo
Evita lecturas sucias (dirty reads) de datos no confirmados
- Arquitectura de Oracle Database
La arquitectura de Oracle Database consta de varios componentes clave:
a) Instancia de base de datos:
Conjunto de estructuras de memoria y procesos que gestionan los archivos de la base de datos
Incluye el System Global Area (SGA) y procesos en segundo plano
b) Estructuras de almacenamiento físico:
Archivos de datos: Almacenan los datos de las tablas y otros objetos
Archivos de control: Contienen metadatos sobre la estructura física de la base de datos
Archivos redo log: Registran todos los cambios realizados a los datos
c) Estructuras de almacenamiento lógico:
Bloques de datos: Unidad más pequeña de almacenamiento
Extensiones: Conjunto contiguo de bloques de datos
Segmentos: Conjunto de extensiones que forman un objeto lógico (ej. una tabla)
Tablespaces: Contenedores lógicos para segmentos
d) Procesos:
Procesos de cliente: Ejecutan el código de la aplicación
Procesos de servidor: Manejan solicitudes de los clientes
Procesos en segundo plano: Realizan tareas de mantenimiento y monitoreo
Database Instance and CDB

Esta imagen muestra la relación entre la instancia de la base de datos y la CDB (Container Database), ilustrando cómo la instancia gestiona los archivos físicos de la base de datos.
- Arquitectura multitenant
Desde Oracle 12c, se introdujo la arquitectura multitenant que permite:
a) Bases de datos contenedoras (CDB):
Albergan múltiples bases de datos conectables (PDB)
Comparten recursos del sistema y archivos de control
b) Bases de datos conectables (PDB):
Aparecen como bases de datos independientes para las aplicaciones
Pueden ser fácilmente movidas entre CDBs
c) Contenedores de aplicaciones:
Permiten compartir metadatos y datos entre múltiples PDBs
Útiles para implementaciones SaaS y consolidación de bases de datos
PDBs in a CDB

Esta imagen ilustra cómo las PDBs (hrpdb y salespdb) existen dentro de una CDB (MYCDB), mostrando la estructura de la arquitectura multitenant.
- Base de datos distribuida globalmente
Oracle Globally Distributed Database (anteriormente Oracle Sharding) permite la partición horizontal de datos a través de múltiples PDBs, ofreciendo:
Escalabilidad lineal
Contención de fallos
Distribución geográfica de datos
Horizontal Partitioning of a Table Across Shards

Esta imagen muestra cómo una tabla se particiona horizontalmente a través de múltiples shards (PDBs en diferentes CDBs).
Oracle Globally Distributed Database Architecture

Esta imagen ilustra la arquitectura de Oracle Globally Distributed Database, mostrando cómo las solicitudes de los clientes se enrutan a los shards apropiados.
Conclusión
Oracle Database ofrece una plataforma robusta y escalable para gestionar datos empresariales, con características avanzadas de rendimiento, seguridad y disponibilidad. Su arquitectura flexible permite adaptarse a diversos escenarios de implementación, desde sistemas transaccionales hasta almacenes de datos y aplicaciones en la nube. Con la introducción de la arquitectura multitenant y las capacidades de distribución global, Oracle Database continúa evolucionando para satisfacer las demandas de las aplicaciones modernas y los entornos de nube.
Ref. Database Concepts --> 1 Introduction to Oracle Database






