Trabalho Prático sobre Eficiência
Passos a Seguir no Trabalho
- Formar um grupo de projecto
- Escolher um tema para a BD
- Obter um esquema relacional correspondente, incluindo as
restrições de integridade que têm que ser satisfeitas por cada
instância da BD
- Preparar um exemplo de BD de dimensão adequada ao estudo de eficiência
- Implementar no SGBD Oracle 9i
- Elaborar perguntas e traduzi-las para SQL, no Oracle
- Analisar a eficiência de diferentes estratégias de responder às perguntas, do ponto de vista temporal, de análise de planos de execução e do efeito da existência ou não de índices
- Entregar o relatório at 5 de Abril de 2002
- Discutir o trabalho.
Estrutura Típica do Realatório
- Introdução e especificação do problema
- Projecto da Base de Dados
- Esquema relacional incluindo restrições de integridade adicionais
- Implementação em ORACLE 9i
- Script de criação da base de dados
- Descrição dos dados exemplo
- Interrogações à base de dados
- Análise de eficiência
- Conclusões
Descrição dos Trabalhos
1. Cruz Vermelha Portuguesa
Pretende-se informatizar os serviços prestados pelas Unidades de
Socorro (US) da Cruz Vermelha Portuguesa (CVP).
Cada US tem um código (único) e um nome. As US dispõem de
colaboradores e viaturas. Relativamente a cada colaborador interessa
saber o seu número (único em toda a CVP), o nome e o posto. As US
efectuam vários serviços. Cada serviço tem um código (único), um tipo,
uma data de início e uma data de fim. Num serviço participam vários
colaboradores que podem assumir uma ou mais funções dentro do
serviço. As funções são R (responsável); C (condutor); S (socorrista);
E (enfermeiro); M (médico); qualquer combinação destes símbolos; ou
outras que possam surgir. A realização de um serviço pode envolver
várias saídas. Cada saída tem um código, uma hora de partida e uma
hora de chegada e usa uma viatura. Existem três tipos de serviços: 1-
Normal; 2 - Emergência; 3 - Instrução. Interessa garantir que cada
serviço usa apenas recursos próprios ou seja, usa viaturas e
colaboradores que lhe pertencem.
2. Canais de Televisão
Pretende-se informatizar a programação dos diferentes canais de televisão portugueses.
Existem 4 canais de televisão cada um com a sua programação. Os
programas têm um nome, duração e tipo (cultural, entretenimento,
informativo, publicitário, etc.).
Cada programa pode ter nos seus intervalos vários programas publicitários.
Um programa pode ser repetido em diferentes horários. Pretende-se
registar a programação dos diferentes canais bem como a audiência nos
diferentes horários para elaboração de estatísticas. Interessa
garantir que a programação não tem programas em horários sobrepostos.
3. Projectos
Pretende-se projectar uma base de dados para guardar informação sobre
o trabalho desempenhado pelos alunos em diversos projectos de uma
disciplina. Cada aluno pertence a um só grupo. Cada grupo tem um
número, o nome do trabalho realizado pelo grupo e o URL do site
mantido pelo grupo. Cada aluno tem um número, o endereço de email e um
nome. Cada aluno desempenha uma ou mais funções dentro do grupo sendo
que não pode desempenhar duas funções simultaneamente. Cada função é
caracterizada por uma abreviatura, um nome, uma data de início e uma
data de fim. Os grupos produzem documentos diversos. Relativamente a
cada documento interessa guardar o código (único dentro do grupo), o
URL, o título, a data e o autor ou autores (alunos do grupo a que
pertence o documento).
4. Agenda
Pretende-se implementar uma base de dados para guardar informação de
uma agenda electrónica. Na agenda guardam-se tópicos de dois tipos,
contactos ou tarefas. Nos contactos pretende-se guardar o nome, vários
números de telefone, várias moradas, email e URL. Das tarefas
pretende-se guardar a data de início, a duração, um tipo e um local. O
local tem um código único, uma designação e uma morada. Interessa
garantir que não há eventos sobrepostos (uma pessoa não pode estar em
duas tarefas simultaneamente e não podem ocorrer dois eventos ao mesmo
tempo no mesmo local).
5. Imobiliária
Pretende-se informatizar os serviços prestados por uma imobiliária com
várias agências espalhadas pelo país. Esta empresa vende apartamentos,
vivendas e terrenos. Das vivendas e dos apartamentos pretende-se
guardar o ano de construção, a área, a localização, a tipologia (T1,
T2,...) e o preço. Dos terrenos pretende-se saber se estão em zona
urbana ou rural.
Dos clientes guardam-se os dados pessoais e os produtos que entregaram à empresa para venda.
Os funcionários da empresa têm um código, nome, agência onde trabalham e salário mensal.
Para cada venda regista-se a data, o vendedor que a efectuou, o
produto que foi transaccionado e os clientes envolvidos (cliente que
vendeu e cliente que comprou).
6. Galeria
Pretende-se implementar uma base de dados para guardar informação
relativa ao calendário de exposições de galerias de arte. Cada galeria
tem um horário de funcionamento e um conjunto de obras que fazem parte
da sua colecção e que podem ser cedidas temporariamente para
exposições noutras galerias. Interessa saber o período durante o qual
se cedeu a obra e a que galeria. Cada galeria tem um calendário de
exposições das quais de guarda o nome, a data de início, a data de
fim, o preço do bilhete e o conjunto de obras expostas. As obras de
arte têm um tipo (quadro, escultura,...), um autor, uma técnica, a
data de criação e um dono. O dono pode ser uma galeria ou um
particular. Os particulares têm um nome e um contacto.
7. Centro de Emprego
Pretende-se implementar uma base de dados que guarde informação das
vagas disponíveis nos quadros de várias empresas assim como o perfil
pretendido dos candidatos e a informação dos próprios candidatos. Das
vagas pretende-se guardar um código e uma designação (ex.: 10 - chefe
de vendas) relativos ao lugar de quadro a preencher, a duração do
contrato (datas de início e de fim) e o salário. As candidaturas aos
lugares podem ser efectuadas durante um determinado período de tempo
definido pelas empresas. Os candidatos podem concorrer a vários
lugares simultaneamente. Na candidatura devem constar os dados
pessoais do candidato (nome, BI, morada, telefone,...), habilitações e
experiência profissional anterior (empresas em que trabalhou e em que
períodos de tempo).
8. Aluguer de automóveis
Pretende-se implementar uma base de dados que guarde informação sobre
os alugueres dos carros de um empresa. Pretende-se saber quem alugou
determinado carro e durante que período. Os automóveis têm custos
diários de aluguer diferentes dependendo das suas características. Os
clientes podem reservar automóveis antecipadamente e alguns poderão
ter descontos no preço final. Pretende-se guardar informação sobre a
percentagem de desconto aplicada em cada aluguer. Dos automóveis
pretende-se guardar a matrícula, a data da primeira matrícula, a
marca, os quilómetros percorridos e a cor. Dos clientes pretende-se
guardar informação relativa aos dados pessoais (nome, contacto,
morada,...). Os pagamentos podem ser efectuados em dinheiro, cheque,
multibanco ou visa.
9. Gestão de material
Implementar uma base de dados que guarde informação sobre o material
dos laboratórios de uma faculdade. Os funcionários têm um código, um
nome, um horário e são responsáveis por laboratórios. Os laboratórios
têm material que precisa de ser substituído logo que se encontre
deteriorado. O responsável tem que fazer a encomenda e efectuar a
substituição logo que possível. Das encomendas deve guardar-se
informação dos materiais, custo unitário, quantidades encomendadas e o
fornecedor. Os fornecedores têm um código, uma designação e um
contacto. O material tem um código, uma designação, a data da entrada
no laboratório e o preço de compra.
10. Leilão
Projectar e implementar uma base de dados que guarde informação sobre
diversos leilões. Os leilões têm uma data, um horário e um
local. Interessa saber que objectos são leiloados em cada leilão e
qual é o preço base de cada peça. Pretende-se saber quem trouxe as
peças a leilão e guardar informação sobre os diversos lançamentos
(quem lança, a que horas e que preço está disposto a pagar por uma
determinada peça). Uma mesma peça pode ser leiloada diversas vezes em
leilões diferentes (possivelmente com preços base diferentes).
Cada peça tem um código, uma designação e o ano da sua criação. Dos
donos pretende-se guardar informação sobre os dados pessoais e o
contacto.