Arquitectura Del DBMS Oracle
Arquitectura Del DBMS Oracle
Arquitectura Del DBMS Oracle
DBMS Oracle
guía de iniciación
Este trabajo está protegido bajo una licencia de Creative Commons del
tipo Attribution-NonCommercial-ShareAlike.
Para ver una copia de esta licencia visite:
http://creativecommons.org/licenses/by-nc-sa/2.0/
o envíe una carta a:
Creative Commons, 559 Nathan Abbott Way, Stanford, California
94305, USA.
<1>
<2>
Los contenidos de este documento están protegidos bajo una licencia de Creative Commons
del tipo Attribution-Noncomercial-Share Alike. Con esta licencia:
Eres libre de:
• Copiar, distribuir y mostrar este trabajo
• Realizar modificaciones de este trabajo
Esta nota no es la licencia completa de la obra, sino una traducción del resumen en formato
comprensible del texto legal. La licencia original completa (jurídicamente válida y pendiente
de su traducción oficial al español) está disponible en
http://creativecommons.org/licenses/by-nc-sa/2.0/legalcode
<3>
índice
índice.............................................................................................. 5
notas sobre el funcionamiento de los RDBMS ............................... 7
introducción........................................................................................ 7
diccionario de datos ............................................................................ 7
conexión a un sistema gestor de bases de datos .................................... 8
herramientas que proporcionan los RDBMS ........................................... 8
términos relacionados con los sistemas gestores de bases de datos ......... 9
aproximación a Oracle ................................................................ 11
base de datos objeto-relacional.......................................................... 11
breve historia de Oracle..................................................................... 11
otros servidores ................................................................................. 12
estrategia de Oracle .......................................................................... 12
servidor Oracle ............................................................................ 14
introducción...................................................................................... 14
elementos del servidor Oracle ............................................................ 14
conexiones........................................................................................ 14
estructura de las bases de datos Oracle .............................................. 15
instancia de la base de datos ............................................................. 15
procesamiento de instrucciones SQL ................................................... 17
conceptos del sistema Oracle ...................................................... 19
almacenamiento................................................................................ 19
transacciones .................................................................................... 20
usuarios............................................................................................ 20
pérdidas de información .................................................................... 21
bases de datos distribuidas................................................................. 22
herramientas de Oracle ..................................................................... 22
<5>
notas sobre el funcionamiento de los
RDBMS
introducción
Un RDBMS es un Sistema Gestor de Bases de Datos Relacionales. Se trata de software
capaz de producir, manipular y gestionar bases de datos de tipo relacional.
Es un software que se antepone a los datos de una base de datos, de modo que
cualquier acceso a los datos pasa por una petición al RDBMS que éste gestiona a fina de
realizar la operación más conveniente sobre esa petición.
Prácticamente es un Sistema Operativo diseñado para el control del acceso a los datos.
Para conseguir este control, todo RDBMS posee una serie de subsistemas que se encargan
de gestionar cada servicio. Algunos de estos subsistemas son:
Gestión de Entrada y Salida. Para conseguir que los accesos a los datos sean
adecuados.
Control de la red. Para gestionar las conexiones a la base de datos desde la red y
evitar problemas a la base de datos en caso de desconexión.
diccionario de datos
La gran ventaja de los RDBMS consiste en que permiten gestionar los datos de forma
lógica, se utilizan estructuras más abstractas para los datos, a fin de evitar utilizar el
complicado entramado físico que posee una base de datos.
El diccionario de datos agrupa los metadatos de una base de datos. En este diccionario
aparecen todos los objetos de la base de datos; con su nombre, función, control de acceso
(seguridad) y correspondencia física en los archivos de datos.
Cada vez que llega al gestor de bases de datos una petición sobre datos de una base de
datos, el RDBMS abre el diccionario de datos para comprobar los metadatos relacionados
con la petición y resolver si hay permiso de uso y donde localizar físicamente los datos
requeridos.
<7>
arquitectura del DBMS Oracle
notas sobre el funcionamiento de los RDBMS
conexión a un sistema gestor de bases de datos
Normalmente cualquier DBMS funciona como servidor, programa que está en ejecución
esperando peticiones de conexión al sistema. En cada intento de conexión el sistema
verificará qué usuario intenta conectar y si tiene permiso se produce la conexión.
En la conexión el usuario puede ejecutar peticiones sobre la base de datos en el
lenguaje, o lenguajes, que el DBMS sea capaz de traducir.
Esto permite centralizar la información ya que el servidor se puede encontrar
absolutamente alejado del usuario que intenta acceder. De modo que el usuario puede
estar en un ordenador y el servidor en otro.
conexión local
Se trata de una conexión en la cual el servidor de base de datos y el usuario que intenta
conectar están en la misma máquina. No hace falto control de red, pero limita el uso de la
base de datos a la máquina en la que el servidor está instalado.
cliente / servidor
Se trata del método más común de trabajo. El servidor de bases de datos lanza un proceso
en la máquina central (servidor) desde la que se gestionan las bases de datos. Este
proceso está a la escucha de nuevos usuarios, cuando estos llegan se produce una conexión
que permite que el servidor y el cliente se comuniquen.
La ventaja de esta implementación reside en que se permite centralizar el sistema de
datos, lo que facilita su control. Por otro lado eso permite una accesibilidad a la base de
datos desde distintas máquinas
<8>
Copyright-Copyleft: © Jorge Sánchez 2004
Herramientas de globalización
Red. Sistema que conecta distintas máquinas. Cada red utiliza un protocolo
concreto de comunicaciones, por lo que el RDBMS utilizado debe también utilizar
esos protocol0s.
<9>
aproximación a Oracle
tipos abstractos. Permiten crear dominios complejos para almacenar datos en los
atributos de las tablas.
objetos grandes. Se trata de los llamados LOB (large object binary). Permiten
almacenar textos larguísimos, archivos externos (de los que sólo se almacenará la
dirección) y datos binarios.
<11>
arquitectura del DBMS Oracle
aproximación a Oracle
otros servidores
Los rivales de Oracle fundamentales hoy en día son:
DB/2 de IBM
ADABAS de Software AG
Informix
estrategia de Oracle
Oracle es una empresa que fabrica diversos productos. Su idea es aportar un producto
autosuficiente para el mantenimiento de datos y la creación de aplicaciones basados en
estos. Sus tres productos más importantes son:
<12>
Copyright-Copyleft: © Jorge Sánchez 2004
<13>
servidor Oracle
introducción
Un servidor Oracle es el software que permite una administración y desarrollo de bases de
datos. Tiene tres posibilidades de ejecución:
conexiones
Para establecer una sesión con la base de datos, el usuario necesita conectar con la
instancia de la base de datos. Normalmente esto significa arrancar una herramienta
cliente como SQL*Plus o ejecutar una aplicación de desarrollo de bases de datos (como
Oracle Forms); entonces se ejecuta un proceso de usuario.
Cuando esto ocurre, en el servidor se establece un proceso de servidor. Este proceso
es el encargado de comunicar al usuario con la instancia Oracle en nombre del proceso de
usuario. Cada vez que el usuario ejecuta instrucciones SQL, éstas son transmitidas a la
instancia Oracle por el proceso servidor.
De este modo una conexión es un camino entre un proceso de usuario y un servidor
Oracle.
Cada sesión es una conexión de un usuario con el servidor Oracle. Un usuario puede
establecer múltiples sesiones (si se conecta desde diferentes herramientas y máquinas)
<14>
Copyright-Copyleft: © Jorge Sánchez 2004
Procesos background
Instancia Oracle
Ilustración 1, Estructura de la instancia de Oracle
<15>
arquitectura del DBMS Oracle
servidor Oracle
La instancia de la base de datos es uno de los dos elementos de cualquier base de datos
Oracle. Sirve para gestionar los datos de la base de datos y proporcionar servicio a los
usuarios que acceden a la misma.
Está compuesta de:
Estructuras en memoria.
Procesos en segundo plano (background).
estructuras en memoria
SGA
Es la abreviatura de System Global Area, Área Global de Sistema. Está situada al inicio de
los datos de la instancia y contiene los datos e información de control de la instancia.
Está formada por las siguientes estructuras:
Otras estructuras
PGA
Zona global de los programas (Program Global Area). En ella se almacenan los datos
correspondientes a un proceso (sólo un proceso puede utilizar esta área). Incluye:
Áreas de ordenación. Para acelerar las tareas de ordenación de datos.
Información de sesión. Usuario, privilegios,...
Estado del cursor. Tareas SQL actualmente en ejecución
Espacio de pila. Variables y otros datos
<16>
Copyright-Copyleft: © Jorge Sánchez 2004
1> El usuario abre la herramienta que permite el envío de peticiones SQL (por
ejemplo SQL*Plus)
<17>
arquitectura del DBMS Oracle
servidor Oracle
3> Oracle consulta el diccionario de datos para verificar la existencia del usuario y
para validar su permiso de conexión. Si lo tiene, se produce la conexión
6> Oracle traduce los nombres usados en la instrucción con la ayuda del
diccionario de datos.
9> La base de datos graba los cambios (si les hubo) y actualiza los archivos
deshacer
10> La base de datos graba los nuevos valores para los datos
<18>
conceptos del sistema Oracle
almacenamiento
Base de datos
Tablespace
Una base de datos tiene una estructura lógica (que se manipula mediante comandos) y
una estructura física (la que realmente se almacena en disco).
Estructura lógica
Está formada por:
Tablespaces. Pertenecen sólo a una base de datos y sirven para agrupar los datos
de la base de datos. Cada tablespace está formado físicamente por uno o más
archivos de datos. Están divididos en 0 o más segmentos. Se pueden visualizar en
línea o fuera de línea y pueden ser activados en sólo lectura o en lectura / escritura.
Extensiones. División que se hace a cada segmento. El DBA puede añadir o quitar
extensiones a los segmentos a fin de hacer que ganen o pierdan espacio.
<19>
arquitectura del DBMS Oracle
conceptos del sistema
Bloque Oracle o bloque de datos. Es la unidad mínima de datos para Oracle y
se corresponde a una o más unidades de datos mínimas del sistema operativo en el
que nos encontremos.
Estructura física
Archivos de datos. Son archivos en disco que sirven para almacenar los datos
físicamente (en una unidad de disco). Cada archivo de datos pertenece sólo a un
tablespace. Su tamaño se puede gestionar.
transacciones
Los cambios en la base de datos no son guardados hasta que tras una serie de
instrucciones se decide llevar a cabo esos cambios. Hasta ese momento todo lo realizado se
toma como provisional. Un fallo en la máquina permitiría invertir los cambios.
Una transacción son varias operaciones SQL que forman una unidad de trabajo.
Comienza cuando una persona se conecta y de ahí hasta que ejecuta la instrucción
commit (ejecutar la transacción) o rollback (anular la transacción). La anulación deja la
base de datos en el estado anterior al comienzo de la transacción. Tras un commit o un
rollback comienza la siguiente transacción.
En Oracle se admite además el uso de puntos de ruptura (checkpoints) para
almacenar valores intermedios y volver a cualquier de ellos si interesa. Pero esto ralentiza
excesivamente el sistema.
usuarios
Los usuarios son las personas que acceden de una forma o de otra a la base de datos. Cada
usuario tiene una vista determinada de la base de datos. Hay varios conceptos sobre los
usuarios a tener en cuenta.
privilegios
Controlan el permiso que posee un usuario de ejecutar una determinada instrucción SQL.
Un usuario que quiera crear una tabla, deberá tener el privilegio (o permiso) adecuado
para ello.
Además se pueden colocar privilegios en los objetos, es decir, un usuario propietario de
una tabla puede otorgar privilegios a esa tabla (se trataría de un privilegio a nivel de
objeto) para que haya otros usuarios que la puedan usar.
rol
Son agrupaciones de privilegios que facilitan la tarea de gestionar a los usuarios. Así
cuando una serie de usuarios van a tener los mismos privilegios, se crea un rol que
contenga esos privilegios y a esos usuarios se les asigna el rol.
Oracle proporciona varios roles ya preparados, por ejemplo el rol DBA da privilegio
absoluto a un usuario.
<20>
Copyright-Copyleft: © Jorge Sánchez 2004
esquemas
Los esquemas están asociados a los usuarios. Agrupan los objetos lógicos que pertenecen
al usuario. Es decir es el conjunto de tablas, vistas, sinónimos, instantáneas, enlaces de
base de datos, procedimientos y funciones, paquetes,...
Cada usuario tiene su propio esquema y, en principio, un usuario no tiene acceso a los
elementos de otro usuario, salvo que sea un administrador o que otro usuario ceda el
privilegio de utilización de uno o más de sus objetos al resto de usuarios.
pérdidas de información
Es una de las tareas y herramientas fundamentales que nos proporcionan las bases de
datos. Hay posibilidad de perder datos de nuestra base de datos por alguna de estas
razones:
Caída del servidor. Puede que la instancia Oracle se deje de ejecutar. En ese caso
basta con lanzar de nuevo la instancia. El proceso SMON se encargará de grabar los
archivos rehacer y aplica de nuevo las transacciones confirmadas. Se anulan los
cambios no confirmados.
Pérdida de datos en los archivos. Es el único caso en el que tiene que intervenir
el administrador. La única posibilidad es recuperarles de una copia de seguridad
copias de seguridad
Es una de las herramientas fundamentales de toda base de datos. Al hacer la copia de
seguridad se nos permite recuperar la información de esa copia. Eso hace que perdamos
definitivamente los datos perdidos desde la última copia de seguridad, de ahí la
importancia de hacer copia a menudo.
Hay una posibilidad de perder menos información y es hacer que la base de datos se
ejecute en modo Archivo Log, lo que significa que se almacena en un archivo de datos
especial, los datos que se van rechazando en los registros rehacer por estar llenos. Lo malo
de esta opción, es que el servidor funciona más lento; lo bueno es que en caso de desastre
se pueden recuperar los datos almacenados.
Hay dos tipos de copia de seguridad:
herramientas de Oracle
El software del sistema de bases de datos Oracle incorpora herramientas para realizar la
mayoría de tareas comunes en una base de datos:
SQL*plus. Programa cliente que permite conexión con el servidor Oracle para
enviarle secuencias SQL y PL/SQL
<22>
Copyright-Copyleft: © Jorge Sánchez 2004
Oracle Forms. Permite crear aplicaciones visuales sobre bases de datos de Oracle
<23>