¿Qué es Oracle?
Oracle Database es un sistema de gestión de bases de datos relacional (RDBMS)
desarrollado por Oracle Corporation.
Su función principal es almacenar, gestionar y recuperar datos de forma eficiente y
segura, usando el lenguaje SQL (Structured Query Language).
Es uno de los motores más usados en grandes empresas por su alto rendimiento,
escalabilidad y robustas funciones de seguridad.
Está disponible en varias ediciones, como Enterprise Edition, Standard Edition y
Express Edition (XE).
Un poquito de historia y visión general de Oracle Database
Fundada por Larry Ellison, Bob Miner y Ed Oates en 1977 (como Software
Development Laboratories).
Primera versión lanzada en 1979, fue el primer RDBMS comercial que usaba SQL.
Evolución hasta versiones actuales (incluyendo Oracle Cloud).
Sectores donde más se usa (banca, gobierno, salud, e-commerce).
Características principales
Característica Descripción
Modelo relacional Organiza los datos en tablas con filas (registros) y columnas
(atributos).
Lenguaje SQL y PL/SQL Permite consultar y modificar datos. PL/SQL agrega
programación procedural.
Alta disponibilidad Funciones como RAC (Real Application Clusters) y Data
Guard aseguran funcionamiento continuo.
Seguridad avanzada Cifrado de datos, control de accesos, auditoría de consultas.
Escalabilidad Soporta grandes volúmenes de datos y usuarios
simultáneos.
Multiversión Usa "multi-version concurrency control" para permitir
múltiples transacciones sin bloquearse.
Compatibilidad Funciona en Windows, Linux, Unix, y hasta en la nube.
multiplataforma
Arquitectura de Oracle
El motor de Oracle se compone de estructuras lógicas y estructuras físicas, más un
conjunto de procesos que administran la base de datos.
Estructuras lógicas
● Tablespaces → Áreas lógicas donde se agrupan objetos como tablas e índices.
● Schemas → Conjunto de objetos de un usuario (tablas, vistas, procedimientos).
● Segmentation → Manejo de datos en segmentos, extensiones y bloques.
Ejemplo:
-- Crear un tablespace
CREATE TABLESPACE ventas
DATAFILE '[Link]' SIZE 50M
AUTOEXTEND ON;
-- Crear un usuario y asignarle el tablespace
CREATE USER juan IDENTIFIED BY password
DEFAULT TABLESPACE ventas;
Estructuras físicas
● Archivos de datos (Datafiles) → Guardan los datos reales.
● Archivos de control (Control files) → Guardan metadatos de la base.
● Archivos de redo log → Registran cambios para recuperación en caso de fallo.
Lenguajes en Oracle
Oracle usa dos lenguajes principales:
SQL (Structured Query Language)
Sirve para manipular datos y estructuras.
Ejemplo de SQL en Oracle:
-- Crear una tabla
CREATE TABLE empleados (
id NUMBER PRIMARY KEY,
nombre VARCHAR2(50),
salario NUMBER(8,2)
);
-- Insertar datos
INSERT INTO empleados VALUES (1, 'Ana', 1500);
INSERT INTO empleados VALUES (2, 'Luis', 1800);
-- Consultar datos
SELECT * FROM empleados WHERE salario > 1600;
PL/SQL (Procedural Language/SQL)
Extiende SQL con estructuras de control, bucles y procedimientos.
Ejemplo de PL/SQL:
DECLARE
v_nombre [Link]%TYPE;
BEGIN
SELECT nombre INTO v_nombre
FROM empleados
WHERE id = 1;
DBMS_OUTPUT.PUT_LINE('Empleado: ' || v_nombre);
END;
Ediciones y versiones
● Enterprise Edition → Todas las funciones, ideal para grandes empresas.
● Standard Edition → Menos funciones, costo menor.
● Express Edition (XE) → Gratuita, limitada a 2 CPUs, 12 GB de datos, y 2 GB de
RAM.
● Oracle Autonomous Database → Versión en la nube con autogestión.
Ejemplos de uso en empresas
● Bancos → Gestión de transacciones y cuentas.
● E-commerce → Catálogos de productos y ventas.
● Gobiernos → Registro civil, impuestos.
● Salud → Historias clínicas y turnos médicos.
Ventajas y desventajas
Ventajas
● Muy estable y seguro.
● Altamente escalable.
● Gran soporte técnico y comunidad.
● Herramientas avanzadas de respaldo y recuperación.
Desventajas
● Coste alto en versiones Enterprise.
● Requiere personal capacitado.
● Más complejo que otros motores más simples.
Ejemplo de flujo de trabajo
Creación de base de datos
CREATE DATABASE tienda;
Creación de tablas
CREATE TABLE productos (
id NUMBER PRIMARY KEY,
nombre VARCHAR2(50),
precio NUMBER(8,2)
);
Inserción y consulta
INSERT INTO productos VALUES (1, 'Laptop', 3500);
SELECT nombre, precio FROM productos;
Procedimiento para descuento
CREATE OR REPLACE PROCEDURE aplicar_descuento(p_id NUMBER,
p_porcentaje NUMBER) AS
BEGIN
UPDATE productos
SET precio = precio - (precio * p_porcentaje / 100)
WHERE id = p_id;
END;