You are on page 1of 62

Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.

br​ 1

Lista de Exercícios
Banco de Dados

As questões abaixo e os comentários tem intuito educativo de verificarmos como os


assuntos tratados em sala de aula são abordados em diversos concursos públicos.
Isto sem dúvida é uma excelente forma de aprendermos mais sobre o assunto e
ampliarmos nossos horizontes e objetivos.

Lembrem-se: “​Um obstáculo por dia, um sorriso por noite, afinal


todos estamos debaixo do mesmo céu, porém cada
um enxerga um horizonte diferente​.”

Bons estudos!

Prof. Edilberto Silva

QUESTÕES DE CONCURSOS
1) ANO: 2015 BANCA: FUNDATEC ÓRGÃO: BRDE PROVA: ANÁLISE DE SISTEMAS -
SUPORTE - O projeto de um novo banco de dados ocorre em três fases, quais sejam:
A DDL, SSD e modelagem virtual
B Modelagem conceitual, projeto lógico e projeto físico
C Projeto físico, SQL e SSD
D SQL, modelagem conceitual e projeto físico
E SQL, DDL e SSD 1

2) ANO: 2015 BANCA: CESPE ÓRGÃO: CGE-PI PROVA: AUDITOR GOVERNAMENTAL -


TECNOLOGIA DA INFORMAÇÃO - Um modelo de dados pode ser usado para representar os
tipos de dados existentes em um banco de dados de um sistema online de reservas.2
3) ANO: 2015 BANCA: CESPE ÓRGÃO: DEPEN PROVA: AGENTE PENITENCIÁRIO FEDERAL -
TECNOLOGIA DA INFORMAÇÃO - Os níveis interno, externo e conceitual da arquitetura de um
banco de dados são responsáveis, respectivamente, por gerenciar o modo como os dados
serão armazenados fisicamente, por gerenciar o modo como os dados serão vistos pelos
usuários e por representar todo o conteúdo de informações do banco de dados.3
4) ANO: 2014 BANCA: UFG ÓRGÃO: UEAP PROVA: ANALISTA DE TI - BANCO DE DADOS -
Metadados são dados sobre outros dados. No contexto de bancos de dados, metadados são
usados para
A descrever a estrutura do banco de dados.
B descrever o conteúdo do log do sistema.
C resumir o conteúdo dos dados de cada relação.
D resumir a estrutura dos programas de aplicação. 4

1
B
2
C
3
C
4
A
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 2

5) ANO: 2014 BANCA: UFG ÓRGÃO: UEAP PROVA: ANALISTA DE TI - SUPORTE E


INFRAESTRUTURA- Sistemas de Bancos de Dados são baseados nos conceitos de “esquema”
de bancos de dados e “instância” de bancos de dados. A relação existente entre esses
conceitos é:
A a instância de banco de dados define o conjunto de dados contidos no banco de dados
em um determinado instante, e o esquema de banco de dados define o conjunto de
metadados que especificam os estados válidos para o banco de dados.
B a instância de banco de dados define o modelo de dados utilizado para representar os
dados em um determinado instante, e o esquema de banco de dados define a
linguagem utilizada para representar os estados válidos de dados.
C o esquema de banco de dados define o conjunto de dados contidos no banco de
dados em um determinado instante, e a instância de banco de dados define o conjunto
de metadados que especificam os estados válidos para o banco de dados.
D o esquema de banco de dados define o modelo de dados utilizado para representar o
banco de dados em um determinado instante, e a instância de banco de dados define a
linguagem utilizada para representar estados válidos de dados. 5
6) ANO: 2014 BANCA: VUNESP ÓRGÃO: TJ-PA PROVA: ANALISTA JUDICIÁRIO -
DESENVOLVIMENTO DE SISTEMA - Sobre uma tabela de um banco de dados relacional, é
correto afirmar que
A tem pelo menos duas chaves primárias.
B pode conter somente um atributo do tipo booleano.
C deve ter, no mínimo, um atributo do tipo numérico.
D sua chave primária deve ser do tipo literal.
E sua chave primária pode ser composta por mais de um atributo.6
7) ANO: 2016 BANCA: CESPE ÓRGÃO: TRE-PI PROVA: ANALISTA JUDICIÁRIO - ANÁLISE
DE SISTEMA - A respeito dos diferentes modelos de banco de dados — relacional, rede,
hierárquico, distribuído e orientado a objetos —, assinale a opção correta.
A Em bancos de dados orientados a objetos, busca-se agrupar os dados e os códigos
que manipulam esses dados em vários elementos formando um grafo, e podendo, como
uma extensão do modelo hierárquico, cada segmento pai ter mais de um segmento
filho, e cada segmento filho ter mais de um segmento pai
B No modelo em rede, representam-se os dados em um conjunto de árvores
normalizadas, sendo possível modificar sua estrutura com facilidade, uma vez que não
é preciso reconstruir o banco de dados
C Nos bancos de dados relacionais, representam-se os dados em um conjunto de
tabelas inter-relacionadas, o que torna o banco de dados mais flexível no que concerne
à tarefa de modificação da estrutura de uma tabela dentro desse banco de dados,
porque não há necessidade de reconstruí-lo
D Segundo o padrão SQL ANSI, para a definição de um esquema de um banco de dados
relacional, deve-se adotar uma linguagem de definição de dados usando hierarquias de
classes baseadas em linguagens orientadas a objetos
E O modelo hierárquico se assemelha a um organograma com um segmento raiz e um
número qualquer de segmentos subordinados, podendo cada segmento filho ter mais de
um segmento pai.7

5
A
6
E
7
c
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 3

8) ANO: 2015 BANCA: MP-RS ÓRGÃO: MP-RS PROVA: TÉCNICO EM INFORMÁTICA -


APOIO AO USUÁRIO-Qual modelo de banco de dados representa todos seus dados em tabelas
simples, mas permite que as informações possam ser combinadas e recuperadas facilmente?
A Hierárquico.
B Orientado a objetos.
C Rede.
D Relacional.
E Vetorial. .8
9) ANO: 2014 BANCA: IDECAN ÓRGÃO: DETRAN-RO PROVA: ANALISTA EM TRÂNSITO -
SUPORTE EM INFORMÁTICA - Assinale a alternativa que apresenta uma DESVANTAGEM do
modelo hierárquico e não dos modelos de bancos de dados.
A Exige uma ampla aprendizagem.
B Não há linguagem de manipulação de dados.
C Trata-se de um sistema navegacional complexo.
D Alterações estruturais exigem alterações em todos os aplicativos.
E Não há linguagem de definição ou manipulação de dados no SGBD. .9
10) ANO: 2014 BANCA: FUNCAB ÓRGÃO: PRODAM PROVA: ANALISTA DE TI - ANALISTA DE
REDES No modelo de banco de dados hierárquicos seus registros são organizados como uma
coleção de:
A listas.
B filas.
C tabelas.
D registros duplamente encadeados.
E árvores..10
11) ANO: 2014 BANCA: VUNESP ÓRGÃO: EMPLASA PROVA: ANALISTA ADMINISTRATIVO -
TECNOLOGIA DA INFORMAÇÃO Assinale a alternativa que apresenta uma afirmação
verdadeira sobre o modelo hierárquico de bancos de dados.
A Cada registro, exceto a raiz, participa como filho em pelo menos dois relacionamentos
pai-filho.
B Cada registro, exceto a raiz, participa como filho em exatamente um relacionamento
pai-filho.
C O registro denominado raiz participa como filho em pelo menos um relacionamento
pai-filho.
D O registro denominado raiz participa como filho em, no máximo, dois
relacionamentos pai-filho.
E Todo registro que participa como pai em um relacionamento pai-filho é chamado de
folha..11
12) ANO: 2014 BANCA: CESPE ÓRGÃO: TJ-SE PROVA: ANALISTA JUDICIÁRIO - BANCO DE
DADOS - Em um relacionamento pai-filho, no modelo hierárquico, registros do mesmo tipo do
lado pai correspondem a um único registro do lado filho..12

8
D
9
E
10
E
11
B
12
E
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 4

13) ANO: 2014 BANCA: CESGRANRIO ÓRGÃO: IBGE PROVA: SUPERVISOR DE PESQUISAS -
TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO - O modelo relacional tornou-se o padrão
estabelecido do mercado. Outros modelos anteriores ao modelo relacional, porém, podem ser
encontrados em sistemas usados no passado e, algumas vezes, encontrados como sistemas
legados nas empresas. Dois desses modelos são os
A em rede e XML
B hierárquico e em rede
C hierárquico e XML
D orientado a objetos e em rede
E orientado a objetos e XML.13
14) ANO: 2013 BANCA: CESPE ÓRGÃO: TCE-RO PROVA: ANALISTA JUDICIÁRIO -
INFORMÁTICA Para armazenar as informações da estrutura organizacional de uma empresa
com suas hierarquias, desde o presidente até o auxiliar administrativo, é necessário utilizar
um banco de dados hierárquico..14
15) ANO: 2013 BANCA: CESPE ÓRGÃO: ANTT PROVA: ANALISTA ADMINISTRATIVO -
DESENVOLVIMENTO DE SISTEMAS - Os sistemas gerenciadores de banco de dados (SGBDs)
evoluíram de sistemas de arquivos para novas estruturas de dados. O modelo em rede surgiu
como extensão ao modelo hierárquico (estrutura de árvore), ambos orientados a registros; o
modelo relacional não tem caminhos predefinidos para fazer acesso aos dados, mas
implementa estruturas de dados organizadas em relações (tabelas); e o modelo orientado a
objetos surgiu da necessidade de representar tipos complexos de dados utilizando semântica,
em que o diagrama de classes UML serve como esquema para representação de dados
orientado a objetos. .15
16) ANO: 2013 BANCA: FGV ÓRGÃO: AL-MA PROVA: TÉCNICO DE GESTÃO
ADMINISTRATIVA - ANALISTA DE SISTEMAS Sobre sistemas de gerenciamento de bancos de
dados, assinale a afirmativa incorreta.
A Em uma tabela chamada Carro, com os atributos Modelo, Ano, Cor e Placa, o atributo
mais apropriado para servir como chave primária é Placa.
B O processo de aplicação de regras ao projeto de um banco de dados, com o intuito de
permitir um acesso eficiente e armazenamento consistente dos dados, é denominado
normalização do banco de dados, ou apenas normalização.
C O modelo hierárquico de banco de dados é o mais apropriado para dados que são
representados por um relacionamento pai-filho, onde cada registro pai pode estar
relacionado com vários registros filho.
D Uma Visão (View) de um banco de dados contém todas as informações sobre as
entidades, atributos e tabelas. Seu objetivo é padronizar e unificar os termos utilizados
nas variáveis utilizadas nos banco de dados.
E O "varchar" é uma cadeia de caracteres de tamanho indeterminado. Campos do tipo
“varchar” podem ter qualquer tamanho, até um limite que varia de acordo com o
SGBD..16

