Está en la página 1de 5

PRESENTADO POR:

Oscar Orlando Aristizabal Jaimes

Miguel Ángel Cortés Cuervo

/**

1.Cree las tablas del esquema anterior, ubicarlas en un tablespace previamente definido por

usted, tenga en cuenta que puede crear más de un tablespace si quiere, en todo caso

justifique el por qué de la creación y la ubicación de las tablas.

R/: al inicio del trabajo creamos un solo tablespace y todas las tablas las almacenamos en este,
pero debido a q

se debe hacer un mantenimiento en las tablas libro y clase creamos otro table space para
almacenerlas en este

y poder colorcarlo offline para q no hayan modificaciones de estas

*/

create tablespace tab_biblioteca datafile 'C:\orant\database\tablespace_biblioteca.dll' size 500M;

alter user oscar default tablespace tab_biblioteca;

create table libro(id_libro number(10),autor_libro varchar(40),titulo_libro varchar(40),editor_libro


varchar(40),clase_libro number(10),

precio_libro number(10,2), constraint pk_libro primary key (id_libro))tablespace tab_biblioteca;

create table usuario(id_carnet number(10),nombre_usuario varchar(40),direccion_usuario


varchar(50),

constraint pk_usuario primary key (id_carnet))tablespace tab_biblioteca;


create table clase(id_clase number(10),tiempo_prestamo_clase number(3),constraint pk_clase
primary key (id_clase))tablespace tab_biblioteca;

create table prestamo(id_prestamo number(10),carnet_prestamo


number(10),fecha_inicio_prestamo date,fecha_fin_prestamo date,

libro_prestamo number(10),constraint pk_pretamo primary key (id_prestamo))tablespace


tab_biblioteca;

alter table libro add constraint fk_libro foreign key (clase_libro)references clase on delete set null;

alter table prestamo add constraint fk_prestamo foreign key (carnet_prestamo)references usuario
on delete set null;

alter table prestamo add constraint fk_prestamo2 foreign key (libro_prestamo)references libro on
delete set null;

alter table usuario add fecha_ingreso_usuario date;

alter table usuario modify fecha_ingreso_usuario date not null;

/**

2.Agregar a la tabla Usuario el campo Fecha_Ingreso (que sea obligatorio).

*/

alter table usuario add fecha_ingreso_usuario date;--por equivocacion se me olvido poner el


campo de la tabla en not null

alter table usuario modify fecha_ingreso_usuario date not null;


/**

3. Agregar a la tabla Libro el campo Prestado (que sea obligatorio), comprobar que solo

acepte estos dos valores.

*/

alter table libro add prestado_libro number(1) not null;

alter table libro add constraint ind_lib check (prestado_libro='1' or prestado_libro='0');

/**

4 IMAGINESE QUE EL TABLESPACE SE QUEDO SIN ESPACIO QUE HARIA?

CREAR UN NUEVO DATAFILE AL TABLESPACE PARA AUMENTAR LA CAPACIDAD DE


ALMACENAMIENTO

*/

alter tablespace tab_biblioteca add datafile 'C:\orant\database\tablespace_biblioteca2.dll'size


500M;

/**

5.Usted requiere realizar una copia de seguridad de los diferentes usuarios y prestamos de

libros, para ello necesita que la información de estas entidades no sea modificable, que

instrucción ejecutaría para garantizar esto?

*/

alter tablespace tab_biblioteca read only;

/**

6. Si usted estuviera administrando un sistema de información, y sin importar que operación se

realice (inserción, eliminación, actualización), siempre sale un error, que haría, que

revisaría?, muestre las instrucciones que utilizaría.


R/: que los tablespace esten en linea y que ademas esten en modo de lectura y escritura

*/

select tablespace_name, t.status from dba_tablespaces t where


tablespace_name='TAB_BIBLIOTECA';

select tablespace_name, t.status from dba_tablespaces t where


tablespace_name='TAB_BIBLIOTECA2';

/**

7.Usted como DBA de la empresa desea realizar un mantenimiento a las tablas de la base

de datos referente a los libros y clases de libros, lo que necesita que ningún usuario pueda

acceder a ella, realice las operaciones SQL necesarias para garantizar esta restricción.

*/

create tablespace tab_biblioteca2 datafile 'C:\orant\db\tablespace_biblioteca2.dll' size 500M;

alter table libro move tablespace tab_biblioteca2;

alter tablespace tab_biblioteca2 offline; --por error puse el tablespace offline pero lo volvi a poner
online para poder mover la tabla clase al

--tablespace tab_biblioteca2

alter tablespace tab_biblioteca2 online;

alter table clase move tablespace tab_biblioteca2;

alter tablespace tab_biblioteca2 offline;

/**

8. Como ver el espacio disponible, que instrucciones SQL ejecutaría.

*/

select tablespace_name, round(sum(bytes)/1024/1024.0) from DBA_FREE_SPACE where


TABLESPACE_NAME='TAB_BIBLIOTECA'

group by tablespace_name;

/**

9. Como consulta a que tablespace esta asignada cada tabla.


*/

select t.TABLE_NAME from DBA_TABLES t where TABLESPACE_NAME='TAB_BIBLIOTECA';

También podría gustarte