0% encontró este documento útil (0 votos)
683 vistas3 páginas

DP 14 3 Practice Esp

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
683 vistas3 páginas

DP 14 3 Practice Esp

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 3

Programación de Bases de Datos con SQL

academy .oracle.com

14-3: Gestión de Restricciones Actividades de Práctica

Objetivos
• Enumerar cuatro funciones diferentes que puede realizar la sentencia ALTER en las
restricciones
• Escribir sentencias ALTER TABLE para agregar, borrar, desactivar y activar
restricciones
• Nombrar una función de negocio que necesitaría un DBA para borrar, activar y/o
desactivar una restricción o utilizar la sintaxis CASCADE
• Consultar USER_CONSTRAINTS en el diccionario de datos e interpretar la
información devuelta

Terminología
Identifique el término para cada una de las siguientes definiciones.

Disable constraint Desactiva una restricción de integridad

Cláusula CASCADE Desactiva las restricciones de integridad dependientes

ALTER TABLE Agrega, modifica o borra columnas de una tabla

ENABLE CONSTRAINT Activa una restricción de integridad actualmente desactivada

Drop constraint Elimina una restricción de una tabla

Drop column Permite al usuario suprimir una columna de una tabla

Cláusula CASCADE Define las acciones que lleva a cabo el servidor de base de datos
CONSTRAINT cuando un usuario intenta suprimir o actualizar una clave a la que
apuntan las claves ajenas existentes

Inténtelo/Resuélvalo

En Oracle Application Express, haga clic en el separador SQL Workshop en la barra de


menús. Haga clic en Object Browser y verifique que tiene una tabla denominada
copy_d_clients y una tabla denominada copy_d_events. Si no tiene estas tablas en el
esquema, créelas antes de realizar los ejercicios siguientes. A continuación se indica cómo
están relacionadas las tablas originales. La tabla d_clients tiene una clave primaria
Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser
marcas comerciales de sus respectivos propietarios.
client_number. Ésta tiene una restricción de clave primaria y se hace referencia a ella en la
restricción de clave ajena de la tabla d_events.
CREATE TABLE copy_d_clients
AS ( SELECT * FROM d_clients);

CREATE TABLE copy_d_events


AS ( SELECT * FROM d_events);

1. ¿Cuáles son las cuatro funciones que puede realizar una sentencia ALTER en las
restricciones?
ADD,
DROP,
ENABLE/DISEABLE

2. Dado que las tablas son copias de las tablas originales, las reglas de integridad no se
transfieren a las tablas nuevas; solo se conservan las definiciones de tipo de dato de
columna. Deberá agregar una restricción de PRIMARY KEY a la tabla copy_d_clients.
Asigne a la clave primaria el nombre copy_d_clients_pk. ¿Cuál es la sintaxis que ha
utilizado para crear la restricción PRIMARY KEY en la tabla copy_d_clients?

ALTER TABLE copy_d_clients ADD  CONSTRAINT copy_d_clt_client_number_pk


PRIMARY KEY (client_number);

3. Cree una restricción FOREIGN KEY en la tabla copy_d_events. Denomine la clave ajena
copy_d_events_fk. Esta clave hace referencia a la columna client_number de la tabla
copy_d_clients. ¿Cuál es la sintaxis que ha utilizado para crear la restricción FOREIGN
KEY en la tabla copy_d_events?
ALTER TABLE  copy_d_events ADD CONSTRAINT copy_d_eve_client_number_fk
FOREIGN KEY (client_number) REFERENCES  copy_d_clients (client_number) ENABLE;

4. Utilice una sentencia SELECT para verificar los nombres de restricciones de cada una de
las tablas. Tenga en cuenta que los nombres de tabla deben estar en mayúsculas.
SELECT constraint_name, constraint_type, table_name
FROM user_constraints
WHERE table_name = UPPER('copy_d_events') ;

a. El nombre de restricción para la clave primaria de la tabla copy_d_clients


es _COPY_D_CLT_CLIENT_NUMBER_PK_.

b. El nombre de restricción para la clave ajena de la tabla copy_d_events es


_COPY_D_EVE_CLIENT_NUMBER_FK_.

5. Borre la restricción PRIMARY KEY de la tabla copy_d_clients. Explique su resultado.


ALTER TABLE copy_d_clients
DROP CONSTRAINT COPY_D_CLT_CLIENT_NUMBER_PK CASCADE  ;

6. Agregue el siguiente evento a la tabla copy_d_events. Explique su resultado.


Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser
marcas comerciales de sus respectivos propietarios.
ID NAME EVENT_DATE DESCRIPTION COST VENUE PACKAGE_ THEME_ CLIENT_
_ID CODE CODE NUMBER
140 Cline 15-Jul-2004 Church and 4500 105 87 77 7125
Bas Private Home
Mitzvah formal

INSERT INTO
copy_d_events(client_number,id,name,event_date,description,cost,venue_id,package_code,t
heme_code)
VALUES(7125,140,'Cline Bas Mitzvah',TO_DATE('15-Jul-2004','dd-Mon-yyyy'),'Church and
Private Home formal',4500,105,87,77);

7. Cree una consulta ALTER TABLE para desactivar la clave primaria de la tabla
copy_d_clients. A continuación, agregue los valores del paso 6 a la tabla copy_d_events.
Explique su resultado.
ALTER TABLE copy_d_clients
DISABLE CONSTRAINT COPY_D_CLT_CLIENT_NUMBER_PK CASCADE;

8. Repita la pregunta 6: Inserte los nuevos valores en la tabla copy_d_events. Explique su


resultado.
INSERT INTO
copy_d_events(client_number,id,name,event_date,description,cost,venue_id,package_cod
e,theme_code) VALUES(7125,140,'Cline Bas Mitzvah',TO_DATE('15-Jul-2004','dd-Mon-
yyyy'),'Church and Private Home formal',4500,105,87,77);

9. Active la restricción de clave primaria en la tabla copy_d_clients. Explique su resultado.


ALTER TABLE copy_d_clients
ENABLE CONSTRAINT COPY_D_CLT_CLIENT_NUMBER_PK ;

10. Si quisiera activar la columna de clave externa y restablecer la integridad referencial entre
estas dos tablas, ¿qué debería hacer?
DELETE FROM copy_d_events
WHERE client_number  NOT IN ( SELECT client_number FROM copy_d_clients);
ALTER TABLE copy_d_events
ENABLE CONSTRAINT COPY_D_EVE_CLIENT_NUMBER_FK;

11. ¿Por qué desearía desactivar y, a continuación, volver a activar una restricción?
Para que las operaciones masivas sean un poco más rápidas, donde mis datos de entrada se
desinfectan diligentemente y estoy seguro, es seguro ahorrar algo de tiempo en este proceso.

12. Consulte en el diccionario de datos algunas de las restricciones que ha creado.


¿Cómo identifica el diccionario de datos cada tipo de restricción?
C: Verificar restricción
P: Primary key
R: Referencia de integridad (fK)
U: Unique key

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser
marcas comerciales de sus respectivos propietarios.

También podría gustarte