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

Universidad Tcnica de Ambato

Facultad de Ingeniera en Sistemas, Electrnica e Industrial

CARRERA DE INGENIERA EN SISTEMAS


Informe Tema:
BDLINK VISTAS MAERIALIZADAS

Carrera Universitaria: Sistemas Computacionales e Informticos

Semestre: Alumno participante:

Sexto Semestre

Juan Carlos Calvache Mdulo: Base de Datos Distribuidos

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

OBJETIVO: Utilizar bdlink para la conexin de una base de datos desde un cliente a un servidor. Aplicar el conocimiento anterior y obtener vistas materializadas desde un cliente.

MARCO TEORICO: CREATE DATABASE LINK El CREATE DATABASE LINK es una instruccin para crear un enlace de base de datos. Un enlace de base de datos es un objeto de esquema en una base de datos que le permite acceder a los objetos de otra base de datos. La otra base de datos no tiene que ser un sistema de base de datos Oracle. Sin embargo, para acceder a los sistemas Oracle no es necesario utilizar los servicios de Oracle heterogneos. Una vez que haya creado un enlace de base de datos, se puede utilizar para hacer referencia a las tablas y vistas de la base de datos. En las sentencias de SQL, puede hacer referencia a una tabla o vista en la base de datos distinta aadiendo @ dblink a la tabla o nombre de vista. Puede consultar una tabla o vista en la base de datos con el SELECT comunicado. Tambin puede acceder a tablas remotas y vistas usando cualquier INSERT, ACTUALIZACIN, DELETE, o LOCK TABLA comunicado.

AUTOR: Calvache Juan Carlos juankcalvache@hotmail.es

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

Comandos varios que se utilizan para un dlink CREATE DATABASE LINK local CONNECT TO nombre_usuario IDENTIFIED BY clave_usuario USING 'local'; ==> el nombre del sid en mi caso XE

SELECT * FROM employees@local;

INSERT INTO employees@local (employee_id, last_name, email, hire_date, job_id) VALUES (999, 'Claus', 'sclaus@oracle.com', SYSDATE, 'SH_CLERK');

UPDATE jobs@local SET min_salary = 3000 WHERE job_id = 'SH_CLERK';

DELETE FROM employees@local WHERE employee_id = 999;

drop database link local o drop public database link local VISTAS MATERIALIZADAS A diferencia de las vistas "normales" una vista materializada almacena fsicamente los datos resultantes de ejecutar la consulta definida en la vista. Este tipo de vistas materializadas realizan una carga inicial de los datos cuando se definen y posteriormente con una frecuencia establecida se actualizan los datos de la misma.Con la utilizacin de vistas materializadas logramos aumentar el rendimiento de las consultas SQL adems de ser un mtodo de optimizacin a nivel fsico en modelos de datos muy complejos y/o con muchos datos. Una vez definida una vista materializada uno de los problemas que nos encontramos es el de la actualizacin de los datos. Como se ha comentado antes, estas vistas contienen fisicamente los datos de las "tablas
AUTOR: Calvache Juan Carlos juankcalvache@hotmail.es

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

base", por lo que si cambian los datos de estas tablas no se reflejarn en la vista materializada. Para ello necesitamos establecer un mecanismo de resfresco automtico en el que tendremos que definir el tipo y la forma de refresco. La sentencia SQL que esta: nos permite definir una vista materializada es

1. CREATE MATERIALIZED VIEW nombre_vista 2. [TABLESPACE nombre_ts] 3. [PARALELL (DEGREE n)] 4. [BUILD {INMEDIATE|DEFERRED}] 5. [REFRESH {FAST|COMPLETE|FORCE|NEVER}|{ON COMMIT|ON DEMAND|[START WITH fecha_inicio] NEXT interva lo}] 6. [{ENABLE|DISABLE} QUERY REWRITE] 7. AS SELECT ... FROM ... WHERE ...

Con la palabra BUILD establecemos la forma de carga de datos en la vista. Con la opcin INMEDIATE (opcin por defecto) se cargarn los datos justo despus de crear la vista, mientras que con la opcin DEFERRED se definir la vista cuando se ejecute la sentencia SQL sin cargar ningn dato, que se cargarn cuando se realize el primer refresco de la vista. Con la palabra REFRESH definimos el mtodo y la frecuencia de refresco de los datos. La palabra QUERY REWRITE establece si queremos que el optimizador de nuestra base de datos pueda reescribir las consultas. El optimizador, sabiendo que ya existe una determinada vista materializada, puede modificar internamente nuestra consulta sobre una determinada tabla, de tal forma que se mejore el rendimiento de la consulta devolviendo los mismos datos que la consulta original. Refresco Como es entendible la poltica de refresco de cada vista repende altamente de nuestras necesidades y requerimientos sobre la frecuencia de actualizacin de los datos de las "tablas base". Tipos de refresco