13
B
14
E
15
C
16
D
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 5

17) ANO: 2012 BANCA: FCC ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO - ANALISTA DE
SISTEMA O entendimento dos modelos de banco de dados é fundamental para compreender
as vantagens e desvantagens em aspectos de estrutura e manipulação dos dados. Um destes
modelos utiliza tabelas bidimensionais para o armazenamento dos dados e a maneira como os
dados são armazenados influencia na facilidade de acesso às informações, existindo técnicas
de normalização para aperfeiçoar a organização. Trata-se do modelo
A hierárquico.
B em rede.
C relacional.
D distribuído.
E orientado a objetos..17
18) ANO: 2015 BANCA: NUCEPE ÓRGÃO: SEFAZ - PI PROVA: ANALISTA - SISTEMAS
JÚNIOR A abstração de um banco de dados pode acontecer em três níveis: visão do usuário;
conceitual; e físico. Responda a alternativa INCORRETA sobre abstração e esses níveis.
A O nível de visão do usuário compreende as partes do banco de dados que o usuário
tem acesso.
B O nível conceitual define quais os dados que estão armazenados sem preocupar-se
com o relacionamento entre eles.
C O nível físico define efetivamente de que maneira os dados estão armazenados.
D No nível conceitual podemos ter vários níveis de visão do usuário.
E Não importa qual unidade de armazenamento é usada para guardar os dados.18
19) ANO: 2015 BANCA: NUCEPE ÓRGÃO: SEFAZ - PI PROVA: ANALISTA - SISTEMAS
JÚNIOR Um Sistema Gerenciador de Banco de Dados (SGBD) permite criar e manipular o
banco de dados. Entre as alternativas abaixo, qual está INCORRETA sobre o SGBD?
A Garantem restrições de integridade.
B Tem suporte a controle de concorrência.
C A abstração é suportada para os níveis de visão do usuário e conceitual, sendo o nível
físico negligenciado e de responsabilidade somente do sistema operacional.
D Permite controle de acesso.
E Otimiza as consultas por métodos de acessos eficientes. 19

20) ANO: 2015 BANCA: CESPE ÓRGÃO: MEC PROVA: TÉCNICO DE NÍVEL SUPERIOR -
ANALISTA DE SISTEMAS - O modelo conceitual corresponde ao mais baixo nível de abstração,
visto que estabelece como os dados são armazenados. Trata-se de um modelo simples, de
fácil compreensão pelo usuário final, além de independente de um SGBD particular..20
21) ANO: 2015 BANCA: CESPE ÓRGÃO: MEC PROVA: TÉCNICO DE NÍVEL SUPERIOR -
DESENVOLVEDOR - Entidade é um agrupamento lógico de informações inter-relacionadas que
representa uma abstração do mundo real..21

17
C
18
B
19
C
20
E
21
C
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 6

22) ANO: 2014 BANCA: UFG ÓRGÃO: UEAP PROVA: ANALISTA DE TI - SUPORTE E
INFRAESTRUTURA - A Arquitetura de Referência ANSI-SPARC para Bancos de Dados define
três níveis de abstração para descrever os dados em um Sistema de Bancos de Dados: nível
físico (ou interno), nível lógico (ou conceitual) e nível de visão (ou externo). A capacidade de
modificar a definição dos esquemas de dados em determinado nível, sem afetar o esquema do
nível superior, é chamada de
A abstração de dados.
B arquitetura de dados.
C independência de dados.
D mapeamento de dados. .22
23) ANO: 2014 BANCA: VUNESP ÓRGÃO: DESENVOLVESP PROVA: ANALISTA - ANALISTA
DE SISTEMAS - Em um banco de dados relacional deve haver, em cada uma de suas relações,
um conjunto de um ou mais atributos que não admite valores iguais, nesse conjunto, para
qualquer par de tuplas da relação. Esse conjunto de atributos tem a seguinte denominação:
A abstração.
B chave primária.
C domínio.
D índice.
E instância..23
24) ANO: 2012 BANCA: CESPE ÓRGÃO: POLÍCIA FEDERAL PROVA: PERITO CRIMINAL -
ANALISTA DE SISTEMAS - A arquitetura ANSI de três níveis separa o nível externo dos
usuários, o nível conceitual do banco de dados e o nível de armazenamento interno no
projeto de um banco de dados. O nível interno tem um esquema interno, que descreve a
estrutura do armazenamento físico do banco de dados e descreve os detalhes completos
do armazenamento de dados e os caminhos de acesso para o banco de dados.24

22
C
23
B
24
C
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 7

25) ANO: 2013 BANCA: FCC ÓRGÃO: MPE-SE PROVA: ANALISTA DO MINISTÉRIO PÚBLICO -
GESTÃO E ANÁLISE DE PROJETO DE SISTEMA - Em projetos de Banco de Dados, o
objetivo da arquitetura de três-esquemas é separar o usuário da aplicação do banco de
dados físico. Nessa arquitetura, os esquemas podem ser definidos por três níveis:
I. O nível interno tem um esquema que descreve a estrutura de armazenamento físico do
banco de dados. Esse esquema utiliza um modelo de dado físico e descreve os detalhes
complexos do armazenamento de dados e caminhos de acesso ao banco;
II. O nível conceitual possui um esquema que descreve a estrutura de todo o banco de dados
para a comunidade de usuários. O esquema conceitual oculta os detalhes das estruturas de
armazenamento físico e se concentra na descrição de entidades, tipos de dados, conexões,
operações de usuários e restrições. Geralmente, um modelo de dados representacional é usado
para descrever o esquema conceitual quando o sistema de banco de dados for implementado.
Esse esquema de implementação conceitual é normalmente baseado em um projeto de
esquema conceitual em um modelo de dados de alto nível;
III. O nível interno ainda abrange os esquemas externos ou visões de usuários. Cada esquema
interno descreve a parte do banco de dados que um dado grupo de usuários tem interesse e
oculta o restante do banco de dados desse grupo. Como no item anterior, cada esquema é
tipicamente implementado usando-se um modelo de dados representacional, possivelmente
baseado em um projeto de esquema externo em um modelo de dados de alto nível.

Está correto o que se afirma em


A II, apenas.
B II e III, apenas.
C I, II e III.
D I e II, apenas.
E III, apenas.25

26) ANO: 2014 BANCA: BIO RIO ÓRGÃO: EMGEPRON PROVA: ANALISTA DE SISTEMAS -
BANCO DE DADOS - O conceito da arquitetura de três camadas que define a capacidade
de alterar o esquema em um nível do sistema de banco de dados sem ter de alterar o
esquema no nível mais alto é denominado independência de:
A dados
B esquema
C instância
D atualização26
27) ANO: 2015 BANCA: CESPE ÓRGÃO: DEPEN PROVA: AGENTE PENITENCIÁRIO FEDERAL -
TECNOLOGIA DA INFORMAÇÃO - Os níveis interno, externo e conceitual da arquitetura de
um banco de dados são responsáveis, respectivamente, por gerenciar o modo como os
dados serão armazenados fisicamente, por gerenciar o modo como os dados serão vistos
pelos usuários e por representar todo o conteúdo de informações do banco de dados.27

25
D
26
A
27
C
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 8

28) ANO: 2010 BANCA: FCC ÓRGÃO: TCE-SP PROVA: AGENTE DA FISCALIZAÇÃO FINANCEIRA
- CONHECIMENTOS BÁSICOS - As três visões da arquitetura básica de um SGBD, pela
ordem, desde a mais próxima do usuário até a mais distante, são:
A externa, conceitual e interna.
B externa, interna e conceitual.
C conceitual, interna e externa.
D conceitual, externa e interna.
E interna, conceitual e externa.28
29) ANO: 2013 BANCA: BIO RIO ÓRGÃO: ELETROBRAS PROVA: ANALISTA DE SISTEMAS -
BANCO DE DADOS - Leia o fragmento a seguir, relacionado à arquitetura ANSI/SPARC de
bancos de dados.
(1) Nível ________ - define views e consiste em uma “janela” parcial que é criada sobre a
totalidade do BD, permitindo trabalhar apenas com uma parte dos dados que seja de interesse
de uma determinada aplicação.
(2) Nível ________ - esconde os detalhes da implementação física dos arquivos que
armazenam os dados e corresponde a uma representação independente de qualquer usuário
ou aplicação.
(3) Nível ________ - equivale ao armazenamento físico dos dados e definição das estruturas
físicas que permitem obter um bom nível de desempenho.

Assinale a alternativa cujos itens completam corretamente as lacunas do fragmento acima.


