Manual Prof Banco de Dados1 PDF

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 54

Manual do Professor Banco de Dados

01

Manual do Professor
1. Introduo
Por muito tempo, a educao profissional foi desprezada e considerada
de segunda classe. Atualmente, a opo pela formao tcnica festejada, pois
alia os conhecimentos do saber fazer com a formao geral do conhecer e
do saber ser; a formao integral do estudante.
Este livro didtico mais uma ferramenta para a formao integral, pois
2 alia o instrumental para aplicao prtica com as bases cientficas e tecnolgi-
cas, ou seja, permite aplicar a cincia em solues do dia a dia.
Alm do livro, compe esta formao do tcnico o preparo do professor,
Banco de Dados

as prticas laboratoriais, o estgio, a visita tcnica e outras atividades inerentes


a cada plano de curso. Dessa forma, o livro, com sua estruturao pedagogica-
mente elaborada, uma ferramenta altamente relevante, pois fio condutor
dessas atividades formativas.
Ele est contextualizado com a realidade, as necessidades do mundo do
trabalho, os arranjos produtivos, o interesse da incluso social e a aplicao
cotidiana. Essa contextualizao elimina a dicotomia entre atividade intelec-
tual e atividade manual, pois no s prepara o profissional para trabalhar em
atividades produtivas, mas tambm com conhecimentos e atitudes, com vistas
atuao poltica na sociedade. Afinal, desejo de todo educador formar cida-
dos produtivos.
Outro valor pedaggico acompanha esta obra: o fortalecimento mtuo
da formao geral e da formao especfica (tcnica). O Exame Nacional do
Ensino Mdio (ENEM) tem demonstrado que os alunos que estudam em
um curso tcnico tiram melhores notas, pois ao estudar para resolver um pro-
blema prtico ele aprimora os conhecimentos da formao geral (qumica,
fsica, matemtica, etc.); e ao contrrio, quando estudam uma disciplina geral
passam a aprimorar possibilidades da parte tcnica.
Pretendemos contribuir para resolver o problema do desemprego,
preparando os alunos para atuar na rea cientfica, industrial, de transaes
e comercial, conforme seu interesse. Por outro lado, preparamos os alunos
para ser independentes no processo formativo, permitindo que trabalhem
durante parte do dia no comrcio ou na indstria e prossigam em seus
estudos superiores no contraturno. Dessa forma, podem constituir seu iti-
nerrio formativo e, ao concluir um curso superior, sero robustamente
formados em relao a outros, que no tiveram a oportunidade de realizar
um curso tcnico.
Por fim, este livro pretende ser til para a economia brasileira, aprimo-
rando nossa fora produtiva ao mesmo tempo em que dispensa a importao
de tcnicos estrangeiros para atender s demandas da nossa economia.

1.1 Por que a Formao Tcnica de Nvel Mdio


Importante?
O tcnico desempenha papel vital no desenvolvimento do pas por
meio da criao de recursos humanos qualificados, aumento da produtividade
industrial e melhoria da qualidade de vida.
Alguns benefcios do ensino profissionalizante para o formando:
Aumento dos salrios em comparao com aqueles que tm ape-
nas o Ensino Mdio;
Maior estabilidade no emprego; 3

Maior rapidez para adentrar ao mercado de trabalho;

Banco de Dados
Facilidade em conciliar trabalho e estudos;
Mais de 72% ao se formarem esto empregados;
Mais de 65% dos concluintes passam a trabalhar naquilo que gos-
tam e em que se formaram.

Esses dados so oriundos de pesquisas. Uma delas, intitulada Educao


profissional e voc no mercado de trabalho, realizada pela Fundao Getlio
Vargas e o Instituto Votorantim, comprova o acerto do Governo ao colocar,
entre os quatro eixos do Plano de Desenvolvimento da Educao (PDE),
investimentos para a popularizao da Educao Profissional. Para as empre-
sas, os cursos oferecidos pelas escolas profissionais atendem de forma mais
eficiente s diferentes necessidades dos negcios.
Outra pesquisa, feita em 2009 pela Secretaria de Educao Profissional
e Tecnolgica (Setec), rgo do Ministrio da Educao (MEC), chamada
Pesquisa nacional de egressos, revelou tambm que de cada dez alunos, seis
recebem salrio na mdia da categoria. O percentual dos que qualificaram a
formao recebida como boa e tima foi de 90%.
2. Ensino Profissionalizante no Brasil e
Necessidade do Livro Didtico Tcnico
O Decreto Federal n 5.154/2004 estabelece inmeras possibilida-
des de combinar a formao geral com a formao tcnica especfica.
Os cursos tcnicos podem ser ofertados da seguinte forma:
a) Integrado ao mesmo tempo em que estuda disciplinas de for-
mao geral o aluno tambm recebe contedos da parte tcnica,
na mesma escola e no mesmo turno.
b) Concomitante num turno o aluno estuda numa escola que s
oferece Ensino Mdio e num outro turno ou escola recebe a for-
mao tcnica.
c) Subsequente o aluno s vai para as aulas tcnicas, no caso de
j ter concludo o Ensino Mdio.
Com o Decreto Federal no 5.840/2006, foi criado o programa de
profissionalizao para a modalidade Jovens e Adultos (Proeja) em Nvel
Mdio, que uma variante da forma integrada.
Em 2008, aps ser aprovado pelo Conselho Nacional de Educao pelo
Parecer CNE/CEB n 11/2008, foi lanado o Catlogo Nacional de Cursos
Tcnicos, com o fim de orientar a oferta desses cursos em nvel nacional.
O Catlogo consolidou diversas nomenclaturas em 185 denomina-
es de cursos. Estes esto organizados em 12 eixos tecnolgicos, a saber:
1. Ambiente, Sade e Segurana
4 2. Apoio Educacional
3. Controle e Processos Industriais
4. Gesto e Negcios
Banco de Dados

5. Hospitalidade e Lazer
6. Informao e Comunicao
7. Infraestrutura
8. Militar
9. Produo Alimentcia
10. Produo Cultural e Design
11. Produo Industrial
12. Recursos Naturais.

Para cada curso, o Catlogo estabelece carga horria mnima para


a parte tcnica (de 800 a 1 200 horas), perfil profissional, possibilidades
de temas a serem abordados na formao, possibilidades de atuao
e infraestrutura recomendada para realizao do curso. Com isso, passa
a ser um mecanismo de organizao e orientao da oferta nacional e tem
funo indutora ao destacar novas ofertas em nichos tecnolgicos, culturais,
ambientais e produtivos, para formao do tcnico de Nvel Mdio.
Dessa forma, passamos a ter no Brasil uma nova estruturao legal
para a oferta destes cursos. Ao mesmo tempo, os governos federal e esta-
duais passaram a investir em novas escolas tcnicas, aumentando a oferta
de vagas. Dados divulgados pelo Ministrio da Educao apontaram que
o nmero de alunos na educao profissionalizante passou de 693 mil em
2007 para 795 mil em 2008 um crescimento de 14,7%. A demanda por
vagas em cursos tcnicos tem tendncia para aumentar, tanto devido nova
importncia social e legal dada a esses cursos, como tambm pelo cresci-
mento do Brasil.
COMPARAO DE MATRCULAS BRASIL
Comparao de Matrculas da Educao Bsica por Etapa e Modalidade Brasil, 2007 e 2008.

Etapas/Modalidades de Matrculas / Ano


Educao Bsica 2007 2008 Diferena 2007-2008 Variao 2007-2008
Educao Bsica 53.028.928 53.232.868 203.940 0,4
Educao Infantil 6.509.868 6.719.261 209.393 3,2
Creche 1.579.581 1.751.736 172.155 10,9
Pr-escola 4.930.287 4.967.525 37.238 0,8
Ensino Fundamental 32.122.273 32.086.700 35.573 0,1
Ensino Mdio 8.369.369 8.366.100 3.269 0,0
Educao Profissional 693.610 795.459 101.849 14,7
Educao Especial 348.470 319.924 28.546 8,2
EJA 4.985.338 4.945.424 39.914 0,8
Ensino Fundamental 3.367.032 3.295.240 71.792 2,1
Ensino Mdio 1.618.306 1.650.184 31.878 2,0
Fonte: Adaptado de: MEC/Inep/Deed.

No aspecto econmico, h necessidade de expandir a oferta desse tipo 5


de curso, cujo principal objetivo formar o aluno para atuar no mercado de
trabalho, j que falta trabalhador ou pessoa qualificada para assumir imedia-

Banco de Dados
tamente as vagas disponveis. Por conta disso, muitas empresas tm que arcar
com o treinamento de seus funcionrios, treinamento esse que no d ao
funcionrio um diploma, ou seja, no formalmente reconhecido.
Para atender demanda do setor produtivo e satisfazer a procura dos
estudantes, seria necessrio mais que triplicar as vagas tcnicas existentes
hoje.
Outro fator que determina a busca pelo ensino tcnico ser este uma boa
opo de formao secundria para um grupo cada vez maior de estudantes. Parte
dos concluintes do Ensino Mdio (59% pelo Censo Inep, 2004), por diversos
fatores, no buscam o curso superior. Associa-se a isso a escolarizao lquida do
Ensino Fundamental, que est prxima de 95%, e a escolarizao bruta em 116%
(Inep, 2007), mostrando uma presso de entrada
no Ensino Mdio, pelo fluxo quase regular dos
que o concluem. Escolarizao lquida a relao entre a popu-
A escolarizao lquida do Ensino Mdio lao na faixa de idade prpria para a escola e o
nmero de matriculados da faixa. Escolarizao
em 2009 foi de 53%, enquanto a bruta foi de 84%
bruta a relao entre a populao na faixa
(Inep, 2009), o que gera um excedente de alunos adequada para o nvel escolar e o total de matri-
para esta etapa. culados, independente da idade.
Atualmente, o nmero de matriculados no Ensino Mdio est em torno
de 9 milhes de estudantes. Se considerarmos o esquema a seguir, conclumos
que em breve devemos dobrar a oferta de Nvel Mdio, pois h 9,8 milhes
de alunos com fluxo regular do Fundamental, 8 milhes no excedente e 3,2
milhes que possuem o Ensino Mdio, mas no tm interesse em cursar o
Ensino Superior. Alm disso, h os que possuem curso superior, mas buscam
um curso tcnico como complemento da formao.
Com Curso
Superior
Subsequente

Interessados com Com Ensino Mdio


Ensino Fundamental Tcnico 3,2 milhes.
Estimativa 8 milhes.
PROEJA

Ensino Fundamental 9,8 milhes


Integrado 116% bruta
94,6% lquida (2007)

A experincia internacional tem mostrado que 30% das matrculas da


6 educao secundria correspondem a cursos tcnicos; este o patamar ideali-
zado pelo Ministrio da Educao. Se hoje h 795 mil estudantes matriculados,
para atingir essa porcentagem devemos matricular pelo menos trs milhes de
Banco de Dados

estudantes em cursos tcnicos dentro de cinco anos.


Para cada situao pode ser adotada uma modalidade ou forma de Ensino
Mdio profissionalizante, de forma a atender a demanda crescente. Para os
advindos do fluxo regular do Ensino Fundamental, por exemplo, recomen-
dado o curso tcnico integrado ao Ensino Mdio. Para aqueles que no tiveram
a oportunidade de cursar o Ensino Mdio, a oferta do Proeja estimularia sua
volta ao ensino secundrio, pois o programa est associado formao profis-
sional. Alm disso, o Proeja considera os conhecimentos adquiridos na vida
e no trabalho, diminuindo a carga de formao geral e privilegiando a formao
especfica. J para aqueles que possuem o Ensino Mdio ou Superior a modali-
dade recomendada a subsequente: somente a formao tcnica especfica.
Para todos eles, com ligeiras adaptaes metodolgicas e de abordagem
do professor, extremamente til o uso do livro didtico tcnico, para maior
eficcia da hora/aula do curso, no importando a modalidade do curso e como
ser ofertado.
Alm disso, o contedo deste livro didtico tcnico e a forma como foi
concebido refora a formao geral, pois est contextualizado com a prtica
social do estudante e relaciona permanentemente os conhecimentos da cincia,
implicando na melhoria da qualidade da formao geral e das demais discipli-
nas do Ensino Mdio.
Em resumo, h claramente uma nova perspectiva para a formao tcnica
com base em sua crescente valorizao social, na demanda da economia, no apri-
moramento de sua regulao e como opo para enfrentar a crise de qualidade e
quantidade do Ensino Mdio.

3. O Que Educao Profissionalizante?


O ensino profissional prepara os alunos para carreiras que esto baseadas
em atividades mais prticas. O ensino menos acadmico, contudo diretamente
relacionado com a inovao tecnolgica e os novos modos de organizao da
produo, por isso a escolarizao imprescindvel nesse processo.

4. Elaborao dos Livros Didticos