COMPLETE: Se borrarn todos los datos de la vista y se volver a ejecutar la consulta definida en la vista por lo que se recargarn fsicamente los datos de las "tablas base". FAST: Podemos decir que este tipo de refresco es una actualizacin incremental, es decir, solo se refrescarn aquellos datos que se hayan modificado desde el ltimo refresco. Evidentemente este tipo de refresco es mucho ms fast que el complete. Pero, cmo sabe la base de datos que datos se han modificado desde el ltimo refresco? lo sabe gracias a que previamente hemos tenido que crear unos
juankcalvache@hotmail.es

AUTOR: Calvache Juan Carlos

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

determinados log de la vista (VIEWLOG) "tablas base" de la vista materializada.

sobre

cada

una

de

las

1. CREATE MATERIALIZED VIEW LOG ON tabla_base 2. WITH PRIMARY KEY 3. INCLUDING NEW VALUES;

Hay que decir que si usamos funciones sum, avg, max, min, etctera, no vamos a poder usar este tipo de refresco.

FORCE : sino se tipo de NEVER :

si se puede realizar el refresco tipo FAST se ejecuta, y realiza el refresco COMPLETE. Es el valor por defecto del refresco. nunca se realizar un refresco de la vista.

Formas de refresco

Refresco manual : mediante el paquete de PL/SQL DBMS_MVIEW podemos forzar a realizar un refresco usando para ello la funcin REFRESH.

1. DBMS_MVIEW.REFRESH ('nombre_vista'); 2.

Con la funcin REFRESH_DEPENDENT se refrescarn todas las vistas materializadas que tengan algunas de sus "tablas base" en la lista de tablas pasada como parmetro de entrada.

1. DBMS_MVIEW.REFRESH_DEPENDENT ('tabla1, tabla2, tabla3, ... , tablaN'); 2.

Con la funcin REFRESH_ALL_MVIEWS se refrescarn todas las vistas materializadas de nuestra base de datos.

Refresco automtico: este refresco automtico podemos hacerlo usando la palabra ON COMMIT, con la que se fuerza al refresco de la vista en el momento en el que se haga un commit sobre una de las "tablas base" de dicha vista. Otro tipo de refresco automtico es el llamado refresco programado, en el cual podemos definir el momento exacto en el que queremos que se refresque nuestra vista. Para ello tenemos que definir la fecha del refresco en formate datetime y el intervalo de este.
juankcalvache@hotmail.es

AUTOR: Calvache Juan Carlos

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

PRACTICA:
Para la prctica siguiente hay que aclarar que se lo realizara en dos mquinas virtuales las cuales se encuentran en red y con un sistema operativo Windows 7 de 32 bits. La mquina llamada Windows 7 sp2 se tomara como servidor mientras que la mquina Windows 7 sp1 se utilizar como cliente. Lo primero que se debe hacer es verificar la conexin entre el servidor Oracle y el cliente. Servidor ip = 192.168.1.5 Cliente ip = 192.168.1.6

Configuramos el tsnames en el cliente

AUTOR: Calvache Juan Carlos juankcalvache@hotmail.es

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

Luego configuramos el listener

Nos conectamos desde el cliente al servidor y comprobamos la conexin visualizando la tabla del servidor.

AUTOR: Calvache Juan Carlos juankcalvache@hotmail.es

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

Como vemos el en servidor esta creada la tabla prueba con su nico campo llamado A de tipo number. Observamos que el cliente, se conecta correctamente y describe la tabla del servido.

Luego procedemos a insertar datos remotamente esto quiere decir desde el cliente.

AUTOR: Calvache Juan Carlos juankcalvache@hotmail.es

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

Verificamos si los datos se han insertado correctamente en el servidor. Esta verificacin la hacemos en el servidor utilizando un select simple.

A continuacin vamos a crear el bdlink desde el cliente.

Comprobamos el bdlink y hacemos un select de la tabla prueba de la siguiente manera.


AUTOR: Calvache Juan Carlos juankcalvache@hotmail.es

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

Luego procedemos a crear la vista materializada de la siguiente manera.

Comprobamos la vista materializada haciendo un select.

AUTOR: Calvache Juan Carlos juankcalvache@hotmail.es

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

Probamos la vista materializada desconectndonos del servidor y conectndonos localmente en el cliente como system, la comprobacin la hacemos de la misma manera con un select.

CONCLUSIONES: Con la prctica realizada hemos comprobado que el bdlink sirve mucho para hacer conexiones remotas entre cliente servidor, y as poder utilizar un select sin la necesidad de hacer conexin al servidor. Adems con las vistas materializadas hacemos un select a una tabla en el servidor y luego de desconectarnos los datos quedan grabados en el cliente y podemos visualizarlos sin necesidad de conectarnos nuevamente al servidor. BIBLIOGRAFA: AUTOR: Calvache Juan Carlos juankcalvache@hotmail.es

UNIVERSIDAD TECNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_5005.htm http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=vistasMaterializadas http://www.oracleya.com.ar/temarios/descripcion.php?cod=248&punto=90

AUTOR: Calvache Juan Carlos juankcalvache@hotmail.es

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