Вы находитесь на странице: 1из 17

Diseo de Bases de Datos

Laboratorio 7
Bases de Datos Distribuidas en Oracle
DBD Laboratorio 7 2
Objetivos
Introduccin a las bases de datos distribuidas en
Oracle
Gestin y tipos de LINKs
Consultas en BD distribuidas
Sinnimos
Distribucin vs. Replicacin
Tipos de replicacin
DBD Laboratorio 7 3
Bases de datos distribuidas en
Oracle
Un sistema (homogneo) de bases de
datos distribuidas en Oracle es una red
de dos o ms BD Oracle que residen en
uno o ms servidores de modo que es
posible acceder a sus datos como si de
una nica BD se tratara.
Posee arquitectura cliente/servidor.
Cada ordenador en al red es un nodo
que pude actuar como cliente, servidor
o ambos.
El software de red Oracle Net debe
ejecutarse en todos los servidores y
hace posible la comunicacin entre las
BD.
DBD Laboratorio 7 4
Data Base Links (1)
Concepto central en las BD distribuidas en ORACLE
Un DB Link define un camino unidireccional desde
una BD ORACLE a otra.
Un usuario local puede acceder a travs de un link a
objetos de esquemas de otros usuarios en BD
remotas (siempre que tenga permiso suficiente para
hacerlo) como si se tratara de una nica BD.
Se almacenan en el catlogo:
SELECT db_link FROM user_db_links;
DBD Laboratorio 7 5
Data Base Links (2)
Creacin DB link:
CREATE PUBLIC DATABASE LINK nombreLink
CONNECT TO usuario IDENTIFIED BY contrasea
USING 'nombre de servicio';
Crea un link pblico de nombre nombreLink que establece un enlace
a una BD remota cuya ubicacin est descrita en el nombre de
servicio a travs un usuario y contrasea de dicha BD.
Borrado de BD link:
DROP [PUBLIC] DATABASE LINK nombreLink;
DBD Laboratorio 7 6
Nombre de servicio
Cada BD es identificada unvocamente en una BD
distribuida por un nombre global de BD. Este consta del
nombre de la BD junto con el nombre del host en la red en la
que esta BD est ubicada.
Este nombre se hace transparente al usuario mediante el
uso de nombres de servicio (service names) en la definicin
de los enlaces (links).
Los nombres de servicio se definen en el archivo
tnsnames.ora de Oracle, cuya ubicacin depende del
ordenador: c:\oracle\ora92\network\admin\tnsnames.ora

DBD Laboratorio 7 7
Nombre de servicio
NombreServiceName =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
NombreOrdenadorEnRed)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = NombreBD)
)
)
Ejemplo de definicin de nombre de servicio en tnsnames.ora
nmero IP
SID
DBD Laboratorio 7 8
Tipos de DB Links
Los enlaces pueden ser:
Privados: Slo lo puede usar el que los crea.
- (CREATE DATABASE LINK ....)
Pblicos: Lo pueden usar todos los usuarios de la BD.
- (CREATE PUBLICDATABASE LINK ....)

Los tipos de usuarios de un enlace pueden ser:
Fixed: Hay que indicar en la definicin usuario y contrasea.
Connected User (sin CONNECT): Vlido para el usuario
conectado. Debe tener en la BD remota una cuenta con el
mismo nombre de usuario y misma contrasea.
DBD Laboratorio 7 9
Acceso a objetos remotos va
links
El nombre de un objeto en una BD es unvoco dentro del
esquema de su propietario. Sin embargo, en una BD remota
puede existir un esquema con el mismo nombre, que puede
tener un objeto con el mismo nombre...
Acceso a travs de un link a un objeto remoto de un
determinado propietario en una BD remota :
propietario.nombreObjeto@nombreLink
O bien
nombreObjeto@nombreLink
si el usuario que accede al objeto es el propietario del mismo.

