Está en la página 1de 28

Unidad I

Vista Global de la Arquitectura de Datos


Sistema Manejador de Bases de Datos

Un sistema manejador de bases de datos (Database Management System o DBMS)


es un sistema de software que controla el almacenamiento, organizacin y recuperacin
de datos. Normalmente un DBMS tiene los siguientes elementos:

Cdigo de Kernel: Maneja la memoria y el almacenamiento del DBMS

Repositorio de metadatos: Usualmente es llamado diccionario de datos, una


coleccin de tablas y vistas de la base de datos que contiene informacin de
referencia acerca de la base de datos, sus estructuras y usuarios (en conjunto,
objetos de la base de datos)

Lenguaje de consultas: El lenguaje que permite que las aplicaciones consulten


los datos

Una aplicacin de base de datos es un programa de software que interacta con la


base de datos para acceder y manipular los datos.

Modelo de Base de Datos Relacional

Base de Datos: Es un conjunto de archivos que contienen datos y que se encuentran


ubicados en un medio de almacenamiento (uno o ms discos duros).
Base de datos relacional: Es una base de datos que implementa el modelo de
relacional.
El modelo relacional define los siguientes aspectos:

Estructuras: Objetos bien definidos para almacenar o acceder a los datos de la


base de datos.

Operaciones: Acciones claramente definidas que permiten a las aplicaciones


manipular datos y estructuras de una base de datos.

Reglas de integridad: Reglas que gobiernan las operaciones de las estructuras


y los datos en una base de datos.

Una base de datos relacional almacena los datos en un conjunto de relaciones simples.
Una relacin es un conjunto de tuplas.
Una tupla es un conjunto desordenado de valores de atributos.
Una tabla es la representacin en dos dimensiones de una relacin en la forma de filas
(tuplas) y columnas (atributos).
En una tabla cada columna representa un dominio de datos, cada columna tiene un
nombre y un tipo de datos asociado.
Una fila contiene un conjunto de informacin perteneciente a diferentes columnas pero
corresponde a un solo registro.
Una base de datos relacional almacena los datos en relaciones (tablas).

Sistema Manejador de Bases de Datos Relacionales


Un Sistema Manejador de Bases de Datos Relacionales (Relational Database
Management System o RDBMS) se basa en el modelo relacional e incorpora los datos a
la base de datos, almacena los datos y los recupera para que las aplicaciones puedan
manipularlos.

Un RDBMS distingue entre dos tipos de operaciones:

Operaciones lgicas: Una aplicacin especifica qu contenido es requerido.


Ejemplo: una consulta o un alta

Operaciones fsicas: El RDBMS determina cmo deben realizarse las acciones


y realiza la operacin. Ejemplo: El uso de ndices, recorrido de tuplas, etc.

Oracle Database Architecture

Instancia de Base de Datos


Un servidor de base de datos es la clave para el manejo de informacin. Administra de
manera confiable una gran cantidad de datos en un ambiente multiusuario por lo que los
usuarios pueden acceder a la misma informacin.

Los archivos de una base de datos pueden existir independientemente de una instancia.

Una instancia de base de datos es un conjunto de estructuras de memoria que


manejan los archivos de base de datos. La instancia consiste de un rea de memoria
compartida (llamada rea Global del Sistema, SGA) y un conjunto de procesos de
segundo plano (background processes).

Comandos para abrir y cerrar una instancia

Conectarse al SMBD Oracle:


SQL> connect / as sysdba

Iniciar una instancia


SQL> startup open alumnos
pfile=/Oracle/oraclehome/admin/test/pfile/init.ora

Iniciar una instancia si no se tiene una base de datos creada


SQL> startup nomount
pfile=/Oracle/oraclehome/admin/test/pfile/init.ora

Cerrar una instancia, esperando a que los usuarios y procesosse desconecten


SQL> shutdown

Cerrar una instancia, sin esperar a que los usuarios terminen e impidiendo la conexin
de nuevos usuarios
SQL> shutdown inmediate

Cerrar una instancia por la terminacin de algn proceso de segundo plano en forma
anormal
SQL> shutdown abort

Perspectiva fsica y lgica de una base de datos

