You are on page 1of 17

Diseo de Bases de Datos

Laboratorio 7 Bases de Datos Distribuidas en Oracle

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

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 3

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

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 5

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

Nombre de servicio
Ejemplo de definicin de nombre de servicio en tnsnames.ora
NombreServiceName = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = NombreOrdenadorEnRed)(PORT = 1521)) ) nmero IP (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = NombreBD) ) SID )

DBD Laboratorio 7

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

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

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 Tabla de BD remota Tabla de BD local FROM dbb.autor@link, libro WHERE dbb.autor.idautor@link = libro.idautor AND nacionalidad = Francia

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 10

Snonimos (1)
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. Creacin de sinnimos CREATE [PUBLIC] SYNONYM nombreSinomimo FOR nombreObjeto;
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.

DBD Laboratorio 7

11

Snonimos (2)
Ejemplo de creacin de sinnimo

CREATE SYNONYM autores FOR dbb.autor@link;


autores acta como sinnimo de dbb.autor@link Ahora podemos definir consultas totalmente transparentes al usuario: SELECT nombre Sinnimo FROM autores WHERE nacionalidad = Francia

Borrado de sinnimos DROP[PUBLIC] SYNONYM autores;


DBD Laboratorio 7 12

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 13

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. 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.
14

DBD Laboratorio 7

Vistas materializadas (1)


Creacin de vista materializada (de solo lectura)

CREATE MATERIALIZED VIEW autor AS select * from dbb.autor@link;


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:


SELECT nombre FROM autor WHERE nacionalidad = Francia - 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
DBD Laboratorio 7 15

Vistas materializadas (2)


Podemos simular la fragmentacin a travs de la consulta que est contenida en la vista materializada: Fragmentacin horizontal CREATE MATERIALIZED VIEW autor AS select * from dbb.autor@link where dbb.autor.name@link=pepe; Fragmentacin vertical CREATE MATERIALIZED VIEW autor AS select dbb.autor.name@link from dbb.autor@link; El borrado de vistas materializadas se hace a travs del comando: DROP MATERIALIZED VIEW autor;
DBD Laboratorio 7 16

Vistas materializadas (3)


Para refrescar los datos tenemos dos opciones: Refresco automtico: ALTER MATERIALIZED VIEW autor REFRESH START WITH sysdate next sysdate + 1;
Los datos se refrescan cada da.

Refresco manual:

EXECUTE DBMS_MVIEW.REFRESH('autor');
Los datos se refrescan al ejecutar la sentencia.

DBD Laboratorio 7

17

You might also like