Tcnicos
Devido ao fato do ensino tcnico e profissionalizante ter sido renegado a
segundo plano por muitos anos, a bibliografia para diversas reas praticamente
inexistente. Muitos docentes se veem obrigados a utilizar e adaptar livros que
foram escritos para a graduao. Estes compndios, s vezes tradues de livros
estrangeiros, so usados para vrios cursos superiores. Por serem inacessveis
maioria dos alunos por conta de seu custo, comum que professores preparem
apostilas a partir de alguns de seus captulos.
Tal problema agravado quando falamos do Ensino Tcnico integrado ao
Mdio, cujos alunos correspondem faixa etria entre 14 e 19 anos, em mdia.
Para esta faixa etria preciso de linguagem e abordagem diferenciadas, para que 7
aprender deixe de ser um simples ato de memorizao e ensinar signifique mais
do que repassar contedos prontos.

Banco de Dados
Outro pblico importante corresponde queles alunos que esto afastados
das salas de aula h muitos anos e veem no ensino tcnico uma oportunidade de
retomar os estudos e ingressar no mercado profissional.

5. O Livro Didtico Tcnico e o Processo


de Avaliao
O termo avaliar tem sido constantemente associado a expresses como: rea-
lizar prova, fazer exame, atribuir notas, repetir ou passar de ano. Nela a educao
concebida como mera transmisso e memorizao de informaes prontas e o
aluno visto como um ser passivo e receptivo.
Avaliao educacional necessria para fins de documentao, geralmente
para embasar objetivamente a deciso do professor ou da escola, para fins de
progresso do aluno.
O termo avaliao deriva da palavra valer, que vem do latim vlre, e refe-
re-se a ter valor, ser vlido. Consequentemente, um processo de avaliao tem
por objetivo averiguar o "valor" de determinado indivduo.
Mas precisamos ir alm.
A avaliao deve ser aplicada como instrumento de compreenso do nvel de apren-
dizagem dos alunos em relao aos conceitos estudados (conhecimento), em relao ao
desenvolvimento de criatividade, iniciativa, dedicao e princpios ticos (atitude) e ao
processo de ao prtica com eficincia e eficcia (habilidades). Este livro didtico ajuda,
sobretudo para o processo do conhecimento e tambm como guia para o desenvolvimento
de atitudes. As habilidades, em geral, esto associadas a prticas laboratoriais, atividades
complementares e estgios.
A avaliao um ato que necessita ser contnuo, pois o processo de construo de
conhecimentos pode oferecer muitos subsdios ao educador para perceber os avanos e
dificuldades dos educandos e, assim, rever a sua prtica e redirecionar as suas aes, se
necessrio. Em cada etapa registros so feitos. So os registros feitos ao longo do processo
educativo, tendo em vista a compreenso e a descrio dos desempenhos das apren-
dizagens dos estudantes, com possveis demandas de intervenes, que caracterizam o
processo avaliativo, formalizando, para efeito legal, os progressos obtidos.
Neste processo de aprendizagem deve-se manter a interao entre professor e aluno,
promovendo o conhecimento participativo, coletivo e construtivo. A avaliao deve ser
um processo natural que acontece para que o professor tenha uma noo dos contedos
assimilados pelos alunos, bem como saber se as metodologias de ensino adotadas por ele
esto surtindo efeito na aprendizagem dos alunos.
Avaliao deve ser um processo que ocorre dia aps dia, visando correo de
erros e encaminhando o aluno para aquisio dos objetivos previstos. A esta correo
de rumos, ns chamamos de avaliao formativa, pois serve para retomar o processo de
ensino/aprendizagem, mas com novos enfoques, mtodos e materiais. Ao usar diversos
tipos de avaliaes combinadas para fim de retroalimentar o ensinar/aprender, de forma
dinmica, conclumos que se trata de um processo de avaliao.
8
O resultado da avaliao deve permitir que o professor e o aluno dialoguem, bus-
cando encontrar e corrigir possveis erros, redirecionando o aluno e mantendo a motivao
para o progresso do educando, sugerindo a ele novas formas de estudo para melhor com-
Banco de Dados

preenso dos assuntos abordados.


Se ao fizer avaliaes contnuas, percebermos que um aluno tem dificuldade em
assimilar conhecimentos, atitudes e habilidades, ento devemos mudar o rumo das coi-
sas. Quem sabe fazer um reforo da aula, com uma nova abordagem ou com outro colega
professor, em um horrio alternativo, podendo ser em grupo ou s, assim por diante.
Pode ser ainda que a aprendizagem daquele tema seja facilitada ao aluno fazendo prticas
discursivas, escrever textos, uso de ensaios no laboratrio, chegando a concluso que este
aluno necessita de um processo de ensino/aprendizagem que envolva ouvir, escrever,
falar e at mesmo praticar o tema.
Se isso acontecer, a avaliao efetivamente formativa.
Neste caso, a avaliao est integrada ao processo de ensino/aprendizagem, e esta,
por sua vez, deve envolver o aluno, ter um significado com o seu contexto, para que real-
mente acontea. Como a aprendizagem se faz em processo, ela precisa ser acompanhada
de retornos avaliativos visando a fornecer os dados para eventuais correes.
Para o uso adequado deste livro recomendamos utilizar diversos tipos de avaliaes,
cada qual com pesos e frequncias de acordo com perfil de docncia de cada professor.
Podem ser usadas as tradicionais provas e testes, mas, procurar fugir de sua soberania,
mesclando com outras criativas formas.
5.1 Avaliao e Progresso
Para efeito de progresso do aluno, o docente deve sempre considerar os avanos
alcanados ao longo do processo e perguntar-se: Este aluno progrediu em relao ao seu
patamar anterior? Este aluno progrediu em relao s primeiras avaliaes? Respondidas
estas questes, volta a perguntar-se: Este aluno apresentou progresso suficiente para acom-
panhar a prxima etapa? Com isso o professor e a escola podem embasar o deferimento da
progresso do estudante.
Com isso, superamos a antiga avaliao conformadora em que eram exigidos padres
iguais para todos os formandos.
Nossa proposta significa, conceitualmente, que ao estudante dado o direito, pela
avaliao, de verificar se deu um passo a mais em relao as suas competncias. Os diversos
estudantes tero desenvolvimentos diferenciados, medidos por um processo avaliativo que
incorpora esta possibilidade. Aqueles que acrescentaram progresso em seus conhecimen-
tos, atitudes e habilidades estaro aptos a progredir.
A base para a progresso, neste caso, o prprio aluno.
Todos tm o direito de dar um passo a mais. Pois um bom processo de avaliao oportu-
niza justia, transparncia e qualidade.

5.2 Tipos de Avaliao


Existem inmeras tcnicas avaliativas, no existe uma mais adequada, o importante
que o docente conhea vrias tcnicas para poder ter um conjunto de ferramentas a seu dispor
e escolher a mais adequada dependendo da turma, faixa etria, perfil entre outros fatores.
Avaliao se torna ainda mais relevante quando os alunos se envolvem na sua pr-
pria avaliao. 9
A avaliao pode incluir:
1. Observao

Banco de Dados
2. Ensaios
3. Entrevistas
4. Desempenho nas tarefas
5. Exposies e demonstraes
6. Seminrios
7. Portflio: Conjunto organizado de trabalhos produzidos por um aluno ao longo de
um perodo de tempo.
8. Elaborao de jornais e revistas (fsicos e digitais)
9. Elaborao de projetos
10. Simulaes
11. O pr-teste
12. A avaliao objetiva
13. A avaliao subjetiva
14. Autoavaliao
15. Autoavaliao de dedicao e desempenho
16. Avaliaes interativas
17. Prtica de exames
18. Participao em sala de aula
19. Participao em atividades
20. Avaliao em conselho pedaggico que inclui reunio para avaliao discente
pelo grupo de professores.
No livro didtico as atividades, as dicas e outras informaes destacadas pode-
ro resultar em avaliao de atitude, quando cobrado pelo professor em relao ao
desempenho nas tarefas. Podero resultar em avaliaes semanais de autoavaliao de
desempenho se cobrado oralmente pelo professor para o aluno perante a turma.
Enfim, o livro didtico, possibilita ao professor extenuar sua criatividade em prol de
um processo avaliativo retroalimentador ao processo ensino/aprendizagem para o desen-
volvimento mximo das competncias do aluno.

6. Objetivos da Obra
Alm de atender s peculiaridades citadas anteriormente, este livro est de acordo
com o Catlogo Nacional de Cursos Tcnicos. Busca o desenvolvimento das habilidades
por meio da construo de atividades prticas, fugindo da abordagem tradicional de des-
contextualizado acmulo de informaes. Est voltado para um ensino contextualizado,
mais dinmico e com o suporte da interdisciplinaridade. Visa tambm ressignificao
do espao escolar, tornando-o vivo, repleto de interaes prticas, aberto ao real e s suas
mltiplas dimenses.
Ele est organizado em captulos, graduando as dificuldades, numa linha da lgica
10
de aprendizagem passo a passo. No final dos captulos, h exerccios e atividades comple-
mentares, teis e necessrias para o aluno descobrir, fixar, e aprofundar os conhecimentos
e as prticas desenvolvidos no captulo.
Banco de Dados

A obra apresenta diagramao colorida e diversas ilustraes, de forma a ser agra-


dvel e instigante ao aluno. Afinal, livro tcnico no precisa ser impresso num sisudo
preto-e-branco para ser bom. Ser difcil de manusear e pouco atraente o mesmo que ter
um professor dando aula de cara feia permanentemente. Isso antididtico.
O livro servir tambm para a vida profissional ps-escolar, pois o tcnico sempre
necessitar consultar detalhes, tabelas e outras informaes para aplicar em situao real.
Nesse sentido, o livro didtico tcnico passa a ter funo de manual operativo ao egresso.
Neste manual do professor apresentamos:
Respostas e alguns comentrios sobre as atividades propostas;
Consideraes sobre a metodologia e o projeto didtico;
Sugestes para a gesto da sala de aula;
Uso do livro;
Atividades em grupo;
Laboratrio;
Projetos.
A seguir, so feitas consideraes sobre cada captulo, com sugestes de atividades
suplementares e orientaes didticas. Com uma linguagem clara, o manual contribui para
a ampliao e explorao das atividades propostas no livro do aluno. Os comentrios sobre as
atividades e seus objetivos trazem subsdios atuao do professor. Alm disso, apresentam-se
diversos instrumentos para uma avaliao coerente com as concepes da obra.

7. Referncias Bibliogrficas Gerais


FREIRE, P. Pedagogia da autonomia: saberes necessrios prtica educativa. So Paulo: Paz e
Terra, 1997.
FRIGOTTO, G. (Org.). Educao e trabalho: dilemas na educao do trabalhador. 5. ed. So
Paulo: Cortez, 2005.
BRASIL. LDB 9394/96. Disponvel em: <http://www.mec.gov.br>. Acesso em: 23 maio 2009.
LUCKESI, C. C. Avaliao da aprendizagem na escola: reelaborando conceitos e recriando a pr-
tica. Salvador: Malabares Comunicao e Eventos, 2003.
PERRENOUD, P. Avaliao: da excelncia regulao das aprendizagens entre duas lgicas.
Porto Alegre: Artes Mdicas Sul, 1999.
LVAREZ MNDEZ, J. M. Avaliar para conhecer: examinar para excluir. Porto Alegre: Artmed,
2002.
Shepard, L. A. The role of assessment in a learning culture. Paper presented at the Annual Meeting
of the American Educational Research Association. Available at: <http://www.aera.net/mee-
ting/am2000/wrap/praddr01.htm>.

8. Orientaes ao professor
11
A rea de banco de dados de grande importncia, uma vez que hoje a informao
um bem precioso e deve ser armazenada de forma coerente e adequada.

Banco de Dados
Apesar de, atualmente, qualquer Sistema de Informao, por menor e mais simples
que seja, precisar utilizar uma base de dados, observa-se certo descaso dos desenvolvedo-
res com a modelagem de uma base de dados antes da sua implementao. No entanto, esse
descaso pode fazer com que todo o desempenho do sistema seja comprometido.
A importncia de uma boa modelagem se deve ao fato de que as aplicaes que aces-
sam a base de dados devem estar em consonncia com o modelo desenvolvido. muito
desanimador e trabalhoso, depois da base de dados implementada e da aplicao do usurio
desenvolvida, que se perceba a necessidade de alterar o modelo de dados. A verdade que
isso gera um retrabalho, uma vez que no s a implementao da base ter que ser refeita,
mas tambm os diagramas devero ser atualizados e, na maioria dos casos, a aplicao tam-
bm ser atualizada.
A fase de modelagem , portanto, a principal etapa no desenvolvimento de uma base
dados. Por isso, muito importante que se dedique tempo e esforo no desenvolvimento
de uma boa modelagem da base de dados.
Uma vez que o modelo de dados foi desenvolvido necessrio selecionar um SGBD
Sistemas Gerenciadores de Banco de Dados para que esse modelo possa ser implemen-
tado. a linguagem Sql que permite criar uma base de dados que represente o modelo
desenvolvido e tambm permite manipular e recuperar dados dessa base. No entanto, no
se pode esquecer de que se o modelo no for coerente, a linguagem no ajudar muito.
O livro de Banco de Dados permite aprender a desenvolver uma
boa modelagem e tambm a utilizar a linguagem Sql para criar o modelo
desenvolvido, para manipular e para recuperar os dados. A abordagem
utilizada no livro bastante prtica. Ele comea apresentando os princi-
pais conceitos e suas aplicaes para desenvolver uma boa modelagem.
Num segundo momento, o livro apresenta a linguagem Sql e como ela
pode ser utilizada para implementar uma base de dados. Assim, ao final
do livro, teremos um projeto de banco de dados completo e poderemos
implementar esse projeto completamente por meio da linguagem Sql.

8.1 Objetivos do Material Didtico


Apresentar os principais conceitos da rea de banco de dados;
Modelar, por meio do Diagrama de Entidade e Relacionamento, uma
base de dados;
Criar o modelo relacional normalizado de uma base de dados;
Implementar um base de dados em um SGBD (no caso do livro o
SGBD utilizado foi o MySql);
Utilizar a linguagem Sql para inserir, alterar e excluir dados da base
de dados;
Utilizar a linguagem Sql para recuperar informaes (realizar con-
sultas) inseridas na base de dados;
Apresentar junes e comandos mais avanados da linguagem Sql;
12 Partir de uma situao real e conseguir, a partir dela, criar o modelo
abstrato da base de dados, criar o modelo relacional normalizado, fazer
o dicionrio de dados detalhado para esta base e, ento, implement-la
Banco de Dados

em um SGBD.

8.2 Princpios Pedaggicos


O objetivo do livro trabalhar com uma abordagem prtica. Em
cada captulo sero apresentados novos conceitos desta disciplina e a
dificuldade dele vai aumentando gradualmente, para melhor entendi-
mento dos alunos. Assim, esses alunos comeam aprendendo a modelar
uma base de dados normalizada e, em seguida, a implement-la em um
SGBD por meio da linguagem Sql.

8.3 Articulao do Contedo


O docente poder articular com professores de outras disciplinas
tcnicas como Modelagem de Sistemas e Programao o desenvolvi-
mento de um projeto que contemple a modelagem e a implementao
de um Sistema de Informao que utilize uma base de dados e assim a
realizar um projeto interdisciplinar entre as disciplinas de um mesmo
perodo. O sistema a ser desenvolvido pode ser em qualquer outra rea
como Geografia, Histria, Portugus, etc.
8.4 Atividades Complementares
Estudos de caso com descrio de situaes reais;
Prticas de laboratrio que permitam ao aluno utilizar um SGBD para que ele possa
visualizar os resultados da utilizao da linguagem Sql para insero, alterao, excluso
e recuperao de dados;
Desenvolvimento de um trabalho interdisciplinar entre as disciplinas de Banco de Dados,
Modelagem de Sistemas e Programao.

8.5 Sugesto de Leitura


CNDIDO C. H. brModelo 2.0. Disponvel em:< http://sis4.com/brModelo/>. Acesso em:
10 jan. 2010.
CODD, E. F. Relational model of data for large shared Data Banks. In: Communications of the
ACM, Vol. 13, 1970.
DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Elsevier, 2003.
ELSMARI, R.; NAVATHE, S. B. Sistemas de bancos de dados. So Paulo: Pearson, 2005.
Heuser, C. A. Projeto de banco de bados. 6. ed. So Paulo: Bookman, 2009.
KRIEGEL, A.; TRUKHNOV, B. M. SQL Bible. Indianapolis: Wiley, 2003.
SILBERCHATZ A. et. al. Sistema de banco de bados. 3. ed. So Paulo: Makron Books, 1999.

8.6 Sugesto de Planejamento


Este livro foi elaborado para dar suporte e ser utilizado para 80 horas em sala de 13
aula. A sugesto de planejamento que anunciamos segue neste diapaso. Mas altamente
recomendado que o professor da disciplina incremente com textos e atividades com-

Banco de Dados
plementares em conformidade com o seu jeito prprio de ministrar aulas, sobretudo
potencializando sua especializao, aplicando sua criatividade em prol do incremento do
processo educativo.

Semestre 1
Primeiro Bimestre

Captulo 1 Uma Breve Introduo a Banco de Dados

Captulo 2 Introduo ao Modelo de Entidade e Relacionamento

Captulo 3 ER: Relacionamento, Especializao e Agregao

Objetivos
Apresentar os principais conceitos relativos rea de Banco de Dados;
Apresentar a evoluo dos bancos de dados desde a dcada de 70, como eram armazena-
dos dados nessa poca e quais os principais problemas encontrados;
Mostrar como um SGBD ameniza e, em alguns casos, soluciona os
problemas que existiam anteriormente;
Explicar a importncia da modelagem no desenvolvimento de uma
base de dados;
Apresentar os principais conceitos de um modelo de entidade e
relacionamento;

Atividades
Pesquisar sobre SGBD mais utilizados no mercado de trabalho e suas
principais caractersticas;
Desenvolver, com os alunos, exerccios que permitam a eles que
criem diagramas de base de dados para algumas situaes hipotti-
cas e/ou reais.

Segundo Bimestre

Captulo 4 Introduo ao Modelo Relacional

Captulo 5 Modelo Relacional: Tpicos Avanados

Captulo 6 Um Exemplo Prtico

Objetivos
14
Apresentar o que uma chave estrangeira e o conceito de integri-
dade referencial;
Banco de Dados

Mostrar, por meio de exemplos, a aplicao das regras de converso


entre os modelos (DER para o modelo relacional) e explicar a utiliza-
o dessas regras;
Permitir ao aluno que possa desenvolver o modelo completo de uma
base de dados.

Atividades
Desenvolver, com os alunos, exerccios que permitam a eles que
faam a converso do diagrama de entidade e relacionamento para
o modelo relacional;
Praticar, por meio de exerccios, a aplicao das regras de normalizao;
Realizar um projeto em que o aluno possa desenvolver toda a
parte de modelagem da base de dados (desde o diagrama de enti-
dade e relacionamento at o dicionrio de dados), como foi feito
no captulo 6.
Semestre 2
Primeiro Bimestre

Captulo 7 Implementao do Modelo Lgico: Linguagem Sql

Captulo 8 Linguagem Sql DML

Objetivos
Apresentar uma breve introduo sobre a linguagem Sql;
Apresentar os comandos DDL para criao de base de dados;
Discutir as principais restries de integridade que devem ser
consideradas na criao de uma base de dados;
Apresentar os principais comandos Sql DDL: CREATE, ALTER e DROP;
Explicar o que um ndice, para que ele serve e quando deve ser criado;
Apresentar os principais comandos DML: INSERT, UPDATE,
DELETE e SELECT, FROM e WHERE;
Explicar a diferena entre o INNER JOIN e o Produto Cartesiano;

Atividades
Desenvolver em laboratrio, com os alunos, exerccios que permitam a
eles que criem bases de dados (com suas respectivas tabelas, chaves pri- 15
mrias, chaves estrangeiras e outras restries que forem necessrias)
baseadas nos modelos desenvolvidos em aulas anteriores;

Banco de Dados
Para as bases de dados criadas, os alunos devem inserir dados usando o
comando INSERT;
Sugerir algumas consultas para que os alunos escrevam as mesmas uti-
lizando a linguagem Sql.

Segundo Bimestre

Captulo 9 Outros Comandos Sql DML

Captulo 10 SQL DML: Subconsulta e Tipos de Juno

Objetivos
Apresentar alguns outros comandos da linguagem Sql para criao de
consultas;
Explicar a diferena de desempenho de uma consulta, dependendo do
comando utilizado;
Apresentar os principais tipos de juno, sua aplicabilidade e quando
devem ser utilizados.
Atividades
Exerccios que permitam aos alunos que realizem consultas na base de
dados, utilizando comandos mais elaborados para isso;
Realizar atividades em que os alunos tenham que utilizar diferentes tipos
de juno para que entendam em que situaes essas junes devem ser
aplicadas.

9. Orientaes Didticas e Respostas das


Atividades
Captulo 1
Orientaes
O objetivo desse captulo apresentar os principais conceitos relativos
rea de Banco de Dados. O professor deve explicar claramente para os alunos o
que so dados, o que so informaes, o que compreende uma base de dados,
em que consiste e o que define um sistema de banco de dados e, finalmente, o
que so os atuais Sistemas Gerenciadores de Banco de Dados (SGBD).
Alm disso, o professor deve apresentar como aconteceu a evoluo dos
bancos de dados desde a dcada de 70, como os dados eram armazenados nessa
poca e quais os principais problemas encontrados. Esses problemas levaram ao
desenvolvimento dos SGBD atuais, que surgem com uma proposta apara ame-
nizar e, em alguns casos, solucionar os problemas que existiam anteriormente.
16 Tambm devem ser apresentados os conceitos de Esquema, Instncias,
Independncia de Dados e os principais usurios de um banco de dados e
seus papis.
Banco de Dados

Respostas pgina 17
1) Situao 1: Um sistema para controle de estoque em um
supermercado.
Situao 2: Um sistema para controle de alunos, disciplinas, turmas
e professores em uma escola.
Situao 3: Um sistema para emprstimos de livros em uma
biblioteca.
2) Situao 1: Dados de produtos (nome, categoria, preo, etc.), forne-
cedores (nome, CNPJ, telefone, etc.), estoque mnimo permitido, data
de entrega do produto, validade, etc.
Situao 2: Dados de alunos (nome, endereo, telefone, data de
nascimento, etc.); dados de disciplinas (nome, cdigo, etc.); dados
de professores (nome, escolaridade, telefone, etc.); dados de turmas
(nome, cdigo, etc.).
Situao 3: Dados dos livros (nome, autor, ano, ISBN, etc.); dados
do usurio que ir emprestar o livro (nome, endereo, nmero da
carteirinha, etc.); data do emprstimo, data da devoluo, valor da
multa por atraso, etc.
3) As informaes que sero armazenadas na base de dados sem-
pre devem ser teis para a aplicao do cliente. Por exemplo, se a
aplicao do cliente for um sistema para emprstimo de livro e for
importante saber quem emprestou qual livro e em que data, as infor-
maes como nome do usurio, nome do livro e data do emprstimo
devem ser armazenados. Outro fator que deve ser considerado so os
relatrios que o cliente solicitou ou necessita. Para gerar os relatrios
so necessrios dados armazenados na base de dados, portanto, isso
deve ser considerado no desenvolvimento da base de dados.
Um dado no til quando ele no utilizado pela aplicao. Por
exemplo, suponha que voc queira armazenar o e-mail do cliente,
mas depois de algumas entrevistas com o cliente voc descubra
que esse dado no ser utilizado para nada. Neste caso, o dado no
til para a aplicao e nem para o cliente e, portanto, deve ser
descartado.
4) Um sistema de banco de dados computacional caracterizado por
armazenar dados, relacionar dados e recuperar dados.
5) Uma base de dados apenas o repositrio em que os dados esto
inseridos. Cada base de dados pertence a um domnio especfico. Por
exemplo, um colgio pode ter uma base de dados de alunos para fins
acadmicos e tambm uma base de dados para o controle do RH.
Um sistema de banco de dados compreende a ferramenta utilizada
para criar a base de dados e seus relacionamentos. Alm disso, um
sistema de banco de dados deve possuir uma forma de recuperar os
dados. Isso implementado, na maioria dos casos, por meio da lin- 17
guagem SQL.

Banco de Dados
6) Um SGBD um Sistema Gerenciador de Banco de Dados. Essa
ferramenta possui, alm de um banco de dados (repositrio),
funcionalidades que permitem controlar segurana, controlar con-
corrncia, controlar transaes, realizar backups, definir regras de
integridade, etc.
7) No. O Access no um SGBD porque no possui as caractersticas
de um SGBD. Mas ele considerado um sistema de banco de dados
porque permite armazenar dados, relacionar dados e recuperar esses
dados.
8) A importncia de uma boa modelagem se deve ao fato de que as
aplicaes que estaro acessando a base de dados devem estar em
consonncia com o modelo desenvolvido. muito desanimador e
trabalhoso, depois da base de dados implementada e da aplicao
do usurio desenvolvida, que se perceba a necessidade de alterar o
modelo de dados. A verdade que isso gera um retrabalho, uma
vez que no s a implementao da base ter que ser refeita, mas
tambm os diagramas devero ser atualizados e a aplicao tambm
dever ser atualizada, na maioria dos casos.
9) Um modelo de dados compreende a descrio dos dados que devem ser armazenados
pelo sistema e como esses dados devem se relacionar. Para que seja possvel fazer essa
descrio utilizada uma linguagem de modelagem, que pode ser textual ou grfica.
Um modelo de dados tambm deve explicitar os tipos dos dados armazenados e as
restries que esses dados possuem. Os modelos de dados podem ser basicamente de
dois tipos:
Modelo de dados conceitual, que fornece uma viso mais prxima do modo como
os usurios visualizam os dados realmente.
Modelo de dados lgico, que fornece uma viso mais detalhada do modo como os dados
esto realmente armazenados no computador.
10) Para que o projetista possa desenvolver a base de dados, ele deve ter uma clara com-
preenso do que o usurio espera do sistema, que tipos de relatrios o usurio espera
que o sistema disponibilize, bem como saber quais so os objetivos do sistema. Para
obter essas informaes, deve-se realizar entrevistas com o usurio para entender os
objetivos do sistema e as expectativas que o usurio tem em relao ao mesmo.
Se no houver a participao do usurio, corre-se um grande risco de no final do
projeto os desenvolvedores descobrirem que a base de dados no atende s necessi-
dades do usurio e, portanto, no serve ao propsito inicial.
11) Normalmente, o usurio final a pessoa que ir utilizar a aplicao. Essa aplicao
ir rodar sob uma base de dados. Para o usurio final o importante que a aplicao
consiga se comunicar com a base de dados e permita inserir e recuperar os dados
dessa base. Para ele no interessa como isso foi implementado ou como isso est
sendo realizado. Sendo assim, no h necessidade de que o usurio conhea sobre
18 a rea de banco de dados. Para ele importante que o que foi solicitado funcione
satisfatoriamente.
Banco de Dados

