Buscar

Simulado completo banco de dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603
	Disc.: FUND.BANCO DE DADOS -- Aula 1
	2019.2 (G) / EX
	
	Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
	
	
	
	
	1.
	
	A auto informação do banco de dados está caracterizada pela existência:
	
	
	
	Dos aplicativos
	
	
	Do catálogo
	
	
	Do sistema de banco de dados
	
	
	Dos arquivos de dados
	
	
	Do SGBD
	
Explicação:
O catalogo armazena os metadados, ou seja, os dados que descrevem as estruturas de armazenamento do banco de dados, permitindo que o SGBD acesse os seus dados sem necessitar de informações externas.
	
	
	
	 
	
	
	
	
	2.
	
	O projetista de banco de dados na Arquitetura Ansi Sparc define o:
 
	
	
	
	Modelo Conceitual
	
	
	Modelo Lógico
	
	
	Modelo Físico
	
	
	Nível conceitual
	
	
	Nível interno
	
Explicação: O Nível conceitual de um banco de dados corresponde aos seus objetos lógicos que são definidos pelo projetista de banco de dados.
	
	
	
	 
	
	
	
	
	3.
	
	O conceito que exemplifica o significado de INFORMAÇÃO é:
  
	
	
	
	 O armazenamento de arquivo
    
	
	
	   a manipulação de arquivos
	
	
	O armazenamento de dados
    
	
	
	O resultado do processamento, manipulação e organização de dados
  
	
	
	 A manipulação de dados
 
	
Explicação:
A informação é produzida a partir do processamento dos dados, ou seja, é o conhecimento produzido a partir da análise dos dados.
	
	
	
	 
	
	
	
	
	4.
	
	Na Arquitetura Ansi Sparc quando nos referimos a forma como os diferentes usuários  enxergam o banco de dados estamos no:
,
	
	
	
	Nível conceitual
	
	
	Nível externo
	
	
	Sistemas Gerenciador de Banco de Dados
	
	
	Aplicativo
	
	
	Nível interno
	
Explicação:
O Nível externo é aonde são definidas as diversas visões do banco de dados, ou seja, a forma como os usuários enxergam o banco de dados.
	
	
	
	 
	
	
	
	
	5.
	
	Na Arquitetura Ansi Sparc o DBA trabalha no:
	
	
	
	NIVEL CONCEITUAL
	
	
	BANCO DE DADOS
	
	
	NIVEL EXTERNO
	
	
	NIVEL INTERNO
	
	
	SGBD
	
Explicação:
O DBA administrador de banco de dados é o responsável pela administração no Sistema Gerenciador de Banco de Dados que na arquitetura ANSI SPARC equivale ao NIVEL INTERNO
	
	
	
	 
	
	
	
	
	6.
	
	O usuário de banco de dados responsável por fazer o seu gerenciamento é o:
 
	
	
	
	Desenvolvedor
	
	
	Projetista de Banco de Dados
	
	
	Administrador de Dados
	
	
	Administrador de Banco de Dados
	
	
	Gerente de Sistemas
	
Explicação:
O administrador de banco de dados é responsável pelo gerenciamento do SGBD e, portanto, do próprio banco de dados
		Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603
	Disc.: FUND.BANCO DE DADOS 
	2019.2 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		O modelo que descreve as estruturas de armazenamento (taabelas) seus campos, suas chaves e demais características , é:
	
	
	
	Modelo de dados
	
	
	Modelo físico
	
	
	Modelo essencial
	
	
	Modelo conceitual
 
	
	
	Modelo lógico
	
Explicação:
O modelo lógico é construido a partir do modelo conceitual realizando o mapeamento do DER para os componentes do modelo relacional, tabelas, definindo suas colunas e chaves
	
	
	
	 
		
	
		2.
		O modelo que descreve a realidade do ambiente, constituindo uma visão global dos principais dados e relacionamentos, independente das restrições de implementação em um banco de dados, é o:
	
	
	
	Conceitual
	
	
	Essencial
	
	
	Físico
	
	
	Relacional
 
	
	
	Lógico
	
Explicação:
O modelo conceitual é feito utilizando o Diagrama Entidade Relacionamento e destina-se a formalizar a realidade apresentada no mini mundo, formalizando-a
	
	
	
	 
		
	
		3.
		 O Projeto de um banco de dados é normalmente dividido em fases. Marque a alternativa correta.
  
	
	
	
	Projeto Físico: total independência do SGBD específico.
  
	
	
	 Projeto Conceitual: define como os dados são armazenados no SGBD específico.
 
	
	
	   Projeto Físico: descreve estruturas de armazenamento e métodos de acesso.
    
	
	
	 Projeto Lógico: linguagem usada para especificar esquemas lógicos, consiste em criar um modelo físico de dados a partir do modelo conceitual independente do SGBD escolhido.
 
	
	
	 Projeto Conceitual: é analisado um modelo de dados em função do SGBD definido e usa modelo de dados para descrever a realidade.
  
	
Explicação:
Projeto de Banco de Dados: Modelo Conceitual, Modelo Lógico e Modelo Físico.
Projeto Conceitual: Modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular. A técnica de modelo conceitual mais difundida é a abordagem Entidade-Relacionamento.
Projeto Lógico: Descreve as estruturas que estarão contidas no banco de dados, considerando o modelo de dados do Sistema Gerenciador de Banco de Dados (SGBD), resultando em um esquema lógico de dados.
Projeto Físico: Descreve as estruturas físicas de armazenamento de dados, tais como: tamanho dos campos, índices, tipo de preenchimento destes campos, etc... . É totalmente dependente do SGBD.
	
	
	
	 
		
	
		4.
		O modelo que descreve as estruturas de armazenamento de dados, tais como no SGBD como os tipos de dados esécíficos,  índices, tipo de preenchimento destes campos, é:
	
	
	
	Modelo físico
	
	
	Modelo lógico
	
	
	Modelo Relacional
 
	
	
	Modelo conceitual
 
	
	
	Modelo essencial
	