A externo – conceitual – interno;
B externo – interno – conceitual;
C conceitual – externo – interno;
D interno – externo – conceitual;
E interno – conceitual – externo.29
30) ANO: 2014 BANCA: CESGRANRIO ÓRGÃO: BANCO DA AMAZÔNIA PROVA: TÉCNICO
CIENTÍFICO - BANCO DE DADO - Na arquitetura ANSI/SPARC de banco de dados, o nível
conceitual
A define a estrutura de armazenamento do banco de dados.
B define a estrutura do banco de dados para uma comunidade de usuários.
C descreve a parte do banco de dados em que um grupo de usuários está interessado,
escondendo as outras partes.
D descreve os caminhos de acesso para a base de dados.
E inclui um número de visões de usuário.30

28
A
29
A
30
A
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 9

CONCEITOS BÁSICOS

31) Cite três desvantagens em se utilizar o sistema de arquivos em relação ao SGBD


32) Defina o que é Banco de Dados
33) Sobre o que trata a abstração de dados no contexto do Banco de Dados
34) Sobre o que trata o indepedência de dados no contexto do Banco de Dados
35) Discorra sobre o que trata o "Suporte para múltipla visões de usuário" dentro de um
Banco de Dados
36) Como a redundância deve ser tratada/gerenciada dentro do Banco de Dados. Justifique
37) Em que situações não se convém utilizar Banco de Dados
38) Sobre o que trata o persistência de dados no contexto do Banco de Dados
39) Sobre o que trata o instância de dados no contexto do Banco de Dados
40) Sobre o que trata o esquema de dados no contexto do Banco de Dados
41) Qual a diferença entre esquema lógico e esquema físico
42) Discorra sobre as características do modelo de dados Relacional
43) Discorra sobre as características do modelo de dados de rede
44) Discorra sobre as características do modelo de dados Hierárquicos
45) Discorra sobre as características do modelo de dados Orientados a objetos
46) Discorra sobre as características do modelo de dados Objeto-relacionais
47) Qual a diferença entre os Bancos de dados Mono-usuários e Multi-usuários
48) Qual a diferença entre os Bancos de dados Centralizados e Distribuídos.
49) Qual a diferença entre as funções do Projetista de Dados (Administrador de Dados) e DBA
(Administrador de Bancos de dados)
50) Qual a relação entre requisitos e um projeto de banco de dados
51) Qual a relação entre documento de visão e um modelo de banco de dados
52) Cite as diferenças entres os níveis Externo, conceitual e interno
53) Qual a função dos índices em um banco de dados
54) Qual a função das "páginas" em um banco de dados
55) Discorra sobre o é um SGBD e sua diferença com Banco de Dados.
56) Cite tres funções básicas de um SGBD
57) Qual o objetivo do modelo conceitual?
58) Qual o objetivo do modelo lógico e qual diferença com o modelo conceitual?
59) Qual o objetivo do modelo físico e qual diferença com o modelo lógico?
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 10

MODELAGEM

60) Qual o objetivo do Diagrama Entidade-Relacionamento (DER)?


61) Qual a relação do DER com o modelo conceitual?
62) Tendo a tabela "aluno" como referência, qual seria o exemplo de um atributo, de uma
tupla e de um relacionamento?
63) Discuta o papel de um modelo de dados de alto-nível no processo de projeto de base de
dados.
64) Cite alguns casos onde o valor null pode ser aplicado.
65) Defina os seguintes termos: entidade, atributo, valor de atributo, instância de
relacionamento, atributo composto, atributo multivalorado, atributo derivado e atributo
chave.
66) O que é um tipo de entidade? Descreva as diferenças entre entidade e tipo de entidade.
67) O que é um tipo de relacionamento? Descreva as diferenças entre instância e tipo de
relacionamento.
68) Quando é necessário utilizar nome de papéis na descrição de tipos de relacionamentos?
69) Descreva as duas alternativas para especificar as restrições estruturais sobre tipos de
relacionamentos. Quais são as vantagens e desvantagens de cada uma?
70) Sobre quais condições pode um atributo de um tipo de relacionamento binário ser
promovido a um atributo de um dos tipos de entidades participantes?
71) Sobre quais condições um tipo de relacionamento pode se tornar um atributo de um tipo
de entidade?
72) Qual o significado de um tipo de relacionamento recursivo? Dê alguns exemplos disso.
73) Quando o conceito de entidade-fraca é útil na modelagem de dados? Defina os termos:
tipo de entidade proprietário, tipo de relacionamento de identificação e chave-parcial.
74) Um tipo de relacionamento de identificação pode ter grau maior que dois?
75) Discuta as condições em que um tipo de relacionamento ternário pode ser representado
por um número de tipos de relacionamentos binários
76) O que você entende por:
a. Generalização/Especialização
b. Especialização total
c. Especialização parcial
d. Especialização exclusiva
e. Especialização não exclusiva
77) O que é uma entidade associativa.
78) Explique o que são:
a. Atributos opcionais
b. Atributos compostos
c. Atributos multivalorados
79) Apresente um exemplo para cada um dos seguintes casos:
a. Generalização/Especialização
b. Entidade com atributo opcional
c. Entidade com atributo composto
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 11

d. Entidade com atributo multivalorado


80) O que é uma tabela no contexto dos bancos de dados relacionais?
81) Explique o que você entende por cada um dos seguintes termos:
a. Chave primária
b. Chave única
c. Chave estrangeira
82) O que são relacionamentos?
83) Que solução deve ser adotada no modelo relacional para relacionamentos com
cardinalidade N:N (muitos para muitos)?
84) O que você entende por:
a. Integridade de domínio
b. Integridade de entidade
c. Integridade referencial
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 12

EXERCÍCIOS DE MODELAGEM

85) Elabore o MER (Modelo Entidade Relacionamento)


Entidades: Cliente, Apólice, Carro e Acidentes.
Requisitos:
a) Um cliente pode ter várias apólices (no mínimo uma);
b) Cada apólice somente dá cobertura a um carro;
c) Um carro pode ter zero ou n registros de acidentes a ele.
Atributos:
a) Cliente: Número, Nome e Endereço;
b) Apólice: Número e Valor;
c) Carro: Registro e Marca;
d) Acidente: Data, Hora e Local;

86) Elabore o MER (Modelo Entidade Relacionamento)


Entidades: Médico, Paciente e Exame.
Requisitos:
O banco de dados deverá armazenar informações sobre os vários exames de um
determinado paciente, com o resultado e o valor pago (pode-se dar desconto para
determinados pacientes);
Atributos:
a) Médico: Número, Nome e Especialidade;
b) Paciente: Número, Nome, Endereço;
c) Tipo Exame, Aceita Convênio, Requisitos, Valor exame.

87) Elabore o MER (Modelo Entidade Relacionamento)


Elaborar um diagrama para uma Indústria.
Entidades: Peças, Depósitos, Fornecedor, Projeto, Funcionário e Departamento.
Requisitos:
a) Cada ​Funcionário ​pode estar alocado a somente um ​Departamento​;
b) Cada ​Funcionário ​pode pertencer a mais de um ​Projeto​;
c) Um ​projeto ​pode utilizar-se de vários ​Fornecedores ​e​ de várias ​Peças​;
d) Uma ​Peça ​pode ser fornecida por vários ​Fornecedores ​e atender a vários
Projetos​;
e) Um Fornecedor pode atender a vários Projetos e fornecer várias Peças;
f) Um Depósito pode conter várias Peças;
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 13

88) Elabore o MER (Modelo Entidade Relacionamento)


Catálogo de CDs
Quero criar um banco de dados para organizar os meus CDs;
Um ​CD ​possui um título e diversas ​músicas​;
Toda música possui um título e uma duração;
Uma música pode ter sido composta por um ou mais compositores;
Uma música pode ser interpretada por um ou mais cantores;

89) Elabore o MER (Modelo Entidade Relacionamento)


Indústria ACME
A ACME é uma indústria localizada em uma pequena cidade do interior.
Na ACME todo funcionário está lotado em um departamento. Cada departamento faz
parte de uma diretoria.
Uma diretoria controla diversos departamentos.
No cadastro do funcionário estão cadastrados todos os seus dependentes. Como a
cidade é pequena, alguns dependentes de funcionários são também funcionários e a
ACME precisa registrar esses casos.

90) Elabore o MER (Modelo Entidade Relacionamento).


Construtora
Uma construtora desenvolve projetos de grande porte. Esta empresa está organizada
em ​departamentos​, sendo que cada ​projeto ​é sempre coordenado por um
departamento.
Os ​departamentos ​possuem e ​ mpregados ​que podem ser chefes. Embora um
empregado ​pertença sempre a um ​departamento​, ele pode ser alocado a ​projetos
de outros departamentos.

91) Elabore o MER (Modelo Entidade Relacionamento).


Organização de saúde
Uma organização de saúde está estudando doenças e possui o seguinte conjunto de
dados:
● Nome e número de habitantes das ​cidades ​em que se manifestam ​doenças​;
● Nome científico e popular de ​doenças ​em estudo;
● CPF, nome e ​cidade ​de residência de ​pessoas ​que foram contaminadas por
doenças (apenas aquelas doenças que estão em estudo por esta organização) e
com quais doenças elas foram contaminadas.
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 14

92) Elabore o MER (Modelo Entidade Relacionamento).


