Está en la página 1de 7

60 practicas

30 practico
10 teorico
base de datos oo
base de datos inteligentttes soporta el paragima de OO,ddiseada para ser eficaz,d
esde el punto de vista fisico,para almacenar objetos complejos.
BDOO: coleccion persistente y compatible de objetos
Modelado: captura sematica
SGBBOO :gestor de base de datos
encapsulamiento : proceso que no se ve pero se realiza en la base de datos
caracteristicas para BOO:
atributos
relaciones
definicion de obejto: tipo de obbjeto a crear (varchar,int,etc)
///////////////
ODL
alias = variable iteriadora
//////
create type persona as object (
nombre varchar
telefono int
)
create table contactos(
contacto persona,
fecha date,
)
///////////////////////////////////////////
create table lectores
(
nic_carnet int ,
nombre varchar(50),
apellido varchar(50),
domicilio varchar(50),
edad int,
primary key (nic_carnet)
)
create table libros
(
num_referencia int ,
isbn varchar(50),
titulo varchar(50),
precio int,
tema varchar(50),
autor varchar(50),
primary key (num_referencia)

)
create table biblotecarios
(
nif int,
nombre varchar(50),
apellido varchar(50),
domicilio varchar(50),
cargo varchar(50),
primary key (nif)
)
create table prestamos
(
nif int,
nic_carnet int,
num_referencia int,
fecha date,
FOREIGN KEY (nic_carnet) REFERENCES lectores(nic_carnet),
FOREIGN KEY (num_referencia) REFERENCES libros(num_referencia),
FOREIGN KEY (nif) REFERENCES biblotecarios(nif)
)
tarea para el lunes en el modle
hacer resumen del material del modle

/////////////////////////////////////////////////////////////////////////
create table inventario
(
id_articulo int ,
articulo varchar(50),
cantidad varchar(50),
costo int,
expira date,
primary key (id_articulo)
)
create table Repventas
(
num_empleado int ,
nombre varchar(50),
apellido varchar(50),
puesto varchar(50),
primary key (num_empleado)
)
create table Clientes
(
id_comprador int ,
nombrecompania varchar(50),
nombrecontacto varchar(50),
apellidoscontacto int,
cuidad varchar(50),
codigo_postal varchar(50),
cargocontacto varchar(50),
num_empleado int,

primary key (id_comprador),


FOREIGN KEY (num_empleado) REFERENCES Repventas(num_empleado)
)
create table pedidos
(
numeropedido int ,
fecha date,
embarcadopor varchar(50),
urgencia varchar(50),
num_empleado int,
id_comprador int,
primary key (numeropedido),
FOREIGN KEY (num_empleado) REFERENCES Repventas(num_empleado),
FOREIGN KEY (id_comprador) REFERENCES Clientes(id_comprador)
)
create table detallepedido
(
cantidad varchar(50),
id_articulo int ,
numeropedido int,
FOREIGN KEY (id_articulo) REFERENCES inventario(id_articulo),
FOREIGN KEY (numeropedido) REFERENCES pedidos(numeropedido)
)

PL/sql
create table libros
(
codigo number,
titulo varchar2(50),
autor varchar2(50),
precio number(5,4)
)
//////FUNCION///////////
CREATE OR REPLACE FUNCTION F_INCREMETO10
(AVALOR NUMBER)
RETURN NUMBER
IS
BEGIN
RETURN AVALOR+(AVALOR*0.1);
END;
SELECT TITULO,PRECIO,F_INCREMETO10(PRECIO) FROM LIBROS
create or replace function f_costoso (avalor number)
return varchar
is
valorretornado varchar(20);
begin
valorretornado:='';
if avalor<=20 then

valorretornado:='economico';
else valorretornado:='costoso';
end if;
return valorretornado;
end;
SELECT TITULO,PRECIO,F_COSTOSO(PRECIO) FROM LIBROS