Captulo 2
Orientaes
Nesse captulo o professor deve enfatizar a importncia da modelagem de uma base de
dados e apresentar os principais conceitos para o desenvolvimento do primeiro modelo da base
de dados o modelo de entidade e relacionamento.
importante ressaltar que esse modelo bastante abstrato, mas que tem por obje-
tivo compreender o que o usurio precisa armazenar na base de dados. importante,
tambm, ressaltar aqui que os dados precisam se relacionar. Caso contrrio a base de
dados seria simplesmente um repositrio sem nenhum sentido.
O professor deve deixar claro, por meio de exemplos, o que uma entidade, o que so
atributos, a importncia da definio de uma chave primria em uma entidade e o que uma
entidade fraca.
O professor deve fazer exerccios com os alunos para que eles consigam entender os
conceitos e aplic-los em situaes hipotticas ou mesmo reais.
Respostas pgina 24
1) O DER utilizado para representar graficamente o conjunto de objetos
do Modelo de Entidade e Relacionamento tais como entidades, atribu-
tos, atributos-chaves, relacionamentos, restries estruturais, etc.
Essa representao grfica tem por objetivo descrever quais dados devem
ser armazenados pela aplicao e quais desses dados se relacionam.
2) O DER o primeiro modelo que deve ser construdo durante o processo
de modelagem de uma base de dados. Portanto, deve ser construdo
no incio do projeto e tem por objetivo prover uma viso abstrata dos
dados que estaro armazenados na base de dados. Esta viso inicial
representa a viso que o usurio tem da base de dados. O responsvel
pela construo do DER o projetista da base de dados ou o analista de
sistema.
3) No, o DER no deve mudar depois que a base j estiver implemen-
tada em um SGBD e/ou as aplicaes j estiverem sendo desenvolvidas.
Frequentes alteraes no DER podem levar o projeto ao fracasso, uma
vez que alterando o DER, a implementao da base de dados e a apli-
cao tambm dever ser alterada. Esse retrabalho elevaria o custo do
projeto e tambm iria requerer mais tempo para finalizar o projeto.
Isso ocorre porque dificilmente conseguimos obter independncia de
dados. Essa independncia difcil de alcanar, mas uma vez que se altera
a estrutura (ou esquema) de uma base de dados existe a necessidade de
se alterar tambm as aplicaes que acessam aquela base. Assim, a inde-
pendncia de dados lgica (alterao no esquema lgico de uma base
de dados sem necessidade de alterar outros diagramas ou a aplicao) 19
muito difcil de ser alcanada e, portanto, deve ser evitada.
4) Uma entidade representa um conjunto de objetos de mesmo tipo do

Banco de Dados
mundo real e sobre os quais se pretende armazenar dados. Alm disso,
ela tambm deve possuir um conjunto de propriedades que a caracterize
e a descreva, bem como aos seus objetos.
Exemplos de entidades: Em uma empresa que fabrica e vende mveis
para escritrios podemos definir como entidades: mesas, cadeiras, mar-
ceneiros, clientes, etc.
5) Mesas (altura: numerico; largura: numerico; comprimento: nume-
rico; cor: caracter(20); material: caracter(20)
Cadeiras (largura_do_assento: numerico; rodas: booleano; cor:
caracter(20); descanso_de_braco:booleano)
Marceneiros (nome:caracter(50); data_nascimento:data; tempo_de_
profissao:inteiro; telefone:inteiro)
Clientes (nome:caracter(50), cidade:caracter(50); telefone:inteiro;
CPF:caracter)
6) Atributo simples: o atributo indivisvel, que no pode ou no deve
ser decomposto. Exemplos: nome da rua, cdigo do produto e nome
da cidade.
Atributo composto: o atributo que pode ser decomposto em
outros atributos simples. Exemplos: Nome poderia ser decom-
posto em primeiro nome e sobrenome; Telefone poderia ser
decomposto em DDD e nmero; Prazo de Validade poderia
ser decomposto em dia, ms e ano.
Atributo monovalorado: o atributo que permite apenas o arma-
zenamento de um valor por vez. Exemplos: nome da pessoa, data
de nascimento e RG.
Atributo multivalorado: o atributo que permite armazenar
mais de um valor ao mesmo tempo no mesmo campo. Exemplos:
telefone, e-mail e cidade disponvel.
Atributo nulo: o atributo que permite que seja inserido um valor
nulo para ele. Exemplo: homepage, e-mail e telefone residencial.
Atributo derivado: o atributo cujo valor deriva de outro(s)
atributo(s). Exemplos: valor da multa (deriva do valor unitrio da
multa multiplicado pelos dias de atraso), idade (deriva da data de
nascimento) e valor total da compra (deriva da soma dos preos de
todos os itens comprados).
7) Situao 1: Suponha que em uma locadora de vdeo, um cliente
possa ter at 3 dependentes. Sobre os dependentes, deseja-se arma-
zenar o nome, endereo e telefone. Individualmente, nenhum
desses atributos forma uma chave primria simples e a combinao
deles tambm no forma uma PK composta. Como no possvel
20
definir uma PK para essa entidade, deve-se defini-la como uma
Entidade Fraca.
Banco de Dados

Situao 2: Suponha que em uma instituio de caridade, cada


criana que more na instituio possa ter at 5 padrinhos. Para cada
um desses padrinhos deve-se armazenar: nome, telefone e ende-
reo. Da mesma forma que na situao 1, nenhum desses atributos
individualmente forma uma PK simples e a combinao deles
tambm no forma uma PK composta. Sendo assim, a entidade
Padrinho deve ser definida como Entidade Fraca.
8) Uma chave primria um atributo da entidade que serve para identi-
ficar apenas um objeto dessa entidade. Uma chave primria no permite
valores repetidos e nem valor nulo.
Exemplo 1: CRM do mdico, considerando que o CRM de um
mdico no se repete.
Exemplo 2: nmero da conta corrente, considerando que em um
banco (instituio financeira) no existe mais de uma conta com o
mesmo nmero.
Exemplo 3: cdigo do aeroporto, considerando que o cdigo do
aeroporto no se repete em nenhum outro aeroporto do mundo.
9) No. Isso no pode acontecer porque uma chave primria deve identificar um nico
objeto da entidade. Se ela for nula no poder identificar o objeto.
10)

cod_marca cod_modelo chassi


nome_marca nome_modelo numero_placa
ano_modelo
(1,1) (1,n) (1,1) (1,n) cor
Marca possui Modelo pertence Carro

11) No. A afirmativa est incorreta. A entidade "Endereco" possui apenas uma nica
chave primria composta de trs atributos.

Captulo 3
Orientaes
Nesse captulo o professor deve explicar a importncia de se relacionar os dados em uma
base de dados. Alm disso, deve explicar o conceito de cardinalidade e mostrar como feita a
leitura para descobrir as cardinalidades no modelo. Deve enfatizar que a cardinalidade depende,
muitas vezes, da aplicao desenvolvida e tambm de regras de negcio da empresa.
O professor precisa tambm apresentar conceitos mais avanados do modelo de entidade
e relacionamento que so: agregao e especializao. importante que se enfatize para os alu- 21
nos em que situaes se deve aplicar cada um desses conceitos.
muito importante que durante as explicaes sejam apresentados exemplos e que sejam

Banco de Dados
propostos exerccios para que os alunos possam entender a aplicao dos conceitos em situaes
hipotticas ou reais. Nos exerccios, a aplicao desses conceitos poder ser feita por meio do
desenho do diagrama de entidade e relacionamento.

Respostas pgina 35
1) Na situao apresentada abaixo o relacionamento empresta possui trs atributos
descritivos.

cod_cliente cod_filme
nome_cliente nome_filme
data_emprestimo
(0,n) (0,n) Filme
Cliente

empresta

data_devolucao_prevista

data_devolucao_efetiva
2) Situao 1: Companhia Area. O relacionamento ternrio ocorre
entre avio, piloto e tripulante, como mostrado a seguir.

matricula_comissario matricula_piloto
Comissarios Piloto horas_de_voo
nome_comissario
nome_piloto
(1,n) hora_voo (1,n)

Voo
data_voo
(1,1)
cod_aviao
Aviao
modelo_aviao

Situao 2: Compra de Imveis. O relacionamento ternrio ocorre


entre comprador, corretor e imvel, como mostrado a seguir.

CPF_comprador matricula_corretor
Comprador Corretor telefone_corretor
nome_comprador
nome_corretor
(1,n) valor_compra (1,n)
compra
data_compra
(1,n)
cod_imovel
numero_rua_imovel
Imovel
bairro_imovel
rua_imovel

22
3) Poderamos criar trs relacionamentos no lugar do relacionamento
ternrio do exerccio 2 (situao 2). No entanto, esses trs relaciona-
Banco de Dados

mentos dificilmente sero equivalentes ao relacionamento ternrio,


como mostrado a seguir:

matricula_corretor
CPF_comprador telefone_corretor
nome_comprador nome_corretor
(0,n) (1,n)
Comprador negocia Corretor

(1,n) (1,n)

compra (0,n) (0,n) realiza compra


Imovel

bairro_imovel
rua_imovel
numero_rua_imovel
cod_imovel
A melhor opo, neste caso, criar uma entidade para o relacionamento
ternrio. Assim, o modelo ser exatamente o mesmo e ir representar
exatamente a mesma situao anterior.

matricula_corretor
CPF_comprador
Comprador Corretor telefone_corretor
nome_comprador
nome_corretor
(1,1) (1,n)
data_compra
valor_compra
cod_compra

adquire (0,n) (0,n) realiza


Compra

(1,1)
possui
(1,1)
cod_imovel
Imovel numero_rua_imovel
bairro_imovel
rua_imovel

Observao: O mesmo ocorre para a situao 1 do exerccio 2.


4) Situao 1: Suponha que em uma base de dados tenhamos uma enti-
dade que armazena livros. No entanto, quando um desses livros deixa de
ser publicado necessrio cadastrar uma substituio para ele. Essa subs-
tituio se refere a um novo livro que ser indicado no lugar daquele que 23
est fora de publicao. Neste caso, cria-se um relacionamento recursivo
que cadastra essa substituio, como mostrado a seguir:

Banco de Dados
editora
titulo
ISBN livro

(0,n) substitui
Livro
(0,n) e substituido substituicao

Situao 2: Imagine que exista uma entidade chamada departamento,


em que cada departamento est subordinado a outro. Para saber qual depar-
tamento est subordinado e quem o seu departamento superior, devemos
utilizar um relacionamento recursivo, como mostrado a seguir:

numero_depto
nome_depto
sigla_depto

(0,n) supervisiona
Departamento
(0,n) e supervisionado superior
5) No. Como um relacionamento recursivo representa o relacionamento entre objetos
de uma mesma entidade, se tentarmos reescrever o modelo acrescentando outra enti-
dade, teremos duplicidade de dados.
Na situao 2 do exerccio 4 observa-se que um mesmo departamento pode ser super-
visor e estar supervisionado a outro departamento (ao mesmo tempo). Sendo assim,
utilizamos o relacionamento recursivo para que no seja necessrio duplicar os dados
de departamento em duas entidades distintas. O mesmo ocorre para a situao 1.
6) Para utilizar uma especializao deve-se analisar antes se as entidades filhas possuem
atributos especficos ou relacionamentos especficos ou ainda outra especializao,
como mostra o exemplo a seguir:
CPF_pessoa
Pessoa nome_pessoa
telefone_pessoa

(1,n) (1,n)
Corretor Comprador Proprietario possui Imovel

CRECI estado_civil valor_imovel


area_total
data_admissao profissao
numero_inscricao

7) Se a entidade filha no tiver nem atributo especfico, nem relacionamento especfico,


nem outra especializao, ento ela deve passar por um processo de generalizao.
24 A generalizao o processo inverso da especializao. Ao invs de subdividir a
entidade, criada uma entidade mais genrica e adicionado um atributo chamado
tipo que identifica o tipo do objeto da entidade genrica.
Banco de Dados

