Exercícios de Modelagem de dados

1 .HOSPITAL

  1. Um hospital deseja elaborar um cadastro para controlar as atividades de suas clínicas. Para cada clínica é desejado armazenar seu nome, seu código, sua especialidade e os diversos médicos que a clínica possui (toda clínica possui médicos). Para cada médico é desejado armazenar seu nome, número do CRM, sua especialidade, as diversas consultas que o médico faz (o médico não é obrigado a realizar consultas), as diversas cirurgias que o médico faz (um médico não é obrigado a realizar cirurgias) e a clínica ao qual o médico pertence.Para cada consulta é desejado armazenar seu número, sua data, horário, o médico que realizou a consulta (toda consulta é realizada por um médico) e o paciente que foi consultado (toda consulta é feita em um paciente). Para cada cirurgia é necessário armazenar seu número, a data, o horário, os diversos médicos que realizaram a cirurgia (toda cirurgia é realizada por médicos), as diversas enfermeiras que auxiliaram na cirurgia (toda cirurgia é auxiliada por enfermeiras) e o paciente no qual é realizada a cirurgia (toda cirurgia é realizada em um paciente).Para cada paciente é desejado armazenar seu cód., nome, RG, data de nascimento, endereço completo (rua, número, bairro, CEP, cidade), as diversas consultas que o paciente realizou (um paciente não é obrigado a realizar consultas), as cirurgias que o paciente realizou (um paciente não é obrigado a realizar cirurgias) e as diversas enfermeiras que atenderam o paciente assim como a data e o horário do atendimento (nem todo paciente é atendido por enfermeira). Caso o paciente seja menor de idade e não possua RG, então será necessário armazenar o RG do responsável pelo mesmo. Para cada enfermeira é desejado armazenar seu número, seu nome, sua especialidade, as diversas cirurgias que a enfermeira auxiliou (nem toda enfermeira auxilia em cirurgia) e os diversos pacientes que a enfermeira atendeu (toda enfermeira atende paciente).

     

  2. UNIVERSIDADE

Uma universidade deseja elaborar um cadastro acadêmico, envolvendo seus alunos, cursos e disciplinas. Para cada faculdade é desejado armazenar seu nome, seu número, os diversos departamentos que a faculdade possui (toda faculdade é dividida em departamentos) e os diversos professores que a faculdade possui (toda faculdade possui professores).

