Exercícios de Teste
Nenhum exercício corresponde a esta pesquisa.
Requisitos
Quem identifica as user storiesEscolha múltipla
Exame modelo, 2018
Por quem são identificadas as user stories de um projeto?
Solução
Stakeholders do projeto.
As histórias de utilizador são pequenos requisitos escritos do ponto de vista de quem usa o sistema, logo são identificadas pelos stakeholders.
- Arquitetos do projeto. Os arquitetos usam o artefato, mas não são quem o identifica.
- Developers do projeto. Os developers implementam as histórias, não as escrevem.
- Stakeholders do projeto. As user stories são identificadas pelos stakeholders, que descrevem o que precisam do sistema.
- Stakeholders e arquitetos do projeto. Os arquitetos não fazem parte da identificação.
Exemplo de regra de negócioEscolha múltipla
Teste de prática, 2021
Qual das seguintes afirmações é um exemplo de uma regra de negócio?
Solução
"A data de devolução tem de ser superior a uma data de empréstimo que ainda não tenha devolução registada".
Uma regra de negócio é uma restrição do domínio que o sistema deve impor, qualquer que seja a tecnologia. As restantes opções são requisitos funcionais ou técnicos.
- "No sistema deve ser possível editar um comentário adicionado anteriormente". É um requisito funcional do sistema.
- "O sistema do lado do servidor deve funcionar em várias plataformas (Linux, Mac OS, etc.)". É um requisito técnico (restrição de plataforma).
- "A data de devolução tem de ser superior a uma data de empréstimo que ainda não tenha devolução registada". É uma regra do domínio do problema, independente da tecnologia usada.
- "O sistema deve ser implementado como aplicação web com páginas dinâmicas (HTML5, JavaScript, CSS3 e PHP)". É um requisito técnico de implementação.
Modelação conceptual e relacional
Esquema relacional de utilizadores e itensEscolha múltipla
Exame modelo, 2018
Considere um modelo conceptual com duas entidades, User e Item, numa associação de um para muitos: cada item pertence a um único utilizador e um utilizador pode ter vários itens. Qual dos seguintes esquemas relacionais representa melhor esse modelo?
Solução
Users(id, nome) Itens(id, nome, idU -> User).
Na conversão de uma associação um para muitos, a chave estrangeira fica sempre na relação do lado do muitos.
- Users(id, nome, idI -> Item) Itens(id, nome). Coloca a chave estrangeira no lado do um, o que não representa vários itens por utilizador.
- Users(id, nome) Itens(id, nome, idU -> User). A tabela do lado do muitos (Itens) guarda a referência para o utilizador.
- Users(id, nome) Itens(id, nome) Item2User(idU -> User, idI -> Item). Uma tabela associativa modela muitos para muitos, não um para muitos.
- Users(id, nome, idI -> Item) Itens(id, nome, idU -> User). Tem chaves estrangeiras nos dois lados, o que é supérfluo e inconsistente.
Composição de quartos num hotelEscolha múltipla
Teste de prática, 2019
Para melhor representar num diagrama de classes UML a afirmação "Hoteis são constituídos por listas de quartos numerados sequencialmente dentro do hotel", o que deve ser feito?
Solução
Composição de Quarto num Hotel.
O quarto não tem existência própria fora do hotel (a numeração é sequencial dentro do hotel), o que caracteriza a composição.
- Associação de muitos para um entre Quarto e Hotel. Uma associação simples não exprime a dependência de existência.
- Classe-associação entre Hotel e Quarto. A classe-associação guarda atributos da associação, não o tempo de vida.
- Agregação de Quarto num Hotel. Na agregação o quarto pode existir sem o hotel, o que não acontece aqui.
- Composição de Quarto num Hotel. Os quartos existem apenas dentro do hotel e são numerados no seu contexto, logo há composição.
Classificação da herança de AnimalEscolha múltipla
Teste de prática, 2021
Considere que a partir de um modelo conceptual em UML com generalização foi gerado o esquema relacional:
CREATE TABLE animal (
id SERIAL,
nome VARCHAR(30) NOT NULL,
tipo ENUM ('cao', 'gato', 'golfinho') NOT NULL
);
Como classifica a herança representada em UML?
Solução
Disjunta e completa.
O atributo tipo é obrigatório (NOT NULL) e de valores mutuamente exclusivos (ENUM), o que corresponde a uma generalização disjunta e completa.
- Não disjunta e não completa. O tipo ENUM obriga a um valor, logo a cobertura é completa.
- Disjunta e não completa. O atributo tipo não pode ser nulo nem ter dois valores, logo é disjunta e completa.
- Não disjunta e completa. Um animal só pode ter um tipo, logo a herança é disjunta.
- Disjunta e completa. Todo o animal tem obrigatoriamente um único tipo, pelo que a generalização é disjunta e completa.
SQL e esquema físico
Atributos referenciados por uma chave estrangeiraEscolha múltipla
Teste de prática, 2023
Uma FOREIGN KEY faz referência a atributos de uma segunda tabela. O que têm de ser esses atributos?
Solução
UNIQUE.
Uma chave estrangeira aponta para uma chave candidata da tabela referenciada, que tem de ser única (normalmente a chave primária).
- NOT NULL. NOT NULL impede nulos, mas não garante unicidade.
- UNIQUE. Os atributos referenciados têm de ser uma chave candidata (UNIQUE), para que cada linha referenciada seja identificável.
- DOMAIN. DOMAIN define o conjunto de valores, não a unicidade.
- DEFAULT. DEFAULT dá um valor por omissão, não restringe a unicidade.
WHERE versus HAVINGEscolha múltipla
Teste de prática, 2019
Qual das seguintes afirmações está correta?
Solução
O comando WHERE é usado para filtrar registos de um resultado.
Na ordem lógica de um SELECT, o WHERE aplica-se às linhas individuais antes de qualquer agrupamento.
- O comando WHERE é usado para filtrar valores de um agrupamento. Quem filtra grupos (após GROUP BY) é o HAVING.
- O comando HAVING é usado para filtrar registos de um resultado. HAVING filtra grupos, não registos individuais.
- O comando WHERE é usado para filtrar registos de um resultado. O WHERE seleciona as linhas antes da agregação; o HAVING filtra depois do GROUP BY.
- O comando HAVING só pode ser usado em conjunto com o comando INSERT. HAVING usa-se com SELECT e GROUP BY, nunca com INSERT.
Desvantagem das stored proceduresEscolha múltipla
Teste de prática, 2019
Qual das seguintes opções é uma desvantagem decorrente da utilização de stored procedures?
Solução
A incapacidade de reutilização noutros SGBD do código desenvolvido.
Cada SGBD tem o seu dialeto de procedures (PL/pgSQL, T-SQL, etc.), logo o código desenvolvido não é reutilizável noutros sistemas.
- A diminuição do desempenho da aplicação. Em geral, as stored procedures reduzem o tráfego e podem melhorar o desempenho.
- A redução do número de pedidos ao servidor de base de dados por parte dos clientes. Isso é uma vantagem, não uma desvantagem.
- A dificuldade adicionada à gestão de transações. Não é a desvantagem típica apontada.
- A incapacidade de reutilização noutros SGBD do código desenvolvido. O código das procedures é específico do SGBD (dialeto próprio), pelo que não é portável.
Índices e pesquisa
Cenário ideal para um índice do tipo HashEscolha múltipla
Teste de prática, 2021
Qual dos seguintes representa um cenário ideal para um índice do tipo Hash?
Solução
Num campo de username, usado para encontrar um utilizador específico.
Um índice hash suporta eficientemente apenas comparações de igualdade; intervalos, prefixos e full-text exigem outros tipos de índice.
- Num campo de data, usado para filtrar registos entre uma data de início e fim. Intervalos pedem índice ordenado (B-tree), não hash.
- Num campo de texto, usado para pesquisa full-text no meio de um grande bloco de texto. Full-text usa índice invertido.
- Num campo de texto, usado para identificar todos os registos que começam por uma letra específica. Prefixos pedem B-tree ou índice invertido, não hash.
- Num campo de username, usado para encontrar um utilizador específico. O hash é ideal para procuras por igualdade exata sobre um valor único.
Sinais independentes da interrogação de pesquisaEscolha múltipla
Teste de prática, 2019
O que se entende por sinais (critérios) independentes da interrogação de pesquisa?
Solução
Sinais que são calculados aquando da indexação dos documentos.
Sinais independentes da interrogação (como o PageRank) calculam-se no momento da indexação e ficam guardados, para não pesar em cada pesquisa.
- Sinais que dependem diretamente da expressão de pesquisa utilizada. Esses são sinais dependentes da interrogação.
- Sinais que são calculados apenas no momento da interrogação. Independentes da interrogação calculam-se antes dela.
- Sinais que são definidos no momento de instalação do sistema de pesquisa. A instalação não é o momento do cálculo dos sinais.
- Sinais que são calculados aquando da indexação dos documentos. São exemplo o PageRank: calculam-se uma vez, na indexação, e não por cada pesquisa.
Estudo da carga no desenho do esquema físicoEscolha múltipla
Exame modelo, 2018
O que inclui o estudo da carga do sistema usado no desenho do esquema físico?
Solução
As alterações SQL (UPDATE, DELETE) importantes e qual a sua frequência.
O estudo da carga estima que consultas e alterações são frequentes, informação essencial para escolher índices e a organização física.
- O estudo da normalização de todas as relações. A normalização pertence ao esquema lógico, não ao estudo da carga.
- A identificação das restrições de integridade. Isso também é definido antes, no esquema lógico.
- O mapeamento do modelo conceptual de dados num esquema relacional. O mapeamento é a passagem ao relacional, não o estudo da carga.
- As alterações SQL (UPDATE, DELETE) importantes e qual a sua frequência. O esquema físico pesa a frequência das operações para decidir índices e organização dos dados.
Transações e triggers
Significado de ACIDEscolha múltipla
Exame modelo, 2018
No contexto de transações numa base de dados, o que significa ACID?
Solução
Atomicity, Consistency, Isolation, Durability.
ACID resume as propriedades de atomicidade, consistência, isolamento e durabilité das transações.
- Automatic Classification and Interpretation of Data. Não é o significado do acrónimo.
- Advanced Computing Information Database. Isso não corresponde às quatro propriedades.
- Atomicity, Consistency, Isolation, Durability. São as quatro propriedades que garantem a fiabilidade das transações.
- Advanced Combat Infantry Division. É uma distração, não uma definição.
O que garante a consistência de uma transaçãoEscolha múltipla
Teste de prática, 2021
O que garante a propriedade da consistência na execução de uma transação numa base de dados?
Solução
A transação transforma a base de dados de um estado válido para outro estado válido.
Consistência (o C de ACID) significa que a transação respeita todas as restrições de integridade, passando de um estado válido a outro.
- A transação transforma a base de dados de um estado válido para outro estado válido. A consistência garante que a transação não quebra as regras de integridade.
- A transação tem o mesmo resultado independentemente da altura em que é executada. Isso descreve o isolamento, não a consistência.
- As operações foram efetuadas como o programador deseja. Não é uma definição formal da propriedade.
- Todas as operações da transação são efetuadas ou nenhuma é efetuada. Isso é a atomicidade.
Trigger despoletado por um UPDATEEscolha múltipla
Teste de prática, 2021
Considere um trigger despoletado aquando de uma atualização (UPDATE). Qual das seguintes afirmações está correta?
Solução
O trigger pode ser executado em vez da atualização.
Além de BEFORE/AFTER, um trigger pode ser INSTEAD OF, caso em que substitui a operação original em vez de a acompanhar.
- O trigger é sempre executado uma vez por cada linha modificada. Depende do tipo de trigger (por linha ou por instrução).
- O trigger pode ser executado em vez da atualização. Um trigger INSTEAD OF substitui a operação que o despoletou.
- Triggers em instruções de UPDATE que envolvam múltiplas linhas desencadeiam um erro. Não é verdade; os triggers por linha correm para cada linha.
- O trigger é sempre executado uma única vez, independentemente do número de linhas modificadas. Só os triggers por instrução funcionam assim.
Web e acessibilidade
O que é o AJAXEscolha múltipla
Exame modelo, 2018
O que é o AJAX?
Solução
Um conjunto de técnicas para manipulação assíncrona de páginas web.
O AJAX agrupa técnicas (como XMLHttpRequest/fetch) que comunicam com o servidor em segundo plano e atualizam a página dinamicamente.
- Uma técnica assíncrona para comunicação com servidores remotos. Isso descreve só parte do conceito, não o conjunto.
- Uma técnica assíncrona para processamento em background. O processamento em background não é o foco do AJAX.
- Um limpa-vidros muito comum. É uma distração sem relação com a definição.
- Um conjunto de técnicas para manipulação assíncrona de páginas web. AJAX (Asynchronous JavaScript and XML) é o conjunto de técnicas que permite atualizar partes da página sem a recarregar.
Protocolo de comunicação entre servidores e clientes webEscolha múltipla
Teste de prática, 2023
Qual o nome do conjunto de regras (protocolo) que define a forma como servidores e clientes web devem estruturar e organizar as mensagens que usam para comunicar?
Solução
HyperText Transfer Protocol (HTTP).
É o protocolo da camada de aplicação usado na web para estruturar pedidos (métodos, cabeçalhos) e respostas (códigos de estado).
- File Transfer Protocol. FTP trata da transferência de ficheiros, não da web.
- Transmission Control Protocol. TCP é a camada de transporte, não o protocolo da web.
- HyperText Transfer Protocol. É o HTTP que define pedidos e respostas entre clientes e servidores web.
- Internet Protocol. IP trata do endereçamento e encaminhamento de pacotes.
Eloquent e Blade na framework LaravelEscolha múltipla
Teste de prática, 2021
Na framework Laravel, quais das seguintes tecnologias são usadas para, respetivamente, (1) gerir o acesso aos dados e (2) definir as vistas HTML?
Solução
Eloquent e Blade.
No Laravel, o Eloquent implementa o padrão Active Record sobre a base de dados e o Blade gera as vistas HTML.
- Artisan e Blade. Artisan é a consola de comandos, não o acesso a dados.
- Eloquent e Artisan. Artisan não define vistas.
- Blade e Eloquent. Inverte as duas tecnologias.
- Eloquent e Blade. O Eloquent é o ORM (acesso a dados) e o Blade é o motor de templates das vistas.
O que é um leitor de ecrãEscolha múltipla
Teste de prática, 2023
O que é um leitor de ecrã (screen reader)?
Solução
Um software que utiliza discurso sintetizado para ler uma página web.
O leitor de ecrã é uma tecnologia de apoio que converte o conteúdo do ecrã em fala sintetizada.
- Um software que converte discurso falado para texto, para apresentação num ecrã. Isso descreve reconhecimento de fala, não leitura do ecrã.
- Um software que permite aumentar o texto num ecrã de um computador. Isso é um ampliador de ecrã.
- Um software que utiliza discurso sintetizado para ler uma página web. O screen reader lê o conteúdo da página em voz alta, apoiando utilizadores com deficiência visual.
- Um indivíduo que traduz língua falada para língua gestual. Isso é um intérprete, não software.