Los datos fsicos pueden ser vistos a nivel de sistema operativo. Por ejemplo los
archivos de la base de datos.

Los datos lgicos son aquellos como las tablas que solamente son significativos dentro
del contexto de la base de datos.

Las bases de datos tienen estructuras fsicas y lgicas que se mantienen separadas.
Ejemplo: renombrar un archivo de la base de datos no modifica el nombre de una tabla.

Archivos de Base de Datos

Las estructuras fsicas de base de datos (archivos) son los archivos en que se guardan
los datos. Cuando se crea una base de datos, los siguientes archivos se generan:

Archivos de datos (data files): Cada archivo de una base de datos en Oracle
tiene uno o ms archivos fsicos, que contienen todos los datos. Las estructuras
lgicas de bases de datos como tablas e ndices son almacenadas en los
archivos de datos.

Archivos de control: Cada base de datos Oracle tiene un archivo de control que
contiene metadatos que especifican la estructura fsica de la base de datos,
incluyendo el nombre de la base de datos y los nombres y ubicaciones de los
archivos de la base de datos.

Archivos de reconstruccin en lnea (Redo Log Files): Cada base de datos


Oracle tiene un conjunto de dos o ms (se recomienda que sean al menos tres)
archivos de reconstruccin en lnea. Estos archivos contienen registros de cada
uno de los cambios realizados a los datos.

Ejemplos de operaciones con los archivos de control

Para establecer los archivos de control se modifica el parmetro CONTROL_FILES en el


archivo init.ora
control_files=(/db01/Oracle/ORA1/archivo1.ctl,
/db02/Oracle/ORA1/archivo2.ctl,
/db03/Oracle/ORA1/archivo3.ctl)

Si esto se hace antes de crear la base de datos, entonces Oracle los crea
automticamente. Si lo que se desea es aadir uno entonces se cierra la base de
datos se copia el nuevo archivo a la nueva ubicacin, se da de alta en el archivo
init.ora y se reinicia la base de datos.
Describir la estructura de un archivo de control
SQL> desc v$controlfile
Listar los archivos de control
SQL> select * from v$controlfile

Ejemplos de operaciones con los registros de reconstruccin

Revisar la composicin lgica de un archivo de reconstruccin


SQL> desc v$logfile

Revisar los archivos de reconstruccin en lnea


SQL> select * from v$logfile;

Aadir un grupo de archivos de registro de reconstruccin


SQL> alter database add logfile group 4
(db01/Oracle/cc1/log_1c.log,
db02/Oracle/cc1/log_2c.log) size 5M;

Aadir un archivo de registro a un grupo existente:


SQL>
alter
database
add
db03/Oracle/cc1/log_1c.log to group 4;

logfile

member

Otros archivos

Archivos de reconstruccin archivados: Son miembros de los archivos de


reconstruccin en lnea que han sido archivados por la base de datos. Estos archivos
pueden ser aplicados a un respaldo de base de datos en la recuperacin de medios.

Segmentos de anulacin (Flashback logs): Son registros almacenados por Oracle


para deshacer cambios anteriores a un estado especfico en el tiempo cuando se realiza
una operacin de recuperacin.

Archivo de inicializacin (init.ora): Es un archivo de texto que contiene los parmetros


de inicializacin de la instancia. Generalmente se encuentra en la trayectoria:
/ORACLE_HOME/dbs

Ejemplo de init.ora
###################################################################
###########
# Example INIT.ORA file
#
# This file is provided by Oracle Corporation to help you start by
providing
# a starting point to customize your RDBMS installation for your
site.
#
# NOTE: The values that are used in this file are only intended to
be used
# as a starting point. You may want to adjust/tune those values to
your
# specific hardware and needs. You may also consider using Database
# Configuration Assistant tool (DBCA) to create INIT file and to
size your
# initial set of tablespaces based on the user input.
###################################################################
############
# Change '<ORACLE_BASE>' to point to the oracle base (the one you
specify at
# install time)
db_name='ORCL'
memory_target=1G
processes = 150
db_block_size=8192
db_domain=''
db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='<ORACLE_BASE>'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'

open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate
physical
# devices
control_files = (ora_control1, ora_control2)
compatible ='12.0.0'