Frota
Várias empresas possuem frotas de veículos que são identificados através da placa
(XYZ-1234). São registrados também os fabricantes e modelos de cada veículo. Os
funcionários são identificados através do número de matrícula. São mantidos registros
do nome e CPF de cada funcionário. Criar o MER (Modelo Entidade Relacionamento)para
cada um dos casos descritos a seguir:
Empresa A: Cada veículo (sem exceção) é dirigido por ​um apenas funcionário. ​Todos
os veículos estão alocados aos funcionários. Cada funcionário pode utilizar ​apenas um
veículo e ​todos os funcionários​ têm veículos pertencentes à frota da empresa.
Empresa B: Cada veículo (sem exceção) é dirigido ​por um apenas funcionário. Todos
os veículos estão alocados aos funcionários. Cada funcionário pode utilizar apenas um
veículo, porém ​alguns ​funcionários ​não têm veículos pertencentes à frota da
empresa.
c. Empresa C: Cada veículo pode ser dirigido ​por um ou mais funcionários. ​Todos ​os
veículos estão alocados aos funcionários. Alguns funcionários podem utilizar ​mais de
um veículo ​e ​todos ​os funcionários t​ êm ​veículos pertencentes à frota da empresa.
d. Empresa D: Cada veículo (sem exceção) é dirigido ​por um apenas funcionário.
Todos os veículos estão alocados aos funcionários. ​Alguns ​funcionários podem utilizar
mais de um veículo, porém alguns funcionários ​não ​têm veículos pertencentes à frota
da empresa.
e. Empresa E: Cada veículo pode ser dirigido por um ou mais funcionários. ​Todos ​os
veículos estão alocados aos funcionários. Cada funcionário pode utilizar apenas um
veículo e ​todos ​os funcionários têm veículos pertencentes à frota da empresa.
93) Tomando como base os diagramas a seguir elabore um texto breve (similar aos
apresentados nas questões acima) para explicar cada caso.
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 15

94) Elabore o MER (Modelo Entidade Relacionamento).


SISTEMA VIDEO LOCADORA
Uma locadora de vídeos possui aproximadamente 5000 DVDs. O objetivo do sistema é manter
um controle das locações efetuadas pelos clientes.
Cada ​DVD ​possui um código exclusivo e contém somente um ​filme​. Para cada ​filme​, é
necessário saber seu título e sua categoria (comédia, drama, aventura,etc.).
Cada ​filme ​recebe um identificador próprio. Há pelo menos um DVD de cada filme.
Os clientes frequentemente desejam encontrar os ​filmes ​estrelados pelos seus ​atores
prediletos. Por isso, é necessário manter a informação dos ​atores ​que estrelam em cada
filme​. Nem todo filme possui atores (exemplo: documentários). Cada Ator cadastrado
participa pelo menos de um filme.
Para cada ​ator ​os clientes às vezes desejam saber o nome real, além do nome artístico e a
data de nascimento.
Todo ator deve possuir um código único.
A locadora possui aproximadamente 3000 clientes cadastrados. Somente ​clientes ​cadastrados
podem alugar ​DVDs​. Para cada cliente é necessário saber seu nome, seu telefone. Cada
cliente recebe um número de associado como identificador.
Um cliente pode alugar vários DVDs em um instante do tempo. É necessário manter os
registros históricos das locações com as datas de retirada e data de entrega dos DVDs.

95) Elabore o MER (Modelo Entidade Relacionamento).


SISTEMA ESCOLA
Uma escola de informática oferece vários cursos livres com duração entre trinta e sessenta
dias. Cada curso recebe um código identificador. Professores são contratados para ​ministrar
um ou mais cursos e, portanto é necessário saber quais cursos cada professor ​está habilitado
a ministrar. Os professores recebem um número de matrícula.
A escola deseja manter também registrado o nome, endereço, telefone, e-mail de todos os
seus professores.
Há várias turmas para cada curso. Cada turma, identificada por um código, tem apenas um
professor e está alocada em apenas uma sala. Porém, uma sala pode ser alocada para mais de
uma turma em diferentes períodos. Um aluno pode matricular-se simultaneamente em vários
cursos e, portanto, pertencer a mais de uma turma. No momento da matrícula o aluno recebe
um RA (válido para um ou mais cursos).
A escola mantém registrado o nome, endereço, telefone, email, RG e CPF de todos os seus
alunos.

96) Elabore o MER (Modelo Entidade Relacionamento).


SISTEMA EMPRESA
Uma empresa é organizada em departamentos. Cada departamento possui um nome e um
código único e pode ter várias localidades (cidades). Os projetos existentes na empresa são,
obrigatoriamente, controlados por um departamento, e cada projeto possui um nome, um
código único e uma única localização (cidade), que pode ser diferente das possíveis localidades
do departamento que o controla.
Alguns departamentos não possuem projetos sob sua responsabilidade. No caso dos
empregados da empresa é armazenado número de matrícula, nome, endereço, salário, sexo e
data de nascimento. Quase todos os empregados têm um outro empregado que é o seu
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 16

supervisor direto, e consequentemente, somente alguns são supervisores. Em função da


cadeia hierárquica existem empregados que não possuem supervisores.
A maioria dos empregados são alocados a um departamento, ou seja, pode até existir um
empregado sem departamento, mas todo departamento deve possuir empregados alocados a
ele, além disso, todo departamento tem um chefe que o gerencia, a partir de uma data, pois a
empresa implementa um sistema de rodízio na chefia dos departamentos, o rodízio na chefia
determina que um empregado só pode ser chefe de somente um departamento.
Um empregado pode trabalhar em mais de um projeto, mesmo que não seja do seu
departamento, dedicando algumas horas por semana em cada um dos projetos. E, é claro,
alguns empregados não estão empenhados em nenhum projeto. Por outro lado, todo projeto
tem pelo menos um ou mais empregados trabalhando nele.
A empresa oferece alguns benefícios sociais aos dependentes dos seus empregados, caso ele
possua. Para tanto, é mantido para cada dependente do empregado o nome do dependente, o
sexo, a data de nascimento e o grau de parentesco.

97) Elabore o MER (Modelo Entidade Relacionamento).


TREM
Trens podem ser de dois tipos: trens locais ou trens expressos, mas nunca ambos.
Cada trem tem um numero unívoco e um engenheiro.
Estações são paradas expressas ou paradas locais, mas nunca ambas.
Uma estação tem um nome unívoco e um endereço.
Todos os trens locais param em todas as estações.
Trens expressos param unicamente em estações expressas
Para cada trem e cada estação, existem dois horários em que o trem para (um para
cada sentido do trajeto)

98) Elabore o MER (Modelo Entidade Relacionamento).


EMPRESA AÉREA
O objetivo é projetar um sistema de reservas para uma companhia de aviação. O
sistema contará com um banco de dados central, que será acessado por aplicações
clientes, rodando tanto dentro da própria companhia, quanto fora dela.
A transação central do sistema é a reserva. Uma reserva é identificada por um código
gerado pelo sistema em computador. A reserva é feita para um único passageiro, do
qual se conhece apenas o nome.
A reserva compreende um conjunto de trechos de voos, que acontecerão em
determinada data e hora. Para cada trecho, a reserva é feita em uma classe
(econômica, executiva, etc.). Um voo é identificado por um código e possui uma origem
e um destino. Por exemplo, o voo 595 sai de Porto Alegre, com destino a São Paulo.
Um voo é composto de vários trechos, correspondendo as escalas intermediárias do
voo. Por exemplo, o voo 595 é composto de dois trechos, um de Porto Alegre a
Londrina, o outro de Londrina a São Paulo. Cabe salientar que há cidades que são
servidas por vários aeroportos.
Por isso, é importante informar ao passageiro que faz a reserva, qual é o aeroporto no
qual o voo passa. Às vezes os clientes, ao fazer a reserva, desejam saber qual é o tipo
de aeronave que será utilizada em determinado trecho do voo. Alguns poucos voos,
principalmente internacionais, tem troca de aeronave em determinadas escalas.
Nem todos os voos operam em todos os dias da semana. Inclusive, certos voos têm
pequenas mudanças de horário em certos dias da semana.
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 17

Cada reserva possui um prazo de validade. Caso os bilhetes não tenham sido emitidos,
até esgotar-se o prazo da reserva, a mesma é cancelada. Reservas podem ser
prorrogadas.
Como o “check-in” de todos os voos está informatizado, a companhia possibilita a
reserva de assento para o passageiro. Reservas de assento podem ser feitas com até 6
meses de antecedência.
Além de efetivar reservas, o sistema deve servir para vários tipos de consultas que os
clientes podem querer fazer:
1. possibilidades de viagem de uma cidade ou de um aeroporto para o outro;
2. o mesmo, mas restrito a determinados dias da semana;
3. horarios de chegada ou de saida em determinados voos;
4. disponibilidade de vagas em um trecho de voo;
5. disponibilidade de determinados assentos em um trecho de voo.

Baseados nos documentos de ​Requisitos ​disponibilizados abaixo elabore o Elabore o MER


(Modelo Entidade Relacionamento).

99) Documento do Sistema de Protocolos H6


Regras de Negócios:
a) Processo possui natureza, onde, uma natureza pode estar associada a mais de um
processo
b) Processo possui tipo, onde, um tipo pode estar associado a mais de um processo
c) Processo está relacionado com Envolvidos que podem ser pessoas Físicas (CPF) ou
Jurídicas (CNPJ). A mesma pessoa por estar relacionada a vários processos em vários
tipos de envolvimento (Réu, Requerente, Requerido, Testemunhas, etc..)

100) Documento do Nota Legal - CheckNota

101) Documento do Cinema Easy

102) Documento do sistema Agenda

103) PRS: locação de bicicletas de acordo com a descrição abaixo.