Explicação:
O modelo de dados físico define a forma como as tabelas serão criadas no SGBD, com os seus tipos de dados, os indices a serem utilizados e as opções de armazenamento
	
	
	
	 
		
	
		5.
		Sobre modelos de dados conceituais, lógicos e físicos, marque a opção correta:
    
	
	
	
	 Modelos de dados físicos são orientados a SGBDs específicos
  
	
	
	 Modelos de dados físicos não descrevem detalhes de como os dados são armazenados
 
	
	
	 Modelos de dados conceituais são totalmente dependentes da implementação
  
	
	
	Modelos de dados físicos usam conceitos próximos da visão dos usuários
    
	
	
	Modelos de dados lógicos utilizam conceitos que definem o armazenamento físico
  
	
Explicação:
Fases de Modelagem: Modelo Conceitual, Modelo Lógico e Modelo Físico.
Modelo Conceitual: Modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular. A técnica de modelo conceitual mais difundida é a abordagem Entidade-Relacionamento.
Modelo Lógico: Descreve as estruturas que estarão contidas no banco de dados, considerando o modelo de dados do Sistema Gerenciador de Banco de Dados (SGBD), resultando em um esquema lógico de dados.
Modelo Físico: Descreve as estruturas físicas de armazenamento de dados, tais como: tamanho dos campos, índices, tipo de preenchimento destes campos, etc.
	
	
	
	 
		
	
		6.
		O Diagrama Entidade-Relacionamento é utilizado para elaboração do seguinte modelo de dados:
	
	
	
	interno
	
	
	hierárquico
 
	
	
	conceitual
	
	
	físico
	
	
	externo
	
Explicação:
O Diagrama Entidade Relacionamento é a ferramenta utilizada no Projeto de Banco de Dados para realizar a modelagem conceitual
		Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603Disc.: FUND.BANCO DE DADOS 
	2019.2 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		O Modelo ER (Entidade-Relacionamento) básico consiste em três classes de objetos que são:
 
	
	
	
	Campos, Relacionamentos e Atributos
 
	
	
	Índices, Entidades, Relacionamentos
 
	
	
	Entidades, Relacionamentos e Atributos
 
	
	
	Relacionamentos, Tabelas e Atributos
 
	
	
	Diagramas, Relacionamentos e Atributos
	
Explicação:
O DER tambem é conhecido como ERA , entidade, relacionamento e atributos, seus 3 elementos  básicos
	
	
	
	 
		
	
		2.
		Trata-se de um conjunto de elementos do contexto do negócio, representados por um conjunto de atributos:
	
	
	
	Informação
	
	
	Classe
 
	
	
	Associação
	
	
	Entidade
	
	
	Dado
	
Explicação:
No contexto do MER uma entidade é um objeto do mundo real concreto ou abstrato que é descrito pelas suas caracteristicas, chamadas atributos.
	
	
	
	 
		
	
		3.
		Em uma das etapas do projeto de um banco de dados, definimos modelamos os relacionamentos tipo que se conectam:
 
	
	
	
	as Entidades tipo e outros relacionamentos tipo.
 
	
	
	Apenas as entidades tipo
 
	
	
	A outros relacionamentos tipo
	
	
	Apenas relacionamentos.
 
	
	
	Apenas as entidades
 
	
Explicação:
O relacionamento tipo é associação de duas entidades tipo
	
	
	
	 
		
	
		4.
		A realidade que esta sendo modelada durante o projeto de banco de dados denomina-se
 
	
	
	
	Mundo Real
 
	
	
	Mini Mundo
 
	
	
	Modelo Descritivo
 
	
	
	Requisito de Informação
 
	
	
	Modelo Conceitual
	
Explicação:
MINI MUNDO é a parcela do mundo real que se vai modelar atendendo aos requisitos de informação
	
	
	
	 
		
	
		5.
		Quando afirmamos que o notebook numero de Serie 23456 pertence ao Banco Libre, podemos afirmar que o Banco Libre é um exemplo de:
 
	
	
	
	Requisito de Informação
	
	
	Relacionamento Tipo
 
	
	
	Relacionamento
 
	
	
	Entidade Tipo
 
	
	
	Entidade
 
	
Explicação:
Entidade é um objeto do mundo real concreto ou abstrato como é o caso do BANCO LIBRE 
	
	
	
	 
		
	
		6.
		A técnica de diagramação no modelo de Entidade - Relacionamento é bem simples.
Utiliza basicamente um losango para representar I e um retângulo para representar II.
As opções I e II são preenchidas, correta e respectivamente, por
 
	
	
	
	atributos - relacionamentos
 
	
	
	atributos - entidades 
	
	
	entidades - atributos
 
	
	
	relacionamentos - entidades 
 
	
	
	entidades - relacionamentos 
 
	
Explicação:
a representação gráfica de relacionamento no DER é um losango e de entidade um retangulo
		Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603
	Disc.: FUND.BANCO DE DADOS 
	2019.2 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Uma loja de material esportivo deseja efetuar o cadastro de seus cliente com as seguintes informações Nome, telefones, email.
Sendo assim, o ideal é definir o atributo telefones como:
	
	
	
	Atributo multivalorado.
	
	
	Atributo obrigatório.
	
	
	Atributo composto.
	
	
	Atributo identificador.
 
	
	
	Atributo monovalorado.
	
Explicação:
Como se deseja armazenar mais de um telefone para cada cliente o correto é modelar o atributo como multivalorado
	
	
	
	 
		
	
		2.
		Na modelagem conceitual de um banco observou-se que  um aluno pode ou não estar matriculado em um curso, podendo estar matriculado em vários  e um curso necessita de um ou mais alunos para ocorrer. Seguindo a orientação descrita no texto, assinale o conjunto de cardinalidades correto abaixo:
	
	
	
	(0,N) e (1,N).
 
	
	
	(0,1) e (0,N).
	
	
	(0,1) e (1,N).
	
	
	(0,N) e (0,1).
	
	
	(0,N) e (0,N).
	