Estructuras de Memoria

rea Global del Sistema (SGA): Es un grupo de estructuras de memoria compartida


(tambin conocidos como componentes SGA) que contienen datos e informacin de
control para una instancia de base de datos.
rea Global de Programas (PGA): Es una regin de memoria no compartida que
contiene datos e informacin de control para un servidor o un proceso de segundo
plano. El acceso a la PGA es exclusivo para los procesos. Cada proceso de servidor y
de segundo plano tiene su propia PGA. Se crea la PGA cada vez que inicia un proceso
de Oracle.
PGA de la instancia: Es la coleccin de todas las PGA individuales, tambin se conoce
como PGA total.
Memoria Global de Usuario (UGA): Es la memoria que se asocia a una sesin de
usuario.
reas de cdigo de software: Son porciones de memoria utilizadas para almacenar
cdigo que ha sido o que puede ser ejecutado. ste cdigo es diferente al de los
programas de usuario.

Revisar las reas de memoria de Oracle

Revisar el tamao de la SGA


SQL> show sga

Un mtodo alterno:
SQL> select * from v$sga;

Obtener estadsticas de uso de la PGA:


SQL> select * from v$pgastat;

Estructura de la SGA

Los principales componentes de la SGA son:


Cach de Buffer de base de datos (Database Buffer Cache): Es el rea de
memoria en la que se copian los bloques de datos ledos desde los archivos de
datos.
Almacenamiento de columnas en memoria (In-Memory Column Store): Es un
rea opcional de memoria esttica, almacena copias de tablas y particiones en
un formato de columnas especial optimizado para recorridos rpidos.

Buffer del Registro de reconstruccin (Redo Log Buffer): Es un buffer circular


(reutilizable) en la SGA que almacena entradas de reconstruccin que describen
los cambios hechos a la base de datos.

Pool compartido (Shared Pool): Se relaciona con casi todas las operaciones de
la base de datos. Almacena varios tipos de datos de programa, como cdigo
SQL, PL/SQL parmetros del sistema e informacin del diccionario de datos.

Gran pool (Large Pool): Es un rea de memoria opcional que se destina a ubicar
segmentos de memoria que son demasiado grandes como para ubicarse en el
pool compartido. Proporciona segmentos de memoria de gran tamao para la
UGA, buffers de mensajes, buffers de E/S de los procesos de recuperacin
(RMAN).

Pool de Java (Java Pool): Es un rea de memoria que almacena cdigo Java
especfico para la sesin y datos dentro de la Java Virtual Machine (JVM). Esta
memoria incluye objetos de Java que son migrados del espaci de sesin de
Java al final de la llamada.

Pool de corrientes (Streams Pool): Almacena mensajes encolados y provee


memoria para la captura de corrientes de procesos de captura de Oracle y aplica
procesos de Oracle Streams.

SGA fija (Fixed SGA): Es un rea de manejo interno de la instancia. Contiene


informacin general acerca de la instancia de base de datos utilizada por los
procesos de segundo plano e informacin de comunicacin entre procesos.

Estructura del Pool Compartido

El pool compartido se compone de:

Cach de libreras: almacena cdigo ejecutable SQL y PL/SQL y en algunos


casos (cuando se usa servidor compartido) las reas privadas de SQL. Permite
la reutilizacin de consultas.

Cach del diccionario de datos: es una coleccin de tablas y vistas de base de


datos que contienen informacin de referencia acerca de la base de datos, sus
estructuras y sus usuarios.

Cach de resultados del servidor: es un pool de memoria que guarda


conjuntos de resultados (no bloques de datos). Contiene la cach de resultados
de SQL y la cach de resultados de funciones PL/SQL.

Pool reservado: es un rea de memoria que Oracle utiliza para ubicar trozos
grandes de memoria continuos.

Estructura de la PGA

La PGA est dividida en diferentes sub-reas, cada una con un propsito diferente:
rea privada de SQL: Mantiene informacin acerca de una sentencia SQL
analizada e informacin especfica para procesamiento (no confundir con el rea
SQL privada que se encuentra en la UGA). Se divide en:

rea de tiempo de ejecucin (Run-time area): Contiene informacin


acerca del estado de ejecucin de un query.

rea persistente: Contiene valores de variables de unin (bind


variables).

Un rea privada de SQL especfica se nombra con un cursor.

reas de trabajo de SQL: Son segmentos privados de memoria de la PGA


utilizados para operaciones intensivas en memoria. Ejemplos de estas tareas son
una ordenacin que requiere construir una tabla hash un ndice de mapa de bits
para unir los datos obtenidos de recorridos a mltiples ndices.

Estructura de la UGA

Es la memoria de sesin que almacena variables de sesin, tales como la informacin


de ingreso y otra informacin requerida por la base de datos. La UGA guarda el estado
de la sesin.

Si la sesin guarda un paquete PL/SQL en memoria, la UGA contiene el estado del


paquete, que es un conjunto de valores almacenados en todas las variables del paquete
en un tiempo especfico.

El pool de pgina OLAP (On-Line Analytic Process) es tambin almacenado en la UGA.


Maneja pginas OLAP que son equivalentes a bloques de datos. Se asigna al inicio de
una sesin OLAP y se libera al terminar sta.

Una sesin OLAP inicia automticamente cuando un usuario requiere un objeto


multidimensional, como es un cubo.

La UGA est disponible durante todo el tiempo que dure la sesin.

Procesos del Servidor

Oracle crea procesos de servidor para manejar las solicitudes de los procesos del
cliente conectados a la instancia. Un proceso cliente siempre se comunica con la base
de datos a travs de procesos del servidor. Estos procesos realizan tareas como:

Analizar y ejecutar sentencias SQL enviadas a travs de una aplicacin.

Ejecutar cdigo PL/SQL.

Leer/escribir bloques de datos de los archivos de datos al cach del buffer de la


base de datos (a travs del proceso DBW).

Regresar resultados de tal forma que la aplicacin pueda procesar la


informacin.

Procesos dedicados del servidor: En las conexiones dedicadas del servidor, la


conexin del cliente se asocia solamente un solo proceso del servidor, que es con el que
se comunica.

Procesos compartidos del servidor: En las conexiones compartidas del servidor, las
conexiones de los clientes se conectan a travs de una red a un proceso despachador,
no a un proceso de servidor. El despachador encola las solicitudes en el gran pool y una
vez que se tiene un resultado lo transmite al cliente.

Procesos de Segundo Plano

Son procesos adicionales utilizados por una base de datos Oracle multiprocesamiento.
Los procesos de segundo plano realizan tareas de mantenimiento requeridas para
operar la base de datos y maximizar el desempeo para mltiples usuarios.

Cada proceso de segundo plano tiene una tarea separada, pero colabora con otros
procesos.

Los procesos de segundo plano se pueden clasificar en:

Obligatorios

Opcionales

Esclavos

Procesos Obligatorios de Segundo Plano

Proceso Monitor de Proceso (Process Monitor Process, PMON): Monitorea los otros
procesos de segundo plano y realiza el proceso de recuperacin cuando un servidor o
un proceso despachador termina anormalmente. Es responsable de limpiar el cach de
buffer de la base de datos y liberar recursos que el proceso cliente estaba usando.

Proceso de Registro de Escucha (Listener Registration Process, LREG): Registra


informacin de la instancia de base de datos y los procesos del despachador con el
Oracle Net Listener. Cuando una instancia inicia, LREG monitorea el listener para
determinar si est ejecutndose.

Proceso Monitor del Sistema (Monitor System Process, SMON): Se encarga de una
serie de tareas de limpieza del sistema que incluyen, realizar la recuperacin de la
instancia si es necesario al iniciar la instancia, recuperar transacciones terminadas que
fueron omitidas durante la recuperacin de la instancia, limpiar segmentos temporales
no utilizados, consolidar extensiones libres en los espacios de tablas manejados por el
diccionario.

Proceso Escritor de Base de Datos (Database Writer Process, DBW): Escribe los
contenidos de los buffers de base de datos en los archivos de datos. Aunque solamente
se requiere un proceso para realizar esta tarea (DBW0) se pueden configurar procesos
adicionales (DBW1DBWz, BW36bW99) para mejorar el desempeo.

Proceso Escritor de Registros (Log Writer Proces, LOGWR): Administra el buffer de


registro de reconstruccin y escribe las actualizaciones.

Proceso de chequeo (Checkpoint Process, CKPT): Actualiza el archivo de control y los


archivos de encabezado de datos con informacin del punto de chequeo y alerta al
DBW para que escriba bloques en el disco. La informacin de punto de chequeo incluye
la posicin de chequeo, SCN, localizacin en el registro de reconstruccin en lnea, etc.

Proceso de Monitoreo de Administrabilidad (Manegeability Monitor Process, MMON y


MMNL): Realiza tareas relacionadas con el repositorio automtico de cargas (Automatic
Workload Repository, AWR). El pequeo proceso de manejabilidad (Manegeability
Monitor Little Process, MMNL) escribe estadsticas del buffer de la Historia de Sesin
Activa (Active Session History, ASH) en la SGA a disco cuando el buffer est lleno.

Proceso de recuperacin (Recoverer Process, RECO): En una base de datos


distribuida, RECO resuelve automticamente las fallas en las transacciones distribuidas.
RECO se conecta de manera automtica con otras bases de datos envueltas en
transacciones distribuidas dudosas para remover todas las transacciones que hayan
quedado pendientes.

Procesos Opcionales de Segundo Plano

Procesos de archivador (Archiver Process, ARCn): copia los archivos de registro de


reconstruccin en lnea al almacenamiento fuera de lnea despus de que ocurre un
cambio de registros de reconstruccin. El proceso puede recolectar datos de
reconstruccin de transacciones y transmitirlas a los destinos de base de datos en
espera.

Procesos de Cola de Trabajo (Job Queue Processes, CJQ0 y Jnnn): se ejecutan para
las tareas del usuario normalmente en modo de procesamiento por lotes. Cada trabajo
es una tarea definida por el usuario programada para ejecutarse una o ms veces. El
trabajo coordinador de procesos (CJQ0) se inicia u finaliza automticamente conforme lo
requiere el scheduler de Oracle. Pueden ejecutarse diferentes procesos de manera
concurrente en un determinado perodo de tiempo.

Procesos de Retroceso de Archivado de Datos (Flashback Data Archive Processes,


FBDA): archiva filas histricas y tablas bajo seguimiento en los archivos de datos de
retroceso. Cuando se ejecuta en una tabla bajo seguimiento una transaccin que
contiene DML, el proceso registra una pre-imagen de las filas a cambiar en el archivo de
datos de retroceso. Tambin conserva los metadatos en las filas actuales.

Proceso Coordinador de Administracin de Almacenamiento (Space Management


Coordinator Process, SMCO): coordina la ejecucin de varias tareas relacionadas con la
administracin del espacio, tales como la designacin activa de espacio y la reclamacin
de espacio. SMCO genera procesos esclavos (Wnnn) automticamente para
implementar la tarea.

Procesos Esclavos de Segundo Plano

Son procesos que realizan algn trabajo para otros procesos.

Procesos Esclavos de E/S (I/O Slave Processes, Innn): simulan entradas y salidas
asncronas para sistemas y dispositivos que no las soportan.

Procesos de Servidor de Ejecucin Paralela (Parallel Excecution Server Process, PX):


mltiples procesos trabajan juntos simultneamente para ejecutar una sentencia SQL; al
dividir el trabajo entre mltiples procesos se puede disminuir el tiempo de respuesta.

Arquitectura Cliente/Servidor de Oracle

En el ambiente de base de datos de Oracle, las aplicaciones de base de datos y las


bases de datos son separadas en una arquitectura cliente servidor:

El cliente ejecuta la aplicacin de base de datos. Por ejemplo SQL*Plus o una


aplicacin en Java

El servidor ejecuta el software de base de datos de Oracle y maneja las funciones


requeridas para la concurrencia y la comparticin de procesos.

Utilizar mltiples hosts para procesar una tarea individual se conoce como
procesamiento distribuido. El procesamiento de front-end y el de back-end ocurren en
diferentes computadoras. El cliente y el servidor se ubican en diferentes hosts y se
conectan a travs de los Servicios de Red de Oracle (Oracle Net Services)