A empresa PRS atende dois tipos de clientes: pessoas físicas e pessoas jurídicas. Para
acelerar o atendimento, é importante conhecer os dados de clientes que já tenham sido
atendidos no passado. Para cada pessoa física é necessário conhecer seu CPF e sexo. Já
para as pessoas jurídicas é necessário conhecer seu CNPJ e inscrição estadual. Todos os
clientes são identificados por um código identificador interno locadora, além de
endereço e telefone.
Cada bicicleta é identificada por um código, possui cor e valor de aluguel. É necessário
gerenciar as marcas das bicicletas (Venzo, Specialized, Scott,etc) cada bicicleta é de
uma marca e uma marca pode estar associada a várias bicicletas. Para cada marca é
necessário guardar o código e sua descrição.
Cada bicicleta é de um tipo (Mountain Bike, Speed, Downhill, etc). Toda bicicleta tem
um tipo e um tipo pode estar associado a várias bicicletas. Para cada tipo é necessário
guardar o código identificador e sua descrição.
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 18

Um cliente pode alugar mais de uma bicicleta, mas somente uma por vez a cada
locação e uma uma, no mínimo. Cada bicicleta pode ser alugada por vários clientes.
Cada locação possui um código, valor da locação e uma data.

104) ENADE 2014 - Ciencia da Computação


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 19

105) ENADE 2014 - ADS (3)

106) ENADE 2014 - Ciência da Computação (SQL) (QUESTÃO 24)

A. SELECT E.UF FROM Estado AS E A WHERE E.nome_estado NOT IN ( SELECT F.UF FROM
Fornecedor AS F);

B. SELECT E.nome_estado FROM Estado AS E, FROM B Fornecedor AS F WHERE E.UF =


F.UF;

C. SELECT E.nome_estado FROM Estado AS E WHERE E.UF NOT IN ( C SELECT F.UF FROM
Fornecedor AS F);

D. SELECT E.nome_estado D FROM Estado AS E, FROM Fornecedor AS F WHERE


E.nome_estado = F.UF;

E. SELECT E.nome_estado FROM Estado AS E E WHERE E.UF IN (SELECT F.UF FROM


Fornecedor AS F);
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 20

107) ENADE 2014 - ADS (SQL) (QUESTÃO 11)

A select titulo from livro except


select l.titulo from emprestimo e inner join livro l
on e.livro_cod = l.liv_cod where e.data_dev is null

B select titulo from livro union


select l.titulo from emprestimo e inner join livro l
on e.livro_cod = l.liv_cod where e.data_dev is null

C select titulo from livro except


select l.titulo from emprestimo e inner join livro l
on e.livro_cod = l.liv_cod where e.data_dev is not null

D select titulo from livro union select l.titulo from emprestimo e left join livro l
on e.livro_cod = l.liv_cod where e.data_dev is null

E select titulo from livro except


select l.titulo from emprestimo e right join livro l
on e.livro_cod = l.liv_cod where e.data_dev is not null
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 21

108) ENADE 2014 - ADS (QUESTÃO 21)


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 22

109) ENADE 2014 - ADS (QUESTÃO 22)


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 23

SQL

110) Criar por meio de comandos DDL o banco de Dados correspondente ao modelo
lógico abaixo..
Obs.: Começar pelas tabelas que não possuem FK

111) Modificar por meio de comandos DDL - Data Definition Language


A. Incluir o campo Aluno.DtNascimento do tipo DATE;
B. Remover o campo Curso_Aluno.DtMatricula de
C. Modificar o Campo Professor.NomeProfessor para varchar (100);
D. Mudar o nome do Campo Professor.NomeProfessor varchar (100) para
Professor.NomeDocente varchar (100);

Comandos básicos DML


/*SQL - LINGUAGEM DE PESQUISA
DDL - Definição de Dados (CREATE/DROP/ALTER)
DML - Manipulação de Dados (INSERT/SELECT/UPDATE -- USE/DESCRIBE)
DCL - Controle/Permissão de Dados(GRANT/REVOKE)*/

-- Conectar-se ao Database
use exercicio110;

-- Inserção de dados
INSERT INTO <NomedaTabela> (campo1, campo2)
VALUES (valor1, 'valor2');

-- Listar os campos da tabela


DESCRIBE <NomedaTabela>;

-- Consultar os dados da tabela


SELECT campo1, campo2 FROM <NomedaTabela>;
SELECT * FROM <NomedaTabela1>
INNER JOIN <NomedaTabela2>
ON <ChavedaTabela1> = <ChavedaTabela2>
WHERE <condição>
ORDER BY <campo1>;
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 24

112) Criar por meio de comandos DDL e fazer os insert do banco de Dados
referenciado na página 5 da Apostila de SQL disponibilizada.
(Médico, Paciente e ​Consulta**[substituir o nome na última tabela MÉDICO por Consulta]​)

(​https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV
kxiRUlFLVo4​ )
Obs.: Começar pelas tabelas que não possuem FK

113) Criar por meio de comandos DDL e fazer os insert do banco de Dados
referenciado na página 9 da Apostila de SQL disponibilizada
(Cliente e Telefones (​Observar a ligação entre as tabelas​)
(​https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV
kxiRUlFLVo4​ )
Obs.: Começar pelas tabelas que não possuem FK
114) Criar por meio de comandos DDL e fazer os insert do banco de Dados
referenciado na páginas 25 e 26 da Apostila de SQL disponibilizada.
(Médicos, Paciente)
(​https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV
kxiRUlFLVo4​ )
Obs.: Começar pelas tabelas que não possuem FK
115) Criar por meio de comandos DDL e fazer os insert do banco de Dados
referenciado nas páginas 30 e 31 da Apostila de SQL disponibilizada
​(Aluno, Alunos_da_Banda)
(​https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV
kxiRUlFLVo4​ )
Obs.: Começar pelas tabelas que não possuem FK
116) Criar por meio de comandos DDL e fazer os insert do banco de Dados
referenciado na página 3 da Apostila de SQL disponibilizada
​(Produto, Detalhes_pedido, Pedido)
(​https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV
kxiRUlFLVo4​ )
Obs.: Começar pelas tabelas que não possuem FK

117) Inserir por meio de comandos DML os seguintes registros


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 25

StatusAluno

idStatusAluno,DeTipoAluno

(1,'Egresso')
(2,'Transferido')
(3,'Cursando')

Aluno

idAluno, NomeAluno,idStatusAluno

(1,'Paloma Oliveira',1)
(2,'Marina Ruy Barbosa',2)
(3,'Aline Riscado',2)
(4,'Bruna Marquezine',3)
(5,'Isabela Fontana',2)
(6,'Eva Andressa',1)
(7,'Camila Queiroz',3);

Curso
idCurso,DeCurso

(1,'ADS Analise Desenvolvimento de


Sistemas')
(2,'GTI Gestão de Tecnologia da
Informação')
(3,'Engenharia')
(4,'Medicina')
(5,'Direito')
(6,'Educação Física')

Professor
idProfessor,Nomeprofessor

(1,'Eisntein')
(2,'Girafalis')
(3,'Patata')
(4,'Raimundo')
(5,'Pardal');
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 26

Disciplina
idDisciplina,DeDisciplina,idCurso,
idProfessor

(1,'Banco de Dados',1,1)
(2,'Civil',4,1)
(3,'Java',2,2)
(4,'Anatomia',4,3)
(5,'Fisiologia',4,1)
(6,'Engenharia Software',2,2)
(7,'Constitucional',5,3);

Inserir em Curso_Aluno

idCurso, idAluno, Ativo,DtMatricula

(1,1,1,'2018-04-23')
(1,2,1,'2018-04-17')
(1,3,0,'2018-03-12')
(3,6,0,'2018-01-23')
(4,4,1,'2018-03-13')
(5,5,1,'2018-02-27');

118) ​Fazer SELECT que retorne os seguintes registros:


A. Todos os alunos que tem Status cursando;
B. Todos os alunos, Somente Nome do Aluno ordenado pelo nome (Ordem
Crescente e Descrescente);
C. Todos os alunos, Nome do Aluno e IdAluno ordenado pelo idaluno;
D. Todos os campos, somente Alunos com idaluno >=3;
E. Todos os campos, Somente Alunos com idaluno <4;
F. Nomes dos alunos e Status do Aluno (DeTipoAluno) ordenado pelo Nome
do Aluno
G. Nomes dos alunos e Nome do Curso matriculado ordenado pelo
nomealuno;
H. Todos os campos, Somente Alunos com idaluno <7 e >4;
I. Todos os campos, Somente Alunos com idaluno <5 e >=2 ordenado pelo
nomealuno;
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 27

J. Todos os alunos do curso de Medicina;


K. Todos os alunos do curso de ADS e que sejam egressos;
L. Todos os Alunos que comecem com a letra P;
M. Todos os Alunos que terminem com a letra A;
N. Todos os Alunos que tenham a letra V e sejam do curso de Engenharia;
O. Nome dos Alunos e curso matriculado com idaluno <7 e >4 ordenado
pelo nomealuno, que contenham a letra N, estejam “Transferido”;
P. Trazer Nome do Aluno e somente o ano de dtMatricula ordenado pelo
Nomedo Aluno
Q. Trazer a data e hora atual, somente mês de matricula ordenado pelo
Nomedo Aluno
R. Contar quantos alunos se matricularam no mês de Abril;
S. Contar quantos alunos se matricularam no dia 23 de qualquer mês;
T. Contar os nomes dos alunos agrupados por nome do Curso
U. Contar o Nomes dos professores agrupados por Disciplina
V. Contar os Nomes dos Disciplinas agrupados por Professor
W.Nome do Aluno, Status, Nome do Curso que a todos os alunos que
comecem com “Eva” estejam matriculados
X. Todos os Alunos que tenha com a letra letra A no nome e sejam do curso
de Medicina status difetente de “Cursando”;

119) ATUALIZAR os registros para as condições abaixo. Fazer uma


consulta antes e depois de atualizar
A. Mudar o nome da aluna idaluno=3 para “Joana Treptow”
B. Mudar o nome da aluna “Bruna Marquezine” para “Paloma Tocci”
C. Mudar data de matrícula da aluna “Eva Andressa” para 02/12/2011
D. Mudar data de matrícula da aluna “Isabela Fontana” para 09/03/2015
E. Mudar o status para “Ativo” para todos os alunos com idaluno >=2 em
Curso aluno.
F. Mudar o nome do professor “Pardal” para “Mickey”
G. Mudar o nome da disciplina “Fisiologia” para “Nefrologia”
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 28

H. Mudar nome da disciplina e código do professor na tabela disciplina,


onde, de “Civil” para “Sistemas Operacionais” e código professor de 1
para 4;
I. Mudar nome do aluno e status na tabela aluno, onde, de “Isabela
Fontana” para “Fiorella Matheis” e status de 2 para 3;

120) EXCLUIR os registros para as condições abaixo. Fazer uma


consulta antes e depois de excluir.
Obs.: Caso seja necessário excluir as suas dependência antes
A. Excluir a Disciplina iddisciplina = 3
B. Excluir Curso_aluno para todos os cursos idcurso=4;
C. Excluir Status_Aluno = “Egresso”
D. Excluir o Professor “Raimundo”
E. Excluir o Professor “Girafalis”
F. Excluir as matriculas realizadas em “Abril”
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 29

RESPOSTAS

85) Entidades: Cliente, Apólice, Carro e Acidentes


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 30

86) Entidades: Médico, Paciente e Exame.


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 31

87) Elaborar um diagrama para uma Indústria.


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 32

88) Elabore o MER (Modelo Entidade Relacionamento)


Catálogo de CDs
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 33

89) Elabore o MER (Modelo Entidade Relacionamento)


Indústria ACME
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 34

90) Elabore o MER (Modelo Entidade Relacionamento).


Construtora
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 35

91) Elabore o MER (Modelo Entidade Relacionamento).


Organização de saúde
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 36

92) Elabore o MER (Modelo Entidade Relacionamento).


Frota
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 37

94) Elabore o MER (Modelo Entidade Relacionamento).


SISTEMA VIDEO LOCADORA
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 38

95) Elabore o MER (Modelo Entidade Relacionamento).


SISTEMA ESCOLA
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 39

96) Elabore o MER (Modelo Entidade Relacionamento).


SISTEMA EMPRESA

97) Elabore o MER (Modelo Entidade Relacionamento).


TREM
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 40

98) Elabore o MER (Modelo Entidade Relacionamento).


EMPRESA AÉREA
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 41

99)​ Documento do Sistema de Protocolos H6


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 42

103) ​PRS: locação de bicicletas de acordo com a descrição abaixo.


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 43

104) ENADE
PADRÃO DE RESPOSTA
1) Formagráfica:
O estudante deve elaborar um diagrama ER semelhante ao apresentado abaixo.

Observação:
Nesta representação o estudante pode substituir o relacionamento amizade pela entidade
“Grupo” com as consequentes alterações de cardinalidade.
2) Forma escrita:
Para a notificação ter data e hora, adicionar o atributo do tipo timestamp;
Para restringir o acesso da notificação para amigos do Usuário:
o criar uma relação n para n de Usuário para Usuário chamada
amizade; ou
o criar uma entidade “Grupo” com uma relação 1 para n de
Usuário para grupo.
Para guardar as notificações enviadas para cada usuário, criar uma
relação n para n entre notificação e Usuário chamada notificações enviadas.
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 44

105) ENADE 2014 - ADS

106) ENADE 2014 - Ciência da Computação (SQL) (QUESTÃO 24)


RESP.: C
107) ENADE 2014 - ADS (SQL) (QUESTÃO 11)
RESP.: A
108) ENADE 2014 - ADS (QUESTÃO 21)
RESP.: A
109) ENADE 2014 - ADS (QUESTÃO 22)
RESP.: E
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 45

110)
CREATE DATABASE IF NOT EXISTS `exercicio110` /*!40100 DEFAULT CHARACTER SET utf8
*/;
USE `exercicio110`;
-- MySQL dump 10.13 Distrib 5.7.9, for Win64 (x86_64)
--
-- Host: localhost Database: aulaedilberto
-- ------------------------------------------------------
-- Server version 5.7.13-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;


/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0
*/;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `aluno`
--