Suponha que em uma loja seja necessrio armazenar o tipo de pagamento do cliente.
No entanto, o cliente s pode pagar em dinheiro ou no carto de dbito. Assim,
todo o pagamento feito vista e no pode ser parcelado. Neste caso, no h neces-
sidade de subdividir a entidade Pagamento em entidades filhas como Pagamento
em Dinheiro e Pagamento com Cartao. Ser criado apenas o atributo tipo_paga-
mento na entidade Pagamento, como mostrado a seguir:

codigo_pagto
Pessoa valor_pagto
data_pagto
tipo_pagamento

8) Verificar o exemplo do Livro no captulo 3, figura 3.13.


9) Verificar o exemplo do Livro no captulo 3, figura 3.14.
10) A soluo mais simples seria utilizar um atributo do tipo booleano que diz se o empre-
gado gerente ou no.
matricula_empregado
nome_empregado
Empregado
salario
flag_gerente
Outra soluo criar uma entidade chamada Tipo Empregado que identifica o tipo do
empregado (se gerente, supervisor, etc.).

matricula_empregado
cod_tipo
nome_empregado
nome_tipo
salario
(1,1) (1,1)
Tipo Empregado e de um Empregado

Tambm pode-se utilizar uma especializao. Neste caso, poderamos inclusive armaze-
nar a data em que o funcionrio comeou a gerenciar o departamento e a data em que ele
deixou de ser gerente.

matricula_empregado
nome_empregado
salario

Empregado

25

data_inicio
Gerente

Banco de Dados
data_fim

11)

cod_area cod_emprestimo matricula_aluno


Area data_emprestimo nome_aluno
nome_area
(1,1) data_devolucao_prevista telefone_aluno
data_devolucao_efetiva turma_aluno
pertence (0,n) (1,1)
Emprestimo/Devolucao realiza Aluno
(0,n) (0,n)
Livro (1,1)
possui

ano_publicacao_livre
editora_livro
autor_autor (1,n)
nome_livro
ISBN_livro
12)

descricao_modelo (1,n) pertence (1,n) cod_marca


Modelo Marca
cod_modelo nome_marca
(1,1)

pertence

(1,n)
ano_fabricacao cor matricula
Carro placa Corretor nome_corretor
quilometragem
chassi data_admissao
(0,n) valor_comissao (0,n)
data_venda
venda
CPF_conjuge
valor_venda
nome_conjuge
(0,n)
CPF_comprador (1,1) (0,1)
nome_comprador Comprador possui Conjuge
estado_civil_comprador

Captulo 4
Orientaes
O professor deve falar sobre SGBD relacionais e apresentar os mais utilizados no mercado.
Pode, ainda, falar sobre SGBD relacionais gratuitos e compar-los com os SGBD proprietrios.
26 importante que o professor fale um pouco sobre isso para justificar o estudo de um modelo
relacional.
Em seguida, o professor dever apresentar os principais conceitos do modelo relacional,
Banco de Dados

destacando bastante o conceito de chave estrangeira e sua importncia na definio da integri-


dade referencial de uma base de dados.
As regras de converso do diagrama de entidade e relacionamento para o modelo relacio-
nal devem ser apresentadas gradualmente e sempre com exemplos a ser resolvidos no quadro
junto com os alunos. Essa a melhor forma de explicar-lhes as regras para que melhor as
compreendam.

Respostas pgina 48
1) Uma chave estrangeira um atributo da tabela que faz referncia a uma chave pri-
mria de outra tabela ou da prpria tabela. Exemplo:

tbDepartamento(codigo_depto:inteiro,nome_depto:caracter(20), sigla_
depto: caracter(5))

tbProjeto(numero_projeto:inteiro,
chave estrangeira nome_projeto:caracter(20, codigo_
depto: inteiro)

codigo_depto referencia tbDepartamento


2) A Integridade Referencial que garante que no se faa referncia a valores que no exis-
tam na base de dados
3) A chave estrangeira garante que o valor digitado para este atributo seja um valor cadas-
trado em sua primria correspondente. Sendo assim, a chave estrangeira sempre ir se
referir a um valor j existente na base de dados.
4) Sim. Em uma tabela o valor armazenado para uma chave estrangeira pode aparecer quan-
tas vezes for necessrio. O valor nulo tambm permitido, mas quando isso acontece
no existe o relacionamento entre o registro que possui a chave estrangeira nula e sua
correspondente primria.
5) Porque quando o valor da chave estrangeira nulo no h referncia e, portanto, existe
um registro que no est relacionado.
6) Ele deve excluir tambm todos os registros da Tabela tbAluno que fazem referncia a
1TI. Caso contrrio, TbAluno far referncia a uma turma que no existe mais.
7)

tbCidade (codigo:inteiro, nome:caracter(30), UF:caracter(2))

tbFuncionario (matricula:inteiro, RG:caracter(9), nome:caracter(50),


sexo:caracter(1), telefone:numerico(10), codigo_loja:inteiro)
codigo_loja referencia tbLoja

tbLoja (codigo:inteiro, nome:caracter(30), telefone:numerico(10),


codigo_cidade:inteiro, matricula_funcionario_gerente:inteiro)
codigo_cidade referencia tbCidade
27
codigo_funcionario_gerente referencia tbFuncionario

tbFabricante (codigo:inteiro, nome:caracter(30), CNPJ:inteiro,

Banco de Dados
fone:numerico(10), codigo_cidade:inteiro)
codigo_cidade referencia tbCidade

tbProduto (codigo:inteiro, descricao:caracter(50), preco_unitario:real,


codigo_fabricante:inteiro)
codigo_fabricante referencia tbFabricante

tbVenda (codigo_venda:inteiro, valor_total:real, data_venda:data,


matricula_funcionario:inteiro)
codigo_funcionario referencia tbFuncionario

tbItens_venda (codigo_venda:inteiro, codigo_produto:inteiro, valor_item:real,


quantidade:inteiro)
codigo_venda referencia tbVenda
codigo_produto referencia tbProduto
8)

UF_cidade nome_loja
nome_cidade codigo_loja
codigo_cidade telefone_loja
(1,1) (1,n) (1,1)
Cidade localiza-se Loja
(1,1) (0,1)

pertence gerencia trabalha

(1,n) (1,1)
telefone_fabricante (1,n)
Fabricante CNPJ RG matricula
nome_fabricante Funcionario telefone_funcionario
sexo
codigo_fabricante nome_funcionario
(1,1) (1,1)

fabrica realiza

(1,n) valor_item (0,n)


(1,n) (1,n) codigo_venda
Produto Itensvenda Venda valor_venda
data_venda
quantidade_item
preco_unitario_produto
descricao_produto
codigo_produto

28
9)
Banco de Dados

tbCidade (nome_cidade:caracter(30), UF:caracter(2),


regiao:caracter(15))

tbCliente (CPF_cliente:caracter(11), nome_cliente:caracter(50),


data_nascimento_cliente:data)

tbLivro (ISBN:caracter(11), titulo_livro:caracter(50), genero_livro:caracter(20),


valor_livro:real)

tbVenda (codigo_venda:inteiro, valor_vendal:real, data_venda:data,


quantidade_venda:inteiro, nome_cidade:caracter(30), UF:caracter(2),
CPF_cliente:caracter(11), ISBN:caracter(11))
(nome_cidade, UF) referencia tbCidade
CPF_cliente referencia tbCliente
ISBN referencia tbLivro

tbAutor (codigo_autor:inteiro, nome_autor:caracter(50),


sexo_autor:caracter(1))

tbLivroAutor (codigo_autor:inteiro, ISBN:inteiro)


ISBN referencia tbLivro
codigo_autor referencia tbAutor
10)
tbDepartamento(numero_depto:inteiro, nome_depto: caracter(20))

tbProjeto(numero_projeto:inteiro, nome_projeto:caracter(20),
numero_depto:inteiro)
numero_depto referencia tbDepartamento

tbEmpregado(matricula_emp:inteiro, CPF_emp:caracter(11),
nome_emp:caracter(50), fone_emp:numerico(10), matricula_emp_supervisor:inteiro,
numero_depto:inteiro)
numero_depto referencia tbDepartamento
matricula_emp_supervisor referencia tbEmpregado

tbEmpregadoProjeto(matricula_emp:inteiro, numero_projeto:inteiro,
horas:time)
matricula_emp referencia tbEmpregado
numero_projeto referencia tbProjeto

tbDependente (matricula_emp:inteiro, nome_dependente:caracter(50),


sexo_dependente:caracter(1), data_nascimento:data)
matricula_emp referencia tbEmpregado

Captulo 5
Orientaes
O captulo 5 tem por objetivo apresentar a finalizao da etapa de modelagem: que com-
preende a converso para o modelo relacional, a normalizao do modelo (caso o mesmo ainda
29
no esteja normalizado) e a criao do dicionrio de dados da base de dados. Tambm apre-
sentado aqui o Diagrama do Modelo Relacional.

Banco de Dados
No incio desse captulo, so apresentadas trs regras de como converter uma especializao
para o modelo relacional. importante que o professor explique claramente e d exemplos de qual
a forma mais adequada para cada situao, enfatizando os prs e os contras de cada abordagem.
Em relao normalizao, neste livro foram explicadas apenas as trs principais formas
normais. Nada impede que o professor (havendo tempo para isso) explique outras formas nor-
mais. O importante que sejam dados exemplos e que sejam feitos exerccios para uma maior
compreenso do que foi explicado.
Quando o professor for explicar as colunas do dicionrio de dados, j pode introduzir o
conceito de restrio de integridade. Esse conceito deve ser revisado no captulo 7, quando ser
explicado a Sql DDL.

Respostas pgina 59
1) A transformao de uma especializao do modelo de ER para o modelo relacional pode
ser feita de 3 diferentes modos:
1o Criar uma tabela nica com o nome da entidade pai e essa tabela ir conter: todos os atributos
das entidades pai (genrica), os atributos da(s) entidade(s) filha(s) (entidades especializadas),
atributos referentes a possveis relacionamentos e um atributo chamado tipo que identifi-
car qual entidade especializada est sendo representada em uma linha. A chave primria dessa
tabela ser a prpria chave primria da entidade pai apenas para a entidade pai.
2o Criar tabelas apenas para as entidades filhas. Assim, cada entidade filha que virar uma tabela
ter como atributos tantos os seus atributos especficos e de seus relacionamentos diretos
quanto os dados da entidade pai mais os dados dos relacionamentos de outras entidades com a
entidade pai. A chave primria de cada uma das tabelas especializadas ser a chave primria da
entidade pai.
3o Criar uma tabela para cada entidade (tanto entidade pai, quanto filhas). Assim, cada tabela
ter seus atributos especficos e os atributos dos seus relacionamentos. As tabelas referentes s
entidades filhas tambm recebero como chave estrangeira a chave primria da entidade pai.
A chave primria para cada entidade filha ser a chave estrangeira, que neste caso ter as duas
funes (PK e FK). Caso exista algum atributo que identifique unicamente a entidade filha
ele poder ser escolhido como chave primria e a chave primria da entidade pai passa apenas
como chave estrangeira.
2) A primeira abordagem ir conter muitos valores nulos, uma vez que dado o tipo do objeto
somente os atributos referentes quele objeto sero preenchidos. Por isso, nem todos os atri-
butos sero obrigatrios. Por outro lado, essa primeira abordagem tem a vantagem de dispensar
a necessidade de juno entre tabelas, uma vez que os dados esto todos na mesma tabela.
3) A segunda abordagem pouco recomendada porque pode gerar redundncia de dados uma
vez que os dados da entidade genrica so repetidos em todas tabelas especializadas. Assim, se
uma pessoa for tanto professor como aluno, teremos as informaes referentes a essa pessoa
repetida nas duas tabelas. Portanto, essa abordagem s deve ser utilizada quando tivermos uma
especializao exclusiva, ou seja, uma pessoa ou do tipo aluno ou do tipo professor.
4) A terceira abordagem tem a vantagem de evitar os valores nulos que aparecem na primeira
30 abordagem e ainda no permitir a duplicidade como na segunda abordagem.
5)
Banco de Dados

tbCategoria(codigo_categoria:inteiro, nome_categoria:caracter(20))

tbProduto(codigo_produto:inteiro, nome_produto:caracter(30),
valor_produto:real)

tbLimpeza(codigo_produto:inteiro, superficie:caracter(10))
codigo_produto referencia tbProduto

tbAlimentoPerecivel(codigo_produto:inteiro, conservacao:caracter(15),
data_validade:data, tipo_alimento:booleano, codigo_categoria:inteiro)

codigo_produto referencia tbProduto


codigo_categoria referencia tbCategoria

Obs.: Para este exemplo o atributo tipo_alimento poderia ter sido omitido, uma vez
que a entidade pai Alimento s se especializa em uma nica outra entidade (que
a entidade Perecivel).
6)
tbCategoria tbProduto
codigo_categoria:inteiro codigo_produto:inteiro
nome_categoria:caracter(20) nome_produto:caracter(30)
(1,1) valor_produto:real
(1,n) (1,1) (1,1)
tbAlimento_Perecivel
data_validade:data
codigo_produto:inteiro (0,n)
(0,n)
conservacao:caracter(15) tbLimpeza
codigo_categoria:inteiro superficie:caracter(10)
tipo_alimento:booleano codigo_produto:inteiro