DBD Laboratorio 7 10
Consultas a BD remotas
Para realizar consultas en una BD distribuida podemos
utilizar objetos situados en una BD remota. Se utiliza para
ello los links previamente creados.
SELECT nombre
FROM dbb.autor@link
WHERE nacionalidad = Francia
SELECT nombre
FROM dbb.autor@link, libro
WHERE dbb.autor.idautor@link = libro.idautor
AND nacionalidad = Francia
Tabla de BD remota
Tabla de BD local
Tambin es posible realizar operaciones de actualizacin
(insert, update, delete) en la BD remota, siempre que
tengamos el permiso necesario para realizarlas.
DBD Laboratorio 7 11
Snonimos (1)
Permite referirse a un nombre global de un objeto a travs del sinnimo.
Esconde el acceso remoto a la tabla haciendo transparente su acceso.
El parmetro PUBLIC hace disponible el sinnimo para todos los
usuarios.
Creacin de sinnimos
CREATE [PUBLIC] SYNONYM nombreSinomimo FOR nombreObjeto;
Las referencias a las tablas de la BD remota en las
anteriores consultas no son transparentes al usuario:
necesita conocer el nombre del link y el propietario de la
tabla. Para hacerlas totalmente transparentes se pueden
definir sinnimos.
DBD Laboratorio 7 12
Snonimos (2)
SELECT nombre
FROM autores
WHERE nacionalidad = Francia
Sinnimo
Borrado de sinnimos
DROP[PUBLIC] SYNONYM autores;
CREATE SYNONYM autores FOR dbb.autor@link;
Ejemplo de creacin de sinnimo
autores acta como sinnimo de dbb.autor@link
Ahora podemos definir consultas totalmente transparentes al usuario:
DBD Laboratorio 7 13
Replicacin vs Distribucin
Los trminos distribucin de datos y replicacin de datos estn
relacionados pero son distintos.
En una BD distribuida pura (sin replicacin) el sistema maneja una
copia simple de todos los datos. Distribuir los datos consiste en
situarlos en las distintas BD.
El trmino replicacin se refiere a realizar copias de los mismos
datos en diferentes BD.
La replicacin se utiliza en BDD para mejorar la disponibilidad y
seguridad de los datos. Se pretende proporcionar distintas
alternativas de acceso a los mismos, as como mejorar el
rendimiento, a travs de accesos locales a copias de datos
remotos.
La replicacin complica la administracin de la BDD ya que es
necesario mantener en todo momento la consistencia de los datos
en todas las rplicas.

DBD Laboratorio 7 14
Tipos de Replicacin
Oracle soporta varios tipos de replicacin:
Vistas materializadas (materialized views): los datos de un sitio
maestro se duplican en forma de instantneas en otros sitios.
Hay dos tipos:
o Slo lectura (read-only): tablas de slo lectura cuyos datos
se refrescan a intervalos especificados. Estn creadas a
partir de consultas sobre una o ms tablas remotas.
o Actualizables (updateable): se permite la modificacin de
datos sobre la instantnea. Estas modificaciones se
propagan hasta la tabla maestra.
Replicacin avanzada: replicacin de los datos en varios sitios
maestros. Se puede actualizar una tabla en cualquiera de los
sitios maestros y la actualizacin se propaga al resto de los
sitios.
DBD Laboratorio 7 15
Vistas materializadas (1)
SELECT nombre
FROM autor
WHERE nacionalidad = Francia
CREATE MATERIALIZED VIEW autor
AS select * from dbb.autor@link;
Creacin de vista materializada (de solo lectura)
- A diferencia de las vistas, las vistas materializadas hacen una rplica de los datos.
- Las vistas materializadas de solo lectura no permiten la modificacin de los datos
Creamos una vista materializada llamada autor que contiene todos los
datos de la tabla maestra dbb.autor@link.
Ahora, podemos seleccionar datos de la vista materializada:
DBD Laboratorio 7 16
Vistas materializadas (2)
CREATE MATERIALIZED VIEW autor
AS select * from dbb.autor@link
where dbb.autor.name@link=pepe;
Fragmentacin horizontal
CREATE MATERIALIZED VIEW autor
AS select dbb.autor.name@link from dbb.autor@link;
Fragmentacin vertical
Podemos simular la fragmentacin a travs de la consulta que est
contenida en la vista materializada:
El borrado de vistas materializadas se hace a travs del comando:
DROP MATERIALIZED VIEW autor;
DBD Laboratorio 7 17
Vistas materializadas (3)
ALTER MATERIALIZED VIEW autor
REFRESH START WITH sysdate next sysdate + 1;
Para refrescar los datos tenemos dos opciones:
Refresco automtico:
Los datos se refrescan cada da.
EXECUTE DBMS_MVIEW.REFRESH('autor');
Refresco manual:
Los datos se refrescan al ejecutar la sentencia.

Вам также может понравиться