Bases de Datos Relacionales
b) Oracle: Es un Manejador de Base de Datos Relacional
Entre las facilidades que provee Oracle tenemos:
Ambientes Cliente-Servidor: Oracle permite el procesamiento compartido entre el servidor de base
de datos y los programas de aplicación de cliente.
Grandes bases de datos y administración del espacio: Oracle soporta la más grande base de datos,
potencialmente hablando en términos de terabytes.
Muchos usuarios concurrentemente: Oracle soporta gran número de usuarios en forma concurrente,
ejecutando una variedad de aplicaciones de base de datos que manipulan los mismos datos. Garantiza la
concurrencia.
Alto rendimiento en Procesamiento de Transacciones: Oracle mantiene sus niveles de servicio con
un alto grado de rendimiento. Los usuarios de la base de datos no se ven afectados pro demoras en los tiempos
de respuesta de sus transacciones.
Manejo de la seguridad: Para proteger contra el uso y acceso no autorizado de los datos, Oracle
proporciona facilidades de seguridad para limitar y monitorear el acceso a los datos.
Integridad: Oracle fortalece la integridad de los datos. Como resultado, los costos de codificación y
manejo de verificaciones (validaciones), en muchas aplicaciones de base de datos, son eliminados.
Sistemas Distribuidos: Para redes de computadoras, en ambientes distribuidos, Oracle combina los
datos localizados en computadoras diferentes en una base de datos lógica que puede ser accedida por todos los
usuarios de la red físicamente.
Portabilidad: El software de Oracle tiene la capacidad de ser portable para trabajar bajo diferentes
sistemas operativos.
Compatibilidad: Oracle es compatible con los estándares de la industria, incluyendo la mayoría de
los sistemas operativos estándares. Las aplicaciones desarrolladas para Oracle pueden utilizarse en cualquier
sistema operativo con poca o ninguna modificación.
Replicación de Datos: El software de Oracle le permite replicar grupos de tablas y soportar objetos
en múltiples localidades. La tecnología de replicación flexible de Oracle soporta la replicación de localidad
primaria básica, así como también el modelo avanzado dinámico y compartido.
Arquitectura del Manejador:
Oracle Server es un sistema de administración de base de datos relacional que proporciona un
esquema abierto, comprensivo y facilidades integradas para el manejo de información.
Estructura y Manejo del espacio
RSMBD posee tres aspectos principales:
Estructura
Operaciones
Reglas de Integridad
RSMBD ofrece independencia entre la estructura física de la BD y la estructura
lógica de la BD.
Estructura de la base de datos:
Una base de datos Oracle tiene una estructura física y una estructura lógica, ambas separadas para
que el almacenamiento físico de datos pueda ser manipulado sin afectar el acceso a las estructuras del
almacenamiento lógicas.
Estructura Física: Es determinada por los archivos del sistema operativo que constituyen la base de
datos. Cada base de datos de Oracle consta de tres tipos de archivos:
Uno o más Data Files
Dos o más Redo logs
Uno o más Control Files
Data Files
Bases de Datos Relacionales
Los datos de las estructuras lógicas de la BD. son almacenados físicamente en los data files.
Un data file puede ser asociada a una sola Base de Datos.
Una vez creado un datafile, no puede cambiar su talla.
Uno o más data files forman una unidad lógica de almacenamiento
llamada Tabla Space.
Redo Log
Toda BD. contiene dos o más Redo Logs. Su función es registrar todos los cambios hechos en los
datos. Después de una falla, los cambios pueden ser obtenidos de los R.L. El proceso de aplicar los R.L
durante una operación de recovery es llamada Rolling Forward.
Control Files
Control files registra la estructura física de la base de datos tal como:
Nombre del Data Base
Nombre y localización de los Data Files y
Redo Logs.
Time Stamp de la creación de la BD.
Los archivos de una base de datos de Oracle proporcionan el almacenamiento físico real para la
información de la base de datos.
Estructura Lógica: Es determinada por:
Uno o más Table Spaces: Un tablespace es una área lógica de almacenamiento.
Uno o más objetos del esquema de base de datos . Un esquema es una colección de objetos.
Los objetos del esquema son las estructuras lógicas que directamente se refieren a los datos de la base de
datos. Los objetos del esquema incluyen estructuras tales como tablas, vistas, índices, cluster, sinónimos,
secuencias, procedimientos almacenados, etc..
Las estructuras lógicas de almacenamiento, incluyen los tablespaces, segmentos y extensiones, que
indican cómo el espacio físico de una base de datos es utilizado.
Elementos internos:
Tabla:
Unidad básica de almacenamiento. Son mecanismos de almacenamiento de los datos dentro de una
base de datos Oracle, consta de un conjunto fijo de columnas que describen los atributos de la entidad que se
maneja mediante la tabla. Cada columna tiene un nombre y unas características específicas.
Vistas:
Representación para el usuario de parte de una o más tablas. Permite adicional nivel de seguridad.
Simplifica los “querys” complejos.
Sinónimos:
Alias de una tabla
Usado para proveer público acceso a un objeto, permitiendo transparente localización.
Bases de Datos Relacionales
Secuencias:
Genera automáticamente un número secuencial para cada ocurrencia (Fila) de una o más tablas.
Índices y Cluster:
Son usados para incrementar el “performance” en la recuperación de los datos de una tabla.
Índices son creados sobre una o más columnas de la tabla base.
Cluster es un método opcional para almacenar juntos un grupo de tablas, debido a que comparten
columnas comunes que siempre son usadas conjuntamente (Join).
Database Link:
Es un objeto que describe un “path” de una base de datos a otra base de datos.
Data Blocks, Segments y Extents:
Son unidades básicas de almacenamiento.
Data Block (Páginas): Es la más pequeña unidad de I/O usada por una base de datos.
La talla del Data Block es especificado al momento de crear la Base de Datos.
Un data Block está compuesto por:
Header
Directorio de Tablas
Directorio de Filas
Filas de datos
Espacio libre (PCTFREE)
Segments:
Un segmento es un conjunto de extents asignados para una cierta estructura lógica.
Data Segments
Index Segments
Rollback Segments
Temporary Segments
Data Segments: Los datos de cada tabla son almacenados en los extents de un data segment.
Cada Cluster tiene un data segment.
Index Segments : Los datos de cada index son almacenados en los extents de un index
segment.
Rollback Segments
Uno o más rollback segments son creados para almacenar información temporal
usada para:
Generar lecturas consistente
Para deshacer (Rollback) transacciones de usuarios no aplicadas
(uncommitted).
Recuperar Base de datos.
Temporary Segments: Segmentos temporales son creados cuando una instrucción SQL
necesita un área de trabajo temporal para completar su ejecución.
Extents: Es un número específico contiguo de data blocks, usados para almacenar un tipo específico
de información.
Bases de Datos Relacionales
Estructura Interna, Manejo de Memoria e Integridad:
Estructura Interna:
Para acceder los datos de la base de datos, Oracle utiliza un conjunto de procesos de fondos
compartidos por todos los usuarios. Además, existen algunas estructuras de memoria que utilizan para
almacenar los datos de la base de datos más consultados recientemente. Estas áreas de memoria ayudan a
mejorar el rendimiento de la base de datos al disminuir la cantidad de operaciones de E/S de acceso a los
archivos de datos.
Las estructuras de la base de datos de Oracle pueden dividirse en tres categorías:
Las internas a la base de datos (tales como las tablas).
Las internas a las áreas de memoria (incluidas las áreas de memoria compartida y los procesos).
Las externas a la base de datos.
La base de datos Oracle utiliza dos tipos distintos de estructuras de memoria: áreas globales y áreas
de proceso.
Entre las áreas globales del sistema tenemos:
SGA (System Global Area).
Es un región de memoria compartida que contiene datos e información de control para una Instancia
de Oracle.
Database Buffer Cache
Almacena los más recientes blocks usados de la Base de Datos. Como la más reciente y frecuente
data usada está en memoria, menos operaciones de I/O a disco son necesarias y el rendimiento es
incrementado.
Redo Log Buffer
Almacena los redo logs cambiados de la BD.
Shared Pool:
Contiene las áreas de SQL compartidas, tales como árbol de parse y execution plan de la instrucción.
Los procesos servidores permite manejar requerimientos del usuario de los procesos.
Por ejemplo, si un usuario consulta alguna data que no está en los buffers del SGA, el proceso
servidor asociado lee el data blocks apropiado del data files dentro del SGA.
Entre las áreas de los procesos tenemos:
Las relaciones entre las estructuras físicas y de la memoria de la base de datos se mantienen y aplican
mediante estructuras de proceso, que son los procesos de fondo propios de la base de datos, y cuyos números
varían en función de la configuración de la base de datos. Estos procesos gestionan la base de datos. Estos son
se denominan en algunos casos procesos background.
Estos asincrónicamente efectúan operaciones de I/O y monitorean otros procesos de Oracle para
proveer incremento en el paralelismo, para mejor el rendimiento y la fiabilidad. Un SGA y los procesos de
background constituyen una Instancia en Oracle.
Cada instancia puede usar varios procesos background tales como:
Database Write (DBWR):
Escribe modificados bloques de los buffer a los data files. Para optimizar los I/O, esto solo lo hace
cuando más data debe ser leída dentro del SGA y pocos buffer están libres. Los menos recientemente usados
son escritos al primer data files.
Log Writer (LGWR):
Escribe los buffers Redo Logs en algún Redo Log on-line.
Bases de Datos Relacionales
Checkpoint (CKPT):
En un específico tiempo, todas las modificaciones en los buffers del SGA, son escritos en los data
files por el DBWR. Este evento es llamado checkpoint y se actualizan todos los data files y el control files
para indicar el más reciente ckpt.
Este es opcional, si no está presente, el LGWR asume la responsabilidad del CKPT.
System Monitor (SMON):
Ejecuta recovery de instancias en la instancia startup.
Limpia temporales segmentos que no son usados hace tiempo.
Une extents libres dentro de la BD., para hacer espacios continuos y fácil de asignar.
Process Monitor (PMON):
Ejecuta proceso de recovery cuando un user process falla. PMON es responsable de limpiar el cache
y recursos libres que el proceso usó.
Recoverer (Recuperador, RECO):
Es usado para resolver transacciones distribuidas que están pendientes en la red
o fallas en una base de datos distribuida.
Despachadores (Dnnn)
Presentes solamente cuando configuración multi-threaded server es usada. Al menos un despachador
proceso es creado para cada protocolo de comunicación.
Lock (LCKn):
Son usados para inter-instance locking cuando Servidores en Paralelo son usados.
Seguridad de la Base de Datos:
Los sistemas de base de datos multiusuario, como Oracle, incluyen rasgos de seguridad que
controlan cómo una base de datos se accede y se usa. Por ejemplo, mecanismos de seguridad:
previenen acceso no autorizados de la base de datos
previenen acceso no autorizado a los objetos del esquema
controlan el uso del disco
controlan el uso de los recursos de sistema (como CPU)
intervienen acciones del usuario
Asociado con cada usuario de la base de datos existe un esquema, el cual consiste en una colección
lógica de objetos de la base de datos (tablas, vistas, secuencias, sinónimos, índices, clusters, procedimientos,
paquetes, etc..). Por defecto, cada base de datos que el usuario crea tiene acceso a todos los objetos en el
esquema correspondiente.
La seguridad de la base de datos puede ser clasificada en dos categorías distintas: seguridad del
sistema y seguridad de los datos.
La seguridad del sistema incluye los mecanismos que controlan el acceso y usan la base de datos al
nivel del sistema. Por ejemplo, la seguridad del sistema incluye:
combinaciones del username/ password válidas
cantidad de espacio en disco disponible a los objetos del esquema de un usuario
Sistema seguridad y mecanismos de chequeo:
Bases de Datos Relacionales
si un usuario está autorizado para conectarse a la base de datos
si la base de datos está activa
qué funciones del sistema un usuario puede realizar
La seguridad de los datos incluye los mecanismos que controlan el acceso y usan la base de datos al
nivel de objeto de esquema.
Mecanismos de Seguridad:
El servidor Oracle proporciona mando de acceso discrecional del que es un medio restrictivo para
acceder a información basada en privilegios. El privilegio apropiado debe ser asignado a un usuario para que
ese usuario acceda un objeto del esquema. Apropiadamente los usuarios privilegiados pueden conceder otros
privilegios de los usuarios a su discreción; por esta razón, este tipo de seguridad se llama “discrecional”.
Oracle maneja la seguridad de la base de datos usando varios medios:
* los usuarios de la base de datos y los esquemas
* los privilegios
* los roles
* las escenas del almacenamiento y cuotas
* los límites del recurso
Respaldo y Recuperación.
En cada sistema de base de datos, la posibilidad de un sistema o fracaso del hardware siempre existe.
Si un fracaso ocurre y afecta la base de datos, la base de datos debe recuperarse.
Las metas después de un fracaso es asegurar que los efectos de todas las transacciones
comprometidas se reflejen en la base de datos recuperada y para devolver el funcionamiento normal tan
rápido como sea posible mientras que los usuarios estén aislantes de problemas causados por el fracaso.
Existen tres métodos de realizar una copia de seguridad de una base de datos Oracle: exportaciones,
copias de seguridad en frío y copias de seguridad en caliente. Una exportación es una copia de seguridad
lógica de la base de datos; los otros dos métodos son copias de seguridad física.
Copias de seguridad lógica: Una copia de seguridad lógica de la base de datos supone la lectura de
un conjunto de registros de la base de datos y su escritura en un archivo. Estos registros se leen
independientemente de su ubicación física. En Oracle, la utilidad Export, permite realizar este tipo de copia de
seguridad de la base de datos, mientras que la utilidad Import de Oracle sirve para recuperar los datos del
archivo generado con una exportación.
Respaldo en Frío:
Este método de respaldo es el más restrictivo de todos. Sólo hay una manera de hacerlo y una forma
de usarlo. “El respaldo en frío sólo debe hacerse cuando la base de datos está cerrada”
Respaldo en Caliente:
Los respaldos en caliente son una consecuencia de una funcionalidad de Oracle. El modo Archive.
Oracle registra todos los cambios que se hacen a la base de datos pro muy mínimos en los archivos log,
también llamados Redo logs. La idea del modo Archive es la de respaldar estos Redo Logs.
Concurrencia:
Una preocupación básica de un sistema manejador de base de datos multiusuario, es cómo controlar
la concurrencia, o el acceso simultáneo de los mismos datos por muchos usuarios. Sin un control adecuado de
Bases de Datos Relacionales
la concurrencia, los datos podrían ser actualizados o cambiados inadecuadamente, comprometido la integridad
de los mismos.
Si muchas personas están accediendo los mismos datos, una manera de manejo de concurrencia, es
hacer que cada usuario espere su turno. La meta del manejador de base de datos es reducir esa espera, de
manera que sea inexistente o despreciable para cada usuario.
Todas las instrucciones de manipulación de datos (DML) deben ejecutarse con una interferencia
mínima de tiempo, tanto como sea posible, y las interacciones destructivas entre las transacciones
coexistentes deben ser prevenidas. Una interacción destructiva es cualquier interacción que actualiza los datos
o latera estructuras de los datos incorrectamente.
Oracle resuelve estas dificultades utilizando tipos de bloqueos y un modelo de multiversión
consistencia. Sin embargo, es responsabilidad del diseñador de la aplicación asegurar que las transacciones
aprovechen las facilidades de manejo de Concurrencia y Consistencia.
Lectura de Consistencia (Read Consistency): Garantía de que el conjunto de datos manipulados por
una instrucción son consistentes con respecto a un punto en el tiempo y no cambian durante la ejecución de la
instrucción.
Lectura de Consistencia, Rollback Segments y Transacciones : Para manejar el modelo de
multiversión de consistencia, Oracle debe crear un conjunto de datos read consistent cuando una tabla está
siendo consultada (read) y simultáneamente actualizada (write).
Mecanismos de Bloqueo:
Oracle también utiliza mecanismos de bloqueo para controlar el acceso concurrente a los datos. Los
bloqueos son mecanismos pensados para prevenir la interacción destructiva (que puede crear inconsistencia)
entre usuarios que acceden a los datos en Oracle.
Los bloqueos son utilizados para lograr dos metas importantes:
- La consistencia que asegura que los datos que un usuario está viendo o cambiando no se cambian
(por otros usuarios), hasta que el usuario), hasta que el usuario haya terminado de accederlos.
- La integridad asegura que los datos y la estructura de la base de datos, reflejen todos los cambios
realizados en el orden correcto.
Los mecanismos de bloqueo garantizan la integridad de los datos, mientras que permiten el acceso a
los datos concurrentemente, por ilimitado número de usuarios.
Bloqueo Automático: El bloqueo de Oracle se realiza automáticamente y no requiere ninguna acción
por parte del usuario. El bloqueo implícito ocurre para las instrucciones de SQL y son necesarios dependiendo
de la acción requerida.
El manejador de Oracle automáticamente bloquea los datos de una tabla a nivel de fila. De esta
manera, la contención para los datos de esa tabla es minimizada.
El manejador de bloqueo de Oracle mantiene varios tipos diferentes de bloqueos de filas,
dependiendo de qué tipo de operación originó el bloqueo. En general hay dos tipos de bloqueos: bloqueo
exclusivo y bloqueo compartido. Sólo un bloqueo exclusivo puede obtenerse de un recurso (como una fila o
una tabla); sin embargo, muchos bloqueos compartidos pueden obtenerse de un recurso simple. Ambos, el
bloqueo exclusivo o compartido siempre permiten consultas en el recurso bloqueado, pero se prohibe otro tipo
de actividad en el recurso (actualizaciones y eliminaciones).
Bloqueo Manual: En algunas circunstancias, un usuario puede querer modificar el valor por defecto
del bloqueo. Oracle permite que se modifiquen las opciones de bloqueo automático para ambos: a nivel de la
fila y a nivel de tabla.