Mecanismos para mantenimiento al modelo de datos, como creación de objetos que mejoran el rendimiento.
Enviado por 0001 1110 • 18 de Noviembre de 2016 • Examen • 1.276 Palabras (6 Páginas) • 268 Visitas
Objetivos
Conocer mecanismos para mantenimiento al modelo de datos, como creación de objetos que mejoran el rendimiento.
Recursos y tablas del sistema DBMS
- Tablas del sistema:
o user_views;
- Objetos nuevos: o Vistas o Sinónimos o Secuencias
Comandos esenciales usados: UPDATE, DELETE, ALTER, DROP, SET, INSERT
Actividades
CREAR UNA TABLA DE COPIA Y GESTIONAR CON UNA ORIGINAL
Normalmente se usa una operación de copiar o duplicar solo una tabla, para poder hacer una operación peligrosa. En caso que se falle poder recuperarla o ver la desigualdad entre filas.
- Crear una tabla copia de ventas create table cventas
as select * from ventas;
- Borrar de la copia cventas todas las ventas hechas por el vendedor (200).
delete from cventas where codigo_vendedor=200;
- Observar la diferencia entre las dos tablas.
select * from ventas where codigo_recibo in (select codigo_recibo from cventas);
CREACION DE VISTAS
Este procedimiento facilita en muchos casos la gestión de datos, como también poder clasificar los datos para mejorar las consultas. En este caso podemos manejar en una forma más adecuada el modelo de subtipos, complementándolo con dos vistas clientes y vendedores.
create view clientes as select codigo_persona,tipo_codigo,nombre_persona,apellido_persona, codigo_lugar,monto_credito,estado_cliente,fecha_antiguedad from personas
where tipo_persona = 'C';
Examinemos la existencia de la vista, su estructura y sus datos.
select * from tab; desc clientes; select * from clientes;
De la misma forma se puede construir la vista de vendedores.
Para verificar o reconstruir el select que generó la vista, se puede consultar la tabla del sistema user_views:
select VIEW_NAME, TEXT from user_views;
VISTAS INLINE
Este recurso permite definir vistas temporales facilitando consultas y evitando la creación de vistas que posiblemente no se vuelvan a utilizar.
select v.nombre_vendedor,f.codigo_recibo from vendedores v,
(select ve.codigo_recibo,sum(i.cantidad_producto*i.valor_venta) suma from ventas ve, items i where ve.codigo_recibo=i.codigo_recibo group by ve.codigo_recibo) tf,
ventas f
where v.codigo_vendedor=f.codigo_vendedor and tf.codigo_recibo=f.codigo_recibo and tf.suma>10000;
CREACION DE SECUENCIAS
Las secuencias son objetos que permiten generar números o consecutivos para uso general. Se pueden utilizar como llave de una tabla.
Crear la secuencia nro_venta.
create sequence nro_venta
start with 1
increment by 1;
Verificar que la secuencia fue creada:
select * from user_sequences;
Para solicitarle a la secuencia el próximo número a utilizar se hace con el comando:
select nro_venta.nextval from dual;
Para preguntar sobre el valor actual de la secuencia:
select nro_venta.currval from dual;
En algunos casos y para cualquier tabla, se puede utilizar como generador de llave primaria.
insert into ventas values (200, 800, nro_venta.nextval,'19/01/1998', 'P',NULL);
Si lo que se quiere es borrar la secuencia se hace con el comando:
drop sequence nro_venta;
BORRADO DE INFORMACIÓN
Normalmente se desea borrar información por cualquier causa, es aconsejable verificar primero la información a borrar por medio de un select.
Para borrar en forma puntual una fila o grupo de filas es con el condicional WHERE
delete from cventas where codigo_vendedor=201;
Para borrar todo es:
delete from cventas;
Es importante destacar que el potencial del comando borrado depende de la destreza para manejar el WHERE, ya que permite el uso de SUBQUERY.
Recuerde que si borra datos de una VISTA los está BORRANDO de la TABLA a la que está ligada.
Borrar cierto número de tuplas específicas a partir de una subconsulta.
DELETE FROM cventas
WHERE codigo_recibo IN (SELECT codigo_recibo
FROM ventas
WHERE codigo_vendedor=200);
ACTUALIZACION DE INFORMACIÓN
Actualizar un campo o varios campos es una operación normal y cotidiana que se hace mediante el comando UPDATE.
Para actualizar el monto de crédito a un cliente moroso de código 804 y pasarlo a 0.
...