DROP TABLE IF EXISTS `aluno`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aluno` (
`idAluno` int(11) NOT NULL AUTO_INCREMENT,
`NomeAluno` varchar(70) NOT NULL COMMENT 'Tabela que guarda os dados dos alunos
da escola',
`idStatusAluno` int(11) NOT NULL,
PRIMARY KEY (`idAluno`),
KEY `fk_Aluno_StatusAluno_idx` (`idStatusAluno`),
CONSTRAINT `fk_Aluno_StatusAluno` FOREIGN KEY (`idStatusAluno`) REFERENCES
`statusaluno` (`idStatusAluno`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `curso`
--

DROP TABLE IF EXISTS `curso`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `curso` (
`idCurso` int(11) NOT NULL AUTO_INCREMENT,
`DeCurso` varchar(70) NOT NULL COMMENT 'Guarde o nome dos curso da escola. Ex.
ADS, GTI,Medicina, Engenharia',
PRIMARY KEY (`idCurso`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 46

-- Table structure for table `curso_aluno`


--

DROP TABLE IF EXISTS `curso_aluno`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `curso_aluno` (
`idCurso` int(11) NOT NULL,
`idAluno` int(11) NOT NULL,
`Ativo` tinyint(1) DEFAULT '1',
`DtMatricula` date DEFAULT NULL,
PRIMARY KEY (`idCurso`,`idAluno`),
KEY `fk_Curso_has_Aluno_Aluno1_idx` (`idAluno`),
KEY `fk_Curso_has_Aluno_Curso1_idx` (`idCurso`),
CONSTRAINT `fk_Curso_has_Aluno_Aluno1` FOREIGN KEY (`idAluno`) REFERENCES
`aluno` (`idAluno`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_Curso_has_Aluno_Curso1` FOREIGN KEY (`idCurso`) REFERENCES
`curso` (`idCurso`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `disciplina`
--

DROP TABLE IF EXISTS `disciplina`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `disciplina` (
`idDisciplina` int(11) NOT NULL AUTO_INCREMENT,
`DeDisciplina` varchar(70) NOT NULL COMMENT 'Guarda o nome das disciplinas: Ex.
Banco de Dados, Anatomia, Cálculo',
`idCurso` int(11) NOT NULL,
`idProfessor` int(11) NOT NULL,
PRIMARY KEY (`idDisciplina`),
KEY `fk_Disciplina_Curso1_idx` (`idCurso`),
KEY `fk_Disciplina_Professor1_idx` (`idProfessor`),
CONSTRAINT `fk_Disciplina_Curso1` FOREIGN KEY (`idCurso`) REFERENCES `curso`
(`idCurso`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_Disciplina_Professor1` FOREIGN KEY (`idProfessor`) REFERENCES
`professor` (`idProfessor`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `professor`
--

DROP TABLE IF EXISTS `professor`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `professor` (
`idProfessor` int(11) NOT NULL AUTO_INCREMENT,
`NomeProfessor` varchar(70) NOT NULL COMMENT 'Guarde o nome do professor. Nesta
escola um professor uma disciplina somente pode ser ministra por um professor',
PRIMARY KEY (`idProfessor`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 47

--
-- Table structure for table `statusaluno`
--

DROP TABLE IF EXISTS `statusaluno`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `statusaluno` (
`idStatusAluno` int(11) NOT NULL AUTO_INCREMENT,
`DeTipoAluno` varchar(45) DEFAULT NULL COMMENT 'Guarda os tipos de alunos. Ex:
Egresso, Cursando, Transferido',
PRIMARY KEY (`idStatusAluno`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;


/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2018-04-23 11:01:02

111)
A. Incluir o campo Aluno.DtNascimento;
ALTER TABLE Aluno ADD COLUMN DtNascimento DATE;

B. Remover o campo Curso_Aluno.DtMAtricula


ALTER TABLE Curso_Aluno DROP COLUMN DtMAtricula;

C. Modificar o Campo Professor.NomeProfessor para varchar (100);


ALTER TABLE Professor MODIFY COLUMN NomeProfessor varchar (100);
D. Mudar o nome do Campo Professor.NomeProfessor varchar (100) para
Professor.NomeDocente varchar (100);
alter table professor change nomeprofessor nomedocente varchar(100);
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 48

112)
DROP DATABASE if exists exercicio112;
CREATE DATABASE IF NOT EXISTS `exercicio112` /*!40100 DEFAULT CHARACTER SET utf8
*/;
USE `exercicio112`;
-- MySQL dump 10.13 Distrib 5.7.9, for Win64 (x86_64)
--
-- Host: localhost Database: exercicio112
-- ------------------------------------------------------
-- Server version 5.7.13-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;


/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0
*/;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `consulta`
--
DROP TABLE IF EXISTS `consulta`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `consulta` (
`CodConsulta` int(11) NOT NULL,
`CodMedico` int(11) DEFAULT NULL,
`CodPaciente` int(11) DEFAULT NULL,
`DataHoraConsulta` datetime DEFAULT NULL,
PRIMARY KEY (`CodConsulta`),
KEY `CodMedico` (`CodMedico`),
KEY `CodPaciente` (`CodPaciente`),
CONSTRAINT `consulta_ibfk_1` FOREIGN KEY (`CodMedico`) REFERENCES `medico`
(`codMedico`),
CONSTRAINT `consulta_ibfk_2` FOREIGN KEY (`CodPaciente`) REFERENCES `paciente`
(`CodPaciente`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 49

/*!40101 SET character_set_client = @saved_cs_client */;


--
-- Dumping data for table `consulta`
LOCK TABLES `consulta` WRITE;
/*!40000 ALTER TABLE `consulta` DISABLE KEYS */;
INSERT INTO `consulta` VALUES (1,1,2,'2013-01-21 14:25:00'),(2,1,3,'2013-01-21
15:45:00'),(3,2,1,'2012-04-12 09:25:00'),(4,4,3,'2012-05-27 11:15:00');
/*!40000 ALTER TABLE `consulta` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `medico`
--
DROP TABLE IF EXISTS `medico`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `medico` (
`codMedico` int(11) NOT NULL,
`NomeMedico` varchar(70) DEFAULT NULL,
`Especialidade` varchar(45) DEFAULT NULL,
PRIMARY KEY (`codMedico`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `medico`
--
LOCK TABLES `medico` WRITE;
/*!40000 ALTER TABLE `medico` DISABLE KEYS */;

INSERT INTO `medico` VALUES (1,'Joana Treptow','Cardiologia'),(2,'Fiorella


Matheis','Dermatologista'),(3,'Aline Riscado','Cardiologia'),(4,'Marina Ruy
Barbosa ','Neurologista');

-- INSERT INTO `medico` VALUES (1,'Mauricio de Nassau','Cardiologia'),(2,'Jorge


Amado','Dermatologista'),(3,'Paulo Coelho','Cardiologia'),(4,'Willian
Bonner','Neurologista');
/*!40000 ALTER TABLE `medico` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `paciente`
--
DROP TABLE IF EXISTS `paciente`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 50

/*!40101 SET character_set_client = utf8 */;


CREATE TABLE `paciente` (
`CodPaciente` int(11) NOT NULL,
`NomePaciente` varchar(70) DEFAULT NULL,
PRIMARY KEY (`CodPaciente`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `paciente`
LOCK TABLES `paciente` WRITE;
/*!40000 ALTER TABLE `paciente` DISABLE KEYS */;

INSERT INTO `paciente` VALUES (1,'Paloma Tocci'),(2,'Bruna


Marquezine'),(3,'Isabela Fontana'),(4,'Ana Hickmann');
/*!40000 ALTER TABLE `paciente` ENABLE KEYS */;
-- INSERT INTO `paciente` VALUES (1,'Jabes Ribeiro'),(2,'Vane do
Renascer'),(3,'Geraldo Simões'),(4,'Capitão Azevedo');
/*!40000 ALTER TABLE `paciente` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;


/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2018-05-17 11:03:18


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 51

113)
DROP DATABASE if exists exercicio113;
CREATE DATABASE exercicio113;
USE exercicio113;

CREATE TABLE CLIENTES (


CodCliente INT NOT NULL AUTO_INCREMENT,
NomeCliente VARCHAR(100),
DtNascimento DATE,
PRIMARY KEY (CodCliente));

CREATE TABLE telefones (


codTelefone INT NOT NULL AUTO_INCREMENT,
codcliente INT NOT NULL,
Numero INT NOT NULL,
ffTipo VARCHAR(90),
PRIMARY KEY (codtelefone),
FOREIGN KEY (codcliente)
REFERENCES Cliente (codcliente));
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 52

117)
CREATE DATABASE IF NOT EXISTS `exercicio110` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `exercicio110`;
-- MySQL dump 10.13 Distrib 5.7.9, for Win64 (x86_64)
--
-- Host: localhost Database: aulaedilberto
-- ------------------------------------------------------
-- Server version 5.7.13-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;


/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `aluno`
--
DROP TABLE IF EXISTS `aluno`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aluno` (
`idAluno` int(11) NOT NULL AUTO_INCREMENT,
`NomeAluno` varchar(70) NOT NULL COMMENT 'Tabela que guarda os dados dos alunos da
escola',
`idStatusAluno` int(11) NOT NULL,
PRIMARY KEY (`idAluno`),
KEY `fk_Aluno_StatusAluno_idx` (`idStatusAluno`),
CONSTRAINT `fk_Aluno_StatusAluno` FOREIGN KEY (`idStatusAluno`) REFERENCES
`statusaluno` (`idStatusAluno`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `aluno`
--

LOCK TABLES `aluno` WRITE;


/*!40000 ALTER TABLE `aluno` DISABLE KEYS */;
INSERT INTO `aluno` VALUES (1,'Paloma Oliveira',1),(2,'Marina Ruy Barbosa',2),(3,'Aline
Riscado',2),(4,'Bruna Marquezine',3),(5,'Isabela Fontana',2),(6,'Eva
Andressa',1),(7,'Camila Queiroz',3);
/*!40000 ALTER TABLE `aluno` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `curso`
--

DROP TABLE IF EXISTS `curso`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `curso` (
`idCurso` int(11) NOT NULL AUTO_INCREMENT,
`DeCurso` varchar(70) NOT NULL COMMENT 'Guarde o nome dos curso da escola. Ex. ADS,
GTI,Medicina, Engenharia',
PRIMARY KEY (`idCurso`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `curso`
--
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 53

LOCK TABLES `curso` WRITE;


/*!40000 ALTER TABLE `curso` DISABLE KEYS */;
INSERT INTO `curso` VALUES (1,'ADS Analise Desenvolvimento de Sistemas'),(2,'GTI Gestão
de Tecnologia da Informação'),(3,'Engenharia'),(4,'Medicina'),(5,'Direito'),(6,'Educação
Física');
/*!40000 ALTER TABLE `curso` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `curso_aluno`
--

DROP TABLE IF EXISTS `curso_aluno`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `curso_aluno` (
`idCurso` int(11) NOT NULL,
`idAluno` int(11) NOT NULL,
`Ativo` tinyint(1) DEFAULT '1',
`DtMatricula` date DEFAULT NULL,
PRIMARY KEY (`idCurso`,`idAluno`),
KEY `fk_Curso_has_Aluno_Aluno1_idx` (`idAluno`),
KEY `fk_Curso_has_Aluno_Curso1_idx` (`idCurso`),
CONSTRAINT `fk_Curso_has_Aluno_Aluno1` FOREIGN KEY (`idAluno`) REFERENCES `aluno`
(`idAluno`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_Curso_has_Aluno_Curso1` FOREIGN KEY (`idCurso`) REFERENCES `curso`
(`idCurso`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `curso_aluno`
--

LOCK TABLES `curso_aluno` WRITE;


/*!40000 ALTER TABLE `curso_aluno` DISABLE KEYS */;
INSERT INTO `curso_aluno` VALUES
(1,1,1,'2018-04-23'),(1,2,1,'2018-04-17'),(1,3,0,'2018-03-12'),(3,6,0,'2018-01-23'),(4,4,
1,'2018-03-13'),(5,5,1,'2018-02-27');
/*!40000 ALTER TABLE `curso_aluno` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `disciplina`
--

DROP TABLE IF EXISTS `disciplina`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `disciplina` (
`idDisciplina` int(11) NOT NULL AUTO_INCREMENT,
`DeDisciplina` varchar(70) NOT NULL COMMENT 'Guarda o nome das disciplinas: Ex. Banco
de Dados, Anatomia, Cálculo',
`idCurso` int(11) NOT NULL,
`idProfessor` int(11) NOT NULL,
PRIMARY KEY (`idDisciplina`),
KEY `fk_Disciplina_Curso1_idx` (`idCurso`),
KEY `fk_Disciplina_Professor1_idx` (`idProfessor`),
CONSTRAINT `fk_Disciplina_Curso1` FOREIGN KEY (`idCurso`) REFERENCES `curso`
(`idCurso`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_Disciplina_Professor1` FOREIGN KEY (`idProfessor`) REFERENCES
`professor` (`idProfessor`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `disciplina`
--
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 54

LOCK TABLES `disciplina` WRITE;


/*!40000 ALTER TABLE `disciplina` DISABLE KEYS */;
INSERT INTO `disciplina` VALUES (1,'Banco de
Dados',1,1),(2,'Civil',4,1),(3,'Java',2,2),(4,'Anatomia',5,3),(5,'Fisiologia',5,1),(6,'En
genharia Software',2,2),(7,'Constitucional',4,3);
/*!40000 ALTER TABLE `disciplina` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `professor`
--

DROP TABLE IF EXISTS `professor`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `professor` (
`idProfessor` int(11) NOT NULL AUTO_INCREMENT,
`NomeProfessor` varchar(70) NOT NULL COMMENT 'Guarde o nome do professor. Nesta escola
um professor uma disciplina somente pode ser ministra por um professor',
PRIMARY KEY (`idProfessor`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `professor`
--

LOCK TABLES `professor` WRITE;


/*!40000 ALTER TABLE `professor` DISABLE KEYS */;
INSERT INTO `professor` VALUES
(1,'Eisntein'),(2,'Girafalis'),(3,'Patata'),(4,'Raimundo'),(5,'Pardal');
/*!40000 ALTER TABLE `professor` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `statusaluno`
--

DROP TABLE IF EXISTS `statusaluno`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `statusaluno` (
`idStatusAluno` int(11) NOT NULL AUTO_INCREMENT,
`DeTipoAluno` varchar(45) DEFAULT NULL COMMENT 'Guarda os tipos de alunos. Ex: Egresso,
Cursando, Transferido',
PRIMARY KEY (`idStatusAluno`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `statusaluno`
--
LOCK TABLES `statusaluno` WRITE;
/*!40000 ALTER TABLE `statusaluno` DISABLE KEYS */;
INSERT INTO `statusaluno` VALUES (1,'Egresso'),(2,'Transferido'),(3,'Cursando');
/*!40000 ALTER TABLE `statusaluno` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;


/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2018-04-23 11:01:02


Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 55

118) ​Fazer SELECT que retorne os seguintes registros:


A. Todos os alunos que tem Status cursando;

select * from aluno where idStatusAluno = 3; -- cursando


select * from aluno where idStatusAluno = 1; -- egressos

B. Todos os alunos, somente Nome do Aluno ordenado pelo nome


(Crescente e Descrescente);

select NomeAluno from aluno order by NomeAluno;

select NomeAluno from aluno order by NomeAluno desc;

C. Todos os alunos, Nome do Aluno e IdAluno ordenado pelo idaluno;

select NomeAluno, idAluno from aluno order by idAluno;

D. Todos os campos, somente Alunos com idaluno >=3;


select * from aluno where idAluno >=3;

E. Todos os campos, somente Alunos com idaluno <4;


select * from aluno where idAluno <4;

F. Nomes dos alunos e Status do Aluno (DeTipoAluno) ordenado pelo Nome


do Aluno;

SELECT aluno.NomeAluno, statusaluno.DeTipoAluno


FROM aluno
INNER JOIN statusaluno
ON aluno.idStatusAluno = statusaluno.idStatusAluno
order by aluno.NomeAluno;

G. Nomes dos alunos e Curso matriculado ordenado pelo nomealuno;

SELECT A.NomeAluno, C.DeCurso


FROM Aluno AS A
INNER JOIN curso_aluno AS CA
ON A.IDALUNO = CA.IDALUNO
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 56

INNER JOIN curso as c


ON ca.idcurso = c.idcurso
order by a.nomealuno;

H. Somente Alunos com idaluno <7 e >4;

select * from aluno


where idAluno > 4 and idAluno <7;
OU
select * from aluno
where idAluno between 5 and 6;

I. Todos os campos, Somente Alunos com idaluno <5 e >=2 ordenado pelo
nomealuno;

select * from aluno


where idAluno < 5 and idAluno >=2;

select * from aluno


where idAluno between 2 and 4;

J. Todos os alunos do curso de Medicina;


select a.NomeAluno from aluno a
inner join curso_aluno ca
on a.idaluno = ca.idaluno
inner join curso c
on c.idcurso = ca.idcurso
where DeCurso = 'Medicina';

K. Todos os alunos do curso de ADS e que sejam egressos;


SELECT a.nomealuno, sa.detipoaluno, c.DeCurso
FROM aluno a
INNER JOIN statusaluno sa
on sa.idstatusaluno = a.idstatusaluno
INNER JOIN curso_aluno ca
on ca.idaluno = a.idaluno
INNER JOIN Curso c
on c.idcurso = ca.idcurso
where c.decurso LIKE 'ADS%' AND
sa.detipoaluno LIKE 'Egre%';

L. Todos os Alunos que comecem com a letra P;


select NomeAluno from aluno
where NomeAluno like 'P%';
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 57

M. Todos os Alunos que terminem com a letra A;


select NomeAluno from aluno
where NomeAluno like '%A';

N. Todos os Alunos que tenham a letra V e sejam do curso de Engenharia;


select a.nomealuno, c.DeCurso
from aluno a
inner join curso_aluno ca
on ca.idaluno = a.idaluno
inner join curso c
on c.idcurso = ca.idcurso
where a.nomealuno like '%V%' and
c.decurso = 'Engenharia';

O. Nome dos Alunos e curso matriculado com idaluno <7 e >4 ordenado
pelo nomealuno, que contenham a letra N, estejam “Transferido”;

select a.NomeAluno, c.DeCurso, sa.DeTipoAluno


from aluno a
inner join curso_aluno ca
on ca.idaluno = a.idaluno
inner join curso c
on c.idcurso = ca.idcurso
inner join statusaluno sa
on sa.idstatusaluno = a.idstatusaluno
where a.nomealuno like '%N%'
and sa.detipoaluno = 'transferido'
and a.idAluno > 4 and a.idAluno <7
order by a.nomealuno;

P. Trazer Nome do Aluno e somente o ano de dtMatricula ordenado pelo


Nomedo Aluno

select a.NomeAluno,
year (ca.DtMatricula) as AnoMatricula
from aluno a
inner join curso_aluno ca
on ca.idaluno = a.idaluno
order by a.NomeAluno;
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 58

Q. Trazer a data e hora atual, somente mês de matricula ordenado pelo


Nome do Aluno

select now(), a.NomeAluno,


month (ca.DtMatricula) as MesMatricula
from aluno a
inner join curso_aluno ca
on ca.idaluno = a.idaluno
order by a.NomeAluno​;

R. Contar quantos alunos se matricularam no mês de Abril;

select count(a.idaluno) 'Quantidade de Alunos'


from aluno a
inner join curso_aluno ca
on ca.idaluno = a.idaluno
where month (ca.DtMatricula) = 4;

S. Contar quantos alunos se matricularam no dia 23 de qualquer mês;

select count(a.idaluno)
from aluno a
inner join curso_aluno ca
on a.idAluno = ca.idAluno
where day(ca.DtMatricula) = 23;

T. Contar os nomes dos alunos agrupados por nome do Curso

SELECT C.DECURSO,COUNT(A.NOMEALUNO)
FROM ALUNO A
INNER JOIN curso_aluno CA
ON CA.idAluno = A.IDALUNO
INNER JOIN CURSO C
ON C.IDCURSO = CA.idCurso
GROUP BY C.DECURSO ;

U. Contar os Nomes dos professores agrupados por Disciplina

SELECT COUNT(P.NOMEPROFESSOR) as Quantidade,


D.DEDISCIPLINA
FROM PROFESSOR P
INNER JOIN DISCIPLINA D
ON P.IDPROFESSOR = D.IDPROFESSOR
GROUP BY D.DEDISCIPLINA;
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 59

V. Contar os Nomes dos Disciplinas agrupados por Professor

SELECT COUNT(D.DEDISCIPLINA) as Quantidade,


P.NOMEPROFESSOR
FROM PROFESSOR P
INNER JOIN DISCIPLINA D
ON P.IDPROFESSOR = D.IDPROFESSOR
GROUP BY P.NOMEPROFESSOR;

W.Nome do Aluno, Status, Nome do Curso que a todos os alunos que


comecem com “Eva” estejam matriculados

select a.NomeAluno, c.DeCurso, sa.DeTipoAluno from aluno a


inner join statusaluno sa
on a.idstatusaluno = sa.idstatusaluno
inner join curso_aluno ca
on ca.idaluno = a.idaluno
inner join curso c
on c.idcurso = ca.idcurso
where sa.detipoaluno = 'Egresso' and
a.nomealuno like 'eva%';

119)

A. Mudar o nome da aluna idaluno=3 para “Joana Treptow”

UPDATE ALUNO
SET NOMEALUNO = 'JOANA TREPTOW'
WHERE IDALUNO = 3;

B. Mudar o nome da aluna “Bruna Marquezine” para “Paloma Tocci”

UPDATE ALUNO
SET NOMEALUNO = 'Paloma Tocci'
WHERE IDALUNO = 4;

UPDATE ALUNO
SET NOMEALUNO = 'Paloma Tocci'
WHERE NOMEALUNO = 'BRUNA MARQUEZINE'
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 60

C. Mudar data de matrícula da aluna “Eva Andressa” para 02/12/2011

UPDATE curso_aluno
SET DtMatricula = '2011-12-02'
WHERE IDCURSO = 3
AND IDALUNO = 6;

D. Mudar data de matrícula da aluna “Isabela Fontana” para 09/03/2015

UPDATE curso_aluno
SET DtMatricula = '2015-03-09'
WHERE IDCURSO = 5
AND IDALUNO = 5;

E. Mudar o status para “Ativo” para todos os alunos com idaluno >=2 em
Curso aluno.

UPDATE curso_aluno
SET ativo = 0
where (idaluno = 6 and idCurso=3) or
(idAluno = 3 and idCurso=1);

F. Mudar o nome do professor “Pardal” para “Mickey”

UPDATE PROFESSOR
SET NomeProfessor = 'Mickey'
WHERE idProfessor=5;

G. Mudar o nome da disciplina “Fisiologia” para “Nefrologia”

UPDATE DISCIPLINA
SET DEDISCIPLINA = 'Nefrologia'
WHERE IDDISCIPLINA = 5;

H. Mudar nome da disciplina e código do professor na tabela disciplina,


onde, de “Civil” para “Sistemas Operacionais” e código professor de 1
para 4;

UPDATE disciplina
SET DeDisciplina = 'Sistemas Operacionais',
idProfessor = 4
where idDisciplina =2 ;
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 61

I. Mudar nome do aluno e status na tabela aluno, onde, de “Isabela


Fontana” para “Fiorella Matheis” e status de 2 para 3;

UPDATE ALUNO
SET IDSTATUSALUNO=3,
NOMEALUNO = 'FIORELLA MATHEIS'
WHERE IDALUNO = 5;

120)

A. Excluir a Disciplina iddisciplina = 3

DELETE FROM DISCIPLINA


WHERE IDDISCIPLINA = 3;

B. Excluir Curso_aluno para todos os cursos idcurso=4;

delete
from
curso_aluno
where idcurso=4
and idaluno = 4;

C. Excluir Status_Aluno = “Egresso”

DELETE FROM CURSO_ALUNO


WHERE IDALUNO = 6 OR IDALUNO =1;

DELETE FROM ALUNO


WHERE IDALUNO = 6 OR IDALUNO =1;

DELETE FROM STATUSALUNO


WHERE IDALUNO = 6 OR IDALUNO =1;

---- OU ----

delete from curso_aluno


where idaluno in (1,6);

delete from aluno


where idStatusAluno = 1
and (idaluno in (1,6));
Notas de Aulas Prof.: Edilberto Silva ​www.edilms.eti.br​ 62

delete from statusaluno


where idStatusAluno=1;

D. Excluir o Professor “Raimundo”

DELETE FROM DISCIPLINA


WHERE IDDISCIPLINA=2;

DELETE FROM PROFESSOR


WHERE IDPROFESSOR=4;

E. Excluir o Professor “Girafalis”

F. Excluir as matriculas realizadas em “Abril”

You might also like