Para cada departamento é necessário armazenar seu número, sendo que para cada faculdade, a numeração de seus departamentos vai de 1 até N, seu nome, o professor que chefia este departamento (todo departamento é chefiado por um professor), a faculdade à qual o departamento pertence (todo departamento pertence a uma faculdade), as diversas disciplinas que o departamento oferece (nem todo departamento oferece.

Para cada curso é desejado armazenar seu código, seu nome, os diversos períodos nos quais o curso é oferecido, o departamento ao qual o curso pertence (todo curso pertence a um departamento), os diversos alunos que frequentam o curso (se não houver alunos frequentando o curso o mesmo não será cancelado) e as diversas disciplinas que são oferecidas pelo curso (todo curso oferece disciplinas).

Para cada disciplina é desejado armazenar seu nome, código, carga horária, o departamento pelo qual a mesma é oferecida (toda disciplinas é oferecida por um departamento), os diversos cursos para os quais a disciplina é oferecida (mesmo que uma disciplina não seja oferecida por um curso ela não será cancelada), os diversos professores que lecionam a disciplina (toda disciplina é lecionada por professores) e os diversos alunos que frequentam a disciplina, sendo necessário armazenar para cada aluno a nota 1 N1, nota 2 N2, as faltas F, a média final do aluno ((N1 + N2)/2) e a situação do aluno (média final > 7) e F <= 25% aluno é aprovado (se não houver alunos frequentando a disciplina, a mesma não será cancelada).

Para cada aluno é desejado armazenar seu nome, ra, seus endereços completos (o da cidade onde reside e o da cidade da universidade) com rua, número, bairro, CEP, cidade, seus telefones (o da cidade onde reside e o da cidade da universidade) com DDD + número, o curso que o aluno frequenta (todo aluno frequenta um curso, não podendo frequentar mais que um), as diversas disciplinas que o aluno frequenta (todo aluno frequenta disciplina) e o professor que orienta o aluno (nem todo aluno é orientado por professor).

Para cada professor é desejado armazenar seu número funcional, seu nome, a faculdade à qual ele pertence (todo professor pertence a uma faculdade), o departamento o qual o professor chefia (um professor não é obrigado a chefiar um departamento) e as diversas disciplinas que o professor leciona (um professor não é obrigado a lecionar disciplinas).

3. O IFBA decidiu fazer um sistema para controlar o acompanhamento do progresso dos estudantes pela coordenação de curso e profissionais da COTEP ao longo de sua trajetória no campus Santo Amaro.  Sabe-se que para os estudantes são registrados: nome, CPF, matrícula, data de nascimento, e-mail e telefone e curso. Os cursos são previamente cadastrados (nome, duração, modalidade). Para Profissionais são registrados, nome, CPF, matrícula, e-mail, telefone, cargo.  Os cargos são previamente cadastrados (coordenador de curso, pedagogo, psicólogo, professor, assistente social, etc). Sabe-se que o IFBA conselhos de classe regularmente, e para cada conselho de classe é feitas anotações para cada estudante, de forma que a depender da anotação uma ação de intervenção é realizada. Os conselhos de classe são registrados por data, turma e ano letivo. As turmas do IFBA são previamente cadastradas, cada estudante só faz parte de uma turma por período letivo. Toda turma tem uma código próprio, curso, turno e ano da turma. Toda ação de acompanhamento é realizada por um profissional e um profissional poderá realizar várias ações. Nem todo estudante é citado para ações de intervenção.

4. A Federação Paulista de Futebol deseja elaborar um cadastro geral para o Campeonato Paulista de 1999. Para cada time é desejado armazenar seu nome, sua cidade, seu número de cadastro na FPF, a situação do time no campeonato, o estádio que o time possui (todo time possui um estádio), os jogos que o time participa (todos os times participam de jogos) bem como, o número de gols que o time marcou na partida, as diversas torcidas organizadas que o time possui (um time não é obrigado a possuir torcida organizada), os diversos jogadores que compõem o elenco do time (todo time possui jogadores no elenco) e os diversos jogadores cujos passes pertencem ao time (um time não é obrigado a possuir passes de jogadores).

Para cada jogo é desejado armazenar seu número, a data, horário, os diversos membro da comissão de arbitragem, o estádio no qual o jogo é realizado (todo jogo é realizado em estádio), os times que participam do jogo (todo jogo é realizado por times), as diversas torcidas organizadas que frequentaram o jogo (nem todo jogo deve frequentado por torcidas organizadas) e os diversos jogadores que participaram ativamente do jogo, sendo desejado armazenar o número de gols, o número de cartões amarelos e o número de cartões vermelhos que o jogador recebeu no jogo (todo jogo é disputado por jogadores).

Para cada estádio é desejado armazenar seu nome, localização, o número de torcedores, os diversos jogos que o estádio abriga (um estádio não é obrigado a abrigar jogos) e o time proprietário do estádio (um estádio pode ser público).

Para cada torcida organizada é desejado armazenar seu número de cadastro na FPF, seu nome, o nome de seu presidente, sua sede, o número de associados, os diversos jogos que a torcida frequenta (uma torcida não é obrigada a frequentar jogos) e o time para o qual a torcida torce (toda torcida torce para um time).

Para cada jogador é desejado armazenar o número de cadastro do jogador na FPF, seu nome, apelido, idade, o time ao qual o passe do jogador pertence (o jogador pode ter passe livre), o time para o qual o jogador atua (o jogador pode estar cadastrado na FPF e não atuar em um time) e os jogos dos quais o jogador participa ativamente (um jogador não é obrigado a participar de jogos ativamente).

 

 

 

 

Atividade de Banco de dados de Procedures e Sub-consultas

modelolivro

Endereço do script do Banco: http://twixar.me/Vw9K

(Questões)

1 – Crie uma procedure que insira um dado de cliente.
2 – Crie uma procedure que insira uma venda
3 – Crie uma procedure que atualize os dados de uma venda
4 – Crie uma procedure que apague um cliente
5 – Crie uma procedure que receba o nome de um cliente e mostre os dados relativos as suas vendas
6 – Crie uma procedure que receba o nome de uma editora e mostre o nome dos autores que escreveram livros editados por ela.
7 – Crie uma procedure que receba duas datas e mostre o titulo dos livros vendidos naquele periodo.

Subconsultas

8 – Mostre os dados de clientes que não tem vendas associadas a eles no ano de 2011
9 – Mostre as editoras que tem vendas
10 – Mostre todos os livros, exceto o mais caro
11 – Mostre os livros que tem o preço mínimo
12 – Mostre todos os livros vendidos cujo preço é maior que o preço médio de livros
13 – Mostre os telefones de clientes e editoras do sistema
14 – Mostre o nome de todas as pessoas cadastradas no sistema.

 

Vídeos e Exercícios usando While/Do-While

 

Exercícios:

1. Dado um conjunto com n valores, fazer um algoritmo que calcule e exiba quantos valores dentro do conjunto digitado foram iguais a 5.
2. Fazer um algoritmo que receba um conjunto indeterminado de valores e, ao final, exiba quantos valores pares e quantos valores ímpares foram digitados.
3. Faça um algoritmo que receba um conjunto de valores inteiros e positivos, calcule e mostre o maior e menor valor do conjunto. Para encerrar a entrada de dados, deve ser digitado o valor zero.
4. Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados a idade, sexo (M|F) e salário. Faça um algoritmo que calcule e mostre:
a) a média geral dos salários coletados;
b) e maior e a menor idade do grupo;
c) a quantidade de mulheres com salário até R$ 500,00;
d) a idade e o sexo da pessoa que possui o menor salário.