Explicação:
Quanto a  aluno
- pode não estar em nenhum curso - mínimo 0
- pode estar me vários curso - máximo 1
- cardinalidade - (0,N)
Quanto a curso 
- precisar ter um aluno - mínimo 1
- pode ter vários - máximo N
- cardinalidade (1,N)
	
	
	
	 
		
	
		3.
		Em um Modelo de Entidade e Relacionamento, o ATRIBUTO tem a seguinte função:
	
	
	
	Identifica unicamente uma entidade e não um relacionamento.
	
	
	É uma propriedade que descreve uma entidade ou um relacionamento.
 
	
	
	É uma propriedade que descreve somente um relacionamento.
	
	
	É sempre um atributo identificador único (chave primária) para apenas uma tabela.
	
	
	Identifica unicamente um relacionamento e não uma entidade.
	
Explicação:
Os atributos descrevem as caracteristica de uma entidade ou de um relacionamento
	
	
	
	 
		
	
		4.
		A afirmação: "um morador reside  em uma e somente uma cidade e em uma cidade residem pelo menos um ou vários moradores", mostra que as cardinalidades de morador  para cidade e de cidade para morador  são respectivamente:
	
	
	
	(1,1) e (1,N)
	
	
	(0,1) e (1,N)
	
	
	(1,N) e (0,1)
 
	
	
	(1,N) e (0,N)
	
	
	(0,N) e (1,1)
	
Explicação:
Quanto a morador
- mora em uma cidade -  mínimo 1
- mora em somente uma - máximo 1
- cardinalidade (1,1)
Quanto a cidade 
- possui no mínimo um morador - mínimo 1
- pode possuir vários - máximo N
-cardinalidade (1,N)
	
	
	
	 
		
	
		5.
		Um atributo para ser identificador dever ser classificado como:
	
	
	
	Composto e Obrigatório
	
	
	Composto e monovalorado
	
	
	Não único e simples
 
	
	
	Único e Obrigatório
	
	
	Único e opcional
	
Explicação:
o atributo identificador é aquele que irá dar origem a uma chave primária na tabela, desta forma deve ter as mesmas caracteristicas de unicidade e obrigatoriedade
	
	
	
	 
		
	
		6.
		Um relacionamento com valor mínimo para a cardinalidade igual a um é do tipo:
	
	
	
	Singular
	
	
	Obrigatório
	
	
	Único
 
	
	
	Restrito
	
	
	Opcional
	
Explicação:
Quando uma entidade tipo A possui cardinalidade mínima 1 em seu relacionamento com a entidade tipo B isso significa que todas as entidades de A devem obrigatoriamente se relacionar com pelo menos uma entidade de B, ou seja o relacionamento é obrigatório
		Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603
	Disc.: FUND.BANCO DE DADOS 
	2019.2 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Uma chave candidata em um modelo relacional é:
	
	
	
	Um atributo ou combinação de atributos que possuem a propriedade de identificar de forma única uma linha da tabela.
	
	
	Ocorre em uma relação se existir somente uma combinação de atributos possuindo a propriedade de identificação única.
	
	
	Ocorre em uma relação em que exista mais de uma combinação de atributos possuindo a propriedade de identificação única.
	
	
	Ocorre um atributo de uma relação chave primária em outra relação.
	
	
	O conjunto de atributos, que serão chave primária, que organiza e dá acesso à tabela.
 
	
Explicação:
A chave candidata é o atributo ou conjunto de atributos de uma tabelaque pode vir a constituir sua chave primária.
Uma tabela pode ter nenhuma, uma ou várias destas chaves
	
	
	
	 
		
	
		2.
		Julgue as afirmativas abaixo:
I-Para representar uma relação muitos-para-muitos, você deve criar uma terceira tabela, geralmente chamada de tabela de associação, que divide a relação muitos-para-muitos em duas relações um-para-muitos.
II-Para representar uma relação muitos-para-muitos, insira a chave primária de cada uma das duas tabelas na terceira tabela. Como resultado, a terceira tabela registra cada ocorrência, ou instância, da relação.
III-Para representar uma relação muitos-para-muitos, exporte  a chave primária de uma tabela para a  outra, como chave estrangeira.
 
	
	
	
	Somente a afirmação III está correta.
 
	
	
	Somente a afirmação II está correta.
 
	
	
	Somente as afirmações I e II estão corretas.
 
	
	
	Somente as afirmações II e III estão corretas
	
	
	Somente a afirmação I está correta.
 
	
Explicação:
Na modelagem lógica de um relacionamento  N:N criamos um terceira tabela e exportamos para está as chaves primarias das tabelas resultantes das entidades tipo que participam do relaciomento tipo
	
	
	
	 
		
	
		3.
		Uma chave estrangeira em um modelo relacional é:
	
	
	
	Ocorre em uma relação de existir mais de uma combinação de atributos possuindo a propriedade de identificação única.
	
	
	Ocorre se um atributo de uma relação for atributo em outra relação.
	
	
	Um atributo ou combinação de atributos que possuem a propriedade de identificar de forma única uma linha da tabela.
	
	
	O Conjunto de atributos que serão chave primária que organiza e dá acesso a tabela.
 
	
	
	Ocorre se um atributo de uma relação for chave primária em outra relação.
	
Explicação:
a CHAVE ESTRANGEIRA (FK) materializa os relacionamentos no modelo lógico e consiste em exportar a CHAVE PRIMÁRIA (PK) de uma tabela para outra
	
	
	
	 
		
	
		4.
		Uma chave primária em um modelo relacional é quando:
	
	
	
	Um atributo único que possuem a propriedade de identificar de forma única uma linha da tabela.
	
	
	O Conjunto de atributos que serão chave primária, que organiza e dá acesso à tabela.
 
	
	
	Um atributo ou combinação de atributos que possuem a propriedade de identificar de forma única uma linha da tabela.
	
	
	Ocorre em uma relação de existir mais de uma combinação de atributos possuindo a propriedade de identificação única.
	
	
	Ocorre um atributo de uma relação se for chave primária em outra relação.
	