7) Neste exerccio o aluno deve escrever o que ele entendeu sobre cada uma das restries
solicitadas no exerccio. Abaixo segue as definies que a autora apresentou.
Nulo: define se um atributo permite ou no o valor nulo, ou seja, define se o atributo
ser obrigatrio ou no.
Domnio ou Regra de Domnio: define quais valores sero permitidos cadastrar para
um atributo.
Chave Primria: permite identificar um nico registro de uma tabela. No permite
valores repetidos ou nulos.
Chave Estrangeira: garante a integridade referencial da base de dados, pois no permite
que sejam inseridos valores diferentes dos j inseridos em sua primria correspondente.
Default: permite que seja inserido um valor padro caso o usurio no digite nada para o
campo. 31
Unique: aplicada apenas para atributos que no so chave primria e que no podem se
repetir.

Banco de Dados
8)
tbEscola tbPessoa tbContato
cidade_escola:caracter(20) telefone_pessoa:numerico(10) fone_contato:numerico(10)
nome_escola:caracter(50) nome_pessoa:caracter(50) nome_contato:caracter(50)
codigo_escola:inteiro RG_pessoa:caracter(9) matricula_aluno:inteiro
(1,1) (1,1)
matricula_diretor:inteiro (1,n)
(0,1) (1,1) (0,n)
(1,1) (1,n) tbAluno
tbProfessor data_nascimento_aluno:data
CPF_professor:caracter(11) matricula_aluno:inteiro
(0,n) (1,1)
escolaridade:caracter(10) possui_matricula_aluno:inteiro
matricula_professor:inteiro RG_pessoa:caracter(9)
RG_pessoa:caracter(9) codigo_turma:inteiro
codigo_escola:inteiro (1,n)

(1,1) (1,n)
tbMinistra
ano_numerico(4) (1,1)
tbDisciplina matricula_professor:inteiro tbTurma
(1,1) (1,n) (1,n) (1,1)
codigo_disciplina:inteiro nome_turma:caracter(5)
codigo_turma:inteiro
nome_disciplina:caracter(20) codigo_turma:inteiro
codigo_disciplina:inteiro
9) a.

1FN: a tabela est na Primeira Forma Normal.


2FN: necessrio normalizar porque o atributo nome_motorista depende apenas
de parte da PK.

tbMotorista(CPF_motorista, nome_motorista)

tbAcidente(numero_placa_carro, CPF_motorista, total_de_danos,


data_acidente)

CPF_motorista referencia tbMotorista

3FN: as tabelas j esto na Terceira Forma Normal, portanto o modelo ficar com
duas tabelas

b.

1FN: necessrio normalizar porque existem atributos multivalorados e grupos de


atributos repetidos.

tbPaciente(codigo_paciente, nome_paciente, codigo_convenio,


nome_convenio)
32 tbTelefonePaciente(fone_paciente, codigo_paciente)

codigo_paciente referencia tbPaciente


Banco de Dados

tbPacienteMedico(codigo_paciente, CRM_medico, nome_medico,


data_consulta)

codigo_paciente referencia tbPaciente

tbPacienteExame(codigo_paciente, codigo_exame, nome_exame,


diagnostico_principal)

codigo_paciente referencia tbPaciente

2FN: necessrio normalizar as tabelas tbPacienteMedico e tbPacienteExame. As tabe-


las tbPaciente e tbTelefonePaciente apenas sero repetidas.

tbMedico(CRM_medico, nome_medico)

tbPacienteMedico(codigo_paciente, CRM_medico, data_consulta)

codigo_paciente referencia tbPaciente


CRM_medico referencia tbMedico

tbExame(codigo_exame, nome_exame)
tbPacienteExame(codigo_paciente, codigo_exame, diagnostico_principal)

codigo_paciente referencia tbPaciente


codigo_exame referencia tbExame

3FN: necessrio normalizar a tabela tbPaciente para eliminar dependncias transitivas.

tbConvenio(codigo_convenio, nome_convenio)

tbPaciente(codigo_paciente, nome_paciente, codigo_convenio)

codigo_convenio referencia tbConvenio

O modelo final ficar assim:

tbConvenio(codigo_convenio, nome_convenio)

tbPaciente(codigo_paciente, nome_paciente, codigo_convenio)

codigo_convenio referencia tbConvenio

tbTelefonePaciente(fone_paciente, codigo_paciente)

codigo_paciente referencia tbPaciente

tbMedico(CRM_medico, nome_medico)

tbPacienteMedico(codigo_paciente, CRM_medico, data_consulta)


33
codigo_paciente referencia tbPaciente
CRM_medico referencia tbMedico

Banco de Dados
tbExame(codigo_exame, nome_exame)

tbPacienteExame(codigo_paciente, codigo_exame, diagnostico_principal)

codigo_paciente referencia tbPaciente


codigo_exame referencia tbExame

10) a.

1FN: necessrio normalizar porque existem grupos de atributos repetidos.

tbAluno(cod_aluno, nome_aluno, sexo_aluno, data_nascimento_aluno,


codigo_curso, nome_curso, nome_diretor)

tbAlunoDisciplina (cod_aluno, codigo_disciplina, nome_disciplina,


nota_disciplina)
cod_aluno referencia tbAluno
2FN: necessrio normalizar a tabela tbAlunoDisciplina. A tabela tbAluno apenas ser
repetida.

tbDisciplina (codigo_disciplina, nome_disciplina)


tbAlunoDisciplina (cod_aluno, codigo_disciplina, nota_disciplina)
cod_aluno referencia tbAluno

3FN: necessrio normalizar a tabela tbAluno para eliminar dependncias transitivas.

tbCurso(codigo_curso, nome_curso, nome_diretor)


tbAluno(cod_aluno, nome_aluno, sexo_aluno, data_nascimento_aluno,
codigo_curso)
codigo_curso referencia tbCurso

O modelo final ficar assim:

tbCurso(codigo_curso, nome_curso, nome_diretor)


tbAluno(cod_aluno, nome_aluno, sexo_aluno, data_nascimento_aluno,
codigo_curso)
codigo_curso referencia tbCurso
tbDisciplina (codigo_disciplina, nome_disciplina)
tbAlunoDisciplina (cod_aluno, codigo_disciplina, nota_disciplina)
cod_aluno referencia tbAluno

34

O DER para o modelo relacional normalizado ser:


Banco de Dados

data_nascimento_aluno
sexo_aluno
nome_aluno
codigo_aluno
codigo_curso
Aluno (1,n) faz (1,1) Curso nome_diretor
codigo_curso
(1,n)

AlunoDisciplina nota_disciplina

nome_disciplina
(1,n) disciplina
codigo_disciplina

b. A letra b do exerccio 10 deve ser feito da mesma forma que na letra a (passo a
passo) para que o aluno possa entender a soluo.
Captulo 6
Orientaes
Esse captulo tem por objetivo colocar em prtica todos os conceitos estudados at o
captulo 5. Para isso, apresentada uma situao e, a partir dela, ser construdo o Diagrama de
ER, a Descrio do Modelo Relacional, o Diagrama do Modelo Relacional e o Dicionrio de
Dados. Alm disso, as regras de normalizao so aplicadas no intuito de validar se o modelo
est mesmo normalizado.
O professor poder criar outras situaes para os alunos desenvolverem passo-a-passo a
modelagem ou propor um projeto em que os alunos procurem um cliente real e desenvolvam
todo o projeto de uma base de dados para satisfazer as necessidades desse cliente.
Esse tipo de exerccio importante para que o aluno consiga entender e integrar todas as
etapas de modelagem de uma base de dados em um nico projeto.

Respostas pgina 69
Como as descries para os exerccios do captulo 6 so informais, elas podem ter diferentes
interpretaes. Por este motivo, no existe somente uma soluo correta, mas os diagramas
devem refletir de forma coerente a descrio.
A descrio do modelo relacional somente foi feita no exerccio 2, porque representa a
mesma coisa que o Diagrama do Modelo Relacional (foi omitido propositalmente o domnio dos
atributos nessa descrio). Os alunos devem fazer a descrio e o diagrama do modelo relacional
como uma forma de treinamento e fixao. Nas provas, pode ser cobrado apenas um deles.
Os exerccios 5, 6, 7, 8, 9 e 10 no apresentam resposta porque espera-se que o professor resolva
estes exerccios junto com os alunos em sala de aula. O mais interessante que vrias solues sero
propostas pelos alunos e cabe ao professor destacar vantagens e desvantagens dessas solues.
Todos os modelos relacionais apresentados como soluo esto normalizados, conside-
rando-se as trs formas normais (1FN, 2FN e 3FN). 35

1)

Banco de Dados
telefone_cliente valor_final valor_parcela
CPF_cliente desconto data_vencimento_parcela
nome_cliente codigo_pagamento codigo_parcela

Cliente (1,1) realiza (1,n) Pagamento (1,1) possui (0,n) Parcela

CNPJ (1,1)
nome_fornecedor
telefone_fornecedor possui

Fornecedor (1,1) matricula


data_venda nome_funcionario
(1,1) codigo_venda Venda (0,n) faz (1,1) funcionario RG_funcionario
valor_sem_desconto CPF_funcionario
telefone_funcionario
fornece (1,1)
possui
(1,n)
(1,n)
codigo_item
Medicamento (1,1) representa (1,n)
Itens_de_venda valor_item_quantidade
quantidade

valor_unitario
nome_medicamento
tipo_medicamento
codigo_medicamento
data_validade
2)

Descrio do Modelo Relacional:

tbCliente(CPF_cliente, nome_cliente, telefone_cliente)


tbFornecedor(CNPJ, nome_fornecedor, telefone_fornecedor)
tbFuncionario(matricula, nome_funcionario, telefone_funcionario,
RG_funcionario, CPF_funcionario)
tbMedicamento(codigo_medicamento, nome_medicamento, data_validade,
valor_unitario, tipo_medicamento, CNPJ)
CNPJ referencia tbFornecedor
tbVenda(codigo_venda, valor_sem_desconto, data_venda,
matricula_funcionario)
matricula_funcionario referencia tbFuncionario
tbItensVenda(codigo_item, valor_item_quantidade, quantidade, codigo_venda,
codigo_medicamento)
codigo_venda referencia tbVenda
codigo_medicamento referencia tbMedicamento
tbPagamento(codigo_pagto, valor_final, desconto, CPF_cliente,
codigo_venda)
CPF_cliente referencia tbCliente
codigo_venda referencia tbVenda
tbParcela(codigo_parcela, valor_parcela, data_vencimento_parcela,
codigo_pagto)
36 codigo_pagto referencia tbPagamento
Banco de Dados

Diagrama do Modelo Relacional


tbCliente tbPagamento tbParcela
telefone_cliente: numerico(10) codigo_pagamento: inteiro codigo_parcela: inteiro
(1,1) (1,n) (1,1)
CPF_cliente: caracter(11) desconto: real valor_parcela: real
(0,n)
nome_cliente: caracter(50) valor_final: real data_vencimento_parcela: data
CPF_cliente: caracter(11) codigo_pagamento: inteiro
codigo_venda: inteiro
(1,1)
(1,1)
tbFornecedor tbVenda tbFuncionario
CNPJ: inteiro codigo_venda: inteiro telefone_funcionario: numerico(10)
nome_fornecedor: caracter(50) data_venda: data (0,n) CPF_funcionario: caracter(11)
telefone_fornecedor: numerico(10) valor_sem_desconto: real (1,1) RG_funcionario: caracter(9)
(1,1) matricula: inteiro nome_funcionario: caracter(50)
(1,n) (1,1) matricula: inteiro
tbMedicamento (1,n)
data_validade: data tbItens_de_venda
nome_medicamento: caracter(30) codigo_item: inteiro
codigo_medicamento: inteiro quantidade: inteiro
valor_unitario: real (1,1) (1,n) valor_item_quantidade: real
tipo_medicamento: caracter(1) codigo_venda: inteiro
CNPJ: inteiro codigo_medicamento: inteiro
3)

atende
CRM CPF_paciente
nome_medico RG_paciente
especialidade nome_paciente

Medico (1,1) Paciente (1,1) possui


(0,n)

(0,1) numero_prontuario

Prontuario data_abertura
numero_carteirinha
(1,1)
Paciente_SUS Paciente_Particular possui

(0,n) nome_convenio (0,n) (0,n)


codigo_particular sintomas
MedicoPacienteMedicamento (0,n) RegistroConsulta diagnostico
posologia
nome_medicamento codigo_registro
codigo_medicamento (0,n)

(0,n) Medicamento (0,n) MedicamentoRegistro ExameRegistro


(1,n)
(0,n)
(1,1) codigo_exame
Fornecedor fornece Exame nome_exame
tipo_exane
codigo_fornecedor
nome_fornecedor
CNPJ
telefone_fornecedor