Uma idade negativa será digitada para finalizar a entrada de dados

 

Uma agência bancária possui vários clientes que podem fazer investimentos por um mês, conforme a tabela a seguir:

tabela

Faça um algoritmo que leia o código do cliente, o tipo do investimento e o valor investido, e que calcule e mostre o rendimento de acordo com o tipo do investimento. No final, o programa deverá mostrar o total investido e o total de juros pagos. A leitura terminará quando o código do cliente digitado for menor ou igual a 0.

6. Faça um ALGORITMO para ler e escrever o Nome de 20 pessoas.
7. Leia 20 valores reais e escreva o seu somatório.
8. Escreva um algoritmo em Pascal para ler 2 valores (se o segundo valor informado for ZERO  apresentará a seguinte mensagem “Valor inválido” e deverá ler um novo valor até que ele seja um valor válido) e imprimir o resultado da divisão do primeiro pelo segundo.
9. Faça um programa que leia palavras digitadas pelo usuário e que, para cada uma delas, imprima a frase “Você digitou a palavra: xxxx” (onde “xxxx” é a palavra digitada). O programa deve repetir essas operações até o usuário digitar a palavra “fim”. O programa não deve imprimir a frase de resposta quando a palavra digitada for “fim”.
10. Dado um número indeterminado de funcionários, onde é fornecido o Nome, número de dependentes e o número de horas trabalhadas. Pede-se que seja impresso, para cada
funcionário, o seu Nome, salário bruto, salário líquido e o valor descontado. A empresa,
paga R$ 2.250,00 por hora de trabalho, e R$ 125,55 por dependente, e ainda faz um
desconto de 12% sobre o salário bruto. Pede-se ainda que seja impresso o total de
funcionários da empresa, o total gasto com salários, e o total descontado

 

 

 

Exercícios de modelagem de dados

  1. A firma FREELANCE, Ltda. é uma agência que se dedica exclusivamente à subcontratação de trabalho temporário. Os clientes desta empresa são normalmente outras firmas ou pessoas físicas que necessitam de mão de obra temporária para executar tarefas pontuais. Dos clientes da empresa, deseja-se saber: nome, endereço completo, telefones e tipo (pessoa física ou jurídica). Esta firma não possui mão-de-obra em regime permanente, limitando-se a contatar indivíduos que constam da sua bolsa de emprego, no sentido de alocá-los temporariamente a determinados serviços.Um cliente pode solicitar serviços através do preenchimento de uma ficha de serviço, onde registra-se a descrição do serviço, a data de início e a data de recepção desta ficha. Sempre que um novo cliente solicita os serviços desta firma. Da mesma forma, quando um candidato se inscreve na bolsa de emprego desta firma preenche uma ficha de contato, onde constam seu nome, endereço, telefone, aptidões, escolaridade, línguas estrangeiras e setores de atividade em que se inscreve (trabalhos agrícolas, carpintaria, limpeza, soldadura, etc.). Um setor de atividade define basicamente um tipo de trabalho que um candidato está disposto a executar. Como é evidente, a inscrição em alguns setores de atividade irá depender das suas aptidões específicas. Depois de analisada a ficha de serviço, são definidos quais os setores de atividade implicados naquele serviço, quantos indivíduos são necessários e, previsivelmente, por quanto tempo. Posteriormente seleciona-se, para cada setor de atividade, os possíveis colaboradores que serão contatados para saber se aceitam ou não o trabalho. Desta forma, são então criadas equipes de trabalho (uma por cada setor de atividade), no entanto, cada colaborador apenas estará destacado para uma delas.
  2. PROJETOS: Uma empresa desenvolve projetos de grande porte envolvendo diversas áreas como engenharia, urbanismo,  transportes, etc. Esta empresa está organizada em departamentos, sendo que cada projeto é desenvolvido sempre sob a coordenação de  um departamento. Os departamentos possuem chefias e subchefias e como existe rodízio nestas funções, a empresa deseja guardar o intervalo no qual um empregado esteve como chefe ou subchefe de um departamento. Embora um empregado pertença sempre a um departamento, ele pode ser alocado a projetos de outros departamentos. A empresa deseja guardar informações das equipes de projeto. Todo projeto é sempre de uma área (engenharia, urbanismo, etc.), possui período definido de tempo e está dividido em fases que também possuem períodos. Os responsáveis  pelo projeto são as chefias do departamento ao qual o projeto está alocado. Um empregado é alocado ao projeto em determinada fase específica para determinada função. A empresa deseja saber em que projeto, por quanto tempo e em qual função esteve o empregado alocado. Para facilitar o controle, suponha que num mesmo intervalo de tempo um empregado estará alocado apenas a um projeto.
  3. Uma Universidade deseja construir um sistema para facilitar e agilizar o controle de acesso de veículos aos seus cinco estacionamentos para prover mais segurança e comodidade para os seus usuários. O sistema deverá permitir que se cadastre todos os tipos de usuários (alunos, professores e funcionários), que receberão um cartão com um código de barra para sua identificação. Cada usuário poderá solicitar o cadastramento de vários veículos com os quais utiliza os estacionamentos da universidade. Ao chegar a qualquer portão de acesso à universidade, o vigilante irá informar a placa do veículo e o usuário deverá passar o cartão magnético em um leitor de código de barras, e com isso, o sistema irá identificar se o veículo está relacionado com a identificação do usuário. Ao sair, o usuário simplesmente passará o seu cartão em outra leitora de código de barras. O visitante (usuário não cadastrado) deverá pegar um cartão especial com os vigilantes. Através desses procedimentos, o sistema poderá fornecer dados de ocupação de cada estacionamento, além de permitir a consulta de quais os veículos estão, ou estiveram, dentro da universidade em um determinado dia e horário.

