Introducción a las base de datos Oracle

TIPOS DE BASES DE DATOS ORACLE

Las bases de datos Oracle podrían clasificarse en función de la funcionalidad, que se le quiere dar:

  • Procesado transaccional en línea (Online Transactional Processing – OLTP): base de datos orientada a gran número de transacciones en poco tiempo. La respuesta es rápida y con integridad de los datos a la hora de realizar gran cantidad de inserciones, actualizaciones o borrados de registros. Suele utilizar un modelo relacional con bases de datos normalizadas evitando redundancias e inconsistencias. Suele ser el modelo de datos más usual.
  • Procesado analítico en línea (Online Analytic Processing – OLAP): Usualmente orientado a análisis de datos. El volumen de transacciones es pequeñas, pero de gran volumen de datos. Este tipo de base de datos está orientada a la respuesta rápida de datos calculados. Son usualmente utilizadas en Business Intelligence o Data Mining, para previsiones de negocios, informes,… Suelen utilizar modelos multidimensionales desnormalizados, aunque podrían utilizar modelos relacionales. Al estar desnormalizadas este tipo de bases de datos, son propensas a una gran necesidad de espacio.

Usualmente los tipos OLTP suelen usarse en bases de datos con gran necesidad transacciones. Las bases de datos OLAP recogen esos datos mediante procesos ETL en los cuales extracción, trasformación y carga, para poder posteriormente analizar los datos.

ELEMENTOS DE UNA BASE DE DATOS DE ORACLE

Una base de datos Oracle está compuesta principalmente por tres partes:
MEMORIA
Puede ser memoria asociada a los procesos de usuario (PGA – Process Global Area) y sería propia de cada cliente Oracle, o por memoria asociada al servidor Oracle (SGA – System Global Area).
La SGA son buffers que Oracle toma del sistema operativo, cuando arranca la base de datos. La porción de memoria, que toma inicialmente y como lo distribuye en sus diferentes componentes, está determinado por el fichero de inicialización de la base de datos. En la SGA se sitúan datos, información del diccionario de datos, gestión de bloqueos, etc…

PROCESOS
Existen dos tipos de procesos:

  • Procesos de usuario, sqlplus, sqlforms….
  • Procesos background o procesos de Oracle como DBWR, LGWR…

FICHEROS DE DATOS
Existen varios tipos de ficheros:
FICHEROS DE PARÁMETROS: spfile/pfile, listener, tnsnames,…
FICHERO DE CONTROL (control files): Contienen información para poder arrancar la base de datos, su nombre, fecha de creación, ficheros asociados a la base de datos, …
FICHEROS DE DATOS (datafiles): Son los ficheros donde se almacena la información de la base de datos.
REDO LOG: Sirven para mantener la consistencia en caso de fallo.

Una base de datos contempla varios aspectos:

  • ESTRUCTURAS: Almacenan la información de una base de datos. El acceso a las estructuras y los datos contenidos en ellas, se realiza mediante operaciones.
  • OPERACIONES: Son las acciones que nos permiten acceder y manipular los datos y las estructuras. Las operaciones en una base de datos suelen ajustarse a una serie de reglas de integridad predefinidas.
  • REGLAS DE INTEGRIDAD: Son las leyes que rigen las operaciones que permiten acceder a los datos y manipularlos. Sirven para proteger los datos y las estructuras que los contienen.

DIFERENCIA ENTRE INSTANCIA VS BASES DE DATOS

INSTANCIA ORACLE
Una instancia Oracle es la combinación de los procesos en background y las estructuras de memoria. Para acceder a los datos contenidos en la base de datos, hay que iniciar la instancia. Cada vez que se inicia una instancia se asigna un área global del sistema (SGA) y se inician los procesos en background Oracle.
SGA es la zona de memoria que se utiliza para almacenar la información de la base de datos que comparten los procesos asociados a la base de datos.
Los procesos en background desempeñan funciones de E/S y supervisan a otros procesos para proporcionar un mayor paralelismo con el fin de conseguir un mejor rendimiento y fiabilidad.

BASE DE DATOS
Una base de datos tiene una estructura lógica y una física. La estructura física es el conjunto de ficheros del sistema operativo asociados a la base de datos.

Una base de datos Oracle consta de tres tipos de ficheros:

  • Ficheros de datos: contienen los datos reales de la base de datos. Los datos se almacenan en tablas definidas por el usuario, pero también contienen el diccionario de datos, índices y otros tipos de estructuras.
  • Los ficheros de datos tienen las siguientes características:
    • Un fichero de datos exclusivamente está asociado con una sola base de datos Oracle.
    • Uno o más ficheros de datos forman una unidad lógica de almacenamiento de base de datos llamada tablespace.
  • Ficheros Redo Log: contienen los cambios efectuados en la base de datos para poder recuperar ante fallos.
  • Los ficheros de Control, contienen la información necesaria para mantener y verificar la integridad de la base de datos. Por ejemplo, un fichero de control se usa para identificar los ficheros de datos y redo log. Una base de datos Oracle necesita al menos un fichero de Control.

Una instancia sólo podrá abrir y utilizar una base de datos a la vez, aunque una base de datos podría ser utilizada por varias instancias, como ocurre en el sistema de alta disponibilidad de Oracle Real Application Cluster (RAC).

ESTRUCTURAS LÓGICAS DE UNA BASE DE DATOS

TABLAS (table), COLUMNAS(column)
Los datos son almacenados en la base de datos utilizan tablas. Cada tabla está compuesta por un número determinado de columnas de tipos datos determinados.
A las columnas se le puede poner restricciones de rango de valores.
Las tablas se pueden relacionar entre ellas a través de las columnas que las componen mediante reglas de integridad referencial (constraints).
Una tabla puede tener asociadas restricciones que deben cumplir todas las filas. Entre las restricciones que se pueden fijar algunas reciben nombres especiales:

  • La clave primaria (primary key) de una tabla está compuesta por una o varias columnas que hacen a cada fila de la tabla una fila distinta.
  • La clave ajena o clave foránea (foreign key) se utiliza para especificar las relaciones entre tablas. De modo que las columnas declaradas como clave ajena de una tabla deben tener valores tomados de la clave primaria de otra tabla.

USUARIOS
Un esquema de usuario es una forma de organizar los objetos (tablas, vistas, …) de un usuario determinado proporcionándole una serie de permisos directamente o a través de roles.
Existen dos usuarios especiales: SYS y SYSTEM. SYS posee las tablas del diccionario de datos o del catalogo del sistema. Almacena información sobre el resto de las estructuras de la base de datos. SYSTEM posee las vistas que permiten acceder a las tablas del diccionario, para el uso del resto de los usuarios de la base de datos.
Todo objeto creado en la base de datos se crea por un usuario, en un tablespace y en unos ficheros de datos (datafiles) determinado.

ÍNDICES
Un índice es utilizado para agilizar el acceso a los datos de una tabla. Cada fila tiene un identificador de fila (ROWID).
Cada entrada del índice contiene un valor clave y un ROWID.
Existen varios tipos de índices: B-Tree Index, Index Organized Tables,
Bitmap Index, Cluster Index, …

CLUSTERS
Las tablas que son accedidas juntas frecuentemente pueden ser almacenadas juntas. Para ello se crea un cluster. Los beneficios de estas tablas es que se reduce en gran medida las operaciones de escritura lectura sobre la base de datos, aparte del ahorro de espacio que se produce.
Las columnas que relacionan las tablas de un cluster se llaman clave del cluster.

VISTAS
Una vista es como una máscara que se extiende sobre una o más tablas, de modo que cada columna de la vista se corresponde con una o más columnas de las tablas subyacentes. Cuando se consulta una vista, esta traspasa la consulta a las tablas sobre las que se asienta. Las vistas no se indexan, aunque si las tablas origen.
Las vistas no generan almacenamiento de datos, y sólo se almacena sus definiciones en el diccionario de datos.

VISTAS MATERIALIZADAS
Una vista materializada se define como las vistas comunes, pero además de almacenar la definición de la vista, también almacena el resultado de la consulta.

SECUENCIAS
Son mecanismos para obtener listas de números secuenciales sin que dos procesos ejecutándose en paralelo tome el mismo valor. Las definiciones de secuencias y el siguiente valor se almacenan en el diccionario de datos.

PROCEDIMIENTOS Y FUNCIONES
Un procedimiento es un bloque de código PL/SQL, que se almacena en el diccionario de datos. Cuando se ejecuta lo hace con los privilegios del propietario del procedimiento. La diferencia entre un procedimiento y una función es que ésta última puede devolver valores.

PAQUETES (Packages)
Los paquetes agrupan procedimientos y funciones. Los elementos dentro de los paquetes pueden ser públicos (pueden ser llamados por los usuarios) o privados(ocultos a los usuarios).

DISPARADORES (Triggers)
Son procedimientos que son ejecutados cuando se lanza un determinado evento.

SINÓNIMOS
Los sinónimos apuntan a objetos y si el objeto cambia de lugar o propietario, sólo habrá que modificar el sinónimo.

Los sinónimos públicos pueden ser utilizados por todos los usuarios de una base de datos. Los privados son sólo de un usuario.

PRIVILEGIOS Y ROLES
Para que un objeto pueda ser accedido por un usuario debe de tener otorgado ese privilegio. Ejemplos de privilegios son INSERT, SELECT, UPDATE, EXECUTE, etc.
Los roles son grupos de privilegios que pueden ser utilizados para facilitar la gestión de los privilegios. Los privilegios se pueden dar a un rol, y estos pueden ser dados a varios usuarios.

SEGMENTOS DE ROLLBACK
Oracle utiliza los segmentos de rollback , para mantener la consistencia en lectura. Permitie deshacer las transacciones, a un estado previo a una transacción incompleta.
Los segmentos de rollback pueden crecer tanto como sea necesario para soportar las transacciones.

INSTALACIÓN DE UNA BASE DE DATOS ORACLE

Una base de datos Oracle tiene diferentes ediciones con muchas opciones os recomiendo leer el artículo “Ediciones y opciones Oracle 11G”, para aclarar las posibilidades dentro de las bases de datos Oracle.

Para empezar a desarrollar en Oracle recomiendo instalar Oracle Database Express Edition 11 G. En el artículo “Instalación de Oracle Database Express 11G (Oracle XE)” se indica como instalar de manera sencilla sobre Windows. Si quisierais instalar la última versión más potente y completa os recomiendo este otro artículo: “Instalación Oracle 12c sobre CENTOS”

Comments are closed.