Arquitectura de Red de Oracle

Los servicios de red de Oracle son un conjunto de componentes de red que proveen
soluciones de conectividad para toda la empresa en ambientes de cmputo
heterogneos y distribuidos.

Permiten establecer una sesin de red entre una instancia de base de datos y una
aplicacin, y de una instancia de base de datos a otra instancia de base de datos.

Los servicios de red de Oracle utilizan protocolos de comunicacin o interfaces


programticas de aplicacin (API) soportadas por una amplia cantidad de redes.

Despus de que una sesin se establece los servicios de red de Oracle actan como
mensajeros de datos para la aplicacin cliente y para el servidor de base de datos,
estableciendo y manteniendo una conexin, e intercambiando mensajes.

Software de Red

Los componentes de los servicios de red de Oracle son los siguientes:

Oracle Net: Es una capa de software que reside en el cliente y en el servidor de


base de datos. Es responsable de establecer y mantener la conexin entre la
aplicacin cliente y el servidor de base de datos, as como de intercambiar
mensajes entre ellos. Tiene dos componentes de software:

Oracle Net Foundation Layer: del lado del cliente las aplicaciones se
comunican con este programa para establecer y mantener las
comunicaciones. Utiliza TCP/IP para conectarse a la base de datos. En la
parte del servidor se enva un protocolo de red al Oracle protocol support
Layer que enva la informacin de regreso al Oracle Net Foundation Layer
para procesar la solicitud.

Oracle Protocol Support: permite utilizar los protocolos TCP/IP (IPv4 e


IPv6), TCP/IP con SSL, Named Pipes y SDP.

Oracle Net Listener: el servidor de base de datos de Oracle recibe la conexin


inicial a travs de este programa (referido generalmente como listener),
intermedia una solicitud del cliente, enva las solicitudes al servidor. Al
establecerse la conexin el cliente y el servidor se comunican directamente y el
listener ya no interviene.

Oracle Connection Manager: es el componente de software que reside en su


propia computadora separado del cliente y del servidor de bases de datos.
Representa y monitorea solicitudes para el servidor de bases de datos.

Networking Tools: Oracle provee una serie de herramientas de interface y


utileras de lnea de comandos para configurar, manejar y monitorear la red:

Oracle Net Configuration Assistant: Es una herramienta standalone que


permite configurar listeners y mtodos de nombramiento.

Oracle Enterprise Manager Cloud Control: Combina funcionalidad de


configuracin entre mltiples sistemas de archivos con el control
administrativo de listeners para proveer un ambiente integrado de
configuracin y manejo de los servicios de red de Oracle.

Oracle Net Manager: Provee funcionalidad de configuracin para un


home de Oracle en un cliente local o en un host servidor.

Command-line control utilities: permiten configurar, administrar y


monitorear los componentes de red, incluyendo listenets y Oracle
Connection Managers.

Oracle Advanced Scurity: Es un producto licenciable separadamente de Oracle


que provee Oracle Database Transparente Encryption (TDE) y Oracle Data
Redaction. TDE encripta los datos de manera que solo el receptor autorizado
pueda leerla. Oracle Data Redaction permite al administrador enmascarar los
datos de las columnas.

Arquitectura de Escucha (Listener)

Un proceso cliente y otra base de datos solicitan una conexin


El listener selecciona un manejador de servicio apropiado para servir la solicitud del cliente y
reenva la solicitud al manejador
El proceso cliente se conecta directamente al manejador del servicio. El listener ya no se
involucra en la comunicacin.

Identificacin y acceso a la base de datos

Cada base de datos se almacena en una instancia diferente.

Las instancias se identifican por un nombre de instancia (INSTANCE_NAME).

El SID es el identificador de sistema de Oracle, es un nombre que identifica una


instancia especfica para una base de datos de Oracle. Para cualquier base de datos
existe al menos una instancia refiriendo la base de datos.

Un servicio de base de datos de Oracle se presenta a los clientes como un servicio. Una
base de datos puede tener uno o ms servicios asociados.

Un nombre de servicio puede identificar mltiples instancias de base de datos y una


