SQL - EJERCICIO PARA SOLUCION pl/sql

 
Vista:

EJERCICIO PARA SOLUCION pl/sql

Publicado por ALE (11 intervenciones) el 05/02/2021 18:12:25
NECESITO SOLUCIÓN DE EXPERTO. GRACIAS.


Tenemos una empresa en la que hay dos departamentos: Recursos Humanos y otro de Control de Departamentos.



En el departamento Recursos Humanos tenemos la tabla EMPLEADO (ID_EMPLEADO, NOMBRE, SALARIO, ID_DEPARTAMENTO).

En el departamento de Control de Departamentos tenemos la tabla DEPAETAMENTOS(ID_DEPARTAMENTO, NOMBRE_DEPARTAMENTO, DIRECCION_DEPARTAMENTO).


Se pide implementar lo siguiente:

Crear dos bases de datos llamadas: EMPLE y DEPART

crear las tablas indicadas en el enunciado en cada base de datos.
Desde la Base de datos EMPLE crear un DB-LINK llamado LINK_DEPART para poder acceder a la tabla DEPARTAMENTOS.

Probar el Data Base Link creado con la siguiente sentencia: select sysdate from dual@LINK_DEPART;


Crear una vista materializada con refresco FAST sobre la tabla en la base de datos EMPLE llamada VM_DEPARTAMENTOS que almacene todo el contenido de la tabla DEPARTAMENTOS.
Probar el refresco de dicha VIsta Materializada.



Ejecutar una select SQL desde la base de datos EMPLE que use la tabla departamentos de la base de datos DEPART.
Ejecutar una setencia SQL desde la base de datos EMPLEADO que use la tabla EMPLEADOS y la VIsta Materializada VM_DEPARTAMENTOS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

EJERCICIO PARA SOLUCION pl/sql

Publicado por anonymous (43 intervenciones) el 05/02/2021 19:08:41
Bien, lo primero que hay que aclarar es que Oracle no permite crear una restricción de clave externa que haga referencia a una tabla a través de un dblink. Tendrías que usar otros mecanismos (triggers) para hacer cumplir la integridad.

Esto debido a que Empleados tiene como llave foránea el ID del departamento, por lo que el ejercicio que piden estaría mal planteado al intentar crear dos estructuras que están relacionadas pero bajo schemas diferentes (Eso casi nunca se da, se considera una mala práctica por tener graves implicaciones en rendimiento).

Las tablas quedarían así:
1
2
3
4
5
6
7
8
9
10
CREATE TABLE EMPLEADO (
ID_EMPLEADO NUMBER NOT NULL PRIMARY KEY,
NOMBRE VARCHAR2(100) NOT NULL,
SALARIO NUMBER (8,2) NOT NULL,
ID_DEPARTAMENTO NUMBER); // Este campo es un FK que viene de Departamentos pero no se puede establecer por el dblink, lo dejé como nulable, ya cámbialo tú como NOT NULL, garantizando que siempre quede con el valor de la otra tabla
 
CREATE TABLE DEPARTAMENTOS(
ID_DEPARTAMENTO NUMBER NOT NULL PRIMARY KEY,
NOMBRE_DEPARTAMENTO VARCHAR2(100) NOT NULL,
DIRECCION_DEPARTAMENTO VARCHAR2(100) NOT NULL);

El enlace lo creas parecido a lo siguiente:

1
CREATE DATABASE LINK LINK_DEPART CONNECT TO User IDENTIFIED BY PWD USING 'Tsn';

Donde User es el usuario con quien conectarás
PWD es esl password que tengas en tu BD
Tsn es el dato a relacionar en el archivo tnsnames.ora para que Oracle lo reconozca

Esto porque ignoro tus credenciales de acceso y nombres de los schemas bajo los cuales almacenarás las tablas

Y la vista materializada quedaría:

1
2
3
CREATE MATERIALIZED VIEW VM_DEPARTAMENTOS REFRESH FAST AS
   SELECT ID_DEPARTAMENTO, NOMBRE_DEPARTAMENTO,DIRECCION_DEPARTAMENTO
   FROM DEPARTAMENTOS;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

EJERCICIO PARA SOLUCION pl/sql

Publicado por ALE (11 intervenciones) el 05/02/2021 20:09:43
ESTOS PASOS ME PONE - Para realizar esta tarea es aconsejable seguir los siguientes pasos:


Con el asistente DBCA crear las dos instancias.
Conectar a ambas bases de datos.
Crear las tablas indicadas.
Crear desde la base de datos EMP un Db-Link
Crear la vista materializada.
Probar con sentencias SQL la tabla remota a trevés de DB-LINK y la vista materializada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

EJERCICIO PARA SOLUCION pl/sql

Publicado por anonymous (43 intervenciones) el 05/02/2021 20:33:23
Yo no sé que editor tengas, yo uso Toad

Pero independiente del que tengas, solo busca el editor de SQL y desde allí comienzas a crear los schemas y luego las tablas y vista para finalmente crear el dblink
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

EJERCICIO PARA SOLUCION pl/sql

Publicado por Isaias (1921 intervenciones) el 06/02/2021 15:24:25
Seguro va a compartir la calificacion que le pongan, jajjaja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

EJERCICIO PARA SOLUCION pl/sql

Publicado por ALE (11 intervenciones) el 06/02/2021 18:25:13
gracias a JORGE, HE APRENDIDO y COMPRENDIDO LA SOLUCIÓN. y a los otros dos. gracias por vuestra ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

EJERCICIO PARA SOLUCION pl/sql

Publicado por anonymous (43 intervenciones) el 06/02/2021 19:25:17
Si lo importante es que quede algo de aprendizaje.

Sin el ánimo de crear suspicacias, los comentarios de Isaías y Gilman, van es en el sentido de que el foro se ha vuelto más de "Háganme las tareas" y la realidad es que sí mucho estudiante prefiere publicar el enunciado sin haber trabajado nada, depronto está debuenas y logran quien se la haga.

Una cosa es que publiquen dudas e inquietudes, y soliciten ayuda para seguir en ese aprendizaje.

Pero ya cada quien que se cuestione, porque cuando estén en una empresa seguramente no van a tener quien trabaje por ellos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

EJERCICIO PARA SOLUCION pl/sql

Publicado por ale (11 intervenciones) el 08/02/2021 20:44:22
Buenas Jorge, me podrías ayudar a solucionar los otros ejercicios que he subido?, ya que ando dándole vueltas y un poco perdido, estoy empezando en esto ahora.

gracias, por su ayuda, se lo agradezco.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

EJERCICIO PARA SOLUCION pl/sql

Publicado por ALE (11 intervenciones) el 05/03/2021 17:55:36
AL CREAR LA VISTA MATERIALIZADA...
CREATE MATERIALIZED VIEW VM_DEPARTAMENTOS REFRESH FAST AS
SELECT ID_DEPARTAMENTO, NOMBRE_DEPARTAMENTO,DIRECCION_DEPARTAMENTO
FROM DEPARTAMENTOS;


ME DA ERROR EL

FROM DEPARTAMENTOS;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar