Analise as seguintes afirmativas sobre implementações em Ora...

Próximas questões
Com base no mesmo assunto
Q252591 Banco de Dados
Analise as seguintes afirmativas sobre implementações em Oracle Database Server e PL/SQL. I. As funções MAX e MIN podem ser utilizadas apenas com dados numéricos.  II. Uma ROLE possibilita agrupar privilégios de forma a criar um perfil que pode ser atribuído de uma única vez.  III. Não se deve usar a opção CYCLE na criação de uma SEQUENCE se ela será utilizada para gerar valores de chave primária. Assinale a alternativa CORRETA:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: C - A afirmativa I está errada e as afirmativas II, III estão corretas.

Vamos analisar cada uma das afirmativas para entender por que a alternativa C é a correta:

Afirmativa I: A função MAX e a função MIN no Oracle não são limitadas apenas a dados numéricos. Elas podem ser aplicadas a outros tipos de dados como DATE e VARCHAR para encontrar o valor máximo ou mínimo em um conjunto de resultados. Portanto, essa afirmativa está incorreta.

Afirmativa II: No Oracle, uma ROLE é realmente um mecanismo utilizado para agrupar privilégios de banco de dados. Isto permite que esses privilégios sejam outorgados ou revogados de uma única vez a um usuário ou outro role, facilitando a administração de privilégios. Portanto, essa afirmativa está correta.

Afirmativa III: A opção CYCLE em uma SEQUENCE faz com que a sequência volte a iniciar do seu valor mínimo (ou máximo, em casos de decremento) após atingir seu valor máximo (ou mínimo). Para chaves primárias, que deveriam ser únicas e não se repetir, o uso da opção CYCLE poderia eventualmente levar a geração de valores duplicados e conflitos de chave. Por isso, não é recomendável usar CYCLE para sequências usadas em chaves primárias. Essa afirmativa está correta.

Portanto, ao revisarmos as afirmações, concluímos que a Alternativa C é a correta porque identifica corretamente a Afirmativa I como errônea e as Afirmativas II e III como corretas.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

As funções MinMax, Count(...) e Count(*) podem ser utilizadas com qualquer tipo de dados (numéricos, alfanuméricos.

I - Errada

Resposta C

Pessoal, errei a questão ao considerar a sentença I como correta. Ela realemente está errada. Ao procurar motivos, encontrei boas referências, as quais gostaria de compartilhar com vocês. Segue:

OBS1: Tanto o MIN quanto o MAX trabalham com tipos de dados numéricos, de data e caracteres.

OBS2: Uma atenção especial deve ser dada ao usar MIN/MAX com caracteres. A definição funciona da seguinte forma:

‘A’ é menor que ‘Z’;
‘Z’ é menor que ‘a’;
a string ’2′ é maior que a string ’100′

… ou seja, as letras maiusculas representam um “valor menor” que as letras minusculas. Ex:

-- no min, o nome retornado começa com maiúsculas -- no max, o nome retornado começa com minusculas SELECT MIN(NOME_EMP), MAX(NOME_EMP) FROM CERTIFICACAO.TAB_EMPREGADOS
Ref -> http://certificacaobd.com.br/2012/08/24/oracle-1z0-051-topico-5-funcoes-agregadas/

Bem legal!!!

Abs!

Sinopse

CREATE [ TEMPORARY | TEMP ] SEQUENCE nome
[ INCREMENT [ BY ] incremento ]
[ MINVALUE valor_mínimo | NO MINVALUE ]
[ MAXVALUE valor_máximo | NO MAXVALUE ]
[ START [ WITH ] início ] [ CACHE cache ]
[ [ NO ] CYCLE ]

CYCLE
NO CYCLE
A opção CYCLE permite uma seqüência reiniciar quando atingir o valor_máximo ou o valor_mínimo, respectivamente. Se o limite for atingido, o próximo número gerado será ovalor_mínimo ou o valor_máximo, respectivamente. Se NO CYCLE for especificado, toda chamada a nextval após a seqüência ter atingido seu valor máximo retorna um erro. Se nem CYCLE nem NO CYCLE for especificado, NO CYCLE é o padrão.


Como a chave primária tem que ter valores únicos, não se pode usar a opção cycle pois ela reinicia os valores.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo