ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Preparacion De Laboratorio

roymustang28 de Mayo de 2014

304 Palabras (2 Páginas)259 Visitas

Página 1 de 2

RESOLUCION DE LA PRACTICA LABORATORIO

MATERIA: BASE DE DATOS III

DOCENTE: Msc. Ing. Richard Sivila Rios

1.- Crear el siguiente esquema de base de datos orientado a objetos ,

utilizando tablas anidadas:

Base de Datos

departamento (id,nombred,materia)

materia (sigla, nombrem, semestre)

nota.- MATERIA, es la tabla anidada

1.- Resolucion del Ejercicio.

CREATE OR REPLACE TYPE materia_t AS OBJECT

( sigla VARCHAR2(5),

nombrem VARCHAR2(20),

semestre NUMBER )

CREATE OR REPLACE TYPE materia_tabla_t AS TABLE OF materia_t

CREATE OR REPLACE TYPE departamento_T AS OBJECT

( id NUMBER,

nombre VARCHAR2(20),

materia materia_tabla_t,

MEMBER PROCEDURE insertar_departamento(

p_id IN NUMBER,

p_nombred IN VARCHAR2,

p_sigla IN VARCHAR2,

p_nombrem IN VARCHAR2,

p_semestre IN NUMBER),

MEMBER PROCEDURE borrar_departamento,

MEMBER PROCEDURE insertar_materia (

p_id IN NUMBER,

p_sigla IN VARCHAR2,

p_nombrem IN VARCHAR2,

p_semestre IN NUMBER),

MEMBER PROCEDURE borrar_materia (sigla_m IN VARCHAR2) )

CREATE TABLE departamento OF departamento_t

( id NOT NULL,

PRIMARY KEY (id) )

NESTED TABLE materia STORE AS materia_tab;

2.- Implementacion de los metodos

CREATE OR REPLACE TYPE BODY departamento_t AS

MEMBER PROCEDURE insertar_departamento(

p_id IN NUMBER,

p_nombred IN VARCHAR2,

p_sigla IN VARCHAR2,

p_nombrem IN VARCHAR2,

p_semestre IN NUMBER) IS

BEGIN

INSERT INTO DEPARTAMENTO

VALUES (p_id, p_nombred,

materia_tabla_t(materia_t(p_sigla, p_nombrem, p_semestre )));

END insertar_departamento;

MEMBER PROCEDURE borrar_departamento

IS

BEGIN

DELETE FROM departamento a

WHERE a.id = self.id;

END borrar_departamento;

MEMBER PROCEDURE insertar_materia (

p_id IN NUMBER,

p_sigla IN VARCHAR2,

p_nombrem IN VARCHAR2,

p_semestre IN NUMBER)

IS

BEGIN

INSERT INTO TABLE

( SELECT d.materia

FROM departamento d

WHERE d.id = p_id)

VALUES (p_sigla, p_nombrem, p_semestre);

END insertar_materia;

MEMBER PROCEDURE borrar_materia (sigla_m IN VARCHAR2)

IS

BEGIN

DELETE FROM TABLE

( SELECT d.materia

FROM departamento d

WHERE d.id = self.id) m WHERE m.sigla=sigla_m;

END borrar_materia;

END;

3.- Para ejecutar los metodos debemos hacerlos de la siguiente manera:

3.1.- insertar un departamento, con una materia.

sql>

DECLARE

prueba departamento_t := departamento_t(2,'DIS',NULL);

-- instanciamos el objeto

BEGIN

prueba.insertar_departamento(2,'DIS','INF-4','BDD II',1);

-- ejecutamos el metodo

END;

3.2.- insertar una materia en un DEPARTAMENTO existente.

DECLARE

prueba departamento_t := departamento_t(2,'DIS',NULL);

-- instanciamos el objeto

BEGIN

prueba.insertar_materia(2,'INF-2','OPTATIVA II',3);

-- ejecutamos el metodo

END;

3.3.- VISUALIZAMOS EL DATO INSERTADO

SELECT A.NOMBRE, B.SIGLA, B.NOMBREM

FROM DEPARTAMENTO a, TABLE(a.MATERIA) b;

NOTA.- Si queremos visualizar los errores, al no aparecer el objeto

creado, o se creo con errores,

podemos utilizar el siguiente comando:

sql> show errors;

Si aun asi no aparece el objeto podemos visualizar su estado con:

sql>

set pages 999

column object_name format

...

Descargar como (para miembros actualizados) txt (3 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com