instancia puede pertenecer a mltiples servicios.

Para conectar a un servicio de base de datos es necesario que el cliente utilice un


descriptor de conexin que provea la ubicacin de la base de datos y el nombre del
servicio de base de datos. Se almacena en el archivo tnsnames.ora

Ejemplo de un descriptor de conexin en un archivo TNSNAMES.ora


alumnos=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=HP-SERVER)(PORT=1521))
(CONNECT_DATA=
(SID=alumnos) (SERVICE_NAME=alumnos.uaa.mx) (INSTANCE_NAME=alumnos)))

alumnos es el nombre con el que se reconocer el servicio de base de datos

DESCRIPTION contiene los datos que identifican al servicio

ADDRESS describe el protocolo a utilizar (TCP/IP), el nombre del Host (HP-SERVER) y


el puerto TCP (1521, que es el default que usa Oracle)

CONNECT-DATA contiene datos para identificar la conexin, los cuales son el SID
(alumnos), el nombre del servicio (alumnos.uaa.mx, alumnos es el nombre de la base de
datos y uaa.mx es el dominio en el que est) y el nombre de la instancia (alumnos), este
sera un dato opcional.

Almacenamiento

Estructuras de almacenamiento de las bases de datos

El almacenamiento de base de datos Oracle puede distinguir las estructuras fsicas y las
estructuras lgicas.

Las estructuras fsicas son los archivos ya descritos anteriormente.

Las estructuras lgicas permiten tener un gran control del espacio de almacenamiento:

Bloques de datos: Son el nivel de granularidad ms fino en una base de datos


Oracle. Un bloque de datos corresponde a un nmero especfico de bytes en un
disco.

Extensiones: (incrementos) Cada una de ellas representa un nmero especfico


de bloques de datos lgicamente contiguo, obtenido de una sola ubicacin y
utilizado para un determinado tipo de informacin.

Segmentos: Son conjuntos de extensiones asignados para un objeto del usuario


(por ejemplo una tabla o un ndice), datos de deshacer o datos temporales.

Espacios de tablas: Una base de datos se divide en unidades lgicas de


almacenamiento a las que se les da este nombre. Un espacio de tablas es un
contenedor lgico para un segmento. Cada espacio de tablas consiste de uno o
ms archivos de datos.

Operaciones relacionadas con las estructuras de almacenamiento

Establecer el tamao del bloque de datos de Oracle: Se establece en el archivo init.ora,


se utiliza el tamao DB_BLOCK-SIZE, por default el tamao es de 8KB.

Creacin de un espacio de tablas:


SQL> create tablespace miespacio
datafile /d0/oraclehome/admin/test/files/user02.dbf
size 5M reuse
extent management dictionary (initial 25K next 25K
minextents 5 maxextents 100 pctincrease 0);
Se crea el espacio de tablas mi espacio que se almacenar en el archivo user02.dbf, el
tamao inicial ser de 5MB y podr estar reutilizar el espacio que se vaya
desocupando. El manejo de extensiones lo har el diccionario de datos, el tamao
inicial de cualquier objeto en este caso ser de 25K, amplindose en incrementos de
25K, el mximo de extensiones a utilizar ser de 100.

Cuando no queremos que sea el diccionario de datos el que administre al espacio de


tabla, se puede establecer la gestin local:
SQL > create tablespace miespaciolocal
datafile /d1/oraclehome/admin/test/files/user03.dbf
size 5M reuse
extent management local autolocate;
Se crea un espacio de tablas miespaciolocal que se almacenar en el archivo
user03.dbf, el tamao inicial ser de 5MB, si no se especifica el tamao del objeto, la
base de datos asigna el tamao.

Operaciones relacionadas con las estructuras de almacenamiento

Si queremos que el propio espacio de tablas administre su tamao utilizaremos:

SQL > create tablespace miespaciolocal2


datafile /d1/oraclehome/admin/test/files/user04.dbf
size 5M reuse
extent management local uniform size 128K;

Se crea un espacio de tablas miespaciolocal2 que se almacenar en el archivo


user04.dbf, el tamao inicial ser de 5MB, si no se especifica el tamao del objeto, la
base de datos asigna 128 KB al tamao inicial, con incrementos de 128 KB.

Para crear un espacio de datos del tipo deshacer cambios:


SQL > create undo tablespace deshacer
datafile /d1/oraclehome/admin/test/files/deshacer.dbf
size 2M reuse
autoextend on;

Para impedir que un archivo de datos pueda crecer automticamente:


SQL> alter database datafile /d1/oraclehome/admin/test/files/user04.dbf
autoextend off;

Operaciones relacionadas con las estructuras de almacenamiento

Aadir un archivo adicional a un espacio de tablas (por ejemplo si se nos est acabando
el espacio en un disco):
SQL> alter tablespace miespaciolocal

add datafile /d2/oraclehome/admin/test/files/user05.dbf


size 2M reuse
autoextend on
next 1M maxsize 10M;

Sacar de lnea un espacio de tablas


SQL> alter tablespace miespaciolocal offline;

Poner en lnea un espacio de tablas


SQL> alter tablespace miespaciolocal online;

Eliminar un espacio de tablas (falla si el espacio de tablas no est vaco):


SQL> drop tablespace miespaciolocal;

Eliminar un espacio de tablas con todos los objetos que contenga


SQL> drop tablespace miespaciolocal including contents cascade constraints;

Eliminar un espacio de tablas con todos los objetos que contenga y el archivo de datos
en que se encuentra
SQL> drop tablespace miespaciolocal including contents and datafiles;

Ejemplo de creacin de una base de datos

El comando para crear una base de datos sera:


SQL> create database mibasedatos
logfile group 1
(db01/Oracle/cc1/log_11c.log,
db02/Oracle/cc1/log_12c.log) size 5M reuse,

logfile group 2
(db01/Oracle/cc1/log_21c.log,
db02/Oracle/cc1/log_22c.log) size 5M reuse,
logfile group 3
(db01/Oracle/cc1/log_31c.log,
db02/Oracle/cc1/log_32c.log) size 5M reuse,
datafile db01/oradata/test/datos1.dbf
size 250M reuse
maxlogfiles 20
controlfile reuse
maxdatafile 500;

Proteccin de los datos

Bloqueos

Oracle utiliza los bloqueos para garantizar que diferentes sesiones no puedan
interactuar con los mismos datos que estn utilizando otras sesiones.

Este mecanismo se usa para proteger las integridad de los datos. El SMBD lo
administra automticamente.

Los bloqueos se establecen cuando las instrucciones SQL comienzan su interaccin


con los datos y se prolongan hasta que finaliza la transaccin.

Las transacciones normalmente terminan con una instruccin commit que la confirma
o con una instruccin rollback que la anula y regresa los datos a su estado anterior a
la transaccin.

Oracle establece un bloqueo de fila compartido cuando se accede a ella como parte
del conjunto de resultados de una consulta.

Si se est realizando alguna actualizacin o borrado de registros el bloqueo pasa a


bloqueo de fila exclusivo.

Si dos sesiones solicitan actualizar el mismo registro se encolan y se ejecutarn una


despus de otra.

Existen dos tipos de bloqueos de datos:

Bloqueos DML (o bloqueos de manipulacin de datos), aseguran la integridad


de los datos en entornos multiusuario con fines de proteccin de datos.

Bloqueos DDL (o bloqueos de definicin de datos), protegen las estructura de


objetos y se establecen para actividades de definicin de datos.

Bloqueos internos

Son mecanismos de bajo nivel que contribuyen a la gestin de operaciones internas del
SMBD.

Este tipo de bloqueos se establece cuando es requerido, pero conforme incrementa la


actividad de la base de datos su ocurrencia es mayor.

Son establecidos para cuidar la integridad de algn recurso de la propia base de datos
(como la memoria compartida, los registros de reconstruccin, etc.).

Existen dos tipos de bloqueos internos:

Estar dispuesto a esperar. Significa que si no se puede obtener un bloqueo


interno a la primera, se enca una solicitud persistente hasta que se satisface la
solicitud.

Solicitud de bloqueo sin espera. Se cancela si el bloqueo interno no se puede


establecer inmediatamente y se reenva como una nueva solicitud.

También podría gustarte