//////////////////////////////////
CREATE TYPE DIRECCION AS OBJECT
(
CALLE VARCHAR2(60),
CUIDAD VARCHAR2(30),
PAIS CHAR(2),
CP VARCHAR2(9)
);
CREATE OR REPLACE TYPE PERSONA AS OBJECT
(
NOMBRE VARCHAR2(25),
ODIREC DIRECCION
);
CREATE OR REPLACE TYPE ESTUDIANTE AS OBJECT
(
ID_ESTUDIANTE NUMBER,
OPERS PERSONA
)
CREATE TABLE ESTUDIANTETBLA
(
OESTUDIANTE ESTUDIANTE
)
INSERT INTO ESTUDIANTETBLA VALUES
(
ESTUDIANTE ('1',
PERSONA ('PABLO ALCOCER',
DIRECCION ('SANTA ROSA','MERIDA','MX','97992'))))

SELECT E.OESTUDIANTE.ID_ESTUDIANTE MATRICULA,


E.OESTUDIANTE.OPERS.NOMBRE NOMBRE,
E.OESTUDIANTE.OPERS.ODIREC.CALLE CALLE
FROM ESTUDIANTETBLA E
WHERE E.OESTUDIANTE .ID_ESTUDIANTE = 1;
SELECT E.OESTUDIANTE.ID_ESTUDIANTE ||'-'||
E.OESTUDIANTE.OPERS.NOMBRE ||','||
E.OESTUDIANTE.OPERS.ODIREC.CALLE ||','||
E.OESTUDIANTE.OPERS.ODIREC.CUIDAD ||','||
E.OESTUDIANTE.OPERS.ODIREC.PAIS||',CP'||
E.OESTUDIANTE.OPERS.ODIREC.CP DATOS
FROM ESTUDIANTETBLA E

create table producto


(
codigo number(4),
producto varchar2(40),
precio number(5,2)
)
insert into producto values (1235,'libreta',25.30)
insert into producto values (9308,'lapiz',9.30)
insert into producto values (9345,'geometria',6.40)
CREATE OR REPLACE FUNCTION F_INCREMETO10
(AVALOR NUMBER)
RETURN NUMBER
IS
BEGIN
RETURN AVALOR+(AVALOR*0.25);
END;
SELECT F_INCREMETO10(PRECIO) FROM producto
create or replace function f_costoso (avalor number)
return varchar
is
valorretornado varchar(20);
begin
valorretornado:='';
if avalor>10 then
valorretornado:='15%';
else valorretornado:='5%';
end if;
return valorretornado;
end;
SELECT PRODUCTO,CODIGO,PRECIO,F_COSTOSO(PRECIO) AS PORCENTAJE FROM PRODUCTO
/////////////////////////////////////////////////////////
herencia
una clase se crea apartir de otra clase
capacidad para definir atributos y metodos nuevos para la subclase
drop type direccion force
drop type persona force
drop type estudiante force
CREATE TYPE DIRECCION AS OBJECT
(
CALLE VARCHAR2(60),
CUIDAD VARCHAR2(30),
PAIS CHAR(2),
CP VARCHAR2(9)
);
CREATE TYPE PERSONA AS OBJECT
(

NOMBRE VARCHAR2(25),
ODIREC DIRECCION
)not instantiable not final
CREATE TYPE ESTUDIANTE under persona
(
idestudiante varchar2(9)
)
CREATE TABLE ESTUDIANTETBLA2 of estudiante
(
idestudiante primary key
)
insert into ESTUDIANTETBLA2 values
(
'gina calderon',
DIRECCION('santa rosa','merida','mx','24800'),'100');
////////////////////////////////////funcion con objetos
CREATET YPE Empleado AS object
(
nombre varchar2(25),
apellido varchar2(25),
fecha_nac date,
member function EDAD (Fecha_Nacin DATE) return NUMBER
);
CREATE TYPE BODY Empleado AS
member function EDAD (Fecha_Nacin DATE) return NUMBER
IS
begin
return ROUND(SysDate Fecha_Nac);
end;
end;
CREATE TABLE EmpleadoTBL of Empleado;
INSERT INTO EmpleadoTBL VALUES
(Empleado('Juan','Sanchez', TO_DATE('03-FEB-1970','DD-MM-YY')));
CREATE TABLE DepartamentoTBL
(
NomDept varchar(30),
PersonaRef REF Empleado
);
INSERT INTO DepartamentoTBL
SELECT 'Investigacion',
REF(e)
FROM EmpleadoTBL e
WHERE Apellido = 'Sanchez';

También podría gustarte