4) 37
(1,1)
tbMedico
tbPaciente tbProntuario
CRM: inteiro
CPF_paciente: caracter(11) numero_prontuario:inteiro

Banco de Dados
nome_medico: caracter(50) (1,1) (1,1) (0,1)
RG_paciente: caracter(9) data_abertura: data
especialidade: Texto(1)
nome_paciente: caracter(50) CPF_paciente: caracter(11)
(0,1) (1,1) (1,1)
(0,n)
tbPaciente_SUS
(0,n) (0,n)
numero_carteirinha: inteiro
tbRegistroConsulta
CPF_paciente: caracter(11) (0,n)
(0,1) sintomas: caracter(200)
(0,n) tbPaciente_Particular
diagnostico: caracter(200)
nome_convenio: caracter(50)
tbMedicoPacienteMedicamento codigo_registro: inteiro
codigo_particular: inteiro numero_prontuario: inteiro
numero_carteirinha: inteiro (0,n)
CPF_paciente:caracter(11) CRM: inteiro
codigo_medicamento: inteiro
(1,1) (1,1)
CRM: inteiro
(0,n) tbMedicamentoRegistro
codigo_registro: inteiro (0,n)

codigo_medicamento: inteiro
tbMedicamento (0,n)
(0,n)
posologia: caracter(50)
tbExameRegistro
(0,1) nome_medicamento: caracter(50) (1,1)
codigo_registro: inteiro
codigo_medicamento: inteiro
codigo_exame: inteiro
codigo_fornecedor: inteiro (0,n)
(1,n)

tbFornecedor tbExame
telefone_fornecedor: numerico(10) codigo_exame: inteiro (1,1)
CNPJ: inteiro (1,1) nome_exame: caracter(50)
codigo_fornecedor: inteiro tipo_exame: caracter(30)
nome_fornecedor: caracter(50)
Captulo 7
Orientaes
Uma vez que os modelos de dados (conceitual e lgico) esto prontos, a prxima etapa
do desenvolvimento de um projeto de banco de dados a implementao do modelo em um
SGBD relacional. Para fazermos a implementao, teremos que utilizar uma linguagem prpria
para banco de dados chamada Linguagem SQL.
O professor dever apresentar um pequeno histrico da linguagem SQL e, em seguida,
apresentar a linguagem Sql para definio da base de dados (DDL). Deve tambm explicar
os principais comandos da DDL (CREATE, ALTER e DROP) e destacar que, antes de criar as
tabelas, deve-se criar a base de dados.
Quando o professor for explicar sobre a criao de tabelas, necessrio retomar o conceito
de restries de integridade e mostrar aos alunos como se define essas restries usando Sql.
Como estamos falando sobre a definio da base de dados, o professor necessitar abordar
tambm o conceito de ndices, tipos de ndices e vantagens de se utilizar ndices.

Respostas pgina 84
1)

ano codigo_classe
codigo_categoria nome_classe
nome_titulo
nome_categoria codigo_titulo preco_classe

Categoria (1,1) pertence (1,n) Titulo (1,n) pertence (1,1) Classe

38 (1,1)

UF_cliente
Banco de Dados

cidade_cliente possui
codigo_cliente
cliente CPF_cliente
nome_cliente (1,n)
data_cadastro
(0,n) codigo_filme
Filme
nome_distribuidor
(0,n)

data_emprestimo
valor_multa
EmprestimoDevoluo
data_devolucao_prevista
data_devolucao_efetiva

2) A criao de ndices em uma tabela o principal mtodo de otimizao de que os SGBD


oferecem. Isso porque a execuo de consultas que utilizam atributos indexados , na
maioria dos casos, mais rpidas do que as buscas por campos no indexados. Assim,
pode-se utilizar um ndice quando for desejvel melhorar o desempenho das consultas.
3) Deve-se indexar atributos que tenham poucos valores que se repetem. Quanto mais sele-
tivo for o atributo, mais vantajoso ser indexar o campo. Como o atributo sexo tem apenas
dois valores possvel (F ou M) ele no til como ndice.
4)
CREATE DATABASE dbEmpresa

5) Devem ser criadas primeiramente as tabelas que no possuem FK. Se a tabela tem uma
FK, esta FK deve fazer referncia a uma tabela que j foi criada. No nosso exerccio a
ordem para criao das tabelas : 1o tbGerente; 2o tbCompanhia; 3o tbEmpregado; e
4o tbTrabalha.
6)

CREATE TABLE tbGerente


(cod_gerente INT,
nome_gerente VARCHAR(20) NOT NULL,
CONSTRAINT pk_tbGerente PRIMARY KEY (cod_gerente)
);

CREATE TABLE tbCompanhia


(cod_companhia INT,
nome_companhia VARCHAR(20) NOT NULL,
cidade_companhia VARCHAR(20), 39
CONSTRAINT pk_tbCompanhia PRIMARY KEY (cod_companhia)
);

Banco de Dados
CREATE TABLE tbEmpregado
(cod_emp INT,
nome_emp VARCHAR(50) NOT NULL,
rua_emp VARCHAR(30),
cidade_emp VARCHAR(20),
fone_emp NUMERIC(10),
cod_gerente INT,
CONSTRAINT pk_tbEmpregado PRIMARY KEY (cod_emp),
CONSTRAINT fk_tbEmpregado_tbGerente FOREIGN KEY (cod_gerente)
REFERENCES tbGerente (cod_gerente) ON DELETE CASCADE ON UPDATE
CASCADE
);

CREATE TABLE tbTrabalha


(cod_emp INT,
cod_companhia INT,
salario FLOAT,
CONSTRAINT pk_tbTrabalha PRIMARY KEY (cod_emp,cod_companhia),
CONSTRAINT fk_tbTrabalha_tbEmpregado FOREIGN KEY (cod_emp)
REFERENCES tbEmpregado (cod_emp) ON DELETE CASCADE ON UPDATE
CASCADE,
CONSTRAINT fk_tbTrabalha_tbCompanhia FOREIGN KEY (cod_companhia)
REFERENCES tbCompanhia (cod_companhia) ON DELETE CASCADE ON
UPDATE CASCADE
);

7)

CREATE INDEX idx_NomeEmpregado
ON tbEmpregado (nome_emp);

8)
CREATE UNIQUE INDEX idx_NomeCompanhia
ON tbCompanhia (nome_companhia);

9)
40 ALTER TABLE tbGerente
ADD telefone_gerente VARCHAR(10);
Banco de Dados

10)

DROP TABLE tbGerente;

Captulo 8
Orientaes
Depois que o esquema da base de dados com suas tabelas e restries foi criado atravs
de comandos DDL, podemos comear a inserir os dados dentro da nossa base de dados. Para
fazermos isso, usamos os comandos DML. Os comandos DML nos permitem inserir, alterar,
excluir e consultar dados na nossa base de dados.
Esse captulo completamente prtico e deve ser ensinado no laboratrio em um SGBD.
importante que os alunos consigam visualizar o que est acontecendo na prtica e que enten-
dam como funciona cada comando.
importante dar bastante nfase ao comando INNER JOIN e explicar a diferena desse
comando em relao ao produto cartesiano (que ainda bastante utilizado, mas vem sendo
substitudo pelo INNER JOIN).
Respostas pgina 97
Os exerccios dos captulos 8, 9 e 10 podem ser escritos na SQL de diferentes formas. As
solues apresentadas neste manual so apenas sugestes.
Observao: Utilize comandos SQL para resolver os exerccios. Se houver a necessidade
de utilizar mais de uma tabela em uma consulta, utilize o INNER JOIN ao invs do produto
cartesiano.

1)

CREATE TABLE tbSala


(numero_sala INT,
descricao_sala VARCHAR(20) NOT NULL,
capacidade INT,
CONSTRAINT pk_tbSala PRIMARY KEY (numero_sala)
);

CREATE TABLE tbDiretor


(codigo_diretor INT,
nome_diretor VARCHAR(20) NOT NULL,
CONSTRAINT pk_tbDiretor PRIMARY KEY (codigo_diretor)
);
41
CREATE TABLE tbFilme
(codigo_filme INT,

Banco de Dados
nome_filme VARCHAR(50) NOT NULL,
ano_lancamento INT,
categoria_filme VARCHAR(20),
codigo_diretor INT,
CONSTRAINT pk_tbFilme PRIMARY KEY (codigo_filme),
CONSTRAINT fk_tbFilme_tbDiretor FOREIGN KEY (codigo_diretor)
REFERENCES tbDiretor (codigo_diretor) ON DELETE CASCADE ON
UPDATE CASCADE
);

CREATE TABLE tbSalaFilme


(numero_sala INT,
codigo_filme INT,
data DATE,
horario TIME,
CONSTRAINT pk_tbSalaFilme PRIMARY KEY (numero_sala,codigo_filme),
CONSTRAINT fk_tbSalaFilme_tbSala FOREIGN KEY (numero_sala)
REFERENCES tbSala (numero_sala) ON DELETE CASCADE ON UPDATE
CASCADE,
CONSTRAINT fk_tbSalaFilme_tbFilme FOREIGN KEY (codigo_filme)
REFERENCES tbFilme (codigo_filme) ON DELETE CASCADE ON UPDATE
CASCADE
);

CREATE TABLE tbPremio


(codigo_premio INT,
nome_premio VARCHAR(20) NOT NULL,
ano_premiacao INT,
codigo_filme INT,
CONSTRAINT pk_tbPremio PRIMARY KEY (codigo_premio),
CONSTRAINT fk_tbPremio_tbFilme FOREIGN KEY (codigo_filme)
REFERENCES tbFilme (codigo_filme) ON DELETE CASCADE ON UPDATE
CASCADE
);

2) Para o exerccio 2, ser mostrado apenas a insero de um registro para dada tabela.
42
INSERT INTO tbSala
VALUES (1,Sala Infantil,200);
Banco de Dados

INSERT INTO tbDiretor


VALUES (1,Marcelo Reis);

INSERT INTO tbFilme


VALUES (1,A Lagarta Lily,2009, Infantil, 1);

INSERT INTO tbSalaFilme


VALUES (1,1,2010-07-23,13:30);

INSERT INTO tbPremio


VALUES (1,Melhor Filme,2010, 1);

3)
SELECT nome_diretor
FROM tbDiretor;
4)
SELECT nome_filme
FROM tbFilme
WHERE categoria_filme = Terror;

5)

UPDATE tbSala
SET capacidade = 200
WHERE numero_sala = 8;

6)
UPDATE tbSalaFilme
SET numero_sala = 8
WHERE data = 2010-11-15 AND numero_sala = 12;

7)

necessrio excluir primeiro a tabela que possui a FK para depois excluir o registro na
tabela que PK (Integridade Referencial).
43

DELETE FROM tbFilme

Banco de Dados
WHERE codigo_diretor IN (SELECT codigo_diretor

FROM tbDiretor

WHERE nome_diretor = Pedro Paulo Matos);

DELETE FROM tbDiretor

WHERE nome_diretor = Pedro Paulo Matos;

8)
SELECT nome_filme

FROM tbFilme INNER JOIN tbDiretor ON tbFilme.codigo_ diretor =


tbDiretor.codigo_diretor

WHERE nome_diretor = Jorge da Penha;


9)
SELECT nome_filme, horario

FROM tbSalaFilme INNER JOIN tbFilme ON tbSalaFilme.codigo_filme =


tbFilme.codigo_filme

WHERE data = 2010-04-20;

10)
SELECT nome_premio

FROM tbPremio INNER JOIN tbFilme ON tbPremio.codigo_filme =


tbFilme.codigo_filme

WHERE nome_filme = Titanic;

11)
SELECT nome_filme
FROM tbSala INNER JOIN tbSalaFilme ON tbSalaFilme.numero_sala =
tbSala.numero_sala
INNER JOIN tbFilme ON tbSalaFilme.codigo_filme =
tbFiIme.codigo_filme
44 WHERE capacidade > 200;
Banco de Dados

12)
SELECT nome_filme, numero_sala, horario

FROM tbFilme INNER JOIN tbSalaFilme ON tbSalaFilme.codigo_filme =


tbFilme.codigo_filme

WHERE data BETWEEN 2010-05-01 AND 2010-05-31;

13)

SELECT nome_filme

FROM tbPremio INNER JOIN tbFilme ON tbPremio.codigo_filme =


tbFilme.codigo_filme

WHERE nome_premio = Melhor Diretor AND ano_premiacao IN (2007, 2008, 2009, 2010);
14)
SELECT nome_filme

FROM tbFilme INNER JOIN tbSalaFilme ON tbSalaFilme.codigo_filme =


tbFilme.codigo_filme

WHERE categoria_filme = Comedia AND data BETWEEN 2010-06-01 AND


2010-06-30

15)
SELECT descricao_sala, categoria_filme, nome_filme

FROM tbDiretor INNER JOIN tbFilme ON tbDiretor.codigo_diretor =


tbFilme.codigo_diretor

INNER JOIN tbSalaFilme ON tbSalaFilme.codigo_filme =