Pensamento da semana

Algumas decisões são escolhas entre fazer alguma coisa e não fazer nada. Há muitos anos, durante uma conferência de estaca nos Estados Unidos, ouvi um exemplo desse tipo de escolha.
O local era um belo campus universitário. Vários alunos estavam sentados na grama. O orador que descreveu essa experiência disse que eles estavam observando um lindo esquilo que tinha uma cauda longa e espessa brincando debaixo de uma bela árvore. Às vezes ele estava no chão, depois subia e descia pelo tronco. Mas por que aquela cena comum atraía tanto a atenção daqueles alunos?
Ali perto, deitado na grama, havia um cão setter irlandês. Ele era o objeto de interesse dos alunos, e o esquilo era o objeto de interesse dele. Cada vez que o esquilo ficava momentaneamente fora do ângulo de visão enquanto dava a volta na árvore, o cão se arrastava alguns centímetros à frente e voltava à sua aparente postura de indiferença. Essa cena atraiu a atenção dos alunos. Em silêncio e imóveis, ficaram observando atentamente o evento cujo resultado era cada vez mais óbvio.
Finalmente, o cão se aproximou o suficiente para pular sobre o esquilo e abocanhá-lo. Houve um suspiro de horror, e os alunos se aproximaram e tomaram o pequeno animal do cachorro, mas já era tarde. O esquilo estava morto.
Qualquer pessoa naquele grupo poderia ter chamado a atenção do esquilo a qualquer momento agitando os braços ou gritando, mas nenhuma delas o fez. Apenas ficaram observando enquanto o inevitável final se aproximava. Ninguém se perguntou: “Aonde isso vai levar?” Quando o que era previsível aconteceu, todos correram para evitar aquele desfecho, mas era tarde demais. Só o que puderam fazer foi lamentar arrependidos.
Essa história verídica é uma espécie de parábola. Ela se aplica às coisas que vemos em nossa vida e na vida e nas circunstâncias das pessoas à nossa volta. Ao vermos as ameaças se aproximarem das pessoas ou das coisas que amamos, podemos escolher falar, agir ou permanecer em silêncio. É bom nos perguntarmos: “Aonde isso vai levar?” Quando as consequências são imediatas e sérias, não podemos nos dar ao luxo de não fazer nada. Precisamos dar os avisos adequados ou oferecer o apoio preventivo adequado enquanto ainda houver tempo.
As decisões que acabei de descrever envolvem a escolha entre agir ou não fazer nada. No entanto, as escolhas mais comuns são aquelas entre uma ação e outra. Isso inclui escolher entre o bem e o mal, mas o que ocorre com mais frequência são as escolhas entre duas coisas boas. Nesse caso também é útil perguntar aonde isso vai levar. Fazemos muitas escolhas entre várias coisas boas, geralmente envolvendo as escolhas sobre como usaremos nosso tempo. Não há nada de ruim em jogar videogame, trocar mensagens de texto, assistir à televisão ou conversar ao celular. Mas cada uma delas envolve o que chamo de “custo da oportunidade”, o que significa que, se usamos nosso tempo fazendo uma coisa, perdemos a oportunidade de fazer outra. Estou certo de que vocês conseguem perceber que precisamos considerar cuidadosamente o que estamos perdendo com o tempo que gastamos em uma atividade mesmo que ela seja particularmente boa.

(Elder Oaks)