Explicação:
a chave primária para poder identificar uma linha da tabela deve obrigatoriamente ter valor, ou seja não pode ser nula, e única, não pode repetir o valor em outra linha
	
	
	
	 
		
	
		5.
		Qual o nome da regra em um banco de dados que assegura que um valor que apareça em uma relação para um dado conjunto de atributos também apareça para um certo conjunto de atributos em outra relação?
 
	
	
	
	Transitividade Composta.
	
	
	Dependência Composta.
 
	
	
	Dependência Semântica.
 
	
	
	Integridade Conceitual.
 
	
	
	Integridade Referencial.
 
	
Explicação:
Integridade Referencial - As chaves estrangeiras têm que ser respeitadas, ou seja, se existe um determinado valor para o atributo na tabela onde ele é chave estrangeira, este valor deve existir na tabela onde ele é chave primária.
Integridade semântica - Garante que o dado inserido em uma linha da tabela seja um valor válido. Para esse valor ser válido deve ser do mesmo tipo de dados definido na especificação da coluna na tabela.
Dependência Transitiva - Uma dependência funcional transitiva ocorre quando uma colua, além de depender da chave primária da tabela, depende de outra coluna ou conjunto de colunas da tabela.
	
	
	
	 
		
	
		6.
		No modelo de banco de dados relacional, os dados são representados por meio de:
	
	
	
	Ponteiros, que são as chaves primárias e estrangeiras.
	
	
	Listas encadeadas de tuplas.
	
	
	Tabelas.
	
	
	Matrizes tridimensionais formadas por linhas, colunas e chaves.
	
	
	Vetores de tuplas.
 
	
Explicação:
No  modelo relacional, como o proprio nome diz, os dados são armazenados em TABELAS.
Uma tabela na matemática é denominada Relação dai o nome MODELO RELACIONAL
		Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603
	Disc.: FUND.BANCO DE DADOS 
	2019.2 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Dois comandos básicos da SQL pertencentes à classe de linguagem de manipulação dos dados(DML), são:
  
	
	
	
	update e delete  
    
	
	
	update e drop
    
	
	
	alter e delete
    
	
	
	 drop e delete
    
	
	
	alter e drop
	
Explicação:
os comandos de DML são INSERT, UPDATE E DELETE
	
	
	
	 
		
	
		2.
		A seguinte instrução ocasiona qual procedimento no banco: 
CREATE TABLE PESSOAS ( ID_PESSOA INT NOT NULL  PRIMARY KEY, PESSOA VARCHAR(26) );
 
	
	
	
	Mostra a tabela tbPessoa.
	
	
	Cria a tabela pessoa na forma descrita e com os campos preenchidos;
 
	
	
	Cria um identificador (ID_PESSOAS) que é a chave primária;
 
	
	
	Cria a tabela pessoa com 2 campos; 
 
	
	
	Cria a tabela pessoa com 3 campos;
 
	
Explicação:
o COMANDO CREATE TABLE cria uma tabela
	
	
	
	 
		
	
		3.
		Ao implementar um sistema de gerência de fornecedores, o desenvolvedor percebeu que não existia no banco de dados relacional da empresa qualquer representação da entidade PRODUTO que aparecia em seu modelo de dados. Para corrigir essa falha, preparou um comando SQL que alteraria o esquema do banco de dados.
Tal comando SQL deve ser iniciado com
    
	
	
	
	CREATE PRODUTO : TABLE
  
	
	
	ALTER SCHEMA ADD TABLE PRODUTO
  
	
	
	 ALTER TABLE PRODUTO
    
	
	
	 CREATE PRODUTO AS TABLE
  
	
	
	 CREATE TABLE PRODUTO
	
Explicação:
A SOLUÇÃO SERIA CRIAR A TABELA PRODUTO COM O COMANDO CREATE TABLE
	
	
	
	 
		
	
		4.
		Um DBA criou uma tabela em um Banco de Dados no postgreSQL utilizando o comando 
CREATE TABLE mec ( 
cidade varchar(80), 
temp_baixa int, 
temp_alta int, 
nivel_precip real, 
data date )
Para o comando que insere dados na tabela mec, é usada a seguinte sintaxe:
  
	
	
	
	 INSERT OVER mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13');
  
	
	
	 INSERT ON mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13');
  
	
	
	 INSERT FROM mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13');
  
	
	
	 INSERT IN mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13');
  
	
	
	 INSERT INTO mec(cidade, temp_baixa, temp_alta, nível_precip, data) VALUES ('Brasilia', 20, 34, 0.2, `2009-01-13');
	
Explicação:
O Comando de INSERT tem como  sintaxe INSERT INTO tabela VALUES (valores)
	
	
	
	 
		
	
		5.
		Considere o banco de dados relacional de uma clínica médica
PACIENTE (id_pac, nome_pac, sexo, fone_pac)
ESPECIALIDADE (id_espec, nome_espec)
MEDICO (id_med, nome_med, fone_med, id_espec)
CONSULTA (id_cons, dt_cons, vl_cons, id_pac, id_med)
Dê o comando correspondente de Atualizar o nome da especialidade para a especialidade de id = 1.
  
	
	
	
	 Update ESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec != 1
  
	
	
	Update ESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec < 1
    
	
	
	 Update ESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec <> 1
    
	
	
	Update ESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec = 1 
	
	
	UpdateESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec > 1
    
	
Explicação:
o comando que atualiza os dados é o de update
	
	
	
	 
		
	
		6.
		Na linguagem SQL    
	
	
	
	a Linguagem de Manipulação de Dados compreende os comandos para inserir, remover e modificar informações em um banco de dados.
    
	
	
	 a Linguagem de Definição de Dados fornece tabelas para criação e modificação de comandos.
    
	
	
	os comandos básicos da Linguagem de Definição de Dados são Sort, Insert, Undo e Store.
	
	
	a Linguagem de Manipulação de Relacionamentos compreende os comandos para construir tabelas em um banco de dados.
  
	
	
	os comandos básicos da Linguagem de Definição de Dados são Select, Insert, Update e Delete.
    
	
Explicação:
DDL (Linguagem de Definição de Dados): Permitem a criação e definição de objetos como tabelas, views e outros objetos no banco de dados (ex: Create, Alter, Drop, Rename, Truncate)
DRL (Linguagem de Recuperação de Dados): É o comando mais comum do SQL. Utilizado amplamente para recuperação dos dados de uma base. (Ex: select)
DML (Linguagem de Manipulação de Dados): Comandos de manipulação dos dados. Usados nas aplicações que mantém a base de informações com inserções, atualizações e deleções de dados. (Ex: Insert, Delete, Update)
DCL (Linguagem de Controle de Dados):  São utilizados para atribuir ou remover direitos de acesso a objetos do banco de ados e suas estruturas. (Ex: Grant, Revoke)
	
		Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603
	Disc.: FUND.BANCO DE DADOS 
	2019.2 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Considere o esquema de uma empresa conforme segue:
Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv) ;
Depto (nro_depto, nome) ;
Projeto (cod_proj, nome, duracao, nro_depto) ;
Participa (cod_proj, cod_func, horas_trab).
Marque a alternativa que contém o comando em SQL para recuperar o nome e o salário dos funcionários do departamento 5, com salário na faixa entre 1000 e 2000.
    
	
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5;
    
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE SALARIO BETWEEN 1000 AND 2000;
	
	
	 SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000; 
    
 
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE SALARIO = 1000 AND NRO_DEPTO BETWEEN 1 AND 5;
  
	
	
	SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 OR SALARIO BETWEEN 1000 AND 2000;
    
	
Explicação:
O comando deve ter o between para definir a faixa dos salarios e o operador  AND para ligar as duas condições
	
	
	
	 
		
	
		2.
		Assinale a alternativas que selecione somente a coluna nome de todos os produtos utilizando uma cláusula que pode ser usada em um comando SELECT da linguagem SQL:
  
	
	
	
	SELECT qtde FROM produto;
    
	
	
	SELECT * FROM produto;
  
	
	
	 SELECT nome FROM produto;
    
	
	
	SELECT produto FROM nome
 
	
	
	 SELECT nome, qtde FROM produto;
    
	
Explicação:
Para selecionar somente uma coluna de uma tabela, apenas indique o nome da coluna e utiliza o comando Select nome_coluna FROM Tb_tabela;
	
	
	
	 
		
	
		3.
		Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras:
AREA (CODAREA, NOMEAREA)
LOCAL (CODLOCAL, CODAREA, NOMELOCAL)
TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO)
CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA)
Assinale a alternativa abaixo que representa um comando SQL que consulte todos os dados de capturas e de tubarões cujas datas sejam posteriores a 2009, o comprimento seja a partir de 4 metros e o sexo seja masculino (M).
 
	
	
	
	 SELECT * FROM CAPTURA C, TUBARAO T WHERE C.IDTUBARAO = T.IDTUBARAO AND DATA >= '31/12/2009' AND COMPRIMENTO > 4 AND SEXO = "M";
  
	
	
	    SELECT * FROM CAPTURA C, TUBARAO T ON C.IDTUBARAO = T.IDTUBARAO AND DATA > '31/12/2009' AND COMPRIMENTO >= 4 AND SEXO = 'M';
  
	
	
	    SELECT * FROM CAPTURA C, TUBARAO T ON C.IDTUBARAO = T.IDTUBARAO AND DATA > '31/12/2009' AND COMPRIMENTO > 4 AND SEXO = 'M';
    
	
	
	 SELECT * FROM CAPTURA C, TUBARAO T WHERE C.IDTUBARAO = T.IDTUBARAO AND DATA > '31/12/2009' AND COMPRIMENTO >= 4 AND SEXO = 'M'; 
 
	
	
	SELECT * FROM CAPTURA, TUBARAO WHERE DATA > '31/12/2009' AND COMPRIMENTO >= 4 AND SEXO = "M";
	
Explicação:
o comando exige o uso de tres condições ligadas por dois operadores AND
	
	
	
	 
		
	
		4.
		Assinale a alternativa que selecione todos os clientes que terminem com o nome 'Morais'
  
	
	
	
	Select * From Cliente Where nome like '%Mor'
    
	
	
	 Select * From Cliente Where nome like '%M'
    
	
	
	Select * From Cliente Where nome like '%Morais' 
    
	
	
	Select * From Cliente Where nome like '%M%'
	
	
	Select * From Cliente Where nome <> 'Morais'
    
	
Explicação:
É necessario o uso do like com o caracter curinga %
	
	
	
	 
		
	
		5.
		Assinale a alternativa que Selecione todos os pedidos para o cliente cujo código seja = 150 e cujo valor total seja maior que 500.
    
	
	
	
	Select * FROM pedido Where cliente_id= 150;
  
	
	
	Select * FROM pedido Where cliente_id= 150 AND pedido_valor_total > 500; 
    
	
	
	Select * FROM pedido Where cliente_id= 150 AND pedido_valor_total = 500;
	
	
	 Select * FROM pedido Where pedido_valor_total > 500;
    
	
	
	Select * FROM pedido Where cliente_id= 150 OR pedido_valor_total < 500;
    
	
Explicação:
Como temos duas condições devemos utilizar um operador lógico
	
	
	
	 
		
	
		6.
		Assinale a alternativa que selecione todos os clientes cujo código NÃO esteja entre 50 e 75.
    
	
	
	
	SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 OR 75;
    
	
	
	 SELECT * FROM Cliente Where cliente_id >= 50 AND  cliente_id <=75;
	
	
	SELECT * FROM Cliente Where cliente_id = 50 AND 75;
    
	
	
	SELECT * FROM Cliente Where cliente_id BETWEEN 50 AND 75;
  
	
	
	SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 AND 75; 
    
	
Explicação:
É necessario utilizar not between para filtrar as linhas que estão fora da faixa
		Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603
	Disc.: FUND.BANCO DE DADOS 
	2019.2 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras:
AREA (CODAREA, NOMEAREA)
LOCAL (CODLOCAL, CODAREA, NOMELOCAL)
TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO)
CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA)
Assinale a alternativa abaixo que representa uma consulta que exiba todos os dados de áreas e locais ordenados decrescentemente pelo nome do local.
    
	
	
	
	 SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
  
	
	
	SELECT * FROM AREA A INNER JOIN LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
  
	
	
	SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
    
	
	
	 SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA =L.CODAREA ORDER NOMELOCAL ASC;
  
	
	
	 SELECT * FROM AREA A INNER JOIN LOCAL L ON A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
	
Explicação:
PARA ORDENARMOS DE FORMA DESCRECENTE  PRECISAMOS UTILIZAR ORDER BY DESC
	
	
	
	 
		
	
		2.
		Baseado no modelo de banco de dados mostrado a seguir: 
CARRO(idcarro,placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF,idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) 
Mostre o tipo dos carros e quantos carros são do mesmo tipo:
 
	
	
	
	SELECT tipo, count(*) FROM carro GROUP BY tipo;
 
	
	
	SELECT tipo, sum(tipo) FROM carro GROUP BY sum(tipo);
 
	
	
	SELECT tipo, sum(tipo) FROM carro GROUP BY tipo;
 
	
	
	SELECT tipo, max(tipo) FROM carro GROUP BY tipo;
 
	
	
	SELECT tipo, count(*) FROM carro;
 
	
Explicação:
Para a correta execução temos que contar utilizando count e agrupar utilizando Group By
	
	
	
	 
		
	
		3.
		O retorno do valor médio de uma coluna contendo diversos números é possibilitado pela expressão SQL
  
 
	
	
	
	SELECT AVG OF column_name FROM table_name  
    
	
	
	 SELECT column_name (AVG) FROM table_name
    
	
	
	SELECT AVG(column_name) FROM table_name
  
	
	
	 SELECT FROM table_name AVG(column_name)
 
	
	
	 SELECT column_name FROM table_name SETTING AVG
  
	
Explicação:
A função AVG(X) retorna o valor médio da coluna x, ignorando os valores nulos. 
	
	
	
	 
		
	
		4.
		Considere a seguinte representação de uma tabela de um banco de dados relacional:
Estoque (id, Item, Quantidade, Categoria)
O comando SQL para se obter a soma dos valores do atributo Quantidade, agrupada por Categoria, apenas para as Categorias com Quantidade total superior a 50 unidades, é:
  
	
	
	
	 SELECT GROUP (Categoria), SUM (Quantidade) FROM Estoque WHERE Quantidade > 50
    
	
	
	SELECT GROUP (Categoria), COUNT (Quantidade) FROM Estoque WHERE Quantidade > 50
    
	
	
	SELECT Categoria, Quantidade FROM Estoque WHERE Quantidade > 50 GROUP BY Categoria
  
	
	
	 SELECT Categoria, SUM(Quantidade) FROM Estoque WHERE GROUP BY Categoria HAVING SUM(Quantidade) > 50
    
	
	
	SELECT Categoria, SUM (*) FROM Estoque GROUP BY Categoria HAVING SUM (*) > 50
	
Explicação:
Como é necessario filtrar os grupos temos que usar a clausula HAVING
	
	
	
	 
		
	
		5.
		Considere a tabela definida pelo comando SQL abaixo. 
Create table func ( 
nome varchar(50) not null, 
salario numeric(9,2) not null, 
cod_depto int null); 
Considere a consulta SQL abaixo: 
Select nome, salario 
from func 
where salario > 900 
and  cod_depto is not null 
order by salario 
O requisito abaixo que NÃO é atendido por esta consulta é: 
  
	
	
	
	 apresentar o resultado em ordem alfabética. 
	
	
	só considerar os registros que apresentem o atributo COD_DEPTO não nulo;
  
	
	
	 listar a coluna SALARIO da tabela FUNC;
  
	
	
	 só considerar os registros que apresentem o atributo SALARIO maior que 900;
    
	
	
	 listar a coluna NOME da tabela FUNC;
  
	
Explicação:
Como a ordenação foi realizada por uma coluna numerica não apresentara a ordem alfabetica crescente no resultado
	
	
	
	 
		
	
		6.
		Em um modelo de dados que descreve a publicação acadêmica de pesquisadores de diferentes instituições em eventos acadêmicos, considere as tabelas abaixo.
DEPARTAMENTO (CodDepartamento, NomeDepartamento)
EMPREGADO (CodEmpregado, NomeEmpregado, CodDepartamento, Salario)
Na linguagem SQL, o comando mais simples para recuperar os códigos dos departamentos cuja média salarial seja maior que 2000 é
    
	
	
	
	SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000 GROUP BY CodDepartamento
    
	
	
	SELECT CodDepartamento, AVG (Salario) > 2000 FROM EMPREGADO GROUP BY CodDepartamento
  
	
	
	 SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento HAVING AVG (Salario) > 2000 
    
	
	
	 SELECT CodDepartamento FROM EMPREGADO GROUP BY CodDepartamento ORDER BY AVG (Salario) > 2000
	
	
	SELECT CodDepartamento FROM EMPREGADO WHERE AVG (Salario) > 2000
  
	
Explicação:
Como temos que filtrar os grupo devemos utilizar a clausula HAVING
		Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603
	Disc.: FUND.BANCO DE DADOS 
	2019.2 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Baseado no modelo de banco de dados mostrado a seguir:
FILIAL(idfilial(PK), nome, cidade,endereço,telefone)
FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial)
CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade)
CLIENTE_ESPECIAL(idcliente(PK),Km,desconto)
CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial)
ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario)
O nome das filiais e a quantidade de funcionários que cada filial possui, mostre somente filiais com mais de 10 funcionários?
    
	
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi LEFT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
  
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial;
	
	
	 SELECT fi.nome Filial, count(*) Quantidade FROM filial fi, funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
    
	
	
	SELECT fi.nome Filial, count(*) Quantidade FROM filial fi INNER JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10; 
    
	
	
	 SELECT fi.nome Filial, count(*) Quantidade FROM filial fi RIGHT JOIN funcionário fu ON fi.idfilial=fu.idfilial GROUP BY Filial HAVING count(*) > 10;
  
	
Explicação:
O comando para produzir o resultado deve fazer uma junção interior, usando portanto INNER JOIN
	
	
	
	 
		
	
		2.
		Baseado no modelo de banco de dados mostrado a seguir: 
FILIAL(idfilial(PK), nome, cidade,endereço,telefone) 
FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) 
CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) 
CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) 
CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) 
O nome dos clientes, os códigos dos carros que o cliente alugou e o valor de cada aluguel?
  
	
	
	
	SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a LEFT JOIN cliente c where a.idcliente=c.idcliente
    
	
	
	SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a INNER JOIN cliente c
	
	
	 SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a, cliente c where a.idcliente=c.idcliente 
 
	
	
	SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a RIGHT JOIN cliente c where a.idcliente=c.idcliente
  
	
	
	 SELECT c.nome cliente, a.idcarro, a.valor FROM aluguel a, cliente c ON a.idcliente=c.idcliente
    
	
Explicação:
O comando exije uma junção interior, no caso foi escrita na sintaxe tradicional
	
	
	
	 
		
	
		3.
		Baseado no modelo de banco de dados mostrado a seguir: 
FILIAL(idfilial(PK), nome, cidade,endereço,telefone) 
FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) 
CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) 
CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) 
CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) 
O nome dos clientes que são cadastrados como especiais?
  
	
	
	
	 SELECT c.nome cliente FROM cliente c, cliente_especial ce ON c.idcliente=ce.idcliente
    
	
	
	 SELECT c.nome cliente FROM cliente c LEFT JOIN cliente_especial ce ONc.idcliente=ce.idcliente
  
	
	
	 SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce
  
	
	
	SELECT c.nome cliente FROM cliente c RIGHT JOIN cliente_especial ce ON c.idcliente=ce.idcliente
  
	
	
	 SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce ON c.idcliente=ce.idcliente 
	
Explicação:
Para sabermos o nome dos clientes especiais temos que fazer uma junção  interior entre a tabela de clientes especiais e a de cliente.
	
	
	
	 
		
	
		4.
		Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados são chaves primárias e os atributos em itálico são chaves estrangeiras:
ESPECIE (IDESPECIE, NOME_CIENTIFICO, DENTICAO, STATUS_EXTINCAO, HABITAT, TIPOREPRODUCAO)
CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA)
TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO)
Assinale a alternativa abaixo que representa uma consulta que exibe o nome científico e o sexo dos tubarões correlacionados corretamente.  
	
	
	
	SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E INNER JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE; 
 
	
	
	 SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E NATURAL JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE;
  
	
	
	 SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E CROSS JOIN TUBARAO T ON E.IDESPECIE = T.IDESPECIE;
    
	
	
	SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E, TUBARAO T;
    
	
	
	SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE JOIN TUBARAO;
    
	
Explicação:
A consulta deseja recuperar os seguintes campos:
- nome científico: encontra-se na tabela Espécie
- sexo:  encontra-se na tabela Tubarão.
Sendo assim temos que realizar uma junção interior.
 
	
	
	
	 
		
	
		5.
		Baseado no modelo de banco de dados mostrado a seguir: 
FILIAL(idfilial(PK), nome, cidade,endereço,telefone) 
FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) 
CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) 
CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) 
CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) 
O nome dos clientes que mesmo cadastrados no banco de dados da Locadora NÃO fizeram nenhum aluguel?
    
	
	
	
	 SELECT c.nome cliente FROM aluguel a RIGHT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL 
    
	
	
	SELECT c.nome cliente FROM aluguel a LEFT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL
  
	
	
	SELECT c.nome cliente FROM aluguel a, cliente c ON a.idcliente=c.idcliente
    
	
	
	SELECT c.nome cliente FROM aluguel a INNER JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS NULL
	
	
	SELECT c.nome cliente FROM aluguel a, cliente c where a.idcliente=c.idcliente
    
	
Explicação:
Como precisamos obter os não relacionados necessitamos fazer uma junção exterior
	
	
	
	 
		
	
		6.
		Analise o modelo a seguir:
Empregado (nome_empregado, rua,cidade)
Trabalha (nome_empregado,nome_companhia,salario)
Companhia (nome_companhia,cidade)
Qual é a consulta em SQL para encontrar nome, endereço e cidade de residência de todos os empregados da XXX que ganham mais de dez mil reais?
 
	
	
	
	SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario > 10000;
 
	
	
	SELECT e.nome_empregado, rua, cidade FROM empregado e WHERE t.nome_companhia = 'XXX' AND t.salario < 10000;
 
	
	
	SELECT e.nome_empregado, rua, cidade FROM empregado e LEFT JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000;
	
	
	SELECT e.nome_empregado, rua, cidade FROM empregado e INNER JOIN trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000;
 
	
	
	SELECT e.nome_empregado, rua, cidade FROM empregado e, trabalha t ON e.nome_empregado = t.nome_empregado WHERE t.nome_companhia = 'XXX' AND t.salario > 10000;
 
	
Explicação:
Temos que fazer uma junção interior portanto utilizamos inner join
		Aluno: RAFAEL MENDONÇA RODRIGUES
	Matr.: 201802487603
	Disc.: FUND.BANCO DE DADOS 
	2019.2 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Baseado no modelo de banco de dados mostrado a seguir: 
FILIAL(idfilial(PK), nome, cidade,endereço,telefone) 
FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) 
CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) 
CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) 
CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) 
Qual o nome do Funcionário que tem o maior salário?
  
	
	
	
	 SELECT nome FROM funcionario fu where salario = (select Max(salario) from funcionario); 
  
	
	
	 SELECT nome, Max(salario) FROM funcionario fu group by nome;
	
	
	 SELECT nome FROM funcionario fu where salario = Max(salario);
    
	
	
	 SELECT nome, Max(salario) FROM funcionario;
  
	
	
	SELECT nome FROM funcionario fu where salario = (select sum(salario) from funcionario);
  
	
Explicação:
Inicialmente utiliza-se uma subconsulta para obter o maior salario e a seguir o seu retorno para filtrar as linhas na consulta principal
	
	
	
	 
		
	
		2.
		Dada a instrução SQL: 
SELECT * FROM FUNCIONARIO WHERE salario > (SELECT AVG(salario) FROM FUNCIONARIO ); 
É correto afirmar que
    
	
	
	
	se trata de um exemplo de INNER JOIN.
	
	
	 se trata de um exemplo de OUTER JOIN.
    
	
	
	serão selecionados todos os registros da tabela FUNCIONARIO cujo conteúdo do campo "salario" seja maior que a média dos salários de todos os vendedores. 
  
	
	
	 serão selecionados todos os registros da tabela FUNCIONARIO cujo conteúdo do campo "salario" seja maior que o número de vendedores cadastrados.
    
	
	
	serão selecionados todos os registros da tabela FUNCIONARIO cujo conteúdo do campo "salario" seja maior que a soma dos salários de todos os vendedores
  
	
Explicação:
O comando não realiza uma junção, ele utiliza uma subconsulta para obter a media salarial dos empregados e a seguir filtrar os dados da consulta principal
	
	
	
	 
		
	
		3.
		Considere as seguintes tabelas:
    CLIENTE   (idCli, NomeCli)
    PEDIDO   (idPEDIDO, Data, idCli, ValorPedido)
Qual alternativa apresenta os clientes que NÃO tiveram nenhum pedido?
    
	
	
	
	SELECT    *    FROM    CLIENTE
    
	
	
	SELECT    NomeCli    FROM    CLIENTE C RIGHT JOIN PEDIDO P ON C.idCli = P.idCli
  
	
	
	SELECT    NomeCli    FROM    CLIENTE C LEFT JOIN PEDIDO P ON C.idCli = P.idCli
    
	
	
	SELECT    *    FROM CLIENTE    WHERE    idCli    IN    (SELECT idCli FROM PEDIDO)
    
	
	
	 SELECT    *    FROM CLIENTE    WHERE    idCli    NOT IN    (SELECT idCli FROM PEDIDO) 
 
	
Explicação:
O comando utiliza uma subconsulta para obter o id dos clientes que fizeram pedidos e a seguir filtra os clientes que não aparecem no conjunto retornado
	
	
	
	 
		
	
		4.
		Considere as seguintes tabelas de um banco de dados: 
1)    Fornecedor (cod_fornec, nome_fornec, telefone, cidade, UF) 
2)    Estado (UF, nome_estado) 
A expressão SQL que obtém os nomes dos estados para os quais não há fornecedores cadastrados e:
  
	
	
	
	SELECT E.nome_estado FROM Estado AS E WHERE E.UF IN (SELECT F.UF FROM Fornecedor AS F);
	
	
	SELECT E.nome_estado FROM Estado AS E WHERE E.UF NOT IN (SELECT F.UF FROM Fornecedor AS F);
    
	
	
	SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor AS F WHERE E.UF = F.UF;
    
	
	
	SELECT E.nome_estado FROMEstado AS E, FROM Fornecedor AS F WHERE E.nome_estado = F.UF;
    
	
	
	 SELECT E.UF FROM Estado AS E WHERE E.nome_estado NOT IN (SELECT F.UF FROM Fornecedor AS F);
    
	
Explicação:
A subconsulta obtem os estados dos fornecedores e a seguir a consulta principal verifica os estados que não aparecem no conjunto retornado
	
	
	
	 
		
	
		5.
		Baseado no modelo de banco de dados mostrado a seguir: 
FILIAL(idfilial(PK), nome, cidade,endereço,telefone) 
FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) 
CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) 
CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) 
CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) 
Qual o código do Carro que tem o maior valor de aluguel?
 
	
	
	
	SELECT idCarro, Max(valor) FROM aluguel a group by idcarro;
	
	
	SELECT idCarro FROM aluguel a where valor = (select sum(valor) from aluguel);
 
	
	
	SELECT idCarro FROM aluguel a where valor = (select Max(valor) from aluguel); 
 
	
	
	SELECT idCarro, Max(valor) FROM aluguel;
 
	
	
	SELECT idCarro FROM aluguel a where valor = Max(valor);
 
	
Explicação:
Para executarmos a consulta temos que primeiro obter o maior valor de aluguel em uma subconsulta e depois utilizar este valor para filtrar as linhas na consulta principal
	
	
	
	 
		
	
		6.
		Em um projeto lógico de um sistema foi identificado que  um projeto é de um certo tipo. Assim, as relações abaixo foram definidas:
TIPO_PROJETO (ID_TIPO, NOME)
PROJETO (ID_PROJETO,  NOME,  DESCRICAO, ID_TIPO, VALOR) Conforme a linguagem SQL e as relações dadas, escolha a opção que mostre o nome de cada tipo de projeto que não possua um projeto e que comece com a letra A.
    
	
	
	
	SELECT TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE ID_TIPO IS NULL AND TP.NOME LIKE '%A%';    
	
	
	SELECT TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE ID_TIPO IS NULL AND P.VALOR=0 AND TP.NOME LIKE 'A%';
    
	
	
	SELECT TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND  TP.ID_TIPO IS NULL AND TP.NOME LIKE '%A%';
	
	
	SELECT TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR IS NULL AND TP.NOME LIKE '%A%';    
	
	
	SELECT NOME
FROM TIPO_PROJETO
WHERE ID_TIPO NOT IN (SELECT DISTINCT ID_TIPO FROM PROJETO) AND NOME LIKE 'A%' ;     
	
Explicação:
A subconsulta retorna o ID do tipos de projeto que possuem projeto e a clausula where filtrar as linhas da consulta principal que estão no conjunto retornado e ainda os nomes que não começam por A

Continue navegando