tbFilme.codigo_filme

INNER JOIN tbSala ON tbSalaFilme.numero_sala =


tbSala.numero_sala

WHERE nome_diretor =Severino Juca;

Captulo 9
Orientaes 45
O captulo 9 apresenta comandos mais avanados para criao de consultas Sql.

Banco de Dados
Como existe mais de uma maneira de se escrever uma mesma consulta, nesse captulo o
professor pode apresentar os novos comandos e mostrar que uma mesma consulta poderia ser
escrita de maneiras diferentes. Assim, enfatiza qual a forma mais otimizada de se escrever uma
consulta. Isso bastante interessante. No entanto, se o professor no tiver tempo para fazer isso,
pode simplesmente apresentar o comando e explicar se a utilizao dele pode melhorar ou no
o desempenho da consulta.

Respostas pgina 107


Observao: Utilize comandos SQL para resolver os exerccios. Se houver a necessidade
de utilizar mais de uma tabela em uma consulta, utilize o INNER JOIN ao invs do produto
cartesiano.
1)
CREATE TABLE tbNovela

(codigo_novela INT,

nome_novela VARCHAR(30) NOT NULL,

data_primeiro_capitulo DATE,
data_ultimo_capitulo DATE,

horario_exibicao TIME,

CONSTRAINT pk_tbNovela PRIMARY KEY (codigo_novela)

);

CREATE TABLE tbAtor

(codigo_ator INT,

nome_ator VARCHAR(20) NOT NULL,

idade INT,

cidade_ator VARCHAR(20),

salario_ator FLOAT,

sexo_ator CHAR(1),

CONSTRAINT pk_tbAtor PRIMARY KEY (codigo_ator)

);

CREATE TABLE tbCapitulo

(codigo_capitulo INT,

nome_capitulo VARCHAR(50) NOT NULL,

data_exibicao_capitulo DATE,
46
codigo_novela INT,

CONSTRAINT pk_tbCapitulo PRIMARY KEY (codigo_capitulo),


Banco de Dados

CONSTRAINT fk_tbCapitulo_tbNovela FOREIGN KEY (codigo_novela)

REFERENCES tbNovela (codigo_novela) ON DELETE CASCADE ON


UPDATE CASCADE

);

CREATE TABLE tbPersonagem

(codigo_personagem INT,

nome_personagem VARCHAR(50) NOT NULL,

idade_personagem INT,

situacao_financeira_personagem VARCHAR(20),

codigo_ator INT,

CONSTRAINT pk_tbPersonagem PRIMARY KEY (codigo_personagem),


CONSTRAINT fk_tbPersonagem_tbAtor FOREIGN KEY (codigo_ator)

REFERENCES tbAtor (codigo_ator) ON DELETE CASCADE ON UPDATE CASCADE

);

CREATE TABLE tbNovelaPersonagem

(codigo_personagem INT,

codigo_novela INT,

CONSTRAINT pk_tbNovelaPersonagem PRIMARY KEY (codigo_personagem,codigo_novela),

CONSTRAINT fk_tbNovelaPersonagem_tbPersonagem FOREIGN KEY (codigo_personagem)

REFERENCES tbPersonagem (codigo_personagem) ON DELETE CASCADE


ON UPDATE CASCADE,

CONSTRAINT fk_tbNovelaPersonagem_tbNovela FOREIGN KEY (codigo_novela)

REFERENCES tbNovela (codigo_novela) ON DELETE CASCADE ON


UPDATE CASCADE

);

2) Para o exerccio 2, ser mostrado apenas a insero de um registro para dada tabela.
47
INSERT INTO tbNovela
VALUES (1,Misterios de uma Vida,2010-10-02,2011-01-25,18:00);

Banco de Dados
INSERT INTO tbAtor
VALUES (1,Marcelo Reis, 35,Curitiba, 5300,M);

INSERT INTO tbCapitulo


VALUES (10,A Verdade,2010-12-02, 1);

INSERT INTO tbPersonagem


VALUES (1,Mario, 30,rico,1);

INSERT INTO tbNovelaPersonagem


VALUES (1,1);
3)

SELECT data_ultimo_capitulo
FROM tbNovela
WHERE nome_novela = Misterios de uma Vida;

4)

SELECT nome_novela
FROM tbNovela
WHERE horario_exibicao IS NULL;

5)

SELECT nome_ator
FROM tbAtor
WHERE cidade_ator LIKE M%;

48

6)
Banco de Dados

SELECT COUNT(*) AS QUANTIDADE


FROM tbNovela
WHERE nome_novela LIKE %Vida%;

7)

SELECT COUNT(*) AS QUANTIDADE


FROM tbAtor INNER JOIN tbPersonagem ON tbPersonagem.codigo_ator =
tbAtor.codigo_ator
INNER JOIN tbNovelaPersonagem
ON tbNovelaPersonagem.codigo_personagem = tbPersonagem.codigo_personagem
WHERE nome_ator LIKE Fernando Souza;
8)

SELECT *
FROM tbPersonagem
ORDER BY nome_personagem;

9)

SELECT *
FROM tbPersonagem
ORDER BY idade_personagem DESC;

10)

SELECT COUNT(*) AS QUANTIDADE


FROM tbAtor;

49
11)

Banco de Dados
SELECT COUNT(*) AS QUANTIDADE
FROM tbNovela;

12)

SELECT nome_novela, COUNT(*) AS QUANTIDADE de CAPITULOS

FROM tbNovela INNER JOIN tbCapitulo

ON tbNovela.codigo_novela = tbCapitulo.codigo_novela

GROUP BY nome_novela;
13)

SELECT COUNT(*) AS QUANTIDADE MENINAS


FROM tbAtor
WHERE sexo = F;

14)

SELECT AVG(idade_personagem) AS IDADE MEDIA


FROM tbPersonagem;

15)
SELECT COUNT(*) AS QUANTIDADE de PERSONAGENS
FROM tbPersonagem
WHERE idade_personagem < 15;

16)
50
SELECT nome_ator
FROM tbAtor INNER JOIN tbPersonagem ON tbPersonagem.codigo_ator =
Banco de Dados

tbAtor.codigo_ator
WHERE tbAtor.idade = tbPersonagem.idade_personagem;

17)

SELECT MAX(salario_ator) AS Maior Salario


FROM tbAtor;

18)

SELECT MIN(salario_ator) AS Menor Salario

FROM tbAtor;
19)

SELECT SUM(salario_ator)
FROM tbAtor;

20)

SELECT nome_ator, COUNT(*) AS QUANTIDADE de PERSONAGENS


FROM tbAtor INNER JOIN tbPersonagem ON tbPersonagem.codigo_ator =
tbAtor.codigo_ator
GROUP BY nome_ator;

21)

SELECT nome_novela, COUNT(*) AS QUANTIDADE de CAPITULOS


FROM tbNovela INNER JOIN tbCapitulo
ON tbNovela.codigo_novela = tbCapitulo.codigo_novela
GROUP BY nome_novela
HAVING COUNT(*) > 40;

51

22)

Banco de Dados
SELECT nome_ator, COUNT(DISTINCT codigo_novela) AS Quantidade de Novelas
FROM tbAtor INNER JOIN tbPersonagem
ON tbPersonagem.codigo_ator = tbAtor.codigo_ator INNER JOIN
tbNovelaPersonagem
ON tbNovelaPersonagem.codigo_personagem = tbPersonagem.codigo_personagem
WHERE situaco_financeira_personagem = rico
GROUP BY nome_ator
HAVING COUNT(DISTINCT codigo_novela) > 15;

Captulo 10
Orientaes
interessante apresentar aos alunos a possibilidade de se escrever consultas aninhadas.
No entanto, deve-se destacar que a utilizao pode trazer problemas de desempenho em algu-
mas situaes.
Quando o professor apresentar os tipos de juno, poder explicar que algumas consultas
aninhadas podem ser reescritas usando juno externa.
Mostrar que uma consulta pode ser escrita de vrias formas e permite que o aluno, em uma
situao real, consiga decidir qual a melhor e mais adequada para implementar uma consulta.
importante ressaltar que os captulos 7, 8, 9 e 10 devem ser ensinados em laboratrio e
requerem dos alunos que faam muitos exerccios para que possam, efetivamente, aprender a
utilizar os comandos ensinados.

Respostas pgina 118


1) Uma juno externa (outer join) uma juno que retorna as linhas de uma tabela
mesmo que essas linhas no possuam registros equivalentes em outra tabela. Ou seja,
mesmo que as linhas retornadas no satisfaam a condio da juno. A juno externa
LEFT OUTER JOIN retorna todas as linhas que satisfazem a condio da juno
mais as linhas da tabela que ficam esquerda da consulta mesmo que no satisfaam
a condio. A juno RIGHT OUTER JOIN, retorna todas as linhas relacionadas
mais as linhas direita que no possuem correspondente na tabela da esquerda.
2) O professor deve junto com os alunos propor situaes em que poderiam ser utilizados
os comandos de juno. importante que o professor instigue os alunos a pensar
em situaes e no passe a resposta para essa questo antes de eles apresentarem suas
hipteses.

Observao: Para os prximos exerccios vamos utilizar o mesmo modelo relacional dos
exerccios do captulo 9.
Para resolver as questes utilize comandos SQL. Se houver a necessidade de utilizar mais
de uma tabela em uma consulta, utilize o INNER JOIN ao invs do produto cartesiano.

52 3)
SELECT nome_ator
Banco de Dados

FROM tbAtor
WHERE codigo_ator NOT IN
(SELECT tbPersonagem.codigo_ator
FROM tbPersonagem INNER JOIN tbNovelaPersonagem
ON tbNovelaPersonagem.codigo_personagem = tbPersonagem.codigo_personagem);

4)
SELECT nome_ator, idade
FROM tbAtor
WHERE codigo_ator IN
(SELECT tbPersonagem.codigo_ator
FROM tbPersonagem INNER JOIN tbNovelaPersonagem
ON tbNovelaPersonagem.codigo_personagem = tbPersonagem.codigo_personagem
INNER JOIN tbNovela
ON tbNovelaPersonagem.codigo_novela = tbNovela.codigo_novela
WHERE nome_novela = Ser Estranho);
5)

SELECT nome_ator
FROM tbAtor INNER JOIN tbPersonagem ON tbPersonagem.codigo_ator =
tbAtor.codigo_ator
WHERE nome_personagem = Anna;

6)

SELECT nome_ator
FROM tbAtor INNER JOIN tbPersonagem
ON tbPersonagem.codigo_ator = tbAtor.codigo_ator
INNER JOIN tbNovelaPersonagem
ON tbNovelaPersonagem.codigo_personagem = tbPersonagem.codigo_personagem
WHERE codigo_novela IN
(SELECT codigo_novela
FROM tbAtor INNER JOIN tbPersonagem ON tbPersonagem.codigo_ator =
tbAtor.codigo_ator
INNER JOIN tbNovelaPersonagem
ON tbNovelaPersonagem.codigo_personagem =
tbPersonagem.codigo_personagem
WHERE nome_ator = 'Joaquina Penteado');

53

Banco de Dados
7)

SELECT nome_ator
FROM tbAtor INNER JOIN tbPersonagem
ON tbPersonagem.codigo_ator = tbAtor.codigo_ator
INNER JOIN tbNovelaPersonagem
ON tbNovelaPersonagem.codigo_personagem = tbPersonagem.
codigo_personagem
WHERE codigo_novela NOT IN
(SELECT codigo_novela
FROM tbAtor INNER JOIN tbPersonagem ON tbPersonagem.codigo_
ator = tbAtor.codigo_ator
INNER JOIN tbNovelaPersonagem
ON tbNovelaPersonagem.codigo_personagem = tbPersonagem.
codigo_personagem
WHERE nome_ator = 'Joaquina Penteado');
8)
SELECT nome_personagem, idade_personagem
FROM tbPersonagem
WHERE idade_personagem IN
(SELECT MIN(idade_personagem)
FROM tbPersonagem);

9)
SELECT nome_ator, salario_ator
FROM tbAtor
WHERE salario_ator IN
(SELECT MIN(salario_ator)
FROM tbAtor);

10)
SELECT nome_ator
FROM tbAtor
WHERE cod_ator NOT IN
(SELECT cod_ator
54
FROM tbPersonagem

WHERE situacao_financeira_personagem = 'pobre');


Banco de Dados

11)
SELECT nome_ator, COUNT(DISTINCT codigo_novela) AS Quantidade de
Novelas das 18:00
FROM tbAtor
INNER JOIN tbPersonagem
ON tbPersonagem.codigo_ator = tbAtor.codigo_ator
INNER JOIN tbNovelaPersonagem
ON tbNovelaPersonagem.codigo_personagem = tbPersonagem.codigo_personagem
INNER JOIN tbNovela
ON tbNovela.codigo_novela = tbNovelaPersonagem.codigo_novela
WHERE horario_exibicao = 18:00
GROUP BY nome_ator
HAVING COUNT(DISTINCT codigo_novela) > =1;

Você também pode gostar