En nuestro anterior post (Configuración de la Conexión en sqldeveloper) vimos como configurar la conexión local con Oracle Database y cómo configurarla en red que es lo que a la final vamos a utilizar en entornos de producción. Antes de empezar con la temática del presente post, vamos a explicar algo que dejamos de lado en el post anterior y es la explicación de lo que representa el usuario SYS y SYSTEM en un servidor de bases de datos ORACLE.
Usuarios SYS y SYSTEM
Los usuarios SYS y SYSTEM se crean automáticamente en la instalación de Oracle DB y automáticamente reciben el rol de DBA. A continuación se muestra de manera general las funciones que cada uno tiene disponibles dentro de la base de datos.
SYS: Es el usuario con los más altos privilegios dentro de las bases de datos Oracle. Además, todas las tablas y vistas del diccionario de datos general están dentro del esquema SYS. Sin embargo, para preservar la integridad de las bases de datos ningún usuario debería modificar las tablas dentro del esquema SYS directamente, estas tareas de actualización las debería realizar únicamente la base de datos.
SYSTEM: Este usuario tiene acceso a todas las funciones del sistema excepto las siguiente:
- Backup and recovery
- Database upgrade
Todas las tareas administrativas del día a día deberían realizarse con el usuario SYSTEM, está totalmente desaconsejado utilizar el usuario SYS para tareas del día a día.
Manejo de la base de datos
A diferencia de otros motores de bases de datos no es común crear múltiples bases de datos en ORACLE. En Oracle es común hablar de esquemas de bases de datos, por ejemplo el esquema (schema) SYS que guarda toda la información relativa a la base de datos. Un esquema de base de datos (database schema) es una colección de estructuras lógicas de datos, también llamados esquemas de objetos (schema objects). Podríamos pensar que los esquemas de objetos son directamente las tablas, sin embargo, existen distintos tipos de esquemas, los más importantes son en evidencia las tablas y los índices.
SQL (Structured query language)
El lenguaje SQL fue diseñado para manejar un marco estándar de manipulación de datos en bases de datos relacionales. Todas las operaciones sobre la base de datos están basadas en lenguaje SQL, desde crear tablas hasta administrar el acceso a los objetos de la base de datos por los distintos usuarios. Oracle SQL es una implementación del estándar ANSI de SQL, e incluye muchas funcionalidades extendidas.
PL/SQL (Procedural Language/Structured Query Language)
PL/SQL es una extensión del lenguaje SQL de Oracle. PL/SQL puede utilizar todas las funciones, tipos de datos y procedimientos de SQL y además de esto controlar el flujo de un programa SQL, utilizar variables y utilizar manejadores de errores de sus procedimientos. El principal beneficio de PL/SQL es el de guardar la lógica de la aplicación dentro de la base de datos, esto se hace mediante sentencias SQL que pueden ser agrupadas como una unidad para resolver un problema específico.
Estructuras de Almacenamiento
Existen dos estructuras de almacenamiento (Database Storage Structures) en Oracle DB.
Estructura física de almacenamiento
Dentro de esta estructura tenemos tres elementos a saber. Archivos de datos (Data files), los cuales contienen la información física de los datos en la base de datos. Los datos acerca de la estructura como tables e índices son guardados en estos archivos. Archivos de control (Control files), son los que guardan información acerca de la estructura física de la base de datos (metadatos). Allí se guarda por ejemplo el nombre de la base de datos y la localización de los archivos asociados a la base de datos. Archivos de Log (Online redo log files), los cuales guardan todos los cambios realizados a los datos.
Estructura lógica de almacenamiento
En la estructura lógica encontramos en primera instancia los Bloques de datos (Data blocks), las bases de datos Oracle son guardadas por bloques que corresponden a un número específico de bytes en el disco. Por otra parte tenemos las Extensiones (Extents), los cuales son simplemente múltiples bloques de datos (data blocks) contiguos asignados para el almacenamiento de un tipo específico de información. En tercer lugar tenemos los Segmentos (Segments), los cuales son conjuntos de extensiones (extents) asignados a un objeto de usuario. Los ejemplos más importantes de segmentos son las tablas e índices, aunque también está la información deshecha e información temporal. Finalmente tenemos los Espacios de Tablas (Tablespaces). Una base de datos está dividida lógicamente en unidades llamadas tablespaces. En definición, un tablespace es un contenedor para un segmento de la base de datos, por ejemplo, tablas.
En nuestro próximo post entraremos en detalle en Oracle SQL. Hay muchas características relacionadas con la administración de bases de datos Oracle que tal vez no tocaremos pero que mencionaremos de vez en cuando. Lo importante a mi modo de ver, es hacer énfasis en uno de los aspectos más utilizado en las empresas por los administradores de bases de datos y profesionales de soluciones informáticas, el lenguaje SQL.
Referencias
- SYS and SYSTEM users. (2015, 30 September). In Oracle Help Center. Retrieved 20:00, November 5, 2015, from
- SQL. (2015, November 5). In Wikipedia, The Free Encyclopedia. Retrieved 01:12, November 7, 2015, from https://en.wikipedia.org/w/index.php?title=SQL&oldid=689169121
- Introduction to Oracle Database. (2015, September 30). In Oracle Help Center. Retrieved 01:12, November 7, 2015, from http://docs.oracle.com/database/121/CNCPT/intro.htm#CNCPT88791