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

Preparacion De Laboratorio


Enviado por   •  28 de Mayo de 2014  •  304 Palabras (2 Páginas)  •  225 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);

--

...

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