Tema 64. Pregunta 5273

Responder
Televa
Usuario registrado
Mensajes: 5
Registrado: 09 Nov 2021, 13:28
Agradecido: 2 veces
Agradecimiento recibido: 4 veces

Tema 64. Pregunta 5273

Mensaje por Televa »

Hola,
La pregunta dice:

¿Cómo se definiría en el sistema de gestión de base de datos Oracle la restricción de integridad: “Los trienios de un empleado no pueden disminuir”?
a) Mediante la sentencia ‘ALTER TABLE’.
b) Mediante un trigger.
c) Mediante una constraint de tipo CHECK.
d) No se pueden definir restricciones de ese tipo.

La respuesta marcada como correcta es la b). ¿No es posible realizar dicha restricción con una constraint?
Cualquier documentación al respecto es bienvenida.

Gracias de antemano

llabrac
Usuario registrado
Mensajes: 157
Registrado: 26 Sep 2011, 18:44
Agradecido: 3 veces
Agradecimiento recibido: 3 veces

Re: Tema 64. Pregunta 5273

Mensaje por llabrac »

Buenas:

No lo sé con seguridad pero entiendo que el truco de la pregunta es que se pueden poner condiciones en los constraint pero no es posible comparar el dato al que aplicas el constraint consigo mismo (su valor actual) para restringir que no pueda disminuir.

https://docs.oracle.com/cd/B19306_01/se ... ses002.htm

Saludos
Estos usuarios agradecieron al autor llabrac por el mensaje:
Televa (02 Abr 2022, 09:39)
Valoración: 7.14%

crm86
Usuario registrado
Mensajes: 7
Registrado: 10 Jun 2019, 23:11
Agradecido: 0
Agradecimiento recibido: 1 vez

Re: Tema 64. Pregunta 5273

Mensaje por crm86 »

Buenas,

En el caso de la pregunta, la respuesta se fundamenta en "disminuir".

El comportamiento estático de un valor:
Si pones una sentencia CHECK, evitarías que la tabla almacenara valores determinados. Por ejemplo “< 0”. Directamente, no se almacenaría ese valor porque no es un valor admitido.
No se puede incluir CHECK (trienio > trienio), pero si se podría incluir CHECK (trienio > 0)

El comportamiento dinámico de un valor:
Si un valor ya está almacenado y es válido, disminuir hace referencia a que un nuevo valor sea menor al que hay actualmente. Las reglas de integridad referencial y los triggers son los que te permiten saber si un nuevo valor es mayor o menor a que no adquiera valores inválidos.

Los triggers son más lentos pero permiten hacer esa serie de cálculos antes de hacer un insert o update en una tabla

Espero que ayude.

Un saludo!
Estos usuarios agradecieron al autor crm86 por el mensaje:
Televa (02 Abr 2022, 09:39)
Valoración: 7.14%

Televa
Usuario registrado
Mensajes: 5
Registrado: 09 Nov 2021, 13:28
Agradecido: 2 veces
Agradecimiento recibido: 4 veces

Re: Tema 64. Pregunta 5273

Mensaje por Televa »

Gracias por las respuestas!

Responder

Volver a “PREGUNTAS